ox 1.1.0 → 1.2.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 +54 -0
- package/dist/core/Engine.d.ts +43 -11
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +40 -10
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/Hash.d.ts +36 -0
- package/dist/core/Hash.d.ts.map +1 -1
- package/dist/core/Hash.js +35 -0
- package/dist/core/Hash.js.map +1 -1
- package/dist/core/internal/engine.d.ts +8 -8
- package/dist/core/internal/engine.d.ts.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/node/Ed25519.d.ts +33 -0
- package/dist/node/Ed25519.d.ts.map +1 -0
- package/dist/node/Ed25519.js +67 -0
- package/dist/node/Ed25519.js.map +1 -0
- package/dist/node/Engine.d.ts +29 -16
- package/dist/node/Engine.d.ts.map +1 -1
- package/dist/node/Engine.js +38 -14
- package/dist/node/Engine.js.map +1 -1
- package/dist/node/Hash.d.ts +17 -19
- package/dist/node/Hash.d.ts.map +1 -1
- package/dist/node/Hash.js +17 -19
- package/dist/node/Hash.js.map +1 -1
- package/dist/node/Keystore.d.ts +36 -0
- package/dist/node/Keystore.d.ts.map +1 -0
- package/dist/node/Keystore.js +72 -0
- package/dist/node/Keystore.js.map +1 -0
- package/dist/node/Mnemonic.d.ts +35 -0
- package/dist/node/Mnemonic.d.ts.map +1 -0
- package/dist/node/Mnemonic.js +46 -0
- package/dist/node/Mnemonic.js.map +1 -0
- package/dist/node/P256.d.ts +32 -0
- package/dist/node/P256.d.ts.map +1 -0
- package/dist/node/P256.js +34 -0
- package/dist/node/P256.js.map +1 -0
- package/dist/node/X25519.d.ts +31 -0
- package/dist/node/X25519.d.ts.map +1 -0
- package/dist/node/X25519.js +71 -0
- package/dist/node/X25519.js.map +1 -0
- package/dist/node/index.d.ts +95 -8
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +95 -8
- package/dist/node/index.js.map +1 -1
- 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/Ed25519.d.ts +35 -0
- package/dist/wasm/Ed25519.d.ts.map +1 -0
- package/dist/wasm/Ed25519.js +88 -0
- package/dist/wasm/Ed25519.js.map +1 -0
- package/dist/wasm/Engine.d.ts +36 -26
- package/dist/wasm/Engine.d.ts.map +1 -1
- package/dist/wasm/Engine.js +44 -25
- package/dist/wasm/Engine.js.map +1 -1
- package/dist/wasm/Hash.d.ts +13 -19
- package/dist/wasm/Hash.d.ts.map +1 -1
- package/dist/wasm/Hash.js +21 -27
- package/dist/wasm/Hash.js.map +1 -1
- package/dist/wasm/Keystore.d.ts +51 -0
- package/dist/wasm/Keystore.d.ts.map +1 -0
- package/dist/wasm/Keystore.js +51 -0
- package/dist/wasm/Keystore.js.map +1 -0
- 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/Mnemonic.d.ts +33 -0
- package/dist/wasm/Mnemonic.d.ts.map +1 -0
- package/dist/wasm/Mnemonic.js +30 -0
- package/dist/wasm/Mnemonic.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/X25519.d.ts +33 -0
- package/dist/wasm/X25519.d.ts.map +1 -0
- package/dist/wasm/X25519.js +53 -0
- package/dist/wasm/X25519.js.map +1 -0
- package/dist/wasm/index.d.ts +124 -12
- package/dist/wasm/index.d.ts.map +1 -1
- package/dist/wasm/index.js +124 -12
- package/dist/wasm/index.js.map +1 -1
- package/dist/wasm/internal/blake3.d.ts +11 -0
- package/dist/wasm/internal/blake3.d.ts.map +1 -0
- package/dist/wasm/internal/blake3.js +31 -0
- package/dist/wasm/internal/blake3.js.map +1 -0
- package/dist/wasm/internal/blake3.wasm.d.ts +3 -0
- package/dist/wasm/internal/blake3.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/blake3.wasm.js +10 -0
- package/dist/wasm/internal/blake3.wasm.js.map +1 -0
- package/dist/wasm/internal/crypto25519.d.ts +16 -0
- package/dist/wasm/internal/crypto25519.d.ts.map +1 -0
- package/dist/wasm/internal/crypto25519.js +5 -0
- package/dist/wasm/internal/crypto25519.js.map +1 -0
- package/dist/wasm/internal/crypto25519.wasm.d.ts +3 -0
- package/dist/wasm/internal/crypto25519.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/crypto25519.wasm.js +10 -0
- package/dist/wasm/internal/crypto25519.wasm.js.map +1 -0
- package/dist/wasm/internal/ed25519.d.ts +4 -0
- package/dist/wasm/internal/ed25519.d.ts.map +1 -0
- package/dist/wasm/internal/ed25519.js +21 -0
- package/dist/wasm/internal/ed25519.js.map +1 -0
- package/dist/wasm/internal/hashes.d.ts +12 -0
- package/dist/wasm/internal/hashes.d.ts.map +1 -0
- package/dist/wasm/internal/hashes.js +8 -0
- package/dist/wasm/internal/hashes.js.map +1 -0
- package/dist/wasm/internal/hashes.wasm.d.ts +4 -2
- package/dist/wasm/internal/hashes.wasm.d.ts.map +1 -1
- package/dist/wasm/internal/hashes.wasm.js +4 -2
- 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/mnemonic.d.ts +4 -0
- package/dist/wasm/internal/mnemonic.d.ts.map +1 -0
- package/dist/wasm/internal/mnemonic.js +45 -0
- package/dist/wasm/internal/mnemonic.js.map +1 -0
- package/dist/wasm/internal/pbkdf2.d.ts +12 -0
- package/dist/wasm/internal/pbkdf2.d.ts.map +1 -0
- package/dist/wasm/internal/pbkdf2.js +51 -0
- package/dist/wasm/internal/pbkdf2.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/wasm/internal/x25519.d.ts +4 -0
- package/dist/wasm/internal/x25519.d.ts.map +1 -0
- package/dist/wasm/internal/x25519.js +21 -0
- package/dist/wasm/internal/x25519.js.map +1 -0
- package/package.json +64 -2
- package/src/core/Engine.ts +84 -11
- package/src/core/Hash.ts +59 -0
- package/src/core/_test/Block.test.ts +9 -2
- package/src/core/_test/Engine.test-d.ts +56 -0
- package/src/core/_test/Engine.test.ts +95 -0
- package/src/core/_test/Hash.test-d.ts +18 -0
- package/src/core/_test/Hash.test.ts +100 -1
- package/src/core/_test/Hash.vectors.test.ts +7 -0
- package/src/core/_test/Transaction.test.ts +11 -2
- package/src/core/internal/engine.ts +8 -8
- package/src/index.ts +5 -2
- package/src/node/Ed25519.ts +87 -0
- package/src/node/Engine.ts +79 -23
- package/src/node/Hash.ts +25 -30
- package/src/node/Keystore.ts +103 -0
- package/src/node/Mnemonic.ts +68 -0
- package/src/node/P256.ts +48 -0
- package/src/node/X25519.ts +93 -0
- package/src/node/_test/Curves.fuzz.ts +76 -0
- package/src/node/_test/Ed25519.test-d.ts +35 -0
- package/src/node/_test/Ed25519.test.ts +220 -0
- package/src/node/_test/Engine.test-d.ts +28 -0
- package/src/node/_test/Engine.test.ts +62 -22
- package/src/node/_test/Hash.test-d.ts +16 -9
- package/src/node/_test/Hash.test.ts +10 -11
- package/src/node/_test/Keystore.fuzz.ts +58 -0
- package/src/node/_test/Keystore.test-d.ts +43 -0
- package/src/node/_test/Keystore.test.ts +198 -0
- package/src/node/_test/Mnemonic.fuzz.ts +31 -0
- package/src/node/_test/Mnemonic.test-d.ts +21 -0
- package/src/node/_test/Mnemonic.test.ts +98 -0
- package/src/node/_test/P256.test-d.ts +29 -0
- package/src/node/_test/P256.test.ts +102 -0
- package/src/node/_test/X25519.test-d.ts +28 -0
- package/src/node/_test/X25519.test.ts +239 -0
- package/src/node/index.ts +100 -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/Ed25519.ts +114 -0
- package/src/wasm/Engine.ts +78 -31
- package/src/wasm/Hash.bench.ts +2 -2
- package/src/wasm/Hash.ts +29 -50
- package/src/wasm/Keystore.bench.ts +26 -0
- package/src/wasm/Keystore.ts +66 -0
- package/src/wasm/Kzg.bench.ts +63 -0
- package/src/wasm/Kzg.ts +518 -0
- package/src/wasm/Mnemonic.ts +44 -0
- package/src/wasm/Secp256k1.bench.ts +79 -0
- package/src/wasm/Secp256k1.ts +248 -0
- package/src/wasm/X25519.ts +70 -0
- package/src/wasm/_test/Crypto25519.conformance.ts +57 -0
- package/src/wasm/_test/Crypto25519.fuzz.ts +187 -0
- package/src/wasm/_test/Ed25519.test-d.ts +28 -0
- package/src/wasm/_test/Ed25519.test.ts +168 -0
- package/src/wasm/_test/Ed25519.vectors.test.ts +73 -0
- package/src/wasm/_test/Engine.test-d.ts +29 -0
- package/src/wasm/_test/Engine.test.ts +59 -25
- package/src/wasm/_test/Hash.browser.test.ts +14 -7
- package/src/wasm/_test/Hash.fuzz.ts +58 -23
- package/src/wasm/_test/Hash.test-d.ts +16 -10
- package/src/wasm/_test/Hash.test.ts +148 -48
- package/src/wasm/_test/Hash.vectors.test.ts +15 -8
- package/src/wasm/_test/Keystore.browser.test.ts +73 -0
- package/src/wasm/_test/Keystore.fuzz.ts +163 -0
- package/src/wasm/_test/Keystore.test-d.ts +42 -0
- package/src/wasm/_test/Keystore.test.ts +477 -0
- package/src/wasm/_test/Keystore.vectors.test.ts +21 -0
- package/src/wasm/_test/Kzg.test-d.ts +19 -0
- package/src/wasm/_test/Kzg.test.ts +220 -0
- package/src/wasm/_test/Mnemonic.test-d.ts +17 -0
- package/src/wasm/_test/Mnemonic.test.ts +110 -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/_test/X25519.test-d.ts +21 -0
- package/src/wasm/_test/X25519.test.ts +194 -0
- package/src/wasm/_test/fixtures.ts +4 -0
- package/src/wasm/index.ts +130 -12
- package/src/wasm/internal/blake3.ts +45 -0
- package/src/wasm/internal/blake3.wasm.ts +11 -0
- package/src/wasm/internal/crypto25519.ts +43 -0
- package/src/wasm/internal/crypto25519.wasm.ts +11 -0
- package/src/wasm/internal/ed25519.ts +31 -0
- package/src/wasm/internal/hashes.ts +29 -0
- package/src/wasm/internal/hashes.wasm.ts +5 -2
- 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/mnemonic.ts +56 -0
- package/src/wasm/internal/pbkdf2.ts +86 -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/wasm/internal/x25519.ts +29 -0
- 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
package/src/wasm/index.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/** @entrypointCategory WASM */
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* WASM implementations of
|
|
4
|
+
* WASM implementations of Ox's supported cryptographic primitives, compiled
|
|
5
|
+
* from C.
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* synchronous.
|
|
7
|
+
* Install it during startup. WASM must be compiled asynchronously, so the
|
|
8
|
+
* `await` lives there. Every cryptographic call afterwards is synchronous.
|
|
9
9
|
*
|
|
10
10
|
* :::note
|
|
11
11
|
* Performance varies by primitive, input size, runtime, and processor. Run
|
|
@@ -16,32 +16,150 @@
|
|
|
16
16
|
* @example
|
|
17
17
|
* ```ts twoslash
|
|
18
18
|
* // @noErrors
|
|
19
|
-
* import { Hash } from 'ox'
|
|
20
|
-
* import { Engine } from 'ox/wasm'
|
|
19
|
+
* import { Engine, Hash } from 'ox/wasm'
|
|
21
20
|
*
|
|
22
|
-
* await Engine.
|
|
21
|
+
* await Engine.install()
|
|
23
22
|
*
|
|
24
|
-
* Hash.
|
|
23
|
+
* Hash.sha256('0xdeadbeef')
|
|
25
24
|
* ```
|
|
26
25
|
*
|
|
27
26
|
* @category Crypto
|
|
28
27
|
*/
|
|
29
28
|
export * as Engine from './Engine.js'
|
|
30
29
|
|
|
30
|
+
/**
|
|
31
|
+
* WASM implementations of Ox's supported Ed25519 primitives.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts twoslash
|
|
35
|
+
* // @noErrors
|
|
36
|
+
* import { Engine } from 'ox'
|
|
37
|
+
* import { Ed25519 } from 'ox/wasm'
|
|
38
|
+
*
|
|
39
|
+
* await Engine.install({ Ed25519: Ed25519.engine() })
|
|
40
|
+
*
|
|
41
|
+
* Ed25519.getPublicKey({ privateKey: '0x...' })
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @category Crypto
|
|
45
|
+
*/
|
|
46
|
+
export * as Ed25519 from './Ed25519.js'
|
|
47
|
+
|
|
31
48
|
/**
|
|
32
49
|
* WASM implementations of Ox's supported hash primitives.
|
|
33
50
|
*
|
|
34
51
|
* @example
|
|
35
52
|
* ```ts twoslash
|
|
36
53
|
* // @noErrors
|
|
37
|
-
* import { Engine
|
|
38
|
-
* import
|
|
54
|
+
* import { Engine } from 'ox'
|
|
55
|
+
* import { Hash } from 'ox/wasm'
|
|
39
56
|
*
|
|
40
|
-
* Engine.
|
|
57
|
+
* await Engine.install({ Hash: Hash.engine() })
|
|
41
58
|
*
|
|
42
|
-
* Hash.
|
|
59
|
+
* Hash.sha256('0xdeadbeef')
|
|
43
60
|
* ```
|
|
44
61
|
*
|
|
45
62
|
* @category Crypto
|
|
46
63
|
*/
|
|
47
64
|
export * as Hash from './Hash.js'
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* WASM implementations of Ox's synchronous PBKDF2-HMAC-SHA256 and scrypt
|
|
68
|
+
* primitives.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts twoslash
|
|
72
|
+
* // @noErrors
|
|
73
|
+
* import { Engine } from 'ox'
|
|
74
|
+
* import { Keystore } from 'ox/wasm'
|
|
75
|
+
*
|
|
76
|
+
* await Engine.install({ Keystore: Keystore.engine() })
|
|
77
|
+
*
|
|
78
|
+
* Keystore.pbkdf2({ password: 'testpassword' })
|
|
79
|
+
* ```
|
|
80
|
+
*
|
|
81
|
+
* @category Crypto
|
|
82
|
+
*/
|
|
83
|
+
export * as Keystore from './Keystore.js'
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* WASM implementation of Ox's KZG interface, backed by c-kzg-4844.
|
|
87
|
+
*
|
|
88
|
+
* This module is not installed into [`Engine`](/api/Engine). Create an explicit
|
|
89
|
+
* instance, pass it anywhere that accepts `Kzg.Kzg`, and dispose it when done.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```ts twoslash
|
|
93
|
+
* // @noErrors
|
|
94
|
+
* import { Setups } from 'ox/trusted-setups'
|
|
95
|
+
* import { Kzg } from 'ox/wasm'
|
|
96
|
+
*
|
|
97
|
+
* const kzg = await Kzg.create({
|
|
98
|
+
* trustedSetup: Setups.mainnet
|
|
99
|
+
* })
|
|
100
|
+
*
|
|
101
|
+
* kzg.dispose()
|
|
102
|
+
* ```
|
|
103
|
+
*
|
|
104
|
+
* @category Crypto
|
|
105
|
+
*/
|
|
106
|
+
export * as Kzg from './Kzg.js'
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* WASM implementation of Ox's BIP-39 seed derivation.
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts twoslash
|
|
113
|
+
* // @noErrors
|
|
114
|
+
* import { Engine } from 'ox'
|
|
115
|
+
* import { Mnemonic } from 'ox/wasm'
|
|
116
|
+
*
|
|
117
|
+
* await Engine.install({ Mnemonic: Mnemonic.engine() })
|
|
118
|
+
*
|
|
119
|
+
* Mnemonic.toSeed(
|
|
120
|
+
* 'test test test test test test test test test test test junk'
|
|
121
|
+
* )
|
|
122
|
+
* ```
|
|
123
|
+
*
|
|
124
|
+
* @category Crypto
|
|
125
|
+
*/
|
|
126
|
+
export * as Mnemonic from './Mnemonic.js'
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* WASM implementations of deterministic Secp256k1 primitives.
|
|
130
|
+
*
|
|
131
|
+
* This provider is opt-in because its embedded libsecp256k1 artifact is larger
|
|
132
|
+
* than the modules installed by [`Engine.install`](/api/Engine/install).
|
|
133
|
+
*
|
|
134
|
+
* @example
|
|
135
|
+
* ```ts twoslash
|
|
136
|
+
* // @noErrors
|
|
137
|
+
* import { Engine } from 'ox'
|
|
138
|
+
* import { Secp256k1 } from 'ox/wasm'
|
|
139
|
+
*
|
|
140
|
+
* await Engine.install({ Secp256k1: Secp256k1.engine() })
|
|
141
|
+
*
|
|
142
|
+
* Secp256k1.getPublicKey({ privateKey: '0x...' })
|
|
143
|
+
* ```
|
|
144
|
+
*
|
|
145
|
+
* @category Crypto
|
|
146
|
+
*/
|
|
147
|
+
export * as Secp256k1 from './Secp256k1.js'
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* WASM implementations of Ox's supported X25519 primitives.
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```ts twoslash
|
|
154
|
+
* // @noErrors
|
|
155
|
+
* import { Engine } from 'ox'
|
|
156
|
+
* import { X25519 } from 'ox/wasm'
|
|
157
|
+
*
|
|
158
|
+
* await Engine.install({ X25519: X25519.engine() })
|
|
159
|
+
*
|
|
160
|
+
* X25519.getPublicKey({ privateKey: '0x...' })
|
|
161
|
+
* ```
|
|
162
|
+
*
|
|
163
|
+
* @category Crypto
|
|
164
|
+
*/
|
|
165
|
+
export * as X25519 from './X25519.js'
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { wasmBase64 } from './blake3.wasm.js'
|
|
2
|
+
import * as internal from './instantiate.js'
|
|
3
|
+
|
|
4
|
+
const digestSize = 32
|
|
5
|
+
const wasm32Size = 0x1_0000_0000
|
|
6
|
+
|
|
7
|
+
/** Exports supplied by the dedicated portable BLAKE3 artifact. @internal */
|
|
8
|
+
export type Exports = {
|
|
9
|
+
blake3_hash(input: number, length: number, out: number): void
|
|
10
|
+
zero(ptr: number, length: number): void
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const instantiate = /*#__PURE__*/ internal.memoize(() =>
|
|
14
|
+
internal.instantiate<Exports>(wasmBase64),
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
/** Returns the one memoized BLAKE3 instance shared by its providers. */
|
|
18
|
+
export function load() {
|
|
19
|
+
return instantiate()
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Hashes an input through a loaded BLAKE3 module. @internal */
|
|
23
|
+
export function hash(
|
|
24
|
+
module: internal.Module<Exports>,
|
|
25
|
+
input: Uint8Array,
|
|
26
|
+
): Uint8Array {
|
|
27
|
+
const inputPtr = module.heapBase
|
|
28
|
+
const end = inputPtr + input.length + digestSize
|
|
29
|
+
if (!Number.isSafeInteger(end) || end > wasm32Size)
|
|
30
|
+
throw new internal.MemoryError({
|
|
31
|
+
bytes: end,
|
|
32
|
+
cause: new RangeError('BLAKE3 workspace exceeds wasm32 memory.'),
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
const outPtr = inputPtr + input.length
|
|
36
|
+
const size = end - inputPtr
|
|
37
|
+
module.reserve(size)
|
|
38
|
+
try {
|
|
39
|
+
module.view().set(input, inputPtr)
|
|
40
|
+
module.exports.blake3_hash(inputPtr, input.length, outPtr)
|
|
41
|
+
return module.view().slice(outPtr, outPtr + digestSize)
|
|
42
|
+
} finally {
|
|
43
|
+
module.exports.zero(inputPtr, size)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Generated by `pnpm wasm:build --target=blake3`. Do not edit.
|
|
2
|
+
//
|
|
3
|
+
// Compiled from wasm/src/blake3.c, wasm/vendor/blake3/blake3.c, wasm/vendor/blake3/blake3_dispatch.c, wasm/vendor/blake3/blake3_portable.c, wasm/src/ox_rt.c
|
|
4
|
+
// with wasi-sdk 25.0 + binaryen 123.
|
|
5
|
+
//
|
|
6
|
+
// `pnpm wasm:check` rebuilds this file and fails if the bytes differ, so any
|
|
7
|
+
// change to the C or to `wasm/targets.ts` must be followed by `pnpm wasm:build`.
|
|
8
|
+
|
|
9
|
+
/** Base64-encoded WASM binary. */
|
|
10
|
+
export const wasmBase64 =
|
|
11
|
+
'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QcAAOgDoESADIA9BBHIiDzoA6REgA0IANwOgESADIAQtADM6ANsRIAMgBCgANDYC3BEgAyAEKQA4NwPgESADIAMtAIAROgDgECADIAMtAIEROgDhECADIAMtAIIROgDiECADIAMtAIMROgDjECADIAMtAIQROgDkECADIAMtAIUROgDlECADIAMtAIYROgDmECADIAMtAIcROgDnECADIAMtAIgROgDoECADIAMtAIkROgDpECADIAMtAIoROgDqECADIAMtAIsROgDrECADIAMtAIwROgDsECADIAMtAI0ROgDtECADIAMtAI4ROgDuECADIAMtAI8ROgDvECADIAMtAJAROgDwECADIAMtAJEROgDxECADIAMtAJIROgDyECADIAMtAJMROgDzECADIAMtAJQROgD0ECADIAMtAJUROgD1ECADIAMtAJYROgD2ECADIAMtAJcROgD3ECADIAMtAJgROgD4ECADIAMtAJkROgD5ECADIAMtAJoROgD6ECADIAMtAJsROgD7ECADIAMtAJwROgD8ECADIAMtAJ0ROgD9ECADIAMtAJ4ROgD+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/A8gAyAiOgD7DyADICM6APoPIAMg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'
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { wasmBase64 } from './crypto25519.wasm.js'
|
|
2
|
+
import {
|
|
3
|
+
instantiate,
|
|
4
|
+
memoize,
|
|
5
|
+
type Module as WasmModule,
|
|
6
|
+
} from './instantiate.js'
|
|
7
|
+
|
|
8
|
+
export type Exports = {
|
|
9
|
+
ed25519_get_public_key(seed: number, publicKey: number): void
|
|
10
|
+
ed25519_sign(
|
|
11
|
+
seed: number,
|
|
12
|
+
message: number,
|
|
13
|
+
messageSize: number,
|
|
14
|
+
signature: number,
|
|
15
|
+
): void
|
|
16
|
+
ed25519_to_montgomery_secret(seed: number, secretKey: number): void
|
|
17
|
+
ed25519_verify(
|
|
18
|
+
signature: number,
|
|
19
|
+
message: number,
|
|
20
|
+
messageSize: number,
|
|
21
|
+
publicKey: number,
|
|
22
|
+
): number
|
|
23
|
+
mnemonic_to_seed(
|
|
24
|
+
password: number,
|
|
25
|
+
passwordSize: number,
|
|
26
|
+
salt: number,
|
|
27
|
+
saltSize: number,
|
|
28
|
+
seed: number,
|
|
29
|
+
): void
|
|
30
|
+
x25519_get_public_key(privateKey: number, publicKey: number): void
|
|
31
|
+
x25519_get_shared_secret(
|
|
32
|
+
privateKey: number,
|
|
33
|
+
publicKey: number,
|
|
34
|
+
sharedSecret: number,
|
|
35
|
+
): number
|
|
36
|
+
zero(pointer: number, length: number): void
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Instantiated shared cryptographic module. */
|
|
40
|
+
export type Module = WasmModule<Exports>
|
|
41
|
+
|
|
42
|
+
/** Instantiates the shared Ed25519, X25519, and mnemonic module once. */
|
|
43
|
+
export const load = memoize(() => instantiate<Exports>(wasmBase64))
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Generated by `pnpm wasm:build --target=crypto25519`. Do not edit.
|
|
2
|
+
//
|
|
3
|
+
// Compiled from wasm/src/crypto25519.c, wasm/vendor/monocypher/monocypher.c, wasm/vendor/monocypher/monocypher-ed25519.c, wasm/src/ox_rt.c
|
|
4
|
+
// with wasi-sdk 25.0 + binaryen 123.
|
|
5
|
+
//
|
|
6
|
+
// `pnpm wasm:check` rebuilds this file and fails if the bytes differ, so any
|
|
7
|
+
// change to the C or to `wasm/targets.ts` must be followed by `pnpm wasm:build`.
|
|
8
|
+
|
|
9
|
+
/** Base64-encoded WASM binary. */
|
|
10
|
+
export const wasmBase64 =
|
|
11
|
+
'AGFzbQEAAAABQgpgAn9/AGADf39/AGACf38Bf2AEf39/fwBgBH9/f38Bf2AFf39/f38AYAN/f38Bf2AHf39/f39/fwBgAX8AYAABfwMkIwABAwEAAAADAAQCAQABBAUABQEAAAEGAAEAAgACAAcBCAkABQYBAQSAgAQGCAF/AUHwpQQLB7sBCgZtZW1vcnkCABZlZDI1NTE5X2dldF9wdWJsaWNfa2V5AAAMZWQyNTUxOV9zaWduAAIOZWQyNTUxOV92ZXJpZnkACRxlZDI1NTE5X3RvX21vbnRnb21lcnlfc2VjcmV0AAgVeDI1NTE5X2dldF9wdWJsaWNfa2V5ABQYeDI1NTE5X2dldF9zaGFyZWRfc2VjcmV0ABYQbW5lbW9uaWNfdG9fc2VlZAARCWhlYXBfYmFzZQAhBHplcm8AIgrr4AIj3AMBAX8jAEFAaiICJAAgAiABIAAQASACQQA6AAAgAkEAOgABIAJBADoAAiACQQA6AAMgAkEAOgAEIAJBADoABSACQQA6AAYgAkEAOgAHIAJBADoACCACQQA6AAkgAkEAOgAKIAJBADoACyACQQA6AAwgAkEAOgANIAJBADoADiACQQA6AA8gAkEAOgAQIAJBADoAESACQQA6ABIgAkEAOgATIAJBADoAFCACQQA6ABUgAkEAOgAWIAJBADoAFyACQQA6ABggAkEAOgAZIAJBADoAGiACQQA6ABsgAkEAOgAcIAJBADoAHSACQQA6AB4gAkEAOgAfIAJBADoAICACQQA6ACEgAkEAOgAiIAJBADoAIyACQQA6ACQgAkEAOgAlIAJBADoAJiACQQA6ACcgAkEAOgAoIAJBADoAKSACQQA6ACogAkEAOgArIAJBADoALCACQQA6AC0gAkEAOgAuIAJBADoALyACQQA6ADAgAkEAOgAxIAJBADoAMiACQQA6ADMgAkEAOgA0IAJBADoANSACQQA6ADYgAkEAOgA3IAJBADoAOCACQQA6ADkgAkEAOgA6IAJBADoAOyACQQA6ADwgAkEAOgA9IAJBADoAPiACQQA6AD8gAkFAayQAC4UPARp/IwBBoAJrIgMkACADIAItAAA6AAAgAyACLwABOwABIAMgAigAAzYAAyADIAItAAciBDoAByADIAItAAgiBToACCADIAItAAkiBjoACSADIAItAAoiBzoACiADIAItAAsiCDoACyADIAItAAwiCToADCADIAItAA0iCjoADSADIAItAA4iCzoADiADIAItAA8iDDoADyADIAItABAiDToAECADIAItABEiDjoAESADIAItABIiDzoAEiADIAItABMiEDoAEyADIAItABQiEToAFCADIAItABUiEjoAFSADIAItABYiEzoAFiADIAItABciFDoAFyADIAItABgiFToAGCADIAItABkiFjoAGSADIAItABoiFzoAGiADIAItABsiGDoAGyADIAItABwiGToAHCADIAItAB0iGjoAHSADIAItAB4iGzoAHiADIAItAB8iHDoAHyACQQA6AAAgAkEAOgABIAJBADoAAiACQQA6AAMgAkEAOgAEIAJBADoABSACQQA6AAYgAkEAOgAHIAJBADoACCACQQA6AAkgAkEAOgAKIAJBADoACyACQQA6AAwgAkEAOgANIAJBADoADiACQQA6AA8gAkEAOgAQIAJBADoAESACQQA6ABIgAkEAOgATIAJBADoAFCACQQA6ABUgAkEAOgAWIAJBADoAFyACQQA6ABggAkEAOgAZIAJBADoAGiACQQA6ABsgAkEAOgAcIAJBADoAHSACQQA6AB4gAkEAOgAfIAAgAy0AADoAACAAIAMtAAE6AAEgACADLQACOgACIAAgAy0AAzoAAyAAIAMtAAQ6AAQgACADLQAFOgAFIAAgHDoAHyAAIBs6AB4gACAaOgAdIAAgGToAHCAAIBg6ABsgACAXOgAaIAAgFjoAGSAAIBU6ABggACAUOgAXIAAgEzoAFiAAIBI6ABUgACAROgAUIAAgEDoAEyAAIA86ABIgACAOOgARIAAgDToAECAAIAw6AA8gACALOgAOIAAgCjoADSAAIAk6AAwgACAIOgALIAAgBzoACiAAIAY6AAkgACAFOgAIIAAgBDoAByAAIAMtAAY6AAYgA0EANgKYAiADQgA3A5ACIANCADcDiAIgA0L5wvibkaOz8NsANwOAASADQuv6htq/tfbBHzcDeCADQp/Y+dnCkdqCm383A3AgA0LRhZrv+s+Uh9EANwNoIANC8e30+KWn/aelfzcDYCADQqvw0/Sv7ry3PDcDWCADQrvOqqbY0Ouzu383A1AgA0KIkvOd/8z5hOoANwNIIANCADcDgAIgA0IANwP4ASADQgA3A/ABIANCADcD6AEgA0IANwPgASADQgA3A9gBIANCADcD0AEgA0IANwPIASADQgA3A8ABIANCADcDuAEgA0IANwOwASADQgA3A6gBIANCADcDoAEgA0IANwOYASADQgA3A5ABIANCADcDiAEgA0HIAGoiAiADQSAQAyACIAMQBCADIAMtAABB+AFxOgAAIAMgAy0AH0E/cUHAAHI6AB8gASADEAYgACABLQAAOgAgIAAgAS0AAToAISAAIAEtAAI6ACIgACABLQADOgAjIAAgAS0ABDoAJCAAIAEtAAU6ACUgACABLQAGOgAmIAAgAS0ABzoAJyAAIAEtAAg6ACggACABLQAJOgApIAAgAS0ACjoAKiAAIAEtAAs6ACsgACABLQAMOgAsIAAgAS0ADToALSAAIAEtAA46AC4gACABLQAPOgAvIAAgAS0AEDoAMCAAIAEtABE6ADEgACABLQASOgAyIAAgAS0AEzoAMyAAIAEtABQ6ADQgACABLQAVOgA1IAAgAS0AFjoANiAAIAEtABc6ADcgACABLQAYOgA4IAAgAS0AGToAOSAAIAEtABo6ADogACABLQAbOgA7IAAgAS0AHDoAPCAAIAEtAB06AD0gACABLQAeOgA+IAAgAS0AHzoAPyADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIANBADoACCADQQA6AAkgA0EAOgAKIANBADoACyADQQA6AAwgA0EAOgANIANBADoADiADQQA6AA8gA0EAOgAQIANBADoAESADQQA6ABIgA0EAOgATIANBADoAFCADQQA6ABUgA0EAOgAWIANBADoAFyADQQA6ABggA0EAOgAZIANBADoAGiADQQA6ABsgA0EAOgAcIANBADoAHSADQQA6AB4gA0EAOgAfIANBADoAICADQQA6ACEgA0EAOgAiIANBADoAIyADQQA6ACQgA0EAOgAlIANBADoAJiADQQA6ACcgA0EAOgAoIANBADoAKSADQQA6ACogA0EAOgArIANBADoALCADQQA6AC0gA0EAOgAuIANBADoALyADQQA6ADAgA0EAOgAxIANBADoAMiADQQA6ADMgA0EAOgA0IANBADoANSADQQA6ADYgA0EAOgA3IANBADoAOCADQQA6ADkgA0EAOgA6IANBADoAOyADQQA6ADwgA0EAOgA9IANBADoAPiADQQA6AD8gA0GgAmokAAuSFAEFfyMAQaAEayIEJAAgBEEgaiIFIAQgABABIARBADYC2AMgBEIANwPQAyAEQgA3A8gDIARC+cL4m5Gjs/DbADcDwAIgBELr+obav7X2wR83A7gCIARCn9j52cKR2oKbfzcDsAIgBELRhZrv+s+Uh9EANwOoAiAEQvHt9Pilp/2npX83A6ACIARCq/DT9K/uvLc8NwOYAiAEQrvOqqbY0Ouzu383A5ACIARCiJLznf/M+YTqADcDiAIgBEIANwPAAyAEQgA3A7gDIARCADcDsAMgBEIANwOoAyAEQgA3A6ADIARCADcDmAMgBEIANwOQAyAEQgA3A4gDIARCADcDgAMgBEIANwP4AiAEQgA3A/ACIARCADcD6AIgBEIANwPgAiAEQgA3A9gCIARCADcD0AIgBEIANwPIAiAEQYgCaiIAIAVBIBADIAAgBEHAAWoiBxAEIAQgBC0AwAFB+AFxOgDAASAEIAQtAN8BQT9xQcAAcjoA3wEgBEEANgLYAyAEQgA3A9ADIARCADcDyAMgBEL5wvibkaOz8NsANwPAAiAEQuv6htq/tfbBHzcDuAIgBEKf2PnZwpHagpt/NwOwAiAEQtGFmu/6z5SH0QA3A6gCIARC8e30+KWn/aelfzcDoAIgBEKr8NP0r+68tzw3A5gCIARCu86qptjQ67O7fzcDkAIgBEKIkvOd/8z5hOoANwOIAiAEQgA3A8ADIARCADcDuAMgBEIANwOwAyAEQgA3A6gDIARCADcDoAMgBEIANwOYAyAEQgA3A5ADIARCADcDiAMgBEIANwOAAyAEQgA3A/gCIARCADcD8AIgBEIANwPoAiAEQgA3A+ACIARCADcD2AIgBEIANwPQAiAEQgA3A8gCIAAgBEHgAWpBIBADIAAgASACEAMgACAEQeADaiIFEAQgBEGgAWoiBiAFEAUgBEHgAGoiCCAGEAYgBEEANgLYAyAEQgA3A9ADIARCADcDyAMgBEL5wvibkaOz8NsANwPAAiAEQuv6htq/tfbBHzcDuAIgBEKf2PnZwpHagpt/NwOwAiAEQtGFmu/6z5SH0QA3A6gCIARC8e30+KWn/aelfzcDoAIgBEKr8NP0r+68tzw3A5gCIARCu86qptjQ67O7fzcDkAIgBEKIkvOd/8z5hOoANwOIAiAEQgA3A8ADIARCADcDuAMgBEIANwOwAyAEQgA3A6gDIARCADcDoAMgBEIANwOYAyAEQgA3A5ADIARCADcDiAMgBEIANwOAAyAEQgA3A/gCIARCADcD8AIgBEIANwPoAiAEQgA3A+ACIARCADcD2AIgBEIANwPQAiAEQgA3A8gCIAAgCEEgEAMgACAEQUBrQSAQAyAAIAEgAhADIAAgBRAEIARBgAFqIgAgBRAFIAMgBC0AYDoAACADIAQpAGE3AAEgAyAEKQBpNwAJIAMgBCkAcTcAESADIAQoAHk2ABkgAyAELwB9OwAdIAMgBC0AfzoAHyADQSBqIAAgByAGEAcgBEEAOgDAASAEQQA6AMEBIARBADoAwgEgBEEAOgDDASAEQQA6AMQBIARBADoAxQEgBEEAOgDGASAEQQA6AMcBIARBADoAyAEgBEEAOgDJASAEQQA6AMoBIARBADoAywEgBEEAOgDMASAEQQA6AM0BIARBADoAzgEgBEEAOgDPASAEQQA6ANABIARBADoA0QEgBEEAOgDSASAEQQA6ANMBIARBADoA1AEgBEEAOgDVASAEQQA6ANYBIARBADoA1wEgBEEAOgDYASAEQQA6ANkBIARBADoA2gEgBEEAOgDbASAEQQA6ANwBIARBADoA3QEgBEEAOgDeASAEQQA6AN8BIARBADoA4AEgBEEAOgDhASAEQQA6AOIBIARBADoA4wEgBEEAOgDkASAEQQA6AOUBIARBADoA5gEgBEEAOgDnASAEQQA6AOgBIARBADoA6QEgBEEAOgDqASAEQQA6AOsBIARBADoA7AEgBEEAOgDtASAEQQA6AO4BIARBADoA7wEgBEEAOgDwASAEQQA6APEBIARBADoA8gEgBEEAOgDzASAEQQA6APQBIARBADoA9QEgBEEAOgD2ASAEQQA6APcBIARBADoA+AEgBEEAOgD5ASAEQQA6APoBIARBADoA+wEgBEEAOgD8ASAEQQA6AP0BIARBADoA/gEgBEEAOgD/ASAEQQA6AKABIARBADoAoQEgBEEAOgCiASAEQQA6AKMBIARBADoApAEgBEEAOgClASAEQQA6AKYBIARBADoApwEgBEEAOgCoASAEQQA6AKkBIARBADoAqgEgBEEAOgCrASAEQQA6AKwBIARBADoArQEgBEEAOgCuASAEQQA6AK8BIARBADoAsAEgBEEAOgCxASAEQQA6ALIBIARBADoAswEgBEEAOgC0ASAEQQA6ALUBIARBADoAtgEgBEEAOgC3ASAEQQA6ALgBIARBADoAuQEgBEEAOgC6ASAEQQA6ALsBIARBADoAvAEgBEEAOgC9ASAEQQA6AL4BIARBADoAvwEgBEEAOgAgIARBADoAISAEQQA6ACIgBEEAOgAjIARBADoAJCAEQQA6ACUgBEEAOgAmIARBADoAJyAEQQA6ACggBEEAOgApIARBADoAKiAEQQA6ACsgBEEAOgAsIARBADoALSAEQQA6AC4gBEEAOgAvIARBADoAMCAEQQA6ADEgBEEAOgAyIARBADoAMyAEQQA6ADQgBEEAOgA1IARBADoANiAEQQA6ADcgBEEAOgA4IARBADoAOSAEQQA6ADogBEEAOgA7IARBADoAPCAEQQA6AD0gBEEAOgA+IARBADoAPyAEQQA6AEAgBEEAOgBBIARBADoAQiAEQQA6AEMgBEEAOgBEIARBADoARSAEQQA6AEYgBEEAOgBHIARBADoASCAEQQA6AEkgBEEAOgBKIARBADoASyAEQQA6AEwgBEEAOgBNIARBADoATiAEQQA6AE8gBEEAOgBQIARBADoAUSAEQQA6AFIgBEEAOgBTIARBADoAVCAEQQA6AFUgBEEAOgBWIARBADoAVyAEQQA6AFggBEEAOgBZIARBADoAWiAEQQA6AFsgBEEAOgBcIARBADoAXSAEQQA6AF4gBEEAOgBfIARBADoAACAEQQA6AAEgBEEAOgACIARBADoAAyAEQQA6AAQgBEEAOgAFIARBADoABiAEQQA6AAcgBEEAOgAIIARBADoACSAEQQA6AAogBEEAOgALIARBADoADCAEQQA6AA0gBEEAOgAOIARBADoADyAEQQA6ABAgBEEAOgARIARBADoAEiAEQQA6ABMgBEEAOgAUIARBADoAFSAEQQA6ABYgBEEAOgAXIARBADoAGCAEQQA6ABkgBEEAOgAaIARBADoAGyAEQQA6ABwgBEEAOgAdIARBADoAHiAEQQA6AB8gBEGgBGokAAusDAIBfgZ/AkAgAkUNACAAKALQASIFQQdxBEBBACAFa0EHcSIEIAIgAiAESxshBwJAIARFDQAgATEAACEDIAAgBUEBaiIENgLQASAAQUBrIgggBUF4cWoiBiAGKQMAIAMgBUF/c0EDdEE4ca2GhDcDACAHQQFGBEAgBCEFDAELIAExAAEhAyAAIAVBAmoiBjYC0AEgCCAEQXhxaiIJIAkpAwAgAyAEQX9zQQN0QThxrYaENwMAIAdBAkYEQCAGIQUMAQsgATEAAiEDIAAgBUEDaiIENgLQASAIIAZBeHFqIgkgCSkDACADIAZBf3NBA3RBOHGthoQ3AwAgB0EDRgRAIAQhBQwBCyABMQADIQMgACAFQQRqIgY2AtABIAggBEF4cWoiCSAJKQMAIAMgBEF/c0EDdEE4ca2GhDcDACAHQQRGBEAgBiEFDAELIAExAAQhAyAAIAVBBWoiBDYC0AEgCCAGQXhxaiIJIAkpAwAgAyAGQX9zQQN0QThxrYaENwMAIAdBBUYEQCAEIQUMAQsgATEABSEDIAAgBUEGaiIGNgLQASAIIARBeHFqIgkgCSkDACADIARBf3NBA3RBOHGthoQ3AwAgB0EGRgRAIAYhBQwBCyABMQAGIQMgACAFQQdqIgU2AtABIAggBkF4cWoiBCAEKQMAIAMgBkF/c0EDdEE4ca2GhDcDAAsgAiAHayECIAEgB2ohAQsgBUH/AHEEQEEAIQRBACAFa0H/AHEiBiACIAIgBksbIgZBCE8EQCAAIAVBeHFqQUBrIQcgBkF4cSEIA0AgBCAHaiABIARqKQAAIgNCOIYgA0KA/gODQiiGhCADQoCA/AeDQhiGIANCgICA+A+DQgiGhIQgA0IIiEKAgID4D4MgA0IYiEKAgPwHg4QgA0IoiEKA/gODIANCOIiEhIQ3AwAgCCAEQQhqIgRHDQALCyAAIAZB+ABxIgQgBWoiBTYC0AEgAiAEayECIAEgBGohAQsgBUGAAUYEQCAAIAApA8gBIgNCgAh8NwPIASADQoB4WgRAIAAgACkDwAFCAXw3A8ABCyAAECAgAEIANwO4ASAAQgA3A7ABIABCADcDqAEgAEIANwOgASAAQgA3A5gBIABCADcDkAEgAEIANwOIASAAQgA3A4ABIABCADcDeCAAQgA3A3AgAEIANwNoIABCADcDYCAAQgA3A1ggAEIANwNQIABCADcDSCAAQgA3A0AgAEEANgLQAUEAIQULIAJBgAFPBEAgAkEHdiEIIABBQGshBkEAIQcDQEEAIQQDQCAEIAZqIAEgBGopAAAiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhDcDACAEQQhqIgRBgAFHDQALIAAgACkDyAEiA0KACHw3A8gBIANCgHhaBEAgACAAKQPAAUIBfDcDwAELIAAQICAAQgA3A7gBIABCADcDsAEgAEIANwOoASAAQgA3A6ABIABCADcDmAEgAEIANwOQASAAQgA3A4gBIABCADcDgAEgAEIANwN4IABCADcDcCAAQgA3A2ggAEIANwNgIABCADcDWCAAQgA3A1AgAEIANwNIIAZCADcDAEEAIQUgAEEANgLQASABQYABaiEBIAggB0EBaiIHRw0ACwsgAkH/AHEiBkUNACAAQUBrIQkgBkEITwRAIAZBeHEhB0EAIQQDQCAEIAlqIAEgBGopAAAiA0I4hiADQoD+A4NCKIaEIANCgID8B4NCGIYgA0KAgID4D4NCCIaEhCADQgiIQoCAgPgPgyADQhiIQoCA/AeDhCADQiiIQoD+A4MgA0I4iISEhDcDACAHIARBCGoiBEcNAAsLIAAgAkH4AHEiByAFaiIENgLQASAGIAdGDQAgASAHaiEBIAJBA3RBwAdxIAVBA3RqIQhBAEEBIAYgB2siAiACQQFNG2shBQNAIAExAAAhAyAAIARBAWoiAjYC0AEgCSAEQXhxaiIEIAQpAwAgAyAIQX9zQThxrYaENwMAIAFBAWohASAIQQhqIQggAiEEIAVBAWoiBQ0ACwsLwAkCAn4CfyAAKALQASIERQRAIABCADcDuAEgAEIANwOwASAAQgA3A6gBIABCADcDoAEgAEIANwOYASAAQgA3A5ABIABCADcDiAEgAEIANwOAASAAQgA3A3ggAEIANwNwIABCADcDaCAAQgA3A2AgAEIANwNYIABCADcDUCAAQgA3A0ggAEIANwNACyAAIARBeHFqQUBrIgUgBSkDAEKAASAEQQN0IgVBf3NBOHGthoQ3AwAgACAAKQPIASIDIAWtfCICNwPIASACIANUBEAgACAAKQPAAUIBfDcDwAELIARB8ABPBEAgABAgIABCADcDqAEgAEIANwOgASAAQgA3A5gBIABCADcDkAEgAEIANwOIASAAQgA3A4ABIABCADcDeCAAQgA3A3AgAEIANwNoIABCADcDYCAAQgA3A1ggAEIANwNQIABCADcDSCAAQgA3A0AgACkDyAEhAgsgACACNwO4ASAAIAApA8ABNwOwASAAECAgASAAKQMAIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3AAAgASAAKQMIIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3AAggASAAKQMQIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ABAgASAAKQMYIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ABggASAAKQMgIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ACAgASAAKQMoIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ACggASAAKQMwIgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ADAgASAAKQM4IgJCOIYgAkKA/gODQiiGhCACQoCA/AeDQhiGIAJCgICA+A+DQgiGhIQgAkIIiEKAgID4D4MgAkIYiEKAgPwHg4QgAkIoiEKA/gODIAJCOIiEhIQ3ADhBACEEA0AgACAEaiIBQQA6AAAgAUEBakEAOgAAIAFBAmpBADoAACABQQNqQQA6AAAgAUEEakEAOgAAIAFBBWpBADoAACABQQZqQQA6AAAgAUEHakEAOgAAIARBCGoiBEHYAUcNAAsLtAQBAX8jAEFAaiICJAAgAiABKAAANgIAIAIgASkABDcCBCACIAEpAAw3AgwgAiABKQAUNwIUIAIgASkAHDcCHCACIAEpACQ3AiQgAiABKQAsNwIsIAIgASkANDcCNCACIAEoADw2AjwgACACEB0gAkEAOgAAIAJBADoAASACQQA6AAIgAkEAOgADIAJBADoABCACQQA6AAUgAkEAOgAGIAJBADoAByACQQA6AAggAkEAOgAJIAJBADoACiACQQA6AAsgAkEAOgAMIAJBADoADSACQQA6AA4gAkEAOgAPIAJBADoAECACQQA6ABEgAkEAOgASIAJBADoAEyACQQA6ABQgAkEAOgAVIAJBADoAFiACQQA6ABcgAkEAOgAYIAJBADoAGSACQQA6ABogAkEAOgAbIAJBADoAHCACQQA6AB0gAkEAOgAeIAJBADoAHyACQQA6ACAgAkEAOgAhIAJBADoAIiACQQA6ACMgAkEAOgAkIAJBADoAJSACQQA6ACYgAkEAOgAnIAJBADoAKCACQQA6ACkgAkEAOgAqIAJBADoAKyACQQA6ACwgAkEAOgAtIAJBADoALiACQQA6AC8gAkEAOgAwIAJBADoAMSACQQA6ADIgAkEAOgAzIAJBADoANCACQQA6ADUgAkEAOgA2IAJBADoANyACQQA6ADggAkEAOgA5IAJBADoAOiACQQA6ADsgAkEAOgA8IAJBADoAPSACQQA6AD4gAkEAOgA/IAJBQGskAAuWDQEGfyMAQcAEayICJAAgAkGgBGoiAyABQaARQcAREAcgAkIANwK4AyACQgA3ArADIAJCADcCqAMgAkIANwKgAyACQgA3ApgDIAJCADcCkAMgAkIANwKIAyACQgA3AoADIAJCADcC+AIgAkIBNwLwAiACQgA3AugCIAJCADcC4AIgAkIANwLYAiACQgA3AtACIAJCATcCyAIgAkIANwKgASACQgA3ApgBIAJCADcCkAEgAkIANwKIASACQgA3AoABIAJCADcCeCACQgA3AnAgAkIANwJoIAJCADcCYCACQgE3AlggAkIANwJQIAJCADcCSCACQgA3AkAgAkIANwI4IAJCATcCMCACQgA3AiggAkIANwIgIAJCADcCGCACQgA3AhAgAkIANwIIIAJBCGoiASACQcgCaiIEIAJB8ANqIgUg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ASACQgA3A9ABIAJCADcDyAEgAkIANwPAASACQgA3A7gBIAJCADcDsAEgAkIANwOoASACQgA3A6ABIAJCADcDmAEgAkIANwOQASACQgA3A4gBIAJByABqIgMgAEEgEAMgAyACEAQgASACLQAAOgAAIAEgAikAATcAASABIAItAAk6AAkgASACKAEKNgAKIAEgAi8BDjsADiABIAItABA6ABAgASACKAARNgARIAEgAi8AFTsAFSABIAItABc6ABcgASACLQAYOgAYIAEgAi8AGTsAGSABIAIoABs2ABsgASABLQAAQfgBcToAACABIAItAB9BP3FBwAByOgAfIAJBADoAACACQQA6AAEgAkEAOgACIAJBADoAAyACQQA6AAQgAkEAOgAFIAJBADoABiACQQA6AAcgAkEAOgAIIAJBADoACSACQQA6AAogAkEAOgALIAJBADoADCACQQA6AA0gAkEAOgAOIAJBADoADyACQQA6ABAgAkEAOgARIAJBADoAEiACQQA6ABMgAkEAOgAUIAJBADoAFSACQQA6ABYgAkEAOgAXIAJBADoAGCACQQA6ABkgAkEAOgAaIAJBADoAGyACQQA6ABwgAkEAOgAdIAJBADoAHiACQQA6AB8gAkEAOgAgIAJBADoAISACQQA6ACIgAkEAOgAjIAJBADoAJCACQQA6ACUgAkEAOgAmIAJBADoAJyACQQA6ACggAkEAOgApIAJBADoAKiACQQA6ACsgAkEAOgAsIAJBADoALSACQQA6AC4gAkEAOgAvIAJBADoAMCACQQA6ADEgAkEAOgAyIAJBADoAMyACQQA6ADQgAkEAOgA1IAJBADoANiACQQA6ADcgAkEAOgA4IAJBADoAOSACQQA6ADogAkEAOgA7IAJBADoAPCACQQA6AD0gAkEAOgA+IAJBADoAPyACQaACaiQAC9kQAgN/CH4jAEHACGsiBCQAIARBADYC8AMgBEIANwPoAyAEQgA3A+ADIARC+cL4m5Gjs/DbADcD2AIgBELr+obav7X2wR83A9ACIARCn9j52cKR2oKbfzcDyAIgBELRhZrv+s+Uh9EANwPAAiAEQvHt9Pilp/2npX83A7gCIARCq/DT9K/uvLc8NwOwAiAEQrvOqqbY0Ouzu383A6gCIARCiJLznf/M+YTqADcDoAIgBEIANwPYAyAEQgA3A9ADIARCADcDyAMgBEIANwPAAyAEQgA3A7gDIARCADcDsAMgBEIANwOoAyAEQgA3A6ADIARCADcDmAMgBEIANwOQAyAEQgA3A4gDIARCADcDgAMgBEIANwP4AiAEQgA3A/ACIARCADcD6AIgBEIANwPgAiAEQaACaiIGIABBIBADIAYgA0EgEAMgBiABIAIQAyAGIARBoAdqIgIQBCAEIAIQBSAANQA8IQggADUAOCEJIAA1ADQhCiAANQAwIQsgADUALCEMIAA1ACghDSAANQAkIQ4gADUAICEHAkAgBEGABmoiASADEAoNACAEQeAEaiAAEAoNACAJIAogCyAMIA0gDiAHQpPYqJgKfEIgiHxC5bm2vwp8QiCIfEKpxqHoBXxCIIh8QqGMhNkOfEIgiHxC/////w98QiCIfEL/////D3xCIIh8Qv////8PfEIgiCAIfEKAgICAAVYNACAAQSBqIQUgAiABIARBgAFqIgAQCyAGIAEQDCAAIAIgBhANIARBwANqIAAQDEH9ASEAAn8CQAJAAkADQCAEIABBAWsiAUEDdmotAAAgAUEHcXZBAXENAyAEIABBAmsiAUEDdmotAAAgAUEHcXZBAXENASAEIABBA2siAUEDdmotAAAgAUEHcXZBAXENAiABIgBBAUsNAAtBAAwDCyAAQQJrDAILIABBA2sMAQsgAEEBawshACAEQf8BOgB+IARB//8DOwF8IAQgAEEBaiICOgB/Qf0BIQACfwJAAkACQANAIAUgAEEBayIBQQN2ai0AACABQQdxdkEBcQ0DIAUgAEECayIBQQN2ai0AACABQQdxdkEBcQ0BIAUgAEEDayIBQQN2ai0AACABQQdxdkEBcQ0CIAEiAEEBSw0AC0EADAMLIABBAmsMAgsgAEEDawwBCyAAQQFrCyEAIARB//8DOwF4IARCADcCmAcgBEIANwKQByAEQgA3AogHIARCADcCgAcgBEIANwL4BiAEQgA3AvAGIARCADcC6AYgBEIANwLgBiAEQgA3AtgGIARCATcC0AYgBEIANwLIBiAEQgA3AsAGIARCADcCuAYgBEIANwKwBiAEQgE3AqgGIARCADcCoAYgBEIANwKYBiAEQgA3ApAGIARCADcCiAYgBEIANwKABiAEQf8BOgB6IAQgAEEBaiIAOgB7IAJB/wFxIgEgAEH/AXEiACAAIAFJGyEDA0AgBEGABmoiASABIARBgAFqEAsgBEH8AGpBAyADIgAgBBAOIQMgBEH4AGpBBSAAIAUQDiECAkAgA0EASgRAIAEgASAEQaACaiADQQF2QaABbGoQDQwBCyADQQBODQAgBCAEQaACakEAIANrQQF2QaABbGoiASgCADYCyAcgBCABKQIENwLMByAEIAEpAgw3AtQHIAQgASkCFDcC3AcgBCABKQIcNwLkByAEIAEoAiQ2AuwHIAQgASkDKDcCoAcgBCABKQMwNwKoByAEIAEoAjg2ArAHIAQgASgCPDYCtAcgBCABKQNANwK4ByAEIAEpA0g3AsAHIAQgASkDUDcC8AcgBCABKQNYNwL4ByAEIAEpA2A3AoAIIAQgASkDaDcCiAggBCABKQNwNwKQCCAEQQAgASgCeGs2ApgIIARBACABKAJ8azYCnAggBEEAIAEoAoABazYCoAggBEEAIAEoAoQBazYCpAggBEEAIAEoAogBazYCqAggBEEAIAEoAowBazYCrAggBEEAIAEoApABazYCsAggBEEAIAEoApQBazYCtAggBEEAIAEoApgBazYCuAggBEEAIAEoApwBazYCvAggBEGABmoiASABIARBoAdqEA0LAkAgAkEASgRAIARBgAZqIgEgASACQQF2QfgAbEGgCGogBEHQAGogBEEgahAPDAELIAJBAE4NACAEQQAgAmtBAXZB+ABsIgFBwAhqKQMANwLoByAEIAFBuAhqKQMANwLgByAEIAFBsAhqKQMANwLYByAEIAFBqAhqKQMANwLQByAEIAFBoAhqKQMANwLIByAEIAFB6AhqKQMANwLAByAEIAFB4AhqKQMANwK4ByAEIAFB2AhqKQMANwKwByAEIAFB0AhqKQMANwKoByAEIAFByAhqKQMANwKgByAEQQAgAUGUCWooAgBrNgKUCCAEQQAgAUGQCWooAgBrNgKQCCAEQQAgAUGMCWooAgBrNgKMCCAEQQAgAUGICWooAgBrNgKICCAEQQAgAUGECWooAgBrNgKECCAEQQAgAUGACWooAgBrNgKACCAEQQAgAUH8CGooAgBrNgL8ByAEQQAgAUH4CGooAgBrNgL4ByAEQQAgAUH0CGooAgBrNgL0ByAEQQAgAUHwCGooAgBrNgLwByAEQYAGaiIBIAEgBEGgB2ogBEHQAGogBEEgahAPCyAAQQFrIQMgAEEASg0ACyAEQaAHaiIAIARB4ARqIgEQDCAEQYAGaiICIAIgABANIAIgAiABEAsgAiACIAEQCyACIAIgARALIARBgAFqIAIQECAEKQOYASAEKQOQASAEKQOIASAEKQOAAUIBhYSEhCIHQv////8PgyAHQiCIhEIBfUIgiKdBAXEhBQsgBEHACGokACAFC8oGAQ1/IwBBIGsiAiQAIABBKGoiBiABEBcgAEIANwJwIABCADcCaCAAQgA3AmAgAEIANwJYIABCATcCUCAAQfgAaiIDIAYQGSAAIANB8BAQGCAAIAAoAnggACgCUCIEazYCeCAAIAAoAnwgACgCVCIFazYCfCAAIAAoAoABIAAoAlgiB2s2AoABIAAgACgChAEgACgCXCIIazYChAEgACAAKAKIASAAKAJgIglrNgKIASAAIAAoAowBIAAoAmQiCms2AowBIAAgACgCkAEgACgCaCILazYCkAEgACAAKAKUASAAKAJsIgxrNgKUASAAIAAoApgBIAAoAnAiDWs2ApgBIAAgACgCnAEgACgCdCIOazYCnAEgACAEIAAoAgBqNgIAIAAgBSAAKAIEajYCBCAAIAcgACgCCGo2AgggACAIIAAoAgxqNgIMIAAgCSAAKAIQajYCECAAIAogACgCFGo2AhQgACALIAAoAhhqNgIYIAAgDCAAKAIcajYCHCAAIA0gACgCIGo2AiAgACAOIAAoAiRqNgIkIAAgAyAAEBgCQCAAIAAQGkUEQEF/IQQMAQsgACADIAAQGCACIAAQGyACLQAAQQAhBCACQQA6AAAgAkEAOgABIAJBADoAAiACQQA6AAMgAkEAOgAEIAJBADoABSACQQA6AAYgAkEAOgAHIAJBADoACCACQQA6AAkgAkEAOgAKIAJBADoACyACQQA6AAwgAkEAOgANIAJBADoADiACQQA6AA8gAkEAOgAQIAJBADoAESACQQA6ABIgAkEAOgATIAJBADoAFCACQQA6ABUgAkEAOgAWIAJBADoAFyACQQA6ABggAkEAOgAZIAJBADoAGiACQQA6ABsgAkEAOgAcIAJBADoAHSACQQA6AB4gAkEAOgAfQQFxIAEtAB9BB3ZGBEAgAEEAIAAoAgBrNgIAIABBACAAKAIEazYCBCAAQQAgACgCCGs2AgggAEEAIAAoAgxrNgIMIABBACAA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lIfRADcDKCADQvHt9Pilp/2npX83AyAgA0Kr8NP0r+68tzw3AxggA0K7zqqm2NDrs7t/NwMQIANCiJLznf/M+YTqADcDCCADQgA3A8ABIANCADcDuAEgA0IANwOwASADQgA3A6gBIANCADcDoAEgA0IANwOYASADQgA3A5ABIANCADcDiAEgA0IANwOAASADQgA3A3ggA0IANwNwIANCADcDaCADQgA3A2AgA0IANwNYIANCADcDUCADQgA3A0ggA0EIaiIEIAEgAhADIAQgABAEQcAAIQIgACEBDAELIAJFBEBBACECDAMLIAJBA3EhBSACQQRJDQELIAJB/AFxIQhBACEEA0AgACAEaiIGIAEgBGoiBy0AAEE2czoAACAGQQFqIAdBAWotAABBNnM6AAAgBkECaiAHQQJqLQAAQTZzOgAAIAZBA2ogB0EDai0AAEE2czoAACAIIARBBGoiBEcNAAsLIAUEQCABIARqIQEgACAEaiEEA0AgBCABLQAAQTZzOgAAIAFBAWohASAEQQFqIQQgBUEBayIFDQALCyACQf8ASw0BCyACQf8Ac0EAIAJrQQdxIgQEQANAIAAgAmpBNjoAACACQQFqIQIgBEEBayIEDQALC0EHSQ0AQYABIQEgACEEA0AgAiAEakK27Nix48aNmzY3AAAgBEEIaiEEIAIgAUEIayIBRw0ACwsgAEEANgLQAiAAQgA3A8gCIABCADcDwAIgAEL5wvibkaOz8NsANwO4ASAAQuv6htq/tfbBHzcDsAEgAEKf2PnZwpHagpt/NwOoASAAQtGFmu/6z5SH0QA3A6ABIABC8e30+KWn/aelfzcDmAEgAEKr8NP0r+68tzw3A5ABIABCu86qptjQ67O7fzcDiAEgAEKIkvOd/8z5hOoANwOAASAAQgA3A7gCIABCADcDsAIgAEIANwOoAiAAQgA3A6ACIABCADcDmAIgAEIANwOQAiAAQgA3A4gCIABCADcDgAIgAEIANwP4ASAAQgA3A/ABIABCADcD6AEgAEIANwPgASAAQgA3A9gBIABCADcD0AEgAEIANwPIASAAQgA3A8ABIABBgAFqIABBgAEQAyADQeABaiQAC4gEAQR/IABBgAFqIgQgARAEA0AgACACaiIDIAMtAABB6gBzOgAAIANBAWoiBSAFLQAAQeoAczoAACADQQJqIgUgBS0AAEHqAHM6AAAgA0EDaiIDIAMtAABB6gBzOgAAIAJBBGoiAkGAAUcNAAsgAEEANgLQAiAAQgA3A8gCIABCADcDwAIgAEL5wvibkaOz8NsANwO4ASAAQuv6htq/tfbBHzcDsAEgAEKf2PnZwpHagpt/NwOoASAAQtGFmu/6z5SH0QA3A6ABIABC8e30+KWn/aelfzcDmAEgAEKr8NP0r+68tzw3A5ABIABCu86qptjQ67O7fzcDiAEgAEKIkvOd/8z5hOoANwOAASAAQgA3A7gCIABCADcDsAIgAEIANwOoAiAAQgA3A6ACIABCADcDmAIgAEIANwOQAiAAQgA3A4gCIABCADcDgAIgAEIANwP4ASAAQgA3A/ABIABCADcD6AEgAEIANwPgASAAQgA3A9gBIABCADcD0AEgAEIANwPIASAAQgA3A8ABIAQgAEGAARADIAQgAUHAABADIAQgARAEQQAhAgNAIAAgAmoiAUEAOgAAIAFBAWpBADoAACABQQJqQQA6AAAgAUEDakEAOgAAIAFBBGpBADoAACABQQVqQQA6AAAgAUEGakEAOgAAIAFBB2pBADoAACACQQhqIgJB2AJHDQALCwsAIAEgAEGACBAVC9ozAj1/EH4jAEGgA2siAyQAIAMgAS0AAToAASADIAEoAAI2AQIgAyABKQAGNwEGIAMgASkADjcBDiADIAEpABY3ARYgAyABLQAeOgAeIAMgAS0AAEH4AXE6AAAgAyABLQAfQT9xQcAAcjoAHyADQcACaiACEBcgA0IANwOwAiADQgA3A6gCIANCADcDoAIgA0IANwOYAiADQgE3A5ACIANCADcDgAIgA0IANwP4ASADQgA3A/ABIANCADcD6AEgA0IANwPgASADIAMoAsACNgKwASADIAMoAsQCNgK0ASADIAMoAsgCNgK4ASADIAMoAswCNgK8ASADIAMoAtACNgLAASADIAMoAtQCNgLEASADIAMoAtgCNgLIASADIAMoAtwCNgLMASADIAMoAuACNgLQASADIAMoAuQCNgLUASADQgA3A6ABIANCADcDmAEgA0IANwOQASADQgA3A4gBIANCATcDgAFBgAIhAUEAIQIDQCACIQUgA0EAIAUgAyABQQJrIgJBA3ZqLQAAIAJBB3F2QQFxIgJzayIQNgLwAiADKALwAiEFIAMoApACIRogAygCsAEhBCADKAKUAiERIAMoArQBIRYgAygCmAIhCiADKAK4ASEGIAMoApwCIQsgAygCvAEhByADKAKgAiEMIAMoAsABIQggAygCxAEhCSADKAKkAiENIAMoAsgBIQ4gAygCqAIhEiADKALMASEPIAMoAqwCIRMgAygC0AEhFCADKAKwAiEXIAMoAtQBIRUgAygCtAIhGCADIBA2AvACIAMgAygC8AIgAygC4AEiIyADKAKAASIQc3EiJCAQcyIQNgKAASADIAMoAvACIAMoAuQBIiUgAygChAEiGXNxIiYgGXMiGTYChAEgAyADKALwAiADKALoASInIAMoAogBIhxzcSIoIBxzIhw2AogBIAMgAygC8AIgAygC7AEiKSADKAKMASIbc3EiKiAbcyIbNgKMASADIAMoAvACIAMoAvABIisgAygCkAEiHXNxIiwgHXMiHTYCkAEgAyADKALwAiADKAL0ASItIAMoApQBIh5zcSIuIB5zIh42ApQBIAMgAygC8AIgAygC+AEiLyADKAKYASIfc3EiMCAfcyIfNgKYASADIAMoAvACIAMoAvwBIjEgAygCnAEiIHNxIjIgIHMiIDYCnAEgAyADKALwAiADKAKAAiIzIAMoAqABIiFzcSI0ICFzIiE2AqABIAMgAygC8AIgAygChAIiNSADKAKkASIic3EiNiAicyIiNgKkASADIBUgBSAVIBhzcSIVcyI3ICJrNgJ0IAMgFCAFIBQgF3NxIhRzIjggIWs2AnAgAyAPIAUgDyATc3EiD3MiOSAgazYCbCADIA4gBSAOIBJzcSIOcyI6IB9rNgJoIAMgCSAFIAkgDXNxIglzIjsgHms2AmQgAyAIIAUgCCAMc3EiCHMiPCAdazYCYCADIAcgBSAHIAtzcSIHcyI9IBtrNgJcIAMgBiAFIAYgCnNxIgZzIj4gHGs2AlggAyAWIAUgESAWc3EiFnMiPyAZazYCVCADIAUgBCAac3EiBSAEcyIEIBBrNgJQIAMgFSAYcyIVIDUgNnMiGGs2AkQgAyAUIBdzIhQgMyA0cyIXazYCQCADIA8gE3MiDyAxIDJzIhNrNgI8IAMgDiAScyIOIC8gMHMiEms2AjggAyAJIA1zIgkgLSAucyINazYCNCADIAggDHMiDCArICxzIghrNgIwIAMgByALcyILICkgKnMiB2s2AiwgAyAGIApzIgogJyAocyIGazYCKCADIBEgFnMiESAlICZzIhZrNgIkIAMgBSAacyIFICMgJHMiGms2AiAgAyAVIBhqNgK0AiADIBQgF2o2ArACIAMgDyATajYCrAIgAyAOIBJqNgKoAiADIAkgDWo2AqQCIAMgCCAMajYCoAIgAyAHIAtqNgKcAiADIAYgCmo2ApgCIAMgESAWajYClAIgAyAFIBpqNgKQAiADICIgN2o2AoQCIAMgISA4ajYCgAIgAyAgIDlqNgL8ASADIB8gOmo2AvgBIAMgHiA7ajYC9AEgAyAdIDxqNgLwASADIBsgPWo2AuwBIAMgHCA+ajYC6AEgAyAZID9qNgLkASADIAQgEGo2AuABIANBgAFqIhYgA0HQAGoiESADQZACaiIaEBggA0HgAWoiBSAFIANBIGoiBBAYIBEgBBAZIAQgGhAZIAMgAygC4AEiCiADKAKAASIGajYCsAEgAyADKALkASILIAMoAoQBIgdqNgK0ASADIAMoAugBIgwgAygCiAEiCGo2ArgBIAMgAygC7AEiCSADKAKMASINajYCvAEgAyADKALwASIOIAMoApABIhJqNgLAASADIAMoAvQBIg8gAygClAEiE2o2AsQBIAMgEyAPazYC9AEgAyASIA5rNgLwASADIAggDGs2AugBIAMgByALazYC5AEgAyAGIAprNgLgASADIA0gCWs2AuwBIAMgAygC+AEiCiADKAKYASIGajYCyAEgAyADKAL8ASILIAMoApwBIgdqNgLMASADIAMoAoACIgwgAygCoAEiCGo2AtABIAMgAygChAIiCSADKAKkASINajYC1AEgAyANIAlrNgKEAiADIAggDGs2AoACIAMgByALazYC/AEgAyAGIAprNgL4ASAaIAQgERAYIAMgAygCICADKAJQIgprIgY2AiAgAyADKAI0IAMoAmQiC2siBzYCNCADIAMoAjAgAygCYCIMayIINgIwIAMgAygCOCADKAJoIglrIg02AjggAyADKAIsIAMoAlwiDmsiEjYCLCADIAMoAiggAygCWCIPayITNgIoIAMgAygCJCADKAJUIhRrIhc2AiQgAyADKAI8IAMoAmwiFWsiGDYCPCADIAMoAkAgAygCcCIQayIZNgJAIAMgAygCRCADKAJ0IhxrIhs2AkQgBSAFEBkgBqxCwrYHfiJB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QQA6AIEDIANBADoAggMgA0EAOgCDAyADQQA6AIQDIANBADoAhQMgA0EAOgCGAyADQQA6AIcDIANBADoAiAMgA0EAOgCJAyADQQA6AIoDIANBADoAiwMgA0EAOgCMAyADQQA6AI0DIANBADoAjgMgA0EAOgCPAyADQQA6AJADIANBADoAkQMgA0EAOgCSAyADQQA6AJMDIANBADoAlAMgA0EAOgCVAyADQQA6AJYDIANBADoAlwMgGiAaIAUQGCAAIBoQGyADQQA6AMACIANBADoAwQIgA0EAOgDCAiADQQA6AMMCIANBADoAxAIgA0EAOgDFAiADQQA6AMYCIANBADoAxwIgA0EAOgDIAiADQQA6AMkCIANBADoAygIgA0EAOgDLAiADQQA6AMwCIANBADoAzQIgA0EAOgDOAiADQQA6AM8CIANBADoA0AIgA0EAOgDRAiADQQA6ANICIANBADoA0wIgA0EAOgDUAiADQQA6ANUCIANBADoA1gIgA0EAOgDXAiADQQA6ANgCIANBADoA2QIgA0EAOgDaAiADQQA6ANsCIANBADoA3AIgA0EAOgDdAiADQQA6AN4CIANBADoA3wIgA0EAOgDgAiADQQA6AOECIANBADoA4gIgA0EAOgDjAiADQQA6AOQCIANBADoA5QIgA0EAOgDmAiADQQA6AOcCIANBADoAkAIgA0EAOgCRAiADQQA6AJICIANBADoAkwIgA0EAOgCUAiADQQA6AJUCIANBADoAlgIgA0EAOgCXAiADQQA6AJgCIANBADoAmQIgA0EAOgCaAiADQQA6AJsCIANBADoAnAIgA0EAOgCdAiADQQA6AJ4CIANBADoAnwIgA0EAOgCgAiADQQA6AKECIANBADoAogIgA0EAOgCjAiADQQA6AKQCIANBADoApQIgA0EAOgCmAiADQQA6AKcCIANBADoAqAIgA0EAOgCpAiADQQA6AKoCIANBADoAqwIgA0EAOgCsAiADQQA6AK0CIANBADoArgIgA0EAOgCvAiADQQA6ALACIANBADoAsQIgA0EAOgCyAiADQQA6ALMCIANBADoAtAIgA0EAOgC1AiADQQA6ALYCIANBADoAtwIgA0EAOgDgASADQQA6AOEBIANBADoA4gEgA0EAOgDjASADQQA6AOQBIANBADoA5QEgA0EAOgDmASADQQA6AOcBIANBADoA6AEgA0EAOgDpASADQQA6AOoBIANBADoA6wEgA0EAOgDsASADQQA6AO0BIANBADoA7gEgA0EAOgDvASADQQA6APABIANBADoA8QEgA0EAOgDyASADQQA6APMBIANBADoA9AEgA0EAOgD1ASADQQA6APYBIANBADoA9wEgA0EAOgD4ASADQQA6APkBIANBADoA+gEgA0EAOgD7ASADQQA6APwBIANBADoA/QEgA0EAOgD+ASADQQA6AP8BIANBADoAgAIgA0EAOgCBAiADQQA6AIICIANBADoAgwIgA0EAOgCEAiADQQA6AIUCIANBADoAhgIgA0EAOgCHAiADQQA6AFAgA0EAOgBRIANBADoAUiADQQA6AFMgA0EAOgBUIANBADoAVSADQQA6AFYgA0EAOgBXIANBADoAWCADQQA6AFkgA0EAOgBaIANBADoAWyADQQA6AFwgA0EAOgBdIANBADoAXiADQQA6AF8gA0EAOgBgIANBADoAYSADQQA6AGIgA0EAOgBjIANBADoAZCADQQA6AGUgA0EAOgBmIANBADoAZyADQQA6AGggA0EAOgBpIANBADoAaiADQQA6AGsgA0EAOgBsIANBADoAbSADQQA6AG4gA0EAOgBvIANBADoAcCADQQA6AHEgA0EAOgByIANBADoAcyADQQA6AHQgA0EAOgB1IANBADoAdiADQQA6AHcgA0EAOgCwASADQQA6ALEBIANBADoAsgEgA0EAOgCzASADQQA6ALQBIANBADoAtQEgA0EAOgC2ASADQQA6ALcBIANBADoAuAEgA0EAOgC5ASADQQA6ALoBIANBADoAuwEgA0EAOgC8ASADQQA6AL0BIANBADoAvgEgA0EAOgC/ASADQQA6AMABIANBADoAwQEgA0EAOgDCASADQQA6AMMBIANBADoAxAEgA0EAOgDFASADQQA6AMYBIANBADoAxwEgA0EAOgDIASADQQA6AMkBIANBADoAygEgA0EAOgDLASADQQA6AMwBIANBADoAzQEgA0EAOgDOASADQQA6AM8BIANBADoA0AEgA0EAOgDRASADQQA6ANIBIANBADoA0wEgA0EAOgDUASADQQA6ANUBIANBADoA1gEgA0EAOgDXASADQQA6AIABIANBADoAgQEgA0EAOgCCASADQQA6AIMBIANBADoAhAEgA0EAOgCFASADQQA6AIYBIANBADoAhwEgA0EAOgCIASADQQA6AIkBIANBADoAigEgA0EAOgCLASADQQA6AIwBIANBADoAjQEgA0EAOgCOASADQQA6AI8BIANBADoAkAEgA0EAOgCRASADQQA6AJIBIANBADoAkwEgA0EAOgCUASADQQA6AJUBIANBADoAlgEgA0EAOgCXASADQQA6AJgBIANBADoAmQEgA0EAOgCaASADQQA6AJsBIANBADoAnAEgA0EAOgCdASADQQA6AJ4BIANBADoAnwEgA0EAOgCgASADQQA6AKEBIANBADoAogEgA0EAOgCjASADQQA6AKQBIANBADoApQEgA0EAOgCmASADQQA6AKcBIANBADoAICADQQA6ACEgA0EAOgAiIANBADoAIyADQQA6ACQgA0EAOgAlIANBADoAJiADQQA6ACcgA0EAOgAoIANBADoAKSADQQA6ACogA0EAOgArIANBADoALCADQQA6AC0gA0EAOgAuIANBADoALyADQQA6ADAgA0EAOgAxIANBADoAMiADQQA6ADMgA0EAOgA0IANBADoANSADQQA6ADYgA0EAOgA3IANBADoAOCADQQA6ADkgA0EAOgA6IANBADoAOyADQQA6ADwgA0EAOgA9IANBADoAPiADQQA6AD8gA0EAOgBAIANBADoAQSADQQA6AEIgA0EAOgBDIANBADoARCADQQA6AEUgA0EAOgBGIANBADoARyADQQA6AAAgA0EAOgABIANBADoAAiADQQA6AAMgA0EAOgAEIANBADoABSADQQA6AAYgA0EAOgAHIANBADoACCADQQA6AAkgA0EAOgAKIANBADoACyADQQA6AAwgA0EAOgANIANBADoADiADQQA6AA8gA0EAOgAQIANBADoAESADQQA6ABIgA0EAOgATIANBADoAFCADQQA6ABUgA0EAOgAWIANBADoAFyADQQA6ABggA0EAOgAZIANBADoAGiADQQA6ABsgA0EAOgAcIANBADoAHSADQQA6AB4gA0EAOgAfIANBoANqJAALzAEAIAIgACABEBUgAi0AHyACLQAeIAItAB0gAi0AHCACLQAbIAItABogAi0AGSACLQAYIAItABcgAi0AFiACLQAVIAItABQgAi0AEyACLQASIAItABEgAi0AECACLQAPIAItAA4gAi0ADSACLQAMIAItAAsgAi0ACiACLQAJIAItAAggAi0AByACLQAGIAItAAUgAi0ABCACLQADIAItAAIgAi0AASACLQAAcnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyckEARwuDBQEYfiABMwAdIAExAB8gATEAHCENIAExABsgATEAGiEPIAExABkhBCABMQAYIAExABchESABMQAMIQUgATEACyABMQAKIRMgATUAECEDIAExAA8hBiABMQAOIQcgATEADSEIIAExABYhCSABMQAVIAExABQhFCABMQAIQg2GIAExAAdCBYaEIAExAAlCFYaEIAExAAVCDoYgATEABEIGhoQgATEABkIWhoQgATUAACIVQoCAgBB8IhZCGoh8IhdCgICACHwiGEIZiHwiGUKAgIAQfCECIAAgGSACQoCAgOAPg30+AghCD4YgFEIHhoQgCUIXhoQgAyAHQgqGIAhCAoaEIAZCEoaEIgZCgICAEHwiB0IaiHwiCEKAgIAIfCIJQhmIfCIKQoCAgBB8IQMgACAKIANCgICA4A+DfT4CGEILhiATQgOGhCAFQhOGhCACQhqIfCIFQoCAgAh8IQIgACAFIAJCgICA8A+DfT4CDEINhiARQgWGhCAEQhWGhCADQhqIfCIEQoCAgAh8IQMgACAEIANCgICA8A+DfT4CHCAAIAggCUKAgIDwD4N9IAYgB0KAgIAgg30gAkIZiHwiAkKAgIAQfCIEQhqIfD4CFCAAIAIgBEKAgIDgD4N9PgIQQgyGIA9CBIaEIA1CFIaEIANCGYh8IgNCgICAEHwhAiAAIAMgAkKAgIDgD4N9PgIgQhCGQoCA/AODhEIChiACQhqIfCIDQoCAgAh8IQIgACADIAJCgICA8A+DfT4CJCAAIBcgGEKAgIDwD4N9IBUgFkKAgIDgH4N9IAJCGYhCE358IgJCgICAEHwiA0IaiHw+AgQgACACIANCgICA4A+DfT4CAAuxCQIofgp/IAIoAhQiK6whESACKAIYIiysIRYgAigCBCItrCINIAEoAgwiLkEBdKwiF34gATQCECIDIAI0AgAiBH58IAE0AggiCCACKAIIIi+sIg5+fCACKAIMIjCsIg8gASgCBCIxQQF0rCIYfnwgATQCACIJIAIoAhAiMqwiEn58IAEoAiQiM0EBdKwiGSArQRNsrCIafnwgATQCICIKICxBE2ysIgt+fCABKAIcIitBAXSsIhsgAigCHCIsQRNsrCIHfnwgATQCGCIMIAIoAiAiNEETbKwiBX58IAEoAhQiAUEBdKwiHCACKAIkIgJBE2ysIgZ+fCIkQoCAgBB8ISIgDSAcfiAEIAx+fCADIA5+fCAPIBd+fCAIIBJ+fCARIBh+fCAJIBZ+fCAHIBl+fCAFIAp+fCAGIBt+fCADIA1+IAQgAawiHX58IC6sIh4gDn58IAggD358IDGsIh8gEn58IAkgEX58IAsgM6wiIH58IAcgCn58IAUgK6wiIX58IAYgDH58ICJCGod8IiVCgICACHwiJkIZh3wiE0KAgIAQfCEUIAAgEyAUQoCAgOAPg30+AhggLUETbKwgGX4gBCAJfnwgL0ETbKwiECAKfnwgMEETbKwiFSAbfnwgMkETbKwiEyAMfnwgGiAcfnwgAyALfnwgByAXfnwgBSAIfnwgBiAYfnwiJ0KAgIAQfCEjIA0gGH4gBCAIfnwgCSAOfnwgFSAZfnwgCiATfnwgGiAbfnwgCyAMfnwgByAcfnwgAyAFfnwgBiAXfnwgCSANfiAEIB9+fCAQICB+fCAKIBV+fCATICF+fCAMIBp+fCALIB1+fCADIAd+fCAFIB5+fCAGIAh+fCAjQhqHfCIoQoCAgAh8IilCGYd8IhBCgICAEHwhFSAAIBAgFUKAgIDgD4N9PgIIIAwgDX4gBCAhfnwgDiAdfnwgAyAPfnwgEiAefnwgCCARfnwgFiAffnwgLKwiECAJfnwgBSAgfnwgBiAKfnwgFEIah3wiKkKAgIAIfCEUIAAgKiAUQoCAgPAPg30+AhwgCCANfiAEIB5+fCAOIB9+fCAJIA9+fCATICB+fCAKIBp+fCALICF+fCAHIAx+fCAFIB1+fCADIAZ+fCAVQhqHfCIHQoCAgAh8IQUgACAHIAVCgICA8A+DfT4CDCANIBt+IAQgCn58IAwgDn58IA8gHH58IAMgEn58IBEgF358IAggFn58IBAgGH58IDSsIgcgCX58IAYgGX58IBRCGYd8IgtCgICAEHwhBiAAIAsgBkKAgIDgD4N9PgIgIAAgJSAmQoCAgPAPg30gJCAiQoCAgGCDfSAFQhmHfCIFQoCAgBB8IgtCGoh8PgIUIAAgBSALQoCAgOAPg30+AhAgCiANfiAEICB+fCAOICF+fCAMIA9+fCASIB1+fCADIBF+fCAWIB5+fCAIIBB+fCAHIB9+fCAJIAKsfnwgBkIah3wiBEKAgIAIfCEDIAAgBCADQoCAgPAPg30+AiQgACAoIClCgICA8A+DfSAnICNCgICAYIN9IANCGYdCE358IgNCgICAEHwiBEIaiHw+AgQgACADIARCgICA4A+DfT4CAAvlBgIcfgd/IAEoAggiH0EBdKwhDCABKAIYIiCsIQogASgCHCIeQQF0rCEQIAEoAgwiIUEBdKwiCyABKAIEIiJBAXSsIgJ+IB+sIgcgB358IAEoAgAiH0EBdKwiAyABKAIQIiOsIgh+fCAerCITIB5BJmysIgl+fCABKAIgIiRBE2ysIgQgIEEBdKx+fCABKAIUIh5BAXSsIg0gASgCJCIBQSZsrCIFfnwiGUKAgIAQfCEUIAIgCH4gIawiFSAMfnwgHqwiDiADfnwgBCAQfnwgBSAKfnwgFEIah3wiGkKAgIAIfCEWIAsgFX4gCCAMfnwgAiANfnwgAyAKfnwgBCAkrCIRfnwgBSAQfnwgFkIZh3wiBkKAgIAQfCEPIAAgBiAPQoCAgOAPg30+AhggHkEmbKwgDn4gH6wiBiAGfnwgIEETbKwiBiAjQQF0rCISfnwgCSALfnwgBCAMfnwgAiAFfnwiG0KAgIAQfCEXIAYgDX4gIqwiHCADfnwgCCAJfnwgBCALfnwgBSAHfnwgF0Iah3wiHUKAgIAIfCEYIAMgB34gAiAcfnwgBiAKfnwgCSANfnwgBCASfnwgBSALfnwgGEIZh3wiEkKAgIAQfCEGIAAgEiAGQoCAgOAPg30+AgggDCAOfiAIIAt+fCACIAp+fCADIBN+fCAFIBF+fCAPQhqHfCIPQoCAgAh8IQ4gACAPIA5CgICA8A+DfT4CHCADIBV+IAIgB358IAkgCn58IAQgDX58IAUgCH58IAZCGod8IgdCgICACHwhBCAAIAcgBEKAgIDwD4N9PgIMIAogDH4gCCAIfnwgCyANfnwgAiAQfnwgAyARfnwgAawiByAFfnwgDkIZh3wiCUKAgIAQfCEFIAAgCSAFQoCAgOAPg30+AiAgACAaIBZCgICA8A+DfSAZIBRCgICAYIN9IARCGYd8IgRCgICAEHwiCUIaiHw+AhQgACAEIAlCgICA4A+DfT4CECAIIA1+IAogC358IAwgE358IAIgEX58IAMgB358IAVCGod8IgNCgICACHwhAiAAIAMgAkKAgIDwD4N9PgIkIAAgHSAYQoCAgPAPg30gGyAXQoCAgGCDfSACQhmHQhN+fCICQoCAgBB8IgNCGoh8PgIEIAAgAiADQoCAgOAPg30+AgALlhMBBX8jAEGQAWsiAyQAIANB4ABqIgQgARAZIANBMGoiAiAEEBkgAiACEBkgAiABIAIQGCAEIAQgAhAYIAQgBBAZIAQgAiAEEBggAiAEEBkgAiACEBkgAiACEBkgAiACEBkgAiACEBkgBCACIAQQGCACIAQQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIgBBAYIAMgAhAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAMgAxAZIAIgAyACEBggAiACEBkgAiACEBkgAiACEBkgAiACEBkgAiACEBkgAiACEBkgAiACEBkgAiACEBkgAiACEBkgAiACEBkgBCACIAQQGCACIAQQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIQGSACIAIgBBAYIAMgAhAZQeMAIQIDQCADIAMQGSACQQFrIgINAAsgA0EwaiICIAMgAhAYIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIAIgAhAZIANB4ABqIgQgAiAEEBggBCAEEBkgBCAEEBkgBCAEIAEQGCACIAQQGSACIAIgARAYIANCADcDICADQgA3AxggA0IANwMQIANCADcDCCADQgA3AwAgASADEBwhBSADQgA3AyAgA0IANwMYIANCADcDECADQgA3AwggA0IBNwMAIAIgAxAcIQYgA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIANC/////w83AwAgAiADEBwhASADQuKH7P/v7fyofzcDICADQuHm/ovg0qYPNwMYIANCoOeL+p+LigI3AxAgA0LizsP7n9ClZTcDCCADQtC+xY/Qxc08NwMAIAIgAxAcIQIgACAEQeAPEBggAyABIAJyQQFrNgKMASAAIAMoAowBIAAoAgAiAiADKAJgc3EgAnM2AgAgACADKAKMASAAKAIEIgIgAygCZHNxIAJzNgIEIAAgAygCjAEgACgCCCICIAMoAmhzcSACczYCCCAAIAMoAowBIAAoAgwiAiADKAJsc3EgAnM2AgwgACADKAKMASAAKAIQIgIgAygCcHNxIAJzNgIQIAAgAygCjAEgACgCFCICIAMoAnRzcSACczYCFCAAIAMoAowBIAAoAhgiAiADKAJ4c3EgAnM2AhggACADKAKMASAAKAIcIgIgAygCfHNxIAJzNgIcIAAgAygCjAEgACgCICICIAMoAoABc3EgAnM2AiAgACADKAKMASAAKAIkIgAgAygChAFzcSAAczYCJCADQQA6AGAgA0EAOgBhIANBADoAYiADQQA6AGMgA0EAOgBkIANBADoAZSADQQA6AGYgA0EAOgBnIANBADoAaCADQQA6AGkgA0EAOgBqIANBADoAayADQQA6AGwgA0EAOgBtIANBADoAbiADQQA6AG8gA0EAOgBwIANBADoAcSADQQA6AHIgA0EAOgBzIANBADoAdCADQQA6AHUgA0EAOgB2IANBADoAdyADQQA6AHggA0EAOgB5IANBADoAeiADQQA6AHsgA0EAOgB8IANBADoAfSADQQA6AH4gA0EAOgB/IANBADoAgAEgA0EAOgCBASADQQA6AIIBIANBADoAgwEgA0EAOgCEASADQQA6AIUBIANBADoAhgEgA0EAOgCHASADQQA6ADAgA0EAOgAxIANBADoAMiADQQA6ADMgA0EAOgA0IANBADoANSADQQA6ADYgA0EAOgA3IANBADoAOCADQQA6ADkgA0EAOgA6IANBADoAOyADQQA6ADwgA0EAOgA9IANBADoAPiADQQA6AD8gA0EAOgBAIANBADoAQSADQQA6AEIgA0EAOgBDIANBADoARCADQQA6AEUgA0EAOgBGIANBADoARyADQQA6AEggA0EAOgBJIANBADoASiADQQA6AEsgA0EAOgBMIANBADoATSADQQA6AE4gA0EAOgBPIANBADoAUCADQQA6AFEgA0EAOgBSIANBADoAUyADQQA6AFQgA0EAOgBVIANBADoAViADQQA6AFcgA0EAOgAAIANBADoAASADQQA6AAIgA0EAOgADIANBADoABCADQQA6AAUgA0EAOgAGIANBADoAByADQQA6AAggA0EAOgAJIANBADoACiADQQA6AAsgA0EAOgAMIANBADoADSADQQA6AA4gA0EAOgAPIANBADoAECADQQA6ABEgA0EAOgASIANBADoAEyADQQA6ABQgA0EAOgAVIANBADoAFiADQQA6ABcgA0EAOgAYIANBADoAGSADQQA6ABogA0EAOgAbIANBADoAHCADQQA6AB0gA0EAOgAeIANBADoAHyADQQA6ACAgA0EAOgAhIANBADoAIiADQQA6ACMgA0EAOgAkIANBADoAJSADQQA6ACYgA0EAOgAnIANBkAFqJAAgASAFIAZycguJFQEKfyABLQADIQMgAS0AAiEFIAEtAAEhBCMAQUBqIgIgAS0AADoAMCACIAQ6AC8gAiAFOgAuIAIgAzoALSABLQAHIQMgAS0ABiEFIAEtAAUhBCACIAEtAAQ6ACwgAiAEOgArIAIgBToAKiACIAM6ACkgAS0ACyEDIAEtAAohBSABLQAJIQQgAiABLQAIOgAoIAIgBDoAJyACIAU6ACYgAiADOgAlIAEtAA8hAyABLQAOIQUgAS0ADSEEIAIgAS0ADDoAJCACIAQ6ACMgAiAFOgAiIAIgAzoAISABLQATIQMgAS0AEiEFIAEtABEhBCACIAEtABA6ACAgAiAEOgAfIAIgBToAHiACIAM6AB0gAS0AFyEDIAEtABYhBSABLQAVIQQgAiABLQAUOgAcIAIgBDoAGyACIAU6ABogAiADOgAZIAEtABshAyABLQAaIQUgAS0AGSEEIAIgAS0AGDoAGCACIAQ6ABcgAiAFOgAWIAIgAzoAFSABLQAfIQMgAS0AHiEFIAEtAB0hBCACIAEtABw6ABQgAiAEOgATIAIgBToAEiACIAM6ABEgAS0AIyEEIAEtACIhBiABLQAhIQggAiABLQAgIgs6ABAgAiAIOgAPIAIgBjoADiACIAQ6AA0gAS0AJyEHIAEtACYhCSABLQAlIQogAiABLQAkIgE6AAwgAiAKOgALIAIgCToACiACIAc6AAkgAiABIAdBGHQgCUEQdHIgCkEIdHJyIgEgCyAEQRh0IAZBEHRyIAhBCHRyciACLQAUIANBGHQgBUEQdHIgAi0AE0EIdHJyIAItABggAi0AFUEYdCACLQAWQRB0ciACLQAXQQh0cnIgAi0AHCACLQAZQRh0IAItABpBEHRyIAItABtBCHRyciACLQAgIAItAB1BGHQgAi0AHkEQdHIgAi0AH0EIdHJyIAItACQgAi0AIUEYdCACLQAiQRB0ciACLQAjQQh0cnIgAi0AKCACLQAlQRh0IAItACZBEHRyIAItACdBCHRyciACLQAsIAItAClBGHQgAi0AKkEQdHIgAi0AK0EIdHJyIAFBE2xBgICACGpBGXUgAi0AMCACLQAtQRh0IAItAC5BEHRyIAItAC9BCHRyciIBakEadWpBGXVqQRp1akEZdWpBGnVqQRl1akEadWpBGXVqQRp1akEZdUETbCABaiIBOgAwIAIgAUEIdjoALyACIAFBEHY6AC4gAiABQRh2QQNxOgAtIAIgAi0ALCACLQApQRh0IAItACpBEHRyIAItACtBCHRyciABQRp1aiIBOgAsIAIgAUEQdjoAKiACIAFBCHY6ACsgAiABQRh2QQFxOgApIAIgAi0AKCACLQAlQRh0IAItACZBEHRyIAItACdBCHRyciABQRl1aiIBOgAoIAIgAUEQdjoAJiACIAFBCHY6ACcgAiABQRh2QQNxOgAlIAIgAi0AJCACLQAhQRh0IAItACJBEHRyIAItACNBCHRyciABQRp1aiIBOgAkIAIgAUEIdjoAIyACIAFBEHY6ACIgAiABQRh2QQFxOgAhIAIgAi0AICACLQAdQRh0IAItAB5BEHRyIAItAB9BCHRyciABQRl1aiIBOgAgIAIgAUEIdjoAHyACIAFBEHY6AB4gAiABQRh2QQNxOgAdIAIgAi0AHCACLQAZQRh0IAItABpBEHRyIAItABtBCHRyciABQRp1aiIBOgAcIAIgAUEIdjoAGyACIAFBEHY6ABogAiABQRh2QQFxOgAZIAIgAi0AGCACLQAVQRh0IAItABZBEHRyIAItABdBCHRyciABQRl1aiIBOgAYIAIgAUEIdjoAFyACIAFBEHY6ABYgAiABQRh2QQNxOgAVIAIgAi0AFCACLQARQRh0IAItABJBEHRyIAItABNBCHRyciABQRp1aiIBOgAUIAIgAUEIdjoAEyACIAFBEHY6ABIgAiABQRh2QQFxOgARIAIgAi0AECACLQANQRh0IAItAA5BEHRyIAItAA9BCHRyciABQRl1aiIBOgAQIAIgAUEIdjoADyACIAFBEHY6AA4gAiABQRh2QQNxOgANIAIgAi0ADCACLQAJQRh0IAItAApBEHRyIAItAAtBCHRyciABQRp1aiIBOgAMIAIgAUEIdjoACyACIAFBEHY6AAogAiABQRh2QQFxOgAJIAItACshAyACLQApIQUgAi0AKiEEIAItAC0hBiACLQAsIQEgAi0AMCEIIAItAC8hByAAIAItAC46AAIgACAHOgABIAAgCDoAACAAIAYgAUECdHI6AAMgAi0AJSEGIAItACYhCCACLQAoIQcgAi0AJyEJIAAgBUEYdCAEQRB0ciADQQh0ciIDQQ52OgAFIAAgASADckEGdiIBOgAEIAAgASAJQQh0IgMgB3JBE3RyIgFBGHY6AAcgACABQRB2OgAGIAItACEhASACLQAkIQUgAi0AIyEEIAItACIhByAAIAZBGHQgCEEQdHIgA3JBDXYiAzoACCAAIAUgBEEIdHIgB0EQdCIFciIEQQt2OgALIAAgBEENdCADciIDQRB2OgAKIAAgA0EIdjoACSAC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Qt7z+6YBfnwiC0L/////D4MgCUIgiHwgDkLWud6XCn58IgdC/////w+DIAZCIIh8IAxCmsbJwAV+fCIIQv////8Pg3wiCUJ/hUL/////D4N8IgZCIIh8IAtCIIinIAFBHHRqrSAHQiCIfCAOQt7z+6YBfnwgCEIgiHwgDELWud6XCn58IAlCIIh8IA1CmsbJwAV+fCACNQJcQu2n1+cFfnxCf4V8IgxC/////w+DIAZC/////w+DIgkgFEL/////D4MiCCATQv////8PgyIHIBJC/////w+DIgsgEUL/////D4MiDSAQQv////8PgyIQIA9C/////w+DIg9Ck9iomAp8QiCIfELluba/CnxCIIh8QqnGoegFfEIgiHxCoYyE2Q58QiCIfEL/////D3xCIIh8Qv////8PfEIgiHxC/////w98QiCIfEL/////DnxCIIgiBqdrIgFBktiomHpxrSAGIA98fCIGPAAAIAAgBkIYiDwAAyAAIAZCEIg8AAIgACAGQgiIPAABIAAgECABQeW5tr96ca18IAZCIIh8IgY8AAQgACAGQhiIPAAHIAAgBkIQiDwABiAAIAZCCIg8AAUgACANIAFBqcah6AVxrXwgBkIgiHwiBjwACCAAIAZCGIg8AAsgACAGQhCIPAAKIAAgBkIIiDwACSAAIAsgAUGhjITZfnGtfCAGQiCIfCILPAAMIAAgC0IYiDwADyAAIAtCEIg8AA4gACALQgiIPAANIAAgAa0iBiAHfCALQiCIfCIHPAAQIAAgB0IYiDwAEyAAIAdCEIg8ABIgACAHQgiIPAARIAAgBiAIfCAHQiCIfCIIPAAUIAAgCEIYiDwAFyAAIAhCEIg8ABYgACAIQgiIPAAVIAAgBiAJfCAIQiCIfCIGPAAYIAAgBkIYiDwAGyAAIAZCEIg8ABogACAGQgiIPAAZIAIgBkIgiKcgDKcgAUH/////fnFqajYCHCAAIAIoAhw2ABwgAkEAOgAAIAJBADoAASACQQA6AAIgAkEAOgADIAJBADoABCACQQA6AAUgAkEAOgAGIAJBADoAByACQQA6AAggAkEAOgAJIAJBADoACiACQQA6AAsgAkEAOgAMIAJBADoADSACQQA6AA4gAkEAOgAPIAJBADoAECACQQA6ABEgAkEAOgASIAJBADoAEyACQQA6ABQgAkEAOgAVIAJB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'
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Module } from './crypto25519.js'
|
|
2
|
+
|
|
3
|
+
const keySize = 32
|
|
4
|
+
const signatureSize = 64
|
|
5
|
+
|
|
6
|
+
/** Signs through the shared module and clears every staged byte. */
|
|
7
|
+
export function sign(
|
|
8
|
+
module: Module,
|
|
9
|
+
payload: Uint8Array,
|
|
10
|
+
privateKey: Uint8Array,
|
|
11
|
+
): Uint8Array {
|
|
12
|
+
const size = keySize + payload.length + signatureSize
|
|
13
|
+
module.reserve(size)
|
|
14
|
+
const privateKeyPtr = module.heapBase
|
|
15
|
+
const payloadPtr = privateKeyPtr + keySize
|
|
16
|
+
const signaturePtr = payloadPtr + payload.length
|
|
17
|
+
try {
|
|
18
|
+
const memory = module.view()
|
|
19
|
+
memory.set(privateKey, privateKeyPtr)
|
|
20
|
+
memory.set(payload, payloadPtr)
|
|
21
|
+
module.exports.ed25519_sign(
|
|
22
|
+
privateKeyPtr,
|
|
23
|
+
payloadPtr,
|
|
24
|
+
payload.length,
|
|
25
|
+
signaturePtr,
|
|
26
|
+
)
|
|
27
|
+
return module.view().slice(signaturePtr, signaturePtr + signatureSize)
|
|
28
|
+
} finally {
|
|
29
|
+
module.exports.zero(privateKeyPtr, size)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import * as hash from './hash.js'
|
|
2
|
+
import { wasmBase64 } from './hashes.wasm.js'
|
|
3
|
+
import * as internal from './instantiate.js'
|
|
4
|
+
|
|
5
|
+
/** Exports shared by the Hash and Keystore providers. @internal */
|
|
6
|
+
export type Exports = hash.Exports & {
|
|
7
|
+
keccak256(input: number, length: number, out: number): void
|
|
8
|
+
pbkdf2_sha256(
|
|
9
|
+
password: number,
|
|
10
|
+
passwordLength: number,
|
|
11
|
+
salt: number,
|
|
12
|
+
saltLength: number,
|
|
13
|
+
iterations: number,
|
|
14
|
+
out: number,
|
|
15
|
+
outLength: number,
|
|
16
|
+
scratch: number,
|
|
17
|
+
): void
|
|
18
|
+
ripemd160(input: number, length: number, out: number): void
|
|
19
|
+
sha256(input: number, length: number, out: number): void
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const instantiate = /*#__PURE__*/ internal.memoize(() =>
|
|
23
|
+
internal.instantiate<Exports>(wasmBase64),
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
/** Returns the one memoized hashes instance shared by its provider modules. */
|
|
27
|
+
export function load() {
|
|
28
|
+
return instantiate()
|
|
29
|
+
}
|
|
@@ -8,7 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
/** Base64-encoded WASM binary. */
|
|
10
10
|
export const wasmBase64 =
|
|
11
|
-
'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dnNqNgIAIAFBBGoiAUHAAUcNAAsgACgCACINIQkgACgCBCIOIQEgACgCCCIPIQUgACgCDCIQIQwgACgCHCIRIQogACgCGCISIQggACgCFCITIQMgACgCECIUIQYDQCAFIQQgASEFIAIgC2ooAgAgC0HgCWooAgAgCiAGIgdBGncgB0EVd3MgB0EHd3NqIAdBf3MgCHEgAyAHcXJqamoiBiAJIgFBHncgAUETd3MgAUEKd3MgASAEIAVzcSAEIAVxc2pqIQkgBiAMaiEGIAQhDCAIIQogAyEIIAchAyALQQRqIgtBgAJHDQALIAAgCiARajYCHCAAIAggEmo2AhggACADIBNqNgIUIAAgBiAUajYCECAAIAQgEGo2AgwgACAFIA9qNgIIIAAgASAOajYCBCAAIAkgDWo2AgALkgkBBn8jAEHgAmsiAyQAIANCADcD0AIgA0IANwPIAiADQgA3A8ACIANCADcDuAIgA0IANwOwAiADQgA3A6gCIANCADcDoAIgA0IANwOYAiADQgA3A5ACIANCADcDiAIgA0IANwOAAiADQgA3A/gBIANCADcD8AEgA0IANwPoASADQgA3A+ABIANCADcD2AEgA0IANwPQASADQgA3A8gBIANCADcDwAEgA0IANwO4ASADQgA3A7ABIANCADcDqAEgA0IANwOgASADQgA3A5gBIANCADcDkAEgAUGIAU8EQANAIAMgAykDkAEgACAGaiIEKQAAhTcDkAEgAyADKQOYASAEKQAIhTcDmAEgAyADKQOgASAEQRBqKQAAhTcDoAEgAyADKQOoASAEQRhqKQAAhTcDqAEgAyADKQOwASAEQSBqKQAAhTcDsAEgAyADKQO4ASAEQShqKQAAhTcDuAEgAyADKQPAASAEQTBqKQAAhTcDwAEgAyADKQPIASAEQThqKQAAhTcDyAEgAyADKQPQASAEQUBrKQAAhTcD0AEgAyADKQPYASAEQcgAaikAAIU3A9gBIAMgAykD4AEgBEHQAGopAACFNwPgASADIAMpA+gBIARB2ABqKQAAhTcD6AEgAyADKQPwASAEQeAAaikAAIU3A/ABIAMgAykD+AEgBEHoAGopAACFNwP4ASADIAMpA4ACIARB8ABqKQAAhTcDgAIgAyADKQOIAiAEQfgAaikAAIU3A4gCIAMgAykDkAIgBEGAAWopAACF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'
|
|
11
|
+
'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dnM6ACkgByAHLQAqIDBzOgAqIAcgBCAHLQArczoAKyAHIActACwgHHM6ACwgByAHLQAtIAhBEHZzOgAtIAcgBy0ALiAxczoALiAHIAggBy0AL3M6AC8gByAHLQAwIB1zOgAwIAcgBy0AMSALQRB2czoAMSAHIActADIgMnM6ADIgByALIActADNzOgAzIAcgBy0ANCAeczoANCAHIActADUgCUEQdnM6ADUgByAHLQA2IDNzOgA2IAcgCSAHLQA3czoANyAHIActADggH3M6ADggByAHLQA5IA1BEHZzOgA5IAcgBy0AOiA0czoAOiAHIA0gBy0AO3M6ADsgByAHLQA8ICBzOgA8IAcgBy0APSAKQRB2czoAPSAHIActAD4gNXM6AD4gByAKIActAD9zOgA/IABBAWsiAA0ACwtBICAGIA5rIgEgAUEgTxshAAJAIAYgDkYNAEEBIAAgAEEBTRsiA0EDcSEIQQAhBCABQQRPBEAgBSAOaiELIANBPHEhCQNAIAQgC2oiASAEIAdqIgNBIGotAAA6AAAgAUEBaiADQSFqLQAAOgAAIAFBAmogA0Eiai0AADoAACABQQNqIANBI2otAAA6AAAgCSAEQQRqIgRHDQALCyAIRQ0AQQAgCGshASAEICFqIQMgBSAEIA5qaiEEA0AgBCADLQAAOgAAIANBAWohAyAEQQFqIQQgAUEBaiIBDQALCyAMQQFqIQwgACAOaiIOIAZJDQALC0EAIQMDQCADIAdqIgBBADoAACAAQQFqQQA6AAAgAEECakEAOgAAIABBA2pBADoAACAAQQRqQQA6AAAgAEEFakEAOgAAIABBBmpBADoAACAAQQdqQQA6AAAgAEEIakEAOgAAIABBCWpBADoAACAAQQpqQQA6AAAgAEELakEAOgAAIABBDGpBADoAACAAQQ1qQQA6AAAgAEEOakEAOgAAIABBD2pBADoAACADQRBqIgNBoARHDQALC78IARJ/IAIgASgAACIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycjYCACACIAEoAAQiA0EYdCADQYD+A3FBCHRyIANBCHZBgP4DcSADQRh2cnI2AgQgAiABKAAIIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyNgIIIAIgASgADCIDQRh0IANBgP4DcUEIdHIg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'
|
|
12
12
|
|
|
13
13
|
/** Constant shared with the module's C source. */
|
|
14
|
-
export const hmacSha256ScratchSize =
|
|
14
|
+
export const hmacSha256ScratchSize = 544
|
|
15
|
+
|
|
16
|
+
/** Constant shared with the module's C source. */
|
|
17
|
+
export const pbkdf2Sha256ScratchSize = 544
|