ox 1.1.2 → 1.3.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/CHANGELOG.md +61 -0
- package/dist/core/AbiFunction.d.ts +1 -1
- package/dist/core/AbiFunction.d.ts.map +1 -1
- package/dist/core/AbiFunction.js +6 -2
- package/dist/core/AbiFunction.js.map +1 -1
- package/dist/core/AbiParameters.d.ts +1 -1
- package/dist/core/AbiParameters.d.ts.map +1 -1
- package/dist/core/AbiParameters.js +1 -13
- package/dist/core/AbiParameters.js.map +1 -1
- package/dist/core/AesGcm.d.ts +36 -1
- package/dist/core/AesGcm.d.ts.map +1 -1
- package/dist/core/AesGcm.js +44 -0
- package/dist/core/AesGcm.js.map +1 -1
- package/dist/core/Ed25519.d.ts +46 -1
- package/dist/core/Ed25519.d.ts.map +1 -1
- package/dist/core/Ed25519.js +43 -0
- package/dist/core/Ed25519.js.map +1 -1
- package/dist/core/Engine.d.ts +1 -1
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Hash.d.ts +200 -1
- package/dist/core/Hash.d.ts.map +1 -1
- package/dist/core/Hash.js +207 -0
- package/dist/core/Hash.js.map +1 -1
- package/dist/core/Hex.d.ts.map +1 -1
- package/dist/core/Hex.js +1 -4
- package/dist/core/Hex.js.map +1 -1
- package/dist/core/Rlp.d.ts +32 -0
- package/dist/core/Rlp.d.ts.map +1 -1
- package/dist/core/Rlp.js +146 -0
- package/dist/core/Rlp.js.map +1 -1
- package/dist/core/Secp256k1.d.ts +46 -1
- package/dist/core/Secp256k1.d.ts.map +1 -1
- package/dist/core/Secp256k1.js +48 -0
- package/dist/core/Secp256k1.js.map +1 -1
- package/dist/core/WebAuthn.d.ts +224 -0
- package/dist/core/WebAuthn.d.ts.map +1 -0
- package/dist/core/WebAuthn.js +343 -0
- package/dist/core/WebAuthn.js.map +1 -0
- package/dist/core/WebAuthnP256.d.ts +46 -50
- package/dist/core/WebAuthnP256.d.ts.map +1 -1
- package/dist/core/WebAuthnP256.js +44 -50
- package/dist/core/WebAuthnP256.js.map +1 -1
- package/dist/core/internal/abiParameters.d.ts +7 -87
- package/dist/core/internal/abiParameters.d.ts.map +1 -1
- package/dist/core/internal/abiParameters.js +339 -194
- package/dist/core/internal/abiParameters.js.map +1 -1
- package/dist/core/internal/engine.d.ts +35 -2
- package/dist/core/internal/engine.d.ts.map +1 -1
- package/dist/core/internal/engine.js +12 -1
- package/dist/core/internal/engine.js.map +1 -1
- package/dist/core/internal/hash.d.ts +10 -0
- package/dist/core/internal/hash.d.ts.map +1 -1
- package/dist/core/internal/hash.js +26 -1
- package/dist/core/internal/hash.js.map +1 -1
- package/dist/index.d.ts +23 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -14
- package/dist/index.js.map +1 -1
- package/dist/node/Engine.d.ts +1 -1
- package/dist/node/Engine.d.ts.map +1 -1
- package/dist/node/Engine.js.map +1 -1
- package/dist/node/Hash.d.ts +6 -4
- package/dist/node/Hash.d.ts.map +1 -1
- package/dist/node/Hash.js +35 -3
- package/dist/node/Hash.js.map +1 -1
- package/dist/tempo/AuthorizationTempo.d.ts +6 -6
- package/dist/tempo/AuthorizationTempo.js +6 -6
- package/dist/tempo/KeyAuthorization.d.ts +3 -8
- package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/tempo/KeyAuthorization.js +3 -8
- package/dist/tempo/KeyAuthorization.js.map +1 -1
- package/dist/tempo/SignatureEnvelope.d.ts +8 -8
- package/dist/tempo/SignatureEnvelope.js +8 -8
- package/dist/trusted-setups/Paths.d.ts +1 -0
- package/dist/trusted-setups/Paths.d.ts.map +1 -1
- package/dist/trusted-setups/Paths.js +1 -0
- package/dist/trusted-setups/Paths.js.map +1 -1
- package/dist/trusted-setups/Setups.d.ts +35 -0
- package/dist/trusted-setups/Setups.d.ts.map +1 -0
- package/dist/trusted-setups/Setups.js +29 -0
- package/dist/trusted-setups/Setups.js.map +1 -0
- package/dist/trusted-setups/index.d.ts +20 -0
- package/dist/trusted-setups/index.d.ts.map +1 -1
- package/dist/trusted-setups/index.js +20 -0
- package/dist/trusted-setups/index.js.map +1 -1
- package/dist/trusted-setups/internal/paths.d.ts.map +1 -1
- package/dist/trusted-setups/internal/paths.js +1 -1
- package/dist/trusted-setups/internal/paths.js.map +1 -1
- package/dist/trusted-setups/internal/setups/mainnet.d.ts +7 -0
- package/dist/trusted-setups/internal/setups/mainnet.d.ts.map +1 -0
- package/dist/trusted-setups/internal/setups/mainnet.js +11 -0
- package/dist/trusted-setups/internal/setups/mainnet.js.map +1 -0
- package/dist/wasm/Engine.d.ts +4 -3
- package/dist/wasm/Engine.d.ts.map +1 -1
- package/dist/wasm/Engine.js +5 -5
- package/dist/wasm/Engine.js.map +1 -1
- package/dist/wasm/Hash.d.ts +1 -1
- package/dist/wasm/Hash.d.ts.map +1 -1
- package/dist/wasm/Hash.js +5 -0
- package/dist/wasm/Hash.js.map +1 -1
- package/dist/wasm/Keystore.d.ts +23 -9
- package/dist/wasm/Keystore.d.ts.map +1 -1
- package/dist/wasm/Keystore.js +30 -13
- package/dist/wasm/Keystore.js.map +1 -1
- package/dist/wasm/Kzg.d.ts +112 -0
- package/dist/wasm/Kzg.d.ts.map +1 -0
- package/dist/wasm/Kzg.js +333 -0
- package/dist/wasm/Kzg.js.map +1 -0
- package/dist/wasm/Secp256k1.d.ts +55 -0
- package/dist/wasm/Secp256k1.d.ts.map +1 -0
- package/dist/wasm/Secp256k1.js +181 -0
- package/dist/wasm/Secp256k1.js.map +1 -0
- package/dist/wasm/index.d.ts +44 -1
- package/dist/wasm/index.d.ts.map +1 -1
- package/dist/wasm/index.js +44 -1
- package/dist/wasm/index.js.map +1 -1
- package/dist/wasm/internal/blake3.d.ts +10 -1
- package/dist/wasm/internal/blake3.d.ts.map +1 -1
- package/dist/wasm/internal/blake3.js +12 -1
- package/dist/wasm/internal/blake3.js.map +1 -1
- package/dist/wasm/internal/blake3.wasm.d.ts +3 -1
- package/dist/wasm/internal/blake3.wasm.d.ts.map +1 -1
- package/dist/wasm/internal/blake3.wasm.js +3 -1
- package/dist/wasm/internal/blake3.wasm.js.map +1 -1
- package/dist/wasm/internal/hash.d.ts +9 -0
- package/dist/wasm/internal/hash.d.ts.map +1 -1
- package/dist/wasm/internal/hash.js +13 -1
- package/dist/wasm/internal/hash.js.map +1 -1
- package/dist/wasm/internal/hashState.d.ts +25 -0
- package/dist/wasm/internal/hashState.d.ts.map +1 -0
- package/dist/wasm/internal/hashState.js +105 -0
- package/dist/wasm/internal/hashState.js.map +1 -0
- package/dist/wasm/internal/hashes.d.ts +12 -1
- package/dist/wasm/internal/hashes.d.ts.map +1 -1
- package/dist/wasm/internal/hashes.js +18 -1
- package/dist/wasm/internal/hashes.js.map +1 -1
- package/dist/wasm/internal/hashes.wasm.d.ts +11 -3
- package/dist/wasm/internal/hashes.wasm.d.ts.map +1 -1
- package/dist/wasm/internal/hashes.wasm.js +11 -3
- package/dist/wasm/internal/hashes.wasm.js.map +1 -1
- package/dist/wasm/internal/instantiate.d.ts +12 -0
- package/dist/wasm/internal/instantiate.d.ts.map +1 -1
- package/dist/wasm/internal/instantiate.js +23 -7
- package/dist/wasm/internal/instantiate.js.map +1 -1
- package/dist/wasm/internal/keystore.d.ts +10 -0
- package/dist/wasm/internal/keystore.d.ts.map +1 -0
- package/dist/wasm/internal/keystore.js +10 -0
- package/dist/wasm/internal/keystore.js.map +1 -0
- package/dist/wasm/internal/kzg.d.ts +17 -0
- package/dist/wasm/internal/kzg.d.ts.map +1 -0
- package/dist/wasm/internal/kzg.js +8 -0
- package/dist/wasm/internal/kzg.js.map +1 -0
- package/dist/wasm/internal/kzg.wasm.d.ts +3 -0
- package/dist/wasm/internal/kzg.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/kzg.wasm.js +10 -0
- package/dist/wasm/internal/kzg.wasm.js.map +1 -0
- package/dist/wasm/internal/scrypt.d.ts +16 -0
- package/dist/wasm/internal/scrypt.d.ts.map +1 -0
- package/dist/wasm/internal/scrypt.js +78 -0
- package/dist/wasm/internal/scrypt.js.map +1 -0
- package/dist/wasm/internal/scrypt.wasm.d.ts +7 -0
- package/dist/wasm/internal/scrypt.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/scrypt.wasm.js +14 -0
- package/dist/wasm/internal/scrypt.wasm.js.map +1 -0
- package/dist/wasm/internal/secp256k1.d.ts +16 -0
- package/dist/wasm/internal/secp256k1.d.ts.map +1 -0
- package/dist/wasm/internal/secp256k1.js +20 -0
- package/dist/wasm/internal/secp256k1.js.map +1 -0
- package/dist/wasm/internal/secp256k1.wasm.d.ts +3 -0
- package/dist/wasm/internal/secp256k1.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/secp256k1.wasm.js +10 -0
- package/dist/wasm/internal/secp256k1.wasm.js.map +1 -0
- package/dist/webauthn/Authentication.d.ts +2 -0
- package/dist/webauthn/Authentication.d.ts.map +1 -1
- package/dist/webauthn/Authentication.js +2 -1
- package/dist/webauthn/Authentication.js.map +1 -1
- package/dist/webauthn/Registration.d.ts.map +1 -1
- package/dist/webauthn/Registration.js +2 -1
- package/dist/webauthn/Registration.js.map +1 -1
- package/dist/webauthn/Types.d.ts +27 -6
- package/dist/webauthn/Types.d.ts.map +1 -1
- package/dist/webauthn/internal/utils.d.ts.map +1 -1
- package/dist/webauthn/internal/utils.js +35 -9
- package/dist/webauthn/internal/utils.js.map +1 -1
- package/dist/zod/TypedData.d.ts +2 -2
- package/package.json +27 -2
- package/src/benchmarks/Ox.bench.ts +6 -0
- package/src/benchmarks/OxNode.bench.ts +8 -0
- package/src/benchmarks/OxV0.bench.ts +4 -0
- package/src/benchmarks/OxWasm.bench.ts +22 -0
- package/src/core/AbiFunction.ts +5 -5
- package/src/core/AbiParameters.ts +8 -20
- package/src/core/AesGcm.ts +86 -1
- package/src/core/Ed25519.ts +87 -1
- package/src/core/Engine.ts +1 -0
- package/src/core/Hash.ts +321 -1
- package/src/core/Hex.ts +1 -4
- package/src/core/Rlp.ts +172 -5
- package/src/core/Secp256k1.ts +92 -1
- package/src/core/WebAuthn.ts +579 -0
- package/src/core/WebAuthnP256.ts +47 -50
- package/src/core/_test/AbiFunction.test.ts +9 -0
- package/src/core/_test/AbiParameters.differential.fuzz.ts +156 -0
- package/src/core/_test/AbiParameters.encode.test.ts +22 -0
- package/src/core/_test/AbiParameters.fuzz.ts +4 -0
- package/src/core/_test/AesGcm.test.ts +76 -0
- package/src/core/_test/Block.test.ts +9 -2
- package/src/core/_test/Ed25519.test-d.ts +13 -1
- package/src/core/_test/Ed25519.test.ts +120 -1
- package/src/core/_test/Engine.test-d.ts +9 -0
- package/src/core/_test/Engine.test.ts +1 -1
- package/src/core/_test/Hash.test-d.ts +41 -0
- package/src/core/_test/Hash.test.ts +278 -1
- package/src/core/_test/Hash.vectors.test.ts +1 -2
- package/src/core/_test/Hex.test.ts +2 -0
- package/src/core/_test/Rlp.test-d.ts +18 -0
- package/src/core/_test/Rlp.test.ts +109 -0
- package/src/core/_test/Secp256k1.test-d.ts +14 -0
- package/src/core/_test/Secp256k1.test.ts +91 -1
- package/src/core/_test/Transaction.test.ts +11 -2
- package/src/core/_test/WebAuthn.test-d.ts +142 -0
- package/src/core/_test/WebAuthn.test.ts +766 -0
- package/src/core/_test/index.test.ts +1 -0
- package/src/core/internal/abiParameters.ts +466 -326
- package/src/core/internal/engine.ts +47 -2
- package/src/core/internal/hash.ts +53 -1
- package/src/index.ts +24 -14
- package/src/node/Engine.ts +1 -0
- package/src/node/Hash.ts +43 -6
- package/src/node/_test/Engine.test-d.ts +1 -0
- package/src/node/_test/Engine.test.ts +2 -0
- package/src/node/_test/Hash.test-d.ts +11 -0
- package/src/node/_test/Hash.test.ts +46 -0
- package/src/tempo/AuthorizationTempo.ts +6 -6
- package/src/tempo/KeyAuthorization.ts +3 -8
- package/src/tempo/SignatureEnvelope.ts +8 -8
- package/src/trusted-setups/Paths.ts +1 -0
- package/src/trusted-setups/README.md +39 -0
- package/src/trusted-setups/Setups.ts +46 -0
- package/src/trusted-setups/_test/Paths.test.ts +16 -0
- package/src/trusted-setups/_test/Setups.test-d.ts +7 -0
- package/src/trusted-setups/_test/Setups.test.ts +43 -0
- package/src/trusted-setups/_test/index.test.ts +1 -0
- package/src/trusted-setups/index.ts +21 -0
- package/src/trusted-setups/internal/paths.ts +4 -1
- package/src/trusted-setups/internal/setups/mainnet.source.json +7 -0
- package/src/trusted-setups/internal/setups/mainnet.ts +16 -0
- package/src/version.ts +1 -1
- package/src/wasm/Engine.ts +9 -6
- package/src/wasm/Hash.ts +10 -0
- package/src/wasm/Keystore.bench.ts +26 -0
- package/src/wasm/Keystore.ts +32 -14
- package/src/wasm/Kzg.bench.ts +63 -0
- package/src/wasm/Kzg.ts +518 -0
- package/src/wasm/Secp256k1.bench.ts +79 -0
- package/src/wasm/Secp256k1.ts +248 -0
- package/src/wasm/_test/Engine.test-d.ts +2 -0
- package/src/wasm/_test/Engine.test.ts +5 -0
- package/src/wasm/_test/Hash.browser.test.ts +31 -0
- package/src/wasm/_test/Hash.test-d.ts +17 -0
- package/src/wasm/_test/Hash.test.ts +252 -3
- package/src/wasm/_test/Keystore.browser.test.ts +31 -0
- package/src/wasm/_test/Keystore.fuzz.ts +50 -0
- package/src/wasm/_test/Keystore.test-d.ts +10 -1
- package/src/wasm/_test/Keystore.test.ts +289 -4
- package/src/wasm/_test/Kzg.test-d.ts +19 -0
- package/src/wasm/_test/Kzg.test.ts +220 -0
- package/src/wasm/_test/Runtime.test.ts +9 -0
- package/src/wasm/_test/Secp256k1.test-d.ts +35 -0
- package/src/wasm/_test/Secp256k1.test.ts +354 -0
- package/src/wasm/index.ts +46 -1
- package/src/wasm/internal/blake3.ts +23 -2
- package/src/wasm/internal/blake3.wasm.ts +4 -1
- package/src/wasm/internal/hash.ts +27 -1
- package/src/wasm/internal/hashState.ts +154 -0
- package/src/wasm/internal/hashes.ts +56 -15
- package/src/wasm/internal/hashes.wasm.ts +15 -3
- package/src/wasm/internal/instantiate.ts +29 -9
- package/src/wasm/internal/keystore.ts +19 -0
- package/src/wasm/internal/kzg.ts +50 -0
- package/src/wasm/internal/kzg.wasm.ts +11 -0
- package/src/wasm/internal/scrypt.ts +131 -0
- package/src/wasm/internal/scrypt.wasm.ts +17 -0
- package/src/wasm/internal/secp256k1.ts +62 -0
- package/src/wasm/internal/secp256k1.wasm.ts +11 -0
- package/src/webauthn/Authentication.ts +4 -0
- package/src/webauthn/Registration.ts +2 -0
- package/src/webauthn/Types.ts +32 -2
- package/src/webauthn/_test/Authentication.test.ts +123 -1
- package/src/webauthn/_test/Registration.test.ts +26 -6
- package/src/webauthn/_test/WebAuthn.browser.test.ts +28 -0
- package/src/webauthn/internal/utils.ts +41 -8
- package/wasm/vendor/c-kzg-4844/LICENSE +201 -0
- package/wasm/vendor/c-kzg-4844/blst/LICENSE +201 -0
- package/src/trusted-setups/internal/setups/mainnet.txt +0 -4163
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { wasmBase64 } from './blake3.wasm.js'
|
|
1
|
+
import { blake3StateSize, wasmBase64 } from './blake3.wasm.js'
|
|
2
|
+
import * as hashState from './hashState.js'
|
|
2
3
|
import * as internal from './instantiate.js'
|
|
3
4
|
|
|
4
5
|
const digestSize = 32
|
|
@@ -10,8 +11,16 @@ export type Exports = {
|
|
|
10
11
|
zero(ptr: number, length: number): void
|
|
11
12
|
}
|
|
12
13
|
|
|
14
|
+
/** Exports supplied for incremental BLAKE3 states. @internal */
|
|
15
|
+
export type StateExports = {
|
|
16
|
+
blake3_finalize(state: number, out: number): void
|
|
17
|
+
blake3_init(state: number): void
|
|
18
|
+
blake3_update(state: number, input: number, inputLength: number): void
|
|
19
|
+
zero(ptr: number, length: number): void
|
|
20
|
+
}
|
|
21
|
+
|
|
13
22
|
const instantiate = /*#__PURE__*/ internal.memoize(() =>
|
|
14
|
-
internal.instantiate<Exports>(wasmBase64),
|
|
23
|
+
internal.instantiate<Exports & StateExports>(wasmBase64),
|
|
15
24
|
)
|
|
16
25
|
|
|
17
26
|
/** Returns the one memoized BLAKE3 instance shared by its providers. */
|
|
@@ -43,3 +52,15 @@ export function hash(
|
|
|
43
52
|
module.exports.zero(inputPtr, size)
|
|
44
53
|
}
|
|
45
54
|
}
|
|
55
|
+
|
|
56
|
+
/** Creates an incremental BLAKE3 state. @internal */
|
|
57
|
+
export function create(module: internal.Module<Exports & StateExports>) {
|
|
58
|
+
return hashState.create(module, {
|
|
59
|
+
digestSize,
|
|
60
|
+
finalize: (exports, state, out) => exports.blake3_finalize(state, out),
|
|
61
|
+
init: (exports, state) => exports.blake3_init(state),
|
|
62
|
+
stateSize: blake3StateSize,
|
|
63
|
+
update: (exports, state, input, inputLength) =>
|
|
64
|
+
exports.blake3_update(state, input, inputLength),
|
|
65
|
+
})
|
|
66
|
+
}
|
|
@@ -8,4 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
/** Base64-encoded WASM binary. */
|
|
10
10
|
export const wasmBase64 =
|
|
11
|
-
'AGFzbQEAAAABNwdgA39/fwBgBX9/f35/AGAGf39/fn9/AX9gBX9/f39/AGAKf39/f35/f39/fwBgAAF/YAJ/fwADCAcAAQIDBAUGBQYBAQKAgAQGCAF/AUGQiAQLBysEBm1lbW9yeQIAC2JsYWtlM19oYXNoAAAEemVybwAGCWhlYXBfYmFzZQAFCq6hAQeQUAJJfwV+IwBB8BFrIgMkACADQQA6AJgBIANBADoAkgEgA0EAOwGQASADQgA3A4gBIANCADcDgAEgA0IANwN4IANCADcDcCADQgA3A2ggA0IANwNgIANCADcDWCADQgA3A1AgA0IANwNIIANCq7OP/JGjs/DbADcDQCADQv+kuYjFkdqCm383AzggA0Ly5rvjo6f9p6V/NwMwIANC58yn0NbQ67O7fzcDKCADQquzj/yRo7Pw2wA3AyAgA0L/pLmIxZHagpt/NwMYIANC8ua746On/aelfzcDECADQufMp9DW0Ouzu383AwgCQAJAAkAgAQRAAkAgAUGBCE8EQCADQagRaiERIANBqA9qIRwgA0GYEGohHSADQZkBaiEKIAMpA0ghTANAIExCCoYhTUEBIAFBAXJnQR9zdCEEA0AgBCIGQQF2IQQgTSAGQQFrrYNCAFINAAsgBkEKdq0hTQJAIAZBgAhNBEAgAyADKAIINgLwDyADIAMpAgw3AvQPIAMgAykCFDcC/A8gAyADKQIcNwKEECADIAMoAiQ2AowQIAMgAy0AkgE6ANoQIANCADcDmBAgA0IANwOgECADQgA3A6gQIANCADcDsBAgA0IANwO4ECADQgA3A8AQIANCADcDyBAgA0IANwPQEEEAIQkgA0EAOwHYECADIEw3A5AQIAAhBAJAQcAAIAYiBUHBAE8EfwNAIANB8A9qIARBwAAgAykDkBAgAy0A2hAgCUH/AXFFchABIAMgAy0A2RBBAWoiCToA2RAgBEFAayEEIAVBQGoiBUHAAEsNAAsgAy0A2BAFQQALIghrIgcgBSAFIAdLGyIHRQ0AIAggHWohBQJAIAdBB3EiCUUEQCAHIQgMAQsgB0H4AHEhCANAIAUgBC0AADoAACAFQQFqIQUgBEEBaiEEIAlBAWsiCQ0ACwsgB0EISQ0AA0AgBSAELQAAOgAAIAUgBC0AAToAASAFIAQtAAI6AAIgBSAELQADOgADIAUgBC0ABDoABCAFIAQtAAU6AAUgBSAELQAGOgAGIAUgBC0ABzoAByAFQQhqIQUgBEEIaiEEIAhBCGsiCA0ACwsgAyADLQDYECAHaiIEOgDYECADIAMvAfAPOwGADyADIAMpAfIPNwGCDyADIAMpAfoPNwGKDyADIAMoAYIQNgGSDyADIAMvAYYQOwGWDyADIAMtAIgQOgCYDyADLQDaECEFIAMtANkQIQcgAykDkBAhTCADIAMtAIkQOgCZDyADIAMtAIoQOgCaDyADIAMtAIsQOgCbDyADIAMtAIwQOgCcDyADIAMtAI0QOgCdDyADIAMtAI4QOgCeDyADIAMtAI8QOgCfDyADIAMtAJgQOgCoDyADIAMtAJkQOgCpDyADIAMtAJoQOgCqDyADIAMtAJsQOgCrDyADIAMtAJwQOgCsDyADIAMtAJ0QOgCtDyADIAMtAJ4QOgCuDyADIAMtAJ8QOgCvDyADIAMtAKAQOgCwDyADIAMtAKEQOgCxDyADIAMtAKIQOgCyDyADIAMtAKMQOgCzDyADIAMtAKQQOgC0DyADIAMtAKUQOgC1DyADIAMtAKYQOgC2DyADIAMtAKcQOgC3DyADIAMtAKgQOgC4DyADIAMtAKkQOgC5DyADIAMtAKoQOgC6DyADIAMtAKsQOgC7DyADIAMtAKwQOgC8DyADIAMtAK0QOgC9DyADIAMtAK4QOgC+DyADIAMtAK8QOgC/DyADIAMtALAQOgDADyADIAMtALEQOgDBDyADIAMtALIQOgDCDyADIAMtALMQOgDDDyADIAMtALQQOgDEDyADIAMtALUQOgDFDyADIAMtALYQOgDGDyADIAMtALcQOgDHDyADIAMtALgQOgDIDyADIAMtALkQOgDJDyADIAMtALoQOgDKDyADIAMtALsQOgDLDyADIAMtALwQOgDMDyADIAMtAL0QOgDNDyADIAMtAL4QOgDODyADIAMtAL8QOgDPDyADIAMtAMAQOgDQDyADIAMtAMEQOgDRDyADIAMtAMIQOgDSDyADIAMtAMMQOgDTDyADIAMtAMQQOgDUDyADIAMtAMUQOgDVDyADIAMtAMYQOgDWDyADIAMtAMcQOgDXDyADIAMtAMgQOgDYDyADIAMtAMkQOgDZDyADIAMtAMoQOgDaDyADIAMtAMsQOgDbDyADIAMtAMwQOgDcDyADIAMtAM0QOgDdDyADIAMtAM4QOgDeDyADIAMtAM8QOgDfDyADIAMtANAQOgDgDyADIAMtANEQOgDhDyADIAMtANIQOgDiDyADIAMtANMQOgDjDyADIAMtANQQOgDkDyADIAMtANUQOgDlDyADIAMtANYQOgDmDyADLQDXECEIIAMgBDoA6A8gAyAIOgDnDyADIEw3A6APIAMgBSAHRXJBAnIiBToA6Q8gAyADLQCADzoAgBEgAyADLQCBDzoAgREgAyADLQCCDzoAghEgAyADLQCDDzoAgxEgAyADLQCEDzoAhBEgAyADLQCFDzoAhREgAyADLQCGDzoAhhEgAyADLQCHDzoAhxEgAyADLQCIDzoAiBEgAyADLQCJDzoAiREgAyADLQCKDzoAihEgAyADLQCLDzoAixEgAyADLQCMDzoAjBEgAyADLQCNDzoAjREgAyADLQCODzoAjhEgAyADLQCPDzoAjxEgAyADLQCQDzoAkBEgAyADLQCRDzoAkREgAyADLQCSDzoAkhEgAyADLQCTDzoAkxEgAyADLQCUDzoAlBEgAyADLQCVDzoAlREgAyADLQCWDzoAlhEgAyADLQCXDzoAlxEgAyADLQCYDzoAmBEgAyADLQCZDzoAmREgAyADLQCaDzoAmhEgAyADLQCbDzoAmxEgAyADLQCcDzoAnBEgAyADLQCdDzoAnREgAyADLQCeDzoAnhEgAyADLQCfDzoAnxEgA0GAEWogHCAEQf8BcSBMIAVB/wFxEAEgAygCnBEiBUEYdiESIAMoApgRIgdBGHYhEyADKAKUESIIQRh2IRQgAygCkBEiCUEYdiEVIAMoAowRIgtBGHYhFiADKAKIESIMQRh2IRcgAygChBEiDUEYdiEYIAMoAoARIg5BGHYhGSADLQCYASIEIEx7pyIaSwRAA0AgAyADKAIINgKAESADIAMpAgw3AoQRIAMgAykCFDcCjBEgAyADKQIcNwKUESADIAMoAiQ2ApwRIAMgBEEFdCAKakFAaiIEKAAANgKoESADIAQvAAQ7AawRIAMgBC0ABjoArhEgAy0AkgEhDyADIAQtAAc6AK8RIAMgBCgACDYCsBEgAyAEKQAMNwK0ESADIAQpABQ3ArwRIAMgBCkAHDcCxBEgAyAEKQAkNwLMESADIAQoACw2AtQRIAMgBC8AMDsB2BEgAyAELQAyOgDaESADQcAAOgDoESADIA9BBHIiDzoA6REgA0IANwOgESADIAQtADM6ANsRIAMgBCgANDYC3BEgAyAEKQA4NwPgESADIAMtAIAROgDgECADIAMtAIEROgDhECADIAMtAIIROgDiECADIAMtAIMROgDjECADIAMtAIQROgDkECADIAMtAIUROgDlECADIAMtAIYROgDmECADIAMtAIcROgDnECADIAMtAIgROgDoECADIAMtAIkROgDpECADIAMtAIoROgDqECADIAMtAIsROgDrECADIAMtAIwROgDsECADIAMtAI0ROgDtECADIAMtAI4ROgDuECADIAMtAI8ROgDvECADIAMtAJAROgDwECADIAMtAJEROgDxECADIAMtAJIROgDyECADIAMtAJMROgDzECADIAMtAJQROgD0ECADIAMtAJUROgD1ECADIAMtAJYROgD2ECADIAMtAJcROgD3ECADIAMtAJgROgD4ECADIAMtAJkROgD5ECADIAMtAJoROgD6ECADIAMtAJsROgD7ECADIAMtAJwROgD8ECADIAMtAJ0ROgD9ECADIAMtAJ4ROgD+ECADIAMtAJ8ROgD/ECADQeAQaiARQcAAQgAgDxABIAQgAygC/BA2ABwgBCADKALgEDYAACAEIAMpAuQQNwAEIAQgAykC7BA3AAwgBCADKQL0EDcAFCADIAMtAJgBQQFrIgQ6AJgBIBogBEH/AXEiBEkNAAsLIAogBEEFdGoiBCASOgAfIAQgBUEQdjoAHiAEIAVBCHY6AB0gBCAFOgAcIAQgEzoAGyAEIAdBEHY6ABogBCAHQQh2OgAZIAQgBzoAGCAEIBQ6ABcgBCAIQRB2OgAWIAQgCEEIdjoAFSAEIAg6ABQgBCAVOgATIAQgCUEQdjoAEiAEIAlBCHY6ABEgBCAJOgAQIAQgFjoADyAEIAtBEHY6AA4gBCALQQh2OgANIAQgCzoADCAEIBc6AAsgBCAMQRB2OgAKIAQgDEEIdjoACSAEIAw6AAggBCAYOgAHIAQgDUEQdjoABiAEIA1BCHY6AAUgBCANOgAEIAQgGToAAyAEIA5BEHY6AAIgBCAOQQh2OgABIAQgDjoAAAwBCyAAIAYgA0EIaiBMIAMtAJIBIANBgBFqEAJBA08NByADLQC/ESEFIAMtAL4RIQcgAy0AvREhCCADLQC8ESEJIAMtALsRIQsgAy0AuhEhDCADLQC5ESENIAMtALgRIQ4gAy0AtxEhEiADLQC2ESETIAMtALURIRQgAy0AtBEhFSADLQCzESEWIAMtALIRIRcgAy0AsREhGCADLQCwESEZIAMtAK8RIRogAy0ArhEhDyADLQCtESEeIAMtAKwRIR8gAy0AqxEhICADLQCqESEhIAMtAKkRISIgAy0AqBEhIyADLQCnESEkIAMtAKYRISUgAy0ApREhJiADLQCkESEnIAMtAKMRISggAy0AohEhKSADLQChESEqIAMtAKARISsgAy0AnxEhGyADLQCeESEQIAMtAJ0RISwgAy0AnBEhLSADLQCbESEuIAMtAJoRIS8gAy0AmREhMSADLQCYESEyIAMtAJcRITMgAy0AlhEhNCADLQCVESE1IAMtAJQRITYgAy0AkxEhNyADLQCSESE4IAMtAJERITkgAy0AkBEhOiADLQCPESE7IAMtAI4RITwgAy0AjREhPSADLQCMESE+IAMtAIsRIT8gAy0AihEhQCADLQCJESFBIAMtAIgRIUIgAy0AhxEhQyADLQCGESFEIAMtAIURIUUgAy0AhBEhRiADLQCDESFHIAMtAIIRIUggAy0AgREhSSADLQCAESFKIAMtAJgBIgQgAykDSHunIktLBEADQCADIAMoAgg2AoARIAMgAykCDDcChBEgAyADKQIUNwKMESADIAMpAhw3ApQRIAMgAygCJDYCnBEgAyAEQQV0IApqQUBqIgQoAAA2AqgRIAMgBC8ABDsBrBEgAyAELQAGOgCuESADLQCSASEwIAMgBC0ABzoArxEgAyAEKAAINgKwESADIAQpAAw3ArQRIAMgBCkAFDcCvBEgAyAEKQAcNwLEESADIAQpACQ3AswRIAMgBCgALDYC1BEgAyAELwAwOwHYESADIAQtADI6ANoRIANBwAA6AOgRIAMgMEEEciIwOgDpESADQgA3A6ARIAMgBC0AMzoA2xEgAyAEKAA0NgLcESADIAQpADg3A+ARIAMgAy0AgBE6APAPIAMgAy0AgRE6APEPIAMgAy0AghE6APIPIAMgAy0AgxE6APMPIAMgAy0AhBE6APQPIAMgAy0AhRE6APUPIAMgAy0AhhE6APYPIAMgAy0AhxE6APcPIAMgAy0AiBE6APgPIAMgAy0AiRE6APkPIAMgAy0AihE6APoPIAMgAy0AixE6APsPIAMgAy0AjBE6APwPIAMgAy0AjRE6AP0PIAMgAy0AjhE6AP4PIAMgAy0AjxE6AP8PIAMgAy0AkBE6AIAQIAMgAy0AkRE6AIEQIAMgAy0AkhE6AIIQIAMgAy0AkxE6AIMQIAMgAy0AlBE6AIQQIAMgAy0AlRE6AIUQIAMgAy0AlhE6AIYQIAMgAy0AlxE6AIcQIAMgAy0AmBE6AIgQIAMgAy0AmRE6AIkQIAMgAy0AmhE6AIoQIAMgAy0AmxE6AIsQIAMgAy0AnBE6AIwQIAMgAy0AnRE6AI0QIAMgAy0AnhE6AI4QIAMgAy0AnxE6AI8QIANB8A9qIBFBwABCACAwEAEgBCADKAKMEDYAHCAEIAMoAvAPNgAAIAQgAykC9A83AAQgBCADKQL8DzcADCAEIAMpAoQQNwAUIAMgAy0AmAFBAWsiBDoAmAEgSyAEQf8BcSIESQ0ACwsgCiAEQQV0aiIEIBs6AB8gBCAQOgAeIAQgLDoAHSAEIC06ABwgBCAuOgAbIAQgLzoAGiAEIDE6ABkgBCAyOgAYIAQgMzoAFyAEIDQ6ABYgBCA1OgAVIAQgNjoAFCAEIDc6ABMgBCA4OgASIAQgOToAESAEIDo6ABAgBCA7OgAPIAQgPDoADiAEID06AA0gBCA+OgAMIAQgPzoACyAEIEA6AAogBCBBOgAJIAQgQjoACCAEIEM6AAcgBCBEOgAGIAQgRToABSAEIEY6AAQgBCBHOgADIAQgSDoAAiAEIEk6AAEgBCBKOgAAIAMgAy0AmAFBAWoiBDoAmAEgBEH/AXEiBCADKQNIIE1CAYh8e6ciG0sEQANAIAMgAygCCDYCgBEgAyADKQIMNwKEESADIAMpAhQ3AowRIAMgAykCHDcClBEgAyADKAIkNgKcESADIARBBXQgCmpBQGoiBCgAADYCqBEgAyAELwAEOwGsESADIAQtAAY6AK4RIAMtAJIBIRAgAyAELQAHOgCvESADIAQoAAg2ArARIAMgBCkADDcCtBEgAyAEKQAUNwK8ESADIAQpABw3AsQRIAMgBCkAJDcCzBEgAyAEKAAsNgLUESADIAQvADA7AdgRIAMgBC0AMjoA2hEgA0HAADoA6BEgAyAQQQRyIhA6AOkRIANCADcDoBEgAyAELQAzOgDbESADIAQoADQ2AtwRIAMgBCkAODcD4BEgAyADLQCAEToA8A8gAyADLQCBEToA8Q8gAyADLQCCEToA8g8gAyADLQCDEToA8w8gAyADLQCEEToA9A8gAyADLQCFEToA9Q8gAyADLQCGEToA9g8gAyADLQCHEToA9w8gAyADLQCIEToA+A8gAyADLQCJEToA+Q8gAyADLQCKEToA+g8gAyADLQCLEToA+w8gAyADLQCMEToA/A8gAyADLQCNEToA/Q8gAyADLQCOEToA/g8gAyADLQCPEToA/w8gAyADLQCQEToAgBAgAyADLQCREToAgRAgAyADLQCSEToAghAgAyADLQCTEToAgxAgAyADLQCUEToAhBAgAyADLQCVEToAhRAgAyADLQCWEToAhhAgAyADLQCXEToAhxAgAyADLQCYEToAiBAgAyADLQCZEToAiRAgAyADLQCaEToAihAgAyADLQCbEToAixAgAyADLQCcEToAjBAgAyADLQCdEToAjRAgAyADLQCeEToAjhAgAyADLQCfEToAjxAgA0HwD2ogEUHAAEIAIBAQASAEIAMoAowQNgAcIAQgAygC8A82AAAgBCADKQL0DzcABCAEIAMpAvwPNwAMIAQgAykChBA3ABQgAyADLQCYAUEBayIEOgCYASAbIARB/wFxIgRJDQALCyAKIARBBXRqIgQgBToAHyAEIAc6AB4gBCAIOgAdIAQgCToAHCAEIAs6ABsgBCAMOgAaIAQgDToAGSAEIA46ABggBCASOgAXIAQgEzoAFiAEIBQ6ABUgBCAVOgAUIAQgFjoAEyAEIBc6ABIgBCAYOgARIAQgGToAECAEIBo6AA8gBCAPOgAOIAQgHjoADSAEIB86AAwgBCAgOgALIAQgIToACiAEICI6AAkgBCAjOgAIIAQgJDoAByAEICU6AAYgBCAmOgAFIAQgJzoABCAEICg6AAMgBCApOgACIAQgKjoAASAEICs6AAALIAMgAy0AmAFBAWoiBDoAmAEgAyADKQNIIE18Ikw3A0ggACAGaiEAIAEgBmsiAUGACEsNAAsgAUUNAQsgA0HQAGohCCADQShqIQoCQCADLQCQASIEBEBBwAAgBGsiBiABIAEgBksbIQUCQCAEQcAARg0AIAQgCGohBAJAIAVBB3EiCUUEQCAAIQYgBSEHDAELIAVB+A9xIQcgACEGA0AgBCAGLQAAOgAAIARBAWohBCAGQQFq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sBEgAyADKQNgNwO4ESADIAMpA2g3A8ARIAMgAykDcDcDyBEgAyADKQN4NwPQESADIAMpA4ABNwPYESADIAMpA4gBNwPgESADIAMoAfAPNgHqESADIAMtAJIBIABFckECcjoA6REgBEH/AXEhBAwBCyADQe4RaiADQfQPai8BADsBACADQgA3A6ARIANBwAA6AOgRIAMgAykDCDcDgBEgAyADKQMQNwOIESADIAMpAxg3A5ARIAMgAykDIDcDmBEgAyADLQCSAUEEcjoA6REgAyADKAHwDzYB6hEgAyADQQhqIARB/wFxQQJrIgRBBXRqIgBBkQFqKQAANwOoESADIABBmQFqKQAANwOwESADIABBoQFqKQAANwO4ESADIABBqQFqKQAANwPAESADIABBsQFqKQAANwPIESADIABBuQFqKQAANwPQESADIABBwQFqKQAANwPYESADIABByQFqKQAANwPgESAERQ0BCyAEQQV0IQEgA0HqEWohLCADQagRaiEvIAMtAOkRIS0gAykDoBEhTCADLQDoESEuIAMtAJ8RIQsgAy0AnhEhDCADLQCdESENIAMtAJwRIQ4gAy0AmxEhHCADLQCaESEdIAMtAJkRIRIgAy0AmBEhEyADLQCXESEUIAMtAJYRIRUgAy0AlREhFiADLQCUESEXIAMtAJMRIRggAy0AkhEhGSADLQCRESEaIAMtAJARIQ8gAy0AjxEhHiADLQCOESEfIAMtAI0RISAgAy0AjBEhISADLQCLESEiIAMtAIoRISMgAy0AiREhJCADLQCIESElIAMtAIcRISYgAy0AhhEhJyADLQCFESEoIAMtAIQRISkgAy0AgxEhKiADLQCCESErIAMtAIERIRsgAy0AgBEhEANAIANBCGogAWoiAEHxAGopAAAhTSAAQfkAaikAACFOIABBgQFqKQAAIU8gAEGJAWopAAAhUCADIAs6AI8QIAMgDDoAjhAgAyANOgCNECADIA46AIwQIAMgHDoAixAgAyAdOgCKECADIBI6AIkQIAMgEzoAiBAgAyAUOgCHECADIBU6AIYQIAMgFjoAhRAgAyAXOgCEECADIBg6AIMQIAMgGToAghAgAyAaOgCBECADIA86AIAQIAMgHjoA/w8gAyAfOgD+DyADICA6AP0PIAMgIToA/A8gAyAiOgD7DyADICM6APoPIAMgJDoA+Q8gAyAlOgD4DyADICY6APcPIAMgJzoA9g8gAyAoOgD1DyADICk6APQPIAMgKjoA8w8gAyArOgDyDyADIBs6APEPIAMgEDoA8A8gA0HwD2ogLyAuIEwgLRABIAMoAvAPIQAgAygC9A8hBiADKAL4DyEFIAMoAvwPIQcgAygCgBAhCCADKAKEECEKIAMoAogQIQkgAygCjBAhESADLQAIIRAgAy0ACSEbIAMtAAohKyADLQALISogAy0ADCEpIAMtAA0hKCADLQAOIScgAy0ADyEmIAMtABAhJSADLQARISQgAy0AEiEjIAMtABMhIiADLQAUISEgAy0AFSEgIAMtABYhHyADLQAXIR4gAy0AGCEPIAMtABkhGiADLQAaIRkgAy0AGyEYIAMtABwhFyADLQAdIRYgAy0AHiEVIAMtAB8hFCADLQAgIRMgAy0AISESIAMtACIhHSADLQAjIRwgAy0AJCEOIAMtACUhDSADLQAmIQwgAy0AJyELIAMgAy0AkgFBBHIiLToA6RFBwAAhLiADQcAAOgDoESADIBFBGHY6AOcRIAMgEUEQdjoA5hEgAyARQQh2OgDlESADIBE6AOQRIAMgCUEYdjoA4xEgAyAJQRB2OgDiESADIAlBCHY6AOERIAMgCToA4BEgAyAKQRh2OgDfESADIApBEHY6AN4RIAMgCkEIdjoA3REgAyAKOgDcESADIAhBGHY6ANsRIAMgCEEQdjoA2hEgAyAIQQh2OgDZESADIAg6ANgRIAMgB0EYdjoA1xEgAyAHQRB2OgDWESADIAdBCHY6ANURIAMgBzoA1BEgAyAFQRh2OgDTESADIAVBEHY6ANIRIAMgBUEIdjoA0REgAyAFOgDQESADIAZBGHY6AM8RIAMgBkEQdjoAzhEgAyAGQQh2OgDNESADIAY6AMwRIAMgAEEYdjoAyxEgAyAAQRB2OgDKESADIABBCHY6AMkRIAMgADoAyBEgAyBQNwPAESADIE83A7gRIAMgTjcDsBEgAyBNNwOoEUIAIUwgA0IANwOgESADIAs6AJ8RIAMgDDoAnhEgAyANOgCdESADIA46AJwRIAMgHDoAmxEgAyAdOgCaESADIBI6AJkRIAMgEzoAmBEgAyAUOgCXESADIBU6AJYRIAMgFjoAlREgAyAXOgCUESADIBg6AJMRIAMgGToAkhEgAyAaOgCRESADIA86AJARIAMgHjoAjxEgAyAfOgCOESADICA6AI0RIAMgIToAjBEgAyAiOgCLESADICM6AIoRIAMgJDoAiREgAyAlOgCIESADICY6AIcRIAMgJzoAhhEgAyAoOgCFESADICk6AIQRIAMgKjoAgxEgAyArOgCCESADIBs6AIERIAMgEDoAgBEgLEEEaiADQfQPai8BADsBACAsIAMoAfAPNgEAIAFBIGshASAEQQFrIgQNAAsLIANBgBFqIANBqBFqIAMtAOgRIAMtAOkRQQhyIANB8A9qEAMLIAIgAy0A8A86AAAgAiADKADxDzYAASACIAMpAPUPNwAFIAIgAykA/Q83AA0gAiADKQCFEDcAFSACIAMvAI0QOwAdIAIgAy0AjxA6AB9BACEGA0AgA0EIaiAGaiIAQQA6AAAgAEEBakEAOgAAIABBAmpBADoAACAAQQNqQQA6AAAgAEEEakEAOgAAIABBBWpBADoAACAAQQZqQQA6AAAgAEEHakEAOgAAIAZB8A5HBEAgAEEIakEAOgAAIABBCWpBADoAACAAQQpqQQA6AAAgAEELakEAOgAAIABBDGpBADoAACAAQQ1qQQA6AAAgAEEOakEAOgAAIABBD2pBADoAACAGQRBqIQYMAQsLIANB8BFqJAAPCwAL1RsBIX8gAiAAKAIYIhYgASgAECICIAAoAghqaiIdc0EQdyIbQfLmu+MDaiIeIBYgHnNBFHciGSABKAAUIhYgHWpqIiIgG3NBGHciJGohHCAAKAIUIh4gASgACCIdIAAoAgRqaiIjIANCIIinc0EQdyIgQfui4aQEayEYIAAoAhAiHyABKAAAIhsgACgCAGpqIgUgA6dzQRB3Ig9B58yn0AZqIRogGSAcc0EZdyINIBggHnNBFHciByABKAAMIh4gI2pqIgogASgAKCIjamoiCCAPIBogH3NBFHciBiABKAAEIhkgBWpqIg9zQRh3IgtzQRB3IhEgBCAAKAIcIh8gASgAGCIEIAAoAgxqaiIFc0EQdyIJQcaVwNUFayIMIAkgDCAfc0EUdyIJIAEoABwiHyAFamoiDHNBGHciEGoiDmohBSAcIAogIHNBGHciICAYaiIKIAdzQRl3IhggASgAICIcIA9qaiIPIBBzQRB3IgdqIhAgECAYc0EUdyIQIAEoACQiGCAPamoiEiAHc0EYdyITaiEPICAgCSAOc0EZdyIgICIgASgAMCIiamoiCXNBEHciDiALIBpqIgtqIQcgDyAQc0EZdyIQIAUgDXNBFHciDSABKAAsIhogCGpqIgggHmpqIhQgDiAHICBzQRR3Ig4gASgANCIgIAlqaiIJc0EYdyIVc0EQdyIXIAogJCAGIAtzQRl3IgogASgAOCIkIAxqaiIGc0EQdyILaiIMIAsgCiAMc0EUdyILIAEoADwiASAGamoiBnNBGHciDGoiIWohCiAPIA0gCCARc0EYdyIPIAVqIg1zQRl3IgUgCSAfamoiCCAMc0EQdyIRaiIJIBEgBSAJc0EUdyIRIAggG2pqIghzQRh3IglqIQUgCyAhc0EZdyILIBIgHWpqIgwgD3NBEHciEiAHIBVqIgdqIQ8gBSARc0EZdyIRIAogEHNBFHciECAUICNqaiIUICJqaiIVIAsgD3NBFHciCyAEIAxqaiIMIBJzQRh3IhJzQRB3IiEgDSAHIA5zQRl3IgcgAiAGamoiDSATc0EQdyIGaiIOIAYgByAOc0EUdyIGIA0gIGpqIg1zQRh3Ig5qIhNqIQcgBSAMIBlqIAogFCAXc0EYdyIKaiIMIBBzQRl3IgVqIhAgDnNBEHciDmoiFCAOIAUgFHNBFHciDiAQIBpqaiIQc0EYdyIUaiEFIAogBiATc0EZdyIKIAggGGpqIghzQRB3IgYgDyASaiISaiEPIAUgDnNBGXciDiAHIBFzQRR3IhEgFSAWamoiEyAjamoiFSAGIAogD3NBFHciBiAIICRqaiIIc0EYdyIXc0EQdyIlIAsgEnNBGXciCiABIA1qaiINIAlzQRB3IgsgDGoiCSALIAkgCnNBFHciCyANIBxqaiINc0EYdyIJaiIMaiEKIAUgCCAgaiAHIBMgIXNBGHciB2oiCCARc0EZdyIFaiIRIAlzQRB3IglqIhIgCSAFIBJzQRR3IgkgESAdamoiEXNBGHciEmohBSAHIAsgDHNBGXciByAQIB5qaiILc0EQdyIMIA8gF2oiEGohDyAFIAlzQRl3IgkgCiAOc0EUdyIOIBUgImpqIhMgGGpqIhUgDCAHIA9zQRR3IgwgAiALamoiC3NBGHciF3NBEHciISAIIAYgEHNBGXciByANIB9qaiINIBRzQRB3IghqIgYgCCAGIAdzQRR3IgggDSAkamoiDXNBGHciBmoiEGohByAFIAYgCiATICVzQRh3IgpqIgYgDnNBGXciBSAEIAtqaiILc0EQdyIOaiITIA4gBSATc0EUdyIOIAsgFmpqIgtzQRh3IhNqIQUgCiAIIBBzQRl3IgogESAaamoiCHNBEHciESAPIBdqIhBqIQ8gBSAOc0EZdyIOIAcgCXNBFHciCSAVIBtqaiIUICJqaiIVIBEgCiAPc0EUdyIRIAEgCGpqIghzQRh3IhdzQRB3IiUgBiAMIBBzQRl3IgogDSAcamoiDSASc0EQdyIGaiIMIAYgCiAMc0EUdyIGIA0gGWpqIg1zQRh3IgxqIhBqIQogBSAIICRqIAcgFCAhc0EYdyIHaiIIIAlzQRl3IgVqIgkgDHNBEHciDGoiEiAMIAUgEnNBFHciDCAJIB5qaiIJc0EYdyISaiEFIAcgBiAQc0EZdyIHIAsgI2pqIgZzQRB3IgsgDyAXaiIQaiEPIAUgDHNBGXciDCAKIA5zQRR3Ig4gFSAYamoiFCAaamoiFSALIAcgD3NBFHciCyAGIB9qaiIGc0EYdyIXc0EQdyIhIAggECARc0EZdyIHIA0gIGpqIg0gE3NBEHciCGoiESAIIAcgEXNBFHciCCABIA1qaiINc0EYdyIRaiIQaiEHIAUgESACIAZqIAogFCAlc0EYdyIKaiIGIA5zQRl3IgVqIhFzQRB3Ig5qIhMgDiAFIBNzQRR3Ig4gESAbamoiEXNBGHciE2ohBSAKIAggEHNBGXciCiAJIBZqaiIIc0EQdyIJIA8gF2oiEGohDyAFIA5zQRl3Ig4gByAMc0EUdyIMIBUgHWpqIhQgGGpqIhUgCSAKIA9zQRR3IgkgCCAcamoiCHNBGHciF3NBEHciJSAGIAsgEHNBGXciCiANIBlqaiINIBJzQRB3IgZqIgsgBiAKIAtzQRR3IgYgBCANamoiDXNBGHciC2oiEGohCiAFIAsgASAIaiAHIBQgIXNBGHciB2oiCCAMc0EZdyIFaiILc0EQdyIMaiISIAwgBSASc0EUdyIMIAsgI2pqIgtzQRh3IhJqIQUgByAGIBBzQRl3IgcgESAiamoiBnNBEHciESAPIBdqIhBqIQ8gBSAMc0EZdyIMIAogDnNBFHciDiAVIBpqaiIUIBZqaiIVIBEgByAPc0EUdyIRIAYgIGpqIgZzQRh3IhdzQRB3IiEgCCAJIBBzQRl3IgcgDSAkamoiDSATc0EQdyIIaiIJIAggByAJc0EUdyIIIA0gHGpqIg1zQRh3IglqIhBqIQcgBSAJIAYgH2ogCiAUICVzQRh3IgpqIgYgDnNBGXciBWoiCXNBEHciDmoiEyAOIAUgE3NBFHciDiAJIB1qaiIJc0EYdyITaiEFIAogCCAQc0EZdyIKIAsgG2pqIghzQRB3IgsgDyAXaiIQaiEPIAUgDnNBGXciDiAHIAxzQRR3IgwgFSAeamoiFCAaamoiFSALIAogD3NBFHciCyAIIBlqaiIIc0EYdyIXc0EQdyIlIAYgECARc0EZdyIKIAQgDWpqIg0gEnNBEHciBmoiESAGIAogEXNBFHciBiACIA1qaiINc0EYdyIRaiIQaiEKIAUgESAIIBxqIAcgFCAhc0EYdyIHaiIIIAxzQRl3IgVqIhFzQRB3IgxqIhIgDCAFIBJzQRR3IgwgESAiamoiEXNBGHciEmohBSAHIAYgEHNBGXciByAJIBhqaiIGc0EQdyIJIA8gF2oiEGohDyAFIAxzQRl3IgwgCiAOc0EUdyIOIBUgFmpqIhQgG2pqIhUgCSAHIA9zQRR3IgkgBiAkamoiBnNBGHciF3NBEHciISAIIAsgEHNBGXciByABIA1qaiINIBNzQRB3IghqIgsgCCAHIAtzQRR3IgggDSAZamoiDXNBGHciC2oiEGohByAFIAsgBiAgaiAKIBQgJXNBGHciCmoiBiAOc0EZdyIFaiILc0EQdyIOaiITIA4gBSATc0EUdyIOIAsgHmpqIgtzQRh3IhNqIQUgCiAIIBBzQRl3IgogESAdamoiCHNBEHciESAPIBdqIhBqIQ8gBSAOc0EZdyIOIAcgDHNBFHciDCAVICNqaiIUIBZqaiIVIAogD3NBFHciCiAEIAhqaiIIIBFzQRh3IhFzQRB3IhcgBiAJIBBzQRl3IhYgAiANamoiDSASc0EQdyIGaiIJIAYgCSAWc0EUdyIGIA0gH2pqIg1zQRh3IglqIhBqIRYgBSAIIBlqIBQgIXNBGHciBSAHaiIHIAxzQRl3IhlqIgggCXNBEHciCWoiDCAJIAwgGXNBFHciCSAIIBhqaiIIc0EYdyIMaiEZIAUgCyAaaiAGIBBzQRl3IhpqIgVzQRB3IgYgDyARaiIPaiEYIAkgGXNBGXciCyAdIA4gFnNBFHciHSAVIBtqaiIbamoiESAYIBpzQRR3IhogASAFamoiBSAGc0EYdyIGc0EQdyIJIAogD3NBGXciASANIBxqaiIcIBNzQRB3Ig8gB2oiByAPIAEgB3NBFHciDyAEIBxqaiIEc0EYdyIcaiIHaiEBIAQgH2ogBiAYaiIfIBpzQRl3IhhqIhogDHNBEHciCiAWIBcgG3NBGHciFmoiG2ohBCAAIAEgC3NBFHciDSARICJqaiIiIAlzQRh3IgYgAWoiCyAEIBhzQRR3IhggGiAgamoiGnM2AgwgHyAWIAcgD3NBGXciFiAIIB5qaiIec0EQdyIfaiEBIAAgGSAbIB1zQRl3Ih0gBSAkamoiGyAcc0EQdyIZaiIcIBwgHXNBFHciHSAbICNqaiIbIBlzQRh3IiNqIhkgASAWc0EUdyIWIAIgHmpqIgJzNgIIIAAgBCAKIBpzQRh3IgRqIh4gInM2AgQgACABIAIgH3NBGHciAWoiAiAbczYCACAAIAIgFnNBGXcgI3M2AhwgACALIA1zQRl3IARzNgIYIAAgGSAdc0EZdyABczYCFCAAIBggHnNBGXcgBnM2AhALtBMBBn8jAEGgAmsiBiQAAkAgAUGACE0EQCAGIAA2AvwBIAZB/AFqIAFBgAhGIgpBECACIANBASAEQQFBAiAFEAQgCkEKdCIIIAFPDQEgBiAEOgBqIAZCADcDKCAGQgA3AzAgBkIANwM4IAZCADcDQCAGQgA3A0ggBkIANwNQIAZCADcDWCAGQgA3A2AgBkEAOwFoIAYgAi0AADoAACAGIAIoAAE2AAEgBiACKQAFNwAFIAYgAikADTcADSAGIAIpABU3ABUgBiACLwAdOwAdIAYgAi0AHzoAHyAGIAqtIAN8NwMgIAAgCGohAEEAIAEgChsiB0HBAE8EQANAIAYgAEHAACAGKQMgIAYtAGogCUH/AXFFchABIAYgBi0AaUEBaiIJOgBpIABBQGshACAHQUBqIgdBwABLDQALIAYtAGghCQsCQEHAACAJayICIAcgAiAHSRsiAkUNACAGQShqIAlqIQcCQCACQQdxIglFBEAgAiEIDAELIAJB+ABxIQgDQCAHIAAtAAA6AAAgB0EBaiEHIABBAWohACAJQQFrIgkNAAsLIAJBCEkNAANAIAcgACkAADcAACAHQQhqIQcgAEEIaiEAIAhBCGsiCA0ACwsgBiAGLQBoIAJqIgA6AGggBiAGLwEAOwGIASAGIAYpAQI3AYoBIAYgBikBCjcBkgEgBiAGKAESNgGaASAGIAYvARY7AZ4BIAYgBi0AGDoAoAEgBi0AaiECIAYtAGkhBCAGKQMgIQMgBiAGLQAZOgChASAGIAYtABo6AKIBIAYgBi0AGzoAowEgBiAGLQAcOgCkASAGIAYtAB06AKUBIAYgBi0AHjoApgEgBiAGLQAfOgCnASAGIAYtACg6ALABIAYgBi0AKToAsQEgBiAGLQAqOgCyASAGIAYtACs6ALMBIAYgBi0ALDoAtAEgBiAGLQAtOgC1ASAGIAYtAC46ALYBIAYgBi0ALzoAtwEgBiAGLQAwOgC4ASAGIAYtADE6ALkBIAYgBi0AMjoAugEgBiAGLQAzOgC7ASAGIAYtADQ6ALwBIAYgBi0ANToAvQEgBiAGLQA2OgC+ASAGIAYtADc6AL8BIAYgBi0AODoAwAEgBiAGLQA5OgDBASAGIAYtADo6AMIBIAYgBi0AOzoAwwEgBiAGLQA8OgDEASAGIAYtAD06AMUBIAYgBi0APjoAxgEgBiAGLQA/OgDHASAGIAYtAEA6AMgBIAYgBi0AQToAyQEgBiAGLQBCOgDKASAGIAYtAEM6AMsBIAYgBi0ARDoAzAEgBiAGLQBFOgDNASAGIAYtAEY6AM4BIAYgBi0ARzoAzwEgBiAGLQBIOgDQASAGIAYtAEk6ANEBIAYgBi0ASjoA0gEgBiAGLQBLOgDTASAGIAYtAEw6ANQBIAYgBi0ATToA1QEgBiAGLQBOOgDWASAGIAYtAE86ANcBIAYgBi0AUDoA2AEgBiAGLQBROgDZASAGIAYtAFI6ANoBIAYgBi0AUzoA2wEgBiAGLQBUOgDcASAGIAYtAFU6AN0BIAYgBi0AVjoA3gEgBiAGLQBXOgDfASAGIAYtAFg6AOABIAYgBi0AWToA4QEgBiAGLQBaOgDiASAGIAYtAFs6AOMBIAYgBi0AXDoA5AEgBiAGLQBdOgDlASAGIAYtAF46AOYBIAYgBi0AXzoA5wEgBiAGLQBgOgDoASAGIAYtAGE6AOkBIAYgBi0AYjoA6gEgBiAGLQBjOgDrASAGIAYtAGQ6AOwBIAYgBi0AZToA7QEgBiAGLQBmOgDuASAGLQBnIQggBiAAOgDwASAGIAg6AO8BIAYgAzcDqAEgBiACIARFckECciICOgDxASAGIAYtAIgBOgCAAiAGIAYtAIkBOgCBAiAGIAYtAIoBOgCCAiAGIAYtAIsBOgCDAiAGIAYtAIwBOgCEAiAGIAYtAI0BOgCFAiAGIAYtAI4BOgCGAiAGIAYtAI8BOgCHAiAGIAYtAJABOgCIAiAGIAYtAJEBOgCJAiAGIAYtAJIBOgCKAiAGIAYtAJMBOgCLAiAGIAYtAJQBOgCMAiAGIAYtAJUBOgCNAiAGIAYtAJYBOgCOAiAGIAYtAJcBOgCPAiAGIAYtAJgBOgCQAiAGIAYtAJkBOgCRAiAGIAYtAJoBOgCSAiAGIAYtAJsBOgCTAiAGIAYtAJwBOgCUAiAGIAYtAJ0BOgCVAiAGIAYtAJ4BOgCWAiAGIAYtAJ8BOgCXAiAGIAYtAKABOgCYAiAGIAYtAKEBOgCZAiAGIAYtAKIBOgCaAiAGIAYtAKMBOgCbAiAGIAYtAKQBOgCcAiAGIAYtAKUBOgCdAiAGIAYtAKYBOgCeAiAGIAYtAKcBOgCfAiAGQYACaiAGQbABaiAAQf8BcSADIAJB/wFxEAEgBSABQYAIRiIBQQV0aiIAIAYoAoACNgAAIAAgBikChAI3AAQgACAGKQKMAjcADCAAIAYpApQCNwAUIAAgBigCnAI2ABxBAkEBIAEbIQoMAQsgAEGACCABQQFrQQp2QQFyZ0Efc3QiCCACIAMgBCAGEAIhCSAAIAhqIAEgCGsgAiAIQQp2rSADfCAEIAZBwABBICAIQYAISxtqEAIgCUEBRgRAIAUgBi0AADoAACAFIAYoAAE2AAEgBSAGKQAFNwAFIAUgBikADTcADSAFIAYpABU3ABUgBSAGKQAdNwAdIAUgBigAJTYAJSAFIAYvACk7ACkgBSAGLQArOgArIAUgBi0ALDoALCAFIAYoAC02AC0gBSAGKQAxNwAxIAUgBigAOTYAOSAFIAYvAD07AD0gBSAGLQA/OgA/QQIhCgwBCyAJaiILQQJPBEAgC0ECayIAQQF2QQFqIgpBA3EhCQJAIABBBkkEQEEAIQgMAQsgCkH8////B3EhAUEAIQggBkGIAWohACAGIQcDQCAAIAc2AgAgAEEMaiAHQcABajYCACAAQQhqIAdBgAFqNgIAIABBBGogB0FAazYCACAHQYACaiEHIABBEGohACABIAhBBGoiCEcNAAsLIAkEQCAIIAlqIAYgCEEGdGohACAGQYgBaiAIQQJ0aiEHA0AgByAANgIAIABBQGshACAHQQRqIQcgCUEBayIJDQALIQgLIAhBAXQhBwsgBkGIAWogCkEBIAJCAEEAIARBBHJBAEEAIAUQBCAHIAtPDQAgBSAKQQV0aiIAIAYgCkEGdGoiAS0AADoAACAAIAEoAAE2AAEgACABKQAFNwAFIAAgASkADTcADSAAIAEpABU3ABUgACABLwAdOwAdIAAgAS0AHzoAHyAKQQFqIQoLIAZBoAJqJAAgCguyHgEhfyAAKAIUIiAgASgACCIfIAAoAgRqaiIcQRB3IhtB+6LhpARrIh0gHSAgc0EUdyIhIAEoAAwiICAcamoiIyAbc0EYdyIkaiEaIAAoAhAiGyABKAAAIhwgACgCAGpqIh1BEHciFUHnzKfQBmohGCADIAAoAhwiEiABKAAYIgMgACgCDGpqIgVzQRB3Ig9BxpXA1QVrIR4gGiAhc0EZdyINIBggG3NBFHciBiABKAAEIhsgHWpqIgkgASgAICIdamoiCCAPIBIgHnNBFHciByABKAAcIiEgBWpqIg9zQRh3IgpzQRB3IhEgAiAAKAIYIhIgASgAECICIAAoAghqaiIFc0EQdyILQfLmu+MDaiIMIAsgDCASc0EUdyILIAEoABQiEiAFamoiDHNBGHciEGoiDmohBSAaIAkgFXNBGHciFSAYaiIJIAZzQRl3IhggASgAOCIaIA9qaiIPIBBzQRB3IgZqIhAgECAYc0EUdyIQIAEoADwiGCAPamoiEyAGc0EYdyIUaiEPIBUgCyAOc0EZdyIVICMgASgAKCIjamoiC3NBEHciDiAKIB5qIgpqIQYgDyAQc0EZdyIQIAUgDXNBFHciDSABKAAkIh4gCGpqIgggH2pqIhYgDiAGIBVzQRR3Ig4gASgALCIVIAtqaiILc0EYdyIXc0EQdyIZIAkgJCAHIApzQRl3IgkgASgAMCIkIAxqaiIHc0EQdyIKaiIMIAogCSAMc0EUdyIKIAEoADQiASAHamoiB3NBGHciDGoiImohCSAPIA0gCCARc0EYdyIPIAVqIg1zQRl3IgUgCyAgamoiCCAMc0EQdyIRaiILIBEgBSALc0EUdyIRIAggI2pqIghzQRh3IgtqIQUgCiAic0EZdyIKIAIgE2pqIgwgD3NBEHciEyAGIBdqIgZqIQ8gBSARc0EZdyIRIAkgEHNBFHciECADIBZqaiIWIBtqaiIXIAogD3NBFHciCiABIAxqaiIMIBNzQRh3IhNzQRB3IiIgDSAGIA5zQRl3IgYgByAhamoiDSAUc0EQdyIHaiIOIAcgBiAOc0EUdyIHIA0gHGpqIg1zQRh3Ig5qIhRqIQYgBSAMIBhqIAkgFiAZc0EYdyIJaiIMIBBzQRl3IgVqIhAgDnNBEHciDmoiFiAOIAUgFnNBFHciDiAQIB1qaiIQc0EYdyIWaiEFIAkgByAUc0EZdyIJIAggJGpqIghzQRB3IgcgDyATaiITaiEPIAUgDnNBGXciDiAGIBFzQRR3IhEgFSAXamoiFCAgamoiFyAHIAkgD3NBFHciByAIIBJqaiIIc0EYdyIZc0EQdyIlIAogE3NBGXciCSANIB5qaiINIAtzQRB3IgogDGoiCyAKIAkgC3NBFHciCiANIBpqaiINc0EYdyILaiIMaiEJIAUgCCAjaiAGIBQgInNBGHciBmoiCCARc0EZdyIFaiIRIAtzQRB3IgtqIhMgCyAFIBNzQRR3IgsgESAkamoiEXNBGHciE2ohBSAGIAogDHNBGXciBiAQICFqaiIKc0EQdyIMIA8gGWoiEGohDyAFIAtzQRl3IgsgCSAOc0EUdyIOIAIgF2pqIhQgA2pqIhcgDCAGIA9zQRR3IgwgCiAaamoiCnNBGHciGXNBEHciIiAIIAcgEHNBGXciBiABIA1qaiINIBZzQRB3IghqIgcgCCAGIAdzQRR3IgggDSAfamoiDXNBGHciB2oiEGohBiAFIAcgCSAUICVzQRh3IglqIgcgDnNBGXciBSAKIB1qaiIKc0EQdyIOaiIUIA4gBSAUc0EUdyIOIAogG2pqIgpzQRh3IhRqIQUgCSAIIBBzQRl3IgkgESAeamoiCHNBEHciESAPIBlqIhBqIQ8gBSAOc0EZdyIOIAYgC3NBFHciCyASIBdqaiIWICNqaiIXIBEgCSAPc0EUdyIRIAggHGpqIghzQRh3IhlzQRB3IiUgByAMIBBzQRl3IgkgDSAVamoiDSATc0EQdyIHaiIMIAcgCSAMc0EUdyIHIA0gGGpqIg1zQRh3IgxqIhBqIQkgBSAIICRqIAYgFiAic0EYdyIGaiIIIAtzQRl3IgVqIgsgDHNBEHciDGoiEyAMIAUgE3NBFHciDCALIB5qaiILc0EYdyITaiEFIAYgByAQc0EZdyIGIAEgCmpqIgdzQRB3IgogDyAZaiIQaiEPIAUgDHNBGXciDCAJIA5zQRR3Ig4gFyAhamoiFiACamoiFyAKIAYgD3NBFHciCiAHIBhqaiIHc0EYdyIZc0EQdyIiIAggECARc0EZdyIGIA0gGmpqIg0gFHNBEHciCGoiESAIIAYgEXNBFHciCCANICBqaiINc0EYdyIRaiIQaiEGIAUgESAHIBtqIAkgFiAlc0EYdyIJaiIHIA5zQRl3IgVqIhFzQRB3Ig5qIhQgDiAFIBRzQRR3Ig4gAyARamoiEXNBGHciFGohBSAJIAggEHNBGXciCSALIBVqaiIIc0EQdyILIA8gGWoiEGohDyAFIA5zQRl3Ig4gBiAMc0EUdyIMIBcgHGpqIhYgJGpqIhcgCyAJIA9zQRR3IgsgCCAfamoiCHNBGHciGXNBEHciJSAHIAogEHNBGXciCSANIBJqaiINIBNzQRB3IgdqIgogByAJIApzQRR3IgcgDSAdamoiDXNBGHciCmoiEGohCSAFIAogCCAeaiAGIBYgInNBGHciBmoiCCAMc0EZdyIFaiIKc0EQdyIMaiITIAwgBSATc0EUdyIMIAogFWpqIgpzQRh3IhNqIQUgBiAHIBBzQRl3IgYgESAaamoiB3NBEHciESAPIBlqIhBqIQ8gBSAMc0EZdyIMIAkgDnNBFHciDiABIBdqaiIWICFqaiIXIBEgBiAPc0EUdyIRIAcgHWpqIgdzQRh3IhlzQRB3IiIgCCALIBBzQRl3IgYgDSAYamoiDSAUc0EQdyIIaiILIAggBiALc0EUdyIIIA0gI2pqIg1zQRh3IgtqIhBqIQYgBSALIAMgB2ogCSAWICVzQRh3IglqIgcgDnNBGXciBWoiC3NBEHciDmoiFCAOIAUgFHNBFHciDiACIAtqaiILc0EYdyIUaiEFIAkgCCAQc0EZdyIJIAogEmpqIghzQRB3IgogDyAZaiIQaiEPIAUgDnNBGXciDiAGIAxzQRR3IgwgFyAfamoiFiAeamoiFyAKIAkgD3NBFHciCiAIICBqaiIIc0EYdyIZc0EQdyIlIAcgECARc0EZdyIJIA0gHGpqIg0gE3NBEHciB2oiESAHIAkgEXNBFHciByANIBtqaiINc0EYdyIRaiIQaiEJIAUgESAIIBVqIAYgFiAic0EYdyIGaiIIIAxzQRl3IgVqIhFzQRB3IgxqIhMgDCAFIBNzQRR3IgwgESASamoiEXNBGHciE2ohBSAGIAcgEHNBGXciBiALIBhqaiIHc0EQdyILIA8gGWoiEGohDyAFIAxzQRl3IgwgCSAOc0EUdyIOIBcgGmpqIhYgAWpqIhcgCyAGIA9zQRR3IgsgByAbamoiB3NBGHciGXNBEHciIiAIIAogEHNBGXciBiANIB1qaiINIBRzQRB3IghqIgogCCAGIApzQRR3IgggDSAkamoiDXNBGHciCmoiEGohBiAFIAogAiAHaiAJIBYgJXNBGHciCWoiByAOc0EZdyIFaiIKc0EQdyIOaiIUIA4gBSAUc0EUdyIOIAogIWpqIgpzQRh3IhRqIQUgCSAIIBBzQRl3IgkgESAcamoiCHNBEHciESAPIBlqIhBqIQ8gBSAOc0EZdyIOIAYgDHNBFHciDCAXICBqaiIWIBVqaiIXIAkgD3NBFHciCSAIICNqaiIIIBFzQRh3IhFzQRB3IhkgByALIBBzQRl3IhUgDSAfamoiDSATc0EQdyIHaiILIAcgCyAVc0EUdyIHIAMgDWpqIg1zQRh3IgtqIhBqIRUgBSAIIBJqIBYgInNBGHciEiAGaiIFIAxzQRl3IgZqIgggC3NBEHciC2oiDCAGIAxzQRR3IgYgCCAcamoiCCALc0EYdyILaiEcIBIgByAQc0EZdyISIAogHWpqIgdzQRB3IgogDyARaiIPaiEdIAYgHHNBGXciBiAaIA4gFXNBFHciGiAXIBhqaiIYamoiESASIB1zQRR3IhIgAyAHamoiByAKc0EYdyIKc0EQdyIMIAUgCSAPc0EZdyIDIA0gG2pqIhsgFHNBEHciBWoiDyAFIAMgD3NBFHciBSAbIB5qaiIbc0EYdyIeaiIPaiEDIBIgCiAdaiISc0EZdyIJIBsgIGpqIg0gC3NBEHciCiAYIBlzQRh3IhggFWoiFWohICAEIAMgBnNBFHciBiARICNqaiIjIAxzQRh3IhsgA2oiHSAJICBzQRR3IgkgAiANamoiDXMiAjoACCASIAggH2ogBSAPc0EZdyIfaiISIBhzQRB3IhhqIQMgBCAcIBUgGnNBGXciHCAHICFqaiIhIB5zQRB3IhpqIh4gGiAcIB5zQRR3Ih4gASAhamoiGnNBGHciHGoiISADIB9zQRR3IhUgEiAkamoiH3MiAToABCAEIBogGCAfc0EYdyISIANqIhpzIgM6AAwgBCACQRh2OgALIAQgAkEQdjoACiAEIAJBCHY6AAkgBCABQRh2OgAHIAQgAUEQdjoABiAEIAFBCHY6AAUgBCAgIAogDXNBGHciIGoiGCAjcyIBOgAAIAQgBiAdc0EZdyAgcyICOgAUIAQgHiAhc0EZdyAScyIfOgAQIAQgA0EYdjoADyAEIANBEHY6AA4gBCADQQh2OgANIAQgAUEYdjoAAyAEIAFBEHY6AAIgBCABQQh2OgABIAQgCSAYc0EZdyAbcyIBOgAcIAQgFSAac0EZdyAccyIDOgAYIAQgAkEYdjoAFyAEIAJBEHY6ABYgBCACQQh2OgAVIAQgH0EYdjoAEyAEIB9BEHY6ABIgBCAfQQh2OgARIAQgAUEYdjoAHyAEIAFBEHY6AB4gBCABQQh2OgAdIAQgA0EYdjoAGyAEIANBEHY6ABogBCADQQh2OgAZIAQgGCAAKAIAczYAICAEICEgACgCBHM2ACQgBCAdIAAoAghzNgAoIAQgGiAAKAIMczYALCAEIBIgACgCEHM2ADAgBCAgIAAoAhRzNgA0IAQgHCAAKAIYczYAOCAEIBsgACgCHHM2ADwLnQICA38BfiMAQSBrIgokACABBEAgBiAIciELIAhBACACQQFGGyAHciAGciEMIAWtIQ0DQCAAKAIAIQUgCiADLQAAOgAAIAogAygAATYAASAKIAMpAAU3AAUgCiADKQANNwANIAogAykAFTcAFSAKIAMvAB07AB0gCiADLQAfOgAfIAogBUHAACAEIAwQASAFQUBrIQggAiEFA0ACQCAGIQcCQAJAIAVBAWsiBQ4CAgABCyALIQcLIAogCEHAACAEIAcQASAIQUBrIQgMAQsLIAkgCikDADcAACAJIAopAwg3AAggCSAKKQMQNwAQIAkgCikDGDcAGCAJQSBqIQkgAEEEaiEAIAQgDXwhBCABQQFrIgENAAsLIApBIGokAAslAQF/QYAILQAAIgAEQEGQiARBACAAGw8LQYAIQQE6AABBkIgEC5MBAQJ/AkAgAUUNAAJAIAFBB3EiA0UEQCABIQIMAQsgAUF4cSECA0AgAEEAOgAAIABBAWohACADQQFrIgMNAAsLIAFBCEkNAANAIABBADoAACAAQQA6AAEgAEEAOgACIABBADoAAyAAQQA6AAQgAEEAOgAFIABBADoABiAAQQA6AAcgAEEIaiEAIAJBCGsiAg0ACwsL'
|
|
11
|
+
'AGFzbQEAAAABOwhgAn9/AGADf39/AGABfwBgBn9/f35/fwF/YAp/f39/fn9/f39/AGAFf39/fn8AYAV/f39/fwBgAAF/Aw0MAAABAQIBAwQFBgcABQYBAQKAgAQGCAF/AUGQiAQLB1sHBm1lbW9yeQIAC2JsYWtlM19oYXNoAAIEemVybwALC2JsYWtlM19pbml0AAQNYmxha2UzX3VwZGF0ZQAFD2JsYWtlM19maW5hbGl6ZQAACWhlYXBfYmFzZQAKCv24AQwIACAAIAEQAQvgEgIvfwV+IwBBsAFrIgIkAAJAIAAtAJABIgVFBEAgAiAALQAgOgAAIAIgAC8AITsAASACIAApACM3AAMgAiAAKQArNwALIAIgACgAMzYAEyACIAAvADc7ABcgAiAALQA5OgAZIAApA0AhMSAALQCKASEFIAAtAIkBIQQgAC0AiAEhAyACIAAvADo7ARogAiAAKAA8NgIcIAIgAC0ASDoAKCACIAApAEk3ACkgAiAAKQBRNwAxIAIgACgAWTYAOSACIAAvAF07AD0gAiAALQBfOgA/IAIgAC0AYDoAQCACIAM6AGggAiAFIARFciIFQQJyOgBpIAIgMTcDICACIAAtAGE6AEEgAiAAKABiNgFCIAIgACkAZjcBRiACIAApAG43AU4gAiAAKQB2NwFWIAIgACkAfjcBXiACIAAvAIYBOwFmIAIgAkEoaiADIAVBCnJB/wFxIAJB8ABqEAkMAQsCQAJAIAAtAIgBIgQgAC0AiQEiA0EGdHIEQCACQe4AaiACQfQAai8BADsBACACIAQ6AGggAiAAKQNANwMgIAIgACkAIDcDACACIAApACg3AwggAiAAKQAwNwMQIAIgACkAODcDGCACIAApAEg3AyggAiAAKQBQNwMwIAIgACkAWDcDOCACIAApAGA3A0AgAiAAKQBoNwNIIAIgACkAcDcDUCACIAApAHg3A1ggAiAAKQCAATcDYCACIAIoAXA2AWogAiAALQCKASADRXJBAnI6AGkMAQsgAkHuAGogAkH0AGovAQA7AQAgAkIANwMgIAJBwAA6AGggAiAAKQAANwMAIAIgACkACDcDCCACIAApABA3AxAgAiAAKQAYNwMYIAIgAigBcDYBaiACIAAtAIoBQQRyOgBpIAIgACAFQQJrIgVBBXRqIgNBkQFqKQAANwMoIAIgA0GZAWopAAA3AzAgAiADQaEBaikAADcDOCACIANBqQFqKQAANwNAIAIgA0GxAWopAAA3A0ggAiADQbkBaikAADcDUCACIANBwQFqKQAANwNYIAIgA0HJAWopAAA3A2AgBUUNAQsgBUEFdCEMIAJB6gBqIS0gAkEoaiEvIAItAGkhBCACKQMgITEgAi0AaCEuIAItAB8hDSACLQAeIQ4gAi0AHSEPIAItABwhECACLQAbIREgAi0AGiESIAItABkhEyACLQAYIRQgAi0AFyEVIAItABYhFiACLQAVIRcgAi0AFCEYIAItABMhGSACLQASIRogAi0AESEbIAItABAhHCACLQAPIR0gAi0ADiEeIAItAA0hHyACLQAMISAgAi0ACyEhIAItAAohIiACLQAJISMgAi0ACCEkIAItAAchJSACLQAGISYgAi0ABSEnIAItAAQhKCACLQADISkgAi0AAiEqIAItAAEhKyACLQAAISwDQCAAIAxqIgNB8QBqKQAAITIgA0H5AGopAAAhMyADQYEBaikAACE0IANBiQFqKQAAITUgAiANOgCPASACIA46AI4BIAIgDzoAjQEgAiAQOgCMASACIBE6AIsBIAIgEjoAigEgAiATOgCJASACIBQ6AIgBIAIgFToAhwEgAiAWOgCGASACIBc6AIUBIAIgGDoAhAEgAiAZOgCDASACIBo6AIIBIAIgGzoAgQEgAiAcOgCAASACIB06AH8gAiAeOgB+IAIgHzoAfSACICA6AHwgAiAhOgB7IAIgIjoAeiACICM6AHkgAiAkOgB4IAIgJToAdyACICY6AHYgAiAnOgB1IAIgKDoAdCACICk6AHMgAiAqOgByIAIgKzoAcSACICw6AHAgAkHwAGogLyAuIDEgBEH/AXEQCCACKAJwIQMgAigCdCEEIAIoAnghBiACKAJ8IQcgAigCgAEhCCACKAKEASEJIAIoAogBIQogAigCjAEhCyAALQCKASEwIAAtAAAhLCAALQABISsgAC0AAiEqIAAtAAMhKSAALQAEISggAC0ABSEnIAAtAAYhJiAALQAHISUgAC0ACCEkIAAtAAkhIyAALQAKISIgAC0ACyEhIAAtAAwhICAALQANIR8gAC0ADiEeIAAtAA8hHSAALQAQIRwgAC0AESEbIAAtABIhGiAALQATIRkgAC0AFCEYIAAtABUh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'
|
|
12
|
+
|
|
13
|
+
/** Constant shared with the module's C source. */
|
|
14
|
+
export const blake3StateSize = 1912
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { hmacSha256ScratchSize } from './hashes.wasm.js'
|
|
1
|
+
import { hmacSha256ScratchSize, hmacSha256StateSize } from './hashes.wasm.js'
|
|
2
|
+
import * as hashState from './hashState.js'
|
|
2
3
|
import type { Module } from './instantiate.js'
|
|
3
4
|
|
|
4
5
|
/** WASM exports used by the HMAC-SHA256 loader. @internal */
|
|
@@ -14,6 +15,14 @@ export type Exports = {
|
|
|
14
15
|
zero(ptr: number, length: number): void
|
|
15
16
|
}
|
|
16
17
|
|
|
18
|
+
/** WASM exports used by incremental HMAC-SHA256 states. @internal */
|
|
19
|
+
export type StateExports = {
|
|
20
|
+
hmac_sha256_finalize(state: number, out: number): void
|
|
21
|
+
hmac_sha256_init(state: number, key: number, keyLength: number): void
|
|
22
|
+
hmac_sha256_update(state: number, input: number, inputLength: number): void
|
|
23
|
+
zero(ptr: number, length: number): void
|
|
24
|
+
}
|
|
25
|
+
|
|
17
26
|
/** Calls HMAC-SHA256 and clears its complete linear-memory region. @internal */
|
|
18
27
|
export function hmacSha256(
|
|
19
28
|
module: Module<Exports>,
|
|
@@ -48,3 +57,20 @@ export function hmacSha256(
|
|
|
48
57
|
module.exports.zero(messagePtr, end - messagePtr)
|
|
49
58
|
}
|
|
50
59
|
}
|
|
60
|
+
|
|
61
|
+
/** Creates an incremental HMAC-SHA256 state. @internal */
|
|
62
|
+
export function createHmacSha256(
|
|
63
|
+
module: Module<Exports & StateExports>,
|
|
64
|
+
key: Uint8Array,
|
|
65
|
+
) {
|
|
66
|
+
return hashState.create(module, {
|
|
67
|
+
digestSize: 32,
|
|
68
|
+
finalize: (exports, state, out) => exports.hmac_sha256_finalize(state, out),
|
|
69
|
+
init: (exports, state, input, inputLength) =>
|
|
70
|
+
exports.hmac_sha256_init(state, input, inputLength),
|
|
71
|
+
input: key,
|
|
72
|
+
stateSize: hmacSha256StateSize,
|
|
73
|
+
update: (exports, state, input, inputLength) =>
|
|
74
|
+
exports.hmac_sha256_update(state, input, inputLength),
|
|
75
|
+
})
|
|
76
|
+
}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import type * as Engine from '../../core/Engine.js'
|
|
2
|
+
import type { Module } from './instantiate.js'
|
|
3
|
+
import { MemoryError } from './instantiate.js'
|
|
4
|
+
|
|
5
|
+
/** Exports required by every incremental hash state. @internal */
|
|
6
|
+
export type Exports = {
|
|
7
|
+
zero(ptr: number, length: number): void
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/** Parameters for creating a host-owned incremental hash state. @internal */
|
|
11
|
+
export type Options<exports extends Exports> = {
|
|
12
|
+
digestSize: number
|
|
13
|
+
finalize: (exports: exports, state: number, out: number) => void
|
|
14
|
+
init: (
|
|
15
|
+
exports: exports,
|
|
16
|
+
state: number,
|
|
17
|
+
input: number,
|
|
18
|
+
inputLength: number,
|
|
19
|
+
) => void
|
|
20
|
+
input?: Uint8Array | undefined
|
|
21
|
+
stateSize: number
|
|
22
|
+
update: (
|
|
23
|
+
exports: exports,
|
|
24
|
+
state: number,
|
|
25
|
+
input: number,
|
|
26
|
+
inputLength: number,
|
|
27
|
+
) => void
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const alignment = 8
|
|
31
|
+
const wasm32Size = 0x1_0000_0000
|
|
32
|
+
|
|
33
|
+
function align(value: number) {
|
|
34
|
+
return Math.ceil(value / alignment) * alignment
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function reserve<exports extends Exports>(
|
|
38
|
+
module: Module<exports>,
|
|
39
|
+
end: number,
|
|
40
|
+
) {
|
|
41
|
+
if (!Number.isSafeInteger(end) || end > wasm32Size)
|
|
42
|
+
throw new MemoryError({
|
|
43
|
+
bytes: end,
|
|
44
|
+
cause: new RangeError('Hash workspace exceeds wasm32 memory.'),
|
|
45
|
+
})
|
|
46
|
+
module.reserve(end - module.heapBase)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Creates a hash state whose authoritative bytes live in host memory.
|
|
51
|
+
*
|
|
52
|
+
* The shared WASM instance only holds a state during one synchronous call.
|
|
53
|
+
* Every workspace is cleared before control returns to the caller.
|
|
54
|
+
*
|
|
55
|
+
* @internal
|
|
56
|
+
*/
|
|
57
|
+
export function create<exports extends Exports>(
|
|
58
|
+
module: Module<exports>,
|
|
59
|
+
options: Options<exports>,
|
|
60
|
+
): Engine.HashState {
|
|
61
|
+
const { digestSize, finalize, init, stateSize, update } = options
|
|
62
|
+
const initial = options.input ?? new Uint8Array()
|
|
63
|
+
const inputPtr = module.heapBase
|
|
64
|
+
const statePtr = align(inputPtr + initial.length)
|
|
65
|
+
const end = statePtr + stateSize
|
|
66
|
+
reserve(module, end)
|
|
67
|
+
|
|
68
|
+
let state: Uint8Array
|
|
69
|
+
try {
|
|
70
|
+
module.exports.zero(module.heapBase, end - module.heapBase)
|
|
71
|
+
const view = module.view()
|
|
72
|
+
view.set(initial, inputPtr)
|
|
73
|
+
init(module.exports, statePtr, inputPtr, initial.length)
|
|
74
|
+
state = module.view().slice(statePtr, end)
|
|
75
|
+
} finally {
|
|
76
|
+
module.exports.zero(module.heapBase, end - module.heapBase)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return fromSnapshot(module, state, {
|
|
80
|
+
digestSize,
|
|
81
|
+
finalize,
|
|
82
|
+
stateSize,
|
|
83
|
+
update,
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
type SnapshotOptions<exports extends Exports> = Pick<
|
|
88
|
+
Options<exports>,
|
|
89
|
+
'digestSize' | 'finalize' | 'stateSize' | 'update'
|
|
90
|
+
>
|
|
91
|
+
|
|
92
|
+
function fromSnapshot<exports extends Exports>(
|
|
93
|
+
module: Module<exports>,
|
|
94
|
+
state: Uint8Array,
|
|
95
|
+
options: SnapshotOptions<exports>,
|
|
96
|
+
): Engine.HashState {
|
|
97
|
+
const { digestSize, finalize, stateSize, update } = options
|
|
98
|
+
let active = true
|
|
99
|
+
|
|
100
|
+
const assertActive = () => {
|
|
101
|
+
if (!active) throw new Error('Hash state has been destroyed.')
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
const hashState: Engine.HashState = {
|
|
105
|
+
clone() {
|
|
106
|
+
assertActive()
|
|
107
|
+
return fromSnapshot(module, state.slice(), options)
|
|
108
|
+
},
|
|
109
|
+
destroy() {
|
|
110
|
+
if (!active) return
|
|
111
|
+
active = false
|
|
112
|
+
state.fill(0)
|
|
113
|
+
},
|
|
114
|
+
digestInto(output) {
|
|
115
|
+
assertActive()
|
|
116
|
+
if (output.length < digestSize)
|
|
117
|
+
throw new RangeError(
|
|
118
|
+
`Digest output requires at least ${digestSize} bytes.`,
|
|
119
|
+
)
|
|
120
|
+
|
|
121
|
+
const statePtr = align(module.heapBase)
|
|
122
|
+
const outPtr = statePtr + stateSize
|
|
123
|
+
const end = outPtr + digestSize
|
|
124
|
+
reserve(module, end)
|
|
125
|
+
active = false
|
|
126
|
+
try {
|
|
127
|
+
module.view().set(state, statePtr)
|
|
128
|
+
finalize(module.exports, statePtr, outPtr)
|
|
129
|
+
output.set(module.view().subarray(outPtr, end))
|
|
130
|
+
} finally {
|
|
131
|
+
state.fill(0)
|
|
132
|
+
module.exports.zero(module.heapBase, end - module.heapBase)
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
update(input) {
|
|
136
|
+
assertActive()
|
|
137
|
+
const inputPtr = module.heapBase
|
|
138
|
+
const statePtr = align(inputPtr + input.length)
|
|
139
|
+
const end = statePtr + stateSize
|
|
140
|
+
reserve(module, end)
|
|
141
|
+
try {
|
|
142
|
+
const view = module.view()
|
|
143
|
+
view.set(input, inputPtr)
|
|
144
|
+
view.set(state, statePtr)
|
|
145
|
+
update(module.exports, statePtr, inputPtr, input.length)
|
|
146
|
+
state.set(module.view().subarray(statePtr, end))
|
|
147
|
+
} finally {
|
|
148
|
+
module.exports.zero(module.heapBase, end - module.heapBase)
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
return hashState
|
|
154
|
+
}
|
|
@@ -1,22 +1,51 @@
|
|
|
1
1
|
import * as hash from './hash.js'
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
keccak256StateSize,
|
|
4
|
+
ripemd160StateSize,
|
|
5
|
+
sha256StateSize,
|
|
6
|
+
wasmBase64,
|
|
7
|
+
} from './hashes.wasm.js'
|
|
8
|
+
import * as hashState from './hashState.js'
|
|
3
9
|
import * as internal from './instantiate.js'
|
|
4
10
|
|
|
11
|
+
type Algorithm = 'keccak256' | 'ripemd160' | 'sha256'
|
|
12
|
+
|
|
13
|
+
type StateExports = {
|
|
14
|
+
[key in `${Algorithm}_init`]: (state: number) => void
|
|
15
|
+
} & {
|
|
16
|
+
[key in `${Algorithm}_update`]: (
|
|
17
|
+
state: number,
|
|
18
|
+
input: number,
|
|
19
|
+
inputLength: number,
|
|
20
|
+
) => void
|
|
21
|
+
} & {
|
|
22
|
+
[key in `${Algorithm}_finalize`]: (state: number, out: number) => void
|
|
23
|
+
}
|
|
24
|
+
|
|
5
25
|
/** Exports shared by the Hash and Keystore providers. @internal */
|
|
6
|
-
export type Exports = hash.Exports &
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
26
|
+
export type Exports = hash.Exports &
|
|
27
|
+
hash.StateExports &
|
|
28
|
+
StateExports & {
|
|
29
|
+
keccak256(input: number, length: number, out: number): void
|
|
30
|
+
pbkdf2_sha256(
|
|
31
|
+
password: number,
|
|
32
|
+
passwordLength: number,
|
|
33
|
+
salt: number,
|
|
34
|
+
saltLength: number,
|
|
35
|
+
iterations: number,
|
|
36
|
+
out: number,
|
|
37
|
+
outLength: number,
|
|
38
|
+
scratch: number,
|
|
39
|
+
): void
|
|
40
|
+
ripemd160(input: number, length: number, out: number): void
|
|
41
|
+
sha256(input: number, length: number, out: number): void
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const digestSize = { keccak256: 32, ripemd160: 20, sha256: 32 }
|
|
45
|
+
const stateSize = {
|
|
46
|
+
keccak256: keccak256StateSize,
|
|
47
|
+
ripemd160: ripemd160StateSize,
|
|
48
|
+
sha256: sha256StateSize,
|
|
20
49
|
}
|
|
21
50
|
|
|
22
51
|
const instantiate = /*#__PURE__*/ internal.memoize(() =>
|
|
@@ -27,3 +56,15 @@ const instantiate = /*#__PURE__*/ internal.memoize(() =>
|
|
|
27
56
|
export function load() {
|
|
28
57
|
return instantiate()
|
|
29
58
|
}
|
|
59
|
+
|
|
60
|
+
/** Creates an incremental state for one of the shared hash primitives. @internal */
|
|
61
|
+
export function create(module: internal.Module<Exports>, hash: Algorithm) {
|
|
62
|
+
return hashState.create(module, {
|
|
63
|
+
digestSize: digestSize[hash],
|
|
64
|
+
finalize: (exports, state, out) => exports[`${hash}_finalize`](state, out),
|
|
65
|
+
init: (exports, state) => exports[`${hash}_init`](state),
|
|
66
|
+
stateSize: stateSize[hash],
|
|
67
|
+
update: (exports, state, input, inputLength) =>
|
|
68
|
+
exports[`${hash}_update`](state, input, inputLength),
|
|
69
|
+
})
|
|
70
|
+
}
|
|
@@ -8,10 +8,22 @@
|
|
|
8
8
|
|
|
9
9
|
/** Base64-encoded WASM binary. */
|
|
10
10
|
export const wasmBase64 =
|
|
11
|
-
'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dnM6ACkgByAHLQAqIDBzOgAqIAcgBCAHLQArczoAKyAHIActACwgHHM6ACwgByAHLQAtIAhBEHZzOgAtIAcgBy0ALiAxczoALiAHIAggBy0AL3M6AC8gByAHLQAwIB1zOgAwIAcgBy0AMSALQRB2czoAMSAHIActADIgMnM6ADIgByALIActADNzOgAzIAcgBy0ANCAeczoANCAHIActADUgCUEQdnM6ADUgByAHLQA2IDNzOgA2IAcgCSAHLQA3czoANyAHIActADggH3M6ADggByAHLQA5IA1BEHZzOgA5IAcgBy0AOiA0czoAOiAHIA0gBy0AO3M6ADsgByAHLQA8ICBzOgA8IAcgBy0APSAKQRB2czoAPSAHIActAD4gNXM6AD4gByAKIActAD9zOgA/IABBAWsiAA0ACwtBICAGIA5rIgEgAUEgTxshAAJAIAYgDkYNAEEBIAAgAEEBTRsiA0EDcSEIQQAhBCABQQRPBEAgBSAOaiELIANBPHEhCQNAIAQgC2oiASAEIAdqIgNBIGotAAA6AAAgAUEBaiADQSFqLQAAOgAAIAFBAmogA0Eiai0AADoAACABQQNqIANBI2otAAA6AAAgCSAEQQRqIgRHDQALCyAIRQ0AQQAgCGshASAEICFqIQMgBSAEIA5qaiEEA0AgBCADLQAAOgAAIANBAWohAyAEQQFqIQQgAUEBaiIBDQALCyAMQQFqIQwgACAOaiIOIAZJDQALC0EAIQMDQCADIAdqIgBBADoAACAAQQFqQQA6AAAgAEECakEAOgAAIABBA2pBADoAACAAQQRqQQA6AAAgAEEFakEAOgAAIABBBmpBADoAACAAQQdqQQA6AAAgAEEIakEAOgAAIABBCWpBADoAACAAQQpqQQA6AAAgAEELakEAOgAAIABBDGpBADoAACAAQQ1qQQA6AAAgAEEOakEAOgAAIABBD2pBADoAACADQRBqIgNBoARHDQALC78IARJ/IAIgASgAACIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycjYCACACIAEoAAQiA0EYdCADQYD+A3FBCHRyIANBCHZBgP4DcSADQRh2cnI2AgQgAiABKAAIIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyNgIIIAIgASgADCIDQRh0IANBgP4DcUEIdHIg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'
|
|
11
|
+
'AGFzbQEAAAABLgdgA39/fwBgAn9/AGABfwBgBn9/f39/fwBgCH9/f39/f39/AGACf38Bf2AAAX8DHRwDAAABAQEAAAIAAQICBAUAAgABAQACAAEBAgAGBQMBABAGCAF/AUHQjgQLB8wCFQZtZW1vcnkCAAxrZWNjYWtfZjE2MDAADA5rZWNjYWsyNTZfaW5pdAAIEGtlY2NhazI1Nl91cGRhdGUACRJrZWNjYWsyNTZfZmluYWxpemUACglrZWNjYWsyNTYABwtzaGEyNTZfaW5pdAAZDXNoYTI1Nl91cGRhdGUAAg9zaGEyNTZfZmluYWxpemUAGAZzaGEyNTYAFBBobWFjX3NoYTI1Nl9pbml0AAYSaG1hY19zaGEyNTZfdXBkYXRlAAIUaG1hY19zaGEyNTZfZmluYWxpemUABQtobWFjX3NoYTI1NgAADXBia2RmMl9zaGEyNTYADQ5yaXBlbWQxNjBfaW5pdAAQEHJpcGVtZDE2MF91cGRhdGUAERJyaXBlbWQxNjBfZmluYWxpemUAEglyaXBlbWQxNjAADwR6ZXJvAAQJaGVhcF9iYXNlABsKwlMcHwAgBSAAIAEQASAFIAIgAxAWIAUgBBADIAVBkAEQBAuTBAEDfyMAQbABayIDJAAgA0IANwOoASADQgA3A6ABIANCADcDmAEgA0IANwOQASADQgA3A4gBIANCADcDgAEgA0IANwN4IANCADcDcAJAIAJBwABNBEAgAkUNASACQQNxIQUgAkEETwRAIAJB/ABxIQIDQCADQfAAaiAEaiABIARqKAAANgIAIAIgBEEEaiIERw0ACwsgBUUNASABIARqIQEgA0HwAGogBGohBANAIAQgAS0AADoAACABQQFqIQEgBEEBaiEEIAVBAWsiBQ0ACwwBCyADEBUgAyABIAIQFiADIANB8ABqEBcgA0HwABAECyAAEBVBACEBA0AgA0HwAGoiBCABaiICIAItAABBNnM6AAAgAkEBaiIFIAUtAABBNnM6AAAgAkECaiIFIAUtAABBNnM6AAAgAkEDaiICIAItAABBNnM6AAAgAUEEaiIBQcAARw0ACyAAIARBwAAQFiADEBVBACEBA0AgA0HwAGoiBCABaiICIAItAABB6gBzOgAAIAJBAWoiBSAFLQAAQeoAczoAACACQQJqIgUgBS0AAEHqAHM6AAAgAkEDaiICIAItAABB6gBzOgAAIAFBBGoiAUHAAEcNAAsgAyAEQcAAEBYgACADKQMINwJwIAAgAykDEDcCeCAAIAMpAxg3AoABIAAgAykDIDcCiAEgA0HwABAEIARBwAAQBCADQbABaiQACwoAIAAgASACEBYLtgMBAn8jAEGQAWsiAiQAIAAgAkHwAGoiAxAXIAIQFSACQsAANwMAIAIgACkCcDcDCCACIAApAng3AxAgAiAAKQKAATcDGCACIAApAogBNwMgIAIgA0EgEBYgAiAAQSxqEBcgAkHwABAEIANBIBAEIAEgAC0ALDoAACABIAAtAC06AAEgASAALQAuOgACIAEgAC0ALzoAAyABIAAtADA6AAQgASAALQAxOgAFIAEgAC0AMjoABiABIAAtADM6AAcgASAALQA0OgAIIAEgAC0ANToACSABIAAtADY6AAogASAALQA3OgALIAEgAC0AODoADCABIAAtADk6AA0gASAALQA6OgAOIAEgAC0AOzoADyABIAAtADw6ABAgASAALQA9OgARIAEgAC0APjoAEiABIAAtAD86ABMgASAALQBAOgAUIAEgAC0AQToAFSABIAAtAEI6ABYgASAALQBDOgAXIAEgAC0ARDoAGCABIAAtAEU6ABkgASAALQBGOgAaIAEgAC0ARzoAGyABIAAtAEg6ABwgASAALQBJOgAdIAEgAC0ASjoAHiABIAAtAEs6AB8gAkGQAWokAAuTAQECfwJAIAFFDQACQCABQQdxIgNFBEAgASECDAELIAFBeHEhAgNAIABBADoAACAAQQFqIQAgA0EBayIDDQALCyABQQhJDQADQCAAQQA6AAAgAEEAOgABIABBADoAAiAAQQA6AAMgAEEAOgAEIABBADoABSAAQQA6AAYgAEEAOgAHIABBCGohACACQQhrIgINAAsLCwgAIAAgARADCwoAIAAgASACEAELLQECfyMAQeACayIDJAAgA0EIaiIEEAggBCAAIAEQCSAEIAIQCiADQeACaiQAC+IBAQF/IABBADYCyAEgAEIANwPAASAAQgA3A7gBIABCADcDsAEgAEIANwOoASAAQgA3A6ABIABCADcDmAEgAEIANwOQASAAQgA3A4gBIABCADcDgAEgAEIANwN4IABCADcDcCAAQgA3A2ggAEIANwNgIABCADcDWCAAQgA3A1AgAEIANwNIIABCADcDQCAAQgA3AzggAEIANwMwIABCADcDKCAAQgA3AyAgAEIANwMYIABCADcDECAAQgA3AwggAEIANwMAA0AgACABakHMAWpCADcAACABQQhqIgFBiAFHDQALC5UJAQd/AkAgACgCyAEiAwRAQYgBIANrIgcgAiACIAdLGyIEBEAgBEEDcSEFQQAhAyAEQQRPBEAgBEF8cSEIA0AgACADIAAoAsgBampBzAFqIAEgA2oiBi0AADoAACAAIAMgACgCyAFqakHNAWogBkEBai0AADoAACAAIAMgACgCyAFqakHOAWogBkECai0AADoAACAAIAMgACgCyAFqakHPAWogBkEDai0AADoAACAIIANBBGoiA0cNAAsLIAUEQCABIANqIQYgACADakHMAWohAwNAIAMgACgCyAFqIAYtAAA6AAAgBkEBaiEGIANBAWohAyAFQQFrIgUNAAsLIAAoAsgBIQMLIAAgAyAEaiIDNgLIASADQYgBRgRAIAAgACkDACAAKQDMAYU3AwAgACAAKQMIIAApANQBhTcDCCAAIAApAxAgACkA3AGFNwMQIAAgACkDGCAAKQDkAYU3AxggACAAKQMgIAApAOwBhTcDICAAIAApAyggACkA9AGFNwMoIAAgACkDMCAAKQD8AYU3AzAgACAAKQM4IAApAIQChTcDOCAAIAApA0AgACkAjAKFNwNAIAAgACkDSCAAKQCUAoU3A0ggACAAKQNQIAApAJwChTcDUCAAIAApA1ggACkApAKFNwNYIAAgACkDYCAAKQCsAoU3A2AgACAAKQNoIAApALQChTcDaCAAIAApA3AgACkAvAKFNwNwIAAgACkDeCAAKQDEAoU3A3ggACAAKQOAASAAKQDMAoU3A4ABIAAQCyAAQQA2AsgBCyACIAdNDQELIAIgBGsiBUGIAU8EQANAIAAgACkDACABIARqIgIpAACFNwMAIAAgACkDCCACKQAIhTcDCCAAIAApAxAgAkEQaikAAIU3AxAgACAAKQMYIAJBGGopAACFNwMYIAAgACkDICACQSBqKQAAhTcDICAAIAApAyggAkEoaikAAIU3AyggACAAKQMwIAJBMGopAACFNwMwIAAgACkDOCACQThqKQAAhTcDOCAAIAApA0AgAkFAaykAAIU3A0AgACAAKQNIIAJByABqKQAAhTcD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AgAiDSEJIAAoAgQiDiEBIAAoAggiDyEFIAAoAgwiECEMIAAoAhwiESEKIAAoAhgiEiEIIAAoAhQiEyEDIAAoAhAiFCEGA0AgBSEEIAEhBSACIAtqKAIAIAtBwAlqKAIAIAogBiIHQRp3IAdBFXdzIAdBB3dzaiAHQX9zIAhxIAMgB3FyampqIgYgCSIBQR53IAFBE3dzIAFBCndzIAEgBCAFc3EgBCAFcXNqaiEJIAYgDGohBiAEIQwgCCEKIAMhCCAHIQMgC0EEaiILQYACRw0ACyAAIAogEWo2AhwgACAIIBJqNgIYIAAgAyATajYCFCAAIAYgFGo2AhAgACAEIBBqNgIMIAAgBSAPajYCCCAAIAEgDmo2AgQgACAJIA1qNgIACyUBAX9BwA4tAAAiAARAQdCOBEEAIAAbDwtBwA5BAToAAEHQjgQLC7kGAwBBgAgLpAQBAAAAAAAAAIKAAAAAAAAAioAAAAAAAIAAgACAAAAAgIuAAAAAAAAAAQAAgAAAAACBgACAAAAAgAmAAAAAAACAigAAAAAAAACIAAAAAAAAAAmAAIAAAAAACgAAgAAAAACLgACAAAAAAIsAAAAAAACAiYAAAAAAAIADgAAAAAAAgAKAAAAAAACAgAAAAAAAAIAKgAAAAAAAAAoAAIAAAACAgYAAgAAAAICAgAAAAAAAgAEAAIAAAAAACIAAgAAAAICYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGAAECAwQFBgcICQoLDA0ODwcEDQEKBg8DDAAJBQIOCwgDCg4ECQ8IAQIHAAYNCwUMAQkLCgAIDAQNAwcPDgUGAgQABQkHDAIKDgEDCAsGDw0AAAAAmXmCWqHr2W7cvBuPTv1TqQBBsAwLsAELDg8MBQgHCQsNDg8GBwkIBwYIDQsJBw8HDA8JCwcNDAsNBgcOCQ0PDggNBgUMBwULDA4PDg8JCAkOBQYIBgUMCQ8FCwYIDQwFDA0OCwgFBgUOBwAJAgsEDQYPCAEKAwwGCwMHAA0FCg4PCAwECQECDwUBAwcOBgkLCAwCCgAEDQgGBAEDCw8ABQwCDQkHCg4MDwoEAQUIBwYCDQ4AAwkL5ouiUCTRTVzzPnBt6XZtegBB8A0LUAgJCQsNDw8FBwcICw4ODAYJDQ8HDAgJCwcHDAcGDw0LCQcPCwgGBg4MDQUODQ0HBQ8FCAsODgYOBgkMCQwFDwgIBQwJDAUOBggNBgUPDQsL'
|
|
12
12
|
|
|
13
13
|
/** Constant shared with the module's C source. */
|
|
14
|
-
export const hmacSha256ScratchSize =
|
|
14
|
+
export const hmacSha256ScratchSize = 144
|
|
15
15
|
|
|
16
16
|
/** Constant shared with the module's C source. */
|
|
17
|
-
export const
|
|
17
|
+
export const hmacSha256StateSize = 144
|
|
18
|
+
|
|
19
|
+
/** Constant shared with the module's C source. */
|
|
20
|
+
export const keccak256StateSize = 344
|
|
21
|
+
|
|
22
|
+
/** Constant shared with the module's C source. */
|
|
23
|
+
export const pbkdf2Sha256ScratchSize = 352
|
|
24
|
+
|
|
25
|
+
/** Constant shared with the module's C source. */
|
|
26
|
+
export const ripemd160StateSize = 96
|
|
27
|
+
|
|
28
|
+
/** Constant shared with the module's C source. */
|
|
29
|
+
export const sha256StateSize = 112
|
|
@@ -48,18 +48,23 @@ function decode(base64: string): Uint8Array {
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
/**
|
|
51
|
-
*
|
|
51
|
+
* Compiles a base64-encoded WASM module without instantiating it.
|
|
52
52
|
*
|
|
53
|
-
*
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
* @internal
|
|
54
|
+
*/
|
|
55
|
+
export async function compile(base64: string): Promise<WebAssembly.Module> {
|
|
56
|
+
return WebAssembly.compile(decode(base64))
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Instantiates a compiled WASM module.
|
|
56
61
|
*
|
|
57
62
|
* @internal
|
|
58
63
|
*/
|
|
59
|
-
export async function
|
|
60
|
-
|
|
61
|
-
): Promise<Module<exports>> {
|
|
62
|
-
const
|
|
64
|
+
export async function instantiateModule<
|
|
65
|
+
exports extends Record<string, unknown>,
|
|
66
|
+
>(compiled: WebAssembly.Module): Promise<Module<exports>> {
|
|
67
|
+
const instance = await WebAssembly.instantiate(compiled, {})
|
|
63
68
|
const exports = instance.exports as {
|
|
64
69
|
heap_base(): number
|
|
65
70
|
memory: WebAssembly.Memory
|
|
@@ -94,6 +99,21 @@ export async function instantiate<exports extends Record<string, unknown>>(
|
|
|
94
99
|
}
|
|
95
100
|
}
|
|
96
101
|
|
|
102
|
+
/**
|
|
103
|
+
* Instantiates a base64-encoded WASM module.
|
|
104
|
+
*
|
|
105
|
+
* Always asynchronous: browsers refuse to compile modules larger than a few
|
|
106
|
+
* kilobytes synchronously on the main thread, so there is no synchronous path to
|
|
107
|
+
* fall back to. Callers await this once and then call the module synchronously.
|
|
108
|
+
*
|
|
109
|
+
* @internal
|
|
110
|
+
*/
|
|
111
|
+
export async function instantiate<exports extends Record<string, unknown>>(
|
|
112
|
+
base64: string,
|
|
113
|
+
): Promise<Module<exports>> {
|
|
114
|
+
return instantiateModule(await compile(base64))
|
|
115
|
+
}
|
|
116
|
+
|
|
97
117
|
/**
|
|
98
118
|
* Memoizes a loader so concurrent callers compile the module once.
|
|
99
119
|
*
|
|
@@ -128,7 +148,7 @@ export class MemoryError extends Errors.BaseError<Error> {
|
|
|
128
148
|
cause,
|
|
129
149
|
metaMessages: [
|
|
130
150
|
`Required: ${bytes} bytes`,
|
|
131
|
-
'The input may be too large for this runtime. Reset the engine slot with `Engine.reset` to fall back to the default implementation.',
|
|
151
|
+
'The input or requested workspace may be too large for this runtime. Reset the engine slot with `Engine.reset` to fall back to the default implementation.',
|
|
132
152
|
],
|
|
133
153
|
})
|
|
134
154
|
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type * as Engine from '../../core/Engine.js'
|
|
2
|
+
import * as hashes from './hashes.js'
|
|
3
|
+
import * as pbkdf2 from './pbkdf2.js'
|
|
4
|
+
|
|
5
|
+
/** Compiles the aggregate engine's synchronous PBKDF2 implementation. */
|
|
6
|
+
export async function engine(): Promise<engine.ReturnType> {
|
|
7
|
+
const module = await hashes.load()
|
|
8
|
+
return {
|
|
9
|
+
pbkdf2Sha256: (password, salt, options) =>
|
|
10
|
+
pbkdf2.pbkdf2Sha256(module, password, salt, options),
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export declare namespace engine {
|
|
15
|
+
/** The aggregate WASM engine's `Keystore` primitives. */
|
|
16
|
+
type ReturnType = {
|
|
17
|
+
pbkdf2Sha256: NonNullable<Engine.Keystore['pbkdf2Sha256']>
|
|
18
|
+
}
|
|
19
|
+
}
|