@aztec/simulator 0.23.0 → 0.26.1
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/dest/acvm/deserialize.d.ts +5 -0
- package/dest/acvm/deserialize.d.ts.map +1 -1
- package/dest/acvm/deserialize.js +8 -1
- package/dest/acvm/oracle/oracle.d.ts +7 -6
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +28 -15
- package/dest/acvm/oracle/typed_oracle.d.ts +9 -11
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +11 -11
- package/dest/avm/avm_context.d.ts +4 -4
- package/dest/avm/avm_context.d.ts.map +1 -1
- package/dest/avm/avm_context.js +6 -6
- package/dest/avm/avm_execution_environment.d.ts +3 -2
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +6 -5
- package/dest/avm/avm_memory_types.d.ts +127 -37
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_memory_types.js +98 -106
- package/dest/avm/avm_simulator.d.ts +6 -4
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +17 -19
- package/dest/avm/errors.d.ts +3 -1
- package/dest/avm/errors.d.ts.map +1 -1
- package/dest/avm/errors.js +9 -3
- package/dest/avm/fixtures/index.d.ts +21 -5
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +28 -9
- package/dest/avm/journal/host_storage.d.ts +1 -1
- package/dest/avm/journal/host_storage.d.ts.map +1 -1
- package/dest/avm/journal/host_storage.js +1 -1
- package/dest/avm/journal/journal.d.ts +78 -50
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +125 -169
- package/dest/avm/journal/nullifiers.d.ts +85 -0
- package/dest/avm/journal/nullifiers.d.ts.map +1 -0
- package/dest/avm/journal/nullifiers.js +147 -0
- package/dest/avm/journal/public_storage.d.ts +88 -0
- package/dest/avm/journal/public_storage.d.ts.map +1 -0
- package/dest/avm/journal/public_storage.js +135 -0
- package/dest/avm/journal/trace.d.ts +43 -0
- package/dest/avm/journal/trace.d.ts.map +1 -0
- package/dest/avm/journal/trace.js +204 -0
- package/dest/avm/journal/trace_types.d.ts +26 -0
- package/dest/avm/journal/trace_types.d.ts.map +1 -0
- package/dest/avm/journal/trace_types.js +6 -0
- package/dest/avm/opcodes/accrued_substate.d.ts +37 -4
- package/dest/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/avm/opcodes/accrued_substate.js +109 -12
- package/dest/avm/opcodes/addressing_mode.d.ts +24 -0
- package/dest/avm/opcodes/addressing_mode.d.ts.map +1 -0
- package/dest/avm/opcodes/addressing_mode.js +62 -0
- package/dest/avm/opcodes/environment_getters.d.ts +14 -13
- package/dest/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/avm/opcodes/environment_getters.js +1 -1
- package/dest/avm/opcodes/external_calls.js +5 -5
- package/dest/avm/opcodes/hashing.d.ts +48 -0
- package/dest/avm/opcodes/hashing.d.ts.map +1 -0
- package/dest/avm/opcodes/hashing.js +127 -0
- package/dest/avm/opcodes/instruction.d.ts +4 -4
- package/dest/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction.js +1 -1
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +5 -3
- package/dest/avm/opcodes/storage.d.ts.map +1 -1
- package/dest/avm/opcodes/storage.js +3 -3
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +28 -22
- package/dest/avm/serialization/instruction_serialization.d.ts +21 -16
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +23 -18
- package/dest/avm/temporary_executor_migration.d.ts +25 -0
- package/dest/avm/temporary_executor_migration.d.ts.map +1 -0
- package/dest/avm/temporary_executor_migration.js +71 -0
- package/dest/client/client_execution_context.d.ts +13 -7
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +52 -27
- package/dest/client/db_oracle.d.ts +7 -0
- package/dest/client/db_oracle.d.ts.map +1 -1
- package/dest/client/db_oracle.js +1 -1
- package/dest/client/execution_note_cache.js +1 -1
- package/dest/client/execution_result.d.ts +4 -2
- package/dest/client/execution_result.d.ts.map +1 -1
- package/dest/client/execution_result.js +1 -1
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +4 -4
- package/dest/client/simulator.d.ts +11 -6
- package/dest/client/simulator.d.ts.map +1 -1
- package/dest/client/simulator.js +21 -12
- package/dest/client/unconstrained_execution.js +2 -2
- package/dest/client/view_data_oracle.d.ts +9 -2
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +13 -5
- package/dest/public/db.d.ts +17 -4
- package/dest/public/db.d.ts.map +1 -1
- package/dest/public/execution.d.ts +9 -4
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +18 -5
- package/dest/public/executor.d.ts +7 -0
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +40 -6
- package/dest/public/public_execution_context.d.ts +5 -4
- package/dest/public/public_execution_context.d.ts.map +1 -1
- package/dest/public/public_execution_context.js +24 -13
- package/dest/public/state_actions.d.ts +1 -1
- package/dest/public/state_actions.d.ts.map +1 -1
- package/dest/public/state_actions.js +6 -7
- package/dest/test/utils.js +4 -4
- package/dest/utils.d.ts +5 -20
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +4 -21
- package/package.json +9 -6
- package/src/acvm/acvm.ts +156 -0
- package/src/acvm/acvm_types.ts +11 -0
- package/src/acvm/deserialize.ts +44 -0
- package/src/acvm/index.ts +5 -0
- package/src/acvm/oracle/debug.ts +109 -0
- package/src/acvm/oracle/index.ts +17 -0
- package/src/acvm/oracle/oracle.ts +356 -0
- package/src/acvm/oracle/typed_oracle.ts +225 -0
- package/src/acvm/serialize.ts +75 -0
- package/src/avm/avm_context.ts +63 -0
- package/src/avm/avm_execution_environment.ts +98 -0
- package/src/avm/avm_machine_state.ts +93 -0
- package/src/avm/avm_memory_types.ts +324 -0
- package/src/avm/avm_message_call_result.ts +29 -0
- package/src/avm/avm_simulator.ts +87 -0
- package/src/avm/errors.ts +57 -0
- package/src/avm/fixtures/index.ts +115 -0
- package/src/avm/journal/host_storage.ts +14 -0
- package/src/avm/journal/index.ts +2 -0
- package/src/avm/journal/journal.ts +231 -0
- package/src/avm/journal/nullifiers.ts +170 -0
- package/src/avm/journal/public_storage.ts +149 -0
- package/src/avm/journal/trace.ts +223 -0
- package/src/avm/journal/trace_types.ts +79 -0
- package/src/avm/opcodes/.eslintrc.cjs +8 -0
- package/src/avm/opcodes/accrued_substate.ts +214 -0
- package/src/avm/opcodes/addressing_mode.ts +66 -0
- package/src/avm/opcodes/arithmetic.ts +79 -0
- package/src/avm/opcodes/bitwise.ts +129 -0
- package/src/avm/opcodes/comparators.ts +69 -0
- package/src/avm/opcodes/control_flow.ts +129 -0
- package/src/avm/opcodes/environment_getters.ts +201 -0
- package/src/avm/opcodes/external_calls.ts +122 -0
- package/src/avm/opcodes/hashing.ts +170 -0
- package/src/avm/opcodes/index.ts +10 -0
- package/src/avm/opcodes/instruction.ts +64 -0
- package/src/avm/opcodes/instruction_impl.ts +52 -0
- package/src/avm/opcodes/memory.ts +194 -0
- package/src/avm/opcodes/storage.ts +79 -0
- package/src/avm/serialization/buffer_cursor.ts +109 -0
- package/src/avm/serialization/bytecode_serialization.ts +179 -0
- package/src/avm/serialization/instruction_serialization.ts +170 -0
- package/src/avm/temporary_executor_migration.ts +109 -0
- package/src/client/client_execution_context.ts +502 -0
- package/src/client/db_oracle.ts +192 -0
- package/src/client/execution_note_cache.ts +90 -0
- package/src/client/execution_result.ts +89 -0
- package/src/client/index.ts +3 -0
- package/src/client/pick_notes.ts +125 -0
- package/src/client/private_execution.ts +79 -0
- package/src/client/simulator.ts +317 -0
- package/src/client/unconstrained_execution.ts +49 -0
- package/src/client/view_data_oracle.ts +253 -0
- package/src/common/errors.ts +61 -0
- package/src/common/index.ts +3 -0
- package/src/common/packed_args_cache.ts +55 -0
- package/src/common/side_effect_counter.ts +12 -0
- package/src/index.ts +3 -0
- package/src/public/db.ts +100 -0
- package/src/public/execution.ts +161 -0
- package/src/public/executor.ts +178 -0
- package/src/public/index.ts +9 -0
- package/src/public/public_execution_context.ts +241 -0
- package/src/public/state_actions.ts +100 -0
- package/src/test/utils.ts +38 -0
- package/src/utils.ts +18 -0
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
|
+
/** MemoryValue gathers the common operations for all memory types. */
|
|
2
4
|
export declare abstract class MemoryValue {
|
|
3
5
|
abstract add(rhs: MemoryValue): MemoryValue;
|
|
4
6
|
abstract sub(rhs: MemoryValue): MemoryValue;
|
|
@@ -8,8 +10,10 @@ export declare abstract class MemoryValue {
|
|
|
8
10
|
abstract lt(rhs: MemoryValue): boolean;
|
|
9
11
|
abstract build(n: bigint): MemoryValue;
|
|
10
12
|
abstract toBigInt(): bigint;
|
|
13
|
+
abstract toBuffer(): Buffer;
|
|
11
14
|
toFr(): Fr;
|
|
12
15
|
}
|
|
16
|
+
/** IntegralValue gathers the common operations for all integral memory types. */
|
|
13
17
|
export declare abstract class IntegralValue extends MemoryValue {
|
|
14
18
|
abstract shl(rhs: IntegralValue): IntegralValue;
|
|
15
19
|
abstract shr(rhs: IntegralValue): IntegralValue;
|
|
@@ -18,51 +22,135 @@ export declare abstract class IntegralValue extends MemoryValue {
|
|
|
18
22
|
abstract xor(rhs: IntegralValue): IntegralValue;
|
|
19
23
|
abstract not(): IntegralValue;
|
|
20
24
|
}
|
|
21
|
-
declare
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
25
|
+
declare const Uint8_base: {
|
|
26
|
+
new (n: number | bigint): {
|
|
27
|
+
readonly n: bigint;
|
|
28
|
+
build(n: bigint): any;
|
|
29
|
+
add(rhs: any): any;
|
|
30
|
+
sub(rhs: any): any;
|
|
31
|
+
mul(rhs: any): any;
|
|
32
|
+
div(rhs: any): any;
|
|
33
|
+
shr(rhs: any): any;
|
|
34
|
+
shl(rhs: any): any;
|
|
35
|
+
and(rhs: any): any;
|
|
36
|
+
or(rhs: any): any;
|
|
37
|
+
xor(rhs: any): any;
|
|
38
|
+
not(): any;
|
|
39
|
+
equals(rhs: any): boolean;
|
|
40
|
+
lt(rhs: any): boolean;
|
|
41
|
+
toBigInt(): bigint;
|
|
42
|
+
toBuffer(): Buffer;
|
|
43
|
+
toFr(): Fr;
|
|
44
|
+
};
|
|
45
|
+
readonly mod: bigint;
|
|
46
|
+
readonly bitmask: bigint;
|
|
47
|
+
};
|
|
48
|
+
export declare class Uint8 extends Uint8_base {
|
|
45
49
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
50
|
+
declare const Uint16_base: {
|
|
51
|
+
new (n: number | bigint): {
|
|
52
|
+
readonly n: bigint;
|
|
53
|
+
build(n: bigint): any;
|
|
54
|
+
add(rhs: any): any;
|
|
55
|
+
sub(rhs: any): any;
|
|
56
|
+
mul(rhs: any): any;
|
|
57
|
+
div(rhs: any): any;
|
|
58
|
+
shr(rhs: any): any;
|
|
59
|
+
shl(rhs: any): any;
|
|
60
|
+
and(rhs: any): any;
|
|
61
|
+
or(rhs: any): any;
|
|
62
|
+
xor(rhs: any): any;
|
|
63
|
+
not(): any;
|
|
64
|
+
equals(rhs: any): boolean;
|
|
65
|
+
lt(rhs: any): boolean;
|
|
66
|
+
toBigInt(): bigint;
|
|
67
|
+
toBuffer(): Buffer;
|
|
68
|
+
toFr(): Fr;
|
|
69
|
+
};
|
|
70
|
+
readonly mod: bigint;
|
|
71
|
+
readonly bitmask: bigint;
|
|
72
|
+
};
|
|
73
|
+
export declare class Uint16 extends Uint16_base {
|
|
49
74
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
75
|
+
declare const Uint32_base: {
|
|
76
|
+
new (n: number | bigint): {
|
|
77
|
+
readonly n: bigint;
|
|
78
|
+
build(n: bigint): any;
|
|
79
|
+
add(rhs: any): any;
|
|
80
|
+
sub(rhs: any): any;
|
|
81
|
+
mul(rhs: any): any;
|
|
82
|
+
div(rhs: any): any;
|
|
83
|
+
shr(rhs: any): any;
|
|
84
|
+
shl(rhs: any): any;
|
|
85
|
+
and(rhs: any): any;
|
|
86
|
+
or(rhs: any): any;
|
|
87
|
+
xor(rhs: any): any;
|
|
88
|
+
not(): any;
|
|
89
|
+
equals(rhs: any): boolean;
|
|
90
|
+
lt(rhs: any): boolean;
|
|
91
|
+
toBigInt(): bigint;
|
|
92
|
+
toBuffer(): Buffer;
|
|
93
|
+
toFr(): Fr;
|
|
94
|
+
};
|
|
95
|
+
readonly mod: bigint;
|
|
96
|
+
readonly bitmask: bigint;
|
|
97
|
+
};
|
|
98
|
+
export declare class Uint32 extends Uint32_base {
|
|
53
99
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
100
|
+
declare const Uint64_base: {
|
|
101
|
+
new (n: number | bigint): {
|
|
102
|
+
readonly n: bigint;
|
|
103
|
+
build(n: bigint): any;
|
|
104
|
+
add(rhs: any): any;
|
|
105
|
+
sub(rhs: any): any;
|
|
106
|
+
mul(rhs: any): any;
|
|
107
|
+
div(rhs: any): any;
|
|
108
|
+
shr(rhs: any): any;
|
|
109
|
+
shl(rhs: any): any;
|
|
110
|
+
and(rhs: any): any;
|
|
111
|
+
or(rhs: any): any;
|
|
112
|
+
xor(rhs: any): any;
|
|
113
|
+
not(): any;
|
|
114
|
+
equals(rhs: any): boolean;
|
|
115
|
+
lt(rhs: any): boolean;
|
|
116
|
+
toBigInt(): bigint;
|
|
117
|
+
toBuffer(): Buffer;
|
|
118
|
+
toFr(): Fr;
|
|
119
|
+
};
|
|
120
|
+
readonly mod: bigint;
|
|
121
|
+
readonly bitmask: bigint;
|
|
122
|
+
};
|
|
123
|
+
export declare class Uint64 extends Uint64_base {
|
|
57
124
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
125
|
+
declare const Uint128_base: {
|
|
126
|
+
new (n: number | bigint): {
|
|
127
|
+
readonly n: bigint;
|
|
128
|
+
build(n: bigint): any;
|
|
129
|
+
add(rhs: any): any;
|
|
130
|
+
sub(rhs: any): any;
|
|
131
|
+
mul(rhs: any): any;
|
|
132
|
+
div(rhs: any): any;
|
|
133
|
+
shr(rhs: any): any;
|
|
134
|
+
shl(rhs: any): any;
|
|
135
|
+
and(rhs: any): any;
|
|
136
|
+
or(rhs: any): any;
|
|
137
|
+
xor(rhs: any): any;
|
|
138
|
+
not(): any;
|
|
139
|
+
equals(rhs: any): boolean;
|
|
140
|
+
lt(rhs: any): boolean;
|
|
141
|
+
toBigInt(): bigint;
|
|
142
|
+
toBuffer(): Buffer;
|
|
143
|
+
toFr(): Fr;
|
|
144
|
+
};
|
|
145
|
+
readonly mod: bigint;
|
|
146
|
+
readonly bitmask: bigint;
|
|
147
|
+
};
|
|
148
|
+
export declare class Uint128 extends Uint128_base {
|
|
61
149
|
}
|
|
62
150
|
export declare class Field extends MemoryValue {
|
|
63
151
|
static readonly MODULUS: bigint;
|
|
64
152
|
private readonly rep;
|
|
65
|
-
constructor(v: number | bigint | Fr);
|
|
153
|
+
constructor(v: number | bigint | Fr | Buffer);
|
|
66
154
|
build(n: bigint): Field;
|
|
67
155
|
add(rhs: Field): Field;
|
|
68
156
|
sub(rhs: Field): Field;
|
|
@@ -71,6 +159,7 @@ export declare class Field extends MemoryValue {
|
|
|
71
159
|
equals(rhs: Field): boolean;
|
|
72
160
|
lt(rhs: Field): boolean;
|
|
73
161
|
toBigInt(): bigint;
|
|
162
|
+
toBuffer(): Buffer;
|
|
74
163
|
}
|
|
75
164
|
export declare enum TypeTag {
|
|
76
165
|
UNINITIALIZED = 0,
|
|
@@ -98,6 +187,7 @@ export declare class TaggedMemory {
|
|
|
98
187
|
* Check that the memory at the given offset matches the specified tag.
|
|
99
188
|
*/
|
|
100
189
|
checkTag(tag: TypeTag, offset: number): void;
|
|
190
|
+
static checkIsIntegralTag(tag: TypeTag): void;
|
|
101
191
|
/**
|
|
102
192
|
* Check tags for memory at all of the specified offsets.
|
|
103
193
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_memory_types.d.ts","sourceRoot":"","sources":["../../src/avm/avm_memory_types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"avm_memory_types.d.ts","sourceRoot":"","sources":["../../src/avm/avm_memory_types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,119 +1,94 @@
|
|
|
1
|
+
import { toBufferBE } from '@aztec/foundation/bigint-buffer';
|
|
1
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
2
3
|
import { strict as assert } from 'assert';
|
|
3
4
|
import { TagCheckError } from './errors.js';
|
|
5
|
+
/** MemoryValue gathers the common operations for all memory types. */
|
|
4
6
|
export class MemoryValue {
|
|
5
7
|
// To field
|
|
6
8
|
toFr() {
|
|
7
9
|
return new Fr(this.toBigInt());
|
|
8
10
|
}
|
|
9
11
|
}
|
|
12
|
+
/** IntegralValue gathers the common operations for all integral memory types. */
|
|
10
13
|
export class IntegralValue extends MemoryValue {
|
|
11
14
|
}
|
|
12
|
-
|
|
13
|
-
class
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
15
|
+
/**
|
|
16
|
+
* This function creates a class for unsigned integers of a given number of bits.
|
|
17
|
+
* In TypeScript terms, it's a class mixin.
|
|
18
|
+
**/
|
|
19
|
+
function UnsignedIntegerClassFactory(bits) {
|
|
20
|
+
var _a;
|
|
21
|
+
return _a = class NewUintClass extends IntegralValue {
|
|
22
|
+
constructor(n) {
|
|
23
|
+
super();
|
|
24
|
+
this.n = BigInt(n);
|
|
25
|
+
assert(n < _a.mod, `Value ${n} is too large for ${this.constructor.name}.`);
|
|
26
|
+
}
|
|
27
|
+
build(n) {
|
|
28
|
+
return new this.constructor.prototype.constructor(n);
|
|
29
|
+
}
|
|
30
|
+
add(rhs) {
|
|
31
|
+
return this.build((this.n + rhs.n) & _a.bitmask);
|
|
32
|
+
}
|
|
33
|
+
sub(rhs) {
|
|
34
|
+
const res = this.n - rhs.n;
|
|
35
|
+
return this.build(res >= 0 ? res : res + _a.mod);
|
|
36
|
+
}
|
|
37
|
+
mul(rhs) {
|
|
38
|
+
return this.build((this.n * rhs.n) & _a.bitmask);
|
|
39
|
+
}
|
|
40
|
+
div(rhs) {
|
|
41
|
+
return this.build(this.n / rhs.n);
|
|
42
|
+
}
|
|
43
|
+
// No sign extension.
|
|
44
|
+
shr(rhs) {
|
|
45
|
+
// Note that this.n is > 0 by class invariant.
|
|
46
|
+
return this.build(this.n >> rhs.n);
|
|
47
|
+
}
|
|
48
|
+
shl(rhs) {
|
|
49
|
+
return this.build((this.n << rhs.n) & _a.bitmask);
|
|
50
|
+
}
|
|
51
|
+
and(rhs) {
|
|
52
|
+
return this.build(this.n & rhs.n);
|
|
53
|
+
}
|
|
54
|
+
or(rhs) {
|
|
55
|
+
return this.build(this.n | rhs.n);
|
|
56
|
+
}
|
|
57
|
+
xor(rhs) {
|
|
58
|
+
return this.build(this.n ^ rhs.n);
|
|
59
|
+
}
|
|
60
|
+
not() {
|
|
61
|
+
return this.build(~this.n & _a.bitmask);
|
|
62
|
+
}
|
|
63
|
+
equals(rhs) {
|
|
64
|
+
return this.n === rhs.n;
|
|
65
|
+
}
|
|
66
|
+
lt(rhs) {
|
|
67
|
+
return this.n < rhs.n;
|
|
68
|
+
}
|
|
69
|
+
toBigInt() {
|
|
70
|
+
return this.n;
|
|
71
|
+
}
|
|
72
|
+
toBuffer() {
|
|
73
|
+
return toBufferBE(this.n, bits / 8);
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
_a.mod = 1n << BigInt(bits),
|
|
77
|
+
_a.bitmask = _a.mod - 1n,
|
|
78
|
+
_a;
|
|
77
79
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
build(n) {
|
|
83
|
-
return new Uint8(n);
|
|
84
|
-
}
|
|
80
|
+
// Now we can create the classes for each unsigned integer type.
|
|
81
|
+
// We extend instead of just assigning so that the class has the right name.
|
|
82
|
+
// Otherwise they are all called "NewUintClass".
|
|
83
|
+
export class Uint8 extends UnsignedIntegerClassFactory(8) {
|
|
85
84
|
}
|
|
86
|
-
export class Uint16 extends
|
|
87
|
-
constructor(n) {
|
|
88
|
-
super(BigInt(n), 16n);
|
|
89
|
-
}
|
|
90
|
-
build(n) {
|
|
91
|
-
return new Uint16(n);
|
|
92
|
-
}
|
|
85
|
+
export class Uint16 extends UnsignedIntegerClassFactory(16) {
|
|
93
86
|
}
|
|
94
|
-
export class Uint32 extends
|
|
95
|
-
constructor(n) {
|
|
96
|
-
super(BigInt(n), 32n);
|
|
97
|
-
}
|
|
98
|
-
build(n) {
|
|
99
|
-
return new Uint32(n);
|
|
100
|
-
}
|
|
87
|
+
export class Uint32 extends UnsignedIntegerClassFactory(32) {
|
|
101
88
|
}
|
|
102
|
-
export class Uint64 extends
|
|
103
|
-
constructor(n) {
|
|
104
|
-
super(BigInt(n), 64n);
|
|
105
|
-
}
|
|
106
|
-
build(n) {
|
|
107
|
-
return new Uint64(n);
|
|
108
|
-
}
|
|
89
|
+
export class Uint64 extends UnsignedIntegerClassFactory(64) {
|
|
109
90
|
}
|
|
110
|
-
export class Uint128 extends
|
|
111
|
-
constructor(n) {
|
|
112
|
-
super(BigInt(n), 128n);
|
|
113
|
-
}
|
|
114
|
-
build(n) {
|
|
115
|
-
return new Uint128(n);
|
|
116
|
-
}
|
|
91
|
+
export class Uint128 extends UnsignedIntegerClassFactory(128) {
|
|
117
92
|
}
|
|
118
93
|
export class Field extends MemoryValue {
|
|
119
94
|
constructor(v) {
|
|
@@ -144,6 +119,9 @@ export class Field extends MemoryValue {
|
|
|
144
119
|
toBigInt() {
|
|
145
120
|
return this.rep.toBigInt();
|
|
146
121
|
}
|
|
122
|
+
toBuffer() {
|
|
123
|
+
return this.rep.toBuffer();
|
|
124
|
+
}
|
|
147
125
|
}
|
|
148
126
|
Field.MODULUS = Fr.MODULUS;
|
|
149
127
|
export var TypeTag;
|
|
@@ -160,10 +138,11 @@ export var TypeTag;
|
|
|
160
138
|
// TODO: Consider automatic conversion when getting undefined values.
|
|
161
139
|
export class TaggedMemory {
|
|
162
140
|
constructor() {
|
|
163
|
-
//
|
|
164
|
-
this._mem =
|
|
141
|
+
// We do not initialize memory size here because otherwise tests blow up when diffing.
|
|
142
|
+
this._mem = [];
|
|
165
143
|
}
|
|
166
144
|
get(offset) {
|
|
145
|
+
assert(offset < TaggedMemory.MAX_MEMORY_SIZE);
|
|
167
146
|
return this.getAs(offset);
|
|
168
147
|
}
|
|
169
148
|
getAs(offset) {
|
|
@@ -173,14 +152,17 @@ export class TaggedMemory {
|
|
|
173
152
|
}
|
|
174
153
|
getSlice(offset, size) {
|
|
175
154
|
assert(offset < TaggedMemory.MAX_MEMORY_SIZE);
|
|
155
|
+
assert(offset + size < TaggedMemory.MAX_MEMORY_SIZE);
|
|
176
156
|
return this._mem.slice(offset, offset + size);
|
|
177
157
|
}
|
|
178
158
|
getSliceAs(offset, size) {
|
|
179
159
|
assert(offset < TaggedMemory.MAX_MEMORY_SIZE);
|
|
160
|
+
assert(offset + size < TaggedMemory.MAX_MEMORY_SIZE);
|
|
180
161
|
return this._mem.slice(offset, offset + size);
|
|
181
162
|
}
|
|
182
163
|
getSliceTags(offset, size) {
|
|
183
164
|
assert(offset < TaggedMemory.MAX_MEMORY_SIZE);
|
|
165
|
+
assert(offset + size < TaggedMemory.MAX_MEMORY_SIZE);
|
|
184
166
|
return this._mem.slice(offset, offset + size).map(TaggedMemory.getTag);
|
|
185
167
|
}
|
|
186
168
|
set(offset, v) {
|
|
@@ -189,6 +171,11 @@ export class TaggedMemory {
|
|
|
189
171
|
}
|
|
190
172
|
setSlice(offset, vs) {
|
|
191
173
|
assert(offset < TaggedMemory.MAX_MEMORY_SIZE);
|
|
174
|
+
assert(offset + vs.length < TaggedMemory.MAX_MEMORY_SIZE);
|
|
175
|
+
// We may need to extend the memory size, otherwise splice doesn't insert.
|
|
176
|
+
if (offset + vs.length > this._mem.length) {
|
|
177
|
+
this._mem.length = offset + vs.length;
|
|
178
|
+
}
|
|
192
179
|
this._mem.splice(offset, vs.length, ...vs);
|
|
193
180
|
}
|
|
194
181
|
getTag(offset) {
|
|
@@ -199,7 +186,12 @@ export class TaggedMemory {
|
|
|
199
186
|
*/
|
|
200
187
|
checkTag(tag, offset) {
|
|
201
188
|
if (this.getTag(offset) !== tag) {
|
|
202
|
-
throw
|
|
189
|
+
throw TagCheckError.forOffset(offset, TypeTag[this.getTag(offset)], TypeTag[tag]);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
static checkIsIntegralTag(tag) {
|
|
193
|
+
if (![TypeTag.UINT8, TypeTag.UINT16, TypeTag.UINT32, TypeTag.UINT64, TypeTag.UINT128].includes(tag)) {
|
|
194
|
+
throw TagCheckError.forTag(TypeTag[tag], 'integral');
|
|
203
195
|
}
|
|
204
196
|
}
|
|
205
197
|
/**
|
|
@@ -247,7 +239,7 @@ export class TaggedMemory {
|
|
|
247
239
|
}
|
|
248
240
|
// Truncates the value to fit the type.
|
|
249
241
|
static integralFromTag(v, tag) {
|
|
250
|
-
v = v;
|
|
242
|
+
v = BigInt(v);
|
|
251
243
|
switch (tag) {
|
|
252
244
|
case TypeTag.UINT8:
|
|
253
245
|
return new Uint8(v & ((1n << 8n) - 1n));
|
|
@@ -265,5 +257,5 @@ export class TaggedMemory {
|
|
|
265
257
|
}
|
|
266
258
|
}
|
|
267
259
|
// FIXME: memory should be 2^32, but TS doesn't allow for arrays that big.
|
|
268
|
-
TaggedMemory.MAX_MEMORY_SIZE = Number(1n <<
|
|
269
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX21lbW9yeV90eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX21lbW9yeV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFMUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxNQUFNLE9BQWdCLFdBQVc7SUFlL0IsV0FBVztJQUNKLElBQUk7UUFDVCxPQUFPLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBZ0IsYUFBYyxTQUFRLFdBQVc7Q0FPdEQ7QUFFRCxzRUFBc0U7QUFDdEUsTUFBZSxlQUFnQixTQUFRLGFBQWE7SUFJbEQsWUFBOEIsQ0FBUyxFQUFVLElBQVk7UUFDM0QsS0FBSyxFQUFFLENBQUM7UUFEb0IsTUFBQyxHQUFELENBQUMsQ0FBUTtRQUFVLFNBQUksR0FBSixJQUFJLENBQVE7UUFFM0QsTUFBTSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNqQiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDN0IsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUlNLEdBQUcsQ0FBQyxHQUFvQjtRQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENB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
|
|
260
|
+
TaggedMemory.MAX_MEMORY_SIZE = Number((1n << 32n) - 2n);
|
|
261
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX21lbW9yeV90eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX21lbW9yeV90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxNQUFNLElBQUksTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsc0VBQXNFO0FBQ3RFLE1BQU0sT0FBZ0IsV0FBVztJQWtCL0IsV0FBVztJQUNKLElBQUk7UUFDVCxPQUFPLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7Q0FDRjtBQUVELGlGQUFpRjtBQUNqRixNQUFNLE9BQWdCLGFBQWMsU0FBUSxXQUFXO0NBT3REO0FBRUQ7OztJQUdJO0FBQ0osU0FBUywyQkFBMkIsQ0FBQyxJQUFZOztJQUMvQyxZQUFPLE1BQU0sWUFBYSxTQUFRLGFBQWE7WUFLN0MsWUFBbUIsQ0FBa0I7Z0JBQ25DLEtBQUssRUFBRSxDQUFDO2dCQUNSLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQVksQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLHFCQUFxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFDeEYsQ0FBQztZQUVNLEtBQUssQ0FBQyxDQUFTO2dCQUNwQixPQUFPLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7WUFFTSxHQUFHLENBQUMsR0FBaUI7Z0JBQzFCLE9BQU8sSUFB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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
1
2
|
import type { AvmContext } from './avm_context.js';
|
|
2
3
|
import { AvmContractCallResults } from './avm_message_call_result.js';
|
|
3
4
|
import type { Instruction } from './opcodes/index.js';
|
|
@@ -10,13 +11,14 @@ export declare class AvmSimulator {
|
|
|
10
11
|
*/
|
|
11
12
|
execute(): Promise<AvmContractCallResults>;
|
|
12
13
|
/**
|
|
13
|
-
* Executes the provided
|
|
14
|
+
* Executes the provided bytecode in the current context.
|
|
14
15
|
* This method is useful for testing and debugging.
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
|
+
executeBytecode(bytecode: Buffer): Promise<AvmContractCallResults>;
|
|
17
18
|
/**
|
|
18
|
-
*
|
|
19
|
+
* Executes the provided instructions in the current context.
|
|
20
|
+
* This method is useful for testing and debugging.
|
|
19
21
|
*/
|
|
20
|
-
|
|
22
|
+
executeInstructions(instructions: Instruction[]): Promise<AvmContractCallResults>;
|
|
21
23
|
}
|
|
22
24
|
//# sourceMappingURL=avm_simulator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../src/avm/avm_simulator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"avm_simulator.d.ts","sourceRoot":"","sources":["../../src/avm/avm_simulator.ts"],"names":[],"mappings":";AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBAAa,YAAY;IAGX,OAAO,CAAC,OAAO;IAF3B,OAAO,CAAC,GAAG,CAAyD;gBAEhD,OAAO,EAAE,UAAU;IAEvC;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,sBAAsB,CAAC;IAgBvD;;;OAGG;IACU,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI/E;;;OAGG;IACU,mBAAmB,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAwC/F"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { FunctionSelector } from '@aztec/circuits.js';
|
|
2
1
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
3
2
|
import { strict as assert } from 'assert';
|
|
4
3
|
import { AvmContractCallResults } from './avm_message_call_result.js';
|
|
@@ -13,8 +12,21 @@ export class AvmSimulator {
|
|
|
13
12
|
* Fetch the bytecode and execute it in the current context.
|
|
14
13
|
*/
|
|
15
14
|
async execute() {
|
|
16
|
-
const
|
|
17
|
-
|
|
15
|
+
const selector = this.context.environment.temporaryFunctionSelector;
|
|
16
|
+
const bytecode = await this.context.persistableState.hostStorage.contractsDb.getBytecode(this.context.environment.address, selector);
|
|
17
|
+
// This assumes that we will not be able to send messages to accounts without code
|
|
18
|
+
// Pending classes and instances impl details
|
|
19
|
+
if (!bytecode) {
|
|
20
|
+
throw new NoBytecodeForContractError(this.context.environment.address);
|
|
21
|
+
}
|
|
22
|
+
return await this.executeBytecode(bytecode);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Executes the provided bytecode in the current context.
|
|
26
|
+
* This method is useful for testing and debugging.
|
|
27
|
+
*/
|
|
28
|
+
async executeBytecode(bytecode) {
|
|
29
|
+
return await this.executeInstructions(decodeFromBytecode(bytecode));
|
|
18
30
|
}
|
|
19
31
|
/**
|
|
20
32
|
* Executes the provided instructions in the current context.
|
|
@@ -28,7 +40,7 @@ export class AvmSimulator {
|
|
|
28
40
|
while (!this.context.machineState.halted) {
|
|
29
41
|
const instruction = instructions[this.context.machineState.pc];
|
|
30
42
|
assert(!!instruction); // This should never happen
|
|
31
|
-
this.log(
|
|
43
|
+
this.log.debug(`@${this.context.machineState.pc} ${instruction.toString()}`);
|
|
32
44
|
// Execute the instruction.
|
|
33
45
|
// Normal returns and reverts will return normally here.
|
|
34
46
|
// "Exceptional halts" will throw.
|
|
@@ -56,19 +68,5 @@ export class AvmSimulator {
|
|
|
56
68
|
return results;
|
|
57
69
|
}
|
|
58
70
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Fetch contract bytecode from world state and decode into executable instructions.
|
|
61
|
-
*/
|
|
62
|
-
async fetchAndDecodeBytecode() {
|
|
63
|
-
// NOTE: the following is mocked as getPublicBytecode does not exist yet
|
|
64
|
-
const selector = new FunctionSelector(0);
|
|
65
|
-
const bytecode = await this.context.worldState.hostStorage.contractsDb.getBytecode(this.context.environment.address, selector);
|
|
66
|
-
// This assumes that we will not be able to send messages to accounts without code
|
|
67
|
-
// Pending classes and instances impl details
|
|
68
|
-
if (!bytecode) {
|
|
69
|
-
throw new NoBytecodeForContractError(this.context.environment.address);
|
|
70
|
-
}
|
|
71
|
-
return decodeFromBytecode(bytecode);
|
|
72
|
-
}
|
|
73
71
|
}
|
|
74
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZtX3NpbXVsYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdm0vYXZtX3NpbXVsYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV2RSxPQUFPLEVBQUUsTUFBTSxJQUFJLE1BQU0sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUcxQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsMEJBQTBCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFL0UsTUFBTSxPQUFPLFlBQVk7SUFHdkIsWUFBb0IsT0FBbUI7UUFBbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUYvQixRQUFHLEdBQWdCLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFMUIsQ0FBQztJQUUzQzs7T0FFRztJQUNJLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDO1FBQ3BFLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FDdEYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUNoQyxRQUFRLENBQ1QsQ0FBQztRQUVGLGtGQUFrRjtRQUNsRiw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsTUFBTSxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxPQUFPLE1BQU0sSUFBSSxDQUFD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
|