@witnet/sdk 1.2.7 → 3.0.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/.env_witnet +18 -18
- package/LICENSE +21 -21
- package/README.md +116 -116
- package/dist/package.json +14 -3
- package/dist/src/bin/helpers.d.ts.map +1 -1
- package/dist/src/bin/helpers.js +22 -54
- package/dist/src/lib/crypto/account.d.ts.map +1 -1
- package/dist/src/lib/crypto/account.js +3 -9
- package/dist/src/lib/crypto/coinbase.d.ts.map +1 -1
- package/dist/src/lib/crypto/coinbase.js +2 -2
- package/dist/src/lib/crypto/interfaces.d.ts.map +1 -1
- package/dist/src/lib/crypto/interfaces.js +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts +4 -6
- package/dist/src/lib/crypto/payloads/DataRequestPayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/DataRequestPayload.js +20 -71
- package/dist/src/lib/crypto/payloads/StakePayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/StakePayload.js +4 -9
- package/dist/src/lib/crypto/payloads/UnstakePayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/UnstakePayload.js +4 -7
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads/ValueTransferPayload.js +4 -9
- package/dist/src/lib/crypto/payloads.d.ts.map +1 -1
- package/dist/src/lib/crypto/payloads.js +6 -13
- package/dist/src/lib/crypto/signer.d.ts.map +1 -1
- package/dist/src/lib/crypto/signer.js +2 -2
- package/dist/src/lib/crypto/transmitters/DataRequests.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/DataRequests.js +2 -2
- package/dist/src/lib/crypto/transmitters/StakeDeposits.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/StakeDeposits.js +2 -2
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/StakeWithdrawals.js +2 -2
- package/dist/src/lib/crypto/transmitters/ValueTransfers.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters/ValueTransfers.js +2 -2
- package/dist/src/lib/crypto/transmitters.d.ts.map +1 -1
- package/dist/src/lib/crypto/transmitters.js +22 -31
- package/dist/src/lib/crypto/types.d.ts.map +1 -1
- package/dist/src/lib/crypto/types.js +6 -13
- package/dist/src/lib/crypto/utils.d.ts.map +1 -1
- package/dist/src/lib/crypto/utils.js +5 -9
- package/dist/src/lib/crypto/wallet.d.ts.map +1 -1
- package/dist/src/lib/crypto/wallet.js +9 -23
- package/dist/src/lib/radon/ccdr/eth.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/eth.js +12 -32
- package/dist/src/lib/radon/ccdr/wit.d.ts.map +1 -1
- package/dist/src/lib/radon/ccdr/wit.js +3 -6
- package/dist/src/lib/radon/index.d.ts.map +1 -1
- package/dist/src/lib/radon/index.js +18 -41
- package/dist/src/lib/radon/reducers.js +2 -2
- package/dist/src/lib/radon/types.d.ts.map +1 -1
- package/dist/src/lib/radon/types.js +6 -32
- package/dist/src/lib/radon/utils.d.ts +1 -1
- package/dist/src/lib/radon/utils.d.ts.map +1 -1
- package/dist/src/lib/radon/utils.js +3 -6
- package/dist/src/lib/rest/kermit.d.ts.map +1 -1
- package/dist/src/lib/rest/kermit.js +1 -1
- package/dist/src/lib/rpc/nodes.d.ts.map +1 -1
- package/dist/src/lib/rpc/nodes.js +8 -28
- package/dist/src/lib/rpc/provider.d.ts.map +1 -1
- package/dist/src/lib/rpc/provider.js +16 -38
- package/dist/src/lib/rpc/types.d.ts.map +1 -1
- package/dist/src/lib/rpc/types.js +1 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +2 -5
- package/dist/witnet/assets/index.cjs +1 -1
- package/dist/witnet/assets/modals/index.cjs +1 -1
- package/dist/witnet/assets/modals/web3/eth.cjs +2 -2
- package/dist/witnet/assets/modals/web3/ipfs.cjs +2 -2
- package/dist/witnet/assets/modals/web3/wit.cjs +4 -11
- package/dist/witnet/assets/requests.cjs +3 -11
- package/package.json +7 -3
- package/src/bin/bots/watcher.cjs +27 -93
- package/src/bin/cli/inspect.js +30 -119
- package/src/bin/cli/network.js +46 -202
- package/src/bin/cli/nodes.js +12 -58
- package/src/bin/cli/radon.js +80 -265
- package/src/bin/cli/wallet.js +69 -241
- package/src/bin/helpers.js +56 -162
- package/src/bin/index.js +21 -51
- package/witnet/assets/_index.cjs +5 -5
- package/witnet/assets/_requests.cjs +25 -25
- package/witnet/assets/_sources.cjs +36 -36
- package/witnet/assets/_templates.cjs +36 -36
- package/witnet/assets/index.cjs +4 -4
- package/witnet/assets/modals/index.cjs +7 -7
- package/witnet/assets/modals/web3/eth.cjs +22 -27
- package/witnet/assets/modals/web3/ipfs.cjs +17 -22
- package/witnet/assets/modals/web3/wit.cjs +16 -28
- package/witnet/assets/requests.cjs +41 -49
|
@@ -56,10 +56,7 @@ export class Account {
|
|
|
56
56
|
return this.external.consumeUtxos(...this.internal.consumeUtxos(...utxos));
|
|
57
57
|
}
|
|
58
58
|
async getBalance() {
|
|
59
|
-
return Promise.all([
|
|
60
|
-
this.internal.getBalance(),
|
|
61
|
-
this.external.getBalance(),
|
|
62
|
-
]).then(([internal, external]) => {
|
|
59
|
+
return Promise.all([this.internal.getBalance(), this.external.getBalance()]).then(([internal, external]) => {
|
|
63
60
|
return {
|
|
64
61
|
locked: internal.locked + external.locked,
|
|
65
62
|
staked: internal.staked + external.staked,
|
|
@@ -102,10 +99,7 @@ export class Account {
|
|
|
102
99
|
return undefined;
|
|
103
100
|
}
|
|
104
101
|
async getUtxos(reload = false) {
|
|
105
|
-
return [
|
|
106
|
-
...(await this.internal.getUtxos(reload)),
|
|
107
|
-
...(await this.external.getUtxos(reload)),
|
|
108
|
-
];
|
|
102
|
+
return [...(await this.internal.getUtxos(reload)), ...(await this.external.getUtxos(reload))];
|
|
109
103
|
}
|
|
110
104
|
async selectUtxos(specs) {
|
|
111
105
|
return this.getUtxos(specs?.reload).then((utxos) => selectUtxos({
|
|
@@ -115,4 +109,4 @@ export class Account {
|
|
|
115
109
|
}));
|
|
116
110
|
}
|
|
117
111
|
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL2FjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBYUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBTU4scUJBQXFCLEdBQ3JCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsTUFBTSxPQUFPLE9BQU87SUFDSCxLQUFLLENBQVM7SUFDZCxRQUFRLENBQVU7SUFDbEIsUUFBUSxDQUFVO0lBRWxCLFFBQVEsQ0FBbUI7SUFDcEMsUUFBUSxDQUF3QjtJQUV2QyxZQUNDLElBQVksRUFDWixRQUEwQixFQUMxQixLQUFhLEVBQ2IsUUFBZ0M7UUFFaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsS0FBSyxFQUFFLENBQUMsRUFDM0MsUUFBUSxFQUNSLFFBQVEsQ0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsS0FBSyxFQUFFLENBQUMsRUFDM0MsUUFBUSxFQUNSLFFBQVEsQ0FDUixDQUFDO1FBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLHFCQUFxQixDQUFDLFVBQVUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElB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QSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2xELFdBQVcsQ0FBQztZQUNYLEtBQUs7WUFDTCxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUs7WUFDbkIsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVE7U0FDMUMsQ0FBQyxDQUNGLENBQUM7SUFDSCxDQUFDO0NBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG5cdEJhbGFuY2UsXG5cdEhleFN0cmluZyxcblx0TmV0d29yayxcblx0UXVlcnlTdGFrZXNPcmRlcixcblx0U3Rha2VFbnRyeSxcbn0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG5cdElBY2NvdW50LFxuXHRJQklQMzIsXG5cdElKc29uUnBjUHJvdmlkZXIsXG5cdElTaWduZXIsXG59IGZyb20gXCIuL2ludGVyZmFjZXMuanNcIjtcbmltcG9ydCB7IFNpZ25lciB9IGZyb20gXCIuL3NpZ25lci5qc1wiO1xuaW1wb3J0IHtcblx0dHlwZSBDb2lucyxcblx0dHlwZSBQdWJsaWNLZXksXG5cdHR5cGUgUHVibGljS2V5SGFzaFN0cmluZyxcblx0dHlwZSBVdHhvLFxuXHR0eXBlIFV0eG9DYWNoZUluZm8sXG5cdFV0eG9TZWxlY3Rpb25TdHJhdGVneSxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcbmltcG9ydCB7IHNlbGVjdFV0eG9zIH0gZnJvbSBcIi4vdXRpbHMuanNcIjtcblxuZXhwb3J0IGNsYXNzIEFjY291bnQgaW1wbGVtZW50cyBJQWNjb3VudCB7XG5cdHB1YmxpYyByZWFkb25seSBpbmRleDogbnVtYmVyO1xuXHRwdWJsaWMgcmVhZG9ubHkgaW50ZXJuYWw6IElTaWduZXI7XG5cdHB1YmxpYyByZWFkb25seSBleHRlcm5hbDogSVNpZ25lcjtcblxuXHRwdWJsaWMgcmVhZG9ubHkgcHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXI7XG5cdHB1YmxpYyBzdHJhdGVneTogVXR4b1NlbGVjdGlvblN0cmF0ZWd5O1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHJvb3Q6IElCSVAzMixcblx0XHRwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcixcblx0XHRpbmRleDogbnVtYmVyLFxuXHRcdHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5LFxuXHQpIHtcblx0XHR0aGlzLmluZGV4ID0gaW5kZXg7XG5cdFx0dGhpcy5pbnRlcm5hbCA9IG5ldyBTaWduZXIoXG5cdFx0XHRyb290LmRlcml2ZVBhdGgoYG0vMycvNDkxOScvMCcvMS8ke2luZGV4fWApLFxuXHRcdFx0cHJvdmlkZXIsXG5cdFx0XHRzdHJhdGVneSxcblx0XHQpO1xuXHRcdHRoaXMuZXh0ZXJuYWwgPSBuZXcgU2lnbmVyKFxuXHRcdFx0cm9vdC5kZXJpdmVQYXRoKGBtLzMnLzQ5MTknLzAnLzAvJHtpbmRleH1gKSxcblx0XHRcdHByb3ZpZGVyLFxuXHRcdFx0c3RyYXRlZ3ksXG5cdFx0KTtcblxuXHRcdGlmICghcHJvdmlkZXIubmV0d29yaykge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGBBY2NvdW50OiB1bmluaXRpYWxpemVkIHByb3ZpZGVyLmApO1xuXHRcdH1cblx0XHR0aGlzLnByb3ZpZGVyID0gcHJvdmlkZXI7XG5cdFx0dGhpcy5zdHJhdGVneSA9IHN0cmF0ZWd5IHx8IFV0eG9TZWxlY3Rpb25TdHJhdGVneS5TbWFsbEZpcnN0O1xuXHR9XG5cblx0cHVibGljIGdldCBjYWNoZUluZm8oKTogVXR4b0NhY2hlSW5mbyB7XG5cdFx0Y29uc3QgaW50ZXJuYWwgPSB0aGlzLmludGVybmFsLmNhY2hlSW5mbztcblx0XHRjb25zdCBleHRlcm5hbCA9IHRoaXMuZXh0ZXJuYWwuY2FjaGVJbmZvO1xuXHRcdHJldHVybiB7XG5cdFx0XHRleHBlbmRhYmxlOiBCaWdJbnQoaW50ZXJuYWwuZXhwZW5kYWJsZSkgKyBCaWdJbnQoZXh0ZXJuYWwuZXhwZW5kYWJsZSksXG5cdFx0XHRzaXplOiBpbnRlcm5hbC5zaXplICsgZXh0ZXJuYWwuc2l6ZSxcblx0XHRcdHRpbWVsb2NrOiBNYXRoLm1pbihcblx0XHRcdFx0aW50ZXJuYWwudGltZWxvY2sgfHwgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsXG5cdFx0XHRcdGV4dGVybmFsLnRpbWVsb2NrLFxuXHRcdFx0KSxcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIGdldCBjaGFuZ2VQa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuaW50ZXJuYWwucGtoO1xuXHR9XG5cblx0cHVibGljIGdldCBwa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuZXh0ZXJuYWwucGtoO1xuXHR9XG5cblx0cHVibGljIGdldCBwdWJsaWNLZXkoKTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5wdWJsaWNLZXk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHByaXZhdGVLZXkoKTogSGV4U3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5wcml2YXRlS2V5O1xuXHR9XG5cblx0cHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcms7XG5cdH1cblxuXHRwdWJsaWMgYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzOiBIZXhTdHJpbmcpOiBhbnkge1xuXHRcdHJldHVybiB0aGlzLmV4dGVybmFsLmF1dGhvcml6ZUV2bUFkZHJlc3MoZXZtQWRkcmVzcyk7XG5cdH1cblxuXHRwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KToge1xuXHRcdGV4Y2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0XHRpbmNsdWRlZDogQXJyYXk8VXR4bz47XG5cdH0ge1xuXHRcdGNvbnN0IGludGVybmFsID0gdGhpcy5pbnRlcm5hbC5hZGRVdHhvcyguLi51dHhvcyk7XG5cdFx0Y29uc3QgZXh0ZXJuYWwgPSB0aGlzLmV4dGVybmFsLmFkZFV0eG9zKC4uLmludGVybmFsLmV4Y2x1ZGVkKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZXhjbHVkZWQ6IGV4dGVybmFsLmV4Y2x1ZGVkLFxuXHRcdFx0aW5jbHVkZWQ6IFsuLi5pbnRlcm5hbC5pbmNsdWRlZCwgLi4uZXh0ZXJuYWwuaW5jbHVkZWRdLFxuXHRcdH07XG5cdH1cblxuXHRwdWJsaWMgY29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IEFycmF5PFV0eG8+IHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5jb25zdW1lVXR4b3MoLi4udGhpcy5pbnRlcm5hbC5jb25zdW1lVXR4b3MoLi4udXR4b3MpKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRCYWxhbmNlKCk6IFByb21pc2U8QmFsYW5jZT4ge1xuXHRcdHJldHVybiBQcm9taXNlLmFsbChbXG5cdFx0XHR0aGlzLmludGVybmFsLmdldEJhbGFuY2UoKSxcblx0XHRcdHRoaXMuZXh0ZXJuYWwuZ2V0QmFsYW5jZSgpLFxuXHRcdF0pLnRoZW4oKFtpbnRlcm5hbCwgZXh0ZXJuYWxdKSA9PiB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRsb2NrZWQ6IGludGVybmFsLmxvY2tlZCArIGV4dGVybmFsLmxvY2tlZCxcblx0XHRcdFx0c3Rha2VkOiBpbnRlcm5hbC5zdGFrZWQgKyBleHRlcm5hbC5zdGFrZWQsXG5cdFx0XHRcdHVubG9ja2VkOiBpbnRlcm5hbC51bmxvY2tlZCArIGV4dGVybmFsLnVubG9ja2VkLFxuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXREZWxlZ2F0ZWVzKFxuXHRcdG9yZGVyPzogUXVlcnlTdGFrZXNPcmRlcixcblx0XHRsZWZ0Sm9pbiA9IHRydWUsXG5cdCk6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+IHtcblx0XHRyZXR1cm4gdGhpcy5wcm92aWRlclxuXHRcdFx0LnN0YWtlcyh7XG5cdFx0XHRcdGZpbHRlcjogeyB3aXRoZHJhd2VyOiB0aGlzLnBraCB9LFxuXHRcdFx0XHRwYXJhbXM6IHsgb3JkZXIgfSxcblx0XHRcdH0pXG5cdFx0XHQudGhlbigocmVjb3JkcykgPT4ge1xuXHRcdFx0XHRpZiAocmVjb3Jkcy5sZW5ndGggPT09IDAgJiYgbGVmdEpvaW4pIHtcblx0XHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRrZXk6IHsgdmFsaWRhdG9yOiBcIlwiLCB3aXRoZHJhd2VyOiB0aGlzLnBraCB9LFxuXHRcdFx0XHRcdFx0XHR2YWx1ZToge1xuXHRcdFx0XHRcdFx0XHRcdGNvaW5zOiAwbixcblx0XHRcdFx0XHRcdFx0XHRub25jZTogMCxcblx0XHRcdFx0XHRcdFx0XHRlcG9jaHM6IHsgbWluaW5nOiAwLCB3aXRuZXNzaW5nOiAwIH0sXG5cdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdF07XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0cmV0dXJuIHJlY29yZHM7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGdldFNpZ25lcihwa2g/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogSVNpZ25lciB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKCFwa2gpIHJldHVybiB0aGlzLmV4dGVybmFsO1xuXHRcdGVsc2UgaWYgKHBraCA9PT0gdGhpcy5leHRlcm5hbC5wa2gpIHJldHVybiB0aGlzLmV4dGVybmFsO1xuXHRcdGVsc2UgaWYgKHBraCA9PT0gdGhpcy5pbnRlcm5hbC5wa2gpIHJldHVybiB0aGlzLmludGVybmFsO1xuXHRcdGVsc2UgcmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRVdHhvcyhyZWxvYWQgPSBmYWxzZSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcblx0XHRyZXR1cm4gW1xuXHRcdFx0Li4uKGF3YWl0IHRoaXMuaW50ZXJuYWwuZ2V0VXR4b3MocmVsb2FkKSksXG5cdFx0XHQuLi4oYXdhaXQgdGhpcy5leHRlcm5hbC5nZXRVdHhvcyhyZWxvYWQpKSxcblx0XHRdO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNlbGVjdFV0eG9zKHNwZWNzPzoge1xuXHRcdHZhbHVlPzogQ29pbnM7XG5cdFx0Y29uc3VtZT86IGJvb2xlYW47XG5cdFx0cmVsb2FkPzogYm9vbGVhbjtcblx0XHRzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblx0fSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcblx0XHRyZXR1cm4gdGhpcy5nZXRVdHhvcyhzcGVjcz8ucmVsb2FkKS50aGVuKCh1dHhvcykgPT5cblx0XHRcdHNlbGVjdFV0eG9zKHtcblx0XHRcdFx0dXR4b3MsXG5cdFx0XHRcdHZhbHVlOiBzcGVjcz8udmFsdWUsXG5cdFx0XHRcdHN0cmF0ZWd5OiBzcGVjcz8uc3RyYXRlZ3kgfHwgdGhpcy5zdHJhdGVneSxcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL2FjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBTU4scUJBQXFCLEdBQ3JCLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFekMsTUFBTSxPQUFPLE9BQU87SUFDSCxLQUFLLENBQVM7SUFDZCxRQUFRLENBQVU7SUFDbEIsUUFBUSxDQUFVO0lBRWxCLFFBQVEsQ0FBbUI7SUFDcEMsUUFBUSxDQUF3QjtJQUV2QyxZQUFZLElBQVksRUFBRSxRQUEwQixFQUFFLEtBQWEsRUFBRSxRQUFnQztRQUNwRyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEtBQUssRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFNUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDckQsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxJQUFJLHFCQUFxQixDQUFDLFVBQVUsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ25CLE1BQU0sUUFBUSxHQUFHLElBQUks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SSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDbEQsV0FBVyxDQUFDO1lBQ1gsS0FBSztZQUNMLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSztZQUNuQixRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUTtTQUMxQyxDQUFDLENBQ0YsQ0FBQztJQUNILENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmFsYW5jZSwgSGV4U3RyaW5nLCBOZXR3b3JrLCBRdWVyeVN0YWtlc09yZGVyLCBTdGFrZUVudHJ5IH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IElBY2NvdW50LCBJQklQMzIsIElKc29uUnBjUHJvdmlkZXIsIElTaWduZXIgfSBmcm9tIFwiLi9pbnRlcmZhY2VzLmpzXCI7XG5pbXBvcnQgeyBTaWduZXIgfSBmcm9tIFwiLi9zaWduZXIuanNcIjtcbmltcG9ydCB7XG5cdHR5cGUgQ29pbnMsXG5cdHR5cGUgUHVibGljS2V5LFxuXHR0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdHR5cGUgVXR4byxcblx0dHlwZSBVdHhvQ2FjaGVJbmZvLFxuXHRVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBzZWxlY3RVdHhvcyB9IGZyb20gXCIuL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBBY2NvdW50IGltcGxlbWVudHMgSUFjY291bnQge1xuXHRwdWJsaWMgcmVhZG9ubHkgaW5kZXg6IG51bWJlcjtcblx0cHVibGljIHJlYWRvbmx5IGludGVybmFsOiBJU2lnbmVyO1xuXHRwdWJsaWMgcmVhZG9ubHkgZXh0ZXJuYWw6IElTaWduZXI7XG5cblx0cHVibGljIHJlYWRvbmx5IHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyO1xuXHRwdWJsaWMgc3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblxuXHRjb25zdHJ1Y3Rvcihyb290OiBJQklQMzIsIHByb3ZpZGVyOiBJSnNvblJwY1Byb3ZpZGVyLCBpbmRleDogbnVtYmVyLCBzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneSkge1xuXHRcdHRoaXMuaW5kZXggPSBpbmRleDtcblx0XHR0aGlzLmludGVybmFsID0gbmV3IFNpZ25lcihyb290LmRlcml2ZVBhdGgoYG0vMycvNDkxOScvMCcvMS8ke2luZGV4fWApLCBwcm92aWRlciwgc3RyYXRlZ3kpO1xuXHRcdHRoaXMuZXh0ZXJuYWwgPSBuZXcgU2lnbmVyKHJvb3QuZGVyaXZlUGF0aChgbS8zJy80OTE5Jy8wJy8wLyR7aW5kZXh9YCksIHByb3ZpZGVyLCBzdHJhdGVneSk7XG5cblx0XHRpZiAoIXByb3ZpZGVyLm5ldHdvcmspIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihgQWNjb3VudDogdW5pbml0aWFsaXplZCBwcm92aWRlci5gKTtcblx0XHR9XG5cdFx0dGhpcy5wcm92aWRlciA9IHByb3ZpZGVyO1xuXHRcdHRoaXMuc3RyYXRlZ3kgPSBzdHJhdGVneSB8fCBVdHhvU2VsZWN0aW9uU3RyYXRlZ3kuU21hbGxGaXJzdDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgY2FjaGVJbmZvKCk6IFV0eG9DYWNoZUluZm8ge1xuXHRcdGNvbnN0IGludGVybmFsID0gdGhpcy5pbnRlcm5hbC5jYWNoZUluZm87XG5cdFx0Y29uc3QgZXh0ZXJuYWwgPSB0aGlzLmV4dGVybmFsLmNhY2hlSW5mbztcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZXhwZW5kYWJsZTogQmlnSW50KGludGVybmFsLmV4cGVuZGFibGUpICsgQmlnSW50KGV4dGVybmFsLmV4cGVuZGFibGUpLFxuXHRcdFx0c2l6ZTogaW50ZXJuYWwuc2l6ZSArIGV4dGVybmFsLnNpemUsXG5cdFx0XHR0aW1lbG9jazogTWF0aC5taW4oaW50ZXJuYWwudGltZWxvY2sgfHwgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIsIGV4dGVybmFsLnRpbWVsb2NrKSxcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIGdldCBjaGFuZ2VQa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuaW50ZXJuYWwucGtoO1xuXHR9XG5cblx0cHVibGljIGdldCBwa2goKTogUHVibGljS2V5SGFzaFN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuZXh0ZXJuYWwucGtoO1xuXHR9XG5cblx0cHVibGljIGdldCBwdWJsaWNLZXkoKTogUHVibGljS2V5IHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5wdWJsaWNLZXk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHByaXZhdGVLZXkoKTogSGV4U3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5wcml2YXRlS2V5O1xuXHR9XG5cblx0cHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLnByb3ZpZGVyLm5ldHdvcms7XG5cdH1cblxuXHRwdWJsaWMgYXV0aG9yaXplRXZtQWRkcmVzcyhldm1BZGRyZXNzOiBIZXhTdHJpbmcpOiBhbnkge1xuXHRcdHJldHVybiB0aGlzLmV4dGVybmFsLmF1dGhvcml6ZUV2bUFkZHJlc3MoZXZtQWRkcmVzcyk7XG5cdH1cblxuXHRwdWJsaWMgYWRkVXR4b3MoLi4udXR4b3M6IEFycmF5PFV0eG8+KToge1xuXHRcdGV4Y2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0XHRpbmNsdWRlZDogQXJyYXk8VXR4bz47XG5cdH0ge1xuXHRcdGNvbnN0IGludGVybmFsID0gdGhpcy5pbnRlcm5hbC5hZGRVdHhvcyguLi51dHhvcyk7XG5cdFx0Y29uc3QgZXh0ZXJuYWwgPSB0aGlzLmV4dGVybmFsLmFkZFV0eG9zKC4uLmludGVybmFsLmV4Y2x1ZGVkKTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0ZXhjbHVkZWQ6IGV4dGVybmFsLmV4Y2x1ZGVkLFxuXHRcdFx0aW5jbHVkZWQ6IFsuLi5pbnRlcm5hbC5pbmNsdWRlZCwgLi4uZXh0ZXJuYWwuaW5jbHVkZWRdLFxuXHRcdH07XG5cdH1cblxuXHRwdWJsaWMgY29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IEFycmF5PFV0eG8+IHtcblx0XHRyZXR1cm4gdGhpcy5leHRlcm5hbC5jb25zdW1lVXR4b3MoLi4udGhpcy5pbnRlcm5hbC5jb25zdW1lVXR4b3MoLi4udXR4b3MpKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRCYWxhbmNlKCk6IFByb21pc2U8QmFsYW5jZT4ge1xuXHRcdHJldHVybiBQcm9taXNlLmFsbChbdGhpcy5pbnRlcm5hbC5nZXRCYWxhbmNlKCksIHRoaXMuZXh0ZXJuYWwuZ2V0QmFsYW5jZSgpXSkudGhlbigoW2ludGVybmFsLCBleHRlcm5hbF0pID0+IHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGxvY2tlZDogaW50ZXJuYWwubG9ja2VkICsgZXh0ZXJuYWwubG9ja2VkLFxuXHRcdFx0XHRzdGFrZWQ6IGludGVybmFsLnN0YWtlZCArIGV4dGVybmFsLnN0YWtlZCxcblx0XHRcdFx0dW5sb2NrZWQ6IGludGVybmFsLnVubG9ja2VkICsgZXh0ZXJuYWwudW5sb2NrZWQsXG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldERlbGVnYXRlZXMob3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLCBsZWZ0Sm9pbiA9IHRydWUpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXJcblx0XHRcdC5zdGFrZXMoe1xuXHRcdFx0XHRmaWx0ZXI6IHsgd2l0aGRyYXdlcjogdGhpcy5wa2ggfSxcblx0XHRcdFx0cGFyYW1zOiB7IG9yZGVyIH0sXG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKHJlY29yZHMpID0+IHtcblx0XHRcdFx0aWYgKHJlY29yZHMubGVuZ3RoID09PSAwICYmIGxlZnRKb2luKSB7XG5cdFx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0a2V5OiB7IHZhbGlkYXRvcjogXCJcIiwgd2l0aGRyYXdlcjogdGhpcy5wa2ggfSxcblx0XHRcdFx0XHRcdFx0dmFsdWU6IHtcblx0XHRcdFx0XHRcdFx0XHRjb2luczogMG4sXG5cdFx0XHRcdFx0XHRcdFx0bm9uY2U6IDAsXG5cdFx0XHRcdFx0XHRcdFx0ZXBvY2hzOiB7IG1pbmluZzogMCwgd2l0bmVzc2luZzogMCB9LFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRdO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiByZWNvcmRzO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBnZXRTaWduZXIocGtoPzogUHVibGljS2V5SGFzaFN0cmluZyk6IElTaWduZXIgfCB1bmRlZmluZWQge1xuXHRcdGlmICghcGtoKSByZXR1cm4gdGhpcy5leHRlcm5hbDtcblx0XHRlbHNlIGlmIChwa2ggPT09IHRoaXMuZXh0ZXJuYWwucGtoKSByZXR1cm4gdGhpcy5leHRlcm5hbDtcblx0XHRlbHNlIGlmIChwa2ggPT09IHRoaXMuaW50ZXJuYWwucGtoKSByZXR1cm4gdGhpcy5pbnRlcm5hbDtcblx0XHRlbHNlIHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0VXR4b3MocmVsb2FkID0gZmFsc2UpOiBQcm9taXNlPEFycmF5PFV0eG8+PiB7XG5cdFx0cmV0dXJuIFsuLi4oYXdhaXQgdGhpcy5pbnRlcm5hbC5nZXRVdHhvcyhyZWxvYWQpKSwgLi4uKGF3YWl0IHRoaXMuZXh0ZXJuYWwuZ2V0VXR4b3MocmVsb2FkKSldO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNlbGVjdFV0eG9zKHNwZWNzPzoge1xuXHRcdHZhbHVlPzogQ29pbnM7XG5cdFx0Y29uc3VtZT86IGJvb2xlYW47XG5cdFx0cmVsb2FkPzogYm9vbGVhbjtcblx0XHRzdHJhdGVneT86IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblx0fSk6IFByb21pc2U8QXJyYXk8VXR4bz4+IHtcblx0XHRyZXR1cm4gdGhpcy5nZXRVdHhvcyhzcGVjcz8ucmVsb2FkKS50aGVuKCh1dHhvcykgPT5cblx0XHRcdHNlbGVjdFV0eG9zKHtcblx0XHRcdFx0dXR4b3MsXG5cdFx0XHRcdHZhbHVlOiBzcGVjcz8udmFsdWUsXG5cdFx0XHRcdHN0cmF0ZWd5OiBzcGVjcz8uc3RyYXRlZ3kgfHwgdGhpcy5zdHJhdGVneSxcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coinbase.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/coinbase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,
|
|
1
|
+
{"version":3,"file":"coinbase.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/coinbase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAiB,KAAK,mBAAmB,EAAwB,KAAK,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEvH,qBAAa,QAAS,SAAQ,MAAO,YAAW,SAAS;gBAC5C,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,qBAAqB;IAO/E,cAAc,CAAC,UAAU,EAAE,mBAAmB,GAAG,SAAS;IAO1D,cAAc,CAAC,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;CAM3E"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Signer } from "./signer.js";
|
|
2
|
-
import { PublicKeyHash, RecoverableSignature
|
|
2
|
+
import { PublicKeyHash, RecoverableSignature } from "./types.js";
|
|
3
3
|
export class Coinbase extends Signer {
|
|
4
4
|
constructor(node, provider, strategy) {
|
|
5
5
|
super(node, provider, strategy);
|
|
@@ -20,4 +20,4 @@ export class Coinbase extends Signer {
|
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29pbmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NyeXB0by9jb2luYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQTRCLG9CQUFvQixFQUE4QixNQUFNLFlBQVksQ0FBQztBQUV2SCxNQUFNLE9BQU8sUUFBUyxTQUFRLE1BQU07SUFDbkMsWUFBWSxJQUFZLEVBQUUsUUFBMEIsRUFBRSxRQUFnQztRQUNyRixLQUFLLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxLQUFLLENBQUMsdUNBQXVDLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDRixDQUFDO0lBRU0sY0FBYyxDQUFDLFVBQStCO1FBQ3BELE1BQU0sR0FBRyxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDN0QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixNQUFNLFNBQVMsR0FBRyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkUsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4RSxDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQXdCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDM0IsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDL0IsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFO1NBQ2pCLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSGV4U3RyaW5nLCBRdWVyeVN0YWtlc09yZGVyLCBTdGFrZUVudHJ5IH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IElCSVAzMiwgSUNvaW5iYXNlLCBJSnNvblJwY1Byb3ZpZGVyIH0gZnJvbSBcIi4vaW50ZXJmYWNlcy5qc1wiO1xuaW1wb3J0IHsgU2lnbmVyIH0gZnJvbSBcIi4vc2lnbmVyLmpzXCI7XG5pbXBvcnQgeyBQdWJsaWNLZXlIYXNoLCB0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsIFJlY292ZXJhYmxlU2lnbmF0dXJlLCB0eXBlIFV0eG9TZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBjbGFzcyBDb2luYmFzZSBleHRlbmRzIFNpZ25lciBpbXBsZW1lbnRzIElDb2luYmFzZSB7XG5cdGNvbnN0cnVjdG9yKG5vZGU6IElCSVAzMiwgcHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXIsIHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5KSB7XG5cdFx0c3VwZXIobm9kZSwgcHJvdmlkZXIsIHN0cmF0ZWd5KTtcblx0XHRpZiAobm9kZS5kZXB0aCAhPT0gMCkge1xuXHRcdFx0dGhyb3cgRXJyb3IoYENvaW5iYXNlOiBpbnZhbGlkIEJJUDMyIG5vZGUgZGVwdGg6ICR7bm9kZS5kZXB0aH0gPiAwYCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGF1dGhvcml6ZVN0YWtlKHdpdGhkcmF3ZXI6IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBIZXhTdHJpbmcge1xuXHRcdGNvbnN0IG1zZyA9IFB1YmxpY0tleUhhc2guZnJvbUJlY2gzMih3aXRoZHJhd2VyKS50b0J5dGVzMzIoKTtcblx0XHRjb25zdCBrcyA9IHRoaXMuc2lnbkhhc2gobXNnKTtcblx0XHRjb25zdCBzaWduYXR1cmUgPSBSZWNvdmVyYWJsZVNpZ25hdHVyZS5mcm9tS2V5ZWRTaWduYXR1cmUoa3MsIG1zZyk7XG5cdFx0cmV0dXJuIHNpZ25hdHVyZS5wdWJLZXkuaGFzaCgpLnRvSGV4U3RyaW5nKCkgKyBzaWduYXR1cmUudG9IZXhTdHJpbmcoKTtcblx0fVxuXG5cdHB1YmxpYyBnZXRXaXRoZHJhd2VycyhvcmRlcj86IFF1ZXJ5U3Rha2VzT3JkZXIpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XG5cdFx0cmV0dXJuIHRoaXMucHJvdmlkZXIuc3Rha2VzKHtcblx0XHRcdGZpbHRlcjogeyB2YWxpZGF0b3I6IHRoaXMucGtoIH0sXG5cdFx0XHRwYXJhbXM6IHsgb3JkZXIgfSxcblx0XHR9KTtcblx0fVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,OAAO,EACP,IAAI,EACJ,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,UAAU,EACV,mBAAmB,EACnB,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EACX,KAAK,EACL,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,IAAI,EACJ,aAAa,EACb,qBAAqB,EACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,cAAc,IAAI,MAAM,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,QAAS,SAAQ,OAAO;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACvB,SAAS,EAAE,aAAa,CAAC;IACzB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,EAAE,mBAAmB,CAAC;IACzB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,SAAS,CAAC;IACtB,QAAQ,EAAE,qBAAqB,CAAC;IAEhC,mBAAmB,CAAC,UAAU,EAAE,SAAS,GAAG,GAAG,CAAC;IAEhD,QAAQ,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG;QAChC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACtB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;KACtB,CAAC;IACF,YAAY,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;IACzC,WAAW,CAAC,KAAK,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../../src/lib/crypto/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcblx0QmFsYW5jZSxcblx0SGFzaCxcblx0SGV4U3RyaW5nLFxuXHRJSnNvblJwY1Byb3ZpZGVyLFxuXHROZXR3b3JrLFxuXHRRdWVyeVN0YWtlc09yZGVyLFxuXHRTdGFrZUVudHJ5LFxuXHRWYWx1ZVRyYW5zZmVyT3V0cHV0LFxufSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcblxuaW1wb3J0IHR5cGUge1xuXHRDb2lucyxcblx0S2V5ZWRTaWduYXR1cmUsXG5cdFB1YmxpY0tleSxcblx0UHVibGljS2V5SGFzaFN0cmluZyxcblx0VHJhbnNhY3Rpb25SZWNlaXB0LFxuXHRVdHhvLFxuXHRVdHhvQ2FjaGVJbmZvLFxuXHRVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCB7IEJJUDMySW50ZXJmYWNlIGFzIElCSVAzMiB9IGZyb20gXCJiaXAzMlwiO1xuZXhwb3J0IHsgSUpzb25ScGNQcm92aWRlciB9IGZyb20gXCIuLi9ycGMvaW5kZXguanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudCBleHRlbmRzIElMZWRnZXIge1xuXHRpbmRleDogbnVtYmVyO1xuXHRpbnRlcm5hbDogSVNpZ25lcjtcblx0ZXh0ZXJuYWw6IElTaWduZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxlZGdlciB7XG5cdGNhY2hlSW5mbzogVXR4b0NhY2hlSW5mbztcblx0Y2hhbmdlUGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRuZXR3b3JrPzogTmV0d29yaztcblx0cGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcjtcblx0cHVibGljS2V5OiBQdWJsaWNLZXk7XG5cdHByaXZhdGVLZXk6IEhleFN0cmluZztcblx0c3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblxuXHRhdXRob3JpemVFdm1BZGRyZXNzKGV2bUFkZHJlc3M6IEhleFN0cmluZyk6IGFueTtcblxuXHRhZGRVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiB7XG5cdFx0ZXhjbHVkZWQ6IEFycmF5PFV0eG8+O1xuXHRcdGluY2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0fTtcblx0Y29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IGFueTtcblx0c2VsZWN0VXR4b3Moc3BlY3M/
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY3J5cHRvL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcblx0QmFsYW5jZSxcblx0SGFzaCxcblx0SGV4U3RyaW5nLFxuXHRJSnNvblJwY1Byb3ZpZGVyLFxuXHROZXR3b3JrLFxuXHRRdWVyeVN0YWtlc09yZGVyLFxuXHRTdGFrZUVudHJ5LFxuXHRWYWx1ZVRyYW5zZmVyT3V0cHV0LFxufSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcblxuaW1wb3J0IHR5cGUge1xuXHRDb2lucyxcblx0S2V5ZWRTaWduYXR1cmUsXG5cdFB1YmxpY0tleSxcblx0UHVibGljS2V5SGFzaFN0cmluZyxcblx0VHJhbnNhY3Rpb25SZWNlaXB0LFxuXHRVdHhvLFxuXHRVdHhvQ2FjaGVJbmZvLFxuXHRVdHhvU2VsZWN0aW9uU3RyYXRlZ3ksXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCB7IEJJUDMySW50ZXJmYWNlIGFzIElCSVAzMiB9IGZyb20gXCJiaXAzMlwiO1xuZXhwb3J0IHsgSUpzb25ScGNQcm92aWRlciB9IGZyb20gXCIuLi9ycGMvaW5kZXguanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJQWNjb3VudCBleHRlbmRzIElMZWRnZXIge1xuXHRpbmRleDogbnVtYmVyO1xuXHRpbnRlcm5hbDogSVNpZ25lcjtcblx0ZXh0ZXJuYWw6IElTaWduZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUxlZGdlciB7XG5cdGNhY2hlSW5mbzogVXR4b0NhY2hlSW5mbztcblx0Y2hhbmdlUGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRuZXR3b3JrPzogTmV0d29yaztcblx0cGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nO1xuXHRwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcjtcblx0cHVibGljS2V5OiBQdWJsaWNLZXk7XG5cdHByaXZhdGVLZXk6IEhleFN0cmluZztcblx0c3RyYXRlZ3k6IFV0eG9TZWxlY3Rpb25TdHJhdGVneTtcblxuXHRhdXRob3JpemVFdm1BZGRyZXNzKGV2bUFkZHJlc3M6IEhleFN0cmluZyk6IGFueTtcblxuXHRhZGRVdHhvcyguLi51dHhvczogQXJyYXk8VXR4bz4pOiB7XG5cdFx0ZXhjbHVkZWQ6IEFycmF5PFV0eG8+O1xuXHRcdGluY2x1ZGVkOiBBcnJheTxVdHhvPjtcblx0fTtcblx0Y29uc3VtZVV0eG9zKC4uLnV0eG9zOiBBcnJheTxVdHhvPik6IGFueTtcblx0c2VsZWN0VXR4b3Moc3BlY3M/OiB7IHZhbHVlPzogQ29pbnM7IHJlbG9hZD86IGJvb2xlYW47IHN0cmF0ZWd5PzogVXR4b1NlbGVjdGlvblN0cmF0ZWd5IH0pOiBQcm9taXNlPEFycmF5PFV0eG8+PjtcblxuXHRnZXRCYWxhbmNlKCk6IFByb21pc2U8QmFsYW5jZT47XG5cdGdldERlbGVnYXRlZXMob3JkZXI/OiBRdWVyeVN0YWtlc09yZGVyLCBsZWZ0Sm9pbj86IGJvb2xlYW4pOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+Pjtcblx0Z2V0U2lnbmVyKHBraD86IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBJU2lnbmVyIHwgdW5kZWZpbmVkO1xuXHRnZXRVdHhvcyhzcGVjcz86IGFueSk6IFByb21pc2U8QXJyYXk8VXR4bz4+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb2luYmFzZSBleHRlbmRzIElTaWduZXIge1xuXHRhdXRob3JpemVTdGFrZSh3aXRoZHJhd2VyOiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogSGV4U3RyaW5nO1xuXHRnZXRXaXRoZHJhd2VycyhvcmRlcj86IFF1ZXJ5U3Rha2VzT3JkZXIpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2lnbmVyIGV4dGVuZHMgSUxlZGdlciB7XG5cdGF1dGhvcml6ZUV2bUFkZHJlc3MoZXZtQWRkcmVzczogSGV4U3RyaW5nKTogYW55O1xuXHRnZXRTdGFrZUVudHJ5Tm9uY2UodmFsaWRhdG9yOiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogUHJvbWlzZTxudW1iZXI+O1xuXHRzaWduSGFzaChoYXNoOiBhbnkpOiBLZXllZFNpZ25hdHVyZTtcblx0c2lnbk1lc3NhZ2UodGV4dDogc3RyaW5nKToge1xuXHRcdGFkZHJlc3M6IHN0cmluZztcblx0XHRtZXNzYWdlOiBzdHJpbmc7XG5cdFx0cHVibGljS2V5OiBIZXhTdHJpbmc7XG5cdFx0c2lnbmF0dXJlOiBIZXhTdHJpbmc7XG5cdH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVdhbGxldCBleHRlbmRzIElMZWRnZXIge1xuXHRhY2NvdW50cz86IEFycmF5PElBY2NvdW50Pjtcblx0Y29pbmJhc2U6IElDb2luYmFzZTtcblx0ZGVyaXZlQWNjb3VudHMoaW5kZXg6IG51bWJlcik6IEFycmF5PElBY2NvdW50Pjtcblx0ZXhwbG9yZUFjY291bnRzKHBhcmFtcz86IGFueSk6IFByb21pc2U8QXJyYXk8SUFjY291bnQ+Pjtcblx0Z2V0QWNjb3VudChwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcsIGdhcD86IG51bWJlcik6IElBY2NvdW50IHwgdW5kZWZpbmVkO1xuXHRnZXRTaWduZXIocGtoPzogUHVibGljS2V5SGFzaFN0cmluZywgZ2FwPzogbnVtYmVyKTogSVNpZ25lciB8IHVuZGVmaW5lZDtcbn1cblxuaW50ZXJmYWNlIElIYXNoYWJsZSB7XG5cdGJ5dGVjb2RlPzogVWludDhBcnJheTtcblx0aGFzaD86IEhhc2g7XG5cdHRvSlNPTihodW1hbml6ZT86IGJvb2xlYW4sIHBhcmFtcz86IGFueSk6IGFueTtcblx0dG9Qcm90b2J1ZigpOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zbWl0dGVyIHtcblx0bmV0d29yazogTmV0d29yaztcblx0cGF5bG9hZD86IGFueTtcblx0cHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXI7XG5cdHRyYW5zYWN0aW9uczogQXJyYXk8SGFzaD47XG5cdHR5cGU6IHN0cmluZztcblx0Y29uZmlybVRyYW5zYWN0aW9uKHBhcmFtcz86IGFueSk6IFByb21pc2U8VHJhbnNhY3Rpb25SZWNlaXB0IHwgdW5rbm93bj47XG5cdHNlbmRUcmFuc2FjdGlvbihwYXJhbXM/OiBhbnkpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD47XG5cdHNpZ25UcmFuc2FjdGlvbihwYXJhbXM/OiBhbnksIHJlbG9hZD86IGJvb2xlYW4pOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zYWN0aW9uUGF5bG9hZDxTcGVjcz4gZXh0ZW5kcyBJSGFzaGFibGUge1xuXHRjaGFuZ2U/OiBDb2lucztcblx0Y292ZXJlZDogYm9vbGVhbjtcblx0ZmVlcz86IENvaW5zO1xuXHRtYXhXZWlnaHQ6IG51bWJlcjtcblx0cHJlcGFyZWQ6IGJvb2xlYW47XG5cdG91dHB1dHM6IEFycmF5PFZhbHVlVHJhbnNmZXJPdXRwdXQ+O1xuXHR0YXJnZXQ/OiBTcGVjcztcblx0dmFsdWU/OiBDb2lucztcblx0d2VpZ2h0OiBudW1iZXI7XG5cdGNvbnN1bWVVdHhvcyhsZWRnZXI6IElMZWRnZXIsIHBhcmFtcz86IGFueSk6IGFueTtcblx0aW50b1JlY2VpcHQodGFyZ2V0OiBTcGVjcywgbmV0d29yaz86IE5ldHdvcmspOiBhbnk7XG5cdHByZXBhcmVPdXRwdXRzKHBhcmFtcz86IGFueSk6IGFueTtcblx0cmVzZXRUYXJnZXQodGFyZ2V0OiBTcGVjcyk6IGFueTtcblx0dG9KU09OKGh1bWFuaXplPzogYm9vbGVhbiwgbmV0d29yaz86IE5ldHdvcmspOiBhbnk7XG5cdHZhbGlkYXRlVGFyZ2V0KHRhcmdldD86IFNwZWNzKTogU3BlY3MgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRyYW5zYWN0aW9uUGF5bG9hZE11bHRpU2lnPFNwZWNzPiBleHRlbmRzIElUcmFuc2FjdGlvblBheWxvYWQ8U3BlY3M+IHtcblx0aW5wdXRzOiBBcnJheTxVdHhvPjtcbn1cbiJdfQ==
|
|
@@ -4,26 +4,24 @@ import type { ILedger } from "../interfaces.js";
|
|
|
4
4
|
import { TransactionPayloadMultiSig } from "../payloads.js";
|
|
5
5
|
import { Coins, type TransactionParams, TransactionPriority } from "../types.js";
|
|
6
6
|
export type DataRequestTemplateArgs = any | string | string[] | string[][];
|
|
7
|
-
export type DataRequestMajority = "simple" | "qualified";
|
|
8
7
|
export type DataRequestParams = TransactionParams & {
|
|
9
8
|
args?: DataRequestTemplateArgs;
|
|
10
|
-
majorityType?: DataRequestMajority;
|
|
11
9
|
maxResultSize?: number;
|
|
12
10
|
witnesses?: number;
|
|
13
11
|
};
|
|
14
12
|
type DataRequestOutputSLA = {
|
|
15
|
-
collateral
|
|
16
|
-
commitAndRevealFee
|
|
13
|
+
collateral: number;
|
|
14
|
+
commitAndRevealFee: number;
|
|
17
15
|
minConsensusPercentage: number;
|
|
18
16
|
witnesses: number;
|
|
19
|
-
witnessReward
|
|
20
|
-
maxResultSize?: number;
|
|
17
|
+
witnessReward?: number;
|
|
21
18
|
};
|
|
22
19
|
export declare class DataRequestPayload extends TransactionPayloadMultiSig<DataRequestParams> {
|
|
23
20
|
static DEFAULT_MAX_RESULT_SIZE: number;
|
|
24
21
|
static DEFAULT_WITNESSES: number;
|
|
25
22
|
static MAX_WEIGHT: number;
|
|
26
23
|
static MIN_COLLATERAL: bigint;
|
|
24
|
+
static MIN_CONSENSUS_PERCENTAGE: number;
|
|
27
25
|
protected _request?: RadonRequest;
|
|
28
26
|
readonly template?: RadonTemplate;
|
|
29
27
|
constructor(protoTypeName: string, radon: RadonRequest | RadonTemplate, initialTarget?: DataRequestParams);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataRequestPayload.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/payloads/DataRequestPayload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DataRequestPayload.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/payloads/DataRequestPayload.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ const protoRoot = ProtoRoot.fromJSON(require("../../../../witnet/witnet.proto.js
|
|
|
7
7
|
import { fromHexString, toHexString } from "../../../bin/helpers.js";
|
|
8
8
|
import { RadonRequest, RadonTemplate } from "../../radon/index.js";
|
|
9
9
|
import { TransactionPayloadMultiSig } from "../payloads.js";
|
|
10
|
-
import { Coins, PublicKeyHash, TransactionPriority
|
|
10
|
+
import { Coins, PublicKeyHash, TransactionPriority } from "../types.js";
|
|
11
11
|
import { BigMath, sha256 } from "../utils.js";
|
|
12
12
|
const COLLATERAL_RATIO = 100n;
|
|
13
13
|
// const RADON_ERROR_MAX_BYTES = 9;
|
|
@@ -23,6 +23,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
23
23
|
static DEFAULT_WITNESSES = 12;
|
|
24
24
|
static MAX_WEIGHT = 80_000;
|
|
25
25
|
static MIN_COLLATERAL = 20000000000n;
|
|
26
|
+
static MIN_CONSENSUS_PERCENTAGE = 51;
|
|
26
27
|
_request;
|
|
27
28
|
template;
|
|
28
29
|
constructor(protoTypeName, radon, initialTarget) {
|
|
@@ -60,7 +61,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
60
61
|
}
|
|
61
62
|
get droSLA() {
|
|
62
63
|
if (this._target && this._fees) {
|
|
63
|
-
const minConsensusPercentage =
|
|
64
|
+
const minConsensusPercentage = DataRequestPayload.MIN_CONSENSUS_PERCENTAGE;
|
|
64
65
|
const witnesses = typeof this._target.witnesses === "object"
|
|
65
66
|
? Object.keys(this._target.witnesses).length
|
|
66
67
|
: this._target.witnesses || 0;
|
|
@@ -73,38 +74,9 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
73
74
|
throw new TypeError(`${this.constructor.name}: excessive witness reward: ${witnessReward.toString()} > ${Number.MAX_SAFE_INTEGER}`);
|
|
74
75
|
else if (commitAndRevealFee > Number.MAX_SAFE_INTEGER)
|
|
75
76
|
throw new TypeError(`${this.constructor.name}: excessive commit/reveal fee: ${commitAndRevealFee.toString()} > ${Number.MAX_SAFE_INTEGER}`);
|
|
76
|
-
// TODO: only when protocol >= V2_1
|
|
77
|
-
// let maxResultSize
|
|
78
|
-
// if (this.request) {
|
|
79
|
-
// if (this.request.witnessReducer.opcode === Opcodes.ConcatenateAndHash) {
|
|
80
|
-
// if (this._target?.maxResultSize && this._target?.maxResultSize !== 34) {
|
|
81
|
-
// throw new TypeError(`${this.constructor.name}: invalid max result size (${this._target?.maxResultSize}) for a concatenate-and-hash output.`)
|
|
82
|
-
// }
|
|
83
|
-
// } else {
|
|
84
|
-
// switch (this.request.dataType) {
|
|
85
|
-
// case "RadonBoolean":
|
|
86
|
-
// case "RadonInteger":
|
|
87
|
-
// case "RadonFloat":
|
|
88
|
-
// if (this._target?.maxResultSize && this._target.maxResultSize !== RADON_ERROR_MAX_BYTES) {
|
|
89
|
-
// throw new TypeError(`${this.constructor.name}: invalid max result size (${
|
|
90
|
-
// this._target.maxResultSize
|
|
91
|
-
// } bytes) for expected result type (${this.request.dataType})`)
|
|
92
|
-
// }
|
|
93
|
-
// break;
|
|
94
|
-
// default:
|
|
95
|
-
// if (this._target?.maxResultSize && this._target.maxResultSize < RADON_ERROR_MAX_BYTES) {
|
|
96
|
-
// throw new TypeError(`${this.constructor.name}: invalid max result size (${
|
|
97
|
-
// this._target.maxResultSize
|
|
98
|
-
// } bytes) for variant result type (${this.request.dataType})`)
|
|
99
|
-
// }
|
|
100
|
-
// maxResultSize = this._target?.maxResultSize || DataRequestPayload.DEFAULT_MAX_RESULT_SIZE
|
|
101
|
-
// }
|
|
102
|
-
// }
|
|
103
|
-
// }
|
|
104
77
|
return {
|
|
105
78
|
collateral: Number(collateral),
|
|
106
79
|
commitAndRevealFee: Number(commitAndRevealFee),
|
|
107
|
-
// maxResultSize, TODO: only if protocol >= V2_1
|
|
108
80
|
minConsensusPercentage,
|
|
109
81
|
witnesses,
|
|
110
82
|
witnessReward: Number(witnessReward),
|
|
@@ -130,10 +102,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
130
102
|
return !!this.template;
|
|
131
103
|
}
|
|
132
104
|
get prepared() {
|
|
133
|
-
return
|
|
134
|
-
this._inputs.length > 0 &&
|
|
135
|
-
!!this._request &&
|
|
136
|
-
!!this._target);
|
|
105
|
+
return this.covered && this._inputs.length > 0 && !!this._request && !!this._target;
|
|
137
106
|
}
|
|
138
107
|
get radArgs() {
|
|
139
108
|
return this.template ? this._target?.args : undefined;
|
|
@@ -157,15 +126,11 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
157
126
|
const witnesses = typeof this._target.witnesses === "object"
|
|
158
127
|
? Object.keys(this._target.witnesses).length
|
|
159
128
|
: this._target.witnesses || 0;
|
|
160
|
-
return (DR_TX_WEIGHT_ALPHA * (this._request.weight() + 8 + 2 + 8 + 4 + 8)
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
DR_REVEAL_TX_WEIGHT * DR_TX_WEIGHT_BETA +
|
|
166
|
-
TX_WEIGHT_OUTPUT_SIZE) + // TODO V2.1: typeof this._target.witnesses === 'object' ? TX_WEIGHT_OUTPUT_SIZE : 0
|
|
167
|
-
Math.max(DR_TALLY_TX_WEIGHT, this._target?.maxResultSize || 0) *
|
|
168
|
-
DR_TX_WEIGHT_BETA);
|
|
129
|
+
return (DR_TX_WEIGHT_ALPHA * (this._request.weight() + 8 + 2 + 8 + 4 + 8) +
|
|
130
|
+
this._inputs.length * TX_WEIGHT_INPUT_SIZE +
|
|
131
|
+
this._outputs.length * TX_WEIGHT_OUTPUT_SIZE +
|
|
132
|
+
witnesses * (DR_COMMIT_TX_WEIGHT + DR_REVEAL_TX_WEIGHT * DR_TX_WEIGHT_BETA + TX_WEIGHT_OUTPUT_SIZE) + // TODO V2.1: typeof this._target.witnesses === 'object' ? TX_WEIGHT_OUTPUT_SIZE : 0
|
|
133
|
+
Math.max(DR_TALLY_TX_WEIGHT, this._target?.maxResultSize || 0) * DR_TX_WEIGHT_BETA);
|
|
169
134
|
}
|
|
170
135
|
else {
|
|
171
136
|
return 0;
|
|
@@ -188,17 +153,14 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
188
153
|
}
|
|
189
154
|
else if (this.weight > DataRequestPayload.MAX_WEIGHT * 0.8) {
|
|
190
155
|
const delta = this.weight - DataRequestPayload.MAX_WEIGHT * 0.8;
|
|
191
|
-
this._target.witnesses -= Math.ceil(delta /
|
|
192
|
-
(DR_COMMIT_TX_WEIGHT +
|
|
193
|
-
DR_REVEAL_TX_WEIGHT * TX_WEIGHT_OUTPUT_SIZE));
|
|
156
|
+
this._target.witnesses -= Math.ceil(delta / (DR_COMMIT_TX_WEIGHT + DR_REVEAL_TX_WEIGHT * TX_WEIGHT_OUTPUT_SIZE));
|
|
194
157
|
if (this._target.witnesses < 3) {
|
|
195
158
|
delete this._target.witnesses;
|
|
196
159
|
throw new Error(`${this.constructor.name}: cannot estimate witnesses: radon request too heavy: ${this.weight} weight units`);
|
|
197
160
|
}
|
|
198
161
|
}
|
|
199
162
|
}
|
|
200
|
-
const priority = this._target?.fees ||
|
|
201
|
-
TransactionPriority.Opulent;
|
|
163
|
+
const priority = this._target?.fees || TransactionPriority.Opulent;
|
|
202
164
|
let estimatedFees = await this._estimateNetworkFees(ledger.provider, priority);
|
|
203
165
|
while (this._fees < estimatedFees && this._change >= 0) {
|
|
204
166
|
this._fees = estimatedFees;
|
|
@@ -210,9 +172,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
210
172
|
value: Coins.fromPedros(value + this._fees - this._covered),
|
|
211
173
|
reload,
|
|
212
174
|
});
|
|
213
|
-
const extra = utxos
|
|
214
|
-
.map((utxo) => BigInt(utxo.value))
|
|
215
|
-
.reduce((prev, curr) => prev + curr, 0n);
|
|
175
|
+
const extra = utxos.map((utxo) => BigInt(utxo.value)).reduce((prev, curr) => prev + curr, 0n);
|
|
216
176
|
this._covered += extra;
|
|
217
177
|
this._inputs.push(...utxos);
|
|
218
178
|
ledger.consumeUtxos(...utxos);
|
|
@@ -250,8 +210,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
250
210
|
this._inputs = [];
|
|
251
211
|
this._outputs = [];
|
|
252
212
|
this._target = target;
|
|
253
|
-
if (this.droSLA?.collateral &&
|
|
254
|
-
this.droSLA.collateral < DataRequestPayload.MIN_COLLATERAL) {
|
|
213
|
+
if (this.droSLA?.collateral && this.droSLA.collateral < DataRequestPayload.MIN_COLLATERAL) {
|
|
255
214
|
throw new TypeError(`${this.constructor.name}: witnessing collateral below minimum: ${this.droSLA.collateral} < ${DataRequestPayload.MIN_COLLATERAL}`);
|
|
256
215
|
}
|
|
257
216
|
if (this.template) {
|
|
@@ -271,18 +230,14 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
271
230
|
toJSON(humanize = false) {
|
|
272
231
|
const droSLA = this.droSLA;
|
|
273
232
|
return {
|
|
274
|
-
inputs: this.inputs.map((utxo) => ({
|
|
275
|
-
output_pointer: utxo.output_pointer,
|
|
276
|
-
})),
|
|
233
|
+
inputs: this.inputs.map((utxo) => ({ output_pointer: utxo.output_pointer })),
|
|
277
234
|
outputs: this.outputs.map((vto) => ({
|
|
278
235
|
pkh: vto.pkh,
|
|
279
236
|
time_lock: vto.time_lock,
|
|
280
237
|
value: vto.value.toString(),
|
|
281
238
|
})),
|
|
282
239
|
dr_output: {
|
|
283
|
-
...(this._request
|
|
284
|
-
? { data_request: this._request.toJSON(humanize) }
|
|
285
|
-
: {}),
|
|
240
|
+
...(this._request ? { data_request: this._request.toJSON(humanize) } : {}),
|
|
286
241
|
commit_and_reveal_fee: droSLA?.commitAndRevealFee,
|
|
287
242
|
min_consensus_percentage: droSLA?.minConsensusPercentage,
|
|
288
243
|
witnesses: droSLA?.witnesses,
|
|
@@ -299,17 +254,13 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
299
254
|
const outputIndex = parseInt(utxo.output_pointer.split(":")[1], 10);
|
|
300
255
|
return {
|
|
301
256
|
outputPointer: {
|
|
302
|
-
transactionId: {
|
|
303
|
-
SHA256: Array.from(fromHexString(transactionId)),
|
|
304
|
-
},
|
|
257
|
+
transactionId: { SHA256: Array.from(fromHexString(transactionId)) },
|
|
305
258
|
...(outputIndex > 0 ? { outputIndex } : {}),
|
|
306
259
|
},
|
|
307
260
|
};
|
|
308
261
|
}),
|
|
309
262
|
outputs: this.outputs.map((vto) => ({
|
|
310
|
-
pkh: {
|
|
311
|
-
hash: Array.from(PublicKeyHash.fromBech32(vto.pkh).toBytes20()),
|
|
312
|
-
},
|
|
263
|
+
pkh: { hash: Array.from(PublicKeyHash.fromBech32(vto.pkh).toBytes20()) },
|
|
313
264
|
value: Long.fromValue(vto.value),
|
|
314
265
|
...(vto.time_lock > 0 ? { timeLock: vto.time_lock } : {}),
|
|
315
266
|
})),
|
|
@@ -322,8 +273,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
322
273
|
if (target && Object.keys(target).length > 0) {
|
|
323
274
|
if (!(target &&
|
|
324
275
|
(!target?.fees ||
|
|
325
|
-
(target.fees instanceof Coins &&
|
|
326
|
-
target.fees.pedros > 0) ||
|
|
276
|
+
(target.fees instanceof Coins && target.fees.pedros > 0) ||
|
|
327
277
|
Object.values(TransactionPriority).includes(target.fees)) &&
|
|
328
278
|
(target?.witnesses || target?.witnesses === undefined) &&
|
|
329
279
|
(!this.template || target?.args))) {
|
|
@@ -363,8 +313,7 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
363
313
|
}
|
|
364
314
|
_fees2Value(fees, witnesses) {
|
|
365
315
|
return (BigInt(witnesses) *
|
|
366
|
-
(this._fees2UnitaryReward(fees, witnesses) +
|
|
367
|
-
2n * this._fees2UnitaryCommitRevealReward(fees, witnesses)));
|
|
316
|
+
(this._fees2UnitaryReward(fees, witnesses) + 2n * this._fees2UnitaryCommitRevealReward(fees, witnesses)));
|
|
368
317
|
}
|
|
369
318
|
_toDrOutputProtobuf() {
|
|
370
319
|
if (this._request) {
|
|
@@ -375,4 +324,4 @@ export class DataRequestPayload extends TransactionPayloadMultiSig {
|
|
|
375
324
|
}
|
|
376
325
|
}
|
|
377
326
|
}
|
|
378
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVJlcXVlc3RQYXlsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vcGF5bG9hZHMvRGF0YVJlcXVlc3RQYXlsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRS9DLE9BQU8sUUFBUSxNQUFNLFlBQVksQ0FBQztBQUVsQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsQ0FBQztBQUNyQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUNuQyxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FDL0MsQ0FBQztBQUVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFckUsT0FBTyxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUluRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQ04sS0FBSyxFQUNMLGFBQWEsRUFFYixtQkFBbUIsR0FDbkIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFzQjlDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBQzlCLG1DQUFtQztBQUVuQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsQ0FBQztBQUUvQixNQUFNLGtCQUFrQixHQUFHLENBQUMsQ0FBQztBQUM3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QyxDQUM1RCxDQUFDO0lBQ0gsQ0FBQztJQUVTLG1CQUFtQjtRQUM1QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixPQUFPO2dCQUNOLEdBQUcsSUFBSSxDQUFDLE1BQU07Z0JBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO2FBQ3ZDLENBQUM7UUFDSCxDQUFDO0lBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCBMb25nIGZyb20gXCJsb25nXCI7XG5cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5cbmltcG9ydCBwcm90b2J1ZiBmcm9tIFwicHJvdG9idWZqc1wiO1xuXG5jb25zdCB7IFJvb3Q6IFByb3RvUm9vdCB9ID0gcHJvdG9idWY7XG5jb25zdCBwcm90b1Jvb3QgPSBQcm90b1Jvb3QuZnJvbUpTT04oXG5cdHJlcXVpcmUoXCIuLi8uLi8uLi8uLi93aXRuZXQvd2l0bmV0LnByb3RvLmpzb25cIiksXG4pO1xuXG5pbXBvcnQgeyBmcm9tSGV4U3RyaW5nLCB0b0hleFN0cmluZyB9IGZyb20gXCIuLi8uLi8uLi9iaW4vaGVscGVycy5qc1wiO1xuXG5pbXBvcnQgeyBSYWRvblJlcXVlc3QsIFJhZG9uVGVtcGxhdGUgfSBmcm9tIFwiLi4vLi4vcmFkb24vaW5kZXguanNcIjtcbmltcG9ydCB0eXBlIHsgSGFzaCwgSGV4U3RyaW5nLCBJSnNvblJwY1Byb3ZpZGVyIH0gZnJvbSBcIi4uLy4uL3R5cGVzLmpzXCI7XG5cbmltcG9ydCB0eXBlIHsgSUxlZGdlciB9IGZyb20gXCIuLi9pbnRlcmZhY2VzLmpzXCI7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblBheWxvYWRNdWx0aVNpZyB9IGZyb20gXCIuLi9wYXlsb2Fkcy5qc1wiO1xuaW1wb3J0IHtcblx0Q29pbnMsXG5cdFB1YmxpY0tleUhhc2gsXG5cdHR5cGUgVHJhbnNhY3Rpb25QYXJhbXMsXG5cdFRyYW5zYWN0aW9uUHJpb3JpdHksXG59IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgQmlnTWF0aCwgc2hhMjU2IH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFSZXF1ZXN0VGVtcGxhdGVBcmdzID0gYW55IHwgc3RyaW5nIHwgc3RyaW5nW10gfCBzdHJpbmdbXVtdO1xuXG5leHBvcnQgdHlwZSBEYXRhUmVxdWVzdE1ham9yaXR5ID0gXCJzaW1wbGVcIiB8IFwicXVhbGlmaWVkXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFSZXF1ZXN0UGFyYW1zID0gVHJhbnNhY3Rpb25QYXJhbXMgJiB7XG5cdGFyZ3M/OiBEYXRhUmVxdWVzdFRlbXBsYXRlQXJncztcblx0bWFqb3JpdHlUeXBlPzogRGF0YVJlcXVlc3RNYWpvcml0eTtcblx0bWF4UmVzdWx0U2l6ZT86IG51bWJlcjtcblx0d2l0bmVzc2VzPzogbnVtYmVyO1xufTtcblxudHlwZSBEYXRhUmVxdWVzdE91dHB1dFNMQSA9IHtcblx0Y29sbGF0ZXJhbD86IG51bWJlcjtcblx0Y29tbWl0QW5kUmV2ZWFsRmVlPzogbnVtYmVyO1xuXHRtaW5Db25zZW5zdXNQZXJjZW50YWdlOiBudW1iZXI7XG5cdHdpdG5lc3NlczogbnVtYmVyO1xuXHR3aXRuZXNzUmV3YXJkOiBudW1iZXI7XG5cdG1heFJlc3VsdFNpemU/OiBudW1iZXI7XG59O1xuXG5jb25zdCBDT0xMQVRFUkFMX1JBVElPID0gMTAwbjtcbi8vIGNvbnN0IFJBRE9OX0VSUk9SX01BWF9CWVRFUyA9IDk7XG5cbmNvbnN0IERSX0NPTU1JVF9UWF9XRUlHSFQgPSA0MDA7XG5jb25zdCBEUl9SRVZFQUxfVFhfV0VJR0hUID0gMjAwO1xuY29uc3QgRFJfVEFMTFlfVFhfV0VJR0hUID0gMTAwO1xuXG5jb25zdCBEUl9UWF9XRUlHSFRfQUxQSEEgPSAxO1xuY29uc3QgRFJfVFhfV0VJR0hUX0JFVEEgPSAxO1xuXG5jb25zdCBUWF9XRUlHSFRfSU5QVVRfU0laRSA9IDEzMztcbmNvbnN0IFRYX1dFSUdIVF9PVVRQVVRfU0laRSA9IDM2O1xuXG5leHBvcnQgY2xhc3MgRGF0YVJlcXVlc3RQYXlsb2FkIGV4dGVuZHMgVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWc8RGF0YVJlcXVlc3RQYXJhbXM+IHtcblx0cHVibGljIHN0YXRpYyBERUZBVUxUX01BWF9SRVNVTFRfU0laRSA9IDI1Njtcblx0cHVibGljIHN0YXRpYyBERUZBVUxUX1dJVE5FU1NFUyA9IDEyO1xuXHRwdWJsaWMgc3RhdGljIE1BWF9XRUlHSFQgPSA4MF8wMDA7XG5cdHB1YmxpYyBzdGF0aWMgTUlOX0NPTExBVEVSQUwgPSAyMF8wMDBfMDAwXzAwMG47XG5cblx0cHJvdGVjdGVkIF9yZXF1ZXN0PzogUmFkb25SZXF1ZXN0O1xuXHRwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGU/OiBSYWRvblRlbXBsYXRlO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByb3RvVHlwZU5hbWU6IHN0cmluZyxcblx0XHRyYWRvbjogUmFkb25SZXF1ZXN0IHwgUmFkb25UZW1wbGF0ZSxcblx0XHRpbml0aWFsVGFyZ2V0PzogRGF0YVJlcXVlc3RQYXJhbXMsXG5cdCkge1xuXHRcdHN1cGVyKHByb3RvVHlwZU5hbWUsIGluaXRpYWxUYXJnZXQpO1xuXHRcdGlmIChyYWRvbiBpbnN0YW5jZW9mIFJhZG9uUmVxdWVzdCkge1xuXHRcdFx0dGhpcy5fcmVxdWVzdCA9IHJhZG9uO1xuXHRcdH0gZWxzZSBpZiAocmFkb24gaW5zdGFuY2VvZiBSYWRvblRlbXBsYXRlKSB7XG5cdFx0XHR0aGlzLnRlbXBsYXRlID0gcmFkb247XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdGBEYXRhUmVxdWVzdFBheWxvYWQ6IHVuc3VwcG9ydGVkIFJhZG9uIGFzc2V0IHR5cGU6ICR7KHJhZG9uIGFzIGFueSk/LmNvbnN0cnVjdG9yLm5hbWV9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldCBkcm9IYXNoKCk6IEhhc2ggfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG9iaiA9IHRoaXMuX3RvRHJPdXRwdXRQcm90b2J1ZigpO1xuXHRcdGlmIChvYmopIHtcblx0XHRcdGNvbnN0IERhdGFSZXF1ZXN0T3V0cHV0ID0gcHJvdG9Sb290Lmxvb2t1cFR5cGUoXCJEYXRhUmVxdWVzdE91dHB1dFwiKTtcblx0XHRcdGNvbnN0IGVyciA9IERhdGFSZXF1ZXN0T3V0cHV0LnZlcmlmeShvYmopO1xuXHRcdFx0aWYgKGVycikge1xuXHRcdFx0XHR0aHJvdyBUeXBlRXJyb3IoZXJyKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwiXFxuZHJvSGFzaC5vYmogPT5cIiwgSlNPTi5zdHJpbmdpZnkob2JqKSlcblx0XHRcdFx0Y29uc3QgbWVzc2FnZSA9IERhdGFSZXF1ZXN0T3V0cHV0LmZyb21PYmplY3Qob2JqKTtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coXCJcXG5kcm9IYXNoLm1lc3NhZ2UgPT5cIiwgSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkpXG5cdFx0XHRcdGNvbnN0IGJ5dGVjb2RlID0gRGF0YVJlcXVlc3RPdXRwdXQuZW5jb2RlKG1lc3NhZ2UpLmZpbmlzaCgpO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIlxcbmRyb0hhc2guYnl0ZWNvZGUgPT5cIiwgYnl0ZWNvZGUpXG5cdFx0XHRcdHJldHVybiB0b0hleFN0cmluZyhzaGEyNTYoYnl0ZWNvZGUpKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGRyb1NMQSgpOiBEYXRhUmVxdWVzdE91dHB1dFNMQSB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuX3RhcmdldCAmJiB0aGlzLl9mZWVzKSB7XG5cdFx0XHRjb25zdCBtaW5Db25zZW5zdXNQZXJjZW50YWdlID1cblx0XHRcdFx0dGhpcy5fdGFyZ2V0Lm1ham9yaXR5VHlwZSA9PT0gXCJxdWFsaWZpZWRcIiA/IDY2IDogNTE7XG5cdFx0XHRjb25zdCB3aXRuZXNzZXMgPVxuXHRcdFx0XHR0eXBlb2YgdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9PT0gXCJvYmplY3RcIlxuXHRcdFx0XHRcdD8gT2JqZWN0LmtleXModGhpcy5fdGFyZ2V0LndpdG5lc3NlcykubGVuZ3RoXG5cdFx0XHRcdFx0OiB0aGlzLl90YXJnZXQud2l0bmVzc2VzIHx8IDA7XG5cdFx0XHRjb25zdCB3aXRuZXNzUmV3YXJkID0gdGhpcy5fZmVlczJVbml0YXJ5UmV3YXJkKHRoaXMuX2ZlZXMsIHdpdG5lc3Nlcyk7XG5cdFx0XHRjb25zdCBjb21taXRBbmRSZXZlYWxGZWUgPSB0aGlzLl9mZWVzMlVuaXRhcnlDb21taXRSZXZlYWxSZXdhcmQoXG5cdFx0XHRcdHRoaXMuX2ZlZXMsXG5cdFx0XHRcdHdpdG5lc3Nlcyxcblx0XHRcdCk7IC8vTWF0aC5mbG9vcihOdW1iZXIod2l0bmVzc1Jld2FyZCAvIEJpZ0ludCh3aXRuZXNzZXMpKSkgLy8gVE9ETzogemVyb2Z5IGlmIHByb3RvY29sID49IFYyXzFcblx0XHRcdGNvbnN0IGNvbGxhdGVyYWwgPSB3aXRuZXNzUmV3YXJkICogQ09MTEFURVJBTF9SQVRJTzsgLy8gVE9ETzogemVyb2Z5IGlmIHByb3RvY29sID49IFYyXzFcblx0XHRcdGlmIChjb2xsYXRlcmFsID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpXG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogZXhjZXNzaXZlIHdpdG5lc3MgY29sbGF0ZXJhbDogJHtjb2xsYXRlcmFsLnRvU3RyaW5nKCl9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxuXHRcdFx0XHQpO1xuXHRcdFx0ZWxzZSBpZiAod2l0bmVzc1Jld2FyZCA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKVxuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxuXHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGV4Y2Vzc2l2ZSB3aXRuZXNzIHJld2FyZDogJHt3aXRuZXNzUmV3YXJkLnRvU3RyaW5nKCl9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxuXHRcdFx0XHQpO1xuXHRcdFx0ZWxzZSBpZiAoY29tbWl0QW5kUmV2ZWFsRmVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpXG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogZXhjZXNzaXZlIGNvbW1pdC9yZXZlYWwgZmVlOiAke2NvbW1pdEFuZFJldmVhbEZlZS50b1N0cmluZygpfSA+ICR7TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJ9YCxcblx0XHRcdFx0KTtcblx0XHRcdC8vIFRPRE86IG9ubHkgd2hlbiBwcm90b2NvbCA+PSBWMl8xXG5cdFx0XHQvLyBsZXQgbWF4UmVzdWx0U2l6ZVxuXHRcdFx0Ly8gaWYgKHRoaXMucmVxdWVzdCkge1xuXHRcdFx0Ly8gICAgIGlmICh0aGlzLnJlcXVlc3Qud2l0bmVzc1JlZHVjZXIub3Bjb2RlID09PSBPcGNvZGVzLkNvbmNhdGVuYXRlQW5kSGFzaCkge1xuXHRcdFx0Ly8gICAgICAgICBpZiAodGhpcy5fdGFyZ2V0Py5tYXhSZXN1bHRTaXplICYmIHRoaXMuX3RhcmdldD8ubWF4UmVzdWx0U2l6ZSAhPT0gMzQpIHtcblx0XHRcdC8vICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW52YWxpZCBtYXggcmVzdWx0IHNpemUgKCR7dGhpcy5fdGFyZ2V0Py5tYXhSZXN1bHRTaXplfSkgZm9yIGEgY29uY2F0ZW5hdGUtYW5kLWhhc2ggb3V0cHV0LmApXG5cdFx0XHQvLyAgICAgICAgIH1cblx0XHRcdC8vICAgICB9IGVsc2Uge1xuXHRcdFx0Ly8gICAgICAgICBzd2l0Y2ggKHRoaXMucmVxdWVzdC5kYXRhVHlwZSkge1xuXHRcdFx0Ly8gICAgICAgICAgICAgY2FzZSBcIlJhZG9uQm9vbGVhblwiOlxuXHRcdFx0Ly8gICAgICAgICAgICAgY2FzZSBcIlJhZG9uSW50ZWdlclwiOlxuXHRcdFx0Ly8gICAgICAgICAgICAgY2FzZSBcIlJhZG9uRmxvYXRcIjpcblx0XHRcdC8vICAgICAgICAgICAgICAgICBpZiAodGhpcy5fdGFyZ2V0Py5tYXhSZXN1bHRTaXplICYmIHRoaXMuX3RhcmdldC5tYXhSZXN1bHRTaXplICE9PSBSQURPTl9FUlJPUl9NQVhfQllURVMpIHtcblx0XHRcdC8vICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnZhbGlkIG1heCByZXN1bHQgc2l6ZSAoJHtcblx0XHRcdC8vICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RhcmdldC5tYXhSZXN1bHRTaXplXG5cdFx0XHQvLyAgICAgICAgICAgICAgICAgICAgICAgICB9IGJ5dGVzKSBmb3IgZXhwZWN0ZWQgcmVzdWx0IHR5cGUgKCR7dGhpcy5yZXF1ZXN0LmRhdGFUeXBlfSlgKVxuXHRcdFx0Ly8gICAgICAgICAgICAgICAgIH1cblx0XHRcdC8vICAgICAgICAgICAgICAgICBicmVhaztcblx0XHRcdC8vICAgICAgICAgICAgIGRlZmF1bHQ6XG5cdFx0XHQvLyAgICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RhcmdldD8ubWF4UmVzdWx0U2l6ZSAmJiB0aGlzLl90YXJnZXQubWF4UmVzdWx0U2l6ZSA8IFJBRE9OX0VSUk9SX01BWF9CWVRFUykge1xuXHRcdFx0Ly8gICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludmFsaWQgbWF4IHJlc3VsdCBzaXplICgke1xuXHRcdFx0Ly8gICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fdGFyZ2V0Lm1heFJlc3VsdFNpemVcblx0XHRcdC8vICAgICAgICAgICAgICAgICAgICAgICAgIH0gYnl0ZXMpIGZvciB2YXJpYW50IHJlc3VsdCB0eXBlICgke3RoaXMucmVxdWVzdC5kYXRhVHlwZX0pYClcblx0XHRcdC8vICAgICAgICAgICAgICAgICB9XG5cdFx0XHQvLyAgICAgICAgICAgICAgICAgbWF4UmVzdWx0U2l6ZSA9IHRoaXMuX3RhcmdldD8ubWF4UmVzdWx0U2l6ZSB8fCBEYXRhUmVxdWVzdFBheWxvYWQuREVGQVVMVF9NQVhfUkVTVUxUX1NJWkVcblx0XHRcdC8vICAgICAgICAgfVxuXHRcdFx0Ly8gICAgIH1cblx0XHRcdC8vIH1cblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGNvbGxhdGVyYWw6IE51bWJlcihjb2xsYXRlcmFsKSxcblx0XHRcdFx0Y29tbWl0QW5kUmV2ZWFsRmVlOiBOdW1iZXIoY29tbWl0QW5kUmV2ZWFsRmVlKSxcblx0XHRcdFx0Ly8gbWF4UmVzdWx0U2l6ZSwgVE9ETzogb25seSBpZiBwcm90b2NvbCA+PSBWMl8xXG5cdFx0XHRcdG1pbkNvbnNlbnN1c1BlcmNlbnRhZ2UsXG5cdFx0XHRcdHdpdG5lc3Nlcyxcblx0XHRcdFx0d2l0bmVzc1Jld2FyZDogTnVtYmVyKHdpdG5lc3NSZXdhcmQpLFxuXHRcdFx0fTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGhhc2goKTogSGFzaCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgX2J5dGVjb2RlID0gdGhpcy5ieXRlY29kZTtcblx0XHRpZiAoX2J5dGVjb2RlICYmIHRoaXMuZHJvSGFzaCkge1xuXHRcdFx0cmV0dXJuIHRvSGV4U3RyaW5nKFxuXHRcdFx0XHRzaGEyNTYoQnVmZmVyLmNvbmNhdChbZnJvbUhleFN0cmluZyh0aGlzLmRyb0hhc2gpLCBzaGEyNTYoX2J5dGVjb2RlKV0pKSxcblx0XHRcdCkgYXMgSGFzaDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0IG1heFdlaWdodCgpOiBudW1iZXIge1xuXHRcdHJldHVybiBEYXRhUmVxdWVzdFBheWxvYWQuTUFYX1dFSUdIVDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcGFyYW1ldGVyaXplZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gISF0aGlzLnRlbXBsYXRlO1xuXHR9XG5cblx0cHVibGljIGdldCBwcmVwYXJlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0dGhpcy5jb3ZlcmVkICYmXG5cdFx0XHR0aGlzLl9pbnB1dHMubGVuZ3RoID4gMCAmJlxuXHRcdFx0ISF0aGlzLl9yZXF1ZXN0ICYmXG5cdFx0XHQhIXRoaXMuX3RhcmdldFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHJhZEFyZ3MoKTogRGF0YVJlcXVlc3RUZW1wbGF0ZUFyZ3MgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLnRlbXBsYXRlID8gdGhpcy5fdGFyZ2V0Py5hcmdzIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0cHVibGljIGdldCByYWRIYXNoKCk6IEhleFN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucmVxdWVzdD8ucmFkSGFzaDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcmVxdWVzdCgpOiBSYWRvblJlcXVlc3QgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl9yZXF1ZXN0O1xuXHR9XG5cblx0cHVibGljIGdldCB2YWx1ZSgpOiBDb2lucyB7XG5cdFx0aWYgKHRoaXMuX3RhcmdldCAmJiB0aGlzLl9mZWVzKSB7XG5cdFx0XHRyZXR1cm4gQ29pbnMuZnJvbVBlZHJvcyhcblx0XHRcdFx0dGhpcy5fZmVlczJWYWx1ZSh0aGlzLl9mZWVzLCB0aGlzLl90YXJnZXQud2l0bmVzc2VzIHx8IDApLFxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIENvaW5zLnplcm8oKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHdlaWdodCgpOiBudW1iZXIge1xuXHRcdGlmICh0aGlzLl9yZXF1ZXN0ICYmIHRoaXMuX3RhcmdldCkge1xuXHRcdFx0Y29uc3Qgd2l0bmVzc2VzID1cblx0XHRcdFx0dHlwZW9mIHRoaXMuX3RhcmdldC53aXRuZXNzZXMgPT09IFwib2JqZWN0XCJcblx0XHRcdFx0XHQ/IE9iamVjdC5rZXlzKHRoaXMuX3RhcmdldC53aXRuZXNzZXMpLmxlbmd0aFxuXHRcdFx0XHRcdDogdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyB8fCAwO1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0RFJfVFhfV0VJR0hUX0FMUEhBICogKHRoaXMuX3JlcXVlc3Qud2VpZ2h0KCkgKyA4ICsgMiArIDggKyA0ICsgOCksXG5cdFx0XHRcdCt0aGlzLl9pbnB1dHMubGVuZ3RoICogVFhfV0VJR0hUX0lOUFVUX1NJWkUgK1xuXHRcdFx0XHRcdHRoaXMuX291dHB1dHMubGVuZ3RoICogVFhfV0VJR0hUX09VVFBVVF9TSVpFICtcblx0XHRcdFx0XHR3aXRuZXNzZXMgKlxuXHRcdFx0XHRcdFx0KERSX0NPTU1JVF9UWF9XRUlHSFQgK1xuXHRcdFx0XHRcdFx0XHREUl9SRVZFQUxfVFhfV0VJR0hUICogRFJfVFhfV0VJR0hUX0JFVEEgK1xuXHRcdFx0XHRcdFx0XHRUWF9XRUlHSFRfT1VUUFVUX1NJWkUpICsgLy8gVE9ETyBWMi4xOiB0eXBlb2YgdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9PT0gJ29iamVjdCcgPyBUWF9XRUlHSFRfT1VUUFVUX1NJWkUgOiAwXG5cdFx0XHRcdFx0TWF0aC5tYXgoRFJfVEFMTFlfVFhfV0VJR0hULCB0aGlzLl90YXJnZXQ/Lm1heFJlc3VsdFNpemUgfHwgMCkgKlxuXHRcdFx0XHRcdFx0RFJfVFhfV0VJR0hUX0JFVEFcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyBjb25zdW1lVXR4b3MoXG5cdFx0bGVkZ2VyOiBJTGVkZ2VyLFxuXHRcdHJlbG9hZD86IGJvb2xlYW4sXG5cdCk6IFByb21pc2U8YmlnaW50PiB7XG5cdFx0aWYgKCF0aGlzLl90YXJnZXQpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogaW50ZXJuYWwgZXJyb3I6IG5vIGluLWZsaWdodCBwYXJhbXMuYCxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmICgodGhpcy5fdGFyZ2V0IGFzIGFueSk/LmZlZXMgaW5zdGFuY2VvZiBDb2lucykge1xuXHRcdFx0dGhpcy5fZmVlcyA9ICh0aGlzLl90YXJnZXQgYXMgYW55KS5mZWVzLnBlZHJvcztcblx0XHRcdHJldHVybiBzdXBlci5jb25zdW1lVXR4b3MobGVkZ2VyLCByZWxvYWQpO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5jb3ZlcmVkKSB7XG5cdFx0XHRpZiAoIXRoaXMuX3RhcmdldC53aXRuZXNzZXMpIHtcblx0XHRcdFx0dGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9IE1hdGgubWluKFxuXHRcdFx0XHRcdERhdGFSZXF1ZXN0UGF5bG9hZC5ERUZBVUxUX1dJVE5FU1NFUyxcblx0XHRcdFx0XHRhd2FpdCBsZWRnZXIucHJvdmlkZXIud2l0bmVzc2VzKCksXG5cdFx0XHRcdCk7XG5cdFx0XHRcdGlmICh0aGlzLl90YXJnZXQud2l0bmVzc2VzIDwgMykge1xuXHRcdFx0XHRcdGRlbGV0ZSB0aGlzLl90YXJnZXQud2l0bmVzc2VzO1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGNhbm5vdCBlc3RpbWF0ZSB3aXRuZXNzZXM6IG5ldHdvcmsgbm90IHJlYWR5IGZvciB3aXRuZXNzaW5nLmAsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLndlaWdodCA+IERhdGFSZXF1ZXN0UGF5bG9hZC5NQVhfV0VJR0hUICogMC44KSB7XG5cdFx0XHRcdFx0Y29uc3QgZGVsdGEgPSB0aGlzLndlaWdodCAtIERhdGFSZXF1ZXN0UGF5bG9hZC5NQVhfV0VJR0hUICogMC44O1xuXHRcdFx0XHRcdHRoaXMuX3RhcmdldC53aXRuZXNzZXMgLT0gTWF0aC5jZWlsKFxuXHRcdFx0XHRcdFx0ZGVsdGEgL1xuXHRcdFx0XHRcdFx0XHQoRFJfQ09NTUlUX1RYX1dFSUdIVCArXG5cdFx0XHRcdFx0XHRcdFx0RFJfUkVWRUFMX1RYX1dFSUdIVCAqIFRYX1dFSUdIVF9PVVRQVVRfU0laRSksXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRpZiAodGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA8IDMpIHtcblx0XHRcdFx0XHRcdGRlbGV0ZSB0aGlzLl90YXJnZXQud2l0bmVzc2VzO1xuXHRcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuXHRcdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBjYW5ub3QgZXN0aW1hdGUgd2l0bmVzc2VzOiByYWRvbiByZXF1ZXN0IHRvbyBoZWF2eTogJHt0aGlzLndlaWdodH0gd2VpZ2h0IHVuaXRzYCxcblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBwcmlvcml0eSA9XG5cdFx0XHRcdCgodGhpcy5fdGFyZ2V0IGFzIGFueSk/LmZlZXMgYXMgVHJhbnNhY3Rpb25Qcmlvcml0eSkgfHxcblx0XHRcdFx0VHJhbnNhY3Rpb25Qcmlvcml0eS5PcHVsZW50O1xuXHRcdFx0bGV0IGVzdGltYXRlZEZlZXMgPSBhd2FpdCB0aGlzLl9lc3RpbWF0ZU5ldHdvcmtGZWVzKFxuXHRcdFx0XHRsZWRnZXIucHJvdmlkZXIsXG5cdFx0XHRcdHByaW9yaXR5LFxuXHRcdFx0KTtcblx0XHRcdHdoaWxlICh0aGlzLl9mZWVzIDwgZXN0aW1hdGVkRmVlcyAmJiB0aGlzLl9jaGFuZ2UgPj0gMCkge1xuXHRcdFx0XHR0aGlzLl9mZWVzID0gZXN0aW1hdGVkRmVlcztcblx0XHRcdFx0dGhpcy5fb3V0cHV0cyA9IFtdO1xuXHRcdFx0XHQvLyBjb25zdW1lIHV0eG9zIGFzIHRvIGNvdmVyIGZvciBlc3RpbWF0ZWQgdmFsdWUgYW5kIGVzdGltYXRlZCBmZWVzXG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gdGhpcy5fZmVlczJWYWx1ZSh0aGlzLl9mZWVzLCB0aGlzLl90YXJnZXQud2l0bmVzc2VzKTtcblx0XHRcdFx0aWYgKHRoaXMuX2NvdmVyZWQgPCB0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMpIHtcblx0XHRcdFx0XHRjb25zdCB1dHhvcyA9IGF3YWl0IGxlZGdlci5zZWxlY3RVdHhvcyh7XG5cdFx0XHRcdFx0XHR2YWx1ZTogQ29pbnMuZnJvbVBlZHJvcyh2YWx1ZSArIHRoaXMuX2ZlZXMgLSB0aGlzLl9jb3ZlcmVkKSxcblx0XHRcdFx0XHRcdHJlbG9hZCxcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRjb25zdCBleHRyYSA9IHV0eG9zXG5cdFx0XHRcdFx0XHQubWFwKCh1dHhvKSA9PiBCaWdJbnQodXR4by52YWx1ZSkpXG5cdFx0XHRcdFx0XHQucmVkdWNlKChwcmV2LCBjdXJyKSA9PiBwcmV2ICsgY3VyciwgMG4pO1xuXHRcdFx0XHRcdHRoaXMuX2NvdmVyZWQgKz0gZXh0cmE7XG5cdFx0XHRcdFx0dGhpcy5faW5wdXRzLnB1c2goLi4udXR4b3MpO1xuXHRcdFx0XHRcdGxlZGdlci5jb25zdW1lVXR4b3MoLi4udXR4b3MpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuX2NoYW5nZSA9IHRoaXMuX2NvdmVyZWQgLSAodmFsdWUgKyB0aGlzLl9mZWVzKTtcblx0XHRcdFx0aWYgKHRoaXMuX2NoYW5nZSA+PSAwKSB7XG5cdFx0XHRcdFx0dGhpcy5wcmVwYXJlT3V0cHV0cyh7IHZhbHVlOiB0aGlzLl9jaGFuZ2UgfSk7XG5cdFx0XHRcdFx0ZXN0aW1hdGVkRmVlcyA9IGF3YWl0IHRoaXMuX2VzdGltYXRlTmV0d29ya0ZlZXMoXG5cdFx0XHRcdFx0XHRsZWRnZXIucHJvdmlkZXIsXG5cdFx0XHRcdFx0XHRwcmlvcml0eSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLl9jaGFuZ2U7XG5cdH1cblxuXHRwdWJsaWMgaW50b1JlY2VpcHQodGFyZ2V0OiBEYXRhUmVxdWVzdFBhcmFtcyk6IGFueSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGRyb0hhc2g6IHRoaXMuZHJvSGFzaCxcblx0XHRcdHJhZEFyZ3M6IHRoaXMucmFkQXJncyxcblx0XHRcdHJhZEhhc2g6IHRoaXMucmFkSGFzaCxcblx0XHRcdHdpdG5lc3NlczogdGFyZ2V0LndpdG5lc3Nlcyxcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIHByZXBhcmVPdXRwdXRzKGNoYW5nZT86IHsgdmFsdWU6IGJpZ2ludCB9KTogYW55IHtcblx0XHRpZiAoY2hhbmdlPy52YWx1ZSkge1xuXHRcdFx0dGhpcy5fb3V0cHV0cy5wdXNoKHtcblx0XHRcdFx0cGtoOiB0aGlzLl9pbnB1dHNbMF0uc2lnbmVyLFxuXHRcdFx0XHR2YWx1ZTogY2hhbmdlLnZhbHVlLFxuXHRcdFx0XHR0aW1lX2xvY2s6IDAsXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgcmVzZXRUYXJnZXQodGFyZ2V0OiBEYXRhUmVxdWVzdFBhcmFtcyk6IGFueSB7XG5cdFx0dGhpcy5fY2hhbmdlID0gMG47XG5cdFx0dGhpcy5fY292ZXJlZCA9IDBuO1xuXHRcdHRoaXMuX2ZlZXMgPSAwbjtcblx0XHR0aGlzLl9pbnB1dHMgPSBbXTtcblx0XHR0aGlzLl9vdXRwdXRzID0gW107XG5cdFx0dGhpcy5fdGFyZ2V0ID0gdGFyZ2V0O1xuXHRcdGlmIChcblx0XHRcdHRoaXMuZHJvU0xBPy5jb2xsYXRlcmFsICYmXG5cdFx0XHR0aGlzLmRyb1NMQS5jb2xsYXRlcmFsIDwgRGF0YVJlcXVlc3RQYXlsb2FkLk1JTl9DT0xMQVRFUkFMXG5cdFx0KSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxuXHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiB3aXRuZXNzaW5nIGNvbGxhdGVyYWwgYmVsb3cgbWluaW11bTogJHtcblx0XHRcdFx0XHR0aGlzLmRyb1NMQS5jb2xsYXRlcmFsXG5cdFx0XHRcdH0gPCAke0RhdGFSZXF1ZXN0UGF5bG9hZC5NSU5fQ09MTEFURVJBTH1gLFxuXHRcdFx0KTtcblx0XHR9XG5cdFx0aWYgKHRoaXMudGVtcGxhdGUpIHtcblx0XHRcdGNvbnN0IGFyZ3MgPSB0YXJnZXQ/LmFyZ3M7XG5cdFx0XHRpZiAoYXJncyA9PT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogbm8gdGVtcGxhdGUgYXJncyB3ZXJlIHBhc3NlZC5gLFxuXHRcdFx0XHQpO1xuXHRcdFx0fSBlbHNlIGlmICh0eXBlb2YgYXJncyA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0XHR0aGlzLl9yZXF1ZXN0ID0gdGhpcy50ZW1wbGF0ZS5idWlsZFJhZG9uUmVxdWVzdChbYXJnc10pO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5fcmVxdWVzdCA9IHRoaXMudGVtcGxhdGUuYnVpbGRSYWRvblJlcXVlc3QoYXJncyk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGRlbGV0ZSB0aGlzLl9wcmlvcml0aWVzO1xuXHR9XG5cblx0cHVibGljIHRvSlNPTihodW1hbml6ZSA9IGZhbHNlKTogYW55IHtcblx0XHRjb25zdCBkcm9TTEEgPSB0aGlzLmRyb1NMQTtcblx0XHRyZXR1cm4ge1xuXHRcdFx0aW5wdXRzOiB0aGlzLmlucHV0cy5tYXAoKHV0eG8pID0+ICh7XG5cdFx0XHRcdG91dHB1dF9wb2ludGVyOiB1dHhvLm91dHB1dF9wb2ludGVyLFxuXHRcdFx0fSkpLFxuXHRcdFx0b3V0cHV0czogdGhpcy5vdXRwdXRzLm1hcCgodnRvKSA9PiAoe1xuXHRcdFx0XHRwa2g6IHZ0by5wa2gsXG5cdFx0XHRcdHRpbWVfbG9jazogdnRvLnRpbWVfbG9jayxcblx0XHRcdFx0dmFsdWU6IHZ0by52YWx1ZS50b1N0cmluZygpLFxuXHRcdFx0fSkpLFxuXHRcdFx0ZHJfb3V0cHV0OiB7XG5cdFx0XHRcdC4uLih0aGlzLl9yZXF1ZXN0XG5cdFx0XHRcdFx0PyB7IGRhdGFfcmVxdWVzdDogdGhpcy5fcmVxdWVzdC50b0pTT04oaHVtYW5pemUpIH1cblx0XHRcdFx0XHQ6IHt9KSxcblx0XHRcdFx0Y29tbWl0X2FuZF9yZXZlYWxfZmVlOiBkcm9TTEE/LmNvbW1pdEFuZFJldmVhbEZlZSxcblx0XHRcdFx0bWluX2NvbnNlbnN1c19wZXJjZW50YWdlOiBkcm9TTEE/Lm1pbkNvbnNlbnN1c1BlcmNlbnRhZ2UsXG5cdFx0XHRcdHdpdG5lc3NlczogZHJvU0xBPy53aXRuZXNzZXMsXG5cdFx0XHRcdHdpdG5lc3NfcmV3YXJkOiBkcm9TTEE/LndpdG5lc3NSZXdhcmQsXG5cdFx0XHRcdGNvbGxhdGVyYWw6IGRyb1NMQT8uY29sbGF0ZXJhbCxcblx0XHRcdH0sXG5cdFx0fTtcblx0fVxuXG5cdHB1YmxpYyB0b1Byb3RvYnVmKCk6IGFueSB7XG5cdFx0aWYgKHRoaXMucHJlcGFyZWQgJiYgdGhpcy5fdGFyZ2V0ICYmIHRoaXMuX3JlcXVlc3QpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGlucHV0czogdGhpcy5pbnB1dHMubWFwKCh1dHhvKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgdHJhbnNhY3Rpb25JZCA9IHV0eG8ub3V0cHV0X3BvaW50ZXIuc3BsaXQoXCI6XCIpWzBdO1xuXHRcdFx0XHRcdGNvbnN0IG91dHB1dEluZGV4ID0gcGFyc2VJbnQodXR4by5vdXRwdXRfcG9pbnRlci5zcGxpdChcIjpcIilbMV0sIDEwKTtcblx0XHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdFx0b3V0cHV0UG9pbnRlcjoge1xuXHRcdFx0XHRcdFx0XHR0cmFuc2FjdGlvbklkOiB7XG5cdFx0XHRcdFx0XHRcdFx0U0hBMjU2OiBBcnJheS5mcm9tKGZyb21IZXhTdHJpbmcodHJhbnNhY3Rpb25JZCkpLFxuXHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHQuLi4ob3V0cHV0SW5kZXggPiAwID8geyBvdXRwdXRJbmRleCB9IDoge30pLFxuXHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9KSxcblx0XHRcdFx0b3V0cHV0czogdGhpcy5vdXRwdXRzLm1hcCgodnRvKSA9PiAoe1xuXHRcdFx0XHRcdHBraDoge1xuXHRcdFx0XHRcdFx0aGFzaDogQXJyYXkuZnJvbShQdWJsaWNLZXlIYXNoLmZyb21CZWNoMzIodnRvLnBraCkudG9CeXRlczIwKCkpLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0dmFsdWU6IExvbmcuZnJvbVZhbHVlKHZ0by52YWx1ZSksXG5cdFx0XHRcdFx0Li4uKHZ0by50aW1lX2xvY2sgPiAwID8geyB0aW1lTG9jazogdnRvLnRpbWVfbG9jayB9IDoge30pLFxuXHRcdFx0XHR9KSksXG5cdFx0XHRcdGRyT3V0cHV0OiB0aGlzLl90b0RyT3V0cHV0UHJvdG9idWYoKSxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIHZhbGlkYXRlVGFyZ2V0KHRhcmdldD86IGFueSk6IERhdGFSZXF1ZXN0UGFyYW1zIHwgdW5kZWZpbmVkIHtcblx0XHR0YXJnZXQgPSB0aGlzLl9jbGVhblRhcmdldEV4dHJhcyh0YXJnZXQpO1xuXHRcdGlmICh0YXJnZXQgJiYgT2JqZWN0LmtleXModGFyZ2V0KS5sZW5ndGggPiAwKSB7XG5cdFx0XHRpZiAoXG5cdFx0XHRcdCEoXG5cdFx0XHRcdFx0dGFyZ2V0ICYmXG5cdFx0XHRcdFx0KCF0YXJnZXQ/LmZlZXMgfHxcblx0XHRcdFx0XHRcdCh0YXJnZXQuZmVlcyBpbnN0YW5jZW9mIENvaW5zICYmXG5cdFx0XHRcdFx0XHRcdCh0YXJnZXQuZmVlcyBhcyBDb2lucykucGVkcm9zID4gMCkgfHxcblx0XHRcdFx0XHRcdE9iamVjdC52YWx1ZXMoVHJhbnNhY3Rpb25Qcmlvcml0eSkuaW5jbHVkZXModGFyZ2V0LmZlZXMpKSAmJlxuXHRcdFx0XHRcdCh0YXJnZXQ/LndpdG5lc3NlcyB8fCB0YXJnZXQ/LndpdG5lc3NlcyA9PT0gdW5kZWZpbmVkKSAmJlxuXHRcdFx0XHRcdCghdGhpcy50ZW1wbGF0ZSB8fCB0YXJnZXQ/LmFyZ3MpXG5cdFx0XHRcdClcblx0XHRcdCkge1xuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxuXHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludmFsaWQgb3B0aW9uczogJHtKU09OLnN0cmluZ2lmeSh0YXJnZXQpfWAsXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2UgaWYgKHRhcmdldD8ud2l0bmVzc2VzKSB7XG5cdFx0XHRcdGlmICh0eXBlb2YgdGFyZ2V0LndpdG5lc3NlcyA9PT0gXCJvYmplY3RcIikge1xuXHRcdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0XHRgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBleHBsaWNpdCB3aXRuZXNzaW5nIGNvbW1pdHRlZXMgbm90IHlldCBzdXBwb3J0ZWQ6ICR7dGFyZ2V0LndpdG5lc3Nlc31gLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGFyZ2V0LndpdG5lc3NlcyA9IHBhcnNlSW50KHRhcmdldC53aXRuZXNzZXMgYXMgc3RyaW5nLCAxMCk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGFyZ2V0IGFzIERhdGFSZXF1ZXN0UGFyYW1zO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBfY2xlYW5UYXJnZXRFeHRyYXModGFyZ2V0PzogYW55KTogYW55IHtcblx0XHRpZiAodGFyZ2V0KSB7XG5cdFx0XHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRPYmplY3QuZW50cmllcyh0YXJnZXQpLmZpbHRlcigoW2tleV0pID0+XG5cdFx0XHRcdFx0W1wiYXJnc1wiLCBcImZlZXNcIiwgXCJtYXhSZXN1bHRTaXplXCIsIFwid2l0bmVzc2VzXCJdLmluY2x1ZGVzKGtleSksXG5cdFx0XHRcdCksXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxuXG5cdHByb3RlY3RlZCBhc3luYyBfZXN0aW1hdGVOZXR3b3JrRmVlcyhcblx0XHRwcm92aWRlcjogSUpzb25ScGNQcm92aWRlcixcblx0XHRwcmlvcml0eSA9IFRyYW5zYWN0aW9uUHJpb3JpdHkuTWVkaXVtLFxuXHQpOiBQcm9taXNlPGJpZ2ludD4ge1xuXHRcdHRoaXMuX3ByaW9yaXRpZXMgPSBhd2FpdCBwcm92aWRlci5wcmlvcml0aWVzKCk7XG5cdFx0cmV0dXJuIEJpZ0ludChcblx0XHRcdE1hdGguZmxvb3IoXG5cdFx0XHRcdHRoaXMuX3ByaW9yaXRpZXNbYGRydF8ke3ByaW9yaXR5fWBdLnByaW9yaXR5ICpcblx0XHRcdFx0XHQodGhpcy5jb3ZlcmVkXG5cdFx0XHRcdFx0XHQ/IHRoaXMud2VpZ2h0XG5cdFx0XHRcdFx0XHQ6IHRoaXMud2VpZ2h0ICtcblx0XHRcdFx0XHRcdFx0Ly8gZXN0aW1hdGUgd2VpZ2h0IG9mIG9uZSBzaW5nbGUgb3V0cHV0IGluIGNhc2UgdGhlcmUgd2FzIGNoYW5nZSB0byBwYXkgYmFja1xuXHRcdFx0XHRcdFx0XHRUWF9XRUlHSFRfT1VUUFVUX1NJWkUpLFxuXHRcdFx0KSxcblx0XHQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIF9mZWVzMlVuaXRhcnlDb21taXRSZXZlYWxSZXdhcmQoXG5cdFx0ZmVlczogYmlnaW50LFxuXHRcdHdpdG5lc3NlczogbnVtYmVyLFxuXHQpOiBiaWdpbnQge1xuXHRcdHJldHVybiBmZWVzIC8gQmlnSW50KHdpdG5lc3NlcykgfHwgMW47XG5cdH1cblxuXHRwcm90ZWN0ZWQgX2ZlZXMyVW5pdGFyeVJld2FyZChmZWVzOiBiaWdpbnQsIF93aXRuZXNzZXM6IG51bWJlcik6IGJpZ2ludCB7XG5cdFx0cmV0dXJuIEJpZ01hdGgubWF4KFxuXHRcdFx0ZmVlcyxcblx0XHRcdEJpZ0ludChcblx0XHRcdFx0TWF0aC5jZWlsKE51bWJlcihEYXRhUmVxdWVzdFBheWxvYWQuTUlOX0NPTExBVEVSQUwgLyBDT0xMQVRFUkFMX1JBVElPKSksXG5cdFx0XHQpLFxuXHRcdCk7XG5cdH1cblx0cHJvdGVjdGVkIF9mZWVzMlZhbHVlKGZlZXM6IGJpZ2ludCwgd2l0bmVzc2VzOiBudW1iZXIpOiBiaWdpbnQge1xuXHRcdHJldHVybiAoXG5cdFx0XHRCaWdJbnQod2l0bmVzc2VzKSAqXG5cdFx0XHQodGhpcy5fZmVlczJVbml0YXJ5UmV3YXJkKGZlZXMsIHdpdG5lc3NlcykgK1xuXHRcdFx0XHQybiAqIHRoaXMuX2ZlZXMyVW5pdGFyeUNvbW1pdFJldmVhbFJld2FyZChmZWVzLCB3aXRuZXNzZXMpKVxuXHRcdCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3RvRHJPdXRwdXRQcm90b2J1ZigpOiBhbnkge1xuXHRcdGlmICh0aGlzLl9yZXF1ZXN0KSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHQuLi50aGlzLmRyb1NMQSxcblx0XHRcdFx0ZGF0YVJlcXVlc3Q6IHRoaXMuX3JlcXVlc3QudG9Qcm90b2J1ZigpLFxuXHRcdFx0fTtcblx0XHR9XG5cdH1cbn1cbiJdfQ==
|
|
327
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YVJlcXVlc3RQYXlsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jcnlwdG8vcGF5bG9hZHMvRGF0YVJlcXVlc3RQYXlsb2FkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRS9DLE9BQU8sUUFBUSxNQUFNLFlBQVksQ0FBQztBQUVsQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLFFBQVEsQ0FBQztBQUNyQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLENBQUM7QUFFdEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSW5FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUEwQixtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQWtCOUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7QUFDOUIsbUNBQW1DO0FBRW5DLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sbUJBQW1CLEdBQUcsR0FBRyxDQUFDO0FBQ2hDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBRS9CLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO0FBQzdCLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDO0FBRTVCLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDO0FBRWpDLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSwwQkFBNkM7SUFDN0UsTUFBTSxDQUFDLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztJQUNyQyxNQUFNLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDO0lBQzNCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsWUFBZSxDQUFDO0lBQ3hDLE1BQU0sQ0FBQyx3QkFBd0IsR0FBRyxFQUFFLENBQUM7SUFFbEMsUUFBUSxDQUFnQjtJQUNsQixRQUFRLENBQWlCO0lBRXpDLFlBQVksYUFBcUIsRUFBRSxLQUFtQyxFQUFFLGFBQWlDO1FBQ3hHLEtBQUssQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDcEMsSUFBSSxLQUFLLFlBQVksWUFBWSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksS0FBSyxZQUFZLGFBQWEsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ1AsTUFBTSxJQUFJLFNBQVMsQ0FBQyxxREFBc0QsS0FBYSxFQUFFLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzlHLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2pCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ3ZDLElBQUksR0FBRyxFQUFFLENBQUM7WUFDVCxNQUFNLGlCQUFpQixHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNwRSxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDMUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDVCxNQUFNLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsdURBQXVEO2dCQUN2RCxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xELCtEQUErRDtnQkFDL0QsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUM1RCxpREFBaUQ7Z0JBQ2pELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLENBQUM7UUFDRixDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sU0FBUyxDQUFDO1FBQ2xCLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2hCLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEMsTUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQyx3QkFBd0IsQ0FBQztZQUMzRSxNQUFNLFNBQVMsR0FDZCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVE7Z0JBQ3pDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTTtnQkFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztZQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN0RSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsMkZBQTJGO1lBQ25MLE1BQU0sVUFBVSxHQUFHLGFBQWEsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLG1DQUFtQztZQUN4RixJQUFJLFVBQVUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCO2dCQUN2QyxNQUFNLElBQUksU0FBUyxDQUNsQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxtQ0FBbUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxDQUMvRyxDQUFDO2lCQUNFLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0I7Z0JBQy9DLE1BQU0sSUFBSSxTQUFTLENBQ2xCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLCtCQUErQixhQUFhLENBQUMsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQzlHLENBQUM7aUJBQ0UsSUFBSSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCO2dCQUNwRCxNQUFNLElBQUksU0FBUyxDQUNsQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxrQ0FBa0Msa0JBQWtCLENBQUMsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQ3RILENBQUM7WUFDSCxPQUFPO2dCQUNOLFVBQVUsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDO2dCQUM5QixrQkFBa0IsRUFBRSxNQUFNLENBQUMsa0JBQWtCLENBQUM7Z0JBQzlDLHNCQUFzQjtnQkFDdEIsU0FBUztnQkFDVCxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQzthQUNwQyxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDUCxPQUFPLFNBQVMsQ0FBQztRQUNsQixDQUFDO0lBQ0YsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNkLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDaEMsSUFBSSxTQUFTLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQy9CLE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVMsQ0FBQztRQUNyRyxDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sU0FBUyxDQUFDO1FBQ2xCLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ25CLE9BQU8sa0JBQWtCLENBQUMsVUFBVSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckYsQ0FBQztJQUVELElBQVcsT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQVcsT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDakIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDZixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hDLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRixDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDRixDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2hCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkMsTUFBTSxTQUFTLEdBQ2QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxRQUFRO2dCQUN6QyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU07Z0JBQzVDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUM7WUFDaEMsT0FBTyxDQUNOLGtCQUFrQixHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxvQkFBb0I7Z0JBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLHFCQUFxQjtnQkFDNUMsU0FBUyxHQUFHLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLEdBQUcsaUJBQWlCLEdBQUcscUJBQXFCLENBQUMsR0FBRyxvRkFBb0Y7Z0JBQzFMLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLElBQUksQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQ2xGLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNQLE9BQU8sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNGLENBQUM7SUFFTSxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQWUsRUFBRSxNQUFnQjtRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksd0NBQXdDLENBQUMsQ0FBQztRQUNuRixDQUFDO2FBQU0sSUFBSyxJQUFJLENBQUMsT0FBZSxFQUFFLElBQUksWUFBWSxLQUFLLEVBQUUsQ0FBQztZQUN6RCxJQUFJLENBQUMsS0FBSyxHQUFJLElBQUksQ0FBQyxPQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUMvQyxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO2dCQUMzRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO29CQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLGdFQUFnRSxDQUFDLENBQUM7Z0JBQzNHLENBQUM7cUJBQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLGtCQUFrQixDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDOUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO29CQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUNsQyxLQUFLLEdBQUcsQ0FBQyxtQkFBbUIsR0FBRyxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQyxDQUMzRSxDQUFDO29CQUNGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7d0JBQ2hDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7d0JBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2QsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUkseURBQXlELElBQUksQ0FBQyxNQUFNLGVBQWUsQ0FDM0csQ0FBQztvQkFDSCxDQUFDO2dCQUNGLENBQUM7WUFDRixDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUssSUFBSSxDQUFDLE9BQWUsRUFBRSxJQUE0QixJQUFJLG1CQUFtQixDQUFDLE9BQU8sQ0FBQztZQUNyRyxJQUFJLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9FLE9BQU8sSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixtRUFBbUU7Z0JBQ25FLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNuRSxJQUFJLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNwRCxNQUFNLEtBQUssR0FBRyxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUM7d0JBQ3RDLEtBQUssRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7d0JBQzNELE1BQU07cUJBQ04sQ0FBQyxDQUFDO29CQUNILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUM5RixJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUssQ0FBQztvQkFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztvQkFDNUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO2dCQUMvQixDQUFDO2dCQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BELElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztvQkFDN0MsYUFBYSxHQUFHLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQzVFLENBQUM7WUFDRixDQUFDO1FBQ0YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNyQixDQUFDO0lBRU0sV0FBVyxDQUFDLE1BQXlCO1FBQzNDLE9BQU87WUFDTixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVM7U0FDM0IsQ0FBQztJQUNILENBQUM7SUFFTSxjQUFjLENBQUMsTUFBMEI7UUFDL0MsSUFBSSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQ2xCLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07Z0JBQzNCLEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSztnQkFDbkIsU0FBUyxFQUFFLENBQUM7YUFDWixDQUFDLENBQUM7UUFDSixDQUFDO0lBQ0YsQ0FBQztJQUVNLFdBQVcsQ0FBQyxNQUF5QjtRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzNGLE1BQU0sSUFBSSxTQUFTLENBQ2xCLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLDBDQUEwQyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsTUFDdkYsa0JBQWtCLENBQUMsY0FDcEIsRUFBRSxDQUNGLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLElBQUksQ0FBQztZQUMxQixJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxpQ0FBaUMsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7aUJBQU0sSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN6RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZELENBQUM7UUFDRixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3pCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUSxHQUFHLEtBQUs7UUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixPQUFPO1lBQ04sTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDbkMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHO2dCQUNaLFNBQVMsRUFBRSxHQUFHLENBQUMsU0FBUztnQkFDeEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO2FBQzNCLENBQUMsQ0FBQztZQUNILFNBQVMsRUFBRTtnQkFDVixHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUMxRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsa0JBQWtCO2dCQUNqRCx3QkFBd0IsRUFBRSxNQUFNLEVBQUUsc0JBQXNCO2dCQUN4RCxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVM7Z0JBQzVCLGNBQWMsRUFBRSxNQUFNLEVBQUUsYUFBYTtnQkFDckMsVUFBVSxFQUFFLE1BQU0sRUFBRSxVQUFVO2FBQzlCO1NBQ0QsQ0FBQztJQUNILENBQUM7SUFFTSxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwRCxPQUFPO2dCQUNOLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNoQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDeEQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNwRSxPQUFPO3dCQUNOLGFBQWEsRUFBRTs0QkFDZCxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRTs0QkFDbkUsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt5QkFDM0M7cUJBQ0QsQ0FBQztnQkFDSCxDQUFDLENBQUM7Z0JBQ0YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO29CQUNuQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFO29CQUN4RSxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDO29CQUNoQyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2lCQUN6RCxDQUFDLENBQUM7Z0JBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsRUFBRTthQUNwQyxDQUFDO1FBQ0gsQ0FBQztJQUNGLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBWTtRQUNqQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlDLElBQ0MsQ0FBQyxDQUNBLE1BQU07Z0JBQ04sQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJO29CQUNiLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxLQUFLLElBQUssTUFBTSxDQUFDLElBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO29CQUNuRSxNQUFNLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDMUQsQ0FBQyxNQUFNLEVBQUUsU0FBUyxJQUFJLE1BQU0sRUFBRSxTQUFTLEtBQUssU0FBUyxDQUFDO2dCQUN0RCxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQ2hDLEVBQ0EsQ0FBQztnQkFDRixNQUFNLElBQUksU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLHNCQUFzQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM3RixDQUFDO2lCQUFNLElBQUksTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO2dCQUM5QixJQUFJLE9BQU8sTUFBTSxDQUFDLFNBQVMsS0FBSyxRQUFRLEVBQUUsQ0FBQztvQkFDMUMsTUFBTSxJQUFJLFNBQVMsQ0FDbEIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksdURBQXVELE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FDakcsQ0FBQztnQkFDSCxDQUFDO2dCQUNELE1BQU0sQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdELENBQUM7WUFDRCxPQUFPLE1BQTJCLENBQUM7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDUCxPQUFPLFNBQVMsQ0FBQztRQUNsQixDQUFDO0lBQ0YsQ0FBQztJQUVTLGtCQUFrQixDQUFDLE1BQVk7UUFDeEMsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDeEIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUN0RyxDQUFDO1FBQ0gsQ0FBQztJQUNGLENBQUM7SUFFUyxLQUFLLENBQUMsb0JBQW9CLENBQ25DLFFBQTBCLEVBQzFCLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxNQUFNO1FBRXJDLElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0MsT0FBTyxNQUFNLENBQ1osSUFBSSxDQUFDLEtBQUssQ0FDVCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sUUFBUSxFQUFFLENBQUMsQ0FBQyxRQUFRO1lBQzNDLENBQUMsSUFBSSxDQUFDLE9BQU87Z0JBQ1osQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO2dCQUNiLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTTtvQkFDWiw0RUFBNEU7b0JBQzVFLHFCQUFxQixDQUFDLENBQ3pCLENBQ0QsQ0FBQztJQUNILENBQUM7SUFFUywrQkFBK0IsQ0FBQyxJQUFZLEVBQUUsU0FBaUI7UUFDeEUsT0FBTyxJQUFJLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRVMsbUJBQW1CLENBQUMsSUFBWSxFQUFFLFVBQWtCO1FBQzdELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFDUyxXQUFXLENBQUMsSUFBWSxFQUFFLFNBQWlCO1FBQ3BELE9BQU8sQ0FDTixNQUFNLENBQUMsU0FBUyxDQUFDO1lBQ2pCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUN4RyxDQUFDO0lBQ0gsQ0FBQztJQUVTLG1CQUFtQjtRQUM1QixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixPQUFPO2dCQUNOLEdBQUcsSUFBSSxDQUFDLE1BQU07Z0JBQ2QsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFO2FBQ3ZDLENBQUM7UUFDSCxDQUFDO0lBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCBMb25nIGZyb20gXCJsb25nXCI7XG5cbmNvbnN0IHJlcXVpcmUgPSBjcmVhdGVSZXF1aXJlKGltcG9ydC5tZXRhLnVybCk7XG5cbmltcG9ydCBwcm90b2J1ZiBmcm9tIFwicHJvdG9idWZqc1wiO1xuXG5jb25zdCB7IFJvb3Q6IFByb3RvUm9vdCB9ID0gcHJvdG9idWY7XG5jb25zdCBwcm90b1Jvb3QgPSBQcm90b1Jvb3QuZnJvbUpTT04ocmVxdWlyZShcIi4uLy4uLy4uLy4uL3dpdG5ldC93aXRuZXQucHJvdG8uanNvblwiKSk7XG5cbmltcG9ydCB7IGZyb21IZXhTdHJpbmcsIHRvSGV4U3RyaW5nIH0gZnJvbSBcIi4uLy4uLy4uL2Jpbi9oZWxwZXJzLmpzXCI7XG5cbmltcG9ydCB7IFJhZG9uUmVxdWVzdCwgUmFkb25UZW1wbGF0ZSB9IGZyb20gXCIuLi8uLi9yYWRvbi9pbmRleC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIYXNoLCBIZXhTdHJpbmcsIElKc29uUnBjUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vdHlwZXMuanNcIjtcblxuaW1wb3J0IHR5cGUgeyBJTGVkZ2VyIH0gZnJvbSBcIi4uL2ludGVyZmFjZXMuanNcIjtcbmltcG9ydCB7IFRyYW5zYWN0aW9uUGF5bG9hZE11bHRpU2lnIH0gZnJvbSBcIi4uL3BheWxvYWRzLmpzXCI7XG5pbXBvcnQgeyBDb2lucywgUHVibGljS2V5SGFzaCwgdHlwZSBUcmFuc2FjdGlvblBhcmFtcywgVHJhbnNhY3Rpb25Qcmlvcml0eSB9IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuaW1wb3J0IHsgQmlnTWF0aCwgc2hhMjU2IH0gZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFSZXF1ZXN0VGVtcGxhdGVBcmdzID0gYW55IHwgc3RyaW5nIHwgc3RyaW5nW10gfCBzdHJpbmdbXVtdO1xuXG5leHBvcnQgdHlwZSBEYXRhUmVxdWVzdFBhcmFtcyA9IFRyYW5zYWN0aW9uUGFyYW1zICYge1xuXHRhcmdzPzogRGF0YVJlcXVlc3RUZW1wbGF0ZUFyZ3M7XG5cdG1heFJlc3VsdFNpemU/OiBudW1iZXI7XG5cdHdpdG5lc3Nlcz86IG51bWJlcjtcbn07XG5cbnR5cGUgRGF0YVJlcXVlc3RPdXRwdXRTTEEgPSB7XG5cdGNvbGxhdGVyYWw6IG51bWJlcjtcblx0Y29tbWl0QW5kUmV2ZWFsRmVlOiBudW1iZXI7XG5cdG1pbkNvbnNlbnN1c1BlcmNlbnRhZ2U6IG51bWJlcjtcblx0d2l0bmVzc2VzOiBudW1iZXI7XG5cdHdpdG5lc3NSZXdhcmQ/OiBudW1iZXI7XG59O1xuXG5jb25zdCBDT0xMQVRFUkFMX1JBVElPID0gMTAwbjtcbi8vIGNvbnN0IFJBRE9OX0VSUk9SX01BWF9CWVRFUyA9IDk7XG5cbmNvbnN0IERSX0NPTU1JVF9UWF9XRUlHSFQgPSA0MDA7XG5jb25zdCBEUl9SRVZFQUxfVFhfV0VJR0hUID0gMjAwO1xuY29uc3QgRFJfVEFMTFlfVFhfV0VJR0hUID0gMTAwO1xuXG5jb25zdCBEUl9UWF9XRUlHSFRfQUxQSEEgPSAxO1xuY29uc3QgRFJfVFhfV0VJR0hUX0JFVEEgPSAxO1xuXG5jb25zdCBUWF9XRUlHSFRfSU5QVVRfU0laRSA9IDEzMztcbmNvbnN0IFRYX1dFSUdIVF9PVVRQVVRfU0laRSA9IDM2O1xuXG5leHBvcnQgY2xhc3MgRGF0YVJlcXVlc3RQYXlsb2FkIGV4dGVuZHMgVHJhbnNhY3Rpb25QYXlsb2FkTXVsdGlTaWc8RGF0YVJlcXVlc3RQYXJhbXM+IHtcblx0cHVibGljIHN0YXRpYyBERUZBVUxUX01BWF9SRVNVTFRfU0laRSA9IDI1Njtcblx0cHVibGljIHN0YXRpYyBERUZBVUxUX1dJVE5FU1NFUyA9IDEyO1xuXHRwdWJsaWMgc3RhdGljIE1BWF9XRUlHSFQgPSA4MF8wMDA7XG5cdHB1YmxpYyBzdGF0aWMgTUlOX0NPTExBVEVSQUwgPSAyMF8wMDBfMDAwXzAwMG47XG5cdHB1YmxpYyBzdGF0aWMgTUlOX0NPTlNFTlNVU19QRVJDRU5UQUdFID0gNTE7XG5cblx0cHJvdGVjdGVkIF9yZXF1ZXN0PzogUmFkb25SZXF1ZXN0O1xuXHRwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGU/OiBSYWRvblRlbXBsYXRlO1xuXG5cdGNvbnN0cnVjdG9yKHByb3RvVHlwZU5hbWU6IHN0cmluZywgcmFkb246IFJhZG9uUmVxdWVzdCB8IFJhZG9uVGVtcGxhdGUsIGluaXRpYWxUYXJnZXQ/OiBEYXRhUmVxdWVzdFBhcmFtcykge1xuXHRcdHN1cGVyKHByb3RvVHlwZU5hbWUsIGluaXRpYWxUYXJnZXQpO1xuXHRcdGlmIChyYWRvbiBpbnN0YW5jZW9mIFJhZG9uUmVxdWVzdCkge1xuXHRcdFx0dGhpcy5fcmVxdWVzdCA9IHJhZG9uO1xuXHRcdH0gZWxzZSBpZiAocmFkb24gaW5zdGFuY2VvZiBSYWRvblRlbXBsYXRlKSB7XG5cdFx0XHR0aGlzLnRlbXBsYXRlID0gcmFkb247XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoYERhdGFSZXF1ZXN0UGF5bG9hZDogdW5zdXBwb3J0ZWQgUmFkb24gYXNzZXQgdHlwZTogJHsocmFkb24gYXMgYW55KT8uY29uc3RydWN0b3IubmFtZX1gKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGRyb0hhc2goKTogSGFzaCB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3Qgb2JqID0gdGhpcy5fdG9Eck91dHB1dFByb3RvYnVmKCk7XG5cdFx0aWYgKG9iaikge1xuXHRcdFx0Y29uc3QgRGF0YVJlcXVlc3RPdXRwdXQgPSBwcm90b1Jvb3QubG9va3VwVHlwZShcIkRhdGFSZXF1ZXN0T3V0cHV0XCIpO1xuXHRcdFx0Y29uc3QgZXJyID0gRGF0YVJlcXVlc3RPdXRwdXQudmVyaWZ5KG9iaik7XG5cdFx0XHRpZiAoZXJyKSB7XG5cdFx0XHRcdHRocm93IFR5cGVFcnJvcihlcnIpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0Ly8gY29uc29sZS5sb2coXCJcXG5kcm9IYXNoLm9iaiA9PlwiLCBKU09OLnN0cmluZ2lmeShvYmopKVxuXHRcdFx0XHRjb25zdCBtZXNzYWdlID0gRGF0YVJlcXVlc3RPdXRwdXQuZnJvbU9iamVjdChvYmopO1xuXHRcdFx0XHQvLyBjb25zb2xlLmxvZyhcIlxcbmRyb0hhc2gubWVzc2FnZSA9PlwiLCBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSlcblx0XHRcdFx0Y29uc3QgYnl0ZWNvZGUgPSBEYXRhUmVxdWVzdE91dHB1dC5lbmNvZGUobWVzc2FnZSkuZmluaXNoKCk7XG5cdFx0XHRcdC8vIGNvbnNvbGUubG9nKFwiXFxuZHJvSGFzaC5ieXRlY29kZSA9PlwiLCBieXRlY29kZSlcblx0XHRcdFx0cmV0dXJuIHRvSGV4U3RyaW5nKHNoYTI1NihieXRlY29kZSkpO1xuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXQgZHJvU0xBKCk6IERhdGFSZXF1ZXN0T3V0cHV0U0xBIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAodGhpcy5fdGFyZ2V0ICYmIHRoaXMuX2ZlZXMpIHtcblx0XHRcdGNvbnN0IG1pbkNvbnNlbnN1c1BlcmNlbnRhZ2UgPSBEYXRhUmVxdWVzdFBheWxvYWQuTUlOX0NPTlNFTlNVU19QRVJDRU5UQUdFO1xuXHRcdFx0Y29uc3Qgd2l0bmVzc2VzID1cblx0XHRcdFx0dHlwZW9mIHRoaXMuX3RhcmdldC53aXRuZXNzZXMgPT09IFwib2JqZWN0XCJcblx0XHRcdFx0XHQ/IE9iamVjdC5rZXlzKHRoaXMuX3RhcmdldC53aXRuZXNzZXMpLmxlbmd0aFxuXHRcdFx0XHRcdDogdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyB8fCAwO1xuXHRcdFx0Y29uc3Qgd2l0bmVzc1Jld2FyZCA9IHRoaXMuX2ZlZXMyVW5pdGFyeVJld2FyZCh0aGlzLl9mZWVzLCB3aXRuZXNzZXMpO1xuXHRcdFx0Y29uc3QgY29tbWl0QW5kUmV2ZWFsRmVlID0gdGhpcy5fZmVlczJVbml0YXJ5Q29tbWl0UmV2ZWFsUmV3YXJkKHRoaXMuX2ZlZXMsIHdpdG5lc3Nlcyk7IC8vTWF0aC5mbG9vcihOdW1iZXIod2l0bmVzc1Jld2FyZCAvIEJpZ0ludCh3aXRuZXNzZXMpKSkgLy8gVE9ETzogemVyb2Z5IGlmIHByb3RvY29sID49IFYyXzFcblx0XHRcdGNvbnN0IGNvbGxhdGVyYWwgPSB3aXRuZXNzUmV3YXJkICogQ09MTEFURVJBTF9SQVRJTzsgLy8gVE9ETzogemVyb2Z5IGlmIHByb3RvY29sID49IFYyXzFcblx0XHRcdGlmIChjb2xsYXRlcmFsID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpXG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogZXhjZXNzaXZlIHdpdG5lc3MgY29sbGF0ZXJhbDogJHtjb2xsYXRlcmFsLnRvU3RyaW5nKCl9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxuXHRcdFx0XHQpO1xuXHRcdFx0ZWxzZSBpZiAod2l0bmVzc1Jld2FyZCA+IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKVxuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFxuXHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGV4Y2Vzc2l2ZSB3aXRuZXNzIHJld2FyZDogJHt3aXRuZXNzUmV3YXJkLnRvU3RyaW5nKCl9ID4gJHtOdW1iZXIuTUFYX1NBRkVfSU5URUdFUn1gLFxuXHRcdFx0XHQpO1xuXHRcdFx0ZWxzZSBpZiAoY29tbWl0QW5kUmV2ZWFsRmVlID4gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpXG5cdFx0XHRcdHRocm93IG5ldyBUeXBlRXJyb3IoXG5cdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogZXhjZXNzaXZlIGNvbW1pdC9yZXZlYWwgZmVlOiAke2NvbW1pdEFuZFJldmVhbEZlZS50b1N0cmluZygpfSA+ICR7TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVJ9YCxcblx0XHRcdFx0KTtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGNvbGxhdGVyYWw6IE51bWJlcihjb2xsYXRlcmFsKSxcblx0XHRcdFx0Y29tbWl0QW5kUmV2ZWFsRmVlOiBOdW1iZXIoY29tbWl0QW5kUmV2ZWFsRmVlKSxcblx0XHRcdFx0bWluQ29uc2Vuc3VzUGVyY2VudGFnZSxcblx0XHRcdFx0d2l0bmVzc2VzLFxuXHRcdFx0XHR3aXRuZXNzUmV3YXJkOiBOdW1iZXIod2l0bmVzc1Jld2FyZCksXG5cdFx0XHR9O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXQgaGFzaCgpOiBIYXNoIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBfYnl0ZWNvZGUgPSB0aGlzLmJ5dGVjb2RlO1xuXHRcdGlmIChfYnl0ZWNvZGUgJiYgdGhpcy5kcm9IYXNoKSB7XG5cdFx0XHRyZXR1cm4gdG9IZXhTdHJpbmcoc2hhMjU2KEJ1ZmZlci5jb25jYXQoW2Zyb21IZXhTdHJpbmcodGhpcy5kcm9IYXNoKSwgc2hhMjU2KF9ieXRlY29kZSldKSkpIGFzIEhhc2g7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldCBtYXhXZWlnaHQoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gRGF0YVJlcXVlc3RQYXlsb2FkLk1BWF9XRUlHSFQ7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHBhcmFtZXRlcml6ZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuICEhdGhpcy50ZW1wbGF0ZTtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcHJlcGFyZWQoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuY292ZXJlZCAmJiB0aGlzLl9pbnB1dHMubGVuZ3RoID4gMCAmJiAhIXRoaXMuX3JlcXVlc3QgJiYgISF0aGlzLl90YXJnZXQ7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IHJhZEFyZ3MoKTogRGF0YVJlcXVlc3RUZW1wbGF0ZUFyZ3MgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLnRlbXBsYXRlID8gdGhpcy5fdGFyZ2V0Py5hcmdzIDogdW5kZWZpbmVkO1xuXHR9XG5cblx0cHVibGljIGdldCByYWRIYXNoKCk6IEhleFN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucmVxdWVzdD8ucmFkSGFzaDtcblx0fVxuXG5cdHB1YmxpYyBnZXQgcmVxdWVzdCgpOiBSYWRvblJlcXVlc3QgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiB0aGlzLl9yZXF1ZXN0O1xuXHR9XG5cblx0cHVibGljIGdldCB2YWx1ZSgpOiBDb2lucyB7XG5cdFx0aWYgKHRoaXMuX3RhcmdldCAmJiB0aGlzLl9mZWVzKSB7XG5cdFx0XHRyZXR1cm4gQ29pbnMuZnJvbVBlZHJvcyh0aGlzLl9mZWVzMlZhbHVlKHRoaXMuX2ZlZXMsIHRoaXMuX3RhcmdldC53aXRuZXNzZXMgfHwgMCkpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRyZXR1cm4gQ29pbnMuemVybygpO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBnZXQgd2VpZ2h0KCk6IG51bWJlciB7XG5cdFx0aWYgKHRoaXMuX3JlcXVlc3QgJiYgdGhpcy5fdGFyZ2V0KSB7XG5cdFx0XHRjb25zdCB3aXRuZXNzZXMgPVxuXHRcdFx0XHR0eXBlb2YgdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9PT0gXCJvYmplY3RcIlxuXHRcdFx0XHRcdD8gT2JqZWN0LmtleXModGhpcy5fdGFyZ2V0LndpdG5lc3NlcykubGVuZ3RoXG5cdFx0XHRcdFx0OiB0aGlzLl90YXJnZXQud2l0bmVzc2VzIHx8IDA7XG5cdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHREUl9UWF9XRUlHSFRfQUxQSEEgKiAodGhpcy5fcmVxdWVzdC53ZWlnaHQoKSArIDggKyAyICsgOCArIDQgKyA4KSArXG5cdFx0XHRcdHRoaXMuX2lucHV0cy5sZW5ndGggKiBUWF9XRUlHSFRfSU5QVVRfU0laRSArXG5cdFx0XHRcdHRoaXMuX291dHB1dHMubGVuZ3RoICogVFhfV0VJR0hUX09VVFBVVF9TSVpFICtcblx0XHRcdFx0d2l0bmVzc2VzICogKERSX0NPTU1JVF9UWF9XRUlHSFQgKyBEUl9SRVZFQUxfVFhfV0VJR0hUICogRFJfVFhfV0VJR0hUX0JFVEEgKyBUWF9XRUlHSFRfT1VUUFVUX1NJWkUpICsgLy8gVE9ETyBWMi4xOiB0eXBlb2YgdGhpcy5fdGFyZ2V0LndpdG5lc3NlcyA9PT0gJ29iamVjdCcgPyBUWF9XRUlHSFRfT1VUUFVUX1NJWkUgOiAwXG5cdFx0XHRcdE1hdGgubWF4KERSX1RBTExZX1RYX1dFSUdIVCwgdGhpcy5fdGFyZ2V0Py5tYXhSZXN1bHRTaXplIHx8IDApICogRFJfVFhfV0VJR0hUX0JFVEFcblx0XHRcdCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiAwO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBhc3luYyBjb25zdW1lVXR4b3MobGVkZ2VyOiBJTGVkZ2VyLCByZWxvYWQ/OiBib29sZWFuKTogUHJvbWlzZTxiaWdpbnQ+IHtcblx0XHRpZiAoIXRoaXMuX3RhcmdldCkge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGludGVybmFsIGVycm9yOiBubyBpbi1mbGlnaHQgcGFyYW1zLmApO1xuXHRcdH0gZWxzZSBpZiAoKHRoaXMuX3RhcmdldCBhcyBhbnkpPy5mZWVzIGluc3RhbmNlb2YgQ29pbnMpIHtcblx0XHRcdHRoaXMuX2ZlZXMgPSAodGhpcy5fdGFyZ2V0IGFzIGFueSkuZmVlcy5wZWRyb3M7XG5cdFx0XHRyZXR1cm4gc3VwZXIuY29uc3VtZVV0eG9zKGxlZGdlciwgcmVsb2FkKTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuY292ZXJlZCkge1xuXHRcdFx0aWYgKCF0aGlzLl90YXJnZXQud2l0bmVzc2VzKSB7XG5cdFx0XHRcdHRoaXMuX3RhcmdldC53aXRuZXNzZXMgPSBNYXRoLm1pbihEYXRhUmVxdWVzdFBheWxvYWQuREVGQVVMVF9XSVRORVNTRVMsIGF3YWl0IGxlZGdlci5wcm92aWRlci53aXRuZXNzZXMoKSk7XG5cdFx0XHRcdGlmICh0aGlzLl90YXJnZXQud2l0bmVzc2VzIDwgMykge1xuXHRcdFx0XHRcdGRlbGV0ZSB0aGlzLl90YXJnZXQud2l0bmVzc2VzO1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBjYW5ub3QgZXN0aW1hdGUgd2l0bmVzc2VzOiBuZXR3b3JrIG5vdCByZWFkeSBmb3Igd2l0bmVzc2luZy5gKTtcblx0XHRcdFx0fSBlbHNlIGlmICh0aGlzLndlaWdodCA+IERhdGFSZXF1ZXN0UGF5bG9hZC5NQVhfV0VJR0hUICogMC44KSB7XG5cdFx0XHRcdFx0Y29uc3QgZGVsdGEgPSB0aGlzLndlaWdodCAtIERhdGFSZXF1ZXN0UGF5bG9hZC5NQVhfV0VJR0hUICogMC44O1xuXHRcdFx0XHRcdHRoaXMuX3RhcmdldC53aXRuZXNzZXMgLT0gTWF0aC5jZWlsKFxuXHRcdFx0XHRcdFx0ZGVsdGEgLyAoRFJfQ09NTUlUX1RYX1dFSUdIVCArIERSX1JFVkVBTF9UWF9XRUlHSFQgKiBUWF9XRUlHSFRfT1VUUFVUX1NJWkUpLFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0aWYgKHRoaXMuX3RhcmdldC53aXRuZXNzZXMgPCAzKSB7XG5cdFx0XHRcdFx0XHRkZWxldGUgdGhpcy5fdGFyZ2V0LndpdG5lc3Nlcztcblx0XHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihcblx0XHRcdFx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogY2Fubm90IGVzdGltYXRlIHdpdG5lc3NlczogcmFkb24gcmVxdWVzdCB0b28gaGVhdnk6ICR7dGhpcy53ZWlnaHR9IHdlaWdodCB1bml0c2AsXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0Y29uc3QgcHJpb3JpdHkgPSAoKHRoaXMuX3RhcmdldCBhcyBhbnkpPy5mZWVzIGFzIFRyYW5zYWN0aW9uUHJpb3JpdHkpIHx8IFRyYW5zYWN0aW9uUHJpb3JpdHkuT3B1bGVudDtcblx0XHRcdGxldCBlc3RpbWF0ZWRGZWVzID0gYXdhaXQgdGhpcy5fZXN0aW1hdGVOZXR3b3JrRmVlcyhsZWRnZXIucHJvdmlkZXIsIHByaW9yaXR5KTtcblx0XHRcdHdoaWxlICh0aGlzLl9mZWVzIDwgZXN0aW1hdGVkRmVlcyAmJiB0aGlzLl9jaGFuZ2UgPj0gMCkge1xuXHRcdFx0XHR0aGlzLl9mZWVzID0gZXN0aW1hdGVkRmVlcztcblx0XHRcdFx0dGhpcy5fb3V0cHV0cyA9IFtdO1xuXHRcdFx0XHQvLyBjb25zdW1lIHV0eG9zIGFzIHRvIGNvdmVyIGZvciBlc3RpbWF0ZWQgdmFsdWUgYW5kIGVzdGltYXRlZCBmZWVzXG5cdFx0XHRcdGNvbnN0IHZhbHVlID0gdGhpcy5fZmVlczJWYWx1ZSh0aGlzLl9mZWVzLCB0aGlzLl90YXJnZXQud2l0bmVzc2VzKTtcblx0XHRcdFx0aWYgKHRoaXMuX2NvdmVyZWQgPCB0aGlzLnZhbHVlLnBlZHJvcyArIHRoaXMuX2ZlZXMpIHtcblx0XHRcdFx0XHRjb25zdCB1dHhvcyA9IGF3YWl0IGxlZGdlci5zZWxlY3RVdHhvcyh7XG5cdFx0XHRcdFx0XHR2YWx1ZTogQ29pbnMuZnJvbVBlZHJvcyh2YWx1ZSArIHRoaXMuX2ZlZXMgLSB0aGlzLl9jb3ZlcmVkKSxcblx0XHRcdFx0XHRcdHJlbG9hZCxcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRjb25zdCBleHRyYSA9IHV0eG9zLm1hcCgodXR4bykgPT4gQmlnSW50KHV0eG8udmFsdWUpKS5yZWR1Y2UoKHByZXYsIGN1cnIpID0+IHByZXYgKyBjdXJyLCAwbik7XG5cdFx0XHRcdFx0dGhpcy5fY292ZXJlZCArPSBleHRyYTtcblx0XHRcdFx0XHR0aGlzLl9pbnB1dHMucHVzaCguLi51dHhvcyk7XG5cdFx0XHRcdFx0bGVkZ2VyLmNvbnN1bWVVdHhvcyguLi51dHhvcyk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5fY2hhbmdlID0gdGhpcy5fY292ZXJlZCAtICh2YWx1ZSArIHRoaXMuX2ZlZXMpO1xuXHRcdFx0XHRpZiAodGhpcy5fY2hhbmdlID49IDApIHtcblx0XHRcdFx0XHR0aGlzLnByZXBhcmVPdXRwdXRzKHsgdmFsdWU6IHRoaXMuX2NoYW5nZSB9KTtcblx0XHRcdFx0XHRlc3RpbWF0ZWRGZWVzID0gYXdhaXQgdGhpcy5fZXN0aW1hdGVOZXR3b3JrRmVlcyhsZWRnZXIucHJvdmlkZXIsIHByaW9yaXR5KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5fY2hhbmdlO1xuXHR9XG5cblx0cHVibGljIGludG9SZWNlaXB0KHRhcmdldDogRGF0YVJlcXVlc3RQYXJhbXMpOiBhbnkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRkcm9IYXNoOiB0aGlzLmRyb0hhc2gsXG5cdFx0XHRyYWRBcmdzOiB0aGlzLnJhZEFyZ3MsXG5cdFx0XHRyYWRIYXNoOiB0aGlzLnJhZEhhc2gsXG5cdFx0XHR3aXRuZXNzZXM6IHRhcmdldC53aXRuZXNzZXMsXG5cdFx0fTtcblx0fVxuXG5cdHB1YmxpYyBwcmVwYXJlT3V0cHV0cyhjaGFuZ2U/OiB7IHZhbHVlOiBiaWdpbnQgfSk6IGFueSB7XG5cdFx0aWYgKGNoYW5nZT8udmFsdWUpIHtcblx0XHRcdHRoaXMuX291dHB1dHMucHVzaCh7XG5cdFx0XHRcdHBraDogdGhpcy5faW5wdXRzWzBdLnNpZ25lcixcblx0XHRcdFx0dmFsdWU6IGNoYW5nZS52YWx1ZSxcblx0XHRcdFx0dGltZV9sb2NrOiAwLFxuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIHJlc2V0VGFyZ2V0KHRhcmdldDogRGF0YVJlcXVlc3RQYXJhbXMpOiBhbnkge1xuXHRcdHRoaXMuX2NoYW5nZSA9IDBuO1xuXHRcdHRoaXMuX2NvdmVyZWQgPSAwbjtcblx0XHR0aGlzLl9mZWVzID0gMG47XG5cdFx0dGhpcy5faW5wdXRzID0gW107XG5cdFx0dGhpcy5fb3V0cHV0cyA9IFtdO1xuXHRcdHRoaXMuX3RhcmdldCA9IHRhcmdldDtcblx0XHRpZiAodGhpcy5kcm9TTEE/LmNvbGxhdGVyYWwgJiYgdGhpcy5kcm9TTEEuY29sbGF0ZXJhbCA8IERhdGFSZXF1ZXN0UGF5bG9hZC5NSU5fQ09MTEFURVJBTCkge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcblx0XHRcdFx0YCR7dGhpcy5jb25zdHJ1Y3Rvci5uYW1lfTogd2l0bmVzc2luZyBjb2xsYXRlcmFsIGJlbG93IG1pbmltdW06ICR7dGhpcy5kcm9TTEEuY29sbGF0ZXJhbH0gPCAke1xuXHRcdFx0XHRcdERhdGFSZXF1ZXN0UGF5bG9hZC5NSU5fQ09MTEFURVJBTFxuXHRcdFx0XHR9YCxcblx0XHRcdCk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLnRlbXBsYXRlKSB7XG5cdFx0XHRjb25zdCBhcmdzID0gdGFyZ2V0Py5hcmdzO1xuXHRcdFx0aWYgKGFyZ3MgPT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IG5vIHRlbXBsYXRlIGFyZ3Mgd2VyZSBwYXNzZWQuYCk7XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBhcmdzID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRcdHRoaXMuX3JlcXVlc3QgPSB0aGlzLnRlbXBsYXRlLmJ1aWxkUmFkb25SZXF1ZXN0KFthcmdzXSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLl9yZXF1ZXN0ID0gdGhpcy50ZW1wbGF0ZS5idWlsZFJhZG9uUmVxdWVzdChhcmdzKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0ZGVsZXRlIHRoaXMuX3ByaW9yaXRpZXM7XG5cdH1cblxuXHRwdWJsaWMgdG9KU09OKGh1bWFuaXplID0gZmFsc2UpOiBhbnkge1xuXHRcdGNvbnN0IGRyb1NMQSA9IHRoaXMuZHJvU0xBO1xuXHRcdHJldHVybiB7XG5cdFx0XHRpbnB1dHM6IHRoaXMuaW5wdXRzLm1hcCgodXR4bykgPT4gKHsgb3V0cHV0X3BvaW50ZXI6IHV0eG8ub3V0cHV0X3BvaW50ZXIgfSkpLFxuXHRcdFx0b3V0cHV0czogdGhpcy5vdXRwdXRzLm1hcCgodnRvKSA9PiAoe1xuXHRcdFx0XHRwa2g6IHZ0by5wa2gsXG5cdFx0XHRcdHRpbWVfbG9jazogdnRvLnRpbWVfbG9jayxcblx0XHRcdFx0dmFsdWU6IHZ0by52YWx1ZS50b1N0cmluZygpLFxuXHRcdFx0fSkpLFxuXHRcdFx0ZHJfb3V0cHV0OiB7XG5cdFx0XHRcdC4uLih0aGlzLl9yZXF1ZXN0ID8geyBkYXRhX3JlcXVlc3Q6IHRoaXMuX3JlcXVlc3QudG9KU09OKGh1bWFuaXplKSB9IDoge30pLFxuXHRcdFx0XHRjb21taXRfYW5kX3JldmVhbF9mZWU6IGRyb1NMQT8uY29tbWl0QW5kUmV2ZWFsRmVlLFxuXHRcdFx0XHRtaW5fY29uc2Vuc3VzX3BlcmNlbnRhZ2U6IGRyb1NMQT8ubWluQ29uc2Vuc3VzUGVyY2VudGFnZSxcblx0XHRcdFx0d2l0bmVzc2VzOiBkcm9TTEE/LndpdG5lc3Nlcyxcblx0XHRcdFx0d2l0bmVzc19yZXdhcmQ6IGRyb1NMQT8ud2l0bmVzc1Jld2FyZCxcblx0XHRcdFx0Y29sbGF0ZXJhbDogZHJvU0xBPy5jb2xsYXRlcmFsLFxuXHRcdFx0fSxcblx0XHR9O1xuXHR9XG5cblx0cHVibGljIHRvUHJvdG9idWYoKTogYW55IHtcblx0XHRpZiAodGhpcy5wcmVwYXJlZCAmJiB0aGlzLl90YXJnZXQgJiYgdGhpcy5fcmVxdWVzdCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0aW5wdXRzOiB0aGlzLmlucHV0cy5tYXAoKHV0eG8pID0+IHtcblx0XHRcdFx0XHRjb25zdCB0cmFuc2FjdGlvbklkID0gdXR4by5vdXRwdXRfcG9pbnRlci5zcGxpdChcIjpcIilbMF07XG5cdFx0XHRcdFx0Y29uc3Qgb3V0cHV0SW5kZXggPSBwYXJzZUludCh1dHhvLm91dHB1dF9wb2ludGVyLnNwbGl0KFwiOlwiKVsxXSwgMTApO1xuXHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRvdXRwdXRQb2ludGVyOiB7XG5cdFx0XHRcdFx0XHRcdHRyYW5zYWN0aW9uSWQ6IHsgU0hBMjU2OiBBcnJheS5mcm9tKGZyb21IZXhTdHJpbmcodHJhbnNhY3Rpb25JZCkpIH0sXG5cdFx0XHRcdFx0XHRcdC4uLihvdXRwdXRJbmRleCA+IDAgPyB7IG91dHB1dEluZGV4IH0gOiB7fSksXG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdH0pLFxuXHRcdFx0XHRvdXRwdXRzOiB0aGlzLm91dHB1dHMubWFwKCh2dG8pID0+ICh7XG5cdFx0XHRcdFx0cGtoOiB7IGhhc2g6IEFycmF5LmZyb20oUHVibGljS2V5SGFzaC5mcm9tQmVjaDMyKHZ0by5wa2gpLnRvQnl0ZXMyMCgpKSB9LFxuXHRcdFx0XHRcdHZhbHVlOiBMb25nLmZyb21WYWx1ZSh2dG8udmFsdWUpLFxuXHRcdFx0XHRcdC4uLih2dG8udGltZV9sb2NrID4gMCA/IHsgdGltZUxvY2s6IHZ0by50aW1lX2xvY2sgfSA6IHt9KSxcblx0XHRcdFx0fSkpLFxuXHRcdFx0XHRkck91dHB1dDogdGhpcy5fdG9Eck91dHB1dFByb3RvYnVmKCksXG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyB2YWxpZGF0ZVRhcmdldCh0YXJnZXQ/OiBhbnkpOiBEYXRhUmVxdWVzdFBhcmFtcyB8IHVuZGVmaW5lZCB7XG5cdFx0dGFyZ2V0ID0gdGhpcy5fY2xlYW5UYXJnZXRFeHRyYXModGFyZ2V0KTtcblx0XHRpZiAodGFyZ2V0ICYmIE9iamVjdC5rZXlzKHRhcmdldCkubGVuZ3RoID4gMCkge1xuXHRcdFx0aWYgKFxuXHRcdFx0XHQhKFxuXHRcdFx0XHRcdHRhcmdldCAmJlxuXHRcdFx0XHRcdCghdGFyZ2V0Py5mZWVzIHx8XG5cdFx0XHRcdFx0XHQodGFyZ2V0LmZlZXMgaW5zdGFuY2VvZiBDb2lucyAmJiAodGFyZ2V0LmZlZXMgYXMgQ29pbnMpLnBlZHJvcyA+IDApIHx8XG5cdFx0XHRcdFx0XHRPYmplY3QudmFsdWVzKFRyYW5zYWN0aW9uUHJpb3JpdHkpLmluY2x1ZGVzKHRhcmdldC5mZWVzKSkgJiZcblx0XHRcdFx0XHQodGFyZ2V0Py53aXRuZXNzZXMgfHwgdGFyZ2V0Py53aXRuZXNzZXMgPT09IHVuZGVmaW5lZCkgJiZcblx0XHRcdFx0XHQoIXRoaXMudGVtcGxhdGUgfHwgdGFyZ2V0Py5hcmdzKVxuXHRcdFx0XHQpXG5cdFx0XHQpIHtcblx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihgJHt0aGlzLmNvbnN0cnVjdG9yLm5hbWV9OiBpbnZhbGlkIG9wdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkodGFyZ2V0KX1gKTtcblx0XHRcdH0gZWxzZSBpZiAodGFyZ2V0Py53aXRuZXNzZXMpIHtcblx0XHRcdFx0aWYgKHR5cGVvZiB0YXJnZXQud2l0bmVzc2VzID09PSBcIm9iamVjdFwiKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcblx0XHRcdFx0XHRcdGAke3RoaXMuY29uc3RydWN0b3IubmFtZX06IGV4cGxpY2l0IHdpdG5lc3NpbmcgY29tbWl0dGVlcyBub3QgeWV0IHN1cHBvcnRlZDogJHt0YXJnZXQud2l0bmVzc2VzfWAsXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0YXJnZXQud2l0bmVzc2VzID0gcGFyc2VJbnQodGFyZ2V0LndpdG5lc3NlcyBhcyBzdHJpbmcsIDEwKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0YXJnZXQgYXMgRGF0YVJlcXVlc3RQYXJhbXM7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIF9jbGVhblRhcmdldEV4dHJhcyh0YXJnZXQ/OiBhbnkpOiBhbnkge1xuXHRcdGlmICh0YXJnZXQpIHtcblx0XHRcdHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0XHRcdE9iamVjdC5lbnRyaWVzKHRhcmdldCkuZmlsdGVyKChba2V5XSkgPT4gW1wiYXJnc1wiLCBcImZlZXNcIiwgXCJtYXhSZXN1bHRTaXplXCIsIFwid2l0bmVzc2VzXCJdLmluY2x1ZGVzKGtleSkpLFxuXHRcdFx0KTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgX2VzdGltYXRlTmV0d29ya0ZlZXMoXG5cdFx0cHJvdmlkZXI6IElKc29uUnBjUHJvdmlkZXIsXG5cdFx0cHJpb3JpdHkgPSBUcmFuc2FjdGlvblByaW9yaXR5Lk1lZGl1bSxcblx0KTogUHJvbWlzZTxiaWdpbnQ+IHtcblx0XHR0aGlzLl9wcmlvcml0aWVzID0gYXdhaXQgcHJvdmlkZXIucHJpb3JpdGllcygpO1xuXHRcdHJldHVybiBCaWdJbnQoXG5cdFx0XHRNYXRoLmZsb29yKFxuXHRcdFx0XHR0aGlzLl9wcmlvcml0aWVzW2BkcnRfJHtwcmlvcml0eX1gXS5wcmlvcml0eSAqXG5cdFx0XHRcdFx0KHRoaXMuY292ZXJlZFxuXHRcdFx0XHRcdFx0PyB0aGlzLndlaWdodFxuXHRcdFx0XHRcdFx0OiB0aGlzLndlaWdodCArXG5cdFx0XHRcdFx0XHRcdC8vIGVzdGltYXRlIHdlaWdodCBvZiBvbmUgc2luZ2xlIG91dHB1dCBpbiBjYXNlIHRoZXJlIHdhcyBjaGFuZ2UgdG8gcGF5IGJhY2tcblx0XHRcdFx0XHRcdFx0VFhfV0VJR0hUX09VVFBVVF9TSVpFKSxcblx0XHRcdCksXG5cdFx0KTtcblx0fVxuXG5cdHByb3RlY3RlZCBfZmVlczJVbml0YXJ5Q29tbWl0UmV2ZWFsUmV3YXJkKGZlZXM6IGJpZ2ludCwgd2l0bmVzc2VzOiBudW1iZXIpOiBiaWdpbnQge1xuXHRcdHJldHVybiBmZWVzIC8gQmlnSW50KHdpdG5lc3NlcykgfHwgMW47XG5cdH1cblxuXHRwcm90ZWN0ZWQgX2ZlZXMyVW5pdGFyeVJld2FyZChmZWVzOiBiaWdpbnQsIF93aXRuZXNzZXM6IG51bWJlcik6IGJpZ2ludCB7XG5cdFx0cmV0dXJuIEJpZ01hdGgubWF4KGZlZXMsIEJpZ0ludChNYXRoLmNlaWwoTnVtYmVyKERhdGFSZXF1ZXN0UGF5bG9hZC5NSU5fQ09MTEFURVJBTCAvIENPTExBVEVSQUxfUkFUSU8pKSkpO1xuXHR9XG5cdHByb3RlY3RlZCBfZmVlczJWYWx1ZShmZWVzOiBiaWdpbnQsIHdpdG5lc3NlczogbnVtYmVyKTogYmlnaW50IHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0QmlnSW50KHdpdG5lc3NlcykgKlxuXHRcdFx0KHRoaXMuX2ZlZXMyVW5pdGFyeVJld2FyZChmZWVzLCB3aXRuZXNzZXMpICsgMm4gKiB0aGlzLl9mZWVzMlVuaXRhcnlDb21taXRSZXZlYWxSZXdhcmQoZmVlcywgd2l0bmVzc2VzKSlcblx0XHQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIF90b0RyT3V0cHV0UHJvdG9idWYoKTogYW55IHtcblx0XHRpZiAodGhpcy5fcmVxdWVzdCkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0Li4udGhpcy5kcm9TTEEsXG5cdFx0XHRcdGRhdGFSZXF1ZXN0OiB0aGlzLl9yZXF1ZXN0LnRvUHJvdG9idWYoKSxcblx0XHRcdH07XG5cdFx0fVxuXHR9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StakePayload.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/payloads/StakePayload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACN,KAAK,EAGL,KAAK,mBAAmB,EAExB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACpD,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAMF,qBAAa,YAAa,SAAQ,0BAA0B,CAAC,kBAAkB,CAAC;IAC/E,OAAc,UAAU,SAAS;IACjC,OAAc,SAAS,SAAmB;IAE1C,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,QAAQ,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"StakePayload.d.ts","sourceRoot":"","sources":["../../../../../src/lib/crypto/payloads/StakePayload.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACN,KAAK,EAGL,KAAK,mBAAmB,EAExB,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,GAAG;IACpD,aAAa,EAAE,SAAS,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,mBAAmB,CAAC;CAChC,CAAC;AAMF,qBAAa,YAAa,SAAQ,0BAA0B,CAAC,kBAAkB,CAAC;IAC/E,OAAc,UAAU,SAAS;IACjC,OAAc,SAAS,SAAmB;IAE1C,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,IAAW,KAAK,IAAI,KAAK,CAExB;IAED,IAAW,MAAM,IAAI,MAAM,CAE1B;IAEM,WAAW,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,OAAO;;;;;IAQzD,MAAM,CAAC,SAAS,UAAQ,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,GAAG;IAgCjD,UAAU,IAAI,GAAG;IA6CjB,cAAc,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,kBAAkB,GAAG,SAAS;IAuCnE,SAAS,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,GAAG;cAQ/B,oBAAoB,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,sBAA6B,GACnC,OAAO,CAAC,MAAM,CAAC;CAkBlB"}
|