@poe-platform/safe-bash 0.1.726 → 0.1.727
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/safe-bash/chunks/{chunk-6VZX7ESE.js → chunk-26N7BLXE.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-ZZ7JQBPX.js → chunk-4A2OLEML.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-LTREB3HX.js → chunk-54MC6XF5.js} +4 -4
- package/dist/safe-bash/chunks/{chunk-Z3CCN6Y2.js → chunk-6J5FUESH.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-YR5RZBWS.js → chunk-6TBFZ5JE.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-6HJNJ625.js → chunk-7MMYQG3P.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-WTZZX4LV.js → chunk-A4MB2KXV.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-EM2JW7ZH.js → chunk-ATYJKRBZ.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-VV24PRPB.js → chunk-AZQOEGP3.js} +1050 -101
- package/dist/safe-bash/chunks/chunk-AZQOEGP3.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-EFMXWUYE.js → chunk-B6JEJ6AT.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-JFGGQUYP.js → chunk-BFXGHT3R.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-RP5IZOOR.js → chunk-BJYV5J65.js} +1050 -101
- package/dist/safe-bash/chunks/chunk-BJYV5J65.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-HNHOPD3P.js → chunk-DIEFWGXO.js} +46 -26
- package/dist/safe-bash/chunks/{chunk-HNHOPD3P.js.map → chunk-DIEFWGXO.js.map} +2 -2
- package/dist/safe-bash/chunks/{chunk-SME47P4B.js → chunk-DV6EZOKM.js} +46 -26
- package/dist/safe-bash/chunks/{chunk-SME47P4B.js.map → chunk-DV6EZOKM.js.map} +2 -2
- package/dist/safe-bash/chunks/{chunk-646RTREQ.js → chunk-EEDOYIPC.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-OFAAHWL5.js → chunk-GCQ5A2T2.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-MJW4KSKV.js → chunk-GLPJEDLY.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-FOOJWH7J.js → chunk-GO5OKPBO.js} +4 -4
- package/dist/safe-bash/chunks/{chunk-5JANWFJ3.js → chunk-GWYXCCGO.js} +4 -4
- package/dist/safe-bash/chunks/{chunk-DPHRNHPT.js → chunk-H6KJ4L22.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-FLX2BZBF.js → chunk-HGBYIDAK.js} +4 -4
- package/dist/safe-bash/chunks/{chunk-VGJIDLZM.js → chunk-KS5VSJYM.js} +15 -8
- package/dist/safe-bash/chunks/chunk-KS5VSJYM.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-PO3Z7W3A.js → chunk-MUHYGUFD.js} +4 -4
- package/dist/safe-bash/chunks/{chunk-5DLGYPGJ.js → chunk-PDSTXORC.js} +126 -58
- package/dist/safe-bash/chunks/chunk-PDSTXORC.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-TIHMU25L.js → chunk-PQ37GDJF.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-OTM5RCWZ.js → chunk-QNEDWYC2.js} +15 -8
- package/dist/safe-bash/chunks/chunk-QNEDWYC2.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-LZ7FUN6K.js → chunk-RHHDOA67.js} +5 -5
- package/dist/safe-bash/chunks/{chunk-DSCL3VA2.js → chunk-SJ3B26XV.js} +4 -4
- package/dist/safe-bash/chunks/{chunk-6JBTVWHH.js → chunk-SWACYEIT.js} +5 -5
- package/dist/safe-bash/chunks/{chunk-7UJW7TYR.js → chunk-TD6NWAUK.js} +126 -58
- package/dist/safe-bash/chunks/chunk-TD6NWAUK.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-Q4I754TV.js → chunk-THOBFD5C.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-XELW5O3R.js → chunk-U2STHT7S.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-5X4SOSTT.js → chunk-UJHE5PTK.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-B6YFFKYG.js → chunk-X4I3RHTC.js} +5 -1
- package/dist/safe-bash/chunks/chunk-X4I3RHTC.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-YOK5UHA7.js → chunk-XKXFX3RH.js} +5 -1
- package/dist/safe-bash/chunks/chunk-XKXFX3RH.js.map +7 -0
- package/dist/safe-bash/chunks/{chunk-PLCYP2E5.js → chunk-XV4K3UUF.js} +2 -2
- package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
- package/dist/safe-bash/commands/factor/index.browser.js +2 -2
- package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
- package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
- package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
- package/dist/safe-bash/commands/internal.d.ts.map +1 -1
- package/dist/safe-bash/commands/internal.js +4 -3
- package/dist/safe-bash/commands/internal.js.map +1 -1
- package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/index.browser.js +4 -4
- package/dist/safe-bash/commands/network/index.browser.js +4 -4
- package/dist/safe-bash/commands/node/index.browser.js +4 -4
- package/dist/safe-bash/commands/pandoc/index.js.map +1 -1
- package/dist/safe-bash/commands/pr/index.browser.js +3 -3
- package/dist/safe-bash/commands/python/index.browser.js +2 -2
- package/dist/safe-bash/commands/record-buffer.d.ts.map +1 -1
- package/dist/safe-bash/commands/record-buffer.js +12 -4
- package/dist/safe-bash/commands/record-buffer.js.map +1 -1
- package/dist/safe-bash/commands/regex-execution/bounded-provider.d.ts.map +1 -1
- package/dist/safe-bash/commands/regex-execution/bounded-provider.js +75 -8
- package/dist/safe-bash/commands/regex-execution/bounded-provider.js.map +1 -1
- package/dist/safe-bash/commands/regex-execution/ere/limits.d.ts +1 -1
- package/dist/safe-bash/commands/regex-execution/ere/limits.d.ts.map +1 -1
- package/dist/safe-bash/commands/regex-execution/ere/limits.js +6 -4
- package/dist/safe-bash/commands/regex-execution/ere/limits.js.map +1 -1
- package/dist/safe-bash/commands/regex-execution/portable.d.ts.map +1 -1
- package/dist/safe-bash/commands/regex-execution/portable.js +7 -2
- package/dist/safe-bash/commands/regex-execution/portable.js.map +1 -1
- package/dist/safe-bash/commands/regex-execution/protocol.d.ts +2 -0
- package/dist/safe-bash/commands/regex-execution/protocol.d.ts.map +1 -1
- package/dist/safe-bash/commands/regex-execution/protocol.js +26 -0
- package/dist/safe-bash/commands/regex-execution/protocol.js.map +1 -1
- package/dist/safe-bash/commands/regex-execution/utf8.d.ts +1 -1
- package/dist/safe-bash/commands/regex-execution/utf8.d.ts.map +1 -1
- package/dist/safe-bash/commands/regex-execution/utf8.js +26 -2
- package/dist/safe-bash/commands/regex-execution/utf8.js.map +1 -1
- package/dist/safe-bash/commands/search/grep.d.ts.map +1 -1
- package/dist/safe-bash/commands/search/grep.js +109 -15
- package/dist/safe-bash/commands/search/grep.js.map +1 -1
- package/dist/safe-bash/commands/search/matcher.d.ts +1 -1
- package/dist/safe-bash/commands/search/matcher.d.ts.map +1 -1
- package/dist/safe-bash/commands/search/matcher.js +2 -0
- package/dist/safe-bash/commands/search/matcher.js.map +1 -1
- package/dist/safe-bash/commands/search/shared.d.ts.map +1 -1
- package/dist/safe-bash/commands/search/shared.js +23 -12
- package/dist/safe-bash/commands/search/shared.js.map +1 -1
- package/dist/safe-bash/commands/standard.d.ts.map +1 -1
- package/dist/safe-bash/commands/standard.js +22 -0
- package/dist/safe-bash/commands/standard.js.map +1 -1
- package/dist/safe-bash/commands/streams.d.ts.map +1 -1
- package/dist/safe-bash/commands/streams.js +54 -10
- package/dist/safe-bash/commands/streams.js.map +1 -1
- package/dist/safe-bash/commands/structured/input.d.ts.map +1 -1
- package/dist/safe-bash/commands/structured/input.js +484 -55
- package/dist/safe-bash/commands/structured/input.js.map +1 -1
- package/dist/safe-bash/commands/structured/interpreter.d.ts +3 -0
- package/dist/safe-bash/commands/structured/interpreter.d.ts.map +1 -1
- package/dist/safe-bash/commands/structured/interpreter.js +157 -1
- package/dist/safe-bash/commands/structured/interpreter.js.map +1 -1
- package/dist/safe-bash/commands/structured/jq.d.ts.map +1 -1
- package/dist/safe-bash/commands/structured/jq.js +50 -24
- package/dist/safe-bash/commands/structured/jq.js.map +1 -1
- package/dist/safe-bash/commands/structured/limits.d.ts +5 -0
- package/dist/safe-bash/commands/structured/limits.d.ts.map +1 -1
- package/dist/safe-bash/commands/structured/limits.js +51 -36
- package/dist/safe-bash/commands/structured/limits.js.map +1 -1
- package/dist/safe-bash/commands/structured/numbers.d.ts +1 -0
- package/dist/safe-bash/commands/structured/numbers.d.ts.map +1 -1
- package/dist/safe-bash/commands/structured/numbers.js +32 -0
- package/dist/safe-bash/commands/structured/numbers.js.map +1 -1
- package/dist/safe-bash/commands/text-programs/awk-reader.d.ts +1 -0
- package/dist/safe-bash/commands/text-programs/awk-reader.d.ts.map +1 -1
- package/dist/safe-bash/commands/text-programs/awk-reader.js +41 -5
- package/dist/safe-bash/commands/text-programs/awk-reader.js.map +1 -1
- package/dist/safe-bash/commands/text-programs/awk-retention.d.ts +1 -0
- package/dist/safe-bash/commands/text-programs/awk-retention.d.ts.map +1 -1
- package/dist/safe-bash/commands/text-programs/awk-retention.js +9 -0
- package/dist/safe-bash/commands/text-programs/awk-retention.js.map +1 -1
- package/dist/safe-bash/commands/text-programs/awk-runtime.d.ts +13 -0
- package/dist/safe-bash/commands/text-programs/awk-runtime.d.ts.map +1 -1
- package/dist/safe-bash/commands/text-programs/awk-runtime.js +421 -83
- package/dist/safe-bash/commands/text-programs/awk-runtime.js.map +1 -1
- package/dist/safe-bash/commands/text-programs/awk-values.d.ts.map +1 -1
- package/dist/safe-bash/commands/text-programs/awk-values.js +21 -0
- package/dist/safe-bash/commands/text-programs/awk-values.js.map +1 -1
- package/dist/safe-bash/commands/text-programs/regex.d.ts +15 -2
- package/dist/safe-bash/commands/text-programs/regex.d.ts.map +1 -1
- package/dist/safe-bash/commands/text-programs/regex.js +501 -13
- package/dist/safe-bash/commands/text-programs/regex.js.map +1 -1
- package/dist/safe-bash/commands/text-programs/sed.d.ts.map +1 -1
- package/dist/safe-bash/commands/text-programs/sed.js +242 -102
- package/dist/safe-bash/commands/text-programs/sed.js.map +1 -1
- package/dist/safe-bash/commands/text-programs/shared.d.ts +2 -0
- package/dist/safe-bash/commands/text-programs/shared.d.ts.map +1 -1
- package/dist/safe-bash/commands/text-programs/shared.js +36 -0
- package/dist/safe-bash/commands/text-programs/shared.js.map +1 -1
- package/dist/safe-bash/commands/text.d.ts.map +1 -1
- package/dist/safe-bash/commands/text.js +136 -19
- package/dist/safe-bash/commands/text.js.map +1 -1
- package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
- package/dist/safe-bash/commands/xml/index.browser.js +5 -5
- package/dist/safe-bash/commands/yq/index.browser.js +5 -5
- package/dist/safe-bash/contracts/yield.d.ts +1 -0
- package/dist/safe-bash/contracts/yield.d.ts.map +1 -1
- package/dist/safe-bash/contracts/yield.js +3 -0
- package/dist/safe-bash/contracts/yield.js.map +1 -1
- package/dist/safe-bash/core.browser.js +1052 -256
- package/dist/safe-bash/core.browser.js.map +3 -3
- package/dist/safe-bash/plugins/composition.d.ts +1 -0
- package/dist/safe-bash/plugins/composition.d.ts.map +1 -1
- package/dist/safe-bash/plugins/composition.js +80 -2
- package/dist/safe-bash/plugins/composition.js.map +1 -1
- package/dist/safe-bash/plugins/index.d.ts.map +1 -1
- package/dist/safe-bash/plugins/index.js +2 -2
- package/dist/safe-bash/plugins/index.js.map +1 -1
- package/dist/safe-bash-command-fold/arguments.d.ts +1 -1
- package/dist/safe-bash-command-fold/contracts.d.ts +2 -1
- package/dist/safe-bash-command-fold/engine.d.ts +1 -1
- package/dist/safe-bash-command-fold/index.js +10 -8
- package/dist/safe-bash-command-fold/index.js.map +2 -2
- package/dist/safe-bash-command-sips/index.js +231 -67
- package/dist/safe-bash-command-sips/index.js.map +2 -2
- package/dist/safe-bash-command-unrtf/contracts.d.ts +5 -2
- package/dist/safe-bash-command-unrtf/index.js +6 -5
- package/dist/safe-bash-command-unrtf/index.js.map +2 -2
- package/dist/safe-playwright-cloudflare/browser-run-code.js +22 -6
- package/package.json +2 -2
- package/dist/safe-bash/chunks/chunk-5DLGYPGJ.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-7UJW7TYR.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-B6YFFKYG.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-OTM5RCWZ.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-RP5IZOOR.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-VGJIDLZM.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-VV24PRPB.js.map +0 -7
- package/dist/safe-bash/chunks/chunk-YOK5UHA7.js.map +0 -7
- /package/dist/safe-bash/chunks/{chunk-6VZX7ESE.js.map → chunk-26N7BLXE.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-ZZ7JQBPX.js.map → chunk-4A2OLEML.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-LTREB3HX.js.map → chunk-54MC6XF5.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-Z3CCN6Y2.js.map → chunk-6J5FUESH.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-YR5RZBWS.js.map → chunk-6TBFZ5JE.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-6HJNJ625.js.map → chunk-7MMYQG3P.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-WTZZX4LV.js.map → chunk-A4MB2KXV.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-EM2JW7ZH.js.map → chunk-ATYJKRBZ.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-EFMXWUYE.js.map → chunk-B6JEJ6AT.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-JFGGQUYP.js.map → chunk-BFXGHT3R.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-646RTREQ.js.map → chunk-EEDOYIPC.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-OFAAHWL5.js.map → chunk-GCQ5A2T2.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-MJW4KSKV.js.map → chunk-GLPJEDLY.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-FOOJWH7J.js.map → chunk-GO5OKPBO.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-5JANWFJ3.js.map → chunk-GWYXCCGO.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-DPHRNHPT.js.map → chunk-H6KJ4L22.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-FLX2BZBF.js.map → chunk-HGBYIDAK.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-PO3Z7W3A.js.map → chunk-MUHYGUFD.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-TIHMU25L.js.map → chunk-PQ37GDJF.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-LZ7FUN6K.js.map → chunk-RHHDOA67.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-DSCL3VA2.js.map → chunk-SJ3B26XV.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-6JBTVWHH.js.map → chunk-SWACYEIT.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-Q4I754TV.js.map → chunk-THOBFD5C.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-XELW5O3R.js.map → chunk-U2STHT7S.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-5X4SOSTT.js.map → chunk-UJHE5PTK.js.map} +0 -0
- /package/dist/safe-bash/chunks/{chunk-PLCYP2E5.js.map → chunk-XV4K3UUF.js.map} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["contracts.js", "tokenizer.js", "extract.js", "personalities.js", "render.js", "command.js", "index.js"],
|
|
4
|
-
"sourcesContent": ["export const unrtfBaseline = Object.freeze({\n version: '0.21.10', archiveSha256: 'b49f20211fa69fff97d42d6e782a62d7e2da670b064951f14bbff968c93734ae',\n profile: 'standards-strict', nativePersonalityCompatible: false,\n});\nexport class UnrtfError extends Error {\n code;\n offset;\n resource;\n status = 1;\n constructor(code, message, offset, resource) {\n super(message);\n this.code = code;\n this.offset = offset;\n this.resource = resource;\n this.name = 'UnrtfError';\n }\n}\nexport class Budget {\n counts = {};\n options;\n constructor(options) {\n if (options.profile !== undefined && options.profile !== 'standards-strict' && options.profile !== 'gnu-0.21.10')\n throw new UnrtfError('E_PROFILE', 'Only standards-strict extraction is admitted; native-legacy and recovery are not implemented', 0);\n this.options = { ...options, limits: { ...options.limits } };\n for (const name of ['retainedBytes', 'images', 'imageBytes', 'inputBytes', 'binaryBytes', 'tokenBytes', 'tokens', 'depth', 'decodedBytes', 'outputBytes', 'work']) {\n if (!Number.isSafeInteger(options.limits[name]) || options.limits[name] < 0)\n throw new UnrtfError('E_LIMIT', 'Limits must be nonnegative safe integers', 0, name);\n }\n }\n release(resource, value) {\n this.counts[resource] = (this.counts[resource] ?? 0) - value;\n }\n check(offset) {\n if (this.options.signal.aborted)\n throw new UnrtfError('E_CANCELLED', 'RTF invocation cancelled', offset);\n }\n bound(resource, value, offset) {\n this.check(offset);\n if (value > this.options.limits[resource])\n throw new UnrtfError('E_LIMIT', `RTF ${resource} limit exceeded`, offset, resource);\n }\n charge(resource, value, offset) {\n const count = this.counts[resource] ?? 0;\n if (value > this.options.limits[resource] - count)\n throw new UnrtfError('E_LIMIT', `RTF ${resource} limit exceeded`, offset, resource);\n this.bound(resource, count + value, offset);\n this.counts[resource] = count + value;\n }\n}\n", "import { Budget, UnrtfError } from './contracts.js';\nconst letter = (byte) => byte >= 65 && byte <= 90 || byte >= 97 && byte <= 122;\nconst digit = (byte) => byte >= 48 && byte <= 57;\nconst hex = (byte) => digit(byte) ? byte - 48 : byte >= 65 && byte <= 70 ? byte - 55 : byte >= 97 && byte <= 102 ? byte - 87 : -1;\n// The intrinsic getter checks the internal typed-array kind across realms;\n// instanceof rejects valid foreign views and ordinary tags can be forged.\nconst typedArrayKind = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), Symbol.toStringTag).get;\n/** Flat tokens retain no tree or binary payload. Source chunks are borrowed only\n * until exhausted; callers must not mutate them while an invocation is active. */\nexport async function* tokenizeRtf(source, options, budget = new Budget(options)) {\n options = budget.options;\n const iterator = source[Symbol.asyncIterator]();\n let chunk = new Uint8Array(), index = 0, offset = 0, pending;\n let depth = 0, roots = 0, header = false, tokenRetained = 0, failed = false;\n const fail = (message, at = offset) => { throw new UnrtfError('E_PARSE', message, at); };\n const read = async (raw = false) => {\n for (;;) {\n budget.check(offset);\n if (pending !== undefined) {\n const byte = pending;\n pending = undefined;\n return byte;\n }\n while (index === chunk.length) {\n budget.release('retainedBytes', chunk.length);\n chunk = new Uint8Array();\n index = 0;\n budget.charge('work', 1, offset);\n const signal = options.signal;\n let abort;\n try {\n const next = await Promise.race([iterator.next(), new Promise((_, reject) => {\n abort = () => reject(new UnrtfError('E_CANCELLED', 'RTF invocation cancelled', offset));\n signal.addEventListener('abort', abort, { once: true });\n if (signal.aborted)\n abort();\n })]);\n budget.check(offset);\n if (next.done)\n return -1;\n if (!ArrayBuffer.isView(next.value) || typedArrayKind.call(next.value) !== 'Uint8Array')\n fail('RTF input must be byte chunks');\n budget.charge('inputBytes', next.value.length, offset);\n budget.charge('retainedBytes', next.value.length, offset);\n chunk = next.value;\n index = 0;\n }\n finally {\n if (abort)\n signal.removeEventListener('abort', abort);\n }\n }\n if (offset > 0 && offset % 4096 === 0) {\n await new Promise(resolve => setTimeout(resolve, 0));\n budget.check(offset);\n }\n budget.charge('work', 1, offset);\n offset++;\n const byte = chunk[index++];\n if (raw || byte !== 13)\n return byte;\n }\n };\n const emit = (token) => { budget.charge('tokens', 1, token.offset); return token; };\n try {\n for (;;) {\n const byte = await read();\n const at = offset - 1;\n if (byte < 0)\n break;\n if (byte === 10)\n continue;\n if (byte === 123) {\n if (depth === 0 && ++roots !== 1)\n fail('RTF requires one root', at);\n budget.bound('depth', depth + 1, at);\n budget.charge('retainedBytes', 128, at);\n depth++;\n yield emit({ kind: 'open', offset: at });\n continue;\n }\n if (byte === 125) {\n if (!depth || !header)\n fail('Unexpected RTF closing group', at);\n depth--;\n budget.release('retainedBytes', 128);\n yield emit({ kind: 'close', offset: at });\n continue;\n }\n if (!depth)\n fail('RTF requires a root group', at);\n if (byte !== 92) {\n if (!header)\n fail('Missing RTF header', at);\n budget.bound('tokenBytes', 1, at);\n yield emit({ kind: 'byte', byte: byte === 9 ? 32 : byte, escaped: false, offset: at });\n continue;\n }\n let control = await read();\n if (control < 0)\n fail('Truncated control', at);\n if (control === 39) {\n budget.bound('tokenBytes', 4, at);\n const high = hex(await read()), low = hex(await read());\n if (high < 0 || low < 0)\n fail('Malformed hex escape', at);\n if (!header)\n fail('Missing RTF header', at);\n yield emit({ kind: 'byte', byte: high * 16 + low, escaped: true, offset: at });\n continue;\n }\n if (!letter(control)) {\n budget.bound('tokenBytes', 2, at);\n if (!header)\n fail('Missing RTF header', at);\n yield emit(control === 10 ? { kind: 'control', name: 'par', parameter: undefined, offset: at } : { kind: 'symbol', name: String.fromCharCode(control), offset: at });\n continue;\n }\n let name = '', size = 0;\n while (letter(control)) {\n budget.bound('tokenBytes', ++size, at);\n budget.charge('retainedBytes', 2, at);\n tokenRetained += 2;\n name += String.fromCharCode(control);\n control = await read();\n }\n let parameter;\n const negative = control === 45;\n if (negative) {\n budget.bound('tokenBytes', ++size, at);\n control = await read();\n }\n if (digit(control)) {\n let value = 0;\n while (digit(control)) {\n budget.bound('tokenBytes', ++size, at);\n if (value > Math.floor((2147483648 - (control - 48)) / 10))\n fail('Control parameter overflow', at);\n // Binary lookahead belongs to the raw payload unless it is the\n // optional space delimiter; do not discard its first CR byte.\n value = value * 10 + control - 48;\n control = await read(name === 'bin');\n }\n if (!negative && value > 2147483647)\n fail('Control parameter overflow', at);\n parameter = negative ? -value : value;\n }\n else if (negative)\n fail('Missing signed parameter', at);\n if (control !== 32 && control >= 0)\n pending = control;\n if (!header) {\n if (depth !== 1 || name !== 'rtf' || parameter !== 1)\n fail('Expected RTF version 1 header', at);\n header = true;\n }\n budget.release('retainedBytes', tokenRetained);\n tokenRetained = 0;\n if (name === 'bin') {\n if (parameter === undefined || parameter < 0)\n throw new UnrtfError('E_PARSE', 'Invalid binary count', at);\n budget.charge('binaryBytes', parameter, at);\n for (let i = 0; i < parameter; i++)\n if (await read(true) < 0)\n fail('Truncated binary payload', at);\n yield emit({ kind: 'binary', length: parameter, offset: at });\n }\n else\n yield emit({ kind: 'control', name, parameter, offset: at });\n }\n if (depth || !header)\n fail('Unterminated or missing RTF root');\n }\n catch (error) {\n failed = true;\n throw error;\n }\n finally {\n budget.release('retainedBytes', chunk.length + depth * 128 + tokenRetained);\n chunk = new Uint8Array();\n pending = undefined;\n if (failed) {\n try {\n await iterator.return?.();\n }\n catch { /* Preserve the primary parsing, budget or cancellation error. */ }\n }\n else\n await iterator.return?.();\n }\n}\n", "import { Budget, UnrtfError } from './contracts.js';\nimport { tokenizeRtf } from './tokenizer.js';\n/** Explicit inventory. Availability is checked in the current JS realm; no\n * ambient iconv, locale, charmap files or fallback codecs are consulted. */\nexport const codecLabels = Object.freeze({\n 437: 'ibm437', 850: 'ibm850', 874: 'windows-874', 932: 'shift_jis', 936: 'gbk', 949: 'euc-kr', 950: 'big5',\n 1250: 'windows-1250', 1251: 'windows-1251', 1252: 'windows-1252', 1253: 'windows-1253',\n 1254: 'windows-1254', 1255: 'windows-1255', 1256: 'windows-1256', 1257: 'windows-1257',\n 1258: 'windows-1258', 10000: 'macintosh', 65001: 'utf-8',\n});\nexport const charsetCodePages = Object.freeze({\n 0: 1252, 1: 0, 2: 42, 77: 10000, 78: 10001, 79: 10003, 80: 10008, 81: 10002,\n 83: 10005, 84: 10004, 85: 10006, 86: 10081, 87: 10021, 88: 10029, 89: 10007,\n 128: 932, 129: 949, 130: 1361, 134: 936, 136: 950, 161: 1253, 162: 1254,\n 163: 1258, 177: 1255, 178: 1256, 186: 1257, 204: 1251, 222: 874, 238: 1250, 254: 437,\n});\nconst inert = new Set(['object', 'objdata', 'pict', 'fldinst', 'filetbl', 'datastore', 'datafield', 'themedata', 'info', 'stylesheet', 'header', 'footer']);\n/** Standards-correct extraction, not GNU 0.21.10 personality rendering.\n * Unknown controls are exposed for a renderer to admit or reject explicitly. */\nexport async function* extractRtf(source, options, budget = new Budget(options), accountOutput = true) {\n const fonts = new Map(), stack = [];\n let state = { uc: 1, page: 1252, font: undefined, destination: '', skip: false, starred: false, declaration: undefined };\n let colorIndex = 0, color = {};\n let defaultFont;\n let retainedDeclarations = 0;\n let decoder, activePage, fallback = 0, high, lastSpace = false;\n const codec = (page, offset) => {\n const label = codecLabels[page];\n if (!label)\n throw new UnrtfError('E_CODEC', `Code page ${page} is unavailable`, offset);\n try {\n return new TextDecoder(label, { fatal: true, ignoreBOM: true });\n }\n catch {\n throw new UnrtfError('E_CODEC', `Codec ${label} is unavailable in this realm`, offset);\n }\n };\n const appendName = (decl, text, offset) => {\n let bytes = 0;\n for (const char of text) {\n const code = char.codePointAt(0);\n bytes += code <= 0x7f ? 1 : code <= 0x7ff ? 2 : code <= 0xffff ? 3 : 4;\n }\n budget.bound('tokenBytes', decl.name.length * 2 + text.length * 2, offset);\n budget.charge('decodedBytes', bytes, offset);\n budget.charge('retainedBytes', text.length * 2, offset);\n retainedDeclarations += text.length * 2;\n decl.name += text;\n };\n const flushName = (decl, offset) => {\n if (decl.high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired surrogate in font name', offset);\n if (!decl.decoder)\n return;\n let text;\n try {\n text = decl.decoder.decode();\n }\n catch {\n throw new UnrtfError('E_ENCODING', 'Incomplete encoded font name', offset);\n }\n finally {\n delete decl.decoder;\n delete decl.activePage;\n }\n appendName(decl, text, offset);\n };\n const finishFont = (decl, offset) => {\n flushName(decl, offset);\n const name = decl.name.trim();\n const mapped = decl.charset === undefined ? 0 : charsetCodePages[decl.charset] ?? 1252;\n const page = name === 'Symbol' || decl.page === undefined && decl.charset === undefined && name.toLowerCase().includes('symbol') ? 42 : decl.page ?? mapped;\n const font = { id: decl.id, name, codePage: page, charset: decl.charset };\n budget.charge('retainedBytes', 128 + name.length * 2, offset);\n retainedDeclarations += 128 + name.length * 2;\n fonts.set(font.id, font);\n decl.ended = true;\n return { kind: 'font', font, offset };\n };\n const flush = (offset) => {\n if (!decoder)\n return '';\n try {\n return decoder.decode();\n }\n catch {\n throw new UnrtfError('E_ENCODING', 'Incomplete encoded byte sequence at encoding/group/Unicode boundary', offset);\n }\n finally {\n decoder = undefined;\n activePage = undefined;\n }\n };\n const output = (text, offset) => {\n if (!text)\n return;\n const bytes = new TextEncoder().encode(text).length;\n budget.charge('decodedBytes', bytes, offset);\n if (accountOutput)\n budget.charge('outputBytes', bytes, offset);\n lastSpace = text.endsWith(' ');\n return { kind: 'text', text, offset };\n };\n const unicode = (unit, offset) => {\n if (unit >= 0xd800 && unit <= 0xdbff) {\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate', offset);\n high = unit;\n return '';\n }\n if (unit >= 0xdc00 && unit <= 0xdfff) {\n if (high === undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired low surrogate', offset);\n const text = String.fromCharCode(high, unit);\n high = undefined;\n return text;\n }\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate', offset);\n return String.fromCharCode(unit);\n };\n try {\n for await (const token of tokenizeRtf(source, options, budget)) {\n budget.charge('work', 1, token.offset);\n if (state.starred && !state.skip && token.kind !== 'control')\n throw new UnrtfError('E_PARSE', 'Ignorable destination requires a control word', token.offset);\n if (token.kind === 'open' || token.kind === 'close') {\n const event = output(flush(token.offset), token.offset);\n if (event)\n yield event;\n fallback = 0;\n lastSpace = false;\n if (token.kind === 'open') {\n stack.push(state);\n state = { ...state, starred: false, declaration: undefined };\n }\n else {\n if (state.declaration && !state.declaration.ended) {\n yield finishFont(state.declaration, token.offset);\n }\n state = stack.pop();\n }\n yield { kind: token.kind, offset: token.offset };\n continue;\n }\n if (token.kind === 'control') {\n const { name, parameter, offset } = token;\n if (state.skip)\n continue;\n if (state.starred || inert.has(name)) {\n if (name === 'pict')\n budget.charge('images', 1, offset);\n state.starred = false;\n state.skip = true;\n state.destination = name;\n yield { kind: 'skipped', destination: name, offset };\n continue;\n }\n if (name === 'fonttbl' || name === 'colortbl') {\n state.destination = name;\n continue;\n }\n if (state.destination === 'colortbl') {\n if (name === 'red' || name === 'green' || name === 'blue') {\n if (parameter === undefined || parameter < 0 || parameter > 255)\n throw new UnrtfError('E_PARSE', 'Invalid color component', offset);\n color[name] = parameter;\n }\n continue;\n }\n if (state.destination === 'fonttbl') {\n if (name === 'f' && parameter !== undefined)\n state.declaration = { id: parameter, name: '', page: undefined, charset: undefined, fallback: 0, ended: false };\n const decl = state.declaration;\n if (decl && !decl.ended) {\n if (decl.fallback && name !== 'u') {\n decl.fallback--;\n continue;\n }\n if (name === 'cpg' || name === 'fcharset') {\n flushName(decl, offset);\n if (parameter === undefined)\n throw new UnrtfError('E_PARSE', 'Missing font encoding parameter', offset);\n if (name === 'cpg')\n decl.page = parameter;\n else\n decl.charset = parameter;\n }\n else if (name === 'uc') {\n if (parameter === undefined || parameter < 0 || parameter > 32767)\n throw new UnrtfError('E_PARSE', 'Invalid Unicode fallback count', offset);\n state.uc = parameter;\n }\n else if (name === 'u') {\n if (parameter === undefined || parameter < -32768 || parameter > 65535)\n throw new UnrtfError('E_PARSE', 'Invalid Unicode unit', offset);\n // A pending high surrogate is allowed only before its Unicode low unit.\n const priorHigh = decl.high;\n delete decl.high;\n flushName(decl, offset);\n if (priorHigh !== undefined)\n decl.high = priorHigh;\n const unit = parameter < 0 ? parameter + 65536 : parameter;\n if (unit >= 0xd800 && unit <= 0xdbff) {\n if (decl.high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired surrogate in font name', offset);\n decl.high = unit;\n }\n else if (unit >= 0xdc00 && unit <= 0xdfff) {\n if (decl.high === undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired surrogate in font name', offset);\n appendName(decl, String.fromCharCode(decl.high, unit), offset);\n delete decl.high;\n }\n else {\n if (decl.high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired surrogate in font name', offset);\n appendName(decl, String.fromCharCode(unit), offset);\n }\n decl.fallback = state.uc;\n }\n }\n continue;\n }\n if (fallback && name !== 'u') {\n fallback--;\n continue;\n }\n if (name === 'uc') {\n if (parameter === undefined || parameter < 0 || parameter > 32767)\n throw new UnrtfError('E_PARSE', 'Invalid Unicode fallback count', offset);\n state.uc = parameter;\n continue;\n }\n if (name === 'u') {\n if (parameter === undefined || parameter < -32768 || parameter > 65535)\n throw new UnrtfError('E_PARSE', 'Invalid Unicode unit', offset);\n const prior = output(flush(offset), offset);\n if (prior)\n yield prior;\n const event = output(unicode(parameter < 0 ? parameter + 65536 : parameter, offset), offset);\n if (event)\n yield event;\n fallback = state.uc;\n continue;\n }\n if (name === 'plain') {\n const event = output(flush(offset), offset);\n if (event)\n yield event;\n state.font = defaultFont;\n const page = (defaultFont === undefined ? undefined : fonts.get(defaultFont)?.codePage) || state.page;\n codec(page, offset);\n yield { kind: 'control', name, parameter, offset };\n continue;\n }\n const documentPage = { ansi: 1252, mac: 10000, pc: 437, pca: 850 };\n if (documentPage[name] !== undefined) {\n const event = output(flush(offset), offset);\n if (event)\n yield event;\n codec(documentPage[name], offset);\n state.page = documentPage[name];\n continue;\n }\n if (name === 'ansicpg' || name === 'cpg' || name === 'f' || name === 'deff') {\n const event = output(flush(offset), offset);\n if (event)\n yield event;\n if (parameter === undefined)\n throw new UnrtfError('E_PARSE', 'Missing encoding/font parameter', offset);\n if (name === 'f' || name === 'deff') {\n if (name === 'deff')\n defaultFont = parameter;\n state.font = parameter;\n const font = fonts.get(parameter);\n if (!font && name === 'f')\n throw new UnrtfError('E_PARSE', 'Undeclared font', offset);\n if (font?.codePage)\n codec(font.codePage, offset);\n yield { kind: 'control', name, parameter, offset };\n }\n else {\n codec(parameter, offset);\n state.page = parameter;\n }\n continue;\n }\n const chars = { par: '\\n', line: '\\n', tab: '\\t', emdash: '\u2014', endash: '\u2013', bullet: '\u2022', lquote: '\u2018', rquote: '\u2019', ldblquote: '\u201C', rdblquote: '\u201D' };\n if (chars[name] || name === 'cell' || name === 'row' || name === 'trowd') {\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate before text', offset);\n const prior = output(flush(offset), offset);\n if (prior)\n yield prior;\n if (chars[name]) {\n const event = output(chars[name], offset);\n if (event) {\n if (name === 'par' || name === 'line')\n event.boundary = name;\n yield event;\n }\n }\n else {\n lastSpace = false;\n yield { kind: 'control', name, parameter, offset };\n }\n }\n else\n yield { kind: 'control', name, parameter, offset };\n continue;\n }\n if (token.kind === 'symbol' && token.name === '*') {\n state.starred = true;\n continue;\n }\n if (state.destination === 'pict') {\n if (token.kind === 'binary')\n budget.charge('imageBytes', token.length, token.offset);\n else if (token.kind === 'byte')\n budget.charge('imageBytes', 1, token.offset);\n }\n if (state.skip)\n continue;\n if (token.kind === 'binary') {\n if (state.destination === 'fonttbl') {\n const decl = state.declaration;\n if (decl?.fallback)\n decl.fallback--;\n else\n throw new UnrtfError('E_PARSE', 'Binary data outside font name Unicode fallback', token.offset);\n }\n else if (fallback)\n fallback--;\n continue;\n }\n if (state.destination === 'fonttbl' && token.kind === 'symbol' && (token.name === '~' || token.name === '_')) {\n const decl = state.declaration;\n if (decl && !decl.ended) {\n if (decl.fallback) {\n decl.fallback--;\n continue;\n }\n flushName(decl, token.offset);\n appendName(decl, token.name === '~' ? '\\u00a0' : '\\u2011', token.offset);\n }\n continue;\n }\n if (fallback && token.kind === 'symbol') {\n fallback--;\n continue;\n }\n let byte;\n if (token.kind === 'byte')\n byte = token.byte;\n else if (token.kind === 'symbol') {\n if (['{', '}', '\\\\', '?'].includes(token.name))\n byte = token.name.charCodeAt(0);\n else if (token.name === '~' || token.name === '_') {\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate before text', token.offset);\n const prior = output(flush(token.offset), token.offset);\n if (prior)\n yield prior;\n const event = output(token.name === '~' ? '\\u00a0' : '\\u2011', token.offset);\n if (event)\n yield event;\n }\n }\n if (byte === undefined)\n continue;\n if (state.destination === 'colortbl') {\n if (byte === 59) {\n const rgb = Object.keys(color).length ? '#' + [color.red ?? 0, color.green ?? 0, color.blue ?? 0].map(value => value.toString(16).padStart(2, '0')).join('') : undefined;\n budget.charge('retainedBytes', 32, token.offset);\n retainedDeclarations += 32;\n yield { kind: 'color', index: colorIndex++, rgb, offset: token.offset };\n color = {};\n }\n continue;\n }\n if (state.destination === 'fonttbl') {\n const decl = state.declaration;\n if (decl && !decl.ended) {\n if (decl.fallback) {\n decl.fallback--;\n continue;\n }\n if (byte === 59) {\n yield finishFont(decl, token.offset);\n continue;\n }\n if (decl.high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired surrogate in font name', token.offset);\n const page = decl.page ?? (decl.charset === undefined ? state.page : (charsetCodePages[decl.charset] ?? 1252) || state.page);\n // Symbol is a glyph encoding, not an encoding for its ASCII declaration name.\n const namePage = page === 42 ? state.page : page;\n if (decl.activePage !== namePage) {\n flushName(decl, token.offset);\n decl.decoder = codec(namePage, token.offset);\n decl.activePage = namePage;\n }\n let text;\n try {\n text = decl.decoder.decode(Uint8Array.of(byte), { stream: true });\n }\n catch {\n throw new UnrtfError('E_ENCODING', 'Malformed encoded font name', token.offset);\n }\n appendName(decl, text, token.offset);\n }\n continue;\n }\n if (fallback) {\n fallback--;\n continue;\n }\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate before text', token.offset);\n if (token.kind === 'byte' && !token.escaped && byte === 32 && lastSpace)\n continue;\n const page = (state.font === undefined ? undefined : fonts.get(state.font)?.codePage) || state.page;\n if (activePage !== page) {\n const event = output(flush(token.offset), token.offset);\n if (event)\n yield event;\n decoder = codec(page, token.offset);\n activePage = page;\n }\n let decoded;\n try {\n decoded = decoder.decode(Uint8Array.of(byte), { stream: true });\n }\n catch {\n throw new UnrtfError('E_ENCODING', 'Malformed encoded byte sequence', token.offset);\n }\n const event = output(decoded, token.offset);\n if (event)\n yield event;\n }\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate at EOF', 0);\n }\n finally {\n budget.release('retainedBytes', retainedDeclarations);\n decoder = undefined;\n fonts.clear();\n stack.length = 0;\n }\n}\n", "// Scoped templates from official GNU UnRTF 0.21.10 outputs/{text,html,latex}.conf.\n// Archive SHA256: b49f20211fa69fff97d42d6e782a62d7e2da670b064951f14bbff968c93734ae\n// GNU UnRTF assets are GPL-3.0-or-later; see NOTICE.\nexport const personalities = {\n \"text\": {\n \"comment_begin\": \"### \",\n \"comment_end\": \"\\n\",\n \"body_begin\": \"\\n-----------------\\n\",\n \"body_end\": \"\",\n \"paragraph_begin\": \"\",\n \"paragraph_end\": \"\\n\",\n \"line_break\": \"\\n\"\n },\n \"html\": {\n \"comment_begin\": \"<!--\",\n \"comment_end\": \"-->\\n\",\n \"document_begin\": \"<!DOCTYPE html PUBLIC \\\"-//W3C//DTD HTML 4.01 Transitional//EN\\\">\\n<html>\\n\",\n \"document_end\": \"</html>\\n\",\n \"header_begin\": \"<head>\\n\",\n \"header_end\": \"</head>\\n\",\n \"body_begin\": \"<body>\",\n \"body_end\": \"</body>\\n\",\n \"paragraph_begin\": \"<p>\",\n \"paragraph_end\": \"</p>\\n\",\n \"line_break\": \"<br>\\n\",\n \"bold_begin\": \"<b>\",\n \"bold_end\": \"</b>\",\n \"italic_begin\": \"<i>\",\n \"italic_end\": \"</i>\",\n \"underline_begin\": \"<u>\",\n \"underline_end\": \"</u>\",\n \"strikethru_begin\": \"<s>\",\n \"strikethru_end\": \"</s>\",\n \"utf8_encoding\": \"<meta http-equiv=\\\"content-type\\\" content=\\\"text/html; charset=utf-8\\\">\\n\",\n \"<U22>\": \""\",\n \"<U26>\": \"&\",\n \"34\": \""\",\n \"38\": \"&\",\n \"60\": \"<\",\n \"62\": \">\",\n \"160\": \" \",\n \"161\": \"¡\",\n \"162\": \"¢\",\n \"163\": \"£\",\n \"164\": \"¤\",\n \"165\": \"¥\",\n \"166\": \"¦\",\n \"167\": \"§\",\n \"168\": \"¨\",\n \"169\": \"©\",\n \"170\": \"ª\",\n \"171\": \"«\",\n \"172\": \"¬\",\n \"173\": \"­\",\n \"174\": \"®\",\n \"175\": \"¯\",\n \"176\": \"°\",\n \"177\": \"±\",\n \"178\": \"²\",\n \"179\": \"³\",\n \"180\": \"´\",\n \"181\": \"µ\",\n \"182\": \"¶\",\n \"183\": \"·\",\n \"184\": \"¸\",\n \"185\": \"¹\",\n \"186\": \"º\",\n \"187\": \"»\",\n \"188\": \"¼\",\n \"189\": \"½\",\n \"190\": \"¾\",\n \"191\": \"¿\",\n \"192\": \"À\",\n \"193\": \"Á\",\n \"194\": \"Â\",\n \"195\": \"Ã\",\n \"196\": \"Ä\",\n \"197\": \"Å\",\n \"198\": \"Æ\",\n \"199\": \"Ç\",\n \"200\": \"È\",\n \"201\": \"É\",\n \"202\": \"Ê\",\n \"203\": \"Ë\",\n \"204\": \"Ì\",\n \"205\": \"Í\",\n \"206\": \"Î\",\n \"207\": \"Ï\",\n \"208\": \"Ð\",\n \"209\": \"Ñ\",\n \"210\": \"Ò\",\n \"211\": \"Ó\",\n \"212\": \"Ô\",\n \"213\": \"Õ\",\n \"214\": \"Ö\",\n \"215\": \"×\",\n \"216\": \"Ø\",\n \"217\": \"Ù\",\n \"218\": \"Ú\",\n \"219\": \"Û\",\n \"220\": \"Ü\",\n \"221\": \"Ý\",\n \"222\": \"Þ\",\n \"223\": \"ß\",\n \"224\": \"à\",\n \"225\": \"á\",\n \"226\": \"â\",\n \"227\": \"ã\",\n \"228\": \"ä\",\n \"229\": \"å\",\n \"230\": \"æ\",\n \"231\": \"ç\",\n \"232\": \"è\",\n \"233\": \"é\",\n \"234\": \"ê\",\n \"235\": \"ë\",\n \"236\": \"ì\",\n \"237\": \"í\",\n \"238\": \"î\",\n \"239\": \"ï\",\n \"240\": \"ð\",\n \"241\": \"ñ\",\n \"242\": \"ò\",\n \"243\": \"ó\",\n \"244\": \"ô\",\n \"245\": \"õ\",\n \"246\": \"ö\",\n \"247\": \"÷\",\n \"248\": \"ø\",\n \"249\": \"ù\",\n \"250\": \"ú\",\n \"251\": \"û\",\n \"252\": \"ü\",\n \"253\": \"ý\",\n \"254\": \"þ\",\n \"255\": \"ÿ\",\n \"338\": \"Œ\",\n \"339\": \"œ\",\n \"352\": \"Š\",\n \"353\": \"š\",\n \"376\": \"Ÿ\",\n \"402\": \"ƒ\",\n \"710\": \"ˆ\",\n \"732\": \"˜\",\n \"913\": \"Α\",\n \"914\": \"Β\",\n \"915\": \"Γ\",\n \"916\": \"Δ\",\n \"917\": \"Ε\",\n \"918\": \"Ζ\",\n \"919\": \"Η\",\n \"920\": \"Θ\",\n \"921\": \"Ι\",\n \"922\": \"Κ\",\n \"923\": \"Λ\",\n \"924\": \"Μ\",\n \"925\": \"Ν\",\n \"926\": \"Ξ\",\n \"927\": \"Ο\",\n \"928\": \"Π\",\n \"929\": \"Ρ\",\n \"931\": \"Σ\",\n \"932\": \"Τ\",\n \"933\": \"Υ\",\n \"934\": \"Φ\",\n \"935\": \"Χ\",\n \"936\": \"Ψ\",\n \"937\": \"Ω\",\n \"945\": \"α\",\n \"946\": \"β\",\n \"947\": \"γ\",\n \"948\": \"δ\",\n \"949\": \"ε\",\n \"950\": \"ζ\",\n \"951\": \"η\",\n \"952\": \"θ\",\n \"953\": \"ι\",\n \"954\": \"κ\",\n \"955\": \"λ\",\n \"956\": \"μ\",\n \"957\": \"ν\",\n \"958\": \"ξ\",\n \"959\": \"ο\",\n \"960\": \"π\",\n \"961\": \"ρ\",\n \"962\": \"ς\",\n \"963\": \"σ\",\n \"964\": \"τ\",\n \"965\": \"υ\",\n \"966\": \"φ\",\n \"967\": \"χ\",\n \"968\": \"ψ\",\n \"969\": \"ω\",\n \"977\": \"ϑ\",\n \"978\": \"ϒ\",\n \"981\": \"ϕ\",\n \"982\": \"ϖ\",\n \"8194\": \" \",\n \"8195\": \" \",\n \"8201\": \" \",\n \"8204\": \"‌\",\n \"8205\": \"‍\",\n \"8206\": \"‎\",\n \"8207\": \"‏\",\n \"8211\": \"–\",\n \"8212\": \"—\",\n \"8216\": \"‘\",\n \"8217\": \"’\",\n \"8220\": \"“\",\n \"8221\": \"”\",\n \"8222\": \"„\",\n \"8224\": \"†\",\n \"8225\": \"‡\",\n \"8226\": \"•\",\n \"8230\": \"…\",\n \"8240\": \"‰\",\n \"8242\": \"′\",\n \"8243\": \"″\",\n \"8249\": \"‹\",\n \"8250\": \"›\",\n \"8254\": \"‾\",\n \"8260\": \"⁄\",\n \"8364\": \"€\",\n \"8472\": \"℘\",\n \"8465\": \"ℑ\",\n \"8476\": \"ℜ\",\n \"8482\": \"™\",\n \"8501\": \"ℵ\",\n \"8592\": \"←\",\n \"8593\": \"↑\",\n \"8594\": \"→\",\n \"8595\": \"↓\",\n \"8596\": \"↔\",\n \"8629\": \"↵\",\n \"8656\": \"⇐\",\n \"8657\": \"⇑\",\n \"8658\": \"⇒\",\n \"8659\": \"⇓\",\n \"8660\": \"⇔\",\n \"8704\": \"∀\",\n \"8706\": \"∂\",\n \"8707\": \"∃\",\n \"8709\": \"∅\",\n \"8711\": \"∇\",\n \"8712\": \"∈\",\n \"8713\": \"∉\",\n \"8715\": \"∋\",\n \"8719\": \"∏\",\n \"8721\": \"∑\",\n \"8722\": \"−\",\n \"8727\": \"∗\",\n \"8730\": \"√\",\n \"8733\": \"∝\",\n \"8734\": \"∞\",\n \"8736\": \"∠\",\n \"8743\": \"∧\",\n \"8744\": \"∨\",\n \"8745\": \"∩\",\n \"8746\": \"∪\",\n \"8747\": \"∫\",\n \"8756\": \"∴\",\n \"8764\": \"∼\",\n \"8773\": \"≅\",\n \"8776\": \"≈\",\n \"8800\": \"≠\",\n \"8801\": \"≡\",\n \"8804\": \"≤\",\n \"8805\": \"≥\",\n \"8834\": \"⊂\",\n \"8835\": \"⊃\",\n \"8836\": \"⊄\",\n \"8838\": \"⊆\",\n \"8839\": \"⊇\",\n \"8853\": \"⊕\",\n \"8855\": \"⊗\",\n \"8869\": \"⊥\",\n \"8901\": \"⋅\",\n \"8968\": \"⌈\",\n \"8969\": \"⌉\",\n \"8970\": \"⌊\",\n \"8971\": \"⌋\",\n \"9801\": \"⟨\",\n \"9802\": \"⟩\",\n \"9674\": \"◊\",\n \"9824\": \"♠\",\n \"9827\": \"♣\",\n \"9829\": \"♥\",\n \"9839\": \"♦\",\n \"61473\": \"!\",\n \"61474\": \"∀\",\n \"61475\": \"%\",\n \"61476\": \"∃\",\n \"61478\": \"&\",\n \"61479\": \"∋\",\n \"61480\": \"(\",\n \"61481\": \")\",\n \"61482\": \"*\",\n \"61483\": \"+\",\n \"61484\": \",\",\n \"61485\": \"—\",\n \"61486\": \".\",\n \"61487\": \"/\",\n \"61488\": \"0\",\n \"61489\": \"1\",\n \"61490\": \"2\",\n \"61491\": \"3\",\n \"61492\": \"4\",\n \"61493\": \"5\",\n \"61494\": \"6\",\n \"61495\": \"7\",\n \"61496\": \"8\",\n \"61497\": \"9\",\n \"61498\": \":\",\n \"61499\": \";\",\n \"61500\": \"<\",\n \"61501\": \"=\",\n \"61502\": \">\",\n \"61503\": \"?\",\n \"61504\": \"≅\",\n \"61505\": \"Α\",\n \"61506\": \"Β\",\n \"61507\": \"Χ\",\n \"61508\": \"Δ\",\n \"61509\": \"Ε\",\n \"61510\": \"Φ\",\n \"61511\": \"Γ\",\n \"61512\": \"Η\",\n \"61513\": \"Ι\",\n \"61514\": \"ϕ\",\n \"61515\": \"Κ\",\n \"61516\": \"Λ\",\n \"61517\": \"Μ\",\n \"61518\": \"Ν\",\n \"61519\": \"Ο\",\n \"61520\": \"Π\",\n \"61521\": \"Θ\",\n \"61522\": \"Ρ\",\n \"61523\": \"Σ\",\n \"61524\": \"Τ\",\n \"61525\": \"Υ\",\n \"61526\": \"ς\",\n \"61527\": \"Ω\",\n \"61528\": \"Ξ\",\n \"61529\": \"Ψ\",\n \"61530\": \"Ζ\",\n \"61531\": \"[\",\n \"61532\": \"∴\",\n \"61533\": \"]\",\n \"61534\": \"⊥\",\n \"61535\": \"_\",\n \"61536\": \"‾\",\n \"61537\": \"α\",\n \"61538\": \"β\",\n \"61539\": \"χ\",\n \"61540\": \"δ\",\n \"61541\": \"ε\",\n \"61542\": \"φ\",\n \"61543\": \"γ\",\n \"61544\": \"η\",\n \"61545\": \"τ\",\n \"61546\": \"ϕ\",\n \"61547\": \"κ\",\n \"61548\": \"λ\",\n \"61549\": \"μ\",\n \"61550\": \"ν\",\n \"61551\": \"ο\",\n \"61552\": \"π\",\n \"61553\": \"θ\",\n \"61554\": \"ρ\",\n \"61555\": \"σ\",\n \"61556\": \"τ\",\n \"61557\": \"υ\",\n \"61558\": \"ϖ\",\n \"61559\": \"ω\",\n \"61560\": \"ξ\",\n \"61561\": \"ψ\",\n \"61562\": \"ζ\",\n \"61563\": \"{\",\n \"61564\": \"|\",\n \"61565\": \"}\",\n \"61566\": \"∼\",\n \"61600\": \"€\",\n \"61601\": \"ϒ\",\n \"61602\": \"′\",\n \"61603\": \"≤\",\n \"61604\": \"⁄\",\n \"61605\": \"∞\",\n \"61606\": \"ƒ\",\n \"61607\": \"♣\",\n \"61608\": \"♦\",\n \"61609\": \"♥\",\n \"61610\": \"♠\",\n \"61611\": \"↔\",\n \"61612\": \"←\",\n \"61613\": \"↑\",\n \"61614\": \"→\",\n \"61615\": \"↓\",\n \"61616\": \"°\",\n \"61617\": \"±\",\n \"61618\": \"″\",\n \"61619\": \"≥\",\n \"61620\": \"×\",\n \"61621\": \"∝\",\n \"61622\": \"∂\",\n \"61623\": \"•\",\n \"61624\": \"÷\",\n \"61625\": \"≠\",\n \"61626\": \"≡\",\n \"61627\": \"≈\",\n \"61628\": \"…\",\n \"61629\": \"|\",\n \"61630\": \"—\",\n \"61631\": \"↵\",\n \"61632\": \"ℵ\",\n \"61633\": \"ℑ\",\n \"61634\": \"ℜ\",\n \"61635\": \"℘\",\n \"61636\": \"⊗\",\n \"61637\": \"⊕\",\n \"61638\": \"∅\",\n \"61639\": \"∩\",\n \"61640\": \"∪\",\n \"61641\": \"⊃\",\n \"61642\": \"⊇\",\n \"61643\": \"⊄\",\n \"61644\": \"⊂\",\n \"61645\": \"⊆\",\n \"61646\": \"∈\",\n \"61647\": \"∉\",\n \"61648\": \"∠\",\n \"61649\": \"∇\",\n \"61650\": \"®\",\n \"61651\": \"©\",\n \"61652\": \"™\",\n \"61653\": \"∏\",\n \"61654\": \"√\",\n \"61655\": \"·\",\n \"61656\": \"¬\",\n \"61657\": \"∧\",\n \"61658\": \"∨\",\n \"61659\": \"⇔\",\n \"61660\": \"⇐\",\n \"61661\": \"⇑\",\n \"61662\": \"⇒\",\n \"61663\": \"⇓\",\n \"61664\": \"◊\",\n \"61665\": \"⟨\",\n \"61666\": \"®\",\n \"61667\": \"©\",\n \"61668\": \"™\",\n \"61669\": \"∑\",\n \"61673\": \"⌈\",\n \"61675\": \"⌊\",\n \"61681\": \"⟩\",\n \"61682\": \"∫\",\n \"61689\": \"⌉\",\n \"61691\": \"⌋\"\n },\n \"latex\": {\n \"comment_begin\": \"\\\\% \",\n \"comment_end\": \"\\n\",\n \"document_begin\": \"\\\\documentclass[11pt]{article}\\n\\\\title{}\\n\",\n \"document_end\": \"\\\\end{document}\\n\",\n \"body_begin\": \"\\n\\n\\\\begin{document}\\n\\\\maketitle\\n\\n\",\n \"paragraph_begin\": \"\\\\par\\n\",\n \"paragraph_end\": \"\",\n \"line_break\": \"\\\\par\\n\",\n \"bold_begin\": \"{\\\\bf \",\n \"bold_end\": \"}\",\n \"italic_begin\": \"{\\\\it \",\n \"italic_end\": \"}\",\n \"underline_begin\": \"\",\n \"underline_end\": \"\\n\",\n \"strikethru_begin\": \"{\",\n \"strikethru_end\": \"}\",\n \"<U23>\": \"\\\\#\",\n \"<U24>\": \"{\\\\$}\",\n \"<U25>\": \"\\\\%\",\n \"<U26>\": \"\\\\&\",\n \"<U2A>\": \"{\\\\ast}\",\n \"<U5C>\": \"{\\\\slash}\",\n \"<U5E>\": \"{\\\\caret}\",\n \"<U5F>\": \"\\\\_\",\n \"<U7B>\": \"\\\\{\",\n \"<U7C>\": \"$\\\\mid$\",\n \"<U7D>\": \"\\\\}\",\n \"<U7E>\": \"\\\\~{ }\",\n \"<U85>\": \"{\\\\ldots}\",\n \"<U86>\": \"{\\\\dag}\",\n \"<U87>\": \"{\\\\ddag}\",\n \"<U8C>\": \"{\\\\OE}\",\n \"<U95>\": \"{\\\\bullet}\",\n \"<U96>\": \"--\",\n \"<U97>\": \"---\",\n \"<UA0>\": \"\\\\:\",\n \"<UA3>\": \"{\\\\pounds}\",\n \"<UA5>\": \"\\\\Y\",\n \"<UA9>\": \"{\\\\copyright}\",\n \"<UB0>\": \"\\\\o \",\n \"<UB1>\": \"\\\\+- \",\n \"<UB2>\": \"$^{2}$\",\n \"<UB3>\": \"$^{3}$\",\n \"<UB6>\": \"\\\\P \",\n \"<UB9>\": \"$^{1}$\",\n \"<UBC>\": \"\\\\frac{1}{4}\",\n \"<UBD>\": \"\\\\frac{1}{2}\",\n \"<UBE>\": \"\\\\frac{3}{4}\",\n \"<UC0>\": \"\\\\`{A}\",\n \"<UC1>\": \"\\\\'{A}\",\n \"<UC2>\": \"\\\\o{A}\",\n \"<UC3>\": \"\\\\~{A}\",\n \"<UC4>\": \"\\\\\\\"{A}\",\n \"<UC6>\": \"\\\\AE\",\n \"<UC7>\": \"\\\\c{C}\",\n \"<UC8>\": \"\\\\`{E}\",\n \"<UC9>\": \"\\\\'{E}\",\n \"<UCA>\": \"\\\\o{E}\",\n \"<UCB>\": \"\\\\\\\"{E}\",\n \"<UCC>\": \"\\\\`{I}\",\n \"<UCD>\": \"\\\\'{I}\",\n \"<UCE>\": \"\\\\o{I}\",\n \"<UCF>\": \"\\\\\\\"{I}\",\n \"<UD0>\": \"\\\\ETH \",\n \"<UD1>\": \"\\\\~{N}\",\n \"<UD2>\": \"\\\\`{O}\",\n \"<UD3>\": \"\\\\'{O}\",\n \"<UD4>\": \"\\\\o{O}\",\n \"<UD5>\": \"\\\\~{O}\",\n \"<UD6>\": \"\\\\\\\"{O}\",\n \"<UD7>\": \"\\\\mult \",\n \"<UD9>\": \"\\\\`{U}\",\n \"<UDA>\": \"\\\\'{U}\",\n \"<UDB>\": \"\\\\o{U}\",\n \"<UDC>\": \"\\\\\\\"{U}\",\n \"<UDD>\": \"\\\\'{Y}\",\n \"<UDE>\": \"\\\\THORN\",\n \"<UE0>\": \"\\\\`{a}\",\n \"<UE1>\": \"\\\\'{a}\",\n \"<UE2>\": \"\\\\o{a}\",\n \"<UE3>\": \"\\\\~{a}\",\n \"<UE4>\": \"\\\\\\\"{a}\",\n \"<UE6>\": \"\\\\ae \",\n \"<UE7>\": \"\\\\c{c}\",\n \"<UE8>\": \"\\\\`{e}\",\n \"<UE9>\": \"\\\\'{e}\",\n \"<UEA>\": \"\\\\o{e}\",\n \"<UEB>\": \"\\\\\\\"{e}\",\n \"<UEC>\": \"\\\\`{i}\",\n \"<UED>\": \"\\\\'{i}\",\n \"<UEE>\": \"\\\\o{i}\",\n \"<UEF>\": \"\\\\\\\"{i}\",\n \"<UF0>\": \"\\\\eth \",\n \"<UF1>\": \"\\\\~{n}\",\n \"<UF2>\": \"\\\\`{o}\",\n \"<UF3>\": \"\\\\'{o}\",\n \"<UF4>\": \"\\\\o{o}\",\n \"<UF5>\": \"\\\\~{o}\",\n \"<UF6>\": \"\\\\\\\"{o}\",\n \"<UF7>\": \"\\\\div \",\n \"<UF8>\": \"\\\\slash{o}\",\n \"<UF9>\": \"\\\\`{u}\",\n \"<UFA>\": \"\\\\'{u}\",\n \"<UFB>\": \"\\\\o{u}\",\n \"<UFC>\": \"\\\\\\\"{u}\",\n \"<UFD>\": \"\\\\'{y}\",\n \"<UFE>\": \"\\\\thorn \",\n \"<UFF>\": \"\\\\\\\"{y}\",\n \"913\": \"A\",\n \"914\": \"B\",\n \"915\": \"$\\\\Gamma$\",\n \"916\": \"$\\\\Delta$\",\n \"917\": \"E\",\n \"918\": \"Z\",\n \"919\": \"H\",\n \"920\": \"$\\\\Theta$\",\n \"921\": \"I\",\n \"922\": \"K\",\n \"923\": \"$\\\\Lambda$\",\n \"924\": \"M\",\n \"925\": \"N\",\n \"926\": \"$\\\\Xi$\",\n \"927\": \"O\",\n \"928\": \"$\\\\Pi$\",\n \"929\": \"P\",\n \"931\": \"$\\\\Sigma$\",\n \"932\": \"T\",\n \"933\": \"$\\\\Upsilon$\",\n \"934\": \"$\\\\Phi$\",\n \"935\": \"X\",\n \"936\": \"$\\\\Psi$\",\n \"937\": \"$\\\\Omega$\",\n \"945\": \"$\\\\alpha$\",\n \"946\": \"$\\\\beta$\",\n \"947\": \"$\\\\gamma$\",\n \"948\": \"$\\\\delta$\",\n \"949\": \"$\\\\varepsilon$\",\n \"950\": \"$\\\\zeta$\",\n \"951\": \"$\\\\eta$\",\n \"952\": \"$\\\\theta$\",\n \"953\": \"$\\\\iota$\",\n \"954\": \"$\\\\kappa$\",\n \"955\": \"$\\\\lambda$\",\n \"956\": \"$\\\\mu$\",\n \"957\": \"$\\\\nu$\",\n \"958\": \"$\\\\xi$\",\n \"959\": \"o\",\n \"960\": \"$\\\\pi$\",\n \"961\": \"$\\\\rho$\",\n \"962\": \"$\\\\varsigma$\",\n \"963\": \"$\\\\sigma$\",\n \"964\": \"$\\\\tau$\",\n \"965\": \"$\\\\upsilon$\",\n \"966\": \"$\\\\phi$\",\n \"967\": \"$\\\\chi$\",\n \"968\": \"$\\\\psi$\",\n \"969\": \"$\\\\omega$\",\n \"977\": \"$\\\\vartheta$\",\n \"981\": \"$\\\\varphi$\",\n \"982\": \"$\\\\varpi$\",\n \"1008\": \"$\\\\varkappa$\",\n \"1009\": \"$\\\\varrho$\",\n \"1013\": \"$\\\\epsilon$\"\n }\n};\n", "import { Budget, UnrtfError } from './contracts.js';\nimport { extractRtf } from './extract.js';\nimport { personalities } from './personalities.js';\nconst normal = { bold: false, italic: false, underline: false, strike: false };\n/** Strict UTF-8 projection. This is deliberately not a GNU output personality. */\nexport async function* renderRtf(source, options, budget = new Budget(options)) {\n if (options.profile === 'gnu-0.21.10') {\n yield* renderPersonality(source, options, budget);\n return;\n }\n const encoder = new TextEncoder(), html = options.format === 'html';\n if (!html && options.format !== 'text')\n throw new UnrtfError('E_PROFILE', 'Unsupported output format', 0);\n let style = { ...normal }, paragraph = false, table = false, row = false, cell = false;\n let defaultFont;\n const stack = [], fonts = new Map(), colors = new Map();\n const emit = (text, offset) => {\n // All fragments are bounded by one decoded event plus fixed markup.\n budget.charge('work', text.length, offset);\n let length = 0;\n for (const char of text) {\n const code = char.codePointAt(0);\n length += code <= 0x7f ? 1 : code <= 0x7ff ? 2 : code <= 0xffff ? 3 : 4;\n }\n budget.charge('outputBytes', length, offset);\n const working = text.length * 2 + length;\n budget.charge('retainedBytes', working, offset);\n try {\n return encoder.encode(text);\n }\n finally {\n budget.release('retainedBytes', working);\n }\n };\n const endParagraph = () => { if (!paragraph)\n return ''; paragraph = false; return '</p>'; };\n const beginText = () => {\n if (table) {\n if (!row)\n throw new UnrtfError('E_PARSE', 'Text outside table row', 0);\n if (!cell) {\n cell = true;\n return '<td>';\n }\n return '';\n }\n if (!paragraph) {\n paragraph = true;\n return '<p>';\n }\n return '';\n };\n const styled = (text) => {\n let start = '', end = '';\n for (const [enabled, tag] of [[style.bold, 'strong'], [style.italic, 'em'], [style.underline, 'u'], [style.strike, 's']])\n if (enabled) {\n start += `<${tag}>`;\n end = `</${tag}>` + end;\n }\n const css = [];\n const fontId = style.font ?? defaultFont;\n const font = fontId === undefined ? undefined : fonts.get(fontId);\n if (font !== undefined) {\n budget.charge('work', font.length * 2, 0);\n budget.bound('retainedBytes', font.length * 16, 0);\n let name = '';\n for (const char of font) {\n const code = char.codePointAt(0);\n name += code >= 65 && code <= 90 || code >= 97 && code <= 122 || code >= 48 && code <= 57 || char === ' ' || char === '-' ? char : '\\\\' + code.toString(16) + ' ';\n }\n css.push('font-family:'' + name + ''');\n }\n if (style.size !== undefined)\n css.push('font-size:' + style.size / 2 + 'pt');\n if (style.color !== undefined)\n css.push('color:' + style.color);\n if (css.length) {\n start += '<span style=\"' + css.join(';') + '\">';\n end = '</span>' + end;\n }\n return start + text + end;\n };\n let preamble;\n try {\n // Admit markup before input acquisition, but do not publish a document\n // until the source has produced an event (opening a VFS file can fail).\n preamble = html ? emit('<!DOCTYPE html><html><body>', 0) : undefined;\n if (preamble)\n budget.charge('retainedBytes', preamble.length, 0);\n for await (const event of extractRtf(source, options, budget, false)) {\n if (preamble) {\n const bytes = preamble;\n budget.release('retainedBytes', bytes.length);\n preamble = undefined;\n yield bytes;\n }\n budget.charge('work', 1, event.offset);\n if (event.kind === 'open') {\n budget.charge('retainedBytes', 32, event.offset);\n stack.push(style);\n style = { ...style };\n }\n else if (event.kind === 'close') {\n style = stack.pop();\n budget.release('retainedBytes', 32);\n }\n else if (event.kind === 'font') {\n fonts.set(event.font.id, event.font.name);\n }\n else if (event.kind === 'color') {\n colors.set(event.index, event.rgb);\n }\n else if (event.kind === 'text') {\n if (!html) {\n yield emit(event.text, event.offset);\n continue;\n }\n let fragment = '';\n if (table && !row) {\n fragment = '</tbody></table>';\n table = false;\n }\n for (const char of event.text) {\n if (char === '\\n') {\n if (table || event.boundary === 'line')\n fragment += beginText() + '<br>';\n else\n fragment += paragraph ? endParagraph() : '<p></p>';\n }\n else\n fragment += beginText() + styled(char === '&' ? '&' : char === '<' ? '<' : char === '>' ? '>' : char === '\\t' ? '	' : char);\n }\n if (fragment)\n yield emit(fragment, event.offset);\n }\n else if (event.kind === 'control') {\n const { name, parameter, offset } = event;\n if (name === 'plain')\n style = { ...normal };\n else if (name === 'f' || name === 'deff') {\n if (parameter !== undefined) {\n if (name === 'deff')\n defaultFont = parameter;\n style.font = parameter;\n }\n }\n else if (name === 'fs') {\n if (parameter === undefined || parameter <= 0 || parameter > 32767)\n throw new UnrtfError('E_PARSE', 'Invalid font size', offset);\n style.size = parameter;\n }\n else if (name === 'cf') {\n if (parameter === undefined || !colors.has(parameter))\n throw new UnrtfError('E_PARSE', 'Undeclared color', offset);\n const color = colors.get(parameter);\n if (color === undefined)\n delete style.color;\n else\n style.color = color;\n }\n else if (name === 'b')\n style.bold = parameter !== 0;\n else if (name === 'i')\n style.italic = parameter !== 0;\n else if (name === 'ul' || name === 'ulnone')\n style.underline = name === 'ul' && parameter !== 0;\n else if (name === 'strike')\n style.strike = parameter !== 0;\n else if (name === 'trowd') {\n if (row)\n throw new UnrtfError('E_PARSE', 'Nested or unterminated table row', offset);\n if (html) {\n const prefix = endParagraph() + (table ? '' : '<table><tbody>') + '<tr>';\n table = true;\n yield emit(prefix, offset);\n }\n row = true;\n }\n else if (name === 'cell') {\n if (!row)\n throw new UnrtfError('E_PARSE', 'Cell outside table row', offset);\n if (html) {\n yield emit(cell ? '</td>' : '<td></td>', offset);\n cell = false;\n }\n else\n yield emit('\\t', offset);\n }\n else if (name === 'row') {\n if (!row)\n throw new UnrtfError('E_PARSE', 'Row end outside table', offset);\n if (html) {\n yield emit((cell ? '</td>' : '') + '</tr>', offset);\n cell = false;\n }\n else\n yield emit('\\n', offset);\n row = false;\n }\n }\n }\n if (row)\n throw new UnrtfError('E_PARSE', 'Unterminated table row', 0);\n if (html)\n yield emit(endParagraph() + (table ? '</tbody></table>' : '') + '</body></html>', 0);\n }\n finally {\n if (preamble)\n budget.release('retainedBytes', preamble.length);\n budget.release('retainedBytes', stack.length * 32);\n stack.length = 0;\n fonts.clear();\n colors.clear();\n }\n}\n/** Official output templates over strict extraction, without legacy parser defects. */\nasync function* renderPersonality(source, options, budget) {\n const personality = personalities[options.format];\n if (!personality)\n throw new UnrtfError('E_PROFILE', 'Unsupported output personality', 0);\n const template = (name) => (personality[name] ?? '').split('\\\\%').join('%');\n const encoder = new TextEncoder();\n const emit = (text, offset) => {\n budget.charge('work', text.length, offset);\n budget.charge('retainedBytes', text.length * 5, offset);\n try {\n const bytes = encoder.encode(text);\n budget.charge('outputBytes', bytes.length, offset);\n return bytes;\n }\n finally {\n budget.release('retainedBytes', text.length * 5);\n }\n };\n let started = false;\n let active = [];\n const stack = [];\n const controls = { b: 'bold', i: 'italic', ul: 'underline', strike: 'strikethru' };\n try {\n for await (const event of extractRtf(source, options, budget, false)) {\n if (!started) {\n const banner = options.quiet ? '' : template('comment_begin') + ' Translation from RTF performed by UnRTF, version 0.21.10 ' + template('comment_end');\n yield emit(template('document_begin') + template('header_begin') + template('utf8_encoding') + banner + template('header_end') + template('body_begin'), event.offset);\n started = true;\n }\n budget.charge('work', 1, event.offset);\n if (event.kind === 'open') {\n budget.charge('retainedBytes', 128, event.offset);\n stack.push([...active]);\n }\n else if (event.kind === 'close') {\n yield emit([...active].reverse().map(name => template(name + '_end')).join(''), event.offset);\n active = stack.pop();\n budget.release('retainedBytes', 128);\n if (stack.length)\n yield emit(active.map(name => template(name + '_begin')).join(''), event.offset);\n }\n else if (event.kind === 'control') {\n const name = controls[event.name];\n if (name || event.name === 'plain' || event.name === 'ulnone') {\n if (name && event.parameter !== 0) {\n if (!active.includes(name)) {\n active.push(name);\n yield emit(template(name + '_begin'), event.offset);\n }\n continue;\n }\n yield emit([...active].reverse().map(value => template(value + '_end')).join(''), event.offset);\n if (event.name === 'plain')\n active = [];\n else {\n const value = name ?? 'underline';\n active = active.filter(item => item !== value);\n if (event.parameter !== 0 && event.name !== 'ulnone')\n active.push(value);\n }\n yield emit(active.map(value => template(value + '_begin')).join(''), event.offset);\n }\n }\n else if (event.kind === 'text') {\n let text = '';\n for (const char of event.text) {\n const code = char.codePointAt(0);\n if (char === '\\n')\n text += template('line_break');\n else if (options.noremap)\n text += char;\n else\n text += personality['<U' + code.toString(16).toUpperCase() + '>'] ?? personality[String(code)] ?? char;\n }\n yield emit(text, event.offset);\n }\n }\n if (started)\n yield emit(template('body_end') + template('document_end'), 0);\n }\n finally {\n budget.release('retainedBytes', stack.length * 128);\n }\n}\n", "import { commandRuntimeIdentity, getCommandArguments } from 'safe-bash-contracts/command';\nimport { FsError } from 'safe-bash-contracts/errors';\nimport { readBytes, writeBytes } from 'safe-bash-contracts/io';\nimport { createOutputOperation } from 'safe-bash-contracts/output';\nimport { Budget, UnrtfError } from './contracts.js';\nimport { renderRtf } from './render.js';\nconst defaultLimits = Object.freeze({ inputBytes: 16777216, retainedBytes: 1048576, binaryBytes: 16777216, images: 1000, imageBytes: 16777216, tokenBytes: 8192, tokens: 16777216, depth: 256, decodedBytes: 33554432, outputBytes: 67108864, work: 268435456 });\nasync function executeUnrtf(context, configuration = {}, cli = false) {\n const controller = new AbortController(), signal = controller.signal;\n const abort = () => controller.abort(context.signal.reason);\n const limits = { ...defaultLimits, ...configuration.limits };\n let format = configuration.format ?? 'html', file = configuration.file;\n let profile = configuration.profile, quiet = configuration.quiet, noremap = configuration.noremap;\n let failed = false;\n const scope = { signal, ...(context.registerCleanup ? { registerCleanup: context.registerCleanup.bind(context) } : {}) };\n let stdout, stderr;\n let pending = Promise.resolve(), closing;\n const cleanup = () => {\n if (closing)\n return closing;\n closing = Promise.resolve().then(async () => {\n controller.abort(new UnrtfError('E_CANCELLED', 'RTF invocation closed', 0));\n await Promise.allSettled([pending]);\n context.signal.removeEventListener('abort', abort);\n const results = await Promise.allSettled([stdout?.close(), stderr?.close()]);\n const errors = results.filter(result => result.status === 'rejected').map(result => result.reason);\n if (errors.length)\n throw new AggregateError(errors, 'RTF invocation cleanup failed');\n });\n return closing;\n };\n context.registerCleanup?.(cleanup);\n pending = Promise.resolve().then(async () => {\n context.signal.addEventListener('abort', abort, { once: true });\n if (context.signal.aborted)\n abort();\n signal.throwIfAborted();\n stdout = createOutputOperation(scope, context.stdout);\n stderr = createOutputOperation(scope, context.stderr);\n const budget = new Budget({ limits, signal });\n const admit = (value) => {\n budget.bound('tokenBytes', value.length, 0);\n budget.charge('work', value.length, 0);\n const bytes = new TextEncoder().encode(value).length;\n budget.bound('tokenBytes', bytes, 0);\n budget.charge('retainedBytes', bytes + value.length * 2, 0);\n };\n if (cli) {\n const carrier = getCommandArguments(context);\n budget.bound('tokens', carrier.args.length, 0);\n file = undefined;\n let operands = false;\n for (let i = 0; i < carrier.args.length; i++) {\n const projected = carrier.args[i];\n admit(projected);\n const bytes = carrier.bytes(i);\n budget.charge('work', bytes.length, 0);\n budget.bound('tokenBytes', bytes.length, 0);\n let arg;\n try {\n arg = new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(bytes);\n }\n catch {\n throw new UnrtfError('E_ENCODING', 'Arguments must be UTF-8', 0);\n }\n if (!operands && arg === '--') {\n operands = true;\n continue;\n }\n if (operands) {\n if (file !== undefined)\n throw new UnrtfError('E_PARSE', 'Only one input file is supported', 0);\n file = arg;\n }\n else if (arg === '--text')\n format = 'text';\n else if (arg === '--html')\n format = 'html';\n else if (arg === '--latex')\n format = 'latex';\n else if (arg.startsWith('--profile='))\n profile = arg.slice('--profile='.length);\n else if (arg === '--quiet')\n quiet = true;\n else if (arg === '--noremap')\n noremap = true;\n else if (arg === '--nopict' || arg === '-n') { /* No profile exports pictures. */ }\n else if (arg.startsWith('--') && arg !== '--' || arg.startsWith('-') && arg !== '-' && arg !== '--')\n throw new UnrtfError('E_PROFILE', 'Option requires an unadmitted personality/configuration profile', 0);\n else {\n if (file !== undefined)\n throw new UnrtfError('E_PARSE', 'Only one input file is supported', 0);\n file = arg;\n }\n }\n }\n else if (file !== undefined)\n admit(file);\n new Budget({ limits, signal, ...(profile === undefined ? {} : { profile }) });\n if (format !== 'text' && format !== 'html' && !(profile === 'gnu-0.21.10' && format === 'latex') || noremap && profile !== 'gnu-0.21.10')\n throw new UnrtfError('E_PROFILE', 'Option requires the GNU personality profile', 0);\n if (file?.includes('\\0'))\n throw new UnrtfError('E_PARSE', 'NUL is unavailable in VFS paths', 0);\n async function* source() {\n if (file === undefined) {\n yield* readBytes(context.stdin, signal);\n return;\n }\n const path = file.startsWith('/') ? file : context.cwd + '/' + file;\n for (const candidate of [path, path + '.rtf']) {\n let yielded = false;\n try {\n if (context.fs.readStream) {\n for await (const bytes of readBytes(context.fs.readStream(candidate, { signal }), signal)) {\n yielded = true;\n yield bytes;\n }\n }\n else {\n const bytes = await context.fs.readFile(candidate, { signal, maxBytes: Math.min(limits.inputBytes, limits.retainedBytes) });\n budget.charge('retainedBytes', bytes.length, 0);\n try {\n yield bytes;\n }\n finally {\n budget.release('retainedBytes', bytes.length);\n }\n }\n return;\n }\n catch (error) {\n if (yielded || candidate !== path || !(error instanceof FsError) || error.code !== 'ENOENT')\n throw error;\n }\n }\n }\n for await (const bytes of renderRtf(source(), { format, limits, signal, ...(quiet === undefined ? {} : { quiet }), ...(noremap === undefined ? {} : { noremap }), ...(profile === undefined ? {} : { profile }) }, budget))\n await writeBytes(stdout.output, bytes, stdout.signal);\n });\n try {\n await pending;\n return { exitCode: 0 };\n }\n catch (error) {\n failed = true;\n if (signal.aborted)\n throw error;\n if (!(error instanceof UnrtfError) && !(error instanceof FsError))\n throw error;\n const message = new TextEncoder().encode('unrtf: ' + error.code + ': ' + error.message + '\\n');\n // Diagnostics are separately bounded, so exhaustion can still be reported.\n if (message.length > limits.tokenBytes + 1024)\n throw error;\n if (!stderr)\n throw error;\n await writeBytes(stderr.output, message, stderr.signal);\n return { exitCode: 1 };\n }\n finally {\n await cleanup().catch((error) => { if (!failed)\n throw error; });\n }\n}\n/** Stream stdin or one literal VFS file through the strict UTF-8 profile. */\nexport const unrtf = executeUnrtf;\nexport function createUnrtfCommand(options = {}) {\n const configuration = Object.freeze({ ...options, limits: Object.freeze({ ...options.limits }) });\n return Object.freeze({ name: 'unrtf', runtimeIdentity: commandRuntimeIdentity, description: 'Project bounded RTF byte streams using the strict UTF-8 profile', execute(context) { return executeUnrtf(context, configuration, true); } });\n}\nexport const unrtfCommand = createUnrtfCommand();\nexport function unrtfCommands(options = {}) {\n const command = createUnrtfCommand(options), replace = options.replace ?? false;\n return { name: 'unrtf', setup(host) { host.commands.register(command, { replace }); } };\n}\n", "export { UnrtfError, unrtfBaseline } from './contracts.js';\nimport { tokenizeRtf as tokens } from './tokenizer.js';\nexport const tokenizeRtf = tokens;\nexport { extractRtf, charsetCodePages, codecLabels } from './extract.js';\nexport { renderRtf } from './render.js';\nexport { unrtf, createUnrtfCommand, unrtfCommand, unrtfCommands } from './command.js';\n"],
|
|
5
|
-
"mappings": "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OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,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,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,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,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,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,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,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,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,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,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,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,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,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,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,SAAS;AAAA,EACb;AAAA,EACA,SAAS;AAAA,IACL,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,cAAc;AAAA,IACd,YAAY;AAAA,IACZ,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,mBAAmB;AAAA,IACnB,iBAAiB;AAAA,IACjB,oBAAoB;AAAA,IACpB,kBAAkB;AAAA,IAClB,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,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,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,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,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,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,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,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;AAAA,IACT,SAAS;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",
|
|
4
|
+
"sourcesContent": ["export const defaultUnrtfLimits = Object.freeze({ inputBytes: Infinity, retainedBytes: Infinity, binaryBytes: Infinity, images: Infinity, imageBytes: Infinity, tokenBytes: Infinity, tokens: Infinity, depth: Infinity, decodedBytes: Infinity, outputBytes: Infinity, work: Infinity });\nexport const unrtfBaseline = Object.freeze({\n version: '0.21.10', archiveSha256: 'b49f20211fa69fff97d42d6e782a62d7e2da670b064951f14bbff968c93734ae',\n profile: 'standards-strict', nativePersonalityCompatible: false,\n});\nexport class UnrtfError extends Error {\n code;\n offset;\n resource;\n status = 1;\n constructor(code, message, offset, resource) {\n super(message);\n this.code = code;\n this.offset = offset;\n this.resource = resource;\n this.name = 'UnrtfError';\n }\n}\nexport class Budget {\n counts = {};\n options;\n constructor(options) {\n if (options.profile !== undefined && options.profile !== 'standards-strict' && options.profile !== 'gnu-0.21.10')\n throw new UnrtfError('E_PROFILE', 'Only standards-strict extraction is admitted; native-legacy and recovery are not implemented', 0);\n this.options = { ...options, limits: { ...defaultUnrtfLimits, ...options.limits } };\n for (const name of ['retainedBytes', 'images', 'imageBytes', 'inputBytes', 'binaryBytes', 'tokenBytes', 'tokens', 'depth', 'decodedBytes', 'outputBytes', 'work']) {\n if (this.options.limits[name] !== Infinity && (!Number.isSafeInteger(this.options.limits[name]) || this.options.limits[name] < 0))\n throw new UnrtfError('E_LIMIT', 'Limits must be nonnegative safe integers', 0, name);\n }\n }\n release(resource, value) {\n this.counts[resource] = (this.counts[resource] ?? 0) - value;\n }\n check(offset) {\n if (this.options.signal.aborted)\n throw new UnrtfError('E_CANCELLED', 'RTF invocation cancelled', offset);\n }\n bound(resource, value, offset) {\n this.check(offset);\n if (value > this.options.limits[resource])\n throw new UnrtfError('E_LIMIT', `RTF ${resource} limit exceeded`, offset, resource);\n }\n charge(resource, value, offset) {\n const count = this.counts[resource] ?? 0;\n if (value > this.options.limits[resource] - count)\n throw new UnrtfError('E_LIMIT', `RTF ${resource} limit exceeded`, offset, resource);\n this.bound(resource, count + value, offset);\n this.counts[resource] = count + value;\n }\n}\n", "import { Budget, UnrtfError } from './contracts.js';\nconst letter = (byte) => byte >= 65 && byte <= 90 || byte >= 97 && byte <= 122;\nconst digit = (byte) => byte >= 48 && byte <= 57;\nconst hex = (byte) => digit(byte) ? byte - 48 : byte >= 65 && byte <= 70 ? byte - 55 : byte >= 97 && byte <= 102 ? byte - 87 : -1;\n// The intrinsic getter checks the internal typed-array kind across realms;\n// instanceof rejects valid foreign views and ordinary tags can be forged.\nconst typedArrayKind = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), Symbol.toStringTag).get;\n/** Flat tokens retain no tree or binary payload. Source chunks are borrowed only\n * until exhausted; callers must not mutate them while an invocation is active. */\nexport async function* tokenizeRtf(source, options, budget = new Budget(options)) {\n options = budget.options;\n const iterator = source[Symbol.asyncIterator]();\n let chunk = new Uint8Array(), index = 0, offset = 0, pending;\n let depth = 0, roots = 0, header = false, tokenRetained = 0, failed = false;\n const fail = (message, at = offset) => { throw new UnrtfError('E_PARSE', message, at); };\n const read = async (raw = false) => {\n for (;;) {\n budget.check(offset);\n if (pending !== undefined) {\n const byte = pending;\n pending = undefined;\n return byte;\n }\n while (index === chunk.length) {\n budget.release('retainedBytes', chunk.length);\n chunk = new Uint8Array();\n index = 0;\n budget.charge('work', 1, offset);\n const signal = options.signal;\n let abort;\n try {\n const next = await Promise.race([iterator.next(), new Promise((_, reject) => {\n abort = () => reject(new UnrtfError('E_CANCELLED', 'RTF invocation cancelled', offset));\n signal.addEventListener('abort', abort, { once: true });\n if (signal.aborted)\n abort();\n })]);\n budget.check(offset);\n if (next.done)\n return -1;\n if (!ArrayBuffer.isView(next.value) || typedArrayKind.call(next.value) !== 'Uint8Array')\n fail('RTF input must be byte chunks');\n budget.charge('inputBytes', next.value.length, offset);\n budget.charge('retainedBytes', next.value.length, offset);\n chunk = next.value;\n index = 0;\n }\n finally {\n if (abort)\n signal.removeEventListener('abort', abort);\n }\n }\n if (offset > 0 && offset % 4096 === 0) {\n await new Promise(resolve => setTimeout(resolve, 0));\n budget.check(offset);\n }\n budget.charge('work', 1, offset);\n offset++;\n const byte = chunk[index++];\n if (raw || byte !== 13)\n return byte;\n }\n };\n const emit = (token) => { budget.charge('tokens', 1, token.offset); return token; };\n try {\n for (;;) {\n const byte = await read();\n const at = offset - 1;\n if (byte < 0)\n break;\n if (byte === 10)\n continue;\n if (byte === 123) {\n if (depth === 0 && ++roots !== 1)\n fail('RTF requires one root', at);\n budget.bound('depth', depth + 1, at);\n budget.charge('retainedBytes', 128, at);\n depth++;\n yield emit({ kind: 'open', offset: at });\n continue;\n }\n if (byte === 125) {\n if (!depth || !header)\n fail('Unexpected RTF closing group', at);\n depth--;\n budget.release('retainedBytes', 128);\n yield emit({ kind: 'close', offset: at });\n continue;\n }\n if (!depth)\n fail('RTF requires a root group', at);\n if (byte !== 92) {\n if (!header)\n fail('Missing RTF header', at);\n budget.bound('tokenBytes', 1, at);\n yield emit({ kind: 'byte', byte: byte === 9 ? 32 : byte, escaped: false, offset: at });\n continue;\n }\n let control = await read();\n if (control < 0)\n fail('Truncated control', at);\n if (control === 39) {\n budget.bound('tokenBytes', 4, at);\n const high = hex(await read()), low = hex(await read());\n if (high < 0 || low < 0)\n fail('Malformed hex escape', at);\n if (!header)\n fail('Missing RTF header', at);\n yield emit({ kind: 'byte', byte: high * 16 + low, escaped: true, offset: at });\n continue;\n }\n if (!letter(control)) {\n budget.bound('tokenBytes', 2, at);\n if (!header)\n fail('Missing RTF header', at);\n yield emit(control === 10 ? { kind: 'control', name: 'par', parameter: undefined, offset: at } : { kind: 'symbol', name: String.fromCharCode(control), offset: at });\n continue;\n }\n let name = '', size = 0;\n while (letter(control)) {\n budget.bound('tokenBytes', ++size, at);\n budget.charge('retainedBytes', 2, at);\n tokenRetained += 2;\n name += String.fromCharCode(control);\n control = await read();\n }\n let parameter;\n const negative = control === 45;\n if (negative) {\n budget.bound('tokenBytes', ++size, at);\n control = await read();\n }\n if (digit(control)) {\n let value = 0;\n while (digit(control)) {\n budget.bound('tokenBytes', ++size, at);\n if (value > Math.floor((2147483648 - (control - 48)) / 10))\n fail('Control parameter overflow', at);\n // Binary lookahead belongs to the raw payload unless it is the\n // optional space delimiter; do not discard its first CR byte.\n value = value * 10 + control - 48;\n control = await read(name === 'bin');\n }\n if (!negative && value > 2147483647)\n fail('Control parameter overflow', at);\n parameter = negative ? -value : value;\n }\n else if (negative)\n fail('Missing signed parameter', at);\n if (control !== 32 && control >= 0)\n pending = control;\n if (!header) {\n if (depth !== 1 || name !== 'rtf' || parameter !== 1)\n fail('Expected RTF version 1 header', at);\n header = true;\n }\n budget.release('retainedBytes', tokenRetained);\n tokenRetained = 0;\n if (name === 'bin') {\n if (parameter === undefined || parameter < 0)\n throw new UnrtfError('E_PARSE', 'Invalid binary count', at);\n budget.charge('binaryBytes', parameter, at);\n for (let i = 0; i < parameter; i++)\n if (await read(true) < 0)\n fail('Truncated binary payload', at);\n yield emit({ kind: 'binary', length: parameter, offset: at });\n }\n else\n yield emit({ kind: 'control', name, parameter, offset: at });\n }\n if (depth || !header)\n fail('Unterminated or missing RTF root');\n }\n catch (error) {\n failed = true;\n throw error;\n }\n finally {\n budget.release('retainedBytes', chunk.length + depth * 128 + tokenRetained);\n chunk = new Uint8Array();\n pending = undefined;\n if (failed) {\n try {\n await iterator.return?.();\n }\n catch { /* Preserve the primary parsing, budget or cancellation error. */ }\n }\n else\n await iterator.return?.();\n }\n}\n", "import { Budget, UnrtfError } from './contracts.js';\nimport { tokenizeRtf } from './tokenizer.js';\n/** Explicit inventory. Availability is checked in the current JS realm; no\n * ambient iconv, locale, charmap files or fallback codecs are consulted. */\nexport const codecLabels = Object.freeze({\n 437: 'ibm437', 850: 'ibm850', 874: 'windows-874', 932: 'shift_jis', 936: 'gbk', 949: 'euc-kr', 950: 'big5',\n 1250: 'windows-1250', 1251: 'windows-1251', 1252: 'windows-1252', 1253: 'windows-1253',\n 1254: 'windows-1254', 1255: 'windows-1255', 1256: 'windows-1256', 1257: 'windows-1257',\n 1258: 'windows-1258', 10000: 'macintosh', 65001: 'utf-8',\n});\nexport const charsetCodePages = Object.freeze({\n 0: 1252, 1: 0, 2: 42, 77: 10000, 78: 10001, 79: 10003, 80: 10008, 81: 10002,\n 83: 10005, 84: 10004, 85: 10006, 86: 10081, 87: 10021, 88: 10029, 89: 10007,\n 128: 932, 129: 949, 130: 1361, 134: 936, 136: 950, 161: 1253, 162: 1254,\n 163: 1258, 177: 1255, 178: 1256, 186: 1257, 204: 1251, 222: 874, 238: 1250, 254: 437,\n});\nconst inert = new Set(['object', 'objdata', 'pict', 'fldinst', 'filetbl', 'datastore', 'datafield', 'themedata', 'info', 'stylesheet', 'header', 'footer']);\n/** Standards-correct extraction, not GNU 0.21.10 personality rendering.\n * Unknown controls are exposed for a renderer to admit or reject explicitly. */\nexport async function* extractRtf(source, options, budget = new Budget(options), accountOutput = true) {\n const fonts = new Map(), stack = [];\n let state = { uc: 1, page: 1252, font: undefined, destination: '', skip: false, starred: false, declaration: undefined };\n let colorIndex = 0, color = {};\n let defaultFont;\n let retainedDeclarations = 0;\n let decoder, activePage, fallback = 0, high, lastSpace = false;\n const codec = (page, offset) => {\n const label = codecLabels[page];\n if (!label)\n throw new UnrtfError('E_CODEC', `Code page ${page} is unavailable`, offset);\n try {\n return new TextDecoder(label, { fatal: true, ignoreBOM: true });\n }\n catch {\n throw new UnrtfError('E_CODEC', `Codec ${label} is unavailable in this realm`, offset);\n }\n };\n const appendName = (decl, text, offset) => {\n let bytes = 0;\n for (const char of text) {\n const code = char.codePointAt(0);\n bytes += code <= 0x7f ? 1 : code <= 0x7ff ? 2 : code <= 0xffff ? 3 : 4;\n }\n budget.bound('tokenBytes', decl.name.length * 2 + text.length * 2, offset);\n budget.charge('decodedBytes', bytes, offset);\n budget.charge('retainedBytes', text.length * 2, offset);\n retainedDeclarations += text.length * 2;\n decl.name += text;\n };\n const flushName = (decl, offset) => {\n if (decl.high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired surrogate in font name', offset);\n if (!decl.decoder)\n return;\n let text;\n try {\n text = decl.decoder.decode();\n }\n catch {\n throw new UnrtfError('E_ENCODING', 'Incomplete encoded font name', offset);\n }\n finally {\n delete decl.decoder;\n delete decl.activePage;\n }\n appendName(decl, text, offset);\n };\n const finishFont = (decl, offset) => {\n flushName(decl, offset);\n const name = decl.name.trim();\n const mapped = decl.charset === undefined ? 0 : charsetCodePages[decl.charset] ?? 1252;\n const page = name === 'Symbol' || decl.page === undefined && decl.charset === undefined && name.toLowerCase().includes('symbol') ? 42 : decl.page ?? mapped;\n const font = { id: decl.id, name, codePage: page, charset: decl.charset };\n budget.charge('retainedBytes', 128 + name.length * 2, offset);\n retainedDeclarations += 128 + name.length * 2;\n fonts.set(font.id, font);\n decl.ended = true;\n return { kind: 'font', font, offset };\n };\n const flush = (offset) => {\n if (!decoder)\n return '';\n try {\n return decoder.decode();\n }\n catch {\n throw new UnrtfError('E_ENCODING', 'Incomplete encoded byte sequence at encoding/group/Unicode boundary', offset);\n }\n finally {\n decoder = undefined;\n activePage = undefined;\n }\n };\n const output = (text, offset) => {\n if (!text)\n return;\n const bytes = new TextEncoder().encode(text).length;\n budget.charge('decodedBytes', bytes, offset);\n if (accountOutput)\n budget.charge('outputBytes', bytes, offset);\n lastSpace = text.endsWith(' ');\n return { kind: 'text', text, offset };\n };\n const unicode = (unit, offset) => {\n if (unit >= 0xd800 && unit <= 0xdbff) {\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate', offset);\n high = unit;\n return '';\n }\n if (unit >= 0xdc00 && unit <= 0xdfff) {\n if (high === undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired low surrogate', offset);\n const text = String.fromCharCode(high, unit);\n high = undefined;\n return text;\n }\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate', offset);\n return String.fromCharCode(unit);\n };\n try {\n for await (const token of tokenizeRtf(source, options, budget)) {\n budget.charge('work', 1, token.offset);\n if (state.starred && !state.skip && token.kind !== 'control')\n throw new UnrtfError('E_PARSE', 'Ignorable destination requires a control word', token.offset);\n if (token.kind === 'open' || token.kind === 'close') {\n const event = output(flush(token.offset), token.offset);\n if (event)\n yield event;\n fallback = 0;\n lastSpace = false;\n if (token.kind === 'open') {\n stack.push(state);\n state = { ...state, starred: false, declaration: undefined };\n }\n else {\n if (state.declaration && !state.declaration.ended) {\n yield finishFont(state.declaration, token.offset);\n }\n state = stack.pop();\n }\n yield { kind: token.kind, offset: token.offset };\n continue;\n }\n if (token.kind === 'control') {\n const { name, parameter, offset } = token;\n if (state.skip)\n continue;\n if (state.starred || inert.has(name)) {\n if (name === 'pict')\n budget.charge('images', 1, offset);\n state.starred = false;\n state.skip = true;\n state.destination = name;\n yield { kind: 'skipped', destination: name, offset };\n continue;\n }\n if (name === 'fonttbl' || name === 'colortbl') {\n state.destination = name;\n continue;\n }\n if (state.destination === 'colortbl') {\n if (name === 'red' || name === 'green' || name === 'blue') {\n if (parameter === undefined || parameter < 0 || parameter > 255)\n throw new UnrtfError('E_PARSE', 'Invalid color component', offset);\n color[name] = parameter;\n }\n continue;\n }\n if (state.destination === 'fonttbl') {\n if (name === 'f' && parameter !== undefined)\n state.declaration = { id: parameter, name: '', page: undefined, charset: undefined, fallback: 0, ended: false };\n const decl = state.declaration;\n if (decl && !decl.ended) {\n if (decl.fallback && name !== 'u') {\n decl.fallback--;\n continue;\n }\n if (name === 'cpg' || name === 'fcharset') {\n flushName(decl, offset);\n if (parameter === undefined)\n throw new UnrtfError('E_PARSE', 'Missing font encoding parameter', offset);\n if (name === 'cpg')\n decl.page = parameter;\n else\n decl.charset = parameter;\n }\n else if (name === 'uc') {\n if (parameter === undefined || parameter < 0 || parameter > 32767)\n throw new UnrtfError('E_PARSE', 'Invalid Unicode fallback count', offset);\n state.uc = parameter;\n }\n else if (name === 'u') {\n if (parameter === undefined || parameter < -32768 || parameter > 65535)\n throw new UnrtfError('E_PARSE', 'Invalid Unicode unit', offset);\n // A pending high surrogate is allowed only before its Unicode low unit.\n const priorHigh = decl.high;\n delete decl.high;\n flushName(decl, offset);\n if (priorHigh !== undefined)\n decl.high = priorHigh;\n const unit = parameter < 0 ? parameter + 65536 : parameter;\n if (unit >= 0xd800 && unit <= 0xdbff) {\n if (decl.high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired surrogate in font name', offset);\n decl.high = unit;\n }\n else if (unit >= 0xdc00 && unit <= 0xdfff) {\n if (decl.high === undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired surrogate in font name', offset);\n appendName(decl, String.fromCharCode(decl.high, unit), offset);\n delete decl.high;\n }\n else {\n if (decl.high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired surrogate in font name', offset);\n appendName(decl, String.fromCharCode(unit), offset);\n }\n decl.fallback = state.uc;\n }\n }\n continue;\n }\n if (fallback && name !== 'u') {\n fallback--;\n continue;\n }\n if (name === 'uc') {\n if (parameter === undefined || parameter < 0 || parameter > 32767)\n throw new UnrtfError('E_PARSE', 'Invalid Unicode fallback count', offset);\n state.uc = parameter;\n continue;\n }\n if (name === 'u') {\n if (parameter === undefined || parameter < -32768 || parameter > 65535)\n throw new UnrtfError('E_PARSE', 'Invalid Unicode unit', offset);\n const prior = output(flush(offset), offset);\n if (prior)\n yield prior;\n const event = output(unicode(parameter < 0 ? parameter + 65536 : parameter, offset), offset);\n if (event)\n yield event;\n fallback = state.uc;\n continue;\n }\n if (name === 'plain') {\n const event = output(flush(offset), offset);\n if (event)\n yield event;\n state.font = defaultFont;\n const page = (defaultFont === undefined ? undefined : fonts.get(defaultFont)?.codePage) || state.page;\n codec(page, offset);\n yield { kind: 'control', name, parameter, offset };\n continue;\n }\n const documentPage = { ansi: 1252, mac: 10000, pc: 437, pca: 850 };\n if (documentPage[name] !== undefined) {\n const event = output(flush(offset), offset);\n if (event)\n yield event;\n codec(documentPage[name], offset);\n state.page = documentPage[name];\n continue;\n }\n if (name === 'ansicpg' || name === 'cpg' || name === 'f' || name === 'deff') {\n const event = output(flush(offset), offset);\n if (event)\n yield event;\n if (parameter === undefined)\n throw new UnrtfError('E_PARSE', 'Missing encoding/font parameter', offset);\n if (name === 'f' || name === 'deff') {\n if (name === 'deff')\n defaultFont = parameter;\n state.font = parameter;\n const font = fonts.get(parameter);\n if (!font && name === 'f')\n throw new UnrtfError('E_PARSE', 'Undeclared font', offset);\n if (font?.codePage)\n codec(font.codePage, offset);\n yield { kind: 'control', name, parameter, offset };\n }\n else {\n codec(parameter, offset);\n state.page = parameter;\n }\n continue;\n }\n const chars = { par: '\\n', line: '\\n', tab: '\\t', emdash: '\u2014', endash: '\u2013', bullet: '\u2022', lquote: '\u2018', rquote: '\u2019', ldblquote: '\u201C', rdblquote: '\u201D' };\n if (chars[name] || name === 'cell' || name === 'row' || name === 'trowd') {\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate before text', offset);\n const prior = output(flush(offset), offset);\n if (prior)\n yield prior;\n if (chars[name]) {\n const event = output(chars[name], offset);\n if (event) {\n if (name === 'par' || name === 'line')\n event.boundary = name;\n yield event;\n }\n }\n else {\n lastSpace = false;\n yield { kind: 'control', name, parameter, offset };\n }\n }\n else\n yield { kind: 'control', name, parameter, offset };\n continue;\n }\n if (token.kind === 'symbol' && token.name === '*') {\n state.starred = true;\n continue;\n }\n if (state.destination === 'pict') {\n if (token.kind === 'binary')\n budget.charge('imageBytes', token.length, token.offset);\n else if (token.kind === 'byte')\n budget.charge('imageBytes', 1, token.offset);\n }\n if (state.skip)\n continue;\n if (token.kind === 'binary') {\n if (state.destination === 'fonttbl') {\n const decl = state.declaration;\n if (decl?.fallback)\n decl.fallback--;\n else\n throw new UnrtfError('E_PARSE', 'Binary data outside font name Unicode fallback', token.offset);\n }\n else if (fallback)\n fallback--;\n continue;\n }\n if (state.destination === 'fonttbl' && token.kind === 'symbol' && (token.name === '~' || token.name === '_')) {\n const decl = state.declaration;\n if (decl && !decl.ended) {\n if (decl.fallback) {\n decl.fallback--;\n continue;\n }\n flushName(decl, token.offset);\n appendName(decl, token.name === '~' ? '\\u00a0' : '\\u2011', token.offset);\n }\n continue;\n }\n if (fallback && token.kind === 'symbol') {\n fallback--;\n continue;\n }\n let byte;\n if (token.kind === 'byte')\n byte = token.byte;\n else if (token.kind === 'symbol') {\n if (['{', '}', '\\\\', '?'].includes(token.name))\n byte = token.name.charCodeAt(0);\n else if (token.name === '~' || token.name === '_') {\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate before text', token.offset);\n const prior = output(flush(token.offset), token.offset);\n if (prior)\n yield prior;\n const event = output(token.name === '~' ? '\\u00a0' : '\\u2011', token.offset);\n if (event)\n yield event;\n }\n }\n if (byte === undefined)\n continue;\n if (state.destination === 'colortbl') {\n if (byte === 59) {\n const rgb = Object.keys(color).length ? '#' + [color.red ?? 0, color.green ?? 0, color.blue ?? 0].map(value => value.toString(16).padStart(2, '0')).join('') : undefined;\n budget.charge('retainedBytes', 32, token.offset);\n retainedDeclarations += 32;\n yield { kind: 'color', index: colorIndex++, rgb, offset: token.offset };\n color = {};\n }\n continue;\n }\n if (state.destination === 'fonttbl') {\n const decl = state.declaration;\n if (decl && !decl.ended) {\n if (decl.fallback) {\n decl.fallback--;\n continue;\n }\n if (byte === 59) {\n yield finishFont(decl, token.offset);\n continue;\n }\n if (decl.high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired surrogate in font name', token.offset);\n const page = decl.page ?? (decl.charset === undefined ? state.page : (charsetCodePages[decl.charset] ?? 1252) || state.page);\n // Symbol is a glyph encoding, not an encoding for its ASCII declaration name.\n const namePage = page === 42 ? state.page : page;\n if (decl.activePage !== namePage) {\n flushName(decl, token.offset);\n decl.decoder = codec(namePage, token.offset);\n decl.activePage = namePage;\n }\n let text;\n try {\n text = decl.decoder.decode(Uint8Array.of(byte), { stream: true });\n }\n catch {\n throw new UnrtfError('E_ENCODING', 'Malformed encoded font name', token.offset);\n }\n appendName(decl, text, token.offset);\n }\n continue;\n }\n if (fallback) {\n fallback--;\n continue;\n }\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate before text', token.offset);\n if (token.kind === 'byte' && !token.escaped && byte === 32 && lastSpace)\n continue;\n const page = (state.font === undefined ? undefined : fonts.get(state.font)?.codePage) || state.page;\n if (activePage !== page) {\n const event = output(flush(token.offset), token.offset);\n if (event)\n yield event;\n decoder = codec(page, token.offset);\n activePage = page;\n }\n let decoded;\n try {\n decoded = decoder.decode(Uint8Array.of(byte), { stream: true });\n }\n catch {\n throw new UnrtfError('E_ENCODING', 'Malformed encoded byte sequence', token.offset);\n }\n const event = output(decoded, token.offset);\n if (event)\n yield event;\n }\n if (high !== undefined)\n throw new UnrtfError('E_ENCODING', 'Unpaired high surrogate at EOF', 0);\n }\n finally {\n budget.release('retainedBytes', retainedDeclarations);\n decoder = undefined;\n fonts.clear();\n stack.length = 0;\n }\n}\n", "// Scoped templates from official GNU UnRTF 0.21.10 outputs/{text,html,latex}.conf.\n// Archive SHA256: b49f20211fa69fff97d42d6e782a62d7e2da670b064951f14bbff968c93734ae\n// GNU UnRTF assets are GPL-3.0-or-later; see NOTICE.\nexport const personalities = {\n \"text\": {\n \"comment_begin\": \"### \",\n \"comment_end\": \"\\n\",\n \"body_begin\": \"\\n-----------------\\n\",\n \"body_end\": \"\",\n \"paragraph_begin\": \"\",\n \"paragraph_end\": \"\\n\",\n \"line_break\": \"\\n\"\n },\n \"html\": {\n \"comment_begin\": \"<!--\",\n \"comment_end\": \"-->\\n\",\n \"document_begin\": \"<!DOCTYPE html PUBLIC \\\"-//W3C//DTD HTML 4.01 Transitional//EN\\\">\\n<html>\\n\",\n \"document_end\": \"</html>\\n\",\n \"header_begin\": \"<head>\\n\",\n \"header_end\": \"</head>\\n\",\n \"body_begin\": \"<body>\",\n \"body_end\": \"</body>\\n\",\n \"paragraph_begin\": \"<p>\",\n \"paragraph_end\": \"</p>\\n\",\n \"line_break\": \"<br>\\n\",\n \"bold_begin\": \"<b>\",\n \"bold_end\": \"</b>\",\n \"italic_begin\": \"<i>\",\n \"italic_end\": \"</i>\",\n \"underline_begin\": \"<u>\",\n \"underline_end\": \"</u>\",\n \"strikethru_begin\": \"<s>\",\n \"strikethru_end\": \"</s>\",\n \"utf8_encoding\": \"<meta http-equiv=\\\"content-type\\\" content=\\\"text/html; charset=utf-8\\\">\\n\",\n \"<U22>\": \""\",\n \"<U26>\": \"&\",\n \"34\": \""\",\n \"38\": \"&\",\n \"60\": \"<\",\n \"62\": \">\",\n \"160\": \" \",\n \"161\": \"¡\",\n \"162\": \"¢\",\n \"163\": \"£\",\n \"164\": \"¤\",\n \"165\": \"¥\",\n \"166\": \"¦\",\n \"167\": \"§\",\n \"168\": \"¨\",\n \"169\": \"©\",\n \"170\": \"ª\",\n \"171\": \"«\",\n \"172\": \"¬\",\n \"173\": \"­\",\n \"174\": \"®\",\n \"175\": \"¯\",\n \"176\": \"°\",\n \"177\": \"±\",\n \"178\": \"²\",\n \"179\": \"³\",\n \"180\": \"´\",\n \"181\": \"µ\",\n \"182\": \"¶\",\n \"183\": \"·\",\n \"184\": \"¸\",\n \"185\": \"¹\",\n \"186\": \"º\",\n \"187\": \"»\",\n \"188\": \"¼\",\n \"189\": \"½\",\n \"190\": \"¾\",\n \"191\": \"¿\",\n \"192\": \"À\",\n \"193\": \"Á\",\n \"194\": \"Â\",\n \"195\": \"Ã\",\n \"196\": \"Ä\",\n \"197\": \"Å\",\n \"198\": \"Æ\",\n \"199\": \"Ç\",\n \"200\": \"È\",\n \"201\": \"É\",\n \"202\": \"Ê\",\n \"203\": \"Ë\",\n \"204\": \"Ì\",\n \"205\": \"Í\",\n \"206\": \"Î\",\n \"207\": \"Ï\",\n \"208\": \"Ð\",\n \"209\": \"Ñ\",\n \"210\": \"Ò\",\n \"211\": \"Ó\",\n \"212\": \"Ô\",\n \"213\": \"Õ\",\n \"214\": \"Ö\",\n \"215\": \"×\",\n \"216\": \"Ø\",\n \"217\": \"Ù\",\n \"218\": \"Ú\",\n \"219\": \"Û\",\n \"220\": \"Ü\",\n \"221\": \"Ý\",\n \"222\": \"Þ\",\n \"223\": \"ß\",\n \"224\": \"à\",\n \"225\": \"á\",\n \"226\": \"â\",\n \"227\": \"ã\",\n \"228\": \"ä\",\n \"229\": \"å\",\n \"230\": \"æ\",\n \"231\": \"ç\",\n \"232\": \"è\",\n \"233\": \"é\",\n \"234\": \"ê\",\n \"235\": \"ë\",\n \"236\": \"ì\",\n \"237\": \"í\",\n \"238\": \"î\",\n \"239\": \"ï\",\n \"240\": \"ð\",\n \"241\": \"ñ\",\n \"242\": \"ò\",\n \"243\": \"ó\",\n \"244\": \"ô\",\n \"245\": \"õ\",\n \"246\": \"ö\",\n \"247\": \"÷\",\n \"248\": \"ø\",\n \"249\": \"ù\",\n \"250\": \"ú\",\n \"251\": \"û\",\n \"252\": \"ü\",\n \"253\": \"ý\",\n \"254\": \"þ\",\n \"255\": \"ÿ\",\n \"338\": \"Œ\",\n \"339\": \"œ\",\n \"352\": \"Š\",\n \"353\": \"š\",\n \"376\": \"Ÿ\",\n \"402\": \"ƒ\",\n \"710\": \"ˆ\",\n \"732\": \"˜\",\n \"913\": \"Α\",\n \"914\": \"Β\",\n \"915\": \"Γ\",\n \"916\": \"Δ\",\n \"917\": \"Ε\",\n \"918\": \"Ζ\",\n \"919\": \"Η\",\n \"920\": \"Θ\",\n \"921\": \"Ι\",\n \"922\": \"Κ\",\n \"923\": \"Λ\",\n \"924\": \"Μ\",\n \"925\": \"Ν\",\n \"926\": \"Ξ\",\n \"927\": \"Ο\",\n \"928\": \"Π\",\n \"929\": \"Ρ\",\n \"931\": \"Σ\",\n \"932\": \"Τ\",\n \"933\": \"Υ\",\n \"934\": \"Φ\",\n \"935\": \"Χ\",\n \"936\": \"Ψ\",\n \"937\": \"Ω\",\n \"945\": \"α\",\n \"946\": \"β\",\n \"947\": \"γ\",\n \"948\": \"δ\",\n \"949\": \"ε\",\n \"950\": \"ζ\",\n \"951\": \"η\",\n \"952\": \"θ\",\n \"953\": \"ι\",\n \"954\": \"κ\",\n \"955\": \"λ\",\n \"956\": \"μ\",\n \"957\": \"ν\",\n \"958\": \"ξ\",\n \"959\": \"ο\",\n \"960\": \"π\",\n \"961\": \"ρ\",\n \"962\": \"ς\",\n \"963\": \"σ\",\n \"964\": \"τ\",\n \"965\": \"υ\",\n \"966\": \"φ\",\n \"967\": \"χ\",\n \"968\": \"ψ\",\n \"969\": \"ω\",\n \"977\": \"ϑ\",\n \"978\": \"ϒ\",\n \"981\": \"ϕ\",\n \"982\": \"ϖ\",\n \"8194\": \" \",\n \"8195\": \" \",\n \"8201\": \" \",\n \"8204\": \"‌\",\n \"8205\": \"‍\",\n \"8206\": \"‎\",\n \"8207\": \"‏\",\n \"8211\": \"–\",\n \"8212\": \"—\",\n \"8216\": \"‘\",\n \"8217\": \"’\",\n \"8220\": \"“\",\n \"8221\": \"”\",\n \"8222\": \"„\",\n \"8224\": \"†\",\n \"8225\": \"‡\",\n \"8226\": \"•\",\n \"8230\": \"…\",\n \"8240\": \"‰\",\n \"8242\": \"′\",\n \"8243\": \"″\",\n \"8249\": \"‹\",\n \"8250\": \"›\",\n \"8254\": \"‾\",\n \"8260\": \"⁄\",\n \"8364\": \"€\",\n \"8472\": \"℘\",\n \"8465\": \"ℑ\",\n \"8476\": \"ℜ\",\n \"8482\": \"™\",\n \"8501\": \"ℵ\",\n \"8592\": \"←\",\n \"8593\": \"↑\",\n \"8594\": \"→\",\n \"8595\": \"↓\",\n \"8596\": \"↔\",\n \"8629\": \"↵\",\n \"8656\": \"⇐\",\n \"8657\": \"⇑\",\n \"8658\": \"⇒\",\n \"8659\": \"⇓\",\n \"8660\": \"⇔\",\n \"8704\": \"∀\",\n \"8706\": \"∂\",\n \"8707\": \"∃\",\n \"8709\": \"∅\",\n \"8711\": \"∇\",\n \"8712\": \"∈\",\n \"8713\": \"∉\",\n \"8715\": \"∋\",\n \"8719\": \"∏\",\n \"8721\": \"∑\",\n \"8722\": \"−\",\n \"8727\": \"∗\",\n \"8730\": \"√\",\n \"8733\": \"∝\",\n \"8734\": \"∞\",\n \"8736\": \"∠\",\n \"8743\": \"∧\",\n \"8744\": \"∨\",\n \"8745\": \"∩\",\n \"8746\": \"∪\",\n \"8747\": \"∫\",\n \"8756\": \"∴\",\n \"8764\": \"∼\",\n \"8773\": \"≅\",\n \"8776\": \"≈\",\n \"8800\": \"≠\",\n \"8801\": \"≡\",\n \"8804\": \"≤\",\n \"8805\": \"≥\",\n \"8834\": \"⊂\",\n \"8835\": \"⊃\",\n \"8836\": \"⊄\",\n \"8838\": \"⊆\",\n \"8839\": \"⊇\",\n \"8853\": \"⊕\",\n \"8855\": \"⊗\",\n \"8869\": \"⊥\",\n \"8901\": \"⋅\",\n \"8968\": \"⌈\",\n \"8969\": \"⌉\",\n \"8970\": \"⌊\",\n \"8971\": \"⌋\",\n \"9801\": \"⟨\",\n \"9802\": \"⟩\",\n \"9674\": \"◊\",\n \"9824\": \"♠\",\n \"9827\": \"♣\",\n \"9829\": \"♥\",\n \"9839\": \"♦\",\n \"61473\": \"!\",\n \"61474\": \"∀\",\n \"61475\": \"%\",\n \"61476\": \"∃\",\n \"61478\": \"&\",\n \"61479\": \"∋\",\n \"61480\": \"(\",\n \"61481\": \")\",\n \"61482\": \"*\",\n \"61483\": \"+\",\n \"61484\": \",\",\n \"61485\": \"—\",\n \"61486\": \".\",\n \"61487\": \"/\",\n \"61488\": \"0\",\n \"61489\": \"1\",\n \"61490\": \"2\",\n \"61491\": \"3\",\n \"61492\": \"4\",\n \"61493\": \"5\",\n \"61494\": \"6\",\n \"61495\": \"7\",\n \"61496\": \"8\",\n \"61497\": \"9\",\n \"61498\": \":\",\n \"61499\": \";\",\n \"61500\": \"<\",\n \"61501\": \"=\",\n \"61502\": \">\",\n \"61503\": \"?\",\n \"61504\": \"≅\",\n \"61505\": \"Α\",\n \"61506\": \"Β\",\n \"61507\": \"Χ\",\n \"61508\": \"Δ\",\n \"61509\": \"Ε\",\n \"61510\": \"Φ\",\n \"61511\": \"Γ\",\n \"61512\": \"Η\",\n \"61513\": \"Ι\",\n \"61514\": \"ϕ\",\n \"61515\": \"Κ\",\n \"61516\": \"Λ\",\n \"61517\": \"Μ\",\n \"61518\": \"Ν\",\n \"61519\": \"Ο\",\n \"61520\": \"Π\",\n \"61521\": \"Θ\",\n \"61522\": \"Ρ\",\n \"61523\": \"Σ\",\n \"61524\": \"Τ\",\n \"61525\": \"Υ\",\n \"61526\": \"ς\",\n \"61527\": \"Ω\",\n \"61528\": \"Ξ\",\n \"61529\": \"Ψ\",\n \"61530\": \"Ζ\",\n \"61531\": \"[\",\n \"61532\": \"∴\",\n \"61533\": \"]\",\n \"61534\": \"⊥\",\n \"61535\": \"_\",\n \"61536\": \"‾\",\n \"61537\": \"α\",\n \"61538\": \"β\",\n \"61539\": \"χ\",\n \"61540\": \"δ\",\n \"61541\": \"ε\",\n \"61542\": \"φ\",\n \"61543\": \"γ\",\n \"61544\": \"η\",\n \"61545\": \"τ\",\n \"61546\": \"ϕ\",\n \"61547\": \"κ\",\n \"61548\": \"λ\",\n \"61549\": \"μ\",\n \"61550\": \"ν\",\n \"61551\": \"ο\",\n \"61552\": \"π\",\n \"61553\": \"θ\",\n \"61554\": \"ρ\",\n \"61555\": \"σ\",\n \"61556\": \"τ\",\n \"61557\": \"υ\",\n \"61558\": \"ϖ\",\n \"61559\": \"ω\",\n \"61560\": \"ξ\",\n \"61561\": \"ψ\",\n \"61562\": \"ζ\",\n \"61563\": \"{\",\n \"61564\": \"|\",\n \"61565\": \"}\",\n \"61566\": \"∼\",\n \"61600\": \"€\",\n \"61601\": \"ϒ\",\n \"61602\": \"′\",\n \"61603\": \"≤\",\n \"61604\": \"⁄\",\n \"61605\": \"∞\",\n \"61606\": \"ƒ\",\n \"61607\": \"♣\",\n \"61608\": \"♦\",\n \"61609\": \"♥\",\n \"61610\": \"♠\",\n \"61611\": \"↔\",\n \"61612\": \"←\",\n \"61613\": \"↑\",\n \"61614\": \"→\",\n \"61615\": \"↓\",\n \"61616\": \"°\",\n \"61617\": \"±\",\n \"61618\": \"″\",\n \"61619\": \"≥\",\n \"61620\": \"×\",\n \"61621\": \"∝\",\n \"61622\": \"∂\",\n \"61623\": \"•\",\n \"61624\": \"÷\",\n \"61625\": \"≠\",\n \"61626\": \"≡\",\n \"61627\": \"≈\",\n \"61628\": \"…\",\n \"61629\": \"|\",\n \"61630\": \"—\",\n \"61631\": \"↵\",\n \"61632\": \"ℵ\",\n \"61633\": \"ℑ\",\n \"61634\": \"ℜ\",\n \"61635\": \"℘\",\n \"61636\": \"⊗\",\n \"61637\": \"⊕\",\n \"61638\": \"∅\",\n \"61639\": \"∩\",\n \"61640\": \"∪\",\n \"61641\": \"⊃\",\n \"61642\": \"⊇\",\n \"61643\": \"⊄\",\n \"61644\": \"⊂\",\n \"61645\": \"⊆\",\n \"61646\": \"∈\",\n \"61647\": \"∉\",\n \"61648\": \"∠\",\n \"61649\": \"∇\",\n \"61650\": \"®\",\n \"61651\": \"©\",\n \"61652\": \"™\",\n \"61653\": \"∏\",\n \"61654\": \"√\",\n \"61655\": \"·\",\n \"61656\": \"¬\",\n \"61657\": \"∧\",\n \"61658\": \"∨\",\n \"61659\": \"⇔\",\n \"61660\": \"⇐\",\n \"61661\": \"⇑\",\n \"61662\": \"⇒\",\n \"61663\": \"⇓\",\n \"61664\": \"◊\",\n \"61665\": \"⟨\",\n \"61666\": \"®\",\n \"61667\": \"©\",\n \"61668\": \"™\",\n \"61669\": \"∑\",\n \"61673\": \"⌈\",\n \"61675\": \"⌊\",\n \"61681\": \"⟩\",\n \"61682\": \"∫\",\n \"61689\": \"⌉\",\n \"61691\": \"⌋\"\n },\n \"latex\": {\n \"comment_begin\": \"\\\\% \",\n \"comment_end\": \"\\n\",\n \"document_begin\": \"\\\\documentclass[11pt]{article}\\n\\\\title{}\\n\",\n \"document_end\": \"\\\\end{document}\\n\",\n \"body_begin\": \"\\n\\n\\\\begin{document}\\n\\\\maketitle\\n\\n\",\n \"paragraph_begin\": \"\\\\par\\n\",\n \"paragraph_end\": \"\",\n \"line_break\": \"\\\\par\\n\",\n \"bold_begin\": \"{\\\\bf \",\n \"bold_end\": \"}\",\n \"italic_begin\": \"{\\\\it \",\n \"italic_end\": \"}\",\n \"underline_begin\": \"\",\n \"underline_end\": \"\\n\",\n \"strikethru_begin\": \"{\",\n \"strikethru_end\": \"}\",\n \"<U23>\": \"\\\\#\",\n \"<U24>\": \"{\\\\$}\",\n \"<U25>\": \"\\\\%\",\n \"<U26>\": \"\\\\&\",\n \"<U2A>\": \"{\\\\ast}\",\n \"<U5C>\": \"{\\\\slash}\",\n \"<U5E>\": \"{\\\\caret}\",\n \"<U5F>\": \"\\\\_\",\n \"<U7B>\": \"\\\\{\",\n \"<U7C>\": \"$\\\\mid$\",\n \"<U7D>\": \"\\\\}\",\n \"<U7E>\": \"\\\\~{ }\",\n \"<U85>\": \"{\\\\ldots}\",\n \"<U86>\": \"{\\\\dag}\",\n \"<U87>\": \"{\\\\ddag}\",\n \"<U8C>\": \"{\\\\OE}\",\n \"<U95>\": \"{\\\\bullet}\",\n \"<U96>\": \"--\",\n \"<U97>\": \"---\",\n \"<UA0>\": \"\\\\:\",\n \"<UA3>\": \"{\\\\pounds}\",\n \"<UA5>\": \"\\\\Y\",\n \"<UA9>\": \"{\\\\copyright}\",\n \"<UB0>\": \"\\\\o \",\n \"<UB1>\": \"\\\\+- \",\n \"<UB2>\": \"$^{2}$\",\n \"<UB3>\": \"$^{3}$\",\n \"<UB6>\": \"\\\\P \",\n \"<UB9>\": \"$^{1}$\",\n \"<UBC>\": \"\\\\frac{1}{4}\",\n \"<UBD>\": \"\\\\frac{1}{2}\",\n \"<UBE>\": \"\\\\frac{3}{4}\",\n \"<UC0>\": \"\\\\`{A}\",\n \"<UC1>\": \"\\\\'{A}\",\n \"<UC2>\": \"\\\\o{A}\",\n \"<UC3>\": \"\\\\~{A}\",\n \"<UC4>\": \"\\\\\\\"{A}\",\n \"<UC6>\": \"\\\\AE\",\n \"<UC7>\": \"\\\\c{C}\",\n \"<UC8>\": \"\\\\`{E}\",\n \"<UC9>\": \"\\\\'{E}\",\n \"<UCA>\": \"\\\\o{E}\",\n \"<UCB>\": \"\\\\\\\"{E}\",\n \"<UCC>\": \"\\\\`{I}\",\n \"<UCD>\": \"\\\\'{I}\",\n \"<UCE>\": \"\\\\o{I}\",\n \"<UCF>\": \"\\\\\\\"{I}\",\n \"<UD0>\": \"\\\\ETH \",\n \"<UD1>\": \"\\\\~{N}\",\n \"<UD2>\": \"\\\\`{O}\",\n \"<UD3>\": \"\\\\'{O}\",\n \"<UD4>\": \"\\\\o{O}\",\n \"<UD5>\": \"\\\\~{O}\",\n \"<UD6>\": \"\\\\\\\"{O}\",\n \"<UD7>\": \"\\\\mult \",\n \"<UD9>\": \"\\\\`{U}\",\n \"<UDA>\": \"\\\\'{U}\",\n \"<UDB>\": \"\\\\o{U}\",\n \"<UDC>\": \"\\\\\\\"{U}\",\n \"<UDD>\": \"\\\\'{Y}\",\n \"<UDE>\": \"\\\\THORN\",\n \"<UE0>\": \"\\\\`{a}\",\n \"<UE1>\": \"\\\\'{a}\",\n \"<UE2>\": \"\\\\o{a}\",\n \"<UE3>\": \"\\\\~{a}\",\n \"<UE4>\": \"\\\\\\\"{a}\",\n \"<UE6>\": \"\\\\ae \",\n \"<UE7>\": \"\\\\c{c}\",\n \"<UE8>\": \"\\\\`{e}\",\n \"<UE9>\": \"\\\\'{e}\",\n \"<UEA>\": \"\\\\o{e}\",\n \"<UEB>\": \"\\\\\\\"{e}\",\n \"<UEC>\": \"\\\\`{i}\",\n \"<UED>\": \"\\\\'{i}\",\n \"<UEE>\": \"\\\\o{i}\",\n \"<UEF>\": \"\\\\\\\"{i}\",\n \"<UF0>\": \"\\\\eth \",\n \"<UF1>\": \"\\\\~{n}\",\n \"<UF2>\": \"\\\\`{o}\",\n \"<UF3>\": \"\\\\'{o}\",\n \"<UF4>\": \"\\\\o{o}\",\n \"<UF5>\": \"\\\\~{o}\",\n \"<UF6>\": \"\\\\\\\"{o}\",\n \"<UF7>\": \"\\\\div \",\n \"<UF8>\": \"\\\\slash{o}\",\n \"<UF9>\": \"\\\\`{u}\",\n \"<UFA>\": \"\\\\'{u}\",\n \"<UFB>\": \"\\\\o{u}\",\n \"<UFC>\": \"\\\\\\\"{u}\",\n \"<UFD>\": \"\\\\'{y}\",\n \"<UFE>\": \"\\\\thorn \",\n \"<UFF>\": \"\\\\\\\"{y}\",\n \"913\": \"A\",\n \"914\": \"B\",\n \"915\": \"$\\\\Gamma$\",\n \"916\": \"$\\\\Delta$\",\n \"917\": \"E\",\n \"918\": \"Z\",\n \"919\": \"H\",\n \"920\": \"$\\\\Theta$\",\n \"921\": \"I\",\n \"922\": \"K\",\n \"923\": \"$\\\\Lambda$\",\n \"924\": \"M\",\n \"925\": \"N\",\n \"926\": \"$\\\\Xi$\",\n \"927\": \"O\",\n \"928\": \"$\\\\Pi$\",\n \"929\": \"P\",\n \"931\": \"$\\\\Sigma$\",\n \"932\": \"T\",\n \"933\": \"$\\\\Upsilon$\",\n \"934\": \"$\\\\Phi$\",\n \"935\": \"X\",\n \"936\": \"$\\\\Psi$\",\n \"937\": \"$\\\\Omega$\",\n \"945\": \"$\\\\alpha$\",\n \"946\": \"$\\\\beta$\",\n \"947\": \"$\\\\gamma$\",\n \"948\": \"$\\\\delta$\",\n \"949\": \"$\\\\varepsilon$\",\n \"950\": \"$\\\\zeta$\",\n \"951\": \"$\\\\eta$\",\n \"952\": \"$\\\\theta$\",\n \"953\": \"$\\\\iota$\",\n \"954\": \"$\\\\kappa$\",\n \"955\": \"$\\\\lambda$\",\n \"956\": \"$\\\\mu$\",\n \"957\": \"$\\\\nu$\",\n \"958\": \"$\\\\xi$\",\n \"959\": \"o\",\n \"960\": \"$\\\\pi$\",\n \"961\": \"$\\\\rho$\",\n \"962\": \"$\\\\varsigma$\",\n \"963\": \"$\\\\sigma$\",\n \"964\": \"$\\\\tau$\",\n \"965\": \"$\\\\upsilon$\",\n \"966\": \"$\\\\phi$\",\n \"967\": \"$\\\\chi$\",\n \"968\": \"$\\\\psi$\",\n \"969\": \"$\\\\omega$\",\n \"977\": \"$\\\\vartheta$\",\n \"981\": \"$\\\\varphi$\",\n \"982\": \"$\\\\varpi$\",\n \"1008\": \"$\\\\varkappa$\",\n \"1009\": \"$\\\\varrho$\",\n \"1013\": \"$\\\\epsilon$\"\n }\n};\n", "import { Budget, UnrtfError } from './contracts.js';\nimport { extractRtf } from './extract.js';\nimport { personalities } from './personalities.js';\nconst normal = { bold: false, italic: false, underline: false, strike: false };\n/** Strict UTF-8 projection. This is deliberately not a GNU output personality. */\nexport async function* renderRtf(source, options, budget = new Budget(options)) {\n if (options.profile === 'gnu-0.21.10') {\n yield* renderPersonality(source, options, budget);\n return;\n }\n const encoder = new TextEncoder(), html = options.format === 'html';\n if (!html && options.format !== 'text')\n throw new UnrtfError('E_PROFILE', 'Unsupported output format', 0);\n let style = { ...normal }, paragraph = false, table = false, row = false, cell = false;\n let defaultFont;\n const stack = [], fonts = new Map(), colors = new Map();\n const emit = (text, offset) => {\n // All fragments are bounded by one decoded event plus fixed markup.\n budget.charge('work', text.length, offset);\n let length = 0;\n for (const char of text) {\n const code = char.codePointAt(0);\n length += code <= 0x7f ? 1 : code <= 0x7ff ? 2 : code <= 0xffff ? 3 : 4;\n }\n budget.charge('outputBytes', length, offset);\n const working = text.length * 2 + length;\n budget.charge('retainedBytes', working, offset);\n try {\n return encoder.encode(text);\n }\n finally {\n budget.release('retainedBytes', working);\n }\n };\n const endParagraph = () => { if (!paragraph)\n return ''; paragraph = false; return '</p>'; };\n const beginText = () => {\n if (table) {\n if (!row)\n throw new UnrtfError('E_PARSE', 'Text outside table row', 0);\n if (!cell) {\n cell = true;\n return '<td>';\n }\n return '';\n }\n if (!paragraph) {\n paragraph = true;\n return '<p>';\n }\n return '';\n };\n const styled = (text) => {\n let start = '', end = '';\n for (const [enabled, tag] of [[style.bold, 'strong'], [style.italic, 'em'], [style.underline, 'u'], [style.strike, 's']])\n if (enabled) {\n start += `<${tag}>`;\n end = `</${tag}>` + end;\n }\n const css = [];\n const fontId = style.font ?? defaultFont;\n const font = fontId === undefined ? undefined : fonts.get(fontId);\n if (font !== undefined) {\n budget.charge('work', font.length * 2, 0);\n budget.bound('retainedBytes', font.length * 16, 0);\n let name = '';\n for (const char of font) {\n const code = char.codePointAt(0);\n name += code >= 65 && code <= 90 || code >= 97 && code <= 122 || code >= 48 && code <= 57 || char === ' ' || char === '-' ? char : '\\\\' + code.toString(16) + ' ';\n }\n css.push('font-family:'' + name + ''');\n }\n if (style.size !== undefined)\n css.push('font-size:' + style.size / 2 + 'pt');\n if (style.color !== undefined)\n css.push('color:' + style.color);\n if (css.length) {\n start += '<span style=\"' + css.join(';') + '\">';\n end = '</span>' + end;\n }\n return start + text + end;\n };\n let preamble;\n try {\n // Admit markup before input acquisition, but do not publish a document\n // until the source has produced an event (opening a VFS file can fail).\n preamble = html ? emit('<!DOCTYPE html><html><body>', 0) : undefined;\n if (preamble)\n budget.charge('retainedBytes', preamble.length, 0);\n for await (const event of extractRtf(source, options, budget, false)) {\n if (preamble) {\n const bytes = preamble;\n budget.release('retainedBytes', bytes.length);\n preamble = undefined;\n yield bytes;\n }\n budget.charge('work', 1, event.offset);\n if (event.kind === 'open') {\n budget.charge('retainedBytes', 32, event.offset);\n stack.push(style);\n style = { ...style };\n }\n else if (event.kind === 'close') {\n style = stack.pop();\n budget.release('retainedBytes', 32);\n }\n else if (event.kind === 'font') {\n fonts.set(event.font.id, event.font.name);\n }\n else if (event.kind === 'color') {\n colors.set(event.index, event.rgb);\n }\n else if (event.kind === 'text') {\n if (!html) {\n yield emit(event.text, event.offset);\n continue;\n }\n let fragment = '';\n if (table && !row) {\n fragment = '</tbody></table>';\n table = false;\n }\n for (const char of event.text) {\n if (char === '\\n') {\n if (table || event.boundary === 'line')\n fragment += beginText() + '<br>';\n else\n fragment += paragraph ? endParagraph() : '<p></p>';\n }\n else\n fragment += beginText() + styled(char === '&' ? '&' : char === '<' ? '<' : char === '>' ? '>' : char === '\\t' ? '	' : char);\n }\n if (fragment)\n yield emit(fragment, event.offset);\n }\n else if (event.kind === 'control') {\n const { name, parameter, offset } = event;\n if (name === 'plain')\n style = { ...normal };\n else if (name === 'f' || name === 'deff') {\n if (parameter !== undefined) {\n if (name === 'deff')\n defaultFont = parameter;\n style.font = parameter;\n }\n }\n else if (name === 'fs') {\n if (parameter === undefined || parameter <= 0 || parameter > 32767)\n throw new UnrtfError('E_PARSE', 'Invalid font size', offset);\n style.size = parameter;\n }\n else if (name === 'cf') {\n if (parameter === undefined || !colors.has(parameter))\n throw new UnrtfError('E_PARSE', 'Undeclared color', offset);\n const color = colors.get(parameter);\n if (color === undefined)\n delete style.color;\n else\n style.color = color;\n }\n else if (name === 'b')\n style.bold = parameter !== 0;\n else if (name === 'i')\n style.italic = parameter !== 0;\n else if (name === 'ul' || name === 'ulnone')\n style.underline = name === 'ul' && parameter !== 0;\n else if (name === 'strike')\n style.strike = parameter !== 0;\n else if (name === 'trowd') {\n if (row)\n throw new UnrtfError('E_PARSE', 'Nested or unterminated table row', offset);\n if (html) {\n const prefix = endParagraph() + (table ? '' : '<table><tbody>') + '<tr>';\n table = true;\n yield emit(prefix, offset);\n }\n row = true;\n }\n else if (name === 'cell') {\n if (!row)\n throw new UnrtfError('E_PARSE', 'Cell outside table row', offset);\n if (html) {\n yield emit(cell ? '</td>' : '<td></td>', offset);\n cell = false;\n }\n else\n yield emit('\\t', offset);\n }\n else if (name === 'row') {\n if (!row)\n throw new UnrtfError('E_PARSE', 'Row end outside table', offset);\n if (html) {\n yield emit((cell ? '</td>' : '') + '</tr>', offset);\n cell = false;\n }\n else\n yield emit('\\n', offset);\n row = false;\n }\n }\n }\n if (row)\n throw new UnrtfError('E_PARSE', 'Unterminated table row', 0);\n if (html)\n yield emit(endParagraph() + (table ? '</tbody></table>' : '') + '</body></html>', 0);\n }\n finally {\n if (preamble)\n budget.release('retainedBytes', preamble.length);\n budget.release('retainedBytes', stack.length * 32);\n stack.length = 0;\n fonts.clear();\n colors.clear();\n }\n}\n/** Official output templates over strict extraction, without legacy parser defects. */\nasync function* renderPersonality(source, options, budget) {\n const personality = personalities[options.format];\n if (!personality)\n throw new UnrtfError('E_PROFILE', 'Unsupported output personality', 0);\n const template = (name) => (personality[name] ?? '').split('\\\\%').join('%');\n const encoder = new TextEncoder();\n const emit = (text, offset) => {\n budget.charge('work', text.length, offset);\n budget.charge('retainedBytes', text.length * 5, offset);\n try {\n const bytes = encoder.encode(text);\n budget.charge('outputBytes', bytes.length, offset);\n return bytes;\n }\n finally {\n budget.release('retainedBytes', text.length * 5);\n }\n };\n let started = false;\n let active = [];\n const stack = [];\n const controls = { b: 'bold', i: 'italic', ul: 'underline', strike: 'strikethru' };\n try {\n for await (const event of extractRtf(source, options, budget, false)) {\n if (!started) {\n const banner = options.quiet ? '' : template('comment_begin') + ' Translation from RTF performed by UnRTF, version 0.21.10 ' + template('comment_end');\n yield emit(template('document_begin') + template('header_begin') + template('utf8_encoding') + banner + template('header_end') + template('body_begin'), event.offset);\n started = true;\n }\n budget.charge('work', 1, event.offset);\n if (event.kind === 'open') {\n budget.charge('retainedBytes', 128, event.offset);\n stack.push([...active]);\n }\n else if (event.kind === 'close') {\n yield emit([...active].reverse().map(name => template(name + '_end')).join(''), event.offset);\n active = stack.pop();\n budget.release('retainedBytes', 128);\n if (stack.length)\n yield emit(active.map(name => template(name + '_begin')).join(''), event.offset);\n }\n else if (event.kind === 'control') {\n const name = controls[event.name];\n if (name || event.name === 'plain' || event.name === 'ulnone') {\n if (name && event.parameter !== 0) {\n if (!active.includes(name)) {\n active.push(name);\n yield emit(template(name + '_begin'), event.offset);\n }\n continue;\n }\n yield emit([...active].reverse().map(value => template(value + '_end')).join(''), event.offset);\n if (event.name === 'plain')\n active = [];\n else {\n const value = name ?? 'underline';\n active = active.filter(item => item !== value);\n if (event.parameter !== 0 && event.name !== 'ulnone')\n active.push(value);\n }\n yield emit(active.map(value => template(value + '_begin')).join(''), event.offset);\n }\n }\n else if (event.kind === 'text') {\n let text = '';\n for (const char of event.text) {\n const code = char.codePointAt(0);\n if (char === '\\n')\n text += template('line_break');\n else if (options.noremap)\n text += char;\n else\n text += personality['<U' + code.toString(16).toUpperCase() + '>'] ?? personality[String(code)] ?? char;\n }\n yield emit(text, event.offset);\n }\n }\n if (started)\n yield emit(template('body_end') + template('document_end'), 0);\n }\n finally {\n budget.release('retainedBytes', stack.length * 128);\n }\n}\n", "import { commandRuntimeIdentity, getCommandArguments } from 'safe-bash-contracts/command';\nimport { FsError } from 'safe-bash-contracts/errors';\nimport { readBytes, writeBytes } from 'safe-bash-contracts/io';\nimport { createOutputOperation } from 'safe-bash-contracts/output';\nimport { Budget, UnrtfError, defaultUnrtfLimits } from './contracts.js';\nimport { renderRtf } from './render.js';\nasync function executeUnrtf(context, configuration = {}, cli = false) {\n const controller = new AbortController(), signal = controller.signal;\n const abort = () => controller.abort(context.signal.reason);\n const limits = { ...defaultUnrtfLimits, ...configuration.limits };\n let format = configuration.format ?? 'html', file = configuration.file;\n let profile = configuration.profile, quiet = configuration.quiet, noremap = configuration.noremap;\n let failed = false;\n const scope = { signal, ...(context.registerCleanup ? { registerCleanup: context.registerCleanup.bind(context) } : {}) };\n let stdout, stderr;\n let pending = Promise.resolve(), closing;\n const cleanup = () => {\n if (closing)\n return closing;\n closing = Promise.resolve().then(async () => {\n controller.abort(new UnrtfError('E_CANCELLED', 'RTF invocation closed', 0));\n await Promise.allSettled([pending]);\n context.signal.removeEventListener('abort', abort);\n const results = await Promise.allSettled([stdout?.close(), stderr?.close()]);\n const errors = results.filter(result => result.status === 'rejected').map(result => result.reason);\n if (errors.length)\n throw new AggregateError(errors, 'RTF invocation cleanup failed');\n });\n return closing;\n };\n context.registerCleanup?.(cleanup);\n pending = Promise.resolve().then(async () => {\n context.signal.addEventListener('abort', abort, { once: true });\n if (context.signal.aborted)\n abort();\n signal.throwIfAborted();\n stdout = createOutputOperation(scope, context.stdout);\n stderr = createOutputOperation(scope, context.stderr);\n const budget = new Budget({ limits, signal });\n const admit = (value) => {\n budget.bound('tokenBytes', value.length, 0);\n budget.charge('work', value.length, 0);\n const bytes = new TextEncoder().encode(value).length;\n budget.bound('tokenBytes', bytes, 0);\n budget.charge('retainedBytes', bytes + value.length * 2, 0);\n };\n if (cli) {\n const carrier = getCommandArguments(context);\n budget.bound('tokens', carrier.args.length, 0);\n file = undefined;\n let operands = false;\n for (let i = 0; i < carrier.args.length; i++) {\n const projected = carrier.args[i];\n admit(projected);\n const bytes = carrier.bytes(i);\n budget.charge('work', bytes.length, 0);\n budget.bound('tokenBytes', bytes.length, 0);\n let arg;\n try {\n arg = new TextDecoder('utf-8', { fatal: true, ignoreBOM: true }).decode(bytes);\n }\n catch {\n throw new UnrtfError('E_ENCODING', 'Arguments must be UTF-8', 0);\n }\n if (!operands && arg === '--') {\n operands = true;\n continue;\n }\n if (operands) {\n if (file !== undefined)\n throw new UnrtfError('E_PARSE', 'Only one input file is supported', 0);\n file = arg;\n }\n else if (arg === '--text')\n format = 'text';\n else if (arg === '--html')\n format = 'html';\n else if (arg === '--latex')\n format = 'latex';\n else if (arg.startsWith('--profile='))\n profile = arg.slice('--profile='.length);\n else if (arg === '--quiet')\n quiet = true;\n else if (arg === '--noremap')\n noremap = true;\n else if (arg === '--nopict' || arg === '-n') { /* No profile exports pictures. */ }\n else if (arg.startsWith('--') && arg !== '--' || arg.startsWith('-') && arg !== '-' && arg !== '--')\n throw new UnrtfError('E_PROFILE', 'Option requires an unadmitted personality/configuration profile', 0);\n else {\n if (file !== undefined)\n throw new UnrtfError('E_PARSE', 'Only one input file is supported', 0);\n file = arg;\n }\n }\n }\n else if (file !== undefined)\n admit(file);\n new Budget({ limits, signal, ...(profile === undefined ? {} : { profile }) });\n if (format !== 'text' && format !== 'html' && !(profile === 'gnu-0.21.10' && format === 'latex') || noremap && profile !== 'gnu-0.21.10')\n throw new UnrtfError('E_PROFILE', 'Option requires the GNU personality profile', 0);\n if (file?.includes('\\0'))\n throw new UnrtfError('E_PARSE', 'NUL is unavailable in VFS paths', 0);\n async function* source() {\n if (file === undefined) {\n yield* readBytes(context.stdin, signal);\n return;\n }\n const path = file.startsWith('/') ? file : context.cwd + '/' + file;\n for (const candidate of [path, path + '.rtf']) {\n let yielded = false;\n try {\n if (context.fs.readStream) {\n for await (const bytes of readBytes(context.fs.readStream(candidate, { signal }), signal)) {\n yielded = true;\n yield bytes;\n }\n }\n else {\n const maxBytes = Math.min(limits.inputBytes, limits.retainedBytes);\n const bytes = await context.fs.readFile(candidate, { signal, ...(Number.isFinite(maxBytes) ? { maxBytes } : {}) });\n budget.charge('retainedBytes', bytes.length, 0);\n try {\n yield bytes;\n }\n finally {\n budget.release('retainedBytes', bytes.length);\n }\n }\n return;\n }\n catch (error) {\n if (yielded || candidate !== path || !(error instanceof FsError) || error.code !== 'ENOENT')\n throw error;\n }\n }\n }\n for await (const bytes of renderRtf(source(), { format, limits, signal, ...(quiet === undefined ? {} : { quiet }), ...(noremap === undefined ? {} : { noremap }), ...(profile === undefined ? {} : { profile }) }, budget))\n await writeBytes(stdout.output, bytes, stdout.signal);\n });\n try {\n await pending;\n return { exitCode: 0 };\n }\n catch (error) {\n failed = true;\n if (signal.aborted)\n throw error;\n if (!(error instanceof UnrtfError) && !(error instanceof FsError))\n throw error;\n const message = new TextEncoder().encode('unrtf: ' + error.code + ': ' + error.message + '\\n');\n // Diagnostics are separately bounded, so exhaustion can still be reported.\n if (message.length > limits.tokenBytes + 1024)\n throw error;\n if (!stderr)\n throw error;\n await writeBytes(stderr.output, message, stderr.signal);\n return { exitCode: 1 };\n }\n finally {\n await cleanup().catch((error) => { if (!failed)\n throw error; });\n }\n}\n/** Stream stdin or one literal VFS file through the strict UTF-8 profile. */\nexport const unrtf = executeUnrtf;\nexport function createUnrtfCommand(options = {}) {\n const configuration = Object.freeze({ ...options, limits: Object.freeze({ ...options.limits }) });\n return Object.freeze({ name: 'unrtf', runtimeIdentity: commandRuntimeIdentity, description: 'Project bounded RTF byte streams using the strict UTF-8 profile', execute(context) { return executeUnrtf(context, configuration, true); } });\n}\nexport const unrtfCommand = createUnrtfCommand();\nexport function unrtfCommands(options = {}) {\n const command = createUnrtfCommand(options), replace = options.replace ?? false;\n return { name: 'unrtf', setup(host) { host.commands.register(command, { replace }); } };\n}\n", "export { UnrtfError, unrtfBaseline } from './contracts.js';\nimport { tokenizeRtf as tokens } from './tokenizer.js';\nexport const tokenizeRtf = tokens;\nexport { extractRtf, charsetCodePages, codecLabels } from './extract.js';\nexport { renderRtf } from './render.js';\nexport { unrtf, createUnrtfCommand, unrtfCommand, unrtfCommands } from './command.js';\n"],
|
|
5
|
+
"mappings": "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IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,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,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,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,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,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,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,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,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,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,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",
|
|
6
6
|
"names": ["byte", "event", "page", "tokenizeRtf"]
|
|
7
7
|
}
|