@bitgo-beta/sdk-coin-canton 1.0.1-beta.3 → 1.0.1-beta.30

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.
Files changed (93) hide show
  1. package/dist/resources/hash/hash.d.ts +5 -0
  2. package/dist/resources/hash/hash.js +297 -0
  3. package/dist/resources/proto/damlTransaction.js +100 -0
  4. package/dist/resources/proto/damlTransactionNode.js +71 -0
  5. package/dist/resources/proto/damlTransactionNodeSeed.js +56 -0
  6. package/dist/resources/proto/metadata/metadataGlobalKeyMappingEntry.js +53 -0
  7. package/dist/resources/proto/metadata/metadataInputContract.js +80 -0
  8. package/dist/resources/proto/metadata/metadataSubmitterInfo.js +62 -0
  9. package/dist/resources/proto/metadata.js +189 -0
  10. package/dist/resources/proto/node/empty.js +36 -0
  11. package/dist/resources/proto/node/globalKey.js +81 -0
  12. package/dist/resources/proto/node/identifier.js +73 -0
  13. package/dist/resources/proto/node/node.js +656 -0
  14. package/dist/resources/proto/node/timestamp.js +145 -0
  15. package/dist/resources/proto/node/value.js +824 -0
  16. package/dist/resources/proto/preparedTransaction.d.ts +8 -0
  17. package/dist/resources/proto/preparedTransaction.js +66 -0
  18. package/dist/src/canton.d.ts +37 -0
  19. package/dist/src/canton.d.ts.map +1 -0
  20. package/dist/src/canton.js +94 -0
  21. package/dist/src/index.d.ts +4 -0
  22. package/dist/src/index.d.ts.map +1 -0
  23. package/dist/src/index.js +20 -0
  24. package/dist/src/lib/constant.d.ts +12 -0
  25. package/dist/src/lib/constant.d.ts.map +1 -0
  26. package/dist/src/lib/constant.js +15 -0
  27. package/dist/src/lib/iface.d.ts +58 -0
  28. package/dist/src/lib/iface.d.ts.map +1 -0
  29. package/dist/src/lib/iface.js +3 -0
  30. package/dist/src/lib/index.d.ts +8 -0
  31. package/dist/src/lib/index.d.ts.map +1 -0
  32. package/dist/src/lib/index.js +49 -0
  33. package/dist/src/lib/keyPair.d.ts +18 -0
  34. package/dist/src/lib/keyPair.d.ts.map +1 -0
  35. package/dist/src/lib/keyPair.js +44 -0
  36. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts +49 -0
  37. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts.map +1 -0
  38. package/dist/src/lib/oneStepPreApprovalBuilder.js +87 -0
  39. package/dist/src/lib/resourcesInterface.d.ts +214 -0
  40. package/dist/src/lib/resourcesInterface.d.ts.map +1 -0
  41. package/dist/src/lib/resourcesInterface.js +3 -0
  42. package/dist/src/lib/transaction/transaction.d.ts +18 -0
  43. package/dist/src/lib/transaction/transaction.d.ts.map +1 -0
  44. package/dist/src/lib/transaction/transaction.js +79 -0
  45. package/dist/src/lib/transactionBuilder.d.ts +36 -0
  46. package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
  47. package/dist/src/lib/transactionBuilder.js +86 -0
  48. package/dist/src/lib/transactionBuilderFactory.d.ts +12 -0
  49. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
  50. package/dist/src/lib/transactionBuilderFactory.js +20 -0
  51. package/dist/src/lib/transferBuilder.d.ts +10 -0
  52. package/dist/src/lib/transferBuilder.d.ts.map +1 -0
  53. package/dist/src/lib/transferBuilder.js +18 -0
  54. package/dist/src/lib/utils.d.ts +107 -0
  55. package/dist/src/lib/utils.d.ts.map +1 -0
  56. package/dist/src/lib/utils.js +243 -0
  57. package/dist/src/lib/walletInitBuilder.d.ts +98 -0
  58. package/dist/src/lib/walletInitBuilder.d.ts.map +1 -0
  59. package/dist/src/lib/walletInitBuilder.js +223 -0
  60. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts +16 -0
  61. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts.map +1 -0
  62. package/dist/src/lib/walletInitialization/walletInitTransaction.js +59 -0
  63. package/dist/src/register.d.ts +3 -0
  64. package/dist/src/register.d.ts.map +1 -0
  65. package/dist/src/register.js +11 -0
  66. package/dist/src/tcanton.d.ts +17 -0
  67. package/dist/src/tcanton.d.ts.map +1 -0
  68. package/dist/src/tcanton.js +30 -0
  69. package/dist/test/integration/index.d.ts +1 -0
  70. package/dist/test/integration/index.d.ts.map +1 -0
  71. package/dist/test/integration/index.js +1 -0
  72. package/dist/test/resources.d.ts +40 -0
  73. package/dist/test/resources.d.ts.map +1 -0
  74. package/dist/test/resources.js +53 -0
  75. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.d.ts +2 -0
  76. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.d.ts.map +1 -0
  77. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.js +67 -0
  78. package/dist/test/unit/builder/walletInit/walletInitBuilder.d.ts +2 -0
  79. package/dist/test/unit/builder/walletInit/walletInitBuilder.d.ts.map +1 -0
  80. package/dist/test/unit/builder/walletInit/walletInitBuilder.js +66 -0
  81. package/dist/test/unit/index.d.ts +2 -0
  82. package/dist/test/unit/index.d.ts.map +1 -0
  83. package/dist/test/unit/index.js +16 -0
  84. package/dist/test/unit/keyPair.d.ts +2 -0
  85. package/dist/test/unit/keyPair.d.ts.map +1 -0
  86. package/dist/test/unit/keyPair.js +72 -0
  87. package/dist/test/unit/utils.d.ts +2 -0
  88. package/dist/test/unit/utils.d.ts.map +1 -0
  89. package/dist/test/unit/utils.js +35 -0
  90. package/dist/tsconfig.tsbuildinfo +1 -0
  91. package/package.json +16 -11
  92. package/.eslintignore +0 -5
  93. package/.mocharc.yml +0 -8
@@ -0,0 +1,223 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.WalletInitBuilder = void 0;
7
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
8
+ const keyPair_1 = require("./keyPair");
9
+ const utils_1 = __importDefault(require("./utils"));
10
+ const walletInitTransaction_1 = require("./walletInitialization/walletInitTransaction");
11
+ const constant_1 = require("./constant");
12
+ class WalletInitBuilder extends sdk_core_1.BaseTransactionBuilder {
13
+ constructor(_coinConfig) {
14
+ super(_coinConfig);
15
+ this._localParticipantObservationOnly = false;
16
+ this._otherConfirmingParticipantUids = [];
17
+ this._confirmationThreshold = 1;
18
+ this._observingParticipantUids = [];
19
+ this._transaction = new walletInitTransaction_1.WalletInitTransaction(_coinConfig);
20
+ }
21
+ initBuilder(tx) {
22
+ this._transaction = tx;
23
+ }
24
+ buildImplementation() {
25
+ throw new Error('Not implemented');
26
+ }
27
+ fromImplementation(rawTransaction, isFirstSigner) {
28
+ throw new Error('Not implemented');
29
+ }
30
+ signImplementation(key) {
31
+ throw new Error('Not implemented');
32
+ }
33
+ get transaction() {
34
+ return this._transaction;
35
+ }
36
+ set transaction(transaction) {
37
+ this._transaction.preparedParty = transaction;
38
+ }
39
+ validateAddress(address, addressFormat) {
40
+ if (!utils_1.default.isValidAddress(address.address)) {
41
+ throw new sdk_core_1.BuildTransactionError('Invalid address ' + address.address);
42
+ }
43
+ }
44
+ validateKey(key) {
45
+ let keyPair;
46
+ try {
47
+ keyPair = new keyPair_1.KeyPair({ prv: key.key });
48
+ }
49
+ catch {
50
+ throw new sdk_core_1.BuildTransactionError('Invalid key');
51
+ }
52
+ if (!keyPair.getKeys().prv) {
53
+ throw new sdk_core_1.BuildTransactionError('Invalid key');
54
+ }
55
+ }
56
+ validateRawTransaction(rawTransaction) {
57
+ if (!rawTransaction || !this._transaction.preparedParty) {
58
+ throw new sdk_core_1.BuildTransactionError('invalid raw transaction');
59
+ }
60
+ const localHash = utils_1.default.computeHashFromCreatePartyResponse(rawTransaction);
61
+ if (localHash !== this._transaction.preparedParty.multiHash) {
62
+ throw new sdk_core_1.BuildTransactionError('invalid raw transaction, hash not matching');
63
+ }
64
+ }
65
+ validateTransaction(transaction) {
66
+ if (!transaction?.preparedParty) {
67
+ return;
68
+ }
69
+ const localHash = utils_1.default.computeHashFromCreatePartyResponse(transaction.preparedParty.topologyTransactions);
70
+ if (localHash !== this._transaction.preparedParty.multiHash) {
71
+ throw new sdk_core_1.BuildTransactionError('invalid transaction');
72
+ }
73
+ }
74
+ // not implemented because wallet initialization doesn't require any value
75
+ validateValue(value) {
76
+ throw new Error('Not implemented');
77
+ }
78
+ /**
79
+ * Sets the public key used for signing.
80
+ *
81
+ * @param key - The public key of the wallet.
82
+ * @returns The current builder instance for chaining.
83
+ * @throws Error if key is not a valid public key
84
+ */
85
+ publicKey(key) {
86
+ utils_1.default.isValidPublicKey(key);
87
+ this._publicKey = {
88
+ format: constant_1.PUBLIC_KEY_FORMAT,
89
+ keyData: key,
90
+ keySpec: constant_1.PUBLIC_KEY_SPEC,
91
+ };
92
+ return this;
93
+ }
94
+ /**
95
+ * Sets the party hint (alias or name) used during wallet initialization.
96
+ *
97
+ * @param hint - A 5-character non-empty string representing the party hint.
98
+ * @returns The current builder instance for chaining.
99
+ * @throws Error if the hint is empty or more than 5 characters long.
100
+ */
101
+ partyHint(hint) {
102
+ const trimmedHint = hint.trim();
103
+ if (!trimmedHint) {
104
+ throw new Error('partyHint cannot be empty');
105
+ }
106
+ if (trimmedHint.length > 5) {
107
+ throw new Error('partyHint must be less than 6 characters long');
108
+ }
109
+ this._partyHint = trimmedHint;
110
+ return this;
111
+ }
112
+ /**
113
+ * Sets whether the local participant should be added in observation-only mode.
114
+ *
115
+ * @param flag - Boolean flag indicating observation-only status.
116
+ * @returns The current builder instance for chaining.
117
+ */
118
+ localParticipantObservationOnly(flag) {
119
+ this._localParticipantObservationOnly = flag;
120
+ return this;
121
+ }
122
+ /**
123
+ * Adds a confirming participant UID to the list of other confirming participants.
124
+ *
125
+ * @param uid - A non-empty string UID of another confirming participant.
126
+ * @returns The current builder instance for chaining.
127
+ * @throws Error if the UID is empty.
128
+ */
129
+ otherConfirmingParticipantUid(uid) {
130
+ const trimmedUid = uid.trim();
131
+ if (!trimmedUid) {
132
+ throw new Error('otherConfirmingParticipantUid cannot be empty');
133
+ }
134
+ if (!this._otherConfirmingParticipantUids) {
135
+ this._otherConfirmingParticipantUids = [];
136
+ }
137
+ this._otherConfirmingParticipantUids.push(trimmedUid);
138
+ return this;
139
+ }
140
+ /**
141
+ * Sets the confirmation threshold for the wallet initialization.
142
+ *
143
+ * @param threshold - A positive integer indicating how many confirmations are required.
144
+ * @returns The current builder instance for chaining.
145
+ * @throws Error if the threshold is not a positive integer.
146
+ */
147
+ confirmationThreshold(threshold) {
148
+ if (!Number.isInteger(threshold) || threshold <= 0) {
149
+ throw new Error('confirmationThreshold must be a positive integer');
150
+ }
151
+ this._confirmationThreshold = threshold;
152
+ return this;
153
+ }
154
+ /**
155
+ * Adds an observing participant UID to the list of observers.
156
+ *
157
+ * @param uid - A non-empty string UID of the observing participant.
158
+ * @returns The current builder instance for chaining.
159
+ * @throws Error if the UID is empty.
160
+ */
161
+ observingParticipantUid(uid) {
162
+ const trimmedUid = uid.trim();
163
+ if (!trimmedUid) {
164
+ throw new Error('observingParticipantUid cannot be empty');
165
+ }
166
+ if (!this._observingParticipantUids) {
167
+ this._observingParticipantUids = [];
168
+ }
169
+ this._observingParticipantUids.push(trimmedUid);
170
+ return this;
171
+ }
172
+ /**
173
+ * Builds and returns the WalletInitRequest object from the builder's internal state.
174
+ *
175
+ * This method performs validation before constructing the object. If required fields are
176
+ * missing or invalid, it throws an error.
177
+ *
178
+ * @returns {WalletInitRequest} - A fully constructed and validated request object for wallet initialization.
179
+ * @throws {Error} If any required field is missing or fails validation.
180
+ */
181
+ toRequestObject() {
182
+ this.validate();
183
+ return {
184
+ publicKey: this._publicKey,
185
+ partyHint: this._partyHint,
186
+ localParticipantObservationOnly: this._localParticipantObservationOnly,
187
+ otherConfirmingParticipantUids: this._otherConfirmingParticipantUids,
188
+ confirmationThreshold: this._confirmationThreshold,
189
+ observingParticipantUids: this._observingParticipantUids,
190
+ };
191
+ }
192
+ /**
193
+ * Validates the internal state of the builder before building the request object.
194
+ *
195
+ * Checks for:
196
+ * - Presence of a synchronizer ID.
197
+ * - `partyHint` must not be empty and must be at most 5 characters long.
198
+ * - Public key must include `keyData`, `format`, and `keySpec`.
199
+ * - Confirmation threshold must be a positive integer.
200
+ * - Confirming and observing participant UID lists must be arrays.
201
+ *
202
+ * @private
203
+ * @throws {Error} If any required field is missing or invalid.
204
+ */
205
+ validate() {
206
+ if (!this._partyHint || this._partyHint.length > 5)
207
+ throw new Error('Invalid partyHint');
208
+ if (!this._publicKey || !this._publicKey.keyData || !this._publicKey.format || !this._publicKey.keySpec) {
209
+ throw new Error('Invalid publicKey');
210
+ }
211
+ if (!Number.isInteger(this._confirmationThreshold) || this._confirmationThreshold <= 0) {
212
+ throw new Error('Invalid confirmationThreshold');
213
+ }
214
+ if (!Array.isArray(this._otherConfirmingParticipantUids)) {
215
+ throw new Error('otherConfirmingParticipantUids must be an array');
216
+ }
217
+ if (!Array.isArray(this._observingParticipantUids)) {
218
+ throw new Error('observingParticipantUids must be an array');
219
+ }
220
+ }
221
+ }
222
+ exports.WalletInitBuilder = WalletInitBuilder;
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3dhbGxldEluaXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLG1EQUEyRztBQUczRyx1Q0FBb0M7QUFFcEMsb0RBQTRCO0FBQzVCLHdGQUFxRjtBQUNyRix5Q0FBZ0U7QUFFaEUsTUFBYSxpQkFBa0IsU0FBUSxpQ0FBc0I7SUFVM0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFOYixxQ0FBZ0MsR0FBRyxLQUFLLENBQUM7UUFDekMsb0NBQStCLEdBQWEsRUFBRSxDQUFDO1FBQy9DLDJCQUFzQixHQUFHLENBQUMsQ0FBQztRQUMzQiw4QkFBeUIsR0FBYSxFQUFFLENBQUM7UUFJL0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDZDQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXLENBQUMsRUFBeUI7UUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVTLG1CQUFtQjtRQUMzQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVTLGtCQUFrQixDQUFDLGNBQW1CLEVBQUUsYUFBdUI7UUFDdkUsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxXQUEwQjtRQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUM7SUFDaEQsQ0FBQztJ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S0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsK0JBQStCLENBQUMsRUFBRSxDQUFDO1lBQ3pELE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQztRQUNyRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQztZQUNuRCxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXZPRCw4Q0F1T0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5cbmltcG9ydCB7IEJhc2VBZGRyZXNzLCBCYXNlS2V5LCBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5cbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgSVB1YmxpY0tleSwgUHJlcGFyZWRQYXJ0eSwgV2FsbGV0SW5pdFJlcXVlc3QgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFdhbGxldEluaXRUcmFuc2FjdGlvbiB9IGZyb20gJy4vd2FsbGV0SW5pdGlhbGl6YXRpb24vd2FsbGV0SW5pdFRyYW5zYWN0aW9uJztcbmltcG9ydCB7IFBVQkxJQ19LRVlfRk9STUFULCBQVUJMSUNfS0VZX1NQRUMgfSBmcm9tICcuL2NvbnN0YW50JztcblxuZXhwb3J0IGNsYXNzIFdhbGxldEluaXRCdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uOiBXYWxsZXRJbml0VHJhbnNhY3Rpb247XG5cbiAgcHJpdmF0ZSBfcHVibGljS2V5OiBJUHVibGljS2V5O1xuICBwcml2YXRlIF9wYXJ0eUhpbnQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfbG9jYWxQYXJ0aWNpcGFudE9ic2VydmF0aW9uT25seSA9IGZhbHNlO1xuICBwcml2YXRlIF9vdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZHM6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgX2NvbmZpcm1hdGlvblRocmVzaG9sZCA9IDE7XG4gIHByaXZhdGUgX29ic2VydmluZ1BhcnRpY2lwYW50VWlkczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgV2FsbGV0SW5pdFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGluaXRCdWlsZGVyKHR4OiBXYWxsZXRJbml0VHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxXYWxsZXRJbml0VHJhbnNhY3Rpb24+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogYW55LCBpc0ZpcnN0U2lnbmVyPzogYm9vbGVhbik6IFdhbGxldEluaXRUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogV2FsbGV0SW5pdFRyYW5zYWN0aW9uIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgZ2V0IHRyYW5zYWN0aW9uKCk6IFdhbGxldEluaXRUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBQcmVwYXJlZFBhcnR5KSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24ucHJlcGFyZWRQYXJ0eSA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFkZHJlc3MgJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVLZXkoa2V5OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgbGV0IGtleVBhaXI6IEtleVBhaXI7XG4gICAgdHJ5IHtcbiAgICAgIGtleVBhaXIgPSBuZXcgS2V5UGFpcih7IHBydjoga2V5LmtleSB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQga2V5Jyk7XG4gICAgfVxuICAgIGlmICgha2V5UGFpci5nZXRLZXlzKCkucHJ2KSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGtleScpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgaWYgKCFyYXdUcmFuc2FjdGlvbiB8fCAhdGhpcy5fdHJhbnNhY3Rpb24ucHJlcGFyZWRQYXJ0eSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignaW52YWxpZCByYXcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgY29uc3QgbG9jYWxIYXNoID0gdXRpbHMuY29tcHV0ZUhhc2hGcm9tQ3JlYXRlUGFydHlSZXNwb25zZShyYXdUcmFuc2FjdGlvbik7XG4gICAgaWYgKGxvY2FsSGFzaCAhPT0gdGhpcy5fdHJhbnNhY3Rpb24ucHJlcGFyZWRQYXJ0eS5tdWx0aUhhc2gpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uLCBoYXNoIG5vdCBtYXRjaGluZycpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24/OiBXYWxsZXRJbml0VHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRyYW5zYWN0aW9uPy5wcmVwYXJlZFBhcnR5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGxvY2FsSGFzaCA9IHV0aWxzLmNvbXB1dGVIYXNoRnJvbUNyZWF0ZVBhcnR5UmVzcG9uc2UodHJhbnNhY3Rpb24ucHJlcGFyZWRQYXJ0eS50b3BvbG9neVRyYW5zYWN0aW9ucyk7XG4gICAgaWYgKGxvY2FsSGFzaCAhPT0gdGhpcy5fdHJhbnNhY3Rpb24ucHJlcGFyZWRQYXJ0eS5tdWx0aUhhc2gpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvLyBub3QgaW1wbGVtZW50ZWQgYmVjYXVzZSB3YWxsZXQgaW5pdGlhbGl6YXRpb24gZG9lc24ndCByZXF1aXJlIGFueSB2YWx1ZVxuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHB1YmxpYyBrZXkgdXNlZCBmb3Igc2lnbmluZy5cbiAgICpcbiAgICogQHBhcmFtIGtleSAtIFRoZSBwdWJsaWMga2V5IG9mIHRoZSB3YWxsZXQuXG4gICAqIEByZXR1cm5zIFRoZSBjdXJyZW50IGJ1aWxkZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nLlxuICAgKiBAdGhyb3dzIEVycm9yIGlmIGtleSBpcyBub3QgYSB2YWxpZCBwdWJsaWMga2V5XG4gICAqL1xuICBwdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICB1dGlscy5pc1ZhbGlkUHVibGljS2V5KGtleSk7XG4gICAgdGhpcy5fcHVibGljS2V5ID0ge1xuICAgICAgZm9ybWF0OiBQVUJMSUNfS0VZX0ZPUk1BVCxcbiAgICAgIGtleURhdGE6IGtleSxcbiAgICAgIGtleVNwZWM6IFBVQkxJQ19LRVlfU1BFQyxcbiAgICB9O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHBhcnR5IGhpbnQgKGFsaWFzIG9yIG5hbWUpIHVzZWQgZHVyaW5nIHdhbGxldCBpbml0aWFsaXphdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIGhpbnQgLSBBIDUtY2hhcmFjdGVyIG5vbi1lbXB0eSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBwYXJ0eSBoaW50LlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgaGludCBpcyBlbXB0eSBvciBtb3JlIHRoYW4gNSBjaGFyYWN0ZXJzIGxvbmcuXG4gICAqL1xuICBwYXJ0eUhpbnQoaGludDogc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgdHJpbW1lZEhpbnQgPSBoaW50LnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWRIaW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3BhcnR5SGludCBjYW5ub3QgYmUgZW1wdHknKTtcbiAgICB9XG4gICAgaWYgKHRyaW1tZWRIaW50Lmxlbmd0aCA+IDUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncGFydHlIaW50IG11c3QgYmUgbGVzcyB0aGFuIDYgY2hhcmFjdGVycyBsb25nJyk7XG4gICAgfVxuICAgIHRoaXMuX3BhcnR5SGludCA9IHRyaW1tZWRIaW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgd2hldGhlciB0aGUgbG9jYWwgcGFydGljaXBhbnQgc2hvdWxkIGJlIGFkZGVkIGluIG9ic2VydmF0aW9uLW9ubHkgbW9kZS5cbiAgICpcbiAgICogQHBhcmFtIGZsYWcgLSBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyBvYnNlcnZhdGlvbi1vbmx5IHN0YXR1cy5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqL1xuICBsb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5KGZsYWc6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLl9sb2NhbFBhcnRpY2lwYW50T2JzZXJ2YXRpb25Pbmx5ID0gZmxhZztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY29uZmlybWluZyBwYXJ0aWNpcGFudCBVSUQgdG8gdGhlIGxpc3Qgb2Ygb3RoZXIgY29uZmlybWluZyBwYXJ0aWNpcGFudHMuXG4gICAqXG4gICAqIEBwYXJhbSB1aWQgLSBBIG5vbi1lbXB0eSBzdHJpbmcgVUlEIG9mIGFub3RoZXIgY29uZmlybWluZyBwYXJ0aWNpcGFudC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIFVJRCBpcyBlbXB0eS5cbiAgICovXG4gIG90aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkKHVpZDogc3RyaW5nKTogdGhpcyB7XG4gICAgY29uc3QgdHJpbW1lZFVpZCA9IHVpZC50cmltKCk7XG4gICAgaWYgKCF0cmltbWVkVWlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkIGNhbm5vdCBiZSBlbXB0eScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcykge1xuICAgICAgdGhpcy5fb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzID0gW107XG4gICAgfVxuICAgIHRoaXMuX290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcy5wdXNoKHRyaW1tZWRVaWQpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGNvbmZpcm1hdGlvbiB0aHJlc2hvbGQgZm9yIHRoZSB3YWxsZXQgaW5pdGlhbGl6YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSB0aHJlc2hvbGQgLSBBIHBvc2l0aXZlIGludGVnZXIgaW5kaWNhdGluZyBob3cgbWFueSBjb25maXJtYXRpb25zIGFyZSByZXF1aXJlZC5cbiAgICogQHJldHVybnMgVGhlIGN1cnJlbnQgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmcuXG4gICAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIHRocmVzaG9sZCBpcyBub3QgYSBwb3NpdGl2ZSBpbnRlZ2VyLlxuICAgKi9cbiAgY29uZmlybWF0aW9uVGhyZXNob2xkKHRocmVzaG9sZDogbnVtYmVyKTogdGhpcyB7XG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHRocmVzaG9sZCkgfHwgdGhyZXNob2xkIDw9IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY29uZmlybWF0aW9uVGhyZXNob2xkIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyJyk7XG4gICAgfVxuICAgIHRoaXMuX2NvbmZpcm1hdGlvblRocmVzaG9sZCA9IHRocmVzaG9sZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGFuIG9ic2VydmluZyBwYXJ0aWNpcGFudCBVSUQgdG8gdGhlIGxpc3Qgb2Ygb2JzZXJ2ZXJzLlxuICAgKlxuICAgKiBAcGFyYW0gdWlkIC0gQSBub24tZW1wdHkgc3RyaW5nIFVJRCBvZiB0aGUgb2JzZXJ2aW5nIHBhcnRpY2lwYW50LlxuICAgKiBAcmV0dXJucyBUaGUgY3VycmVudCBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZy5cbiAgICogQHRocm93cyBFcnJvciBpZiB0aGUgVUlEIGlzIGVtcHR5LlxuICAgKi9cbiAgb2JzZXJ2aW5nUGFydGljaXBhbnRVaWQodWlkOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCB0cmltbWVkVWlkID0gdWlkLnRyaW0oKTtcbiAgICBpZiAoIXRyaW1tZWRVaWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb2JzZXJ2aW5nUGFydGljaXBhbnRVaWQgY2Fubm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzKSB7XG4gICAgICB0aGlzLl9vYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHMgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5fb2JzZXJ2aW5nUGFydGljaXBhbnRVaWRzLnB1c2godHJpbW1lZFVpZCk7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGRzIGFuZCByZXR1cm5zIHRoZSBXYWxsZXRJbml0UmVxdWVzdCBvYmplY3QgZnJvbSB0aGUgYnVpbGRlcidzIGludGVybmFsIHN0YXRlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBwZXJmb3JtcyB2YWxpZGF0aW9uIGJlZm9yZSBjb25zdHJ1Y3RpbmcgdGhlIG9iamVjdC4gSWYgcmVxdWlyZWQgZmllbGRzIGFyZVxuICAgKiBtaXNzaW5nIG9yIGludmFsaWQsIGl0IHRocm93cyBhbiBlcnJvci5cbiAgICpcbiAgICogQHJldHVybnMge1dhbGxldEluaXRSZXF1ZXN0fSAtIEEgZnVsbHkgY29uc3RydWN0ZWQgYW5kIHZhbGlkYXRlZCByZXF1ZXN0IG9iamVjdCBmb3Igd2FsbGV0IGluaXRpYWxpemF0aW9uLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW55IHJlcXVpcmVkIGZpZWxkIGlzIG1pc3Npbmcgb3IgZmFpbHMgdmFsaWRhdGlvbi5cbiAgICovXG4gIHRvUmVxdWVzdE9iamVjdCgpOiBXYWxsZXRJbml0UmVxdWVzdCB7XG4gICAgdGhpcy52YWxpZGF0ZSgpO1xuICAgIHJldHVybiB7XG4gICAgICBwdWJsaWNLZXk6IHRoaXMuX3B1YmxpY0tleSxcbiAgICAgIHBhcnR5SGludDogdGhpcy5fcGFydHlIaW50LFxuICAgICAgbG9jYWxQYXJ0aWNpcGFudE9ic2VydmF0aW9uT25seTogdGhpcy5fbG9jYWxQYXJ0aWNpcGFudE9ic2VydmF0aW9uT25seSxcbiAgICAgIG90aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkczogdGhpcy5fb3RoZXJDb25maXJtaW5nUGFydGljaXBhbnRVaWRzLFxuICAgICAgY29uZmlybWF0aW9uVGhyZXNob2xkOiB0aGlzLl9jb25maXJtYXRpb25UaHJlc2hvbGQsXG4gICAgICBvYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHM6IHRoaXMuX29ic2VydmluZ1BhcnRpY2lwYW50VWlkcyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIGJ1aWxkZXIgYmVmb3JlIGJ1aWxkaW5nIHRoZSByZXF1ZXN0IG9iamVjdC5cbiAgICpcbiAgICogQ2hlY2tzIGZvcjpcbiAgICogLSBQcmVzZW5jZSBvZiBhIHN5bmNocm9uaXplciBJRC5cbiAgICogLSBgcGFydHlIaW50YCBtdXN0IG5vdCBiZSBlbXB0eSBhbmQgbXVzdCBiZSBhdCBtb3N0IDUgY2hhcmFjdGVycyBsb25nLlxuICAgKiAtIFB1YmxpYyBrZXkgbXVzdCBpbmNsdWRlIGBrZXlEYXRhYCwgYGZvcm1hdGAsIGFuZCBga2V5U3BlY2AuXG4gICAqIC0gQ29uZmlybWF0aW9uIHRocmVzaG9sZCBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci5cbiAgICogLSBDb25maXJtaW5nIGFuZCBvYnNlcnZpbmcgcGFydGljaXBhbnQgVUlEIGxpc3RzIG11c3QgYmUgYXJyYXlzLlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW55IHJlcXVpcmVkIGZpZWxkIGlzIG1pc3Npbmcgb3IgaW52YWxpZC5cbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9wYXJ0eUhpbnQgfHwgdGhpcy5fcGFydHlIaW50Lmxlbmd0aCA+IDUpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBwYXJ0eUhpbnQnKTtcbiAgICBpZiAoIXRoaXMuX3B1YmxpY0tleSB8fCAhdGhpcy5fcHVibGljS2V5LmtleURhdGEgfHwgIXRoaXMuX3B1YmxpY0tleS5mb3JtYXQgfHwgIXRoaXMuX3B1YmxpY0tleS5rZXlTcGVjKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgcHVibGljS2V5Jyk7XG4gICAgfVxuICAgIGlmICghTnVtYmVyLmlzSW50ZWdlcih0aGlzLl9jb25maXJtYXRpb25UaHJlc2hvbGQpIHx8IHRoaXMuX2NvbmZpcm1hdGlvblRocmVzaG9sZCA8PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY29uZmlybWF0aW9uVGhyZXNob2xkJyk7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9vdGhlckNvbmZpcm1pbmdQYXJ0aWNpcGFudFVpZHMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ290aGVyQ29uZmlybWluZ1BhcnRpY2lwYW50VWlkcyBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheSh0aGlzLl9vYnNlcnZpbmdQYXJ0aWNpcGFudFVpZHMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29ic2VydmluZ1BhcnRpY2lwYW50VWlkcyBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { BaseKey, BaseTransaction } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
3
+ import { PreparedParty, WalletInitTxData } from '../iface';
4
+ export declare class WalletInitTransaction extends BaseTransaction {
5
+ private _preparedParty;
6
+ constructor(coinConfig: Readonly<CoinConfig>);
7
+ get preparedParty(): PreparedParty;
8
+ set preparedParty(transaction: PreparedParty);
9
+ canSign(key: BaseKey): boolean;
10
+ set signatures(signature: string);
11
+ toBroadcastFormat(): string;
12
+ toJson(): WalletInitTxData;
13
+ get signablePayload(): Buffer;
14
+ fromRawTransaction(rawTx: string): void;
15
+ }
16
+ //# sourceMappingURL=walletInitTransaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walletInitTransaction.d.ts","sourceRoot":"","sources":["../../../../src/lib/walletInitialization/walletInitTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,eAAe,EAA4C,MAAM,sBAAsB,CAAC;AAC1G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE3D,qBAAa,qBAAsB,SAAQ,eAAe;IACxD,OAAO,CAAC,cAAc,CAAgB;gBAE1B,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,IAAI,aAAa,IAAI,aAAa,CAEjC;IAED,IAAI,aAAa,CAAC,WAAW,EAAE,aAAa,EAI3C;IAED,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,IAAI,UAAU,CAAC,SAAS,EAAE,MAAM,EAE/B;IAED,iBAAiB,IAAI,MAAM;IAO3B,MAAM,IAAI,gBAAgB;IAY1B,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAUxC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WalletInitTransaction = void 0;
4
+ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
+ class WalletInitTransaction extends sdk_core_1.BaseTransaction {
6
+ constructor(coinConfig) {
7
+ super(coinConfig);
8
+ }
9
+ get preparedParty() {
10
+ return this._preparedParty;
11
+ }
12
+ set preparedParty(transaction) {
13
+ this._preparedParty = transaction;
14
+ this._id = transaction.multiHash;
15
+ this._type = sdk_core_1.TransactionType.WalletInitialization;
16
+ }
17
+ canSign(key) {
18
+ return false;
19
+ }
20
+ set signatures(signature) {
21
+ this._signatures.push(signature);
22
+ }
23
+ toBroadcastFormat() {
24
+ if (!this._preparedParty) {
25
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
26
+ }
27
+ return Buffer.from(JSON.stringify(this._preparedParty)).toString('base64');
28
+ }
29
+ toJson() {
30
+ if (!this._preparedParty) {
31
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
32
+ }
33
+ const result = {
34
+ id: this.id,
35
+ type: this._type,
36
+ preparedParty: this._preparedParty,
37
+ };
38
+ return result;
39
+ }
40
+ get signablePayload() {
41
+ if (!this._preparedParty) {
42
+ throw new sdk_core_1.InvalidTransactionError('Empty transaction data');
43
+ }
44
+ return Buffer.from(this._preparedParty.multiHash);
45
+ }
46
+ fromRawTransaction(rawTx) {
47
+ try {
48
+ const decoded = JSON.parse(Buffer.from(rawTx, 'base64').toString('utf8'));
49
+ this._preparedParty = decoded;
50
+ this._type = sdk_core_1.TransactionType.WalletInitialization;
51
+ this._id = decoded.multiHash;
52
+ }
53
+ catch (e) {
54
+ throw new sdk_core_1.InvalidTransactionError('Unable to parse raw transaction data');
55
+ }
56
+ }
57
+ }
58
+ exports.WalletInitTransaction = WalletInitTransaction;
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FsbGV0SW5pdFRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi93YWxsZXRJbml0aWFsaXphdGlvbi93YWxsZXRJbml0VHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQTBHO0FBSTFHLE1BQWEscUJBQXNCLFNBQVEsMEJBQWU7SUFHeEQsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsV0FBMEI7UUFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7UUFDbEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLEdBQUcsMEJBQWUsQ0FBQyxvQkFBb0IsQ0FBQztJQUNwRCxDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsU0FBaUI7UUFDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDOUQsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFxQjtZQUMvQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDWCxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQXdCO1lBQ25DLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYztTQUNuQyxDQUFDO1FBQ0YsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBa0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN6RixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQztZQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsb0JBQW9CLENBQUM7WUFDbEQsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1FBQy9CLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHNDQUFzQyxDQUFDLENBQUM7UUFDNUUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTdERCxzREE2REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlS2V5LCBCYXNlVHJhbnNhY3Rpb24sIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBQcmVwYXJlZFBhcnR5LCBXYWxsZXRJbml0VHhEYXRhIH0gZnJvbSAnLi4vaWZhY2UnO1xuXG5leHBvcnQgY2xhc3MgV2FsbGV0SW5pdFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSBfcHJlcGFyZWRQYXJ0eTogUHJlcGFyZWRQYXJ0eTtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHByZXBhcmVkUGFydHkoKTogUHJlcGFyZWRQYXJ0eSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXBhcmVkUGFydHk7XG4gIH1cblxuICBzZXQgcHJlcGFyZWRQYXJ0eSh0cmFuc2FjdGlvbjogUHJlcGFyZWRQYXJ0eSkge1xuICAgIHRoaXMuX3ByZXBhcmVkUGFydHkgPSB0cmFuc2FjdGlvbjtcbiAgICB0aGlzLl9pZCA9IHRyYW5zYWN0aW9uLm11bHRpSGFzaDtcbiAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLldhbGxldEluaXRpYWxpemF0aW9uO1xuICB9XG5cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzZXQgc2lnbmF0dXJlcyhzaWduYXR1cmU6IHN0cmluZykge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaChzaWduYXR1cmUpO1xuICB9XG5cbiAgdG9Ccm9hZGNhc3RGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMuX3ByZXBhcmVkUGFydHkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkodGhpcy5fcHJlcGFyZWRQYXJ0eSkpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuXG4gIHRvSnNvbigpOiBXYWxsZXRJbml0VHhEYXRhIHtcbiAgICBpZiAoIXRoaXMuX3ByZXBhcmVkUGFydHkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24gZGF0YScpO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQ6IFdhbGxldEluaXRUeERhdGEgPSB7XG4gICAgICBpZDogdGhpcy5pZCxcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUgYXMgVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgcHJlcGFyZWRQYXJ0eTogdGhpcy5fcHJlcGFyZWRQYXJ0eSxcbiAgICB9O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXQgc2lnbmFibGVQYXlsb2FkKCk6IEJ1ZmZlciB7XG4gICAgaWYgKCF0aGlzLl9wcmVwYXJlZFBhcnR5KSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uIGRhdGEnKTtcbiAgICB9XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRoaXMuX3ByZXBhcmVkUGFydHkubXVsdGlIYXNoKTtcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUeDogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlY29kZWQ6IFByZXBhcmVkUGFydHkgPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKHJhd1R4LCAnYmFzZTY0JykudG9TdHJpbmcoJ3V0ZjgnKSk7XG4gICAgICB0aGlzLl9wcmVwYXJlZFBhcnR5ID0gZGVjb2RlZDtcbiAgICAgIHRoaXMuX3R5cGUgPSBUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb247XG4gICAgICB0aGlzLl9pZCA9IGRlY29kZWQubXVsdGlIYXNoO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignVW5hYmxlIHRvIHBhcnNlIHJhdyB0cmFuc2FjdGlvbiBkYXRhJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { BitGoBase } from '@bitgo-beta/sdk-core';
2
+ export declare const register: (sdk: BitGoBase) => void;
3
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAIjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAGzC,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.register = void 0;
4
+ const canton_1 = require("./canton");
5
+ const tcanton_1 = require("./tcanton");
6
+ const register = (sdk) => {
7
+ sdk.register('canton', canton_1.Canton.createInstance);
8
+ sdk.register('tcanton', tcanton_1.Tcanton.createInstance);
9
+ };
10
+ exports.register = register;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscUNBQWtDO0FBQ2xDLHVDQUFvQztBQUU3QixNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQWMsRUFBUSxFQUFFO0lBQy9DLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLGVBQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QyxHQUFHLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxpQkFBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQztBQUhXLFFBQUEsUUFBUSxZQUduQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IENhbnRvbiB9IGZyb20gJy4vY2FudG9uJztcbmltcG9ydCB7IFRjYW50b24gfSBmcm9tICcuL3RjYW50b24nO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgc2RrLnJlZ2lzdGVyKCdjYW50b24nLCBDYW50b24uY3JlYXRlSW5zdGFuY2UpO1xuICBzZGsucmVnaXN0ZXIoJ3RjYW50b24nLCBUY2FudG9uLmNyZWF0ZUluc3RhbmNlKTtcbn07XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { BaseCoin, BitGoBase } from '@bitgo-beta/sdk-core';
2
+ import { BaseCoin as StaticsBaseCoin } from '@bitgo-beta/statics';
3
+ import { Canton } from './canton';
4
+ export declare class Tcanton extends Canton {
5
+ protected readonly _staticsCoin: Readonly<StaticsBaseCoin>;
6
+ protected constructor(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>);
7
+ static createInstance(bitgo: BitGoBase, staticsCoin?: Readonly<StaticsBaseCoin>): BaseCoin;
8
+ /**
9
+ * Identifier for the blockchain which supports this coin
10
+ */
11
+ getChain(): string;
12
+ /**
13
+ * Complete human-readable name of this coin
14
+ */
15
+ getFullName(): string;
16
+ }
17
+ //# sourceMappingURL=tcanton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tcanton.d.ts","sourceRoot":"","sources":["../../src/tcanton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,OAAQ,SAAQ,MAAM;IACjC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAC3D,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAU/E,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F;;OAEG;IACI,QAAQ,IAAI,MAAM;IAIzB;;OAEG;IACI,WAAW,IAAI,MAAM;CAG7B"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tcanton = void 0;
4
+ const canton_1 = require("./canton");
5
+ class Tcanton extends canton_1.Canton {
6
+ constructor(bitgo, staticsCoin) {
7
+ super(bitgo, staticsCoin);
8
+ if (!staticsCoin) {
9
+ throw new Error('missing required constructor parameter staticsCoin');
10
+ }
11
+ this._staticsCoin = staticsCoin;
12
+ }
13
+ static createInstance(bitgo, staticsCoin) {
14
+ return new Tcanton(bitgo, staticsCoin);
15
+ }
16
+ /**
17
+ * Identifier for the blockchain which supports this coin
18
+ */
19
+ getChain() {
20
+ return 'tcanton';
21
+ }
22
+ /**
23
+ * Complete human-readable name of this coin
24
+ */
25
+ getFullName() {
26
+ return 'Testnet Canton';
27
+ }
28
+ }
29
+ exports.Tcanton = Tcanton;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNhbnRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90Y2FudG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHFDQUFrQztBQUVsQyxNQUFhLE9BQVEsU0FBUSxlQUFNO0lBRWpDLFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQixFQUFFLFdBQXVDO1FBQzdFLE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxXQUFXO1FBQ2hCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBN0JELDBCQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luLCBCaXRHb0Jhc2UgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4gfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IENhbnRvbiB9IGZyb20gJy4vY2FudG9uJztcblxuZXhwb3J0IGNsYXNzIFRjYW50b24gZXh0ZW5kcyBDYW50b24ge1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3N0YXRpY3NDb2luOiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+O1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoYml0Z28sIHN0YXRpY3NDb2luKTtcblxuICAgIGlmICghc3RhdGljc0NvaW4pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCBjb25zdHJ1Y3RvciBwYXJhbWV0ZXIgc3RhdGljc0NvaW4nKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0aWNzQ29pbiA9IHN0YXRpY3NDb2luO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZUluc3RhbmNlKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPik6IEJhc2VDb2luIHtcbiAgICByZXR1cm4gbmV3IFRjYW50b24oYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVyIGZvciB0aGUgYmxvY2tjaGFpbiB3aGljaCBzdXBwb3J0cyB0aGlzIGNvaW5cbiAgICovXG4gIHB1YmxpYyBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiAndGNhbnRvbic7XG4gIH1cblxuICAvKipcbiAgICogQ29tcGxldGUgaHVtYW4tcmVhZGFibGUgbmFtZSBvZiB0aGlzIGNvaW5cbiAgICovXG4gIHB1YmxpYyBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnVGVzdG5ldCBDYW50b24nO1xuICB9XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/integration/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2ludGVncmF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIiXX0=
@@ -0,0 +1,40 @@
1
+ export declare const PreparedTransactionRawData = "CtWhAQoDMi4xEgEwGtsMCgIxMsI+0wwK0AwKAzIuMRJCMDBjYTQyYmNiNzEyYzM1NDUwYjM5MDQxNDU4ZDg0ZWI2NGY4YjVmZDhmZWQ2NGZkMjgxZmI0YmI5Yzg3MzVjNjAwGg1zcGxpY2UtYW11bGV0Il8KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5BbXVsZXQaDExvY2tlZEFtdWxldCrkCHLhCApfCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgxMb2NrZWRBbXVsZXQSrgUKBmFtdWxldBKjBXKgBQpZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQSUgoDZHNvEks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWISVgoFb3duZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkEpYDCgZhbW91bnQSiwNyiAMKXwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDkV4cGlyaW5nQW1vdW50EiAKDWluaXRpYWxBbW91bnQSDzINNDYuOTkxNzg0NTYwMBJ3CgljcmVhdGVkQXQSanJoClcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5UeXBlcxoFUm91bmQSDQoGbnVtYmVyEgMYzgISiQEKDHJhdGVQZXJSb3VuZBJ5cncKXQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDFJhdGVQZXJSb3VuZBIWCgRyYXRlEg4yDDAuMDAzODA1MTgwMBLMAgoEbG9jaxLDAnLAAgpbCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuRXhwaXJ5GghUaW1lTG9jaxJaCgdob2xkZXJzEk9aTQpLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEhYKCWV4cGlyZXNBdBIJKbjceqY/QAYAEm0KCm9wdENvbnRleHQSX1JdCltCWXRyYW5zZmVyIHRvICdhYmMtMjo6MTIyMDdlOTZhZGExOGE4NDVhZGY0ZGMwMTQxMDI2NTYzM2Q1MjY2ZGNhOWJiMjgwYzk4ZTM1YzM2OTJkYjg3ZDNlMzUnMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQ6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWI6S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBrvAwoBM8I+6AMS5QMKAzIuMRKKATAwMTFmYzk2Y2NmMzljOWQwN2YyN2ZiZjA1ZTY3MDgxM2E0NDQzOWZjY2RmZDc3ZjlmZjJmMjQzODE3YjY1NDJjN2NhMTExMjIwMGIyNmY4MmRjZTBhMDYzZTRhMTAwMTBiNjhmNjMwYTE0MTY1OWUwNTFlMGEwMWNhNmNmNTY3MjdkZGRlZjMyZRoNc3BsaWNlLWFtdWxldCJhCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuUm91bmQaD09wZW5NaW5pbmdSb3VuZCpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhqVCQoCMTPCPo0JCooJCgMyLjESQjAwM2Q5NzAxNjkzYjhmYWMxMjYyYmYwNzgyMThlMDVlZjkyYzE1ZjQyZDdmYWM3NDM5MjE4NTU2MDkyYjZmOTcwYxoNc3BsaWNlLWFtdWxldCJZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQqpAVyoQUKWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoGQW11bGV0ElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiElYKBW93bmVyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBKXAwoGYW1vdW50EowDcokDCl8KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGg5FeHBpcmluZ0Ftb3VudBIhCg1pbml0aWFsQW1vdW50EhAyDjQ0MC4wMDgyMTU0NDAwEncKCWNyZWF0ZWRBdBJqcmgKVwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlR5cGVzGgVSb3VuZBINCgZudW1iZXISAxjOAhKJAQoMcmF0ZVBlclJvdW5kEnlydwpdCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgtTcGxpY2UuRmVlcxoMUmF0ZVBlclJvdW5kEhYKBHJhdGUSDjIMMC4wMDM4MDUxODAwMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQ6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWI6S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBrEBwoCMTHCPrwHCrkHCgMyLjESQjAwZDRkNGE3MmU3ZWE4NTlmODVlNjE5ZTIxMWNmYjg4YmY4ZjJlYzhjYTBmMWZmNTVhZmY1NjBjMjQxMDEzZGJiORoNc3BsaWNlLWFtdWxldCJiCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0Gg9BcHBSZXdhcmRDb3Vwb24qlwRylAQKYgpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoPQXBwUmV3YXJkQ291cG9uElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiElkKCHByb3ZpZGVyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBIOCghmZWF0dXJlZBICEAASGAoGYW1vdW50Eg4yDDcuMDAwMDAwMDAwMBJzCgVyb3VuZBJqcmgKVwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlR5cGVzGgVSb3VuZBINCgZudW1iZXISAxjOAhJgCgtiZW5lZmljaWFyeRJRUk8KTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQa8QMKATHCPuoDEucDCgMyLjESigEwMGRmZTdlOGU5Nzg3ZTc1NzQ2NzdlNTZkMGY5ZjY3ZDZlZWE5MTEwMzc3ZGQ3NjljNTE5MWE0YzQ4NDVkOWUyYmRjYTExMTIyMGM2ZWQ2NjZiN2JhYWE4N2NiNTZmM2I0MzlkNzZjNWQyNWEzYjRiZTU0Y2NmMGI3ZTE2MmYxZGJmNjJhM2RhZTUaDXNwbGljZS1hbXVsZXQiYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGgtBbXVsZXRSdWxlcypJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhrvAwoBNMI+6AMS5QMKAzIuMRKKATAwMTFmYzk2Y2NmMzljOWQwN2YyN2ZiZjA1ZTY3MDgxM2E0NDQzOWZjY2RmZDc3ZjlmZjJmMjQzODE3YjY1NDJjN2NhMTExMjIwMGIyNmY4MmRjZTBhMDYzZTRhMTAwMTBiNjhmNjMwYTE0MTY1OWUwNTFlMGEwMWNhNmNmNTY3MjdkZGRlZjMyZRoNc3BsaWNlLWFtdWxldCJhCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuUm91bmQaD09wZW5NaW5pbmdSb3VuZCpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhrOBQoBOMI+xwUSxAUKAzIuMRKKATAwMGFhODdhMTY0MjIwMmRlYzMyMDAwNjRkOTU4MDc4ZWMxZGY1YmI3Y2ZiMDI4N2MyN2NhNTA3YzJkMTE0ZTllYmNhMTExMjIwNGY0NWZjODlkMzdmN2U1MGNiY2U0NTI3ODA4NTdhOGVmMmRkNWM5YThhNGVmNWFhYTRjMGNmZjI4ZmI3YTM0ORoNc3BsaWNlLWFtdWxldCJZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQqSURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIqS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQa2gYKAjEwwj7SBgrPBgoDMi4xEkIwMDQzMjBkZWQwYTc1NmQzYjI2ZDlmN2UxNzgxZjlkNjE4MTFiNzhjYjg3MTcxMDQ0NzY5YjhlZTk4M2U5Zjc2MzgaDXNwbGljZS1hbXVsZXQiaApANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoVVmFsaWRhdG9yUmV3YXJkQ291cG9uKqcDcqQDCmgKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5BbXVsZXQaFVZhbGlkYXRvclJld2FyZENvdXBvbhJSCgNkc28SSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhJVCgR1c2VyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBIYCgZhbW91bnQSDjIMNy4wMDAwMDAwMDAwEnMKBXJvdW5kEmpyaApXCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuVHlwZXMaBVJvdW5kEg0KBm51bWJlchIDGM4CMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQayw0KAjE0wj7DDQrADQoDMi4xEkIwMGE3YjkwZjJmODIzMmNmMzg3NGM4MDQ1OGY5OTY3YTAwNWYyOGUwN2U1M2QxZWUxMGNlN2JhZjU5NDlkNjcxZTcaDXNwbGljZS1hbXVsZXQifwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIgU3BsaWNlLkFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24aGUFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24q5why5AgKfwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIgU3BsaWNlLkFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24aGUFtdWxldFRyYW5zZmVySW5zdHJ1Y3Rpb24SVAoMbG9ja2VkQW11bGV0EkRKQjAwY2E0MmJjYjcxMmMzNTQ1MGIzOTA0MTQ1OGQ4NGViNjRmOGI1ZmQ4ZmVkNjRmZDI4MWZiNGJiOWM4NzM1YzYwMBKKBwoIdHJhbnNmZXIS/QZy+gYKdApANTViYTRkZWIwYWQ0NjYyYzQxNjhiMzk4NTk3MzhhMGU5MTM4OGQyNTIyODY0ODBjNzMzMWIzZjcxYTUxNzI4MRImU3BsaWNlLkFwaS5Ub2tlbi5UcmFuc2Zlckluc3RydWN0aW9uVjEaCFRyYW5zZmVyElcKBnNlbmRlchJNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQSWQoIcmVjZWl2ZXISTTpLYWJjLTI6OjEyMjA3ZTk2YWRhMThhODQ1YWRmNGRjMDE0MTAyNjU2MzNkNTI2NmRjYTliYjI4MGM5OGUzNWMzNjkyZGI4N2QzZTM1EhkKBmFtb3VudBIPMg0yMC4wMDAwMDAwMDAwEugBCgxpbnN0cnVtZW50SWQS1wFy1AEKbApANzE4YTBmNzdlNTA1YThkZTIyZjE4OGJkNGM4N2ZlNzQxMDEyNzRlOWQ0Y2IxYmZhYzdkMDlhZWM3MTU4ZDM1YhIaU3BsaWNlLkFwaS5Ub2tlbi5Ib2xkaW5nVjEaDEluc3RydW1lbnRJZBJUCgVhZG1pbhJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEg4KAmlkEghCBkFtdWxldBIYCgtyZXF1ZXN0ZWRBdBIJKej3oogrQAYAEhoKDWV4ZWN1dGVCZWZvcmUSCSm43HqmP0AGABJcChBpbnB1dEhvbGRpbmdDaWRzEkhaRgpESkIwMGNhNDJiY2I3MTJjMzU0NTBiMzkwNDE0NThkODRlYjY0ZjhiNWZkOGZlZDY0ZmQyODFmYjRiYjljODczNWM2MDASswEKBG1ldGESqgFypwEKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghNZXRhZGF0YRI6CgZ2YWx1ZXMSMGIuCiwKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvcmVhc29uEgJCADJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQ6S2FiYy0yOjoxMjIwN2U5NmFkYTE4YTg0NWFkZjRkYzAxNDEwMjY1NjMzZDUyNjZkY2E5YmIyODBjOThlMzVjMzY5MmRiODdkM2UzNRrUIAoBNsI+zSAayiAKAzIuMRKKATAwZGZlN2U4ZTk3ODdlNzU3NDY3N2U1NmQwZjlmNjdkNmVlYTkxMTAzNzdkZDc2OWM1MTkxYTRjNDg0NWQ5ZTJiZGNhMTExMjIwYzZlZDY2NmI3YmFhYTg3Y2I1NmYzYjQzOWQ3NmM1ZDI1YTNiNGJlNTRjY2YwYjdlMTYyZjFkYmY2MmEzZGFlNRoNc3BsaWNlLWFtdWxldCJjCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaC0FtdWxldFJ1bGVzKklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmRKFEFtdWxldFJ1bGVzX1RyYW5zZmVyUtUNctINCmwKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoUQW11bGV0UnVsZXNfVHJhbnNmZXISsAkKCHRyYW5zZmVyEqMJcqAJCmAKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoIVHJhbnNmZXISVwoGc2VuZGVyEk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBJZCghwcm92aWRlchJNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQSmAIKBmlucHV0cxKNAlqKAgqHAnqEAgplCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaDVRyYW5zZmVySW5wdXQSC0lucHV0QW11bGV0Go0BSooBMDAwYWE4N2ExNjQyMjAyZGVjMzIwMDA2NGQ5NTgwNzhlYzFkZjViYjdjZmIwMjg3YzI3Y2E1MDdjMmQxMTRlOWViY2ExMTEyMjA0ZjQ1ZmM4OWQzN2Y3ZTUwY2JjZTQ1Mjc4MDg1N2E4ZWYyZGQ1YzlhOGE0ZWY1YWFhNGMwY2ZmMjhmYjdhMzQ5EuwECgdvdXRwdXRzEuAEWt0ECtoEctcECmYKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoOVHJhbnNmZXJPdXRwdXQSWQoIcmVjZWl2ZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkEiIKEHJlY2VpdmVyRmVlUmF0aW8SDjIMMC4wMDAwMDAwMDAwEhkKBmFtb3VudBIPMg00Ni45OTE3ODQ1NjAwEtICCgRsb2NrEskCUsYCCsMCcsACClsKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5FeHBpcnkaCFRpbWVMb2NrEloKB2hvbGRlcnMST1pNCks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWISFgoJZXhwaXJlc0F0EgkpuNx6pj9ABgASbQoKb3B0Q29udGV4dBJfUl0KW0JZdHJhbnNmZXIgdG8gJ2FiYy0yOjoxMjIwN2U5NmFkYTE4YTg0NWFkZjRkYzAxNDEwMjY1NjMzZDUyNjZkY2E5YmIyODBjOThlMzVjMzY5MmRiODdkM2UzNScSzgIKB2NvbnRleHQSwgJyvwIKZwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGg9UcmFuc2ZlckNvbnRleHQSoQEKD29wZW5NaW5pbmdSb3VuZBKNAUqKATAwMTFmYzk2Y2NmMzljOWQwN2YyN2ZiZjA1ZTY3MDgxM2E0NDQzOWZjY2RmZDc3ZjlmZjJmMjQzODE3YjY1NDJjN2NhMTExMjIwMGIyNmY4MmRjZTBhMDYzZTRhMTAwMTBiNjhmNjMwYTE0MTY1OWUwNTFlMGEwMWNhNmNmNTY3MjdkZGRlZjMyZRIZChNpc3N1aW5nTWluaW5nUm91bmRzEgJqABIVCg92YWxpZGF0b3JSaWdodHMSAmoAEl4KC2V4cGVjdGVkRHNvEk9STQpLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiYgE3YgE4YgE5YgIxMGICMTFiAjEyYgIxM2qMDnKJDgpmCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaDlRyYW5zZmVyUmVzdWx0EnMKBXJvdW5kEmpyaApXCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgxTcGxpY2UuVHlwZXMaBVJvdW5kEg0KBm51bWJlchIDGM4CEu4GCgdzdW1tYXJ5EuIGct8GCmcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoPVHJhbnNmZXJTdW1tYXJ5EiYKFGlucHV0QXBwUmV3YXJkQW1vdW50Eg4yDDAuMDAwMDAwMDAwMBIsChppbnB1dFZhbGlkYXRvclJld2FyZEFtb3VudBIOMgwwLjAwMDAwMDAwMDASJQoTaW5wdXRTdlJld2FyZEFtb3VudBIOMgwwLjAwMDAwMDAwMDASJQoRaW5wdXRBbXVsZXRBbW91bnQSEDIONTAwLjAwMDAwMDAwMDASuAIKDmJhbGFuY2VDaGFuZ2VzEqUCaqICCp8CCk06S2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBLNAXLKAQplCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaDUJhbGFuY2VDaGFuZ2USNgoiY2hhbmdlVG9Jbml0aWFsQW1vdW50QXNPZlJvdW5kWmVybxIQMg4tMTIuMzY0NTM0OTQwMBIpChdjaGFuZ2VUb0hvbGRpbmdGZWVzUmF0ZRIOMgwwLjAwMzgwNTE4MDASHQoLaG9sZGluZ0ZlZXMSDjIMMC4wMDAwMDAwMDAwEiAKCm91dHB1dEZlZXMSEloQCg4yDDcuMDAwMDAwMDAwMBIhCg9zZW5kZXJDaGFuZ2VGZWUSDjIMNi4wMDAwMDAwMDAwEiYKEnNlbmRlckNoYW5nZUFtb3VudBIQMg40NDAuMDA4MjE1NDQwMBIdCgthbXVsZXRQcmljZRIOMgwwLjAwNTAwMDAwMDASMAoaaW5wdXRWYWxpZGF0b3JGYXVjZXRBbW91bnQSElIQCg4yDDAuMDAwMDAwMDAwMBI4CiJpbnB1dFVuY2xhaW1lZEFjdGl2aXR5UmVjb3JkQW1vdW50EhJSEAoOMgwwLjAwMDAwMDAwMDAS5QEKDmNyZWF0ZWRBbXVsZXRzEtIBWs8BCswBeskBCmUKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoNQ3JlYXRlZEFtdWxldBIaVHJhbnNmZXJSZXN1bHRMb2NrZWRBbXVsZXQaREpCMDBjYTQyYmNiNzEyYzM1NDUwYjM5MDQxNDU4ZDg0ZWI2NGY4YjVmZDhmZWQ2NGZkMjgxZmI0YmI5Yzg3MzVjNjAwEl4KEnNlbmRlckNoYW5nZUFtdWxldBJIUkYKREpCMDAzZDk3MDE2OTNiOGZhYzEyNjJiZjA3ODIxOGUwNWVmOTJjMTVmNDJkN2ZhYzc0MzkyMTg1NTYwOTJiNmY5NzBjEvACCgRtZXRhEucCUuQCCuECct4CCmkKQDRkZWQ2YjY2OGNiM2I2NGY3YTg4YTMwODc0Y2Q0MWM3NTgyOWY1ZTA2NGIzZmJiYWRmNDFlYzdlODM2MzM1NGYSG1NwbGljZS5BcGkuVG9rZW4uTWV0YWRhdGFWMRoITWV0YWRhdGES8AEKBnZhbHVlcxLlAWLiAQowCiZzcGxpY2UubGZkZWNlbnRyYWxpemVkdHJ1c3Qub3JnL2J1cm5lZBIGQgQxMy4wCncKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvc2VuZGVyEk1CS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZAo1CidzcGxpY2UubGZkZWNlbnRyYWxpemVkdHJ1c3Qub3JnL3R4LWtpbmQSCkIIdHJhbnNmZXIawwwKATLCPrwMGrkMCgMyLjESigEwMGRmZTdlOGU5Nzg3ZTc1NzQ2NzdlNTZkMGY5ZjY3ZDZlZWE5MTEwMzc3ZGQ3NjljNTE5MWE0YzQ4NDVkOWUyYmRjYTExMTIyMGM2ZWQ2NjZiN2JhYWE4N2NiNTZmM2I0MzlkNzZjNWQyNWEzYjRiZTU0Y2NmMGI3ZTE2MmYxZGJmNjJhM2RhZTUaDXNwbGljZS1hbXVsZXQiYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGgtBbXVsZXRSdWxlcypJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkShdBbXVsZXRSdWxlc19Db21wdXRlRmVlc1KYB3KVBwpvCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaF0FtdWxldFJ1bGVzX0NvbXB1dGVGZWVzEs4CCgdjb250ZXh0EsICcr8CCmcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoPVHJhbnNmZXJDb250ZXh0EqEBCg9vcGVuTWluaW5nUm91bmQSjQFKigEwMDExZmM5NmNjZjM5YzlkMDdmMjdmYmYwNWU2NzA4MTNhNDQ0MzlmY2NkZmQ3N2Y5ZmYyZjI0MzgxN2I2NTQyYzdjYTExMTIyMDBiMjZmODJkY2UwYTA2M2U0YTEwMDEwYjY4ZjYzMGExNDE2NTllMDUxZTBhMDFjYTZjZjU2NzI3ZGRkZWYzMmUSGQoTaXNzdWluZ01pbmluZ1JvdW5kcxICagASFQoPdmFsaWRhdG9yUmlnaHRzEgJqABJXCgZzZW5kZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkEpcCCgdvdXRwdXRzEosCWogCCoUCcoICCmYKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxoOVHJhbnNmZXJPdXRwdXQSWQoIcmVjZWl2ZXISTTpLYWJjLTI6OjEyMjA3ZTk2YWRhMThhODQ1YWRmNGRjMDE0MTAyNjU2MzNkNTI2NmRjYTliYjI4MGM5OGUzNWMzNjkyZGI4N2QzZTM1EiIKEHJlY2VpdmVyRmVlUmF0aW8SDjIMMC4wMDAwMDAwMDAwEhkKBmFtb3VudBIPMg0yMC4wMDAwMDAwMDAwEl4KC2V4cGVjdGVkRHNvEk9STQpLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiYgEzapYBcpMBCnUKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSElNwbGljZS5BbXVsZXRSdWxlcxodQW11bGV0UnVsZXNfQ29tcHV0ZUZlZXNSZXN1bHQSGgoEZmVlcxISWhAKDjIMNi4yMDAwMDAwMDAwGu8DCgE3wj7oAxLlAwoDMi4xEooBMDAxMWZjOTZjY2YzOWM5ZDA3ZjI3ZmJmMDVlNjcwODEzYTQ0NDM5ZmNjZGZkNzdmOWZmMmYyNDM4MTdiNjU0MmM3Y2ExMTEyMjAwYjI2ZjgyZGNlMGEwNjNlNGExMDAxMGI2OGY2MzBhMTQxNjU5ZTA1MWUwYTAxY2E2Y2Y1NjcyN2RkZGVmMzJlGg1zcGxpY2UtYW11bGV0ImEKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5Sb3VuZBoPT3Blbk1pbmluZ1JvdW5kKklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiGtUdCgEwwj7OHRrLHQoDMi4xEooBMDA0NTZlYWU2YWIyMjQ5ZWZiZmU3NGU5YTM4OThkY2E2NGU1NDg1ODBhMzBjNDFlNjI3MmYyM2Y0ZDdlOGQ5MmExY2ExMTEyMjA4YzA5OTc1MWYwMDJhODc4YWQ0MTM1NDY2MGY2Y2YxZTJiNWUxNTM3ODgxNTRmOGFmMDUxNDJjMTQzZGFkYjIzGg1zcGxpY2UtYW11bGV0In0KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSH1NwbGljZS5FeHRlcm5hbFBhcnR5QW11bGV0UnVsZXMaGEV4dGVybmFsUGFydHlBbXVsZXRSdWxlcypJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkQnsKQDU1YmE0ZGViMGFkNDY2MmM0MTY4YjM5ODU5NzM4YTBlOTEzODhkMjUyMjg2NDgwYzczMzFiM2Y3MWE1MTcyODESJlNwbGljZS5BcGkuVG9rZW4uVHJhbnNmZXJJbnN0cnVjdGlvblYxGg9UcmFuc2ZlckZhY3RvcnlKGFRyYW5zZmVyRmFjdG9yeV9UcmFuc2ZlclKbEXKYEQqEAQpANTViYTRkZWIwYWQ0NjYyYzQxNjhiMzk4NTk3MzhhMGU5MTM4OGQyNTIyODY0ODBjNzMzMWIzZjcxYTUxNzI4MRImU3BsaWNlLkFwaS5Ub2tlbi5UcmFuc2Zlckluc3RydWN0aW9uVjEaGFRyYW5zZmVyRmFjdG9yeV9UcmFuc2ZlchJcCg1leHBlY3RlZEFkbWluEks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIS1wcKCHRyYW5zZmVyEsoHcscHCnQKQDU1YmE0ZGViMGFkNDY2MmM0MTY4YjM5ODU5NzM4YTBlOTEzODhkMjUyMjg2NDgwYzczMzFiM2Y3MWE1MTcyODESJlNwbGljZS5BcGkuVG9rZW4uVHJhbnNmZXJJbnN0cnVjdGlvblYxGghUcmFuc2ZlchJXCgZzZW5kZXISTTpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkElkKCHJlY2VpdmVyEk06S2FiYy0yOjoxMjIwN2U5NmFkYTE4YTg0NWFkZjRkYzAxNDEwMjY1NjMzZDUyNjZkY2E5YmIyODBjOThlMzVjMzY5MmRiODdkM2UzNRIZCgZhbW91bnQSDzINMjAuMDAwMDAwMDAwMBLoAQoMaW5zdHJ1bWVudElkEtcBctQBCmwKQDcxOGEwZjc3ZTUwNWE4ZGUyMmYxODhiZDRjODdmZTc0MTAxMjc0ZTlkNGNiMWJmYWM3ZDA5YWVjNzE1OGQzNWISGlNwbGljZS5BcGkuVG9rZW4uSG9sZGluZ1YxGgxJbnN0cnVtZW50SWQSVAoFYWRtaW4SSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhIOCgJpZBIIQgZBbXVsZXQSGAoLcmVxdWVzdGVkQXQSCSno96KIK0AGABIaCg1leGVjdXRlQmVmb3JlEgkpuNx6pj9ABgASqAEKEGlucHV0SG9sZGluZ0NpZHMSkwFakAEKjQFKigEwMDBhYTg3YTE2NDIyMDJkZWMzMjAwMDY0ZDk1ODA3OGVjMWRmNWJiN2NmYjAyODdjMjdjYTUwN2MyZDExNGU5ZWJjYTExMTIyMDRmNDVmYzg5ZDM3ZjdlNTBjYmNlNDUyNzgwODU3YThlZjJkZDVjOWE4YTRlZjVhYWE0YzBjZmYyOGZiN2EzNDkSswEKBG1ldGESqgFypwEKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghNZXRhZGF0YRI6CgZ2YWx1ZXMSMGIuCiwKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvcmVhc29uEgJCABLWBwoJZXh0cmFBcmdzEsgHcsUHCmoKQDRkZWQ2YjY2OGNiM2I2NGY3YTg4YTMwODc0Y2Q0MWM3NTgyOWY1ZTA2NGIzZmJiYWRmNDFlYzdlODM2MzM1NGYSG1NwbGljZS5BcGkuVG9rZW4uTWV0YWRhdGFWMRoJRXh0cmFBcmdzEtAFCgdjb250ZXh0EsQFcsEFCm4KQDRkZWQ2YjY2OGNiM2I2NGY3YTg4YTMwODc0Y2Q0MWM3NTgyOWY1ZTA2NGIzZmJiYWRmNDFlYzdlODM2MzM1NGYSG1NwbGljZS5BcGkuVG9rZW4uTWV0YWRhdGFWMRoNQ2hvaWNlQ29udGV4dBLOBAoGdmFsdWVzEsMEYsAECp4CCgxhbXVsZXQtcnVsZXMSjQJ6igIKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghBbnlWYWx1ZRINQVZfQ29udHJhY3RJZBqNAUqKATAwZGZlN2U4ZTk3ODdlNzU3NDY3N2U1NmQwZjlmNjdkNmVlYTkxMTAzNzdkZDc2OWM1MTkxYTRjNDg0NWQ5ZTJiZGNhMTExMjIwYzZlZDY2NmI3YmFhYTg3Y2I1NmYzYjQzOWQ3NmM1ZDI1YTNiNGJlNTRjY2YwYjdlMTYyZjFkYmY2MmEzZGFlNQqcAgoKb3Blbi1yb3VuZBKNAnqKAgppCkA0ZGVkNmI2NjhjYjNiNjRmN2E4OGEzMDg3NGNkNDFjNzU4MjlmNWUwNjRiM2ZiYmFkZjQxZWM3ZTgzNjMzNTRmEhtTcGxpY2UuQXBpLlRva2VuLk1ldGFkYXRhVjEaCEFueVZhbHVlEg1BVl9Db250cmFjdElkGo0BSooBMDAxMWZjOTZjY2YzOWM5ZDA3ZjI3ZmJmMDVlNjcwODEzYTQ0NDM5ZmNjZGZkNzdmOWZmMmYyNDM4MTdiNjU0MmM3Y2ExMTEyMjAwYjI2ZjgyZGNlMGEwNjNlNGExMDAxMGI2OGY2MzBhMTQxNjU5ZTA1MWUwYTAxY2E2Y2Y1NjcyN2RkZGVmMzJlEoMBCgRtZXRhEntyeQppCkA0ZGVkNmI2NjhjYjNiNjRmN2E4OGEzMDg3NGNkNDFjNzU4MjlmNWUwNjRiM2ZiYmFkZjQxZWM3ZTgzNjMzNTRmEhtTcGxpY2UuQXBpLlRva2VuLk1ldGFkYXRhVjEaCE1ldGFkYXRhEgwKBnZhbHVlcxICYgBiATFiATJiATRiATViATZiAjE0av0GcvoGCoUBCkA1NWJhNGRlYjBhZDQ2NjJjNDE2OGIzOTg1OTczOGEwZTkxMzg4ZDI1MjI4NjQ4MGM3MzMxYjNmNzFhNTE3MjgxEiZTcGxpY2UuQXBpLlRva2VuLlRyYW5zZmVySW5zdHJ1Y3Rpb25WMRoZVHJhbnNmZXJJbnN0cnVjdGlvblJlc3VsdBLXAwoGb3V0cHV0EswDeskDCowBCkA1NWJhNGRlYjBhZDQ2NjJjNDE2OGIzOTg1OTczOGEwZTkxMzg4ZDI1MjI4NjQ4MGM3MzMxYjNmNzFhNTE3MjgxEiZTcGxpY2UuQXBpLlRva2VuLlRyYW5zZmVySW5zdHJ1Y3Rpb25WMRogVHJhbnNmZXJJbnN0cnVjdGlvblJlc3VsdF9PdXRwdXQSIVRyYW5zZmVySW5zdHJ1Y3Rpb25SZXN1bHRfUGVuZGluZxqUAnKRAgquAQpANTViYTRkZWIwYWQ0NjYyYzQxNjhiMzk4NTk3MzhhMGU5MTM4OGQyNTIyODY0ODBjNzMzMWIzZjcxYTUxNzI4MRImU3BsaWNlLkFwaS5Ub2tlbi5UcmFuc2Zlckluc3RydWN0aW9uVjEaQlRyYW5zZmVySW5zdHJ1Y3Rpb25SZXN1bHRfT3V0cHV0LlRyYW5zZmVySW5zdHJ1Y3Rpb25SZXN1bHRfUGVuZGluZxJeChZ0cmFuc2Zlckluc3RydWN0aW9uQ2lkEkRKQjAwYTdiOTBmMmY4MjMyY2YzODc0YzgwNDU4Zjk5NjdhMDA1ZjI4ZTA3ZTUzZDFlZTEwY2U3YmFmNTk0OWQ2NzFlNxJcChBzZW5kZXJDaGFuZ2VDaWRzEkhaRgpESkIwMDNkOTcwMTY5M2I4ZmFjMTI2MmJmMDc4MjE4ZTA1ZWY5MmMxNWY0MmQ3ZmFjNzQzOTIxODU1NjA5MmI2Zjk3MGMStwEKBG1ldGESrgFyqwEKaQpANGRlZDZiNjY4Y2IzYjY0ZjdhODhhMzA4NzRjZDQxYzc1ODI5ZjVlMDY0YjNmYmJhZGY0MWVjN2U4MzYzMzU0ZhIbU3BsaWNlLkFwaS5Ub2tlbi5NZXRhZGF0YVYxGghNZXRhZGF0YRI+CgZ2YWx1ZXMSNGIyCjAKJnNwbGljZS5sZmRlY2VudHJhbGl6ZWR0cnVzdC5vcmcvYnVybmVkEgZCBDEzLjAaxAYKATnCPr0GGroGCgMyLjESigEwMDBhYTg3YTE2NDIyMDJkZWMzMjAwMDY0ZDk1ODA3OGVjMWRmNWJiN2NmYjAyODdjMjdjYTUwN2MyZDExNGU5ZWJjYTExMTIyMDRmNDVmYzg5ZDM3ZjdlNTBjYmNlNDUyNzgwODU3YThlZjJkZDVjOWE4YTRlZjVhYWE0YzBjZmYyOGZiN2EzNDkaDXNwbGljZS1hbXVsZXQiWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoGQW11bGV0KklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiKkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQySURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIyS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjpLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkSgdBcmNoaXZlUmVyYwphCkA5ZTcwYThiMzUxMGQ2MTdmOGExMzYyMTNmMzNkNmE5MDNhMTBjYTBlZWVjNzZiYjA2YmE1NWQxZWQ5NjgwZjY5EhREQS5JbnRlcm5hbC5UZW1wbGF0ZRoHQXJjaGl2ZVgBagIKABq3BgoBNcI+sAYSrQYKAzIuMRKKATAwMGFhODdhMTY0MjIwMmRlYzMyMDAwNjRkOTU4MDc4ZWMxZGY1YmI3Y2ZiMDI4N2MyN2NhNTA3YzJkMTE0ZTllYmNhMTExMjIwNGY0NWZjODlkMzdmN2U1MGNiY2U0NTI3ODA4NTdhOGVmMmRkNWM5YThhNGVmNWFhYTRjMGNmZjI4ZmI3YTM0ORoNc3BsaWNlLWFtdWxldCJZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg1TcGxpY2UuQW11bGV0GgZBbXVsZXQqSURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIqS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmRCZwpANzE4YTBmNzdlNTA1YThkZTIyZjE4OGJkNGM4N2ZlNzQxMDEyNzRlOWQ0Y2IxYmZhYzdkMDlhZWM3MTU4ZDM1YhIaU3BsaWNlLkFwaS5Ub2tlbi5Ib2xkaW5nVjEaB0hvbGRpbmciIhIgx4D0qUq85aLjDcLW/xqgQlDU5EPy7kO44hBvtSdAPBIiJAgCEiAaTlp/nYjR3CjhJoCk3ZOAjaU5R8cTLJLWg6Z+L554VyIkCAYSIJDUE6VD1eRx/n2UBuUtsFvX/zc3HTzeKwPP6rMGxGIXIiQICRIgqiI4qhSuD5yIfh4mZYCdK1vF1YZ9CMHiEXKdxPwjQ8siJAgKEiAJygjowcASrLWmgPqSDvgzcxzMwsQ5qY0qFjBsS5HXBSIkCAsSIBdq09f6h0nrt8Cy2DrQGqzTnk22s5V2JQv3FF5dlQg4IiQIDBIgQ71KJaILts60r4bb45Fuxvg3lNygxOhgLd5JilpTChYiJAgNEiCPYYBtjtaHU7HB5H5ncMyOVX4X2dTVyePl3Lzb+0AZQCIkCA4SILDumoZ/Uoj3ouFJ2KSfYybDrI2ntoooLzAKADXFFDeZEod6EnMKS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZBIkYzJlNjUzNzQtNDg1OC00YTZmLThkZDMtZGRhNDU1ZDI1ZTZhGlNnbG9iYWwtZG9tYWluOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYiokZmViYzM5NDgtNTBiMi00MjA0LTk4ZmYtNmU5YmFiM2MyNGRiMPOKtsa4hZADOtAOCtMJCgMyLjESigEwMDBhYTg3YTE2NDIyMDJkZWMzMjAwMDY0ZDk1ODA3OGVjMWRmNWJiN2NmYjAyODdjMjdjYTUwN2MyZDExNGU5ZWJjYTExMTIyMDRmNDVmYzg5ZDM3ZjdlNTBjYmNlNDUyNzgwODU3YThlZjJkZDVjOWE4YTRlZjVhYWE0YzBjZmYyOGZiN2EzNDkaDXNwbGljZS1hbXVsZXQiWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxINU3BsaWNlLkFtdWxldBoGQW11bGV0KqQFcqEFClkKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDVNwbGljZS5BbXVsZXQaBkFtdWxldBJSCgNkc28SSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYhJWCgVvd25lchJNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQSlwMKBmFtb3VudBKMA3KJAwpfCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgtTcGxpY2UuRmVlcxoORXhwaXJpbmdBbW91bnQSIQoNaW5pdGlhbEFtb3VudBIQMg41MDAuMDAwMDAwMDAwMBJ3CgljcmVhdGVkQXQSanJoClcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5UeXBlcxoFUm91bmQSDQoGbnVtYmVyEgMYzgISiQEKDHJhdGVQZXJSb3VuZBJ5cncKXQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDFJhdGVQZXJSb3VuZBIWCgRyYXRlEg4yDDAuMDAzODA1MTgwMDJJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjJLYWJjLTE6OjEyMjAwYzFlZTIyNmZiZGY5ZmJhMzQ2MWMyYzBjNzMzMzFiNjlkM2M2ZmQ4Y2ZjZTI4Y2RmODY0MTQxMTQxY2M2NTZkOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmTAPprH4uC3hZAD0j7sBAoDMi4xEuQECkUACqh6FkIgLewyAAZNlYB47B31u3z7AofCfKUHwtEU6evKERIgT0X8idN/flDLzkUngIV6jvLdXJqKTvWqpMDP8o+3o0kSDXNwbGljZS1hbXVsZXQaWgpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIGU3BsaWNlEgZBbXVsZXQaBkFtdWxldCLiAWrfAQpNCks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIKTwpNOkthYmMtMTo6MTIyMDBjMWVlMjI2ZmJkZjlmYmEzNDYxYzJjMGM3MzMzMWI2OWQzYzZmZDhjZmNlMjhjZGY4NjQxNDExNDFjYzY1NmQKPQo7ajkKEgoQMg41MDAuMDAwMDAwMDAwMAoLCglqBwoFCgMYzgIKFgoUahIKEAoOMgwwLjAwMzgwNTE4MDAqSURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIqS2FiYy0xOjoxMjIwMGMxZWUyMjZmYmRmOWZiYTM0NjFjMmMwYzczMzMxYjY5ZDNjNmZkOGNmY2UyOGNkZjg2NDE0MTE0MWNjNjU2ZDmaoxh8K0AGAEIqCiYKJAgBEiDIbmTsF2mLbs56uyDfkJkXTtqgBkwCHQDVA2WttnKwihAeOuYcCq8VCgMyLjESigEwMDExZmM5NmNjZjM5YzlkMDdmMjdmYmYwNWU2NzA4MTNhNDQ0MzlmY2NkZmQ3N2Y5ZmYyZjI0MzgxN2I2NTQyYzdjYTExMTIyMDBiMjZmODJkY2UwYTA2M2U0YTEwMDEwYjY4ZjYzMGExNDE2NTllMDUxZTBhMDFjYTZjZjU2NzI3ZGRkZWYzMmUaDXNwbGljZS1hbXVsZXQiYQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlJvdW5kGg9PcGVuTWluaW5nUm91bmQqkhJyjxIKYQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIMU3BsaWNlLlJvdW5kGg9PcGVuTWluaW5nUm91bmQSUgoDZHNvEks6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWIScwoFcm91bmQSanJoClcKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSDFNwbGljZS5UeXBlcxoFUm91bmQSDQoGbnVtYmVyEgMYzgISHQoLYW11bGV0UHJpY2USDjIMMC4wMDUwMDAwMDAwEhQKB29wZW5zQXQSCSmDaVNlK0AGABIbCg50YXJnZXRDbG9zZXNBdBIJKYP12awrQAYAEoUBCgppc3N1aW5nRm9yEndydQpaCkBiNzBkYjgzNjllMWM0NjFkNWM3MGYxYzg2ZjUyNmEyOWU5Nzc2YzY1NWU2ZmZjMjU2MGY5NWIwNWNjYjhiOTQ2Eg1EQS5UaW1lLlR5cGVzGgdSZWxUaW1lEhcKDG1pY3Jvc2Vjb25kcxIHGIColcbqBRLSCQoRdHJhbnNmZXJDb25maWdVc2QSvAlyuQkKZwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxITU3BsaWNlLkFtdWxldENvbmZpZxoOVHJhbnNmZXJDb25maWcSgQEKCWNyZWF0ZUZlZRJ0cnIKWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaCEZpeGVkRmVlEhUKA2ZlZRIOMgwwLjAzMDAwMDAwMDAShwEKCmhvbGRpbmdGZWUSeXJ3Cl0KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGgxSYXRlUGVyUm91bmQSFgoEcmF0ZRIOMgwwLjAwMDAxOTAyNTkSwwQKC3RyYW5zZmVyRmVlErMEcrAEClwKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGgtTdGVwcGVkUmF0ZRIdCgtpbml0aWFsUmF0ZRIOMgwwLjAxMDAwMDAwMDASsAMKBXN0ZXBzEqYDWqMDCocBcoQBClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISFgoCXzESEDIOMTAwLjAwMDAwMDAwMDASFAoCXzISDjIMMC4wMDEwMDAwMDAwCogBcoUBClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISFwoCXzESETIPMTAwMC4wMDAwMDAwMDAwEhQKAl8yEg4yDDAuMDAwMTAwMDAwMAqLAXKIAQpUCkA1YWVlOWIyMWI4ZTlhNGM0OTc1YjVmNGM0MTk4ZTZlNmU4NDY5ZGY0OWUyMDEwODIwZTc5MmYzOTNkYjg3MGY0EghEQS5UeXBlcxoGVHVwbGUyEhoKAl8xEhQyEjEwMDAwMDAuMDAwMDAwMDAwMBIUCgJfMhIOMgwwLjAwMDAxMDAwMDAShQEKDWxvY2tIb2xkZXJGZWUSdHJyClkKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSC1NwbGljZS5GZWVzGghGaXhlZEZlZRIVCgNmZWUSDjIMMC4wMDUwMDAwMDAwEi4KHGV4dHJhRmVhdHVyZWRBcHBSZXdhcmRBbW91bnQSDjIMMS4wMDAwMDAwMDAwEhMKDG1heE51bUlucHV0cxIDGMgBEhQKDW1heE51bU91dHB1dHMSAxjIARIXChFtYXhOdW1Mb2NrSG9sZGVycxICGGQSqAMKDmlzc3VhbmNlQ29uZmlnEpUDcpIDCmMKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSD1NwbGljZS5Jc3N1YW5jZRoOSXNzdWFuY2VDb25maWcSMAoUYW11bGV0VG9Jc3N1ZVBlclllYXISGDIWNDAwMDAwMDAwMDAuMDAwMDAwMDAwMBIrChl2YWxpZGF0b3JSZXdhcmRQZXJjZW50YWdlEg4yDDAuMDUwMDAwMDAwMBIlChNhcHBSZXdhcmRQZXJjZW50YWdlEg4yDDAuMTUwMDAwMDAwMBIkChJ2YWxpZGF0b3JSZXdhcmRDYXASDjIMMC4yMDAwMDAwMDAwEigKFGZlYXR1cmVkQXBwUmV3YXJkQ2FwEhAyDjEwMC4wMDAwMDAwMDAwEigKFnVuZmVhdHVyZWRBcHBSZXdhcmRDYXASDjIMMC42MDAwMDAwMDAwEisKFW9wdFZhbGlkYXRvckZhdWNldENhcBISUhAKDjIMMi44NTAwMDAwMDAwEoYBCgx0aWNrRHVyYXRpb24SdnJ0CloKQGI3MGRiODM2OWUxYzQ2MWQ1YzcwZjFjODZmNTI2YTI5ZTk3NzZjNjU1ZTZmZmMyNTYwZjk1YjA1Y2NiOGI5NDYSDURBLlRpbWUuVHlwZXMaB1JlbFRpbWUSFgoMbWljcm9zZWNvbmRzEgYYgJiavAQySURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWI6SURTTzo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWLAPoPHwIy0hZAD0j6mBwoDMi4xEp4HCkUAEfyWzPOcnQfyf78F5nCBOkRDn8zf13+f8vJDgXtlQsfKERIgCyb4Lc4KBj5KEAELaPYwoUFlngUeCgHKbPVnJ93e8y4SDXNwbGljZS1hbXVsZXQaYgpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIGU3BsaWNlEgVSb3VuZBoPT3Blbk1pbmluZ1JvdW5kIuEEat4ECk0KSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYgoLCglqBwoFCgMYzgIKEAoOMgwwLjAwNTAwMDAwMDAKCwoJKYNpU2UrQAYACgsKCSmD9dmsK0AGAAoPCg1qCwoJCgcYgKiVxuoFCpsCCpgCapUCChYKFGoSChAKDjIMMC4wMzAwMDAwMDAwChYKFGoSChAKDjIMMC4wMDAwMTkwMjU5CqQBCqEBap4BChAKDjIMMC4wMTAwMDAwMDAwCokBCoYBWoMBCihqJgoSChAyDjEwMC4wMDAwMDAwMDAwChAKDjIMMC4wMDEwMDAwMDAwCilqJwoTChEyDzEwMDAuMDAwMDAwMDAwMAoQCg4yDDAuMDAwMTAwMDAwMAosaioKFgoUMhIxMDAwMDAwLjAwMDAwMDAwMDAKEAoOMgwwLjAwMDAxMDAwMDAKFgoUahIKEAoOMgwwLjAwNTAwMDAwMDAKEAoOMgwxLjAwMDAwMDAwMDAKBQoDGMgBCgUKAxjIAQoECgIYZAqUAQqRAWqOAQoaChgyFjQwMDAwMDAwMDAwLjAwMDAwMDAwMDAKEAoOMgwwLjA1MDAwMDAwMDAKEAoOMgwwLjE1MDAwMDAwMDAKEAoOMgwwLjIwMDAwMDAwMDAKEgoQMg4xMDAuMDAwMDAwMDAwMAoQCg4yDDAuNjAwMDAwMDAwMAoUChJSEAoOMgwyLjg1MDAwMDAwMDAKDgoMagoKCAoGGICYmrwEKklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOYMjkEErQAYAQioKJgokCAESIO0fY7ymvrflHXvdmfRaWlT0oGGyenPoJ8ORWgqqLV5EEB460QgKjwUKAzIuMRKKATAwNDU2ZWFlNmFiMjI0OWVmYmZlNzRlOWEzODk4ZGNhNjRlNTQ4NTgwYTMwYzQxZTYyNzJmMjNmNGQ3ZThkOTJhMWNhMTExMjIwOGMwOTk3NTFmMDAyYTg3OGFkNDEzNTQ2NjBmNmNmMWUyYjVlMTUzNzg4MTU0ZjhhZjA1MTQyYzE0M2RhZGIyMxoNc3BsaWNlLWFtdWxldCJ9CkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEh9TcGxpY2UuRXh0ZXJuYWxQYXJ0eUFtdWxldFJ1bGVzGhhFeHRlcm5hbFBhcnR5QW11bGV0UnVsZXMq1gFy0wEKfQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIfU3BsaWNlLkV4dGVybmFsUGFydHlBbXVsZXRSdWxlcxoYRXh0ZXJuYWxQYXJ0eUFtdWxldFJ1bGVzElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiMklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiwD6rtIOvoICQA9I+sQMKAzIuMRKpAwpFAEVurmqyJJ77/nTpo4mNymTlSFgKMMQeYnLyP01+jZKhyhESIIwJl1HwAqh4rUE1RmD2zx4rXhU3iBVPivBRQsFD2tsjEg1zcGxpY2UtYW11bGV0Gn4KQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSBlNwbGljZRIYRXh0ZXJuYWxQYXJ0eUFtdWxldFJ1bGVzGhhFeHRlcm5hbFBhcnR5QW11bGV0UnVsZXMiUWpPCk0KSzpJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYipJRFNPOjoxMjIwMzJlMDQ1MjI1Nzg4MGY3ODg0ZDYwYWJmYjQyYTJjNGQwMDc0NGZjZjQwYzcxNzc5M2YyMzg0OWMzMjg5NjkxYjkr2uAFAkAGAEIqCiYKJAgBEiDRn/8dILJok5hSCbO/ZG2q8F50JrDts+haNU3y8c6QbxAeOulDCrI0CgMyLjESigEwMGRmZTdlOGU5Nzg3ZTc1NzQ2NzdlNTZkMGY5ZjY3ZDZlZWE5MTEwMzc3ZGQ3NjljNTE5MWE0YzQ4NDVkOWUyYmRjYTExMTIyMGM2ZWQ2NjZiN2JhYWE4N2NiNTZmM2I0MzlkNzZjNWQyNWEzYjRiZTU0Y2NmMGI3ZTE2MmYxZGJmNjJhM2RhZTUaDXNwbGljZS1hbXVsZXQiYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxISU3BsaWNlLkFtdWxldFJ1bGVzGgtBbXVsZXRSdWxlcyqTMXKQMQpjCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhJTcGxpY2UuQW11bGV0UnVsZXMaC0FtdWxldFJ1bGVzElIKA2RzbxJLOklEU086OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEsQvCg5jb25maWdTY2hlZHVsZRKxL3KuLwpdCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg9TcGxpY2UuU2NoZWR1bGUaCFNjaGVkdWxlErguCgxpbml0aWFsVmFsdWUSpy5ypC4KZQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxITU3BsaWNlLkFtdWxldENvbmZpZxoMQW11bGV0Q29uZmlnEs8JCg50cmFuc2ZlckNvbmZpZxK8CXK5CQpnCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhNTcGxpY2UuQW11bGV0Q29uZmlnGg5UcmFuc2ZlckNvbmZpZxKBAQoJY3JlYXRlRmVlEnRycgpZCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEgtTcGxpY2UuRmVlcxoIRml4ZWRGZWUSFQoDZmVlEg4yDDAuMDMwMDAwMDAwMBKHAQoKaG9sZGluZ0ZlZRJ5cncKXQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaDFJhdGVQZXJSb3VuZBIWCgRyYXRlEg4yDDAuMDAwMDE5MDI1ORLDBAoLdHJhbnNmZXJGZWUSswRysAQKXApANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaC1N0ZXBwZWRSYXRlEh0KC2luaXRpYWxSYXRlEg4yDDAuMDEwMDAwMDAwMBKwAwoFc3RlcHMSpgNaowMKhwFyhAEKVApANWFlZTliMjFiOGU5YTRjNDk3NWI1ZjRjNDE5OGU2ZTZlODQ2OWRmNDllMjAxMDgyMGU3OTJmMzkzZGI4NzBmNBIIREEuVHlwZXMaBlR1cGxlMhIWCgJfMRIQMg4xMDAuMDAwMDAwMDAwMBIUCgJfMhIOMgwwLjAwMTAwMDAwMDAKiAFyhQEKVApANWFlZTliMjFiOGU5YTRjNDk3NWI1ZjRjNDE5OGU2ZTZlODQ2OWRmNDllMjAxMDgyMGU3OTJmMzkzZGI4NzBmNBIIREEuVHlwZXMaBlR1cGxlMhIXCgJfMRIRMg8xMDAwLjAwMDAwMDAwMDASFAoCXzISDjIMMC4wMDAxMDAwMDAwCosBcogBClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISGgoCXzESFDISMTAwMDAwMC4wMDAwMDAwMDAwEhQKAl8yEg4yDDAuMDAwMDEwMDAwMBKFAQoNbG9ja0hvbGRlckZlZRJ0cnIKWQpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxILU3BsaWNlLkZlZXMaCEZpeGVkRmVlEhUKA2ZlZRIOMgwwLjAwNTAwMDAwMDASLgocZXh0cmFGZWF0dXJlZEFwcFJld2FyZEFtb3VudBIOMgwxLjAwMDAwMDAwMDASEwoMbWF4TnVtSW5wdXRzEgMYyAESFAoNbWF4TnVtT3V0cHV0cxIDGMgBEhcKEW1heE51bUxvY2tIb2xkZXJzEgIYZBKfGAoNaXNzdWFuY2VDdXJ2ZRKNGHKKGApdCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg9TcGxpY2UuU2NoZWR1bGUaCFNjaGVkdWxlEqYDCgxpbml0aWFsVmFsdWUSlQNykgMKYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIPU3BsaWNlLklzc3VhbmNlGg5Jc3N1YW5jZUNvbmZpZxIwChRhbXVsZXRUb0lzc3VlUGVyWWVhchIYMhY0MDAwMDAwMDAwMC4wMDAwMDAwMDAwEisKGXZhbGlkYXRvclJld2FyZFBlcmNlbnRhZ2USDjIMMC4wNTAwMDAwMDAwEiUKE2FwcFJld2FyZFBlcmNlbnRhZ2USDjIMMC4xNTAwMDAwMDAwEiQKEnZhbGlkYXRvclJld2FyZENhcBIOMgwwLjIwMDAwMDAwMDASKAoUZmVhdHVyZWRBcHBSZXdhcmRDYXASEDIOMTAwLjAwMDAwMDAwMDASKAoWdW5mZWF0dXJlZEFwcFJld2FyZENhcBIOMgwwLjYwMDAwMDAwMDASKwoVb3B0VmFsaWRhdG9yRmF1Y2V0Q2FwEhJSEAoOMgwyLjg1MDAwMDAwMDAS/xMKDGZ1dHVyZVZhbHVlcxLuE1rrEwr4BHL1BApUCkA1YWVlOWIyMWI4ZTlhNGM0OTc1YjVmNGM0MTk4ZTZlNmU4NDY5ZGY0OWUyMDEwODIwZTc5MmYzOTNkYjg3MGY0EghEQS5UeXBlcxoGVHVwbGUyEn4KAl8xEnhydgpaCkBiNzBkYjgzNjllMWM0NjFkNWM3MGYxYzg2ZjUyNmEyOWU5Nzc2YzY1NWU2ZmZjMjU2MGY5NWIwNWNjYjhiOTQ2Eg1EQS5UaW1lLlR5cGVzGgdSZWxUaW1lEhgKDG1pY3Jvc2Vjb25kcxIIGIDAz+DolQcSnAMKAl8yEpUDcpIDCmMKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSD1NwbGljZS5Jc3N1YW5jZRoOSXNzdWFuY2VDb25maWcSMAoUYW11bGV0VG9Jc3N1ZVBlclllYXISGDIWMjAwMDAwMDAwMDAuMDAwMDAwMDAwMBIrChl2YWxpZGF0b3JSZXdhcmRQZXJjZW50YWdlEg4yDDAuMTIwMDAwMDAwMBIlChNhcHBSZXdhcmRQZXJjZW50YWdlEg4yDDAuNDAwMDAwMDAwMBIkChJ2YWxpZGF0b3JSZXdhcmRDYXASDjIMMC4yMDAwMDAwMDAwEigKFGZlYXR1cmVkQXBwUmV3YXJkQ2FwEhAyDjEwMC4wMDAwMDAwMDAwEigKFnVuZmVhdHVyZWRBcHBSZXdhcmRDYXASDjIMMC42MDAwMDAwMDAwEisKFW9wdFZhbGlkYXRvckZhdWNldENhcBISUhAKDjIMMi44NTAwMDAwMDAwCvgEcvUEClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISfgoCXzESeHJ2CloKQGI3MGRiODM2OWUxYzQ2MWQ1YzcwZjFjODZmNTI2YTI5ZTk3NzZjNjU1ZTZmZmMyNTYwZjk1YjA1Y2NiOGI5NDYSDURBLlRpbWUuVHlwZXMaB1JlbFRpbWUSGAoMbWljcm9zZWNvbmRzEggYgMDuobrBFRKcAwoCXzISlQNykgMKYwpANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIPU3BsaWNlLklzc3VhbmNlGg5Jc3N1YW5jZUNvbmZpZxIwChRhbXVsZXRUb0lzc3VlUGVyWWVhchIYMhYxMDAwMDAwMDAwMC4wMDAwMDAwMDAwEisKGXZhbGlkYXRvclJld2FyZFBlcmNlbnRhZ2USDjIMMC4xODAwMDAwMDAwEiUKE2FwcFJld2FyZFBlcmNlbnRhZ2USDjIMMC42MjAwMDAwMDAwEiQKEnZhbGlkYXRvclJld2FyZENhcBIOMgwwLjIwMDAwMDAwMDASKAoUZmVhdHVyZWRBcHBSZXdhcmRDYXASEDIOMTAwLjAwMDAwMDAwMDASKAoWdW5mZWF0dXJlZEFwcFJld2FyZENhcBIOMgwwLjYwMDAwMDAwMDASKwoVb3B0VmFsaWRhdG9yRmF1Y2V0Q2FwEhJSEAoOMgwyLjg1MDAwMDAwMDAK9wRy9AQKVApANWFlZTliMjFiOGU5YTRjNDk3NWI1ZjRjNDE5OGU2ZTZlODQ2OWRmNDllMjAxMDgyMGU3OTJmMzkzZGI4NzBmNBIIREEuVHlwZXMaBlR1cGxlMhJ+CgJfMRJ4cnYKWgpAYjcwZGI4MzY5ZTFjNDYxZDVjNzBmMWM4NmY1MjZhMjllOTc3NmM2NTVlNmZmYzI1NjBmOTViMDVjY2I4Yjk0NhINREEuVGltZS5UeXBlcxoHUmVsVGltZRIYCgxtaWNyb3NlY29uZHMSCBiAgJvGl9pHEpsDCgJfMhKUA3KRAwpjCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEg9TcGxpY2UuSXNzdWFuY2UaDklzc3VhbmNlQ29uZmlnEi8KFGFtdWxldFRvSXNzdWVQZXJZZWFyEhcyFTUwMDAwMDAwMDAuMDAwMDAwMDAwMBIrChl2YWxpZGF0b3JSZXdhcmRQZXJjZW50YWdlEg4yDDAuMjEwMDAwMDAwMBIlChNhcHBSZXdhcmRQZXJjZW50YWdlEg4yDDAuNjkwMDAwMDAwMBIkChJ2YWxpZGF0b3JSZXdhcmRDYXASDjIMMC4yMDAwMDAwMDAwEigKFGZlYXR1cmVkQXBwUmV3YXJkQ2FwEhAyDjEwMC4wMDAwMDAwMDAwEigKFnVuZmVhdHVyZWRBcHBSZXdhcmRDYXASDjIMMC42MDAwMDAwMDAwEisKFW9wdFZhbGlkYXRvckZhdWNldENhcBISUhAKDjIMMi44NTAwMDAwMDAwCvgEcvUEClQKQDVhZWU5YjIxYjhlOWE0YzQ5NzViNWY0YzQxOThlNmU2ZTg0NjlkZjQ5ZTIwMTA4MjBlNzkyZjM5M2RiODcwZjQSCERBLlR5cGVzGgZUdXBsZTISfwoCXzESeXJ3CloKQGI3MGRiODM2OWUxYzQ2MWQ1YzcwZjFjODZmNTI2YTI5ZTk3NzZjNjU1ZTZmZmMyNTYwZjk1YjA1Y2NiOGI5NDYSDURBLlRpbWUuVHlwZXMaB1JlbFRpbWUSGQoMbWljcm9zZWNvbmRzEgkYgIC2jK+0jwESmwMKAl8yEpQDcpEDCmMKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSD1NwbGljZS5Jc3N1YW5jZRoOSXNzdWFuY2VDb25maWcSLwoUYW11bGV0VG9Jc3N1ZVBlclllYXISFzIVMjUwMDAwMDAwMC4wMDAwMDAwMDAwEisKGXZhbGlkYXRvclJld2FyZFBlcmNlbnRhZ2USDjIMMC4yMDAwMDAwMDAwEiUKE2FwcFJld2FyZFBlcmNlbnRhZ2USDjIMMC43NTAwMDAwMDAwEiQKEnZhbGlkYXRvclJld2FyZENhcBIOMgwwLjIwMDAwMDAwMDASKAoUZmVhdHVyZWRBcHBSZXdhcmRDYXASEDIOMTAwLjAwMDAwMDAwMDASKAoWdW5mZWF0dXJlZEFwcFJld2FyZENhcBIOMgwwLjYwMDAwMDAwMDASKwoVb3B0VmFsaWRhdG9yRmF1Y2V0Q2FwEhJSEAoOMgwyLjg1MDAwMDAwMDASoAgKGWRlY2VudHJhbGl6ZWRTeW5jaHJvbml6ZXISgghy/wcKiwEKQDZlOWZjNTBmYjk0ZTU2NzUxYjQ5ZjA5YmEyZGM4NGRhNTNhOWQ3Y2ZmMDgxMTVlYmI0ZjZiN2ExMmQwYzk5MGMSIFNwbGljZS5EZWNlbnRyYWxpemVkU3luY2hyb25pemVyGiVBbXVsZXREZWNlbnRyYWxpemVkU3luY2hyb25pemVyQ29uZmlnEtwBChVyZXF1aXJlZFN5bmNocm9uaXplcnMSwgFyvwEKVQpAYzNiYjBjNWQwNDc5OWIzZjExYmFkN2MzYzEwMjk2M2UxMTVjZjUzZGEzZTRhZmNiY2ZkOWYwNmViZDgyYjRmZhIMREEuU2V0LlR5cGVzGgNTZXQSZgoDbWFwEl9qXQpbClVCU2dsb2JhbC1kb21haW46OjEyMjAzMmUwNDUyMjU3ODgwZjc4ODRkNjBhYmZiNDJhMmM0ZDAwNzQ0ZmNmNDBjNzE3NzkzZjIzODQ5YzMyODk2OTFiEgIKABJrChJhY3RpdmVTeW5jaHJvbml6ZXISVUJTZ2xvYmFsLWRvbWFpbjo6MTIyMDMyZTA0NTIyNTc4ODBmNzg4NGQ2MGFiZmI0MmEyYzRkMDA3NDRmY2Y0MGM3MTc3OTNmMjM4NDljMzI4OTY5MWISogQKBGZlZXMSmQRylgQKfApANmU5ZmM1MGZiOTRlNTY3NTFiNDlmMDliYTJkYzg0ZGE1M2E5ZDdjZmYwODExNWViYjRmNmI3YTEyZDBjOTkwYxIgU3BsaWNlLkRlY2VudHJhbGl6ZWRTeW5jaHJvbml6ZXIaFlN5bmNocm9uaXplckZlZXNDb25maWcStwIKFWJhc2VSYXRlVHJhZmZpY0xpbWl0cxKdAnKaAgp7CkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEiBTcGxpY2UuRGVjZW50cmFsaXplZFN5bmNocm9uaXplchoVQmFzZVJhdGVUcmFmZmljTGltaXRzEhMKC2J1cnN0QW1vdW50EgQYgOowEoUBCgtidXJzdFdpbmRvdxJ2cnQKWgpAYjcwZGI4MzY5ZTFjNDYxZDVjNzBmMWM4NmY1MjZhMjllOTc3NmM2NTVlNmZmYzI1NjBmOTViMDVjY2I4Yjk0NhINREEuVGltZS5UeXBlcxoHUmVsVGltZRIWCgxtaWNyb3NlY29uZHMSBhiAsLT4CBIkChFleHRyYVRyYWZmaWNQcmljZRIPMg0xNi42NzAwMDAwMDAwEh4KGHJlYWRWc1dyaXRlU2NhbGluZ0ZhY3RvchICGAgSFgoObWluVG9wdXBBbW91bnQSBBiAtRgShgEKDHRpY2tEdXJhdGlvbhJ2cnQKWgpAYjcwZGI4MzY5ZTFjNDYxZDVjNzBmMWM4NmY1MjZhMjllOTc3NmM2NTVlNmZmYzI1NjBmOTViMDVjY2I4Yjk0NhINREEuVGltZS5UeXBlcxoHUmVsVGltZRIWCgxtaWNyb3NlY29uZHMSBhiAmJq8BBKaAgoNcGFja2FnZUNvbmZpZxKIAnKFAgpmCkA2ZTlmYzUwZmI5NGU1Njc1MWI0OWYwOWJhMmRjODRkYTUzYTlkN2NmZjA4MTE1ZWJiNGY2YjdhMTJkMGM5OTBjEhNTcGxpY2UuQW11bGV0Q29uZmlnGg1QYWNrYWdlQ29uZmlnEhIKBmFtdWxldBIIQgYwLjEuMTMSHQoRYW11bGV0TmFtZVNlcnZpY2USCEIGMC4xLjEzEhkKDWRzb0dvdmVybmFuY2USCEIGMC4xLjE3Eh0KEnZhbGlkYXRvckxpZmVjeWNsZRIHQgUwLjEuNRISCgZ3YWxsZXQSCEIGMC4xLjEzEhoKDndhbGxldFBheW1lbnRzEghCBjAuMS4xMxISCgxmdXR1cmVWYWx1ZXMSAloAEg4KCGlzRGV2TmV0EgIQATJJRFNPOjoxMjIwMzJlMDQ1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";
2
+ export declare const GenerateTopologyResponse: {
3
+ partyId: string;
4
+ publicKeyFingerprint: string;
5
+ topologyTransactions: string[];
6
+ multiHash: string;
7
+ };
8
+ export declare const InvalidGenerateTopologyResponse: {
9
+ partyId: string;
10
+ publicKeyFingerprint: string;
11
+ topologyTransactions: string[];
12
+ multiHash: string;
13
+ };
14
+ export declare const PrepareSubmissionResponse: {
15
+ preparedTransaction: string;
16
+ preparedTransactionHash: string;
17
+ hashingSchemeVersion: string;
18
+ hashingDetails: string;
19
+ };
20
+ export declare const WalletInitRequestData: {
21
+ partyHint: string;
22
+ publicKey: string;
23
+ };
24
+ export declare const OneStepEnablement: {
25
+ partyId: string;
26
+ commandId: string;
27
+ };
28
+ export declare const OneStepPreApprovalPrepareResponse: {
29
+ preparedTransaction: string;
30
+ preparedTransactionHash: string;
31
+ hashingSchemeVersion: string;
32
+ hashingDetails: null;
33
+ };
34
+ export declare const InvalidOneStepPreApprovalPrepareResponse: {
35
+ preparedTransaction: string;
36
+ preparedTransactionHash: string;
37
+ hashingSchemeVersion: string;
38
+ hashingDetails: null;
39
+ };
40
+ //# sourceMappingURL=resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resources.d.ts","sourceRoot":"","sources":["../../test/resources.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,qz+CAC6w+C,CAAC;AAErz+C,eAAO,MAAM,wBAAwB;;;;;CASpC,CAAC;AAEF,eAAO,MAAM,+BAA+B;;;;;CAU3C,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;CAOrC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;CAGjC,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;CAG7B,CAAC;AAEF,eAAO,MAAM,iCAAiC;;;;;CAM7C,CAAC;AAEF,eAAO,MAAM,wCAAwC;;;;;CAOpD,CAAC"}