@specy/x86 2.2.1 → 2.4.0
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/index.d.mts +258 -20
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +591 -65
- package/dist/index.mjs.map +1 -1
- package/dist/wasm/blinkenlib.js +2 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -16,6 +16,12 @@ type MonacoError = {
|
|
|
16
16
|
/** Project-relative source path when checking a virtual Project. */file?: string;
|
|
17
17
|
lineIndex: number;
|
|
18
18
|
column: number;
|
|
19
|
+
/**
|
|
20
|
+
* One-based and exclusive, so the squiggle covers the whole name the
|
|
21
|
+
* assembler complained about. Absent when the message named nothing that
|
|
22
|
+
* could be found in the line.
|
|
23
|
+
*/
|
|
24
|
+
endColumn?: number;
|
|
19
25
|
line: {
|
|
20
26
|
line: string;
|
|
21
27
|
line_index: number;
|
|
@@ -40,7 +46,9 @@ declare enum RegisterSize {
|
|
|
40
46
|
Byte = 1,
|
|
41
47
|
Word = 2,
|
|
42
48
|
Long = 4,
|
|
43
|
-
Double = 8
|
|
49
|
+
Double = 8,
|
|
50
|
+
/** 16 bytes, the width of an SSE register. */
|
|
51
|
+
Quad = 16
|
|
44
52
|
}
|
|
45
53
|
type ExecutionStep = {
|
|
46
54
|
mutations: MutationOperation[];
|
|
@@ -259,16 +267,27 @@ type X86EmulatorEventHandler<T extends X86EmulatorEventName> = (event: X86Emulat
|
|
|
259
267
|
* line of source for NASM; the same work in its own module takes single-digit
|
|
260
268
|
* milliseconds, and produces byte-identical output.
|
|
261
269
|
*
|
|
262
|
-
* The object
|
|
263
|
-
* linker expects
|
|
270
|
+
* The object files come back as bytes for the caller to stage wherever the
|
|
271
|
+
* linker expects them, so the linker can keep running inside blink unchanged.
|
|
264
272
|
*/
|
|
265
273
|
interface WasmAssembler {
|
|
266
274
|
assemble(project: X86Project): Promise<WasmAssemblyResult>;
|
|
267
275
|
}
|
|
276
|
+
/** One translation unit's object, and the Project File it was assembled from. */
|
|
277
|
+
type WasmAssemblyUnit = {
|
|
278
|
+
path: string;
|
|
279
|
+
object: Uint8Array;
|
|
280
|
+
};
|
|
268
281
|
type WasmAssemblyResult = {
|
|
269
|
-
/** The assembler's exit status: 0 when
|
|
282
|
+
/** The assembler's exit status: 0 when every translation unit assembled. */status: number; /** What it wrote to stdout, verbatim. */
|
|
270
283
|
stdout: string; /** What it wrote to stderr, verbatim - the diagnostics a parser reads. */
|
|
271
|
-
stderr: string;
|
|
284
|
+
stderr: string;
|
|
285
|
+
/**
|
|
286
|
+
* The objects to link, Entry first. Empty when any translation unit failed:
|
|
287
|
+
* a partial link would report missing symbols that are only missing because
|
|
288
|
+
* the File defining them is the one that did not assemble.
|
|
289
|
+
*/
|
|
290
|
+
units: WasmAssemblyUnit[]; /** The Entry's object, or null when the assembly failed. */
|
|
272
291
|
object: Uint8Array | null;
|
|
273
292
|
};
|
|
274
293
|
//#endregion
|
|
@@ -277,6 +296,14 @@ interface Binary {
|
|
|
277
296
|
file: ResourceSource;
|
|
278
297
|
commands: string;
|
|
279
298
|
}
|
|
299
|
+
interface LinkerBinary {
|
|
300
|
+
file: ResourceSource;
|
|
301
|
+
/**
|
|
302
|
+
* The command that links however many objects the Project's translation units produced. Every
|
|
303
|
+
* path it is given is one this package generated, so none of them needs escaping.
|
|
304
|
+
*/
|
|
305
|
+
link(objects: readonly string[]): string;
|
|
306
|
+
}
|
|
280
307
|
interface DiagnosticLine {
|
|
281
308
|
file?: string;
|
|
282
309
|
line: number;
|
|
@@ -304,7 +331,7 @@ interface AssemblerMode {
|
|
|
304
331
|
* portable C. Fasm is written in x86 assembly and has no such build.
|
|
305
332
|
*/
|
|
306
333
|
assembler?: Binary;
|
|
307
|
-
linker?:
|
|
334
|
+
linker?: LinkerBinary;
|
|
308
335
|
};
|
|
309
336
|
/** Runs outside blink, and takes precedence over `binaries.assembler`. */
|
|
310
337
|
wasmAssembler?: WasmAssembler;
|
|
@@ -322,7 +349,7 @@ declare const assemblers: {
|
|
|
322
349
|
};
|
|
323
350
|
linker: {
|
|
324
351
|
file: URL;
|
|
325
|
-
|
|
352
|
+
link: (objects: readonly string[]) => string;
|
|
326
353
|
};
|
|
327
354
|
};
|
|
328
355
|
};
|
|
@@ -346,7 +373,7 @@ declare const assemblers: {
|
|
|
346
373
|
binaries: {
|
|
347
374
|
linker: {
|
|
348
375
|
file: URL;
|
|
349
|
-
|
|
376
|
+
link: (objects: readonly string[]) => string;
|
|
350
377
|
};
|
|
351
378
|
};
|
|
352
379
|
wasmAssembler: WasmAssembler;
|
|
@@ -358,14 +385,37 @@ declare function nasmDiagnostics(str: string): DiagnosticLine[];
|
|
|
358
385
|
declare function gnuDiagnostics(str: string): DiagnosticLine[];
|
|
359
386
|
declare function fasmDiagnostics(str: string): DiagnosticLine[];
|
|
360
387
|
/**
|
|
361
|
-
*
|
|
388
|
+
* What `ld` said, as diagnostics. Nothing else in the toolchain reports a symbol that no
|
|
389
|
+
* translation unit defines: NASM accepts every `extern` on the author's word, and the mistake
|
|
390
|
+
* only surfaces here. Without this the link simply failed and the build looked like it had
|
|
391
|
+
* succeeded, leaving the program unrunnable and nothing on screen to say why.
|
|
392
|
+
*
|
|
393
|
+
* `ld` writes a location as `file:line:(section+offset):`, and writes the notes that introduce an
|
|
394
|
+
* error - "in function `_start':" - as lines ending in a colon, which are skipped in favour of
|
|
395
|
+
* the error itself.
|
|
396
|
+
*/
|
|
397
|
+
declare function ldDiagnostics(str: string): DiagnosticLine[];
|
|
398
|
+
/** Where in a line a diagnostic belongs, in one-based columns. */
|
|
399
|
+
type DiagnosticSpan = {
|
|
400
|
+
column: number;
|
|
401
|
+
/**
|
|
402
|
+
* One-based and exclusive. Absent when nothing in the line could be
|
|
403
|
+
* identified, which leaves how much to underline to the caller.
|
|
404
|
+
*/
|
|
405
|
+
endColumn?: number;
|
|
406
|
+
};
|
|
407
|
+
/**
|
|
408
|
+
* Which part of a line a diagnostic belongs on. NASM reports a line and no
|
|
362
409
|
* column, but it names the thing it is complaining about: `msg' in "symbol
|
|
363
410
|
* `msg' not defined", `.data' in a section warning. Finding that name in the
|
|
364
|
-
* line turns a whole-line squiggle into one under the mistake itself
|
|
411
|
+
* line turns a whole-line squiggle into one under the mistake itself, and the
|
|
412
|
+
* name's own length is how far the squiggle runs.
|
|
365
413
|
*
|
|
366
|
-
* Falls back to the first column, which is what the caller would
|
|
367
|
-
* anyway, so a message that names nothing findable is no worse off.
|
|
414
|
+
* Falls back to the first column and no extent, which is what the caller would
|
|
415
|
+
* have used anyway, so a message that names nothing findable is no worse off.
|
|
368
416
|
*/
|
|
417
|
+
declare function locateDiagnosticSpan(message: string, line: string, warningClass?: string): DiagnosticSpan;
|
|
418
|
+
/** The one-based column a diagnostic belongs on. */
|
|
369
419
|
declare function locateDiagnosticColumn(message: string, line: string, warningClass?: string): number;
|
|
370
420
|
//#endregion
|
|
371
421
|
//#region src/wasm-types.d.ts
|
|
@@ -471,7 +521,9 @@ type BlinkenlibModule = {
|
|
|
471
521
|
blinkenlibSetRegister(register: X86RegisterName, value: bigint): boolean;
|
|
472
522
|
blinkenlibSetFlags(flags: number): void;
|
|
473
523
|
blinkenlibSetStepRecording(enabled: boolean): void;
|
|
474
|
-
blinkenlibGetRegisterSnapshot(): RegisterSnapshot;
|
|
524
|
+
blinkenlibGetRegisterSnapshot(): RegisterSnapshot; /** A copy of the packed FPU state block; empty when there is no machine. */
|
|
525
|
+
blinkenlibGetFpuState(): Uint8Array; /** Restores the whole packed FPU state block; false when there is no machine or the length is wrong. */
|
|
526
|
+
blinkenlibSetFpuState(bytes: Uint8Array | number[]): boolean;
|
|
475
527
|
blinkenlibReadMemoryBytes(address: bigint, length: number): MemoryReadResult;
|
|
476
528
|
blinkenlibWriteMemoryBytes(address: bigint, bytes: Uint8Array | number[]): MemoryWriteResult;
|
|
477
529
|
blinkenlibGetDisassembly(): DisassemblySnapshot;
|
|
@@ -522,7 +574,9 @@ declare class BlinkRuntime {
|
|
|
522
574
|
private sourceMap;
|
|
523
575
|
private sourceProject;
|
|
524
576
|
private assembleOnly;
|
|
525
|
-
private
|
|
577
|
+
private assembledObjects;
|
|
578
|
+
/** What the linker said, kept apart from the assembler's log so `ld`'s own parser reads it. */
|
|
579
|
+
private linkerLogs;
|
|
526
580
|
private readonly defaultArgc;
|
|
527
581
|
private readonly defaultArgv;
|
|
528
582
|
private constructor();
|
|
@@ -542,13 +596,21 @@ declare class BlinkRuntime {
|
|
|
542
596
|
private checkProjectWithWasmAssembler;
|
|
543
597
|
private buildProject;
|
|
544
598
|
/**
|
|
545
|
-
* The
|
|
546
|
-
* rather than the assembler's own words.
|
|
599
|
+
* The objects this build's assembler wrote, for the checks that read them
|
|
600
|
+
* rather than the assembler's own words. Empty when the assembly failed, and
|
|
547
601
|
* when the assembler writes an executable directly and never produces one.
|
|
548
|
-
* Read once per build, so a previous build's
|
|
549
|
-
*
|
|
602
|
+
* Read once per build, so a previous build's objects can never stand in for
|
|
603
|
+
* ones that were never written.
|
|
604
|
+
*/
|
|
605
|
+
private takeAssembledObjects;
|
|
606
|
+
/**
|
|
607
|
+
* What the link had to say. A link that failed leaves no program to run, so a build that
|
|
608
|
+
* reported nothing would hand the caller a success it cannot act on - the state stays `Ready`
|
|
609
|
+
* and the next step or run fails with a message about the emulator rather than the mistake.
|
|
610
|
+
* The fallback covers a linker that fails in a way its parser does not recognise, so a failed
|
|
611
|
+
* link is always visible as an error whatever `ld` chose to say about it.
|
|
550
612
|
*/
|
|
551
|
-
private
|
|
613
|
+
private linkDiagnostics;
|
|
552
614
|
/**
|
|
553
615
|
* Nothing in the toolchain treats a missing entry point as a failure: NASM
|
|
554
616
|
* has no opinion on it and `ld` only warns, then starts the program at the
|
|
@@ -564,6 +626,12 @@ declare class BlinkRuntime {
|
|
|
564
626
|
* the object itself.
|
|
565
627
|
*/
|
|
566
628
|
private assembleWithWasmAssembler;
|
|
629
|
+
/**
|
|
630
|
+
* Starts the link, and starts a log of its own for it. The assembler's parser cannot read
|
|
631
|
+
* `ld`'s diagnostics and `ld`'s cannot read the assembler's, so what each of them said has to
|
|
632
|
+
* stay separable even though both reach the caller as one report.
|
|
633
|
+
*/
|
|
634
|
+
private beginLinking;
|
|
567
635
|
private collectAssemblerDiagnostics;
|
|
568
636
|
private emitAssemblerOutput;
|
|
569
637
|
private parseAssemblerDiagnostics;
|
|
@@ -582,6 +650,26 @@ declare class BlinkRuntime {
|
|
|
582
650
|
getRegisterSnapshot(): RegisterSnapshot;
|
|
583
651
|
getRegister(register: keyof RegisterSnapshot['registers']): bigint;
|
|
584
652
|
setRegister(register: keyof RegisterSnapshot['registers'], value: bigint): void;
|
|
653
|
+
/**
|
|
654
|
+
* A copy of the whole packed FPU state block: `xmm0..xmm15`, `mxcsr`, the
|
|
655
|
+
* x87 stack and its control, status and tag words. One bridge call reads
|
|
656
|
+
* the lot, so a per-step snapshot costs the same whatever the instruction
|
|
657
|
+
* touched. Before a program is loaded there is no machine, the bridge
|
|
658
|
+
* answers with an empty array, and the block reads as zeros.
|
|
659
|
+
*
|
|
660
|
+
* Any other length means the wasm and this package disagree about the
|
|
661
|
+
* layout, which would silently degrade every read to zeros, every step to
|
|
662
|
+
* "the FPU did not change" and every undo to writing a zeroed FPU file, so
|
|
663
|
+
* it throws instead.
|
|
664
|
+
*/
|
|
665
|
+
getFpuStateRaw(): Uint8Array;
|
|
666
|
+
/**
|
|
667
|
+
* Restores a block read by `getFpuStateRaw()`. The write goes straight
|
|
668
|
+
* into the machine, so it is never recorded as a step of its own. A block
|
|
669
|
+
* of any other length is rejected here, before the bridge, so that a
|
|
670
|
+
* layout mistake does not read as a missing machine.
|
|
671
|
+
*/
|
|
672
|
+
setFpuStateRaw(bytes: Uint8Array): void;
|
|
585
673
|
setFlags(flags: bigint | number): void;
|
|
586
674
|
setStepRecording(enabled: boolean): void;
|
|
587
675
|
getPc(): bigint;
|
|
@@ -617,6 +705,115 @@ declare class BlinkRuntime {
|
|
|
617
705
|
private tryReadSourceMap;
|
|
618
706
|
}
|
|
619
707
|
//#endregion
|
|
708
|
+
//#region src/fpu-state.d.ts
|
|
709
|
+
/**
|
|
710
|
+
* Decoding and encoding of the packed FPU state block that
|
|
711
|
+
* `blinkenlib_get_fpu_state()` copies out of Blink's machine and
|
|
712
|
+
* `blinkenlib_set_fpu_state()` copies back.
|
|
713
|
+
*
|
|
714
|
+
* The layout is documented once, authoritatively, in
|
|
715
|
+
* `libblink/blink/blinkenlib.h`; the offsets below mirror it and the two must
|
|
716
|
+
* move together. Everything here is pure: it takes bytes and returns values,
|
|
717
|
+
* so it can be unit tested without a machine and used both by the register
|
|
718
|
+
* panel and by the undo snapshot.
|
|
719
|
+
*/
|
|
720
|
+
/** Byte offset of `xmm[16][16]` in the block. */
|
|
721
|
+
declare const X86_FPU_STATE_XMM_OFFSET = 0;
|
|
722
|
+
/** Byte offset of `mxcsr` in the block. */
|
|
723
|
+
declare const X86_FPU_STATE_MXCSR_OFFSET = 256;
|
|
724
|
+
/** Byte offset of the eight `st` doubles, in physical array order. */
|
|
725
|
+
declare const X86_FPU_STATE_ST_OFFSET = 260;
|
|
726
|
+
/** Byte offset of the x87 status word, which carries TOP in bits 11..13. */
|
|
727
|
+
declare const X86_FPU_STATE_SW_OFFSET = 324;
|
|
728
|
+
/** Byte offset of the x87 tag word. */
|
|
729
|
+
declare const X86_FPU_STATE_TW_OFFSET = 328;
|
|
730
|
+
/** Byte offset of the last x87 opcode, carried through untouched. */
|
|
731
|
+
declare const X86_FPU_STATE_OP_OFFSET = 332;
|
|
732
|
+
/** Byte offset of the x87 control word. */
|
|
733
|
+
declare const X86_FPU_STATE_CW_OFFSET = 336;
|
|
734
|
+
/** Byte offset of the last x87 instruction pointer, carried through untouched. */
|
|
735
|
+
declare const X86_FPU_STATE_IP_OFFSET = 340;
|
|
736
|
+
/** Byte offset of the last x87 data pointer, carried through untouched. */
|
|
737
|
+
declare const X86_FPU_STATE_DP_OFFSET = 348;
|
|
738
|
+
/** Total size in bytes of the block, matching `BLINKENLIB_FPU_STATE_SIZE`. */
|
|
739
|
+
declare const X86_FPU_STATE_SIZE = 356;
|
|
740
|
+
/**
|
|
741
|
+
* The SSE register file in the order `decodeFpuState` returns it: `xmm[0]`
|
|
742
|
+
* through `xmm[15]`, then `mxcsr`.
|
|
743
|
+
*/
|
|
744
|
+
declare const X86_SSE_REGISTERS: readonly ["xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7", "xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15", "mxcsr"];
|
|
745
|
+
/**
|
|
746
|
+
* The x87 register file in the order `decodeFpuState` returns it: the stack
|
|
747
|
+
* `st[0]` (the top) through `st[7]`, then the control, status and tag words.
|
|
748
|
+
*/
|
|
749
|
+
declare const X86_X87_REGISTERS: readonly ["st0", "st1", "st2", "st3", "st4", "st5", "st6", "st7", "fctrl", "fstat", "ftag"];
|
|
750
|
+
type X86SseRegisterName = (typeof X86_SSE_REGISTERS)[number];
|
|
751
|
+
type X86X87RegisterName = (typeof X86_X87_REGISTERS)[number];
|
|
752
|
+
type X86FpuState = {
|
|
753
|
+
/**
|
|
754
|
+
* `xmm0` through `xmm15` as unsigned 128-bit values. Lane 0, the lowest
|
|
755
|
+
* byte in memory, is the least significant part of the value.
|
|
756
|
+
*/
|
|
757
|
+
xmm: bigint[]; /** The SSE control and status register. */
|
|
758
|
+
mxcsr: number;
|
|
759
|
+
/**
|
|
760
|
+
* The x87 stack in LOGICAL order: `st[0]` is `st(0)`, the top of the
|
|
761
|
+
* stack, whatever TOP happens to be. Blink keeps the stack as 64-bit
|
|
762
|
+
* doubles rather than 80-bit extended values, so these are exactly the
|
|
763
|
+
* doubles the machine holds.
|
|
764
|
+
*/
|
|
765
|
+
st: number[]; /** The 16-bit x87 control word. */
|
|
766
|
+
fctrl: number; /** The 16-bit x87 status word. TOP lives in bits 11..13. */
|
|
767
|
+
fstat: number;
|
|
768
|
+
/**
|
|
769
|
+
* The 16-bit x87 tag word, two bits per PHYSICAL stack slot: the tag for
|
|
770
|
+
* logical `st[i]` is bits `2 * ((i + TOP) & 7)` of this word, with
|
|
771
|
+
* `TOP = (fstat >> 11) & 7`. A tag of `0b11` means the slot is empty and
|
|
772
|
+
* the matching `st[i]` value is meaningless - Blink leaves whatever the
|
|
773
|
+
* slot last held there, which commonly reads back as a NaN.
|
|
774
|
+
* `readLogicalStTags()` does that rotation for you.
|
|
775
|
+
*/
|
|
776
|
+
ftag: number;
|
|
777
|
+
};
|
|
778
|
+
/**
|
|
779
|
+
* Reads the block into named values, rotating the x87 stack from the physical
|
|
780
|
+
* array order the machine holds into the logical `st(0)..st(7)` order a
|
|
781
|
+
* programmer reads.
|
|
782
|
+
*/
|
|
783
|
+
declare function decodeFpuState(raw: Uint8Array): X86FpuState;
|
|
784
|
+
/**
|
|
785
|
+
* Writes `state` over a copy of `base`, inverting the rotation `decodeFpuState`
|
|
786
|
+
* applied: the logical stack goes back to physical slots under the TOP that
|
|
787
|
+
* `state.fstat` carries. `op`, `ip` and `dp` are not part of `X86FpuState` and
|
|
788
|
+
* are carried through from `base` untouched, as are the high halves of the
|
|
789
|
+
* control, status and tag words, so `encodeFpuState(decodeFpuState(raw), raw)`
|
|
790
|
+
* reproduces `raw` byte for byte.
|
|
791
|
+
*/
|
|
792
|
+
declare function encodeFpuState(state: X86FpuState, base: Uint8Array): Uint8Array;
|
|
793
|
+
/**
|
|
794
|
+
* The eight x87 stack slots as raw IEEE-754 binary64 bit patterns, in LOGICAL
|
|
795
|
+
* order. Undo diffing compares bit patterns rather than the decoded doubles so
|
|
796
|
+
* that a NaN compares equal to itself and never looks like a write.
|
|
797
|
+
*/
|
|
798
|
+
declare function readLogicalStBits(raw: Uint8Array): bigint[];
|
|
799
|
+
/**
|
|
800
|
+
* The two-bit x87 tag of each stack slot, in LOGICAL order to match
|
|
801
|
+
* `X86FpuState.st`: `readLogicalStTags(raw)[0]` tags `st(0)`. `0b00` is a
|
|
802
|
+
* valid value, `0b01` zero, `0b10` a special (NaN or infinity) and `0b11` an
|
|
803
|
+
* empty slot whose `st` value must not be shown as a number.
|
|
804
|
+
*/
|
|
805
|
+
declare function readLogicalStTags(raw: Uint8Array): number[];
|
|
806
|
+
/** True when two blocks hold the same bytes. The common step changes nothing, and this is all it costs. */
|
|
807
|
+
declare function fpuStateBlocksEqual(a: Uint8Array, b: Uint8Array): boolean;
|
|
808
|
+
/**
|
|
809
|
+
* The block the panel shows before a program is built: zeros everywhere except
|
|
810
|
+
* the tag word, which reads `0xffff`, every slot empty. That is what a reset
|
|
811
|
+
* x87 holds - `FpuInit()` in blink/fpu.c sets `tw = -1` - and a zero tag word
|
|
812
|
+
* would instead claim all eight slots hold valid `0.0` values, so the panel
|
|
813
|
+
* would render a full stack for a machine that does not exist yet.
|
|
814
|
+
*/
|
|
815
|
+
declare function emptyFpuStateBlock(): Uint8Array;
|
|
816
|
+
//#endregion
|
|
620
817
|
//#region src/project.d.ts
|
|
621
818
|
declare const X86_PROJECT_ROOT = "/__x86_project";
|
|
622
819
|
declare function validateX86Project(project: X86Project): void;
|
|
@@ -626,6 +823,13 @@ declare function validateX86Project(project: X86Project): void;
|
|
|
626
823
|
* preprocessor macros.
|
|
627
824
|
*/
|
|
628
825
|
declare function stageX86Project(fs: EmscriptenFS, project: X86Project): void;
|
|
826
|
+
/**
|
|
827
|
+
* Points the assembler at one staged Project File and leaves that File's own directory as the
|
|
828
|
+
* working directory, so its `%include`s and `incbin`s resolve from where it was written rather
|
|
829
|
+
* than from wherever the Entry happens to live. The Entry keeps its `/assembly.s` identity, which
|
|
830
|
+
* is the path its existing diagnostics and source maps are written in terms of.
|
|
831
|
+
*/
|
|
832
|
+
declare function selectX86Source(fs: EmscriptenFS, project: X86Project, path: string): string;
|
|
629
833
|
/** Maps a path emitted by NASM or DWARF back to the exact Project path. */
|
|
630
834
|
declare function x86ProjectSourcePath(sourcePath: string | undefined, project: Pick<X86Project, 'entry' | 'files'>): string;
|
|
631
835
|
declare function x86ProjectText(project: X86Project, path: string): string;
|
|
@@ -693,6 +897,28 @@ declare class X86Emulator extends BaseEmulator<BlinkRuntime, X86RegisterName, X8
|
|
|
693
897
|
getRegisterValuesRecord(): Record<X86RegisterName, bigint>;
|
|
694
898
|
getRegisterValue(register: X86RegisterName, size?: RegisterSize): bigint;
|
|
695
899
|
setRegisterValue(register: X86RegisterName, value: bigint, size?: RegisterSize): void;
|
|
900
|
+
/**
|
|
901
|
+
* The SSE and x87 register files: `xmm0..xmm15` and `mxcsr`, and the x87
|
|
902
|
+
* stack in logical order with its control, status and tag words. Read as
|
|
903
|
+
* one block through a single bridge call. `X86_SSE_REGISTERS` and
|
|
904
|
+
* `X86_X87_REGISTERS` name the values in order.
|
|
905
|
+
*/
|
|
906
|
+
getFpuState(): X86FpuState;
|
|
907
|
+
/**
|
|
908
|
+
* Presets the SSE and x87 register files. The write goes straight into the
|
|
909
|
+
* machine, like `setRegisterValue`, so it never becomes an undo entry; the
|
|
910
|
+
* x87 op, instruction and data pointers are left as the machine had them.
|
|
911
|
+
*
|
|
912
|
+
* Like the other setters it does NOT resume the machine: presetting a
|
|
913
|
+
* register on a terminated or paused program must not erase why it
|
|
914
|
+
* stopped. The next step resumes a paused machine on its own.
|
|
915
|
+
*
|
|
916
|
+
* A preset made before the FIRST step does not survive it: the first step
|
|
917
|
+
* starts the program, which builds the machine afresh, so the values are
|
|
918
|
+
* wiped. This is exactly how `setRegisterValue` behaves; a caller that
|
|
919
|
+
* wants to preset state must step once first.
|
|
920
|
+
*/
|
|
921
|
+
setFpuState(state: X86FpuState): void;
|
|
696
922
|
hasTerminated(): boolean;
|
|
697
923
|
run(limit?: number, breakpoints?: X86Breakpoint[]): Promise<EmulatorStatus>;
|
|
698
924
|
private validateRunLimit;
|
|
@@ -704,11 +930,23 @@ declare class X86Emulator extends BaseEmulator<BlinkRuntime, X86RegisterName, X8
|
|
|
704
930
|
private prepareOneInstructionRun;
|
|
705
931
|
private captureStep;
|
|
706
932
|
private recordStep;
|
|
933
|
+
/**
|
|
934
|
+
* Notes the SSE and x87 registers the step wrote. Most instructions touch
|
|
935
|
+
* none of them, and that case costs one byte comparison: only a block that
|
|
936
|
+
* actually differs is decoded and diffed register by register.
|
|
937
|
+
*
|
|
938
|
+
* The block carries three fields `X86FpuState` does not name - the last
|
|
939
|
+
* x87 opcode and the instruction and data pointers - so a step that moves
|
|
940
|
+
* only those decodes both blocks and then names no register. Undo stays
|
|
941
|
+
* exact either way, because it restores the whole block rather than
|
|
942
|
+
* replaying the mutations.
|
|
943
|
+
*/
|
|
944
|
+
private recordFpuMutations;
|
|
707
945
|
private recordMemoryMutations;
|
|
708
946
|
private recordControlFlowMutation;
|
|
709
947
|
private emit;
|
|
710
948
|
}
|
|
711
949
|
declare function createX86Emulator(options?: X86EmulatorOptions): Promise<X86Emulator>;
|
|
712
950
|
//#endregion
|
|
713
|
-
export { AssemblerId, AssemblerMode, BaseEmulator, Binary, BlinkRunOptions, BlinkRuntime, BlinkRuntimeCallbacks, BlinkRuntimeOptions, BlinkState, BlinkenlibModule, BlinkenlibModuleOptions, CompilationError, DEFAULT_ASSEMBLER_ID, DiagnosticLine, DiagnosticSeverity, DiagnosticsParser, DisassemblySnapshot, EmscriptenFS, EmulatorConfig, EmulatorDecoration, EmulatorStatus, ExecutionStep, Instruction, MaybePromise, MemoryReadResult, MemoryWriteResult, MonacoError, MutationOperation, NativeControlFlowKind, NativeInstruction, NativeMemoryWrite, NativeRunControls, NativeRunStop, NativeRunStopKind, NativeStepInfo, NativeSymbol, RegisterHex, RegisterSize, RegisterSnapshot, ResourceSource, StackFrame, StatusRegister, StopReason, StopReasonKind, X86Breakpoint, X86CompilationDiagnostic, X86CompileResult, X86Emulator, X86EmulatorEventHandler, X86EmulatorEventMap, X86EmulatorEventName, X86EmulatorOptions, X86Project, X86ProjectFile, X86RegisterName, X86SourceLocation, X86_PROJECT_ROOT, X86_REGISTER_NAMES, assemblers, createX86Emulator, defaultResourceUrl, fasmDiagnostics, gnuDiagnostics, isNodeRuntime, locateDiagnosticColumn, nasmDiagnostics, observeCallbackResult, readResourceBytes, stageX86Project, toResourceUrl, validateX86Project, x86ProjectSourcePath, x86ProjectText };
|
|
951
|
+
export { AssemblerId, AssemblerMode, BaseEmulator, Binary, BlinkRunOptions, BlinkRuntime, BlinkRuntimeCallbacks, BlinkRuntimeOptions, BlinkState, BlinkenlibModule, BlinkenlibModuleOptions, CompilationError, DEFAULT_ASSEMBLER_ID, DiagnosticLine, DiagnosticSeverity, DiagnosticSpan, DiagnosticsParser, DisassemblySnapshot, EmscriptenFS, EmulatorConfig, EmulatorDecoration, EmulatorStatus, ExecutionStep, Instruction, LinkerBinary, MaybePromise, MemoryReadResult, MemoryWriteResult, MonacoError, MutationOperation, NativeControlFlowKind, NativeInstruction, NativeMemoryWrite, NativeRunControls, NativeRunStop, NativeRunStopKind, NativeStepInfo, NativeSymbol, RegisterHex, RegisterSize, RegisterSnapshot, ResourceSource, StackFrame, StatusRegister, StopReason, StopReasonKind, X86Breakpoint, X86CompilationDiagnostic, X86CompileResult, X86Emulator, X86EmulatorEventHandler, X86EmulatorEventMap, X86EmulatorEventName, X86EmulatorOptions, X86FpuState, X86Project, X86ProjectFile, X86RegisterName, X86SourceLocation, X86SseRegisterName, X86X87RegisterName, X86_FPU_STATE_CW_OFFSET, X86_FPU_STATE_DP_OFFSET, X86_FPU_STATE_IP_OFFSET, X86_FPU_STATE_MXCSR_OFFSET, X86_FPU_STATE_OP_OFFSET, X86_FPU_STATE_SIZE, X86_FPU_STATE_ST_OFFSET, X86_FPU_STATE_SW_OFFSET, X86_FPU_STATE_TW_OFFSET, X86_FPU_STATE_XMM_OFFSET, X86_PROJECT_ROOT, X86_REGISTER_NAMES, X86_SSE_REGISTERS, X86_X87_REGISTERS, assemblers, createX86Emulator, decodeFpuState, defaultResourceUrl, emptyFpuStateBlock, encodeFpuState, fasmDiagnostics, fpuStateBlocksEqual, gnuDiagnostics, isNodeRuntime, ldDiagnostics, locateDiagnosticColumn, locateDiagnosticSpan, nasmDiagnostics, observeCallbackResult, readLogicalStBits, readLogicalStTags, readResourceBytes, selectX86Source, stageX86Project, toResourceUrl, validateX86Project, x86ProjectSourcePath, x86ProjectText };
|
|
714
952
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/resources.ts","../src/interface.ts","../src/callbacks.ts","../src/types.ts","../src/wasm-assembler.ts","../src/assemblers.ts","../src/wasm-types.ts","../src/blink-runtime.ts","../src/project.ts","../src/x86-emulator.ts"],"mappings":";KAAY,cAAA,YAA0B,GAAA,GAAM,WAAA,GAAc,UAAA;AAAA,iBAE1C,aAAA,CAAA;AAAA,iBAQA,aAAA,CAAc,MAAA,WAAiB,GAAA,GAAM,GAAA;AAAA,iBAS/B,iBAAA,CAAkB,MAAA,EAAQ,cAAA,GAAiB,OAAA,CAAQ,UAAA;AAAA,iBAiCzD,kBAAA,CAAmB,YAAA,UAAsB,OAAA,WAAkB,GAAA;;;KCpD/D,cAAA;EACR,IAAA;EACA,KAAA;EACA,IAAA;AAAA;AAAA,KAEQ,kBAAA;AAAA,KAEA,WAAA;EDPwD,oECShE,IAAA;EACA,SAAA;EACA,MAAA;EACA,IAAA;IACI,IAAA;IACA,UAAA;EAAA;EAEJ,OAAA;EACA,SAAA,UDfyB;ECiBzB,QAAA,GAAW,kBAAA,EDTC;ECWZ,IAAA;EAEA,IAAA;AAAA;AAAA,KAGQ,UAAA;EACR,IAAA;EACA,OAAA;EACA,WAAA;EACA,EAAA;EACA,IAAA;EACA,IAAA;EACA,KAAA;AAAA;AAAA,KAGQ,WAAA,IAAe,EAAA,UAAY,EAAA;AAAA,aAE3B,YAAA;EACR,IAAA;EACA,IAAA;EACA,IAAA;EACA,MAAA;AAAA;AAAA,KAGQ,aAAA;EACR,SAAA,EAAW,iBAAA;EACX,EAAA;EACA,OAAA;IACI,IAAA;EAAA;EAEJ,OAAA;IACI,IAAA;EAAA;EAEJ,IAAA;EACA,IAAA;AAAA;AAAA,KAGQ,iBAAA;EAEF,IAAA;EACA,KAAA;IACI,QAAA;IACA,GAAA;IACA,IAAA,EAAM,YAAA;EAAA;AAAA;EAIV,IAAA;EACA,KAAA;IACI,OAAA;IACA,GAAA;IACA,IAAA,EAAM,YAAA;EAAA;AAAA;EAIV,IAAA;EACA,KAAA;IACI,OAAA;IACA,GAAA;EAAA;AAAA;EAIJ,IAAA;EACA,KAAA;IACI,EAAA;IACA,IAAA;EAAA;AAAA;EAIJ,IAAA;EACA,KAAA;IACI,EAAA;IACA,IAAA;EAAA;AAAA;EAIJ,IAAA;EACA,KAAA;AAAA;AAAA,KAIE,kBAAA;EACR,IAAA;EACA,IAAA;EACA,SAAA;EACA,EAAA;AAAA;AAAA,KAIQ,gBAAA;EACR,IAAA;EACA,OAAA;AAAA;AAAA,aAGQ,cAAA;EACR,UAAA;EACA,OAAA;EACA,eAAA;EACA,QAAA;AAAA;AAAA,KAGQ,WAAA;EACR,OAAA;EACA,UAAA;EACA,IAAA;EACA,IAAA;EACA,KAAA,GAAQ,UAAA;EACR,IAAA;AAAA;AAAA,KAGQ,cAAA;EACR,UAAA,EAAY,YAAA;EACZ,aAAA,EAAe,CAAA;EACf,UAAA;EACA,eAAA,GAAkB,CAAA;AAAA;AAAA,uBAGA,YAAA;EAGA,EAAA;AAAA;EAAe,EAAA;EAAW,MAAA,EAAQ,gBAAA;EAAoB,MAAA;AAAA;EAAA,UAG9D,cAAA,EAAgB,CAAA;EAAA,UAChB,WAAA,EAAa,YAAA;EAAA,UACb,WAAA;cAEE,OAAA,EAAS,cAAA,CAAe,CAAA;EAMpC,aAAA,CAAA,GAAiB,YAAA;EAIjB,aAAA,CAAA;EAMA,gBAAA,CAAA,GAAoB,CAAA;EAAA,SAIX,UAAA,CAAW,QAAA;EAAA,SAEX,eAAA,CAAA;IAAqB,WAAA,EAAa,kBAAA;IAAsB,IAAA;EAAA;EAAA,SAExD,OAAA,CAAA;EAAA,SAEA,cAAA,CAAe,KAAA;EAAA,SAEf,OAAA,CAAQ,IAAA,WAAe,OAAA,CAAQ,aAAA;EAAA,SAE/B,SAAA,CAAU,IAAA,WAAe,OAAA,CAAQ,WAAA;EAAA,SAEjC,IAAA,CAAA;EAAA,SAEA,OAAA,CAAA;EAAA,SAEA,IAAA,CAAA,GAAQ,OAAA;IAAU,UAAA;EAAA;EAAA,SAElB,SAAA,CAAA,GAAa,cAAA;EAAA,SAEb,gBAAA,CAAiB,OAAA,UAAiB,IAAA,EAAM,UAAA;EAAA,SAExC,eAAA,CAAgB,OAAA,UAAiB,MAAA,WAAiB,UAAA;EAAA,SAElD,kBAAA,CAAA,GAAsB,WAAA;EAAA,SAEtB,cAAA,CAAe,GAAA,WAAc,aAAA;EAAA,SAE7B,KAAA,CAAA;EAAA,SAEA,KAAA,CAAA;EAAA,SAEA,QAAA,CAAA;IAAa,IAAA;IAAc,KAAA;IAAe,IAAA;EAAA;EAAA,SAE1C,YAAA,CAAA,GAAgB,UAAA;EAAA,SAEhB,gBAAA,CAAiB,OAAA,WAAkB,WAAA;EAAA,SAEnC,iBAAA,CAAA;EAAA,SAEA,uBAAA,CAAA,GAA2B,MAAA,CAAO,CAAA;EAAA,SAElC,gBAAA,CAAiB,QAAA,EAAU,CAAA,EAAG,IAAA,GAAO,YAAA;EAAA,SAErC,gBAAA,CAAiB,QAAA,EAAU,CAAA,EAAG,KAAA,UAAe,IAAA,GAAO,YAAA;EAAA,SAEpD,aAAA,CAAA;EAAA,SAEA,GAAA,CACL,KAAA,WACA,WAAA,GAAc,KAAA;IAAiB,IAAA;IAAc,IAAA;EAAA,KAC9C,OAAA,CAAQ,cAAA;AAAA;;;KC3NH,YAAA,MAAkB,CAAA,GAAI,WAAA,CAAY,CAAA;AAAA,iBAE9B,qBAAA,CAAsB,MAAA,EAAQ,YAAA;;;cCCjC,kBAAA;AAAA,KAoBD,eAAA,WAA0B,kBAAA;AAAA,aAE1B,UAAA;EACR,QAAA;EACA,KAAA;EACA,UAAA;EACA,OAAA;EACA,aAAA;EACA,cAAA;EACA,aAAA;EACA,oBAAA;EACA,cAAA;AAAA;AAAA,KAGQ,cAAA;AAAA,KAEA,UAAA;EACR,QAAA;EACA,QAAA;EACA,OAAA;EACA,IAAA,GAAO,cAAA;EACP,OAAA;EACA,UAAA;EACA,IAAA;EACA,oBAAA;AAAA;AAAA,KAGQ,wBAAA;EACR,IAAA;EACA,KAAA,UHjCmC;EGmCnC,IAAA,WHnC4C;EGqC5C,QAAA,EAAU,kBAAA,EHrCmD;EGuC7D,YAAA;AAAA;AAAA,KAGQ,cAAA,YAA0B,UAAA;AAAA,KAE1B,UAAA;EACR,KAAA;EACA,KAAA,EAAO,QAAA,CAAS,MAAA,SAAe,cAAA;AAAA;AAAA,KAGvB,iBAAA;EACR,IAAA,UHjB8B;EGmB9B,IAAA;AAAA;AAAA,KAGQ,aAAA,YAAyB,iBAAA;;;;;;KAOzB,gBAAA;EACJ,EAAA;EAAU,MAAA;EAAgB,WAAA,EAAa,wBAAA;AAAA;EACvC,EAAA;EAAW,MAAA,EAAQ,wBAAA;EAA4B,MAAA;EAAgB,WAAA,EAAa,wBAAA;AAAA;AAAA,KAExE,mBAAA;EACR,WAAA;IAAe,KAAA,EAAO,UAAA;IAAY,QAAA,EAAU,UAAA;EAAA;EAC5C,MAAA;EACA,MAAA;EACA,MAAA;IAAU,MAAA;IAAgB,IAAA;EAAA;EAC1B,YAAA;IAAgB,QAAA;EAAA;AAAA;AAAA,KAGR,oBAAA,SAA6B,mBAAA;AAAA,KAE7B,uBAAA,WAAkC,oBAAA,KAC1C,KAAA,EAAO,mBAAA,CAAoB,CAAA,MAC1B,YAAA;;;AHjGL;;;;;;;;;AAAA,UIaiB,aAAA;EACb,QAAA,CAAS,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,kBAAA;AAAA;AAAA,KAG/B,kBAAA;EJfI,mEIiBZ,MAAA;EAEA,MAAA,UJnByB;EIqBzB,MAAA,UJbyB;EIezB,MAAA,EAAQ,UAAA;AAAA;;;UCrBK,MAAA;EACb,IAAA,EAAM,cAAA;EACN,QAAA;AAAA;AAAA,UAGa,cAAA;EACb,IAAA;EACA,IAAA;EACA,KAAA;ELZsD;EKctD,QAAA,EAAU,kBAAA;ELdsD;AAEpE;;;;EKkBI,YAAA;AAAA;AAAA,KAGQ,iBAAA,IAAqB,aAAA,aAA0B,cAAA;AAAA,UAE1C,aAAA;EACb,EAAA;EACA,WAAA;EACA,WAAA;EACA,iBAAA,GAAoB,iBAAA;EACpB,QAAA;ILpBoD;AASxD;;;;;IKkBQ,SAAA,GAAY,MAAA;IACZ,MAAA,GAAS,MAAA;EAAA;ELnB+B;EKsB5C,aAAA,GAAgB,aAAA;AAAA;AAAA,cAMP,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4CD,WAAA,gBAA2B,UAAA;AAAA,cAE1B,oBAAA,EAAsB,WAAA;AAAA,iBAEnB,eAAA,CAAgB,GAAA,WAAc,cAAA;AAAA,iBAuB9B,cAAA,CAAe,GAAA,WAAc,cAAA;AAAA,iBAkB7B,eAAA,CAAgB,GAAA,WAAc,cAAA;;;;;;;;;;iBAiC9B,sBAAA,CAAuB,OAAA,UAAiB,IAAA,UAAc,YAAA;;;KCvK1D,YAAA;EACR,IAAA,CAAK,KAAA,uBAA4B,MAAA,GAAS,QAAA,mBAA2B,MAAA,GAAS,QAAA;EAC9E,SAAA,CAAU,IAAA,UAAc,IAAA,WAAe,UAAA;EACvC,IAAA,CAAK,IAAA,UAAc,KAAA;EACnB,KAAA,CAAM,MAAA,WAAiB,IAAA,EAAM,UAAA,EAAY,MAAA,UAAgB,MAAA,UAAgB,QAAA;EACzE,KAAA,CAAM,MAAA;EACN,KAAA,CAAM,IAAA,UAAc,IAAA;EACpB,QAAA,CAAS,IAAA,UAAc,OAAA;IAAY,QAAA;EAAA,IAAiC,UAAA;EACpE,SAAA,CAAU,IAAA;EACV,MAAA,CAAO,IAAA;EACP,KAAA,CAAM,IAAA;AAAA;AAAA,KAGE,uBAAA;EACR,YAAA;EACA,MAAA,IAAU,MAAA,EAAQ,gBAAA;EAClB,eAAA,IACI,OAAA,EAAS,WAAA,CAAY,OAAA,EACrB,eAAA,GAAkB,QAAA,EAAU,WAAA,CAAY,QAAA,EAAU,MAAA,GAAS,WAAA,CAAY,MAAA;AAAA;AAAA,KAInE,gBAAA;EACR,SAAA,EAAW,MAAA,CAAO,eAAA;EAClB,GAAA;EACA,GAAA;EACA,EAAA;EACA,KAAA;AAAA;AAAA,KAGQ,gBAAA;EACJ,EAAA;EAAU,KAAA;AAAA;EACV,EAAA;EAAW,KAAA;EAAe,SAAA;AAAA;AAAA,KAEtB,iBAAA;EACJ,EAAA;EAAU,YAAA;AAAA;EACV,EAAA;EAAW,KAAA;EAAe,YAAA;AAAA;AAAA,KAEtB,iBAAA;AAAA,KAEA,aAAA;EACR,IAAA,EAAM,iBAAA;EACN,OAAA;EACA,oBAAA;AAAA;AAAA,KAGQ,iBAAA;EACR,WAAA;AAAA;AAAA,KAGQ,qBAAA;AAAA,KAEA,iBAAA;EACR,OAAA;EACA,IAAA;EACA,GAAA;EACA,SAAA;AAAA;AAAA,KAGQ,cAAA;EAEF,KAAA;EACA,YAAA,EAAc,iBAAA;AAAA;EAGd,KAAA;EACA,QAAA;EACA,OAAA;EACA,QAAA;EACA,OAAA;EACA,WAAA;EACA,UAAA;EACA,WAAA,EAAa,qBAAA;EACb,qBAAA;EACA,YAAA,EAAc,iBAAA;AAAA;AAAA,KAGZ,YAAA;EACR,OAAA;EACA,IAAA;AAAA;AAAA,KAGQ,iBAAA;EACR,OAAA;EACA,IAAA;EACA,IAAA;AAAA;AAAA,KAGQ,mBAAA;EACR,KAAA;EACA,WAAA;AAAA;AAAA,KAGQ,gBAAA;EACR,EAAA,EAAI,YAAA;EACJ,QAAA,CAAS,IAAA;EACT,WAAA,CAAY,EAAA,MAAQ,IAAA,oBAAwB,SAAA;EAC5C,oBAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;EACA,iBAAA;EACA,oBAAA;EACA,0BAAA;EACA,0BAAA;EACA,qBAAA,CAAsB,QAAA,EAAU,eAAA;EAChC,qBAAA,CAAsB,QAAA,EAAU,eAAA,EAAiB,KAAA;EACjD,kBAAA,CAAmB,KAAA;EACnB,0BAAA,CAA2B,OAAA;EAC3B,6BAAA,IAAiC,gBAAA;EACjC,yBAAA,CAA0B,OAAA,UAAiB,MAAA,WAAiB,gBAAA;EAC5D,0BAAA,CAA2B,OAAA,UAAiB,KAAA,EAAO,UAAA,cAAwB,iBAAA;EAC3E,wBAAA,IAA4B,mBAAA;EAC5B,0BAAA,CAA2B,QAAA,UAAkB,IAAA,UAAc,IAAA;EAC3D,0BAAA;EACA,wBAAA,CAAyB,KAAA,UAAe,mBAAA;EACxC,wBAAA,IAA4B,iBAAA;EAC5B,oBAAA,IAAwB,aAAA;EACxB,yBAAA,IAA6B,cAAA;EAC7B,0BAAA,CAA2B,OAAA,WAAkB,iBAAA;EAC7C,uBAAA,CAAwB,OAAA,WAAkB,YAAA;AAAA;;;KCjElC,qBAAA;EACR,KAAA;EACA,MAAA,IAAU,QAAA,aAAqB,YAAA;EAC/B,MAAA,IAAU,QAAA,aAAqB,YAAA;EAC/B,MAAA,IAAU,MAAA,UAAgB,IAAA,aAAiB,YAAA;EAC3C,WAAA,IAAe,KAAA,EAAO,UAAA,EAAY,QAAA,EAAU,UAAA,KAAe,YAAA;EAC3D,YAAA,IAAgB,KAAA;IAAS,QAAA;EAAA,MAAuB,YAAA;AAAA;AAAA,KAGxC,mBAAA;EACR,IAAA,GAAO,aAAA,GAAgB,WAAA;EACvB,SAAA,GAAY,qBAAA;EACZ,SAAA,IAAa,QAAA;AAAA;AAAA,KAGL,eAAA;EACR,KAAA;EACA,mBAAA;AAAA;AAAA,cAQS,YAAA;EAAA,SACA,MAAA,EAAQ,gBAAA;EAEjB,IAAA,EAAM,aAAA;EACN,KAAA,EAAK,UAAA;EACL,UAAA,EAAY,UAAA;EACZ,aAAA;EPrEmC;EOuEnC,eAAA,EAAiB,wBAAA;EPvE2B;EOyE5C,oBAAA,EAAsB,wBAAA;EAAA,iBAEL,SAAA;EAAA,iBACA,SAAA;EAAA,iBACA,YAAA;EAAA,iBACA,UAAA;EAAA,QACT,SAAA;EAAA,QACA,aAAA;EAAA,QACA,YAAA;EAAA,QACA,eAAA;EAAA,iBAES,WAAA;EAAA,iBACA,WAAA;EAAA,QAEV,WAAA,CAAA;EAAA,OAYM,MAAA,CAAO,OAAA,GAAS,mBAAA,GAA2B,OAAA,CAAQ,YAAA;EA8C1D,OAAA,CAAQ,IAAA,EAAM,aAAA,GAAgB,WAAA,GAAc,OAAA;EAc5C,eAAA,CAAgB,IAAA,WAAe,OAAA,CAAQ,gBAAA;EAIvC,cAAA,CAAe,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,gBAAA;EPlIoB;;;;;;ACpD3E;;EMkMU,YAAA,CAAa,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,gBAAA;EAAA,QAKnC,6BAAA;EAAA,QAWA,YAAA;ENhNd;;;;AAGJ;;;EAHI,QM0PQ,mBAAA;ENvPkB;AAE9B;;;;;;EAF8B,QMoQlB,qBAAA;EAAA,QA6BM,eAAA;ENzRV;;;;;EAAA,QMiTU,yBAAA;EAAA,QAiCN,2BAAA;EAAA,QAOA,mBAAA;EAAA,QAQA,yBAAA;EAUR,OAAA,CAAQ,IAAA,EAAM,WAAA,GAAc,UAAA;EAS5B,MAAA,CAAA;EAIA,YAAA,CAAA;EAKA,GAAA,CAAA;EAIA,IAAA,CAAA;EAQA,QAAA,CAAA;EAQM,eAAA,CAAgB,OAAA,GAAS,eAAA,GAAuB,OAAA,CAAQ,UAAA;EAe9D,YAAA,CAAa,IAAA;EAQb,eAAA,CAAgB,OAAA,UAAiB,MAAA,WAAiB,UAAA;EAQlD,gBAAA,CAAiB,OAAA,UAAiB,IAAA,EAAM,UAAA;EAKxC,mBAAA,CAAA;EAIA,yBAAA,CAAA;EAIA,mBAAA,CAAA,GAAuB,gBAAA;EAIvB,WAAA,CAAY,QAAA,QAAgB,gBAAA;EAI5B,WAAA,CAAY,QAAA,QAAgB,gBAAA,eAA+B,KAAA;EAM3D,QAAA,CAAS,KAAA;EAIT,gBAAA,CAAiB,OAAA;EAIjB,KAAA,CAAA;EAIA,KAAA,CAAA;EAIA,QAAA,CAAA;EAIA,gBAAA,CAAA;EAIA,gBAAA,CAAiB,OAAA,WAAkB,iBAAA;EAInC,eAAA,CAAA,GAAmB,cAAA;EAInB,aAAA,CAAc,OAAA,WAAkB,YAAA;EAIhC,uBAAA,CAAwB,OAAA;EAIxB,2BAAA,CAA4B,OAAA,WAAkB,iBAAA;EAW9C,yBAAA,CAA0B,SAAA;EAI1B,6BAAA,CAA8B,QAAA,EAAU,iBAAA;EAQxC,wBAAA,CAAA;EAIA,kBAAA,CAAmB,OAAA,UAAiB,QAAA,EAAU,iBAAA;EAa9C,aAAA,CAAc,OAAA,UAAiB,oBAAA;EAe/B,wBAAA,CAAA;EAAA,QAWQ,YAAA;EAAA,QAYM,eAAA;EAAA,QAIN,mBAAA;EAAA,QAOA,gBAAA;EAAA,QAIA,oBAAA;EAAA,QAQA,mBAAA;EAAA,QAMA,YAAA;EAAA,QAuDA,UAAA;EAAA,QAmBA,mBAAA;EAAA,QA4BA,gBAAA;EAAA,QASA,QAAA;EAAA,QAQA,YAAA;EAAA,QAOA,mBAAA;EAAA,QAUA,qBAAA;EAAA,QAUA,sBAAA;EAAA,QAIA,gBAAA;AAAA;;;cC9vBC,gBAAA;AAAA,iBAIG,kBAAA,CAAmB,OAAA,EAAS,UAAA;;;;;;iBAqB5B,eAAA,CAAgB,EAAA,EAAI,YAAA,EAAc,OAAA,EAAS,UAAA;;iBA8B3C,oBAAA,CACZ,UAAA,sBACA,OAAA,EAAS,IAAA,CAAK,UAAA;AAAA,iBA4DF,cAAA,CAAe,OAAA,EAAS,UAAA,EAAY,IAAA;;;KCxExC,kBAAA,GAAqB,IAAA,CAAK,mBAAA;EAClC,IAAA,GAAO,aAAA,GAAgB,WAAA;EACvB,SAAA,GAAY,qBAAA;AAAA;AAAA,cAGH,WAAA,SAAoB,YAAA,CAAa,YAAA,EAAc,eAAA,EAAiB,gBAAA;EAAA,SAChE,OAAA,EAAS,YAAA;EAAA,iBAED,aAAA;EAAA,QAUT,iBAAA;EAAA,QACA,cAAA;EAAA,QACA,OAAA;EAAA,QACA,SAAA;EAAA,QAED,WAAA,CAAA;EAAA,OASM,MAAA,CAAO,OAAA,GAAS,kBAAA,GAA0B,OAAA,CAAQ,WAAA;EAAA,IAqC3D,MAAA,CAAA,GAAU,gBAAA;EAAA,IAIV,KAAA,CAAA,GAAS,UAAA;EAAA,IAIT,UAAA,CAAA,GAAc,UAAA;EAIlB,EAAA,WAAa,oBAAA,CAAA,CACT,SAAA,EAAW,CAAA,EACX,OAAA,EAAS,uBAAA,CAAwB,CAAA;EAM/B,OAAA,CAAQ,IAAA,EAAM,aAAA,GAAgB,WAAA,GAAc,OAAA;EAK5C,OAAA,CAAQ,IAAA,WAAe,OAAA,CAAQ,gBAAA;EAI/B,cAAA,CAAe,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,gBAAA;EAOnD,OAAA,CAAQ,IAAA,EAAM,WAAA,GAAc,UAAA;EAKtB,eAAA,CAAA,GAAmB,OAAA,CAAQ,cAAA;EAMjC,YAAA,CAAa,IAAA;EAIb,UAAA,CAAW,QAAA;EAOX,eAAA,CAAA;IAAqB,WAAA,EAAa,kBAAA;IAAsB,IAAA;EAAA;EAIxD,OAAA,CAAA;EAUA,cAAA,CAAe,KAAA;EAKT,SAAA,CAAU,IAAA,WAAe,OAAA,CAAQ,WAAA;ET/KK;;;;;ESwLtC,YAAA,CAAa,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,WAAA;EAyBjD,IAAA,CAAA;EAoBA,OAAA,CAAA;EAKM,IAAA,CAAA,GAAQ,OAAA;IAAU,UAAA;EAAA;EAUxB,SAAA,CAAA,GAAa,cAAA;EAOb,gBAAA,CAAiB,OAAA,UAAiB,IAAA,EAAM,UAAA;EAIxC,eAAA,CAAgB,OAAA,UAAiB,MAAA,WAAiB,UAAA;EAIlD,kBAAA,CAAA,GAAsB,WAAA;EAKtB,cAAA,CAAe,GAAA,WAAc,aAAA;EAM7B,KAAA,CAAA;EAIA,KAAA,CAAA;EAIA,QAAA,CAAA;IAAc,IAAA;IAAc,KAAA;IAAe,IAAA;EAAA;EAW3C,YAAA,CAAA,GAAgB,UAAA;EAIhB,gBAAA,CAAiB,OAAA,WAAkB,WAAA;ERrT/B;EQoUJ,uBAAA,CAAA,GAA2B,WAAA;EAW3B,iBAAA,CAAA;EAIA,uBAAA,CAAA,GAA2B,MAAA,CAAO,eAAA;EAMlC,gBAAA,CAAiB,QAAA,EAAU,eAAA,EAAiB,IAAA,GAAM,YAAA;EAIlD,gBAAA,CAAiB,QAAA,EAAU,eAAA,EAAiB,KAAA,UAAe,IAAA,GAAM,YAAA;EAOjE,aAAA,CAAA;EAIM,GAAA,CAAI,KAAA,WAAgB,WAAA,GAAa,aAAA,KAAuB,OAAA,CAAQ,cAAA;EAAA,QAS9D,gBAAA;EAAA,QAOA,0BAAA;EAAA,QAkBM,kBAAA;EAAA,QA6BA,cAAA;EAAA,QA6BN,gBAAA;EAAA,QAIA,mBAAA;EAAA,QAKA,wBAAA;EAAA,QAUA,WAAA;EAAA,QAaA,UAAA;EAAA,QAoDA,qBAAA;EAAA,QAyBA,yBAAA;EAAA,QA8BA,IAAA;AAAA;AAAA,iBAKU,iBAAA,CAAkB,OAAA,GAAS,kBAAA,GAA0B,OAAA,CAAQ,WAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/resources.ts","../src/interface.ts","../src/callbacks.ts","../src/types.ts","../src/wasm-assembler.ts","../src/assemblers.ts","../src/wasm-types.ts","../src/blink-runtime.ts","../src/fpu-state.ts","../src/project.ts","../src/x86-emulator.ts"],"mappings":";KAAY,cAAA,YAA0B,GAAA,GAAM,WAAA,GAAc,UAAA;AAAA,iBAE1C,aAAA,CAAA;AAAA,iBAQA,aAAA,CAAc,MAAA,WAAiB,GAAA,GAAM,GAAA;AAAA,iBAS/B,iBAAA,CAAkB,MAAA,EAAQ,cAAA,GAAiB,OAAA,CAAQ,UAAA;AAAA,iBAiCzD,kBAAA,CAAmB,YAAA,UAAsB,OAAA,WAAkB,GAAA;;;KCpD/D,cAAA;EACR,IAAA;EACA,KAAA;EACA,IAAA;AAAA;AAAA,KAEQ,kBAAA;AAAA,KAEA,WAAA;EDPwD,oECShE,IAAA;EACA,SAAA;EACA,MAAA;EDXsD;;;AAE1D;;ECeI,SAAA;EACA,IAAA;IACI,IAAA;IACA,UAAA;EAAA;EAEJ,OAAA;EACA,SAAA,UDb2C;ECe3C,QAAA,GAAW,kBAAA,EDfsC;ECiBjD,IAAA,WDjBoD;ECmBpD,IAAA;AAAA;AAAA,KAGQ,UAAA;EACR,IAAA;EACA,OAAA;EACA,WAAA;EACA,EAAA;EACA,IAAA;EACA,IAAA;EACA,KAAA;AAAA;AAAA,KAGQ,WAAA,IAAe,EAAA,UAAY,EAAA;AAAA,aAE3B,YAAA;EACR,IAAA;EACA,IAAA;EACA,IAAA;EACA,MAAA;EDI0E;ECF1E,IAAA;AAAA;AAAA,KAGQ,aAAA;EACR,SAAA,EAAW,iBAAA;EACX,EAAA;EACA,OAAA;IACI,IAAA;EAAA;EAEJ,OAAA;IACI,IAAA;EAAA;EAEJ,IAAA;EACA,IAAA;AAAA;AAAA,KAGQ,iBAAA;EAEF,IAAA;EACA,KAAA;IACI,QAAA;IACA,GAAA;IACA,IAAA,EAAM,YAAA;EAAA;AAAA;EAIV,IAAA;EACA,KAAA;IACI,OAAA;IACA,GAAA;IACA,IAAA,EAAM,YAAA;EAAA;AAAA;EAIV,IAAA;EACA,KAAA;IACI,OAAA;IACA,GAAA;EAAA;AAAA;EAIJ,IAAA;EACA,KAAA;IACI,EAAA;IACA,IAAA;EAAA;AAAA;EAIJ,IAAA;EACA,KAAA;IACI,EAAA;IACA,IAAA;EAAA;AAAA;EAIJ,IAAA;EACA,KAAA;AAAA;AAAA,KAIE,kBAAA;EACR,IAAA;EACA,IAAA;EACA,SAAA;EACA,EAAA;AAAA;AAAA,KAIQ,gBAAA;EACR,IAAA;EACA,OAAA;AAAA;AAAA,aAGQ,cAAA;EACR,UAAA;EACA,OAAA;EACA,eAAA;EACA,QAAA;AAAA;AAAA,KAGQ,WAAA;EACR,OAAA;EACA,UAAA;EACA,IAAA;EACA,IAAA;EACA,KAAA,GAAQ,UAAA;EACR,IAAA;AAAA;AAAA,KAGQ,cAAA;EACR,UAAA,EAAY,YAAA;EACZ,aAAA,EAAe,CAAA;EACf,UAAA;EACA,eAAA,GAAkB,CAAA;AAAA;AAAA,uBAGA,YAAA;EAGA,EAAA;AAAA;EAAe,EAAA;EAAW,MAAA,EAAQ,gBAAA;EAAoB,MAAA;AAAA;EAAA,UAG9D,cAAA,EAAgB,CAAA;EAAA,UAChB,WAAA,EAAa,YAAA;EAAA,UACb,WAAA;cAEE,OAAA,EAAS,cAAA,CAAe,CAAA;EAMpC,aAAA,CAAA,GAAiB,YAAA;EAIjB,aAAA,CAAA;EAMA,gBAAA,CAAA,GAAoB,CAAA;EAAA,SAIX,UAAA,CAAW,QAAA;EAAA,SAEX,eAAA,CAAA;IAAqB,WAAA,EAAa,kBAAA;IAAsB,IAAA;EAAA;EAAA,SAExD,OAAA,CAAA;EAAA,SAEA,cAAA,CAAe,KAAA;EAAA,SAEf,OAAA,CAAQ,IAAA,WAAe,OAAA,CAAQ,aAAA;EAAA,SAE/B,SAAA,CAAU,IAAA,WAAe,OAAA,CAAQ,WAAA;EAAA,SAEjC,IAAA,CAAA;EAAA,SAEA,OAAA,CAAA;EAAA,SAEA,IAAA,CAAA,GAAQ,OAAA;IAAU,UAAA;EAAA;EAAA,SAElB,SAAA,CAAA,GAAa,cAAA;EAAA,SAEb,gBAAA,CAAiB,OAAA,UAAiB,IAAA,EAAM,UAAA;EAAA,SAExC,eAAA,CAAgB,OAAA,UAAiB,MAAA,WAAiB,UAAA;EAAA,SAElD,kBAAA,CAAA,GAAsB,WAAA;EAAA,SAEtB,cAAA,CAAe,GAAA,WAAc,aAAA;EAAA,SAE7B,KAAA,CAAA;EAAA,SAEA,KAAA,CAAA;EAAA,SAEA,QAAA,CAAA;IAAa,IAAA;IAAc,KAAA;IAAe,IAAA;EAAA;EAAA,SAE1C,YAAA,CAAA,GAAgB,UAAA;EAAA,SAEhB,gBAAA,CAAiB,OAAA,WAAkB,WAAA;EAAA,SAEnC,iBAAA,CAAA;EAAA,SAEA,uBAAA,CAAA,GAA2B,MAAA,CAAO,CAAA;EAAA,SAElC,gBAAA,CAAiB,QAAA,EAAU,CAAA,EAAG,IAAA,GAAO,YAAA;EAAA,SAErC,gBAAA,CAAiB,QAAA,EAAU,CAAA,EAAG,KAAA,UAAe,IAAA,GAAO,YAAA;EAAA,SAEpD,aAAA,CAAA;EAAA,SAEA,GAAA,CACL,KAAA,WACA,WAAA,GAAc,KAAA;IAAiB,IAAA;IAAc,IAAA;EAAA,KAC9C,OAAA,CAAQ,cAAA;AAAA;;;KCnOH,YAAA,MAAkB,CAAA,GAAI,WAAA,CAAY,CAAA;AAAA,iBAE9B,qBAAA,CAAsB,MAAA,EAAQ,YAAA;;;cCCjC,kBAAA;AAAA,KAoBD,eAAA,WAA0B,kBAAA;AAAA,aAE1B,UAAA;EACR,QAAA;EACA,KAAA;EACA,UAAA;EACA,OAAA;EACA,aAAA;EACA,cAAA;EACA,aAAA;EACA,oBAAA;EACA,cAAA;AAAA;AAAA,KAGQ,cAAA;AAAA,KAEA,UAAA;EACR,QAAA;EACA,QAAA;EACA,OAAA;EACA,IAAA,GAAO,cAAA;EACP,OAAA;EACA,UAAA;EACA,IAAA;EACA,oBAAA;AAAA;AAAA,KAGQ,wBAAA;EACR,IAAA;EACA,KAAA,UHjCmC;EGmCnC,IAAA,WHnC4C;EGqC5C,QAAA,EAAU,kBAAA,EHrCmD;EGuC7D,YAAA;AAAA;AAAA,KAGQ,cAAA,YAA0B,UAAA;AAAA,KAE1B,UAAA;EACR,KAAA;EACA,KAAA,EAAO,QAAA,CAAS,MAAA,SAAe,cAAA;AAAA;AAAA,KAGvB,iBAAA;EACR,IAAA,UHjB8B;EGmB9B,IAAA;AAAA;AAAA,KAGQ,aAAA,YAAyB,iBAAA;;;;;;KAOzB,gBAAA;EACJ,EAAA;EAAU,MAAA;EAAgB,WAAA,EAAa,wBAAA;AAAA;EACvC,EAAA;EAAW,MAAA,EAAQ,wBAAA;EAA4B,MAAA;EAAgB,WAAA,EAAa,wBAAA;AAAA;AAAA,KAExE,mBAAA;EACR,WAAA;IAAe,KAAA,EAAO,UAAA;IAAY,QAAA,EAAU,UAAA;EAAA;EAC5C,MAAA;EACA,MAAA;EACA,MAAA;IAAU,MAAA;IAAgB,IAAA;EAAA;EAC1B,YAAA;IAAgB,QAAA;EAAA;AAAA;AAAA,KAGR,oBAAA,SAA6B,mBAAA;AAAA,KAE7B,uBAAA,WAAkC,oBAAA,KAC1C,KAAA,EAAO,mBAAA,CAAoB,CAAA,MAC1B,YAAA;;;AHjGL;;;;;;;;;AAAA,UIeiB,aAAA;EACb,QAAA,CAAS,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,kBAAA;AAAA;;KAI/B,gBAAA;EACR,IAAA;EACA,MAAA,EAAQ,UAAA;AAAA;AAAA,KAGA,kBAAA;EJfI,4EIiBZ,MAAA;EAEA,MAAA,UJnB2C;EIqB3C,MAAA;EJrBiD;;;AASrD;;EIkBI,KAAA,EAAO,gBAAA,IJlBqC;EIoB5C,MAAA,EAAQ,UAAA;AAAA;;;UCnCK,MAAA;EACb,IAAA,EAAM,cAAA;EACN,QAAA;AAAA;AAAA,UAGa,YAAA;EACb,IAAA,EAAM,cAAA;ELV4B;;;;EKelC,IAAA,CAAK,OAAA;AAAA;AAAA,UAGQ,cAAA;EACb,IAAA;EACA,IAAA;EACA,KAAA;ELXY;EKaZ,QAAA,EAAU,kBAAA;;;;;;EAMV,YAAA;AAAA;AAAA,KAGQ,iBAAA,IAAqB,aAAA,aAA0B,cAAA;AAAA,UAE1C,aAAA;EACb,EAAA;EACA,WAAA;EACA,WAAA;EACA,iBAAA,GAAoB,iBAAA;EACpB,QAAA;ILpBoE;;;;;;IK2BhE,SAAA,GAAY,MAAA;IACZ,MAAA,GAAS,YAAA;EAAA;;EAGb,aAAA,GAAgB,aAAA;AAAA;AAAA,cAQP,UAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4CD,WAAA,gBAA2B,UAAA;AAAA,cAE1B,oBAAA,EAAsB,WAAA;AAAA,iBAEnB,eAAA,CAAgB,GAAA,WAAc,cAAA;AAAA,iBAuB9B,cAAA,CAAe,GAAA,WAAc,cAAA;AAAA,iBAkB7B,eAAA,CAAgB,GAAA,WAAc,cAAA;;;;;;AJzG9C;;;;;iBI2IgB,aAAA,CAAc,GAAA,WAAc,cAAA;;KA+BhC,cAAA;EACR,MAAA;EJxKA;;;;EI6KA,SAAA;AAAA;;AJrKJ;;;;;;;;;iBIkLgB,oBAAA,CAAqB,OAAA,UAAiB,IAAA,UAAc,YAAA,YAAwB,cAAA;;iBAiB5E,sBAAA,CAAuB,OAAA,UAAiB,IAAA,UAAc,YAAA;;;KCtP1D,YAAA;EACR,IAAA,CAAK,KAAA,uBAA4B,MAAA,GAAS,QAAA,mBAA2B,MAAA,GAAS,QAAA;EAC9E,SAAA,CAAU,IAAA,UAAc,IAAA,WAAe,UAAA;EACvC,IAAA,CAAK,IAAA,UAAc,KAAA;EACnB,KAAA,CAAM,MAAA,WAAiB,IAAA,EAAM,UAAA,EAAY,MAAA,UAAgB,MAAA,UAAgB,QAAA;EACzE,KAAA,CAAM,MAAA;EACN,KAAA,CAAM,IAAA,UAAc,IAAA;EACpB,QAAA,CAAS,IAAA,UAAc,OAAA;IAAY,QAAA;EAAA,IAAiC,UAAA;EACpE,SAAA,CAAU,IAAA;EACV,MAAA,CAAO,IAAA;EACP,KAAA,CAAM,IAAA;AAAA;AAAA,KAGE,uBAAA;EACR,YAAA;EACA,MAAA,IAAU,MAAA,EAAQ,gBAAA;EAClB,eAAA,IACI,OAAA,EAAS,WAAA,CAAY,OAAA,EACrB,eAAA,GAAkB,QAAA,EAAU,WAAA,CAAY,QAAA,EAAU,MAAA,GAAS,WAAA,CAAY,MAAA;AAAA;AAAA,KAInE,gBAAA;EACR,SAAA,EAAW,MAAA,CAAO,eAAA;EAClB,GAAA;EACA,GAAA;EACA,EAAA;EACA,KAAA;AAAA;AAAA,KAGQ,gBAAA;EACJ,EAAA;EAAU,KAAA;AAAA;EACV,EAAA;EAAW,KAAA;EAAe,SAAA;AAAA;AAAA,KAEtB,iBAAA;EACJ,EAAA;EAAU,YAAA;AAAA;EACV,EAAA;EAAW,KAAA;EAAe,YAAA;AAAA;AAAA,KAEtB,iBAAA;AAAA,KAEA,aAAA;EACR,IAAA,EAAM,iBAAA;EACN,OAAA;EACA,oBAAA;AAAA;AAAA,KAGQ,iBAAA;EACR,WAAA;AAAA;AAAA,KAGQ,qBAAA;AAAA,KAEA,iBAAA;EACR,OAAA;EACA,IAAA;EACA,GAAA;EACA,SAAA;AAAA;AAAA,KAGQ,cAAA;EAEF,KAAA;EACA,YAAA,EAAc,iBAAA;AAAA;EAGd,KAAA;EACA,QAAA;EACA,OAAA;EACA,QAAA;EACA,OAAA;EACA,WAAA;EACA,UAAA;EACA,WAAA,EAAa,qBAAA;EACb,qBAAA;EACA,YAAA,EAAc,iBAAA;AAAA;AAAA,KAGZ,YAAA;EACR,OAAA;EACA,IAAA;AAAA;AAAA,KAGQ,iBAAA;EACR,OAAA;EACA,IAAA;EACA,IAAA;AAAA;AAAA,KAGQ,mBAAA;EACR,KAAA;EACA,WAAA;AAAA;AAAA,KAGQ,gBAAA;EACR,EAAA,EAAI,YAAA;EACJ,QAAA,CAAS,IAAA;EACT,WAAA,CAAY,EAAA,MAAQ,IAAA,oBAAwB,SAAA;EAC5C,oBAAA;EACA,eAAA;EACA,iBAAA;EACA,kBAAA;EACA,iBAAA;EACA,oBAAA;EACA,0BAAA;EACA,0BAAA;EACA,qBAAA,CAAsB,QAAA,EAAU,eAAA;EAChC,qBAAA,CAAsB,QAAA,EAAU,eAAA,EAAiB,KAAA;EACjD,kBAAA,CAAmB,KAAA;EACnB,0BAAA,CAA2B,OAAA;EAC3B,6BAAA,IAAiC,gBAAA,ELrEI;EKuErC,qBAAA,IAAyB,UAAA,ELrEL;EKuEpB,qBAAA,CAAsB,KAAA,EAAO,UAAA;EAC7B,yBAAA,CAA0B,OAAA,UAAiB,MAAA,WAAiB,gBAAA;EAC5D,0BAAA,CAA2B,OAAA,UAAiB,KAAA,EAAO,UAAA,cAAwB,iBAAA;EAC3E,wBAAA,IAA4B,mBAAA;EAC5B,0BAAA,CAA2B,QAAA,UAAkB,IAAA,UAAc,IAAA;EAC3D,0BAAA;EACA,wBAAA,CAAyB,KAAA,UAAe,mBAAA;EACxC,wBAAA,IAA4B,iBAAA;EAC5B,oBAAA,IAAwB,aAAA;EACxB,yBAAA,IAA6B,cAAA;EAC7B,0BAAA,CAA2B,OAAA,WAAkB,iBAAA;EAC7C,uBAAA,CAAwB,OAAA,WAAkB,YAAA;AAAA;;;KC9DlC,qBAAA;EACR,KAAA;EACA,MAAA,IAAU,QAAA,aAAqB,YAAA;EAC/B,MAAA,IAAU,QAAA,aAAqB,YAAA;EAC/B,MAAA,IAAU,MAAA,UAAgB,IAAA,aAAiB,YAAA;EAC3C,WAAA,IAAe,KAAA,EAAO,UAAA,EAAY,QAAA,EAAU,UAAA,KAAe,YAAA;EAC3D,YAAA,IAAgB,KAAA;IAAS,QAAA;EAAA,MAAuB,YAAA;AAAA;AAAA,KAGxC,mBAAA;EACR,IAAA,GAAO,aAAA,GAAgB,WAAA;EACvB,SAAA,GAAY,qBAAA;EACZ,SAAA,IAAa,QAAA;AAAA;AAAA,KAGL,eAAA;EACR,KAAA;EACA,mBAAA;AAAA;AAAA,cAQS,YAAA;EAAA,SACA,MAAA,EAAQ,gBAAA;EAEjB,IAAA,EAAM,aAAA;EACN,KAAA,EAAK,UAAA;EACL,UAAA,EAAY,UAAA;EACZ,aAAA;EP5EmC;EO8EnC,eAAA,EAAiB,wBAAA;EP9E2B;EOgF5C,oBAAA,EAAsB,wBAAA;EAAA,iBAEL,SAAA;EAAA,iBACA,SAAA;EAAA,iBACA,YAAA;EAAA,iBACA,UAAA;EAAA,QACT,SAAA;EAAA,QACA,aAAA;EAAA,QACA,YAAA;EAAA,QACA,gBAAA;EPzFuE;EAAA,QO2FvE,UAAA;EAAA,iBAES,WAAA;EAAA,iBACA,WAAA;EAAA,QAEV,WAAA,CAAA;EAAA,OAYM,MAAA,CAAO,OAAA,GAAS,mBAAA,GAA2B,OAAA,CAAQ,YAAA;EA8C1D,OAAA,CAAQ,IAAA,EAAM,aAAA,GAAgB,WAAA,GAAc,OAAA;EAc5C,eAAA,CAAgB,IAAA,WAAe,OAAA,CAAQ,gBAAA;EAIvC,cAAA,CAAe,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,gBAAA;EP3IuB;;;;ACpD9E;;;;EM2MU,YAAA,CAAa,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,gBAAA;EAAA,QAKnC,6BAAA;EAAA,QAcA,YAAA;EN3NV;;AAER;;;;;EAFQ,QMuQI,oBAAA;ENnQW;;;;;;;EAAA,QMgRX,eAAA;ENpQJ;;;;;;;EAAA,QMgSI,qBAAA;EAAA,QA+BM,eAAA;ENrTV;AAGR;;;;EAHQ,QM6UU,yBAAA;ENxUd;;;;;EAAA,QMmXQ,YAAA;EAAA,QAKA,2BAAA;EAAA,QAOA,mBAAA;EAAA,QAQA,yBAAA;EAUR,OAAA,CAAQ,IAAA,EAAM,WAAA,GAAc,UAAA;EAS5B,MAAA,CAAA;EAIA,YAAA,CAAA;EAKA,GAAA,CAAA;EAIA,IAAA,CAAA;EAQA,QAAA,CAAA;EAQM,eAAA,CAAgB,OAAA,GAAS,eAAA,GAAuB,OAAA,CAAQ,UAAA;EAe9D,YAAA,CAAa,IAAA;EAQb,eAAA,CAAgB,OAAA,UAAiB,MAAA,WAAiB,UAAA;EAQlD,gBAAA,CAAiB,OAAA,UAAiB,IAAA,EAAM,UAAA;EAKxC,mBAAA,CAAA;EAIA,yBAAA,CAAA;EAIA,mBAAA,CAAA,GAAuB,gBAAA;EAIvB,WAAA,CAAY,QAAA,QAAgB,gBAAA;EAI5B,WAAA,CAAY,QAAA,QAAgB,gBAAA,eAA+B,KAAA;ENxdnD;;;;;;;;;;;;EM0eR,cAAA,CAAA,GAAkB,UAAA;ENhed;;AAGR;;;;EM8eI,cAAA,CAAe,KAAA,EAAO,UAAA;EAYtB,QAAA,CAAS,KAAA;EAIT,gBAAA,CAAiB,OAAA;EAIjB,KAAA,CAAA;EAIA,KAAA,CAAA;EAIA,QAAA,CAAA;EAIA,gBAAA,CAAA;EAIA,gBAAA,CAAiB,OAAA,WAAkB,iBAAA;EAInC,eAAA,CAAA,GAAmB,cAAA;EAInB,aAAA,CAAc,OAAA,WAAkB,YAAA;EAIhC,uBAAA,CAAwB,OAAA;EAIxB,2BAAA,CAA4B,OAAA,WAAkB,iBAAA;EAW9C,yBAAA,CAA0B,SAAA;EAI1B,6BAAA,CAA8B,QAAA,EAAU,iBAAA;EAQxC,wBAAA,CAAA;EAIA,kBAAA,CAAmB,OAAA,UAAiB,QAAA,EAAU,iBAAA;EAa9C,aAAA,CAAc,OAAA,UAAiB,oBAAA;EAe/B,wBAAA,CAAA;EAAA,QAWQ,YAAA;EAAA,QAYM,eAAA;EAAA,QAIN,mBAAA;EAAA,QAOA,gBAAA;EAAA,QAIA,oBAAA;EAAA,QAQA,mBAAA;EAAA,QAOA,YAAA;EAAA,QAuDA,UAAA;EAAA,QAmBA,mBAAA;EAAA,QA4BA,gBAAA;EAAA,QASA,QAAA;EAAA,QAQA,YAAA;EAAA,QAOA,mBAAA;EAAA,QAUA,qBAAA;EAAA,QAUA,sBAAA;EAAA,QAIA,gBAAA;AAAA;;;;APt2BZ;;;;;;;;;;;cQaa,wBAAA;;cAEA,0BAAA;;cAEA,uBAAA;;cAEA,uBAAA;ARTb;AAAA,cQWa,uBAAA;;cAEA,uBAAA;;cAEA,uBAAA;;cAEA,uBAAA;;cAEA,uBAAA;;cAEA,kBAAA;;;;;cAMA,iBAAA;;;;;cAwBA,iBAAA;AAAA,KAcD,kBAAA,WAA6B,iBAAA;AAAA,KAC7B,kBAAA,WAA6B,iBAAA;AAAA,KAE7B,WAAA;;;;;EAKR,GAAA,YR/B0E;EQiC1E,KAAA;;;;APrFJ;;;EO4FI,EAAA,YP3FA;EO6FA,KAAA,UP3FA;EO6FA,KAAA;EP7FI;AAER;;;;;AAEA;;EOkGI,IAAA;AAAA;;;;;;iBA4BY,cAAA,CAAe,GAAA,EAAK,UAAA,GAAa,WAAA;;;;;;;;;iBAsCjC,cAAA,CAAe,KAAA,EAAO,WAAA,EAAa,IAAA,EAAM,UAAA,GAAa,UAAA;AP3ItE;;;;;AAAA,iBOgLgB,iBAAA,CAAkB,GAAA,EAAK,UAAA;;;;;;;iBAiBvB,iBAAA,CAAkB,GAAA,EAAK,UAAA;APvLvC;AAAA,iBOoMgB,mBAAA,CAAoB,CAAA,EAAG,UAAA,EAAY,CAAA,EAAG,UAAA;;;;APlMtD;;;;iBOiNgB,kBAAA,CAAA,GAAsB,UAAA;;;cC1PzB,gBAAA;AAAA,iBAIG,kBAAA,CAAmB,OAAA,EAAS,UAAA;;;;;;iBAqB5B,eAAA,CAAgB,EAAA,EAAI,YAAA,EAAc,OAAA,EAAS,UAAA;;;;;AT1B3D;;iBS6DgB,eAAA,CAAgB,EAAA,EAAI,YAAA,EAAc,OAAA,EAAS,UAAA,EAAY,IAAA;;iBAMvD,oBAAA,CACZ,UAAA,sBACA,OAAA,EAAS,IAAA,CAAK,UAAA;AAAA,iBA4DF,cAAA,CAAe,OAAA,EAAS,UAAA,EAAY,IAAA;;;KC1ExC,kBAAA,GAAqB,IAAA,CAAK,mBAAA;EAClC,IAAA,GAAO,aAAA,GAAgB,WAAA;EACvB,SAAA,GAAY,qBAAA;AAAA;AAAA,cAGH,WAAA,SAAoB,YAAA,CAAa,YAAA,EAAc,eAAA,EAAiB,gBAAA;EAAA,SAChE,OAAA,EAAS,YAAA;EAAA,iBAED,aAAA;EAAA,QAUT,iBAAA;EAAA,QACA,cAAA;EAAA,QACA,OAAA;EAAA,QACA,SAAA;EAAA,QAED,WAAA,CAAA;EAAA,OASM,MAAA,CAAO,OAAA,GAAS,kBAAA,GAA0B,OAAA,CAAQ,WAAA;EAAA,IAqC3D,MAAA,CAAA,GAAU,gBAAA;EAAA,IAIV,KAAA,CAAA,GAAS,UAAA;EAAA,IAIT,UAAA,CAAA,GAAc,UAAA;EAIlB,EAAA,WAAa,oBAAA,CAAA,CACT,SAAA,EAAW,CAAA,EACX,OAAA,EAAS,uBAAA,CAAwB,CAAA;EAM/B,OAAA,CAAQ,IAAA,EAAM,aAAA,GAAgB,WAAA,GAAc,OAAA;EAK5C,OAAA,CAAQ,IAAA,WAAe,OAAA,CAAQ,gBAAA;EAI/B,cAAA,CAAe,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,gBAAA;EAOnD,OAAA,CAAQ,IAAA,EAAM,WAAA,GAAc,UAAA;EAKtB,eAAA,CAAA,GAAmB,OAAA,CAAQ,cAAA;EAMjC,YAAA,CAAa,IAAA;EAIb,UAAA,CAAW,QAAA;EAOX,eAAA,CAAA;IAAqB,WAAA,EAAa,kBAAA;IAAsB,IAAA;EAAA;EAIxD,OAAA,CAAA;EAUA,cAAA,CAAe,KAAA;EAKT,SAAA,CAAU,IAAA,WAAe,OAAA,CAAQ,WAAA;EVxLH;;;;;EUiM9B,YAAA,CAAa,OAAA,EAAS,UAAA,GAAa,OAAA,CAAQ,WAAA;EA2BjD,IAAA,CAAA;EAqBA,OAAA,CAAA;EAKM,IAAA,CAAA,GAAQ,OAAA;IAAU,UAAA;EAAA;EAUxB,SAAA,CAAA,GAAa,cAAA;EAOb,gBAAA,CAAiB,OAAA,UAAiB,IAAA,EAAM,UAAA;EAIxC,eAAA,CAAgB,OAAA,UAAiB,MAAA,WAAiB,UAAA;EAIlD,kBAAA,CAAA,GAAsB,WAAA;EAKtB,cAAA,CAAe,GAAA,WAAc,aAAA;EAM7B,KAAA,CAAA;EAIA,KAAA,CAAA;EAIA,QAAA,CAAA;IAAc,IAAA;IAAc,KAAA;IAAe,IAAA;EAAA;EAW3C,YAAA,CAAA,GAAgB,UAAA;EAIhB,gBAAA,CAAiB,OAAA,WAAkB,WAAA;ETjU/B;ESgVJ,uBAAA,CAAA,GAA2B,WAAA;EAW3B,iBAAA,CAAA;EAIA,uBAAA,CAAA,GAA2B,MAAA,CAAO,eAAA;EAMlC,gBAAA,CAAiB,QAAA,EAAU,eAAA,EAAiB,IAAA,GAAM,YAAA;EAIlD,gBAAA,CAAiB,QAAA,EAAU,eAAA,EAAiB,KAAA,UAAe,IAAA,GAAM,YAAA;ETrWzD;;;;;;ESkXR,WAAA,CAAA,GAAe,WAAA;ETxWf;;;;;;;;;;;;AAeJ;;ES2WI,WAAA,CAAY,KAAA,EAAO,WAAA;EAInB,aAAA,CAAA;EAIM,GAAA,CAAI,KAAA,WAAgB,WAAA,GAAa,aAAA,KAAuB,OAAA,CAAQ,cAAA;EAAA,QAS9D,gBAAA;EAAA,QAOA,0BAAA;EAAA,QAkBM,kBAAA;EAAA,QA6BA,cAAA;EAAA,QA6BN,gBAAA;EAAA,QAIA,mBAAA;EAAA,QAKA,wBAAA;EAAA,QAUA,WAAA;EAAA,QAeA,UAAA;ETveW;;;;AAEvB;;;;;;;EAFuB,QS2iBX,kBAAA;EAAA,QAwDA,qBAAA;EAAA,QAyBA,yBAAA;EAAA,QA8BA,IAAA;AAAA;AAAA,iBAKU,iBAAA,CAAkB,OAAA,GAAS,kBAAA,GAA0B,OAAA,CAAQ,WAAA"}
|