diff --git a/.agents/skills/benchmark/SKILL.md b/.agents/skills/benchmark/SKILL.md index e87c285d9..d74333808 100644 --- a/.agents/skills/benchmark/SKILL.md +++ b/.agents/skills/benchmark/SKILL.md @@ -25,4 +25,4 @@ When writing benchmark instructions: ## Notes - Benchmarks run from built JS in `out-test/benchmark/*.benchmark.js`. -- Keep `NODE_PATH=./out` (handled by the npm script). +- Benchmark sources import compiled modules from `../../out/common/` and `../../out/browser/` (run `npm run build` first). diff --git a/bin/build_parser_wasm.sh b/bin/build_parser_wasm.sh index 5ae81eb83..6558d8c7e 100755 --- a/bin/build_parser_wasm.sh +++ b/bin/build_parser_wasm.sh @@ -13,7 +13,48 @@ fi WASM_DIR=src/common/parser/wasm OUT="$WASM_DIR/parser.wasm" -clang --target=wasm32-unknown-unknown -O2 -nostdlib -fuse-ld=lld \ +# Apple Clang (Xcode CLT) has no wasm32 target; prefer Homebrew LLVM when needed. +wasm_clang_has_target() { + "$1" --print-targets 2>/dev/null | grep -q 'wasm32' +} + +resolve_wasm_toolchain() { + local clang_bin=clang + if wasm_clang_has_target clang; then + : + else + local llvm_prefix="" + if command -v brew >/dev/null 2>&1; then + llvm_prefix="$(brew --prefix llvm 2>/dev/null || true)" + fi + for prefix in "$llvm_prefix" /opt/homebrew/opt/llvm /usr/local/opt/llvm; do + if [[ -n "$prefix" && -x "$prefix/bin/clang" ]] && wasm_clang_has_target "$prefix/bin/clang"; then + clang_bin="$prefix/bin/clang" + local lld_prefix="" + if command -v brew >/dev/null 2>&1; then + lld_prefix="$(brew --prefix lld 2>/dev/null || true)" + fi + for lld_dir in "$lld_prefix/bin" /opt/homebrew/opt/lld/bin /usr/local/opt/lld/bin; do + if [[ -n "$lld_dir" && -x "$lld_dir/lld" ]]; then + PATH="$lld_dir:$(dirname "$clang_bin"):$PATH" + break + fi + done + PATH="$(dirname "$clang_bin"):$PATH" + break + fi + done + if ! wasm_clang_has_target "$clang_bin"; then + echo "error: no clang with wasm32 support found (macOS: brew install llvm lld)" >&2 + exit 1 + fi + fi + WASM_CLANG="$clang_bin" +} + +resolve_wasm_toolchain + +"$WASM_CLANG" --target=wasm32-unknown-unknown -O2 -nostdlib -fuse-ld=lld \ -Wl,--no-entry \ -Wl,--export-memory \ -Wl,--export=reset \ diff --git a/src/common/parser/EscapeSequenceParser.ts b/src/common/parser/EscapeSequenceParser.ts index 6256aec48..770e76912 100644 --- a/src/common/parser/EscapeSequenceParser.ts +++ b/src/common/parser/EscapeSequenceParser.ts @@ -302,7 +302,14 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP chunkPos: 0 }; - protected _scanCache: { opIndex: number, stateBeforeScan?: number } = { opIndex: 0 }; + protected _scanCache: { + opIndex: number; + stateBeforeScan?: number; + inputOffset?: number; + chunkStart?: number; + scan?: import('./ScanTypes').ScanResult; + data?: Uint32Array; + } = { opIndex: 0 }; constructor( protected readonly _transitions: TransitionTable = VT500_TRANSITION_TABLE @@ -510,6 +517,11 @@ export class EscapeSequenceParser extends Disposable implements IEscapeSequenceP this._collect = 0; this.precedingJoinState = 0; this._scanCache.opIndex = 0; + this._scanCache.inputOffset = 0; + this._scanCache.chunkStart = undefined; + this._scanCache.scan = undefined; + this._scanCache.data = undefined; + this._scanCache.stateBeforeScan = undefined; // abort pending continuation from async handler // Here the RESET type indicates, that the next parse call will // ignore any saved stack, instead continues sync with next codepoint from GROUND diff --git a/src/common/parser/EscapeSequenceParserWasm.ts b/src/common/parser/EscapeSequenceParserWasm.ts index 449e8d65f..3fcbf9f62 100644 --- a/src/common/parser/EscapeSequenceParserWasm.ts +++ b/src/common/parser/EscapeSequenceParserWasm.ts @@ -76,7 +76,7 @@ export function parseWithWasmScanner( data: Uint32Array, length: number, promiseResult: boolean | undefined, - scanCache: { scan?: ScanResult; data?: Uint32Array; opIndex: number; stateBeforeScan?: number } + scanCache: IWasmScanCache ): void | Promise { ensureWasm(); @@ -85,18 +85,62 @@ export function parseWithWasmScanner( return resumeWasmParse(host, data, length, promiseResult, scanCache); } - const stateBeforeScan = host.currentState; - scanCache.stateBeforeScan = stateBeforeScan; - WasmEscapeScanner.syncParserState(host.currentState, host.collect, host._params); - const scan = WasmEscapeScanner.scan(data, length); - scanCache.scan = scan; - scanCache.data = data; + scanCache.stateBeforeScan = host.currentState; + scanCache.inputOffset = 0; + scanCache.scan = undefined; scanCache.opIndex = 0; + return runWasmScanChunks(host, data, length, promiseResult, scanCache); +} - host.currentState = WasmEscapeScanner.currentState; - host.collect = WasmEscapeScanner.collect; +interface IWasmScanCache { + scan?: ScanResult; + data?: Uint32Array; + opIndex: number; + stateBeforeScan?: number; + inputOffset?: number; + chunkStart?: number; +} - return dispatchScanOps(host, data, scan, 0, scanCache, promiseResult, stateBeforeScan); +function runWasmScanChunks( + host: IWasmParseHost, + data: Uint32Array, + length: number, + promiseResult: boolean | undefined, + scanCache: IWasmScanCache +): void | Promise { + let pos = scanCache.inputOffset ?? 0; + const stateBeforeScan = scanCache.stateBeforeScan ?? host.currentState; + + while (pos < length) { + if (!scanCache.scan || scanCache.data !== data || scanCache.chunkStart !== pos) { + WasmEscapeScanner.syncParserState(host.currentState, host.collect, host._params); + const scan = WasmEscapeScanner.scan(data, length, pos); + scanCache.scan = scan; + scanCache.data = data; + scanCache.chunkStart = pos; + scanCache.opIndex = 0; + host.currentState = WasmEscapeScanner.currentState; + host.collect = WasmEscapeScanner.collect; + } + + const result = dispatchScanOps(host, data, scanCache.scan, scanCache.opIndex, scanCache, promiseResult, stateBeforeScan); + if (result instanceof Promise) { + scanCache.inputOffset = pos; + return result; + } + + const nextOffset = scanCache.scan.nextOffset; + if (nextOffset <= pos) { + throw new Error(`Wasm parser scan did not advance (stuck at input offset ${pos})`); + } + pos = nextOffset; + scanCache.inputOffset = pos; + scanCache.scan = undefined; + scanCache.opIndex = 0; + } + + scanCache.inputOffset = length; + scanCache.scan = undefined; } function resumeWasmParse( @@ -104,7 +148,7 @@ function resumeWasmParse( data: Uint32Array, length: number, promiseResult: boolean | undefined, - scanCache: { scan?: ScanResult; data?: Uint32Array; opIndex: number; stateBeforeScan?: number } + scanCache: IWasmScanCache ): void | Promise { if (host._parseStack.state === ParserStackType.RESET) { host._parseStack.state = ParserStackType.NONE; @@ -113,7 +157,7 @@ function resumeWasmParse( if (!scanCache.scan || scanCache.data !== data) { return parseWithWasmScanner(host, data, length, promiseResult, scanCache); } - return dispatchScanOps(host, data, scanCache.scan, scanCache.opIndex, scanCache, promiseResult, scanCache.stateBeforeScan ?? host.currentState); + return runWasmScanChunks(host, data, length, promiseResult, scanCache); } if (promiseResult === undefined || host._parseStack.state === ParserStackType.FAIL) { @@ -194,7 +238,7 @@ function resumeWasmParse( host._parseStack.state = ParserStackType.NONE; host.precedingJoinState = 0; - return dispatchScanOps(host, data, scan, scanCache.opIndex, scanCache, promiseResult, scanCache.stateBeforeScan ?? host.currentState); + return runWasmScanChunks(host, data, length, promiseResult, scanCache); } function dispatchScanOps( @@ -202,7 +246,7 @@ function dispatchScanOps( data: Uint32Array, scan: ScanResult, fromOp: number, - scanCache: { scan?: ScanResult; data?: Uint32Array; opIndex: number }, + scanCache: IWasmScanCache, promiseResult: boolean | undefined, stateBeforeScan: number ): void | Promise { @@ -214,7 +258,7 @@ function dispatchScanOps( const start = scan.starts[o]; const len = scan.lengths[o]; const aux = scan.aux[o]; - const chunkPos = (kind === Op.Csi || kind === Op.Esc) ? len : start; + const chunkPos = kind === Op.Csi ? len : start; switch (kind) { case Op.Print: @@ -222,14 +266,17 @@ function dispatchScanOps( break; case Op.Execute: { const code = aux; - if (code < 0x18) { - const exe = host._executeHandlersArr[code]; - if (exe) exe(code); - else host._executeHandlerFb(code); - } else if (host._executeHandlers[code]) { - host._executeHandlers[code]!(); - } else { - host._executeHandlerFb(code); + const count = len > 0 ? len : 1; + for (let n = 0; n < count; n++) { + if (code < 0x18) { + const exe = host._executeHandlersArr[code]; + if (exe) exe(code); + else host._executeHandlerFb(code); + } else if (host._executeHandlers[code]) { + host._executeHandlers[code]!(); + } else { + host._executeHandlerFb(code); + } } host.precedingJoinState = 0; break; @@ -255,16 +302,19 @@ function dispatchScanOps( host.collect = aux >> 8; loadParams(host, scan, o); const handlersEsc = host._escHandlers[aux]; - let jj = handlersEsc ? handlersEsc.length - 1 : -1; - for (; jj >= 0; jj--) { - handlerResult = handlersEsc![jj](); - if (handlerResult === true) break; - if (handlerResult instanceof Promise) { - host._preserveStack(ParserStackType.ESC, handlersEsc!, jj, 0, chunkPos); - return handlerResult; + const escCount = len > 0 ? len : 1; + escLoop: for (let rep = 0; rep < escCount; rep++) { + let jj = handlersEsc ? handlersEsc.length - 1 : -1; + for (; jj >= 0; jj--) { + handlerResult = handlersEsc![jj](); + if (handlerResult === true) continue escLoop; + if (handlerResult instanceof Promise) { + host._preserveStack(ParserStackType.ESC, handlersEsc!, jj, 0, chunkPos); + return handlerResult; + } } + if (jj < 0) host._escHandlerFb(aux); } - if (jj < 0) host._escHandlerFb(aux); host.precedingJoinState = 0; break; } diff --git a/src/common/parser/ScanTypes.ts b/src/common/parser/ScanTypes.ts index 9df9989a4..cd24708ce 100644 --- a/src/common/parser/ScanTypes.ts +++ b/src/common/parser/ScanTypes.ts @@ -34,4 +34,5 @@ export type ScanResult = { paramStarts: Uint32Array; paramCounts: Uint16Array; opCount: number; + nextOffset: number; }; diff --git a/src/common/parser/WasmEscapeScanner.ts b/src/common/parser/WasmEscapeScanner.ts index fca504f3d..5824e5f39 100644 --- a/src/common/parser/WasmEscapeScanner.ts +++ b/src/common/parser/WasmEscapeScanner.ts @@ -19,7 +19,7 @@ let wasmModule: WebAssembly.Instance | undefined; let wasmExports: { memory: WebAssembly.Memory; reset: () => void; - scan: (length: number) => number; + scan: (offset: number, length: number) => number; set_state: (state: number, collect: number) => void; get_input_ptr: () => number; get_kinds_ptr: () => number; @@ -162,14 +162,14 @@ export class WasmEscapeScanner { } } - public static scan(data: Uint32Array, length: number): ScanResult { + public static scan(data: Uint32Array, length: number, offset = 0): ScanResult { const ex = ensureWasm(); const inputPtr = ex.get_input_ptr(); const mem = ex.memory.buffer; const inputView = new Uint32Array(mem, inputPtr, length); inputView.set(data.subarray(0, length)); - const opCount = ex.scan(length); + const opCount = ex.scan(offset, length); if (opCount < 0) { throw new Error('Wasm parser op buffer overflow'); } @@ -182,9 +182,9 @@ export class WasmEscapeScanner { const paramStarts = new Uint32Array(mem, ex.get_param_starts_ptr(), count); const paramCounts = new Uint16Array(mem, ex.get_param_counts_ptr(), count); - const headerPtr = ex.get_header_ptr() >> 2; - const headerView = new Uint32Array(mem, ex.get_header_ptr(), 3); + const headerView = new Uint32Array(mem, ex.get_header_ptr(), 4); const paramsLen = headerView[2]; + const nextOffset = headerView[3]; const params = new Uint32Array(mem, ex.get_params_ptr(), paramsLen); @@ -196,7 +196,8 @@ export class WasmEscapeScanner { params: params.slice(), paramStarts: paramStarts.slice(), paramCounts: paramCounts.slice(), - opCount: count + opCount: count, + nextOffset }; } } diff --git a/src/common/parser/wasm/parser.c b/src/common/parser/wasm/parser.c index 88cfdb23d..0eedaca61 100644 --- a/src/common/parser/wasm/parser.c +++ b/src/common/parser/wasm/parser.c @@ -110,16 +110,37 @@ static void copy_params_to_arena(uint32_t op_idx, ParserWasmState *s) { static int emit_op(uint8_t kind, uint32_t start, uint32_t length, uint32_t aux_val, ParserWasmState *s) { uint32_t idx = header()->op_count; + if (idx > 0) { + uint32_t prev = idx - 1; + if (kind == OP_EXECUTE && kinds()[prev] == OP_EXECUTE && aux()[prev] == aux_val) { + lengths()[prev]++; + return (int)prev; + } + if (kind == OP_ESC && kinds()[prev] == OP_ESC && aux()[prev] == aux_val) { + lengths()[prev]++; + return (int)prev; + } + } if (idx >= PARSER_MAX_OPS) return -1; kinds()[idx] = kind; starts()[idx] = start; - lengths()[idx] = length; + if ((kind == OP_EXECUTE || kind == OP_ESC) && length == 0) { + lengths()[idx] = 1; + } else { + lengths()[idx] = length; + } aux()[idx] = aux_val; - if (kind == OP_CSI || kind == OP_ESC || kind == OP_DCS_HOOK) { + if (kind == OP_CSI || kind == OP_DCS_HOOK) { uint32_t input_pos = start; copy_params_to_arena(idx, s); lengths()[idx] = input_pos; starts()[idx] = param_starts()[idx]; + } else if (kind == OP_ESC) { + uint32_t input_pos = start; + uint32_t repeat = lengths()[idx]; + copy_params_to_arena(idx, s); + starts()[idx] = input_pos; + lengths()[idx] = repeat; } else { param_starts()[idx] = 0; param_counts()[idx] = 0; @@ -145,6 +166,7 @@ void reset(void) { header()->op_count = 0; header()->input_len = 0; header()->params_arena_len = 0; + header()->scan_offset = 0; } __attribute__((export_name("get_input_ptr"))) @@ -233,14 +255,22 @@ uint32_t probe_action(uint32_t state_id, uint32_t code) { return tr >> PARSER_TABLE_ACTION_SHIFT; } +static int emit_or_stop(uint8_t kind, uint32_t start, uint32_t length, uint32_t aux_val, ParserWasmState *s, uint32_t stop_at) { + if (emit_op(kind, start, length, aux_val, s) < 0) { + header()->scan_offset = stop_at; + return 0; + } + return 1; +} + __attribute__((export_name("scan"))) -int32_t scan(uint32_t length) { +int32_t scan(uint32_t offset, uint32_t length) { ParserWasmState *s = state(); ParserScanHeader *h = header(); h->op_count = 0; h->params_arena_len = 0; h->input_len = length; - uint32_t i = 0; + uint32_t i = offset; uint32_t code; uint32_t transition; uint32_t action; @@ -250,7 +280,9 @@ int32_t scan(uint32_t length) { code = input()[i]; if (code < 0x18 && s->current_state <= PARSER_STATE_CSI_PARAM + 2) { - if (emit_op(OP_EXECUTE, i, 0, code, s) < 0) return -1; + if (!emit_or_stop(OP_EXECUTE, i, 0, code, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } s->preceding_join_state = 0; i++; continue; @@ -276,7 +308,9 @@ int32_t scan(uint32_t length) { params_add_subparam(s, -1); } else if (ch >= 0x40 && ch <= 0x7e) { uint32_t ident = (s->collect << 8) | ch; - if (emit_op(OP_CSI, k, 0, ident, s) < 0) return -1; + if (!emit_or_stop(OP_CSI, k, 0, ident, s, k)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } s->preceding_join_state = 0; i = k; s->current_state = PARSER_STATE_GROUND; @@ -300,7 +334,9 @@ int32_t scan(uint32_t length) { uint32_t next_state = transition & PARSER_TABLE_STATE_MASK; switch (action) { case 1: /* ERROR - report state before transition (matches TS parser) */ - if (emit_op(OP_ERROR, i, 0, (s->current_state << 16) | code, s) < 0) return -1; + if (!emit_or_stop(OP_ERROR, i, 0, (s->current_state << 16) | code, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } s->current_state = next_state; break; default: @@ -319,12 +355,16 @@ int32_t scan(uint32_t length) { c += 4; } while (c < length && is_printable(input()[c])) c++; - if (emit_op(OP_PRINT, print_start, c - print_start, 0, s) < 0) return -1; + if (!emit_or_stop(OP_PRINT, print_start, c - print_start, 0, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } i = c - 1; break; } case PARSER_ACTION_EXECUTE: - if (emit_op(OP_EXECUTE, i, 0, code, s) < 0) return -1; + if (!emit_or_stop(OP_EXECUTE, i, 0, code, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } s->preceding_join_state = 0; break; case PARSER_ACTION_IGNORE: @@ -333,7 +373,9 @@ int32_t scan(uint32_t length) { break; case PARSER_ACTION_CSI_DISPATCH: { uint32_t ident = (s->collect << 8) | code; - if (emit_op(OP_CSI, i, 0, ident, s) < 0) return -1; + if (!emit_or_stop(OP_CSI, i, 0, ident, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } s->preceding_join_state = 0; break; } @@ -353,7 +395,9 @@ int32_t scan(uint32_t length) { break; case PARSER_ACTION_ESC_DISPATCH: { uint32_t ident = (s->collect << 8) | code; - if (emit_op(OP_ESC, i, 0, ident, s) < 0) return -1; + if (!emit_or_stop(OP_ESC, i, 0, ident, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } s->preceding_join_state = 0; break; } @@ -362,21 +406,27 @@ int32_t scan(uint32_t length) { s->collect = 0; break; case 4: /* OSC_START */ - if (emit_op(OP_OSC_START, i, 0, 0, s) < 0) return -1; + if (!emit_or_stop(OP_OSC_START, i, 0, 0, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } s->osc_start = i + 1; break; case 5: /* OSC_PUT */ for (uint32_t j = i + 1; ; j++) { if (j >= length || (code = input()[j]) < 0x20 || (code > 0x7f && code < PARSER_NON_ASCII_PRINTABLE)) { - if (j > i && emit_op(OP_OSC_PUT, i, j - i, 0, s) < 0) return -1; + if (j > i && !emit_or_stop(OP_OSC_PUT, i, j - i, 0, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } i = j - 1; break; } } break; case PARSER_ACTION_OSC_END: { - if (emit_op(OP_OSC_END, i, 0, code, s) < 0) return -1; + if (!emit_or_stop(OP_OSC_END, i, 0, code, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } s->osc_term = code; if (code == 0x1b) s->current_state = PARSER_STATE_ESCAPE; params_reset_zdm(s); @@ -386,21 +436,27 @@ int32_t scan(uint32_t length) { } case 12: /* DCS_HOOK */ s->dcs_hook_ident = (s->collect << 8) | code; - if (emit_op(OP_DCS_HOOK, i, 0, s->dcs_hook_ident, s) < 0) return -1; + if (!emit_or_stop(OP_DCS_HOOK, i, 0, s->dcs_hook_ident, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } s->dcs_start = i + 1; break; case 13: /* DCS_PUT */ for (uint32_t j = i + 1; ; j++) { if (j >= length || (code = input()[j]) == 0x18 || code == 0x1a || code == 0x1b || (code > 0x7f && code < PARSER_NON_ASCII_PRINTABLE)) { - if (j > i && emit_op(OP_DCS_PUT, i, j - i, 0, s) < 0) return -1; + if (j > i && !emit_or_stop(OP_DCS_PUT, i, j - i, 0, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } i = j - 1; break; } } break; case PARSER_ACTION_DCS_UNHOOK: { - if (emit_op(OP_DCS_UNHOOK, i, 0, code, s) < 0) return -1; + if (!emit_or_stop(OP_DCS_UNHOOK, i, 0, code, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } if (code == 0x1b) s->current_state = PARSER_STATE_ESCAPE; params_reset_zdm(s); s->collect = 0; @@ -409,7 +465,9 @@ int32_t scan(uint32_t length) { } case 15: /* APC_START */ s->apc_hook_ident = (s->collect << 8) | code; - if (emit_op(OP_APC_START, i, 0, s->apc_hook_ident, s) < 0) return -1; + if (!emit_or_stop(OP_APC_START, i, 0, s->apc_hook_ident, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } s->apc_start = i + 1; break; case 16: /* APC_PUT */ @@ -419,13 +477,17 @@ int32_t scan(uint32_t length) { (input()[j] >= 0x08 && input()[j] < 0x0e) || input()[j] >= PARSER_NON_ASCII_PRINTABLE )) continue; - if (j > i && emit_op(OP_APC_PUT, i, j - i, 0, s) < 0) return -1; + if (j > i && !emit_or_stop(OP_APC_PUT, i, j - i, 0, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } i = j - 1; break; } break; case PARSER_ACTION_APC_END: { - if (emit_op(OP_APC_END, i, 0, code, s) < 0) return -1; + if (!emit_or_stop(OP_APC_END, i, 0, code, s, i)) { + return h->op_count > 0 ? (int32_t)h->op_count : -1; + } if (code == 0x1b) s->current_state = PARSER_STATE_ESCAPE; params_reset_zdm(s); s->collect = 0; @@ -437,5 +499,6 @@ int32_t scan(uint32_t length) { } i++; } + h->scan_offset = length; return (int32_t)h->op_count; } diff --git a/src/common/parser/wasm/parser.h b/src/common/parser/wasm/parser.h index c13a29153..ad75fe3a7 100644 --- a/src/common/parser/wasm/parser.h +++ b/src/common/parser/wasm/parser.h @@ -74,6 +74,7 @@ typedef struct { uint32_t op_count; uint32_t input_len; uint32_t params_arena_len; + uint32_t scan_offset; } ParserScanHeader; #endif diff --git a/src/common/parser/wasm/parser.wasm b/src/common/parser/wasm/parser.wasm index 19815c944..b3a9ac1dc 100755 Binary files a/src/common/parser/wasm/parser.wasm and b/src/common/parser/wasm/parser.wasm differ diff --git a/src/common/parser/wasm/parser.wasm.embed.ts b/src/common/parser/wasm/parser.wasm.embed.ts index 29e6ddbce..a16cb5e55 100644 --- a/src/common/parser/wasm/parser.wasm.embed.ts +++ b/src/common/parser/wasm/parser.wasm.embed.ts @@ -3,4 +3,4 @@ * @license MIT */ /** Base64-encoded parser.wasm (generated by bin/build_parser_wasm.sh) */ -export const PARSER_WASM_BASE64 = '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ADsBACAEQcCwB2pBADYCAAtBAEEAKAKAkARBAWo2AoCQBCAFIQQLIAQLC8pCAQBBgAgLwkIAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMBCwADAAMAAwADAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgABAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQEDAQMBAwEDAQMBAwEDAQMBAwEDAQMBAwEDAQMBAwEDAQMBAwEDAQMBAwEDAQMBAwADAQMAAwELAQMBAwEDAQMCCQIJAgkCCQIJAgkCCQIJAgkCCQIJAgkCCQIJAgkCCQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoJCwAKAAoACgAKAAoACgAKBwAACgAKAwsACggEBwAOCwAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAQAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwAACAQHAA4LAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAAMCAwADAQsCAwIDAgMCAwIJAgkCCQIJAgkCCQIJAgkCCQIJAgkCCQIJAgkCCQIJAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoCAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADCQsAAwADAAMAAwADAAMAAwcAAAMAAwMLAAAIBAcADgsAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwMDAAMBCwMDAwMDAwMDBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkECAQIBAgECAQIBAgECAQIBAgECAQIBAgECQQJBAkECQAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwMAAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwADBAMAAwELBAMEAwQDBAMFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQQIBAgECAQIBAgECAQIBAgECAQIBAgECAYABgAGAAYAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHBAAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwAACAQHAA4LAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABBQMFAwUDBQMFAwUDBQMFAwUDBQMFAwUDBQMFAwUDBQMFAwUDBQMFAwUDBQMFAwUDAAMFAwADAQsFAwUDBQMFAwUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcFAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADCQsAAwADAAMAAwADAAMAAwcAAAMAAwMLAAAIBAcADgsAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEGAwYDBgMGAwYDBgMGAwYDBgMGAwYDBgMGAwYDBgMGAwYDBgMGAwYDBgMGAwYDBgMAAwYDAAMBCwYDBgMGAwYDBgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwYAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAADBwAAAwELBwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwAACAQHAA4LAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABCAAIAAgACAAIAAgACAAABggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAAAYIAAAGAAYIAAgACAAIAAgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADCQsAAwADAAMAAwADAAMAAwcAAAMAAwMLAAYIBAcADgsIBQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAAAwkAAAMBCwkACQAJAAkADAkMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkKCAoICggKCAoICggKCAoICggKCAoICggKCQoJCgkKCQ0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDAkAAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAADCgAAAwELCgAKAAoACgAMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkMCQoICggKCAoICggKCAoICggKCAoICggKCAsACwALAAsADQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MCgAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwAACAQHAA4LAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABCwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsAAAMLAAADAQsLAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADCQsAAwADAAMAAwADAAMAAwcAAAMAAwMLAAAIBAcADgsLAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAwwAAAMBCwwADAAMAAwADAkMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkLAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDAwAAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQAODQ0ADgAODQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwAOCAQHAA4LDQ0AAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABDgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAMOAAADAQsOAA4ADgAOAA8JDwkPCQ8JDwkPCQ8JDwkPCQ8JDwkPCQ8JDwkPCQ8JEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8OAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADCQsAAwADAAMAAwADAAMAAwcAAAMAAwMLAAAIBAcADgsAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAAAw8AAAMBCw8ADwAPAA8ADwkPCQ8JDwkPCQ8JDwkPCQ8JDwkPCQ8JDwkPCQ8JDwkQDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDw8AAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAARAAEAAQABAAEAAQABAAEAAQEBAQEBAQEBAQEBAQABAAEAAQABAAEAAQABAAEAAQAAAREAAAEQAREAAQABAAEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwARCAQHAA4LEBAA/gIEbmFtZQAMC3BhcnNlci53YXNtAcgCFQAFcmVzZXQBDWdldF9pbnB1dF9wdHICDWdldF9raW5kc19wdHIDDmdldF9zdGFydHNfcHRyBA9nZXRfbGVuZ3Roc19wdHIFC2dldF9hdXhfcHRyBhRnZXRfcGFyYW1fc3RhcnRzX3B0cgcUZ2V0X3BhcmFtX2NvdW50c19wdHIIDmdldF9wYXJhbXNfcHRyCQ1nZXRfc3RhdGVfcHRyCg5nZXRfaGVhZGVyX3B0cgsJc2V0X3N0YXRlDBBleHBvcnRfcGFyYW1zX3RvDQ5nZXRfcGFyYW1zX2xlbg4RZ2V0X3N1YnBhcmFtc19sZW4PEWdldF9zdWJwYXJhbXNfcHRyEBVnZXRfc3VicGFyYW1zX2lkeF9wdHIREHN5bmNfcGFyYW1zX2Zyb20SDHByb2JlX2FjdGlvbhMEc2NhbhQHZW1pdF9vcAcSAQAPX19zdGFja19wb2ludGVyCQoBAAcucm9kYXRhADgJcHJvZHVjZXJzAQxwcm9jZXNzZWQtYnkBDFVidW50dSBjbGFuZxExOC4xLjMgKDF1YnVudHUxKQAsD3RhcmdldF9mZWF0dXJlcwIrD211dGFibGUtZ2xvYmFscysIc2lnbi1leHQ='; +export const PARSER_WASM_BASE64 = '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AAIAAgACAAIAAgACAAIAAgABAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwACAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQEDAQMBAwEDAQMBAwEDAQMBAwEDAQMBAwEDAQMBAwEDAQMBAwEDAQMBAwEDAQMBAwADAQMAAwELAQMBAwEDAQMCCQIJAgkCCQIJAgkCCQIJAgkCCQIJAgkCCQIJAgkCCQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoJCwAKAAoACgAKAAoACgAKBwAACgAKAwsACggEBwAOCwAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAQAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwAACAQHAA4LAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAAMCAwADAQsCAwIDAgMCAwIJAgkCCQIJAgkCCQIJAgkCCQIJAgkCCQIJAgkCCQIJAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoCAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADCQsAAwADAAMAAwADAAMAAwcAAAMAAwMLAAAIBAcADgsAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAwMDAAMBCwMDAwMDAwMDBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkECAQIBAgECAQIBAgECAQIBAgECAQIBAgECQQJBAkECQAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwMAAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwQDBAMEAwADBAMAAwELBAMEAwQDBAMFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQQIBAgECAQIBAgECAQIBAgECAQIBAgECAYABgAGAAYAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHBAAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwAACAQHAA4LAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABBQMFAwUDBQMFAwUDBQMFAwUDBQMFAwUDBQMFAwUDBQMFAwUDBQMFAwUDBQMFAwUDAAMFAwADAQsFAwUDBQMFAwUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBQkFCQUJBgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcFAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADCQsAAwADAAMAAwADAAMAAwcAAAMAAwMLAAAIBAcADgsAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEGAwYDBgMGAwYDBgMGAwYDBgMGAwYDBgMGAwYDBgMGAwYDBgMGAwYDBgMGAwYDBgMAAwYDAAMBCwYDBgMGAwYDBgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwYAAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAADBwAAAwELBwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwAACAQHAA4LAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABCAAIAAgACAAIAAgACAAABggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAAAYIAAAGAAYIAAgACAAIAAgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQgFCAUIBQADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADCQsAAwADAAMAAwADAAMAAwcAAAMAAwMLAAYIBAcADgsIBQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAAAwkAAAMBCwkACQAJAAkADAkMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkKCAoICggKCAoICggKCAoICggKCAoICggKCQoJCgkKCQ0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDAkAAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAADCgAAAwELCgAKAAoACgAMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkMCQoICggKCAoICggKCAoICggKCAoICggKCAsACwALAAsADQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MCgAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwAACAQHAA4LAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABCwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsAAAMLAAADAQsLAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADCQsAAwADAAMAAwADAAMAAwcAAAMAAwMLAAAIBAcADgsLAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAwwAAAMBCwwADAAMAAwADAkMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkMCQwJDAkLAAsACwALAAsACwALAAsACwALAAsACwALAAsACwALAA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDA0MDQwNDAwAAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQAODQ0ADgAODQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwAOCAQHAA4LDQ0AAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABDgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAMOAAADAQsOAA4ADgAOAA8JDwkPCQ8JDwkPCQ8JDwkPCQ8JDwkPCQ8JDwkPCQ8JEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8OAAADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADCQsAAwADAAMAAwADAAMAAwcAAAMAAwMLAAAIBAcADgsAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAAAw8AAAMBCw8ADwAPAA8ADwkPCQ8JDwkPCQ8JDwkPCQ8JDwkPCQ8JDwkPCQ8JDwkQDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDxAPEA8QDw8AAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMJCwADAAMAAwADAAMAAwADBwAAAwADAwsAAAgEBwAOCwABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAARAAEAAQABAAEAAQABAAEAAQEBAQEBAQEBAQEBAQABAAEAAQABAAEAAQABAAEAAQAAAREAAAEQAREAAQABAAEAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAAAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwkLAAMAAwADAAMAAwADAAMHAAADAAMDCwARCAQHAA4LEBAAgwMEbmFtZQAMC3BhcnNlci53YXNtAc0CFQAFcmVzZXQBDWdldF9pbnB1dF9wdHICDWdldF9raW5kc19wdHIDDmdldF9zdGFydHNfcHRyBA9nZXRfbGVuZ3Roc19wdHIFC2dldF9hdXhfcHRyBhRnZXRfcGFyYW1fc3RhcnRzX3B0cgcUZ2V0X3BhcmFtX2NvdW50c19wdHIIDmdldF9wYXJhbXNfcHRyCQ1nZXRfc3RhdGVfcHRyCg5nZXRfaGVhZGVyX3B0cgsJc2V0X3N0YXRlDBBleHBvcnRfcGFyYW1zX3RvDQ5nZXRfcGFyYW1zX2xlbg4RZ2V0X3N1YnBhcmFtc19sZW4PEWdldF9zdWJwYXJhbXNfcHRyEBVnZXRfc3VicGFyYW1zX2lkeF9wdHIREHN5bmNfcGFyYW1zX2Zyb20SDHByb2JlX2FjdGlvbhMEc2NhbhQMZW1pdF9vcl9zdG9wBxIBAA9fX3N0YWNrX3BvaW50ZXIJCgEABy5yb2RhdGEALwlwcm9kdWNlcnMBDHByb2Nlc3NlZC1ieQEOSG9tZWJyZXcgY2xhbmcGMjIuMS42AJQBD3RhcmdldF9mZWF0dXJlcwgrC2J1bGstbWVtb3J5Kw9idWxrLW1lbW9yeS1vcHQrFmNhbGwtaW5kaXJlY3Qtb3ZlcmxvbmcrCm11bHRpdmFsdWUrD211dGFibGUtZ2xvYmFscysTbm9udHJhcHBpbmctZnB0b2ludCsPcmVmZXJlbmNlLXR5cGVzKwhzaWduLWV4dA=='; diff --git a/test/benchmark/DecorationService.benchmark.ts b/test/benchmark/DecorationService.benchmark.ts index 534a1fa30..c03acb2bb 100644 --- a/test/benchmark/DecorationService.benchmark.ts +++ b/test/benchmark/DecorationService.benchmark.ts @@ -4,8 +4,8 @@ */ import { perfContext, before, RuntimeCase } from 'xterm-benchmark'; -import { DecorationService } from '../../src/common/services/DecorationService'; -import { MockLogService, MockBufferService, MockOptionsService } from '../../src/common/TestUtils.test'; +import { DecorationService } from '../../out/common/services/DecorationService'; +import { MockLogService, MockBufferService, MockOptionsService } from '../../out/common/TestUtils.test'; const enum Constants { COLS = 80, ROWS = 30, diff --git a/test/benchmark/EscapeSequenceParser.benchmark.ts b/test/benchmark/EscapeSequenceParser.benchmark.ts index c2cecfdbb..a5e8165b8 100644 --- a/test/benchmark/EscapeSequenceParser.benchmark.ts +++ b/test/benchmark/EscapeSequenceParser.benchmark.ts @@ -4,12 +4,12 @@ */ import { perfContext, before, beforeEach, ThroughputRuntimeCase } from 'xterm-benchmark'; -import { EscapeSequenceParser } from '../../src/common/parser/EscapeSequenceParser'; -import { C0, C1 } from '../../src/common/data/EscapeSequences'; -import { IDcsHandler, IOscHandler, IApcHandler, IParams } from '../../src/common/parser/Types'; -import { OscHandler } from '../../src/common/parser/OscParser'; -import { DcsHandler } from '../../src/common/parser/DcsParser'; -import { ApcHandler } from '../../src/common/parser/ApcParser'; +import { EscapeSequenceParser } from '../../out/common/parser/EscapeSequenceParser'; +import { C0, C1 } from '../../out/common/data/EscapeSequences'; +import { IDcsHandler, IOscHandler, IApcHandler, IParams } from '../../out/common/parser/Types'; +import { OscHandler } from '../../out/common/parser/OscParser'; +import { DcsHandler } from '../../out/common/parser/DcsParser'; +import { ApcHandler } from '../../out/common/parser/ApcParser'; const SIZE = 5000000; diff --git a/test/benchmark/Event.benchmark.ts b/test/benchmark/Event.benchmark.ts index ba3f8de9c..fb710a9f6 100644 --- a/test/benchmark/Event.benchmark.ts +++ b/test/benchmark/Event.benchmark.ts @@ -4,7 +4,7 @@ */ import { perfContext, before, RuntimeCase } from 'xterm-benchmark'; -import { Emitter } from '../../src/common/Event'; +import { Emitter } from '../../out/common/Event'; const ITERATIONS = 1_000_000; diff --git a/test/benchmark/Terminal.benchmark.ts b/test/benchmark/Terminal.benchmark.ts index 97579cb30..6f746d629 100644 --- a/test/benchmark/Terminal.benchmark.ts +++ b/test/benchmark/Terminal.benchmark.ts @@ -6,8 +6,8 @@ import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark'; import { spawn } from 'node-pty'; -import { Utf8ToUtf32, stringFromCodePoint } from '../../src/common/input/TextDecoder'; -import { CoreBrowserTerminal } from '../../src/browser/CoreBrowserTerminal'; +import { Utf8ToUtf32, stringFromCodePoint } from '../../out/common/input/TextDecoder'; +import { CoreBrowserTerminal } from '../../out/browser/CoreBrowserTerminal'; perfContext('Terminal: ls -lR /usr/lib', () => { let content = '';