@witnet/sdk 1.2.6 → 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 -114
- 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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { default as axios } from "axios";
|
|
2
|
-
import { PublicKey, PublicKeyHash, RecoverableSignature
|
|
2
|
+
import { PublicKey, PublicKeyHash, RecoverableSignature } from "../crypto/types.js";
|
|
3
3
|
import * as utils from "../utils.js";
|
|
4
|
-
import { JsonRpcProvider, JsonRpcProviderError
|
|
4
|
+
import { JsonRpcProvider, JsonRpcProviderError } from "./provider.js";
|
|
5
5
|
import { Methods, } from "./types.js";
|
|
6
6
|
function isPrivateURL(url) {
|
|
7
7
|
const [, host] = utils.parseURL(url);
|
|
@@ -21,12 +21,7 @@ export class JsonRpcNodeFarm extends JsonRpcProvider {
|
|
|
21
21
|
.then(async (addresses) => {
|
|
22
22
|
const promises = Object.entries(addresses).map(async ([url, pkh]) => [
|
|
23
23
|
url,
|
|
24
|
-
[
|
|
25
|
-
pkh,
|
|
26
|
-
pkh instanceof Error
|
|
27
|
-
? undefined
|
|
28
|
-
: await this.callApiMethod(url, method, { pkh, ...params }),
|
|
29
|
-
],
|
|
24
|
+
[pkh, pkh instanceof Error ? undefined : await this.callApiMethod(url, method, { pkh, ...params })],
|
|
30
25
|
]);
|
|
31
26
|
return Promise.all(promises);
|
|
32
27
|
})
|
|
@@ -45,12 +40,7 @@ export class JsonRpcNodeFarm extends JsonRpcProvider {
|
|
|
45
40
|
.then(async (addresses) => {
|
|
46
41
|
const promises = Object.entries(addresses).map(async ([url, pkh]) => [
|
|
47
42
|
url,
|
|
48
|
-
[
|
|
49
|
-
pkh,
|
|
50
|
-
pkh instanceof Error
|
|
51
|
-
? undefined
|
|
52
|
-
: await this.callApiMethod(url, method, params),
|
|
53
|
-
],
|
|
43
|
+
[pkh, pkh instanceof Error ? undefined : await this.callApiMethod(url, method, params)],
|
|
54
44
|
]);
|
|
55
45
|
return Promise.all(promises);
|
|
56
46
|
})
|
|
@@ -76,10 +66,7 @@ export class JsonRpcNodeFarm extends JsonRpcProvider {
|
|
|
76
66
|
})
|
|
77
67
|
.then((response) => {
|
|
78
68
|
if (response?.error || response?.data?.error) {
|
|
79
|
-
return [
|
|
80
|
-
url,
|
|
81
|
-
new JsonRpcProviderError(method, params, response?.error || response?.data?.error),
|
|
82
|
-
];
|
|
69
|
+
return [url, new JsonRpcProviderError(method, params, response?.error || response?.data?.error)];
|
|
83
70
|
}
|
|
84
71
|
else {
|
|
85
72
|
return [url, response?.data?.result];
|
|
@@ -138,10 +125,7 @@ export class JsonRpcNodeFarm extends JsonRpcProvider {
|
|
|
138
125
|
return [url, [pkh, raw]];
|
|
139
126
|
}
|
|
140
127
|
else {
|
|
141
|
-
return [
|
|
142
|
-
url,
|
|
143
|
-
[pkh, raw ? PublicKey.fromUint8Array(raw) : undefined],
|
|
144
|
-
];
|
|
128
|
+
return [url, [pkh, raw ? PublicKey.fromUint8Array(raw) : undefined]];
|
|
145
129
|
}
|
|
146
130
|
})));
|
|
147
131
|
}
|
|
@@ -208,11 +192,7 @@ export class JsonRpcNodeFarm extends JsonRpcProvider {
|
|
|
208
192
|
withdrawers[entry.key.withdrawer][2] += 1;
|
|
209
193
|
}
|
|
210
194
|
else {
|
|
211
|
-
withdrawers[entry.key.withdrawer] = [
|
|
212
|
-
entry.value.coins,
|
|
213
|
-
entry.value.nonce,
|
|
214
|
-
1,
|
|
215
|
-
];
|
|
195
|
+
withdrawers[entry.key.withdrawer] = [entry.value.coins, entry.value.nonce, 1];
|
|
216
196
|
}
|
|
217
197
|
});
|
|
218
198
|
}
|
|
@@ -261,4 +241,4 @@ export class JsonRpcNodeFarm extends JsonRpcProvider {
|
|
|
261
241
|
return this.batchApiMethod(Methods.Rewind, [epoch]);
|
|
262
242
|
}
|
|
263
243
|
}
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JwYy9ub2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN6QyxPQUFPLEVBQ04sU0FBUyxFQUNULGFBQWEsRUFFYixvQkFBb0IsR0FDcEIsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBRU4sZUFBZSxFQUNmLG9CQUFvQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRU4sT0FBTyxHQU1QLE1BQU0sWUFBWSxDQUFDO0FBc0JwQixTQUFTLFlBQVksQ0FBQyxHQUFXO0lBQ2hDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsT0FBTyxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxNQUFNLE9BQU8sZUFDWixTQUFRLGVBQWU7SUFHdkIsWUFBWSxHQUFZO1FBQ3ZCLEtBQUssQ0FDSixHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsSUFBSSx3QkFBd0IsQ0FDeEUsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUN4QixNQUFNLEtBQUssQ0FDViwyRUFBMkUsR0FBRyxFQUFFLENBQ2hGLENBQUM7WUFDSCxDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRVMsS0FBSyxDQUFDLGlCQUFpQixDQUNo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S0FBWTtRQUMvQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQVUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBheGlvcyB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0IHtcblx0UHVibGljS2V5LFxuXHRQdWJsaWNLZXlIYXNoLFxuXHR0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdFJlY292ZXJhYmxlU2lnbmF0dXJlLFxufSBmcm9tIFwiLi4vY3J5cHRvL3R5cGVzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEVwb2NoLCBIZXhTdHJpbmcsIE5vbmNlIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcbmltcG9ydCB7XG5cdHR5cGUgSUpzb25ScGNQcm92aWRlcixcblx0SnNvblJwY1Byb3ZpZGVyLFxuXHRKc29uUnBjUHJvdmlkZXJFcnJvcixcbn0gZnJvbSBcIi4vcHJvdmlkZXIuanNcIjtcbmltcG9ydCB7XG5cdHR5cGUgQmFsYW5jZTIsXG5cdE1ldGhvZHMsXG5cdHR5cGUgTm9kZVN0YXRzLFxuXHR0eXBlIFBlZXJBZGRyLFxuXHR0eXBlIFN0YWtlQXV0aG9yaXphdGlvbixcblx0dHlwZSBTdGFrZUVudHJ5LFxuXHR0eXBlIFN5bmNTdGF0dXMsXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUpzb25ScGNOb2RlRmFybSBleHRlbmRzIElKc29uUnBjUHJvdmlkZXIge1xuXHRhZGRyZXNzZXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBQdWJsaWNLZXlIYXNoU3RyaW5nPj47XG5cdGJhbGFuY2VzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgW1B1YmxpY0tleUhhc2hTdHJpbmcsIEJhbGFuY2UyXT4+O1xuXHRtYXN0ZXJLZXlzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgW1B1YmxpY0tleUhhc2hTdHJpbmcsIHN0cmluZ10+Pjtcblx0cHVibGljS2V5cygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBQdWJsaWNLZXldPj47XG5cdHN5bmNTdGF0dXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBTeW5jU3RhdHVzPj47XG5cblx0cGVlcnModmFsaWRhdG9yPzogUHVibGljS2V5SGFzaFN0cmluZyk6IFByb21pc2U8QXJyYXk8UGVlckFkZHI+Pjtcblx0c3RhdHMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBOb2RlU3RhdHM+Pjtcblx0d2l0aGRyYXdlcnMoKTogUHJvbWlzZTxSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgW2JpZ2ludCwgTm9uY2UsIG51bWJlcl0+PjtcblxuXHRhZGRQZWVycyhwZWVyczogQXJyYXk8c3RyaW5nPik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+O1xuXHRhdXRob3JpemVTdGFrZXMoXG5cdFx0d2l0aGRyYXdlcjogUHVibGljS2V5SGFzaFN0cmluZyxcblx0KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgSGV4U3RyaW5nXT4+O1xuXHRjbGVhclBlZXJzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+O1xuXHRpbml0aWFsaXplUGVlcnMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj47XG5cdHJld2luZChlcG9jaDogRXBvY2gpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+Pjtcbn1cblxuZnVuY3Rpb24gaXNQcml2YXRlVVJMKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG5cdGNvbnN0IFssIGhvc3RdID0gdXRpbHMucGFyc2VVUkwodXJsKTtcblx0cmV0dXJuIHV0aWxzLmlwSXNQcml2YXRlT3JMb2NhbGhvc3QoaG9zdC5zcGxpdChcIjpcIilbMF0pO1xufVxuXG5leHBvcnQgY2xhc3MgSnNvblJwY05vZGVGYXJtXG5cdGV4dGVuZHMgSnNvblJwY1Byb3ZpZGVyXG5cdGltcGxlbWVudHMgSUpzb25ScGNOb2RlRmFybVxue1xuXHRjb25zdHJ1Y3Rvcih1cmw/OiBzdHJpbmcpIHtcblx0XHRzdXBlcihcblx0XHRcdHVybCB8fCBwcm9jZXNzLmVudi5XSVRORVRfVE9PTEtJVF9GQVJNX05PREVTIHx8IFwiaHR0cDovLzEyNy4wLjAuMToyMTMzOVwiLFxuXHRcdCk7XG5cdFx0dGhpcy5lbmRwb2ludHMuZm9yRWFjaCgodXJsKSA9PiB7XG5cdFx0XHRpZiAoIWlzUHJpdmF0ZVVSTCh1cmwpKSB7XG5cdFx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRcdGBXaXRuZXQuSnNvblJwY05vZGVGYXJtOiBvbmx5IGxvY2FsIGhvc3Qgb3IgcHJpdmF0ZSBJUHMgY2FuIGJlIHByb3ZpZGVkOiAke3VybH1gLFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIGJhdGNoQXBpUGtoTWV0aG9kPFQ+KFxuXHRcdG1ldGhvZDogc3RyaW5nLFxuXHRcdHBhcmFtcz86IGFueSxcblx0KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgVF0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2VzKClcblx0XHRcdC50aGVuKGFzeW5jIChhZGRyZXNzZXM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgc3RyaW5nPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKGFzeW5jIChbdXJsLCBwa2hdKSA9PiBbXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdFtcblx0XHRcdFx0XHRcdHBraCxcblx0XHRcdFx0XHRcdHBraCBpbnN0YW5jZW9mIEVycm9yXG5cdFx0XHRcdFx0XHRcdD8gdW5kZWZpbmVkXG5cdFx0XHRcdFx0XHRcdDogYXdhaXQgdGhpcy5jYWxsQXBpTWV0aG9kPFQ+KHVybCwgbWV0aG9kLCB7IHBraCwgLi4ucGFyYW1zIH0pLFxuXHRcdFx0XHRcdF0sXG5cdFx0XHRcdF0pO1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChlbnRyaWVzKSA9PlxuXHRcdFx0XHRPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0XHRcdFx0ZW50cmllcy5tYXAoKFt1cmwsIFtwa2gsIHZhbHVlXV0pID0+IHtcblx0XHRcdFx0XHRcdGlmICh2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIEVycm9yKSB7XG5cdFx0XHRcdFx0XHRcdGlmICgodmFsdWUgYXMgSnNvblJwY1Byb3ZpZGVyRXJyb3IpPy5lcnJvcj8ubWVzc2FnZSkge1xuXHRcdFx0XHRcdFx0XHRcdHZhbHVlID0gbmV3IEVycm9yKFxuXHRcdFx0XHRcdFx0XHRcdFx0KHZhbHVlIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UsXG5cdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHRkZWxldGUgdmFsdWUuc3RhY2s7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHJldHVybiBbdXJsLCBbcGtoLCB2YWx1ZSB8fCBcIlwiXV07XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCksXG5cdFx0XHQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIGJhdGNoQXBpUGtoTWV0aG9kTm9Qa2g8VD4oXG5cdFx0bWV0aG9kOiBzdHJpbmcsXG5cdFx0Li4ucGFyYW1zOiBBcnJheTxhbnk+XG5cdCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgW1B1YmxpY0tleUhhc2hTdHJpbmcsIFRdPj4ge1xuXHRcdHJldHVybiB0aGlzLmFkZHJlc3NlcygpXG5cdFx0XHQudGhlbihhc3luYyAoYWRkcmVzc2VzOiBSZWNvcmQ8c3RyaW5nLCBFcnJvciB8IHN0cmluZz4pID0+IHtcblx0XHRcdFx0Y29uc3QgcHJvbWlzZXMgPSBPYmplY3QuZW50cmllcyhhZGRyZXNzZXMpLm1hcChhc3luYyAoW3VybCwgcGtoXSkgPT4gW1xuXHRcdFx0XHRcdHVybCxcblx0XHRcdFx0XHRbXG5cdFx0XHRcdFx0XHRwa2gsXG5cdFx0XHRcdFx0XHRwa2ggaW5zdGFuY2VvZiBFcnJvclxuXHRcdFx0XHRcdFx0XHQ/IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0XHQ6IGF3YWl0IHRoaXMuY2FsbEFwaU1ldGhvZDxUPih1cmwsIG1ldGhvZCwgcGFyYW1zKSxcblx0XHRcdFx0XHRdLFxuXHRcdFx0XHRdKTtcblx0XHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoZW50cmllcykgPT5cblx0XHRcdFx0T2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdGVudHJpZXMubWFwKChbdXJsLCBbcGtoLCB2YWx1ZV1dKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAodmFsdWUgJiYgdmFsdWUgaW5zdGFuY2VvZiBFcnJvcikge1xuXHRcdFx0XHRcdFx0XHRpZiAoKHZhbHVlIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpIHtcblx0XHRcdFx0XHRcdFx0XHR2YWx1ZSA9IG5ldyBFcnJvcihcblx0XHRcdFx0XHRcdFx0XHRcdCh2YWx1ZSBhcyBKc29uUnBjUHJvdmlkZXJFcnJvcik/LmVycm9yPy5tZXNzYWdlLFxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0ZGVsZXRlIHZhbHVlLnN0YWNrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRyZXR1cm4gW3VybCwgW3BraCwgdmFsdWUgfHwgXCJcIl1dO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHQpLFxuXHRcdFx0KTtcblx0fVxuXG5cdHByb3RlY3RlZCBhc3luYyBiYXRjaEFwaU1ldGhvZDxUPihcblx0XHRtZXRob2Q6IHN0cmluZyxcblx0XHRwYXJhbXM/OiBBcnJheTxhbnk+IHwgYW55LFxuXHQpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFQ+PiB7XG5cdFx0Y29uc3QgcHJvbWlzZXMgPSB0aGlzLmVuZHBvaW50cy5tYXAoYXN5bmMgKHVybCkgPT5cblx0XHRcdGF4aW9zXG5cdFx0XHRcdC5wb3N0KFxuXHRcdFx0XHRcdHVybCxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRqc29ucnBjOiBcIjIuMFwiLFxuXHRcdFx0XHRcdFx0aWQ6IERhdGUubm93KCksXG5cdFx0XHRcdFx0XHRtZXRob2QsXG5cdFx0XHRcdFx0XHRwYXJhbXMsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRoZWFkZXJzOiB0aGlzLl9oZWFkZXJzLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdClcblx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcblx0XHRcdFx0XHRpZiAocmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdFx0XHRuZXcgSnNvblJwY1Byb3ZpZGVyRXJyb3IoXG5cdFx0XHRcdFx0XHRcdFx0bWV0aG9kLFxuXHRcdFx0XHRcdFx0XHRcdHBhcmFtcyxcblx0XHRcdFx0XHRcdFx0XHRyZXNwb25zZT8uZXJyb3IgfHwgcmVzcG9uc2U/LmRhdGE/LmVycm9yLFxuXHRcdFx0XHRcdFx0XHQpLFxuXHRcdFx0XHRcdFx0XTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIHJlc3BvbnNlPy5kYXRhPy5yZXN1bHQgYXMgVF07XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goKGV4Y2VwdGlvbjogYW55KSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoXG5cdFx0XHRcdFx0XHRleGNlcHRpb24/Lm1lc3NhZ2UgfHwgZXhjZXB0aW9uPy5lcnJvciB8fCBleGNlcHRpb24sXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRkZWxldGUgZXJyb3Iuc3RhY2s7XG5cdFx0XHRcdFx0cmV0dXJuIFt1cmwsIGVycm9yXTtcblx0XHRcdFx0fSksXG5cdFx0KTtcblx0XHRyZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKHZhbHVlcykgPT4gT2JqZWN0LmZyb21FbnRyaWVzKHZhbHVlcykpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIGNhbGxBcGlNZXRob2Q8VD4oXG5cdFx0dXJsOiBzdHJpbmcsXG5cdFx0bWV0aG9kOiBzdHJpbmcsXG5cdFx0cGFyYW1zPzogQXJyYXk8YW55PiB8IGFueSxcblx0KTogUHJvbWlzZTxFcnJvciB8IGFueT4ge1xuXHRcdHJldHVybiBheGlvc1xuXHRcdFx0LnBvc3QoXG5cdFx0XHRcdHVybCxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGpzb25ycGM6IFwiMi4wXCIsXG5cdFx0XHRcdFx0aWQ6IERhdGUubm93KCksXG5cdFx0XHRcdFx0bWV0aG9kLFxuXHRcdFx0XHRcdHBhcmFtcyxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGhlYWRlcnM6IHRoaXMuX2hlYWRlcnMsXG5cdFx0XHRcdH0sXG5cdFx0XHQpXG5cdFx0XHQudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xuXHRcdFx0XHRpZiAocmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcikge1xuXHRcdFx0XHRcdGNvbnN0IGVycm9yID0gbmV3IEpzb25ScGNQcm92aWRlckVycm9yKFxuXHRcdFx0XHRcdFx0bWV0aG9kLFxuXHRcdFx0XHRcdFx0cGFyYW1zLFxuXHRcdFx0XHRcdFx0cmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcixcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGRlbGV0ZSBlcnJvcj8uc3RhY2s7XG5cdFx0XHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiByZXNwb25zZT8uZGF0YT8ucmVzdWx0IGFzIFQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goKGV4Y2VwdGlvbjogYW55KSA9PiB7XG5cdFx0XHRcdGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFxuXHRcdFx0XHRcdGV4Y2VwdGlvbj8ubWVzc2FnZSB8fCBleGNlcHRpb24/LmVycm9yIHx8IGV4Y2VwdGlvbixcblx0XHRcdFx0KTtcblx0XHRcdFx0ZGVsZXRlIGVycm9yPy5zdGFjaztcblx0XHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdFx0fSk7XG5cdH1cblxuXHQvLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0cHVibGljIGFzeW5jIGFkZHJlc3NlcygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFB1YmxpY0tleUhhc2hTdHJpbmc+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlNZXRob2Q8UHVibGljS2V5SGFzaFN0cmluZz4oTWV0aG9kcy5HZXRQa2gpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGJhbGFuY2VzKCk6IFByb21pc2U8XG5cdFx0UmVjb3JkPHN0cmluZywgW1B1YmxpY0tleUhhc2hTdHJpbmcsIEJhbGFuY2UyXT5cblx0PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlQa2hNZXRob2Q8QmFsYW5jZTI+KE1ldGhvZHMuR2V0QmFsYW5jZTIpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIG1hc3RlcktleXMoKTogUHJvbWlzZTxcblx0XHRSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgc3RyaW5nXT5cblx0PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlQa2hNZXRob2ROb1BraDxzdHJpbmc+KE1ldGhvZHMuTWFzdGVyS2V5RXhwb3J0KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBwdWJsaWNLZXlzKCk6IFByb21pc2U8XG5cdFx0UmVjb3JkPHN0cmluZywgW1B1YmxpY0tleUhhc2hTdHJpbmcsIFB1YmxpY0tleV0+XG5cdD4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpUGtoTWV0aG9kTm9Qa2g8VWludDhBcnJheT4oTWV0aG9kcy5HZXRQdWJsaWNLZXkpLnRoZW4oXG5cdFx0XHQocmVzdWx0czogUmVjb3JkPHN0cmluZywgW1B1YmxpY0tleUhhc2hTdHJpbmcsIEVycm9yIHwgVWludDhBcnJheV0+KSA9PlxuXHRcdFx0XHRPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0XHRcdFx0T2JqZWN0LmVudHJpZXMocmVzdWx0cykubWFwKChbdXJsLCBbcGtoLCByYXddXSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHJhdyAmJiByYXcgaW5zdGFuY2VvZiBFcnJvcikge1xuXHRcdFx0XHRcdFx0XHRpZiAoKHJhdyBhcyBKc29uUnBjUHJvdmlkZXJFcnJvcik/LmVycm9yPy5tZXNzYWdlKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmF3ID0gbmV3IEVycm9yKChyYXcgYXMgSnNvblJwY1Byb3ZpZGVyRXJyb3IpPy5lcnJvcj8ubWVzc2FnZSk7XG5cdFx0XHRcdFx0XHRcdFx0ZGVsZXRlIHJhdy5zdGFjaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gW3VybCwgW3BraCwgcmF3XV07XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHRcdFx0XHRcdHVybCxcblx0XHRcdFx0XHRcdFx0XHRbcGtoLCByYXcgPyBQdWJsaWNLZXkuZnJvbVVpbnQ4QXJyYXkocmF3KSA6IHVuZGVmaW5lZF0sXG5cdFx0XHRcdFx0XHRcdF07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCksXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBwZWVycygpOiBQcm9taXNlPEFycmF5PFBlZXJBZGRyPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPEFycmF5PFBlZXJBZGRyPj4oTWV0aG9kcy5QZWVycykudGhlbihcblx0XHRcdChyZXN1bHRzOiBSZWNvcmQ8c3RyaW5nLCBQZWVyQWRkcltdPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwZWVyczogUGVlckFkZHJbXSA9IFtdO1xuXHRcdFx0XHRPYmplY3QudmFsdWVzKHJlc3VsdHMpLmZvckVhY2goKG1vcmVQZWVyczogRXJyb3IgfCBQZWVyQWRkcltdKSA9PiB7XG5cdFx0XHRcdFx0aWYgKCEobW9yZVBlZXJzIGluc3RhbmNlb2YgRXJyb3IpKSB7XG5cdFx0XHRcdFx0XHRtb3JlUGVlcnMuZm9yRWFjaCgocGVlcikgPT4ge1xuXHRcdFx0XHRcdFx0XHRpZiAoIXBlZXJzLmluY2x1ZGVzKHBlZXIpKSB7XG5cdFx0XHRcdFx0XHRcdFx0cGVlcnMucHVzaChwZWVyKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdFx0cmV0dXJuIHBlZXJzO1xuXHRcdFx0fSxcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN0YXRzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgTm9kZVN0YXRzPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPE5vZGVTdGF0cz4oTWV0aG9kcy5Ob2RlU3RhdHMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN5bmNTdGF0dXMoKTogUHJvbWlzZTxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaU1ldGhvZDxTeW5jU3RhdHVzPihNZXRob2RzLlN5bmNTdGF0dXMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHdpdGhkcmF3ZXJzKFxuXHRcdGxpbWl0PzogbnVtYmVyLFxuXHRcdG9mZnNldD86IG51bWJlcixcblx0KTogUHJvbWlzZTxSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgW2JpZ2ludCwgTm9uY2UsIG51bWJlcl0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2VzKClcblx0XHRcdC50aGVuKGFzeW5jIChhZGRyZXNzZXM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgc3RyaW5nPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKFxuXHRcdFx0XHRcdGFzeW5jIChbdXJsLCB2YWxpZGF0b3JdKSA9PiBbXG5cdFx0XHRcdFx0XHR1cmwsXG5cdFx0XHRcdFx0XHR2YWxpZGF0b3IgaW5zdGFuY2VvZiBFcnJvclxuXHRcdFx0XHRcdFx0XHQ/IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0XHQ6IGF3YWl0IHRoaXMuY2FsbEFwaU1ldGhvZDxBcnJheTxTdGFrZUVudHJ5Pj4oXG5cdFx0XHRcdFx0XHRcdFx0XHR1cmwsXG5cdFx0XHRcdFx0XHRcdFx0XHRNZXRob2RzLlF1ZXJ5U3Rha2VzLFxuXHRcdFx0XHRcdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRmaWx0ZXI6IHsgdmFsaWRhdG9yIH0sXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHBhcmFtczoge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGxpbWl0LFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9mZnNldCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzaW5jZTogMCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRdLFxuXHRcdFx0XHQpO1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChlbnRyaWVzKSA9PlxuXHRcdFx0XHRPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0XHRcdFx0ZW50cmllcy5tYXAoKFt1cmwsIHN0YWtlc10pID0+IHtcblx0XHRcdFx0XHRcdGlmIChzdGFrZXMgJiYgc3Rha2VzIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKChzdGFrZXMgYXMgSnNvblJwY1Byb3ZpZGVyRXJyb3IpPy5lcnJvcj8ubWVzc2FnZSkge1xuXHRcdFx0XHRcdFx0XHRcdHN0YWtlcyA9IG5ldyBFcnJvcihcblx0XHRcdFx0XHRcdFx0XHRcdChzdGFrZXMgYXMgSnNvblJwY1Byb3ZpZGVyRXJyb3IpPy5lcnJvcj8ubWVzc2FnZSxcblx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSBzdGFrZXMuc3RhY2s7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmxdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHJldHVybiBbdXJsLCBzdGFrZXNdO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHQpLFxuXHRcdFx0KVxuXHRcdFx0LnRoZW4oKHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgQXJyYXk8U3Rha2VFbnRyeT4+KSA9PiB7XG5cdFx0XHRcdGNvbnN0IG1heCA9IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gKGEgPiBiID8gYSA6IGIpO1xuXHRcdFx0XHRjb25zdCB3aXRoZHJhd2VyczogUmVjb3JkPFxuXHRcdFx0XHRcdFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdFx0XHRcdFx0W2JpZ2ludCwgTm9uY2UsIG51bWJlcl1cblx0XHRcdFx0PiA9IHt9O1xuXHRcdFx0XHRPYmplY3QudmFsdWVzKHJlc3VsdHMpLmZvckVhY2goKG1vcmVFbnRyaWVzKSA9PiB7XG5cdFx0XHRcdFx0aWYgKG1vcmVFbnRyaWVzICYmICEobW9yZUVudHJpZXMgaW5zdGFuY2VvZiBFcnJvcikpIHtcblx0XHRcdFx0XHRcdG1vcmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmICh3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl0pIHtcblx0XHRcdFx0XHRcdFx0XHR3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl1bMF0gKz0gZW50cnkudmFsdWUuY29pbnM7XG5cdFx0XHRcdFx0XHRcdFx0d2l0aGRyYXdlcnNbZW50cnkua2V5LndpdGhkcmF3ZXJdWzFdID0gbWF4KFxuXHRcdFx0XHRcdFx0XHRcdFx0ZW50cnkudmFsdWUubm9uY2UsXG5cdFx0XHRcdFx0XHRcdFx0XHR3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl1bMV0sXG5cdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHR3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl1bMl0gKz0gMTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHR3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl0gPSBbXG5cdFx0XHRcdFx0XHRcdFx0XHRlbnRyeS52YWx1ZS5jb2lucyxcblx0XHRcdFx0XHRcdFx0XHRcdGVudHJ5LnZhbHVlLm5vbmNlLFxuXHRcdFx0XHRcdFx0XHRcdFx0MSxcblx0XHRcdFx0XHRcdFx0XHRdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKHdpdGhkcmF3ZXJzKS5zb3J0KChbLCBbYSwgLF1dLCBbLCBbYiwgLF1dKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoYSA+IGIpIHJldHVybiAxO1xuXHRcdFx0XHRcdFx0ZWxzZSBpZiAoYSA8IGIpIHJldHVybiAtMTtcblx0XHRcdFx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwdWJsaWMgYXN5bmMgYWRkUGVlcnMoXG5cdFx0cGVlcnM6IEFycmF5PHN0cmluZz4sXG5cdCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaU1ldGhvZDxib29sZWFuPihNZXRob2RzLkFkZFBlZXJzLCBwZWVycyk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgYXV0aG9yaXplU3Rha2VzKFxuXHRcdHdpdGhkcmF3ZXI6IFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgW1B1YmxpY0tleUhhc2hTdHJpbmcsIEhleFN0cmluZ10+PiB7XG5cdFx0Y29uc3QgbXNnID0gUHVibGljS2V5SGFzaC5mcm9tQmVjaDMyKHdpdGhkcmF3ZXIpLnRvQnl0ZXMzMigpO1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpUGtoTWV0aG9kTm9Qa2g8U3Rha2VBdXRob3JpemF0aW9uPihcblx0XHRcdE1ldGhvZHMuQXV0aG9yaXplU3Rha2UsXG5cdFx0XHR3aXRoZHJhd2VyLFxuXHRcdCkudGhlbihcblx0XHRcdChcblx0XHRcdFx0cmVjb3JkczogUmVjb3JkPFxuXHRcdFx0XHRcdHN0cmluZyxcblx0XHRcdFx0XHRbUHVibGljS2V5SGFzaFN0cmluZywgRXJyb3IgfCBTdGFrZUF1dGhvcml6YXRpb25dXG5cdFx0XHRcdD4sXG5cdFx0XHQpID0+XG5cdFx0XHRcdE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdFx0XHRPYmplY3QuZW50cmllcyhyZWNvcmRzKS5tYXAoKFt1cmwsIFtwa2gsIGF1dGhvcml6YXRpb25dXSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKGF1dGhvcml6YXRpb24gJiYgYXV0aG9yaXphdGlvbiBpbnN0YW5jZW9mIEVycm9yKSB7XG5cdFx0XHRcdFx0XHRcdGlmICgoYXV0aG9yaXphdGlvbiBhcyBKc29uUnBjUHJvdmlkZXJFcnJvcik/LmVycm9yPy5tZXNzYWdlKSB7XG5cdFx0XHRcdFx0XHRcdFx0YXV0aG9yaXphdGlvbiA9IG5ldyBFcnJvcihcblx0XHRcdFx0XHRcdFx0XHRcdChhdXRob3JpemF0aW9uIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UsXG5cdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHRkZWxldGUgYXV0aG9yaXphdGlvbi5zdGFjaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gW3VybCwgW3BraCwgYXV0aG9yaXphdGlvbl1dO1xuXHRcdFx0XHRcdFx0fSBlbHNlIGlmIChhdXRob3JpemF0aW9uKSB7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IHNpZ25hdHVyZSA9IFJlY292ZXJhYmxlU2lnbmF0dXJlLmZyb21LZXllZFNpZ25hdHVyZShcblx0XHRcdFx0XHRcdFx0XHRhdXRob3JpemF0aW9uLnNpZ25hdHVyZSxcblx0XHRcdFx0XHRcdFx0XHRtc2csXG5cdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGF1dGhjb2RlID1cblx0XHRcdFx0XHRcdFx0XHRzaWduYXR1cmUucHViS2V5Lmhhc2goKS50b0hleFN0cmluZygpICsgc2lnbmF0dXJlLnRvSGV4U3RyaW5nKCk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBbdXJsLCBbcGtoLCBhdXRoY29kZV1dO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHVuZGVmaW5lZF1dO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHQpLFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgY2xlYXJQZWVycygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlNZXRob2Q8Ym9vbGVhbj4oTWV0aG9kcy5DbGVhclBlZXJzKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBpbml0aWFsaXplUGVlcnMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPGJvb2xlYW4+KE1ldGhvZHMuSW5pdGlhbGl6ZVBlZXJzKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyByZXdpbmQoZXBvY2g6IEVwb2NoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPGJvb2xlYW4+KE1ldGhvZHMuUmV3aW5kLCBbZXBvY2hdKTtcblx0fVxufVxuIl19
|
|
244
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JwYy9ub2Rlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN6QyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBNEIsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5RyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQXlCLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBRU4sT0FBTyxHQU1QLE1BQU0sWUFBWSxDQUFDO0FBb0JwQixTQUFTLFlBQVksQ0FBQyxHQUFXO0lBQ2hDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckMsT0FBTyxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUM7QUFFRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUFlO0lBQ25ELFlBQVksR0FBWTtRQUN2QixLQUFLLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLElBQUksd0JBQXdCLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxLQUFLLENBQUMsMkVBQTJFLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDL0YsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVTLEtBQUssQ0FBQyxpQkFBaUIsQ0FD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QVUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmYXVsdCBhcyBheGlvcyB9IGZyb20gXCJheGlvc1wiO1xuaW1wb3J0IHsgUHVibGljS2V5LCBQdWJsaWNLZXlIYXNoLCB0eXBlIFB1YmxpY0tleUhhc2hTdHJpbmcsIFJlY292ZXJhYmxlU2lnbmF0dXJlIH0gZnJvbSBcIi4uL2NyeXB0by90eXBlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFcG9jaCwgSGV4U3RyaW5nLCBOb25jZSB9IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5pbXBvcnQgeyB0eXBlIElKc29uUnBjUHJvdmlkZXIsIEpzb25ScGNQcm92aWRlciwgSnNvblJwY1Byb3ZpZGVyRXJyb3IgfSBmcm9tIFwiLi9wcm92aWRlci5qc1wiO1xuaW1wb3J0IHtcblx0dHlwZSBCYWxhbmNlMixcblx0TWV0aG9kcyxcblx0dHlwZSBOb2RlU3RhdHMsXG5cdHR5cGUgUGVlckFkZHIsXG5cdHR5cGUgU3Rha2VBdXRob3JpemF0aW9uLFxuXHR0eXBlIFN0YWtlRW50cnksXG5cdHR5cGUgU3luY1N0YXR1cyxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJSnNvblJwY05vZGVGYXJtIGV4dGVuZHMgSUpzb25ScGNQcm92aWRlciB7XG5cdGFkZHJlc3NlcygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFB1YmxpY0tleUhhc2hTdHJpbmc+Pjtcblx0YmFsYW5jZXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgQmFsYW5jZTJdPj47XG5cdG1hc3RlcktleXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgc3RyaW5nXT4+O1xuXHRwdWJsaWNLZXlzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgW1B1YmxpY0tleUhhc2hTdHJpbmcsIFB1YmxpY0tleV0+Pjtcblx0c3luY1N0YXR1cygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFN5bmNTdGF0dXM+PjtcblxuXHRwZWVycyh2YWxpZGF0b3I/OiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogUHJvbWlzZTxBcnJheTxQZWVyQWRkcj4+O1xuXHRzdGF0cygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIE5vZGVTdGF0cz4+O1xuXHR3aXRoZHJhd2VycygpOiBQcm9taXNlPFJlY29yZDxQdWJsaWNLZXlIYXNoU3RyaW5nLCBbYmlnaW50LCBOb25jZSwgbnVtYmVyXT4+O1xuXG5cdGFkZFBlZXJzKHBlZXJzOiBBcnJheTxzdHJpbmc+KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj47XG5cdGF1dGhvcml6ZVN0YWtlcyh3aXRoZHJhd2VyOiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgSGV4U3RyaW5nXT4+O1xuXHRjbGVhclBlZXJzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+O1xuXHRpbml0aWFsaXplUGVlcnMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj47XG5cdHJld2luZChlcG9jaDogRXBvY2gpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+Pjtcbn1cblxuZnVuY3Rpb24gaXNQcml2YXRlVVJMKHVybDogc3RyaW5nKTogYm9vbGVhbiB7XG5cdGNvbnN0IFssIGhvc3RdID0gdXRpbHMucGFyc2VVUkwodXJsKTtcblx0cmV0dXJuIHV0aWxzLmlwSXNQcml2YXRlT3JMb2NhbGhvc3QoaG9zdC5zcGxpdChcIjpcIilbMF0pO1xufVxuXG5leHBvcnQgY2xhc3MgSnNvblJwY05vZGVGYXJtIGV4dGVuZHMgSnNvblJwY1Byb3ZpZGVyIGltcGxlbWVudHMgSUpzb25ScGNOb2RlRmFybSB7XG5cdGNvbnN0cnVjdG9yKHVybD86IHN0cmluZykge1xuXHRcdHN1cGVyKHVybCB8fCBwcm9jZXNzLmVudi5XSVRORVRfVE9PTEtJVF9GQVJNX05PREVTIHx8IFwiaHR0cDovLzEyNy4wLjAuMToyMTMzOVwiKTtcblx0XHR0aGlzLmVuZHBvaW50cy5mb3JFYWNoKCh1cmwpID0+IHtcblx0XHRcdGlmICghaXNQcml2YXRlVVJMKHVybCkpIHtcblx0XHRcdFx0dGhyb3cgRXJyb3IoYFdpdG5ldC5Kc29uUnBjTm9kZUZhcm06IG9ubHkgbG9jYWwgaG9zdCBvciBwcml2YXRlIElQcyBjYW4gYmUgcHJvdmlkZWQ6ICR7dXJsfWApO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIGJhdGNoQXBpUGtoTWV0aG9kPFQ+KFxuXHRcdG1ldGhvZDogc3RyaW5nLFxuXHRcdHBhcmFtcz86IGFueSxcblx0KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgVF0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2VzKClcblx0XHRcdC50aGVuKGFzeW5jIChhZGRyZXNzZXM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgc3RyaW5nPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKGFzeW5jIChbdXJsLCBwa2hdKSA9PiBbXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdFtwa2gsIHBraCBpbnN0YW5jZW9mIEVycm9yID8gdW5kZWZpbmVkIDogYXdhaXQgdGhpcy5jYWxsQXBpTWV0aG9kPFQ+KHVybCwgbWV0aG9kLCB7IHBraCwgLi4ucGFyYW1zIH0pXSxcblx0XHRcdFx0XSk7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKGVudHJpZXMpID0+XG5cdFx0XHRcdE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdFx0XHRlbnRyaWVzLm1hcCgoW3VybCwgW3BraCwgdmFsdWVdXSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKCh2YWx1ZSBhcyBKc29uUnBjUHJvdmlkZXJFcnJvcik/LmVycm9yPy5tZXNzYWdlKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWUgPSBuZXcgRXJyb3IoKHZhbHVlIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSB2YWx1ZS5zdGFjaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHZhbHVlIHx8IFwiXCJdXTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0KSxcblx0XHRcdCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgYmF0Y2hBcGlQa2hNZXRob2ROb1BraDxUPihcblx0XHRtZXRob2Q6IHN0cmluZyxcblx0XHQuLi5wYXJhbXM6IEFycmF5PGFueT5cblx0KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgVF0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2VzKClcblx0XHRcdC50aGVuKGFzeW5jIChhZGRyZXNzZXM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgc3RyaW5nPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKGFzeW5jIChbdXJsLCBwa2hdKSA9PiBbXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdFtwa2gsIHBraCBpbnN0YW5jZW9mIEVycm9yID8gdW5kZWZpbmVkIDogYXdhaXQgdGhpcy5jYWxsQXBpTWV0aG9kPFQ+KHVybCwgbWV0aG9kLCBwYXJhbXMpXSxcblx0XHRcdFx0XSk7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKGVudHJpZXMpID0+XG5cdFx0XHRcdE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdFx0XHRlbnRyaWVzLm1hcCgoW3VybCwgW3BraCwgdmFsdWVdXSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKCh2YWx1ZSBhcyBKc29uUnBjUHJvdmlkZXJFcnJvcik/LmVycm9yPy5tZXNzYWdlKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFsdWUgPSBuZXcgRXJyb3IoKHZhbHVlIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSB2YWx1ZS5zdGFjaztcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHZhbHVlIHx8IFwiXCJdXTtcblx0XHRcdFx0XHR9KSxcblx0XHRcdFx0KSxcblx0XHRcdCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgYmF0Y2hBcGlNZXRob2Q8VD4obWV0aG9kOiBzdHJpbmcsIHBhcmFtcz86IEFycmF5PGFueT4gfCBhbnkpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFQ+PiB7XG5cdFx0Y29uc3QgcHJvbWlzZXMgPSB0aGlzLmVuZHBvaW50cy5tYXAoYXN5bmMgKHVybCkgPT5cblx0XHRcdGF4aW9zXG5cdFx0XHRcdC5wb3N0KFxuXHRcdFx0XHRcdHVybCxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRqc29ucnBjOiBcIjIuMFwiLFxuXHRcdFx0XHRcdFx0aWQ6IERhdGUubm93KCksXG5cdFx0XHRcdFx0XHRtZXRob2QsXG5cdFx0XHRcdFx0XHRwYXJhbXMsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHRoZWFkZXJzOiB0aGlzLl9oZWFkZXJzLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdClcblx0XHRcdFx0LnRoZW4oKHJlc3BvbnNlOiBhbnkpID0+IHtcblx0XHRcdFx0XHRpZiAocmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcikge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIG5ldyBKc29uUnBjUHJvdmlkZXJFcnJvcihtZXRob2QsIHBhcmFtcywgcmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcildO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gW3VybCwgcmVzcG9uc2U/LmRhdGE/LnJlc3VsdCBhcyBUXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgoZXhjZXB0aW9uOiBhbnkpID0+IHtcblx0XHRcdFx0XHRjb25zdCBlcnJvciA9IG5ldyBFcnJvcihleGNlcHRpb24/Lm1lc3NhZ2UgfHwgZXhjZXB0aW9uPy5lcnJvciB8fCBleGNlcHRpb24pO1xuXHRcdFx0XHRcdGRlbGV0ZSBlcnJvci5zdGFjaztcblx0XHRcdFx0XHRyZXR1cm4gW3VybCwgZXJyb3JdO1xuXHRcdFx0XHR9KSxcblx0XHQpO1xuXHRcdHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigodmFsdWVzKSA9PiBPYmplY3QuZnJvbUVudHJpZXModmFsdWVzKSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgY2FsbEFwaU1ldGhvZDxUPih1cmw6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIHBhcmFtcz86IEFycmF5PGFueT4gfCBhbnkpOiBQcm9taXNlPEVycm9yIHwgYW55PiB7XG5cdFx0cmV0dXJuIGF4aW9zXG5cdFx0XHQucG9zdChcblx0XHRcdFx0dXJsLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0anNvbnJwYzogXCIyLjBcIixcblx0XHRcdFx0XHRpZDogRGF0ZS5ub3coKSxcblx0XHRcdFx0XHRtZXRob2QsXG5cdFx0XHRcdFx0cGFyYW1zLFxuXHRcdFx0XHR9LFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0aGVhZGVyczogdGhpcy5faGVhZGVycyxcblx0XHRcdFx0fSxcblx0XHRcdClcblx0XHRcdC50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChyZXNwb25zZT8uZXJyb3IgfHwgcmVzcG9uc2U/LmRhdGE/LmVycm9yKSB7XG5cdFx0XHRcdFx0Y29uc3QgZXJyb3IgPSBuZXcgSnNvblJwY1Byb3ZpZGVyRXJyb3IobWV0aG9kLCBwYXJhbXMsIHJlc3BvbnNlPy5lcnJvciB8fCByZXNwb25zZT8uZGF0YT8uZXJyb3IpO1xuXHRcdFx0XHRcdGRlbGV0ZSBlcnJvcj8uc3RhY2s7XG5cdFx0XHRcdFx0cmV0dXJuIGVycm9yO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHJldHVybiByZXNwb25zZT8uZGF0YT8ucmVzdWx0IGFzIFQ7XG5cdFx0XHRcdH1cblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goKGV4Y2VwdGlvbjogYW55KSA9PiB7XG5cdFx0XHRcdGNvbnN0IGVycm9yID0gbmV3IEVycm9yKGV4Y2VwdGlvbj8ubWVzc2FnZSB8fCBleGNlcHRpb24/LmVycm9yIHx8IGV4Y2VwdGlvbik7XG5cdFx0XHRcdGRlbGV0ZSBlcnJvcj8uc3RhY2s7XG5cdFx0XHRcdHJldHVybiBlcnJvcjtcblx0XHRcdH0pO1xuXHR9XG5cblx0Ly8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdHB1YmxpYyBhc3luYyBhZGRyZXNzZXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBQdWJsaWNLZXlIYXNoU3RyaW5nPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPFB1YmxpY0tleUhhc2hTdHJpbmc+KE1ldGhvZHMuR2V0UGtoKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBiYWxhbmNlcygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBCYWxhbmNlMl0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlQa2hNZXRob2Q8QmFsYW5jZTI+KE1ldGhvZHMuR2V0QmFsYW5jZTIpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIG1hc3RlcktleXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgc3RyaW5nXT4+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaVBraE1ldGhvZE5vUGtoPHN0cmluZz4oTWV0aG9kcy5NYXN0ZXJLZXlFeHBvcnQpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHB1YmxpY0tleXMoKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgUHVibGljS2V5XT4+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaVBraE1ldGhvZE5vUGtoPFVpbnQ4QXJyYXk+KE1ldGhvZHMuR2V0UHVibGljS2V5KS50aGVuKFxuXHRcdFx0KHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBFcnJvciB8IFVpbnQ4QXJyYXldPikgPT5cblx0XHRcdFx0T2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKHJlc3VsdHMpLm1hcCgoW3VybCwgW3BraCwgcmF3XV0pID0+IHtcblx0XHRcdFx0XHRcdGlmIChyYXcgJiYgcmF3IGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKChyYXcgYXMgSnNvblJwY1Byb3ZpZGVyRXJyb3IpPy5lcnJvcj8ubWVzc2FnZSkge1xuXHRcdFx0XHRcdFx0XHRcdHJhdyA9IG5ldyBFcnJvcigocmF3IGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSByYXcuc3RhY2s7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHJhd11dO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIHJhdyA/IFB1YmxpY0tleS5mcm9tVWludDhBcnJheShyYXcpIDogdW5kZWZpbmVkXV07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCksXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBwZWVycygpOiBQcm9taXNlPEFycmF5PFBlZXJBZGRyPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPEFycmF5PFBlZXJBZGRyPj4oTWV0aG9kcy5QZWVycykudGhlbigocmVzdWx0czogUmVjb3JkPHN0cmluZywgUGVlckFkZHJbXT4pID0+IHtcblx0XHRcdGNvbnN0IHBlZXJzOiBQZWVyQWRkcltdID0gW107XG5cdFx0XHRPYmplY3QudmFsdWVzKHJlc3VsdHMpLmZvckVhY2goKG1vcmVQZWVyczogRXJyb3IgfCBQZWVyQWRkcltdKSA9PiB7XG5cdFx0XHRcdGlmICghKG1vcmVQZWVycyBpbnN0YW5jZW9mIEVycm9yKSkge1xuXHRcdFx0XHRcdG1vcmVQZWVycy5mb3JFYWNoKChwZWVyKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoIXBlZXJzLmluY2x1ZGVzKHBlZXIpKSB7XG5cdFx0XHRcdFx0XHRcdHBlZXJzLnB1c2gocGVlcik7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIHBlZXJzO1xuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN0YXRzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgTm9kZVN0YXRzPj4ge1xuXHRcdHJldHVybiB0aGlzLmJhdGNoQXBpTWV0aG9kPE5vZGVTdGF0cz4oTWV0aG9kcy5Ob2RlU3RhdHMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHN5bmNTdGF0dXMoKTogUHJvbWlzZTxhbnk+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaU1ldGhvZDxTeW5jU3RhdHVzPihNZXRob2RzLlN5bmNTdGF0dXMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHdpdGhkcmF3ZXJzKFxuXHRcdGxpbWl0PzogbnVtYmVyLFxuXHRcdG9mZnNldD86IG51bWJlcixcblx0KTogUHJvbWlzZTxSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgW2JpZ2ludCwgTm9uY2UsIG51bWJlcl0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYWRkcmVzc2VzKClcblx0XHRcdC50aGVuKGFzeW5jIChhZGRyZXNzZXM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgc3RyaW5nPikgPT4ge1xuXHRcdFx0XHRjb25zdCBwcm9taXNlcyA9IE9iamVjdC5lbnRyaWVzKGFkZHJlc3NlcykubWFwKGFzeW5jIChbdXJsLCB2YWxpZGF0b3JdKSA9PiBbXG5cdFx0XHRcdFx0dXJsLFxuXHRcdFx0XHRcdHZhbGlkYXRvciBpbnN0YW5jZW9mIEVycm9yXG5cdFx0XHRcdFx0XHQ/IHVuZGVmaW5lZFxuXHRcdFx0XHRcdFx0OiBhd2FpdCB0aGlzLmNhbGxBcGlNZXRob2Q8QXJyYXk8U3Rha2VFbnRyeT4+KHVybCwgTWV0aG9kcy5RdWVyeVN0YWtlcywge1xuXHRcdFx0XHRcdFx0XHRcdGZpbHRlcjogeyB2YWxpZGF0b3IgfSxcblx0XHRcdFx0XHRcdFx0XHRwYXJhbXM6IHtcblx0XHRcdFx0XHRcdFx0XHRcdGxpbWl0LFxuXHRcdFx0XHRcdFx0XHRcdFx0b2Zmc2V0LFxuXHRcdFx0XHRcdFx0XHRcdFx0c2luY2U6IDAsXG5cdFx0XHRcdFx0XHRcdFx0fSxcblx0XHRcdFx0XHRcdFx0fSksXG5cdFx0XHRcdF0pO1xuXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChlbnRyaWVzKSA9PlxuXHRcdFx0XHRPYmplY3QuZnJvbUVudHJpZXMoXG5cdFx0XHRcdFx0ZW50cmllcy5tYXAoKFt1cmwsIHN0YWtlc10pID0+IHtcblx0XHRcdFx0XHRcdGlmIChzdGFrZXMgJiYgc3Rha2VzIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKChzdGFrZXMgYXMgSnNvblJwY1Byb3ZpZGVyRXJyb3IpPy5lcnJvcj8ubWVzc2FnZSkge1xuXHRcdFx0XHRcdFx0XHRcdHN0YWtlcyA9IG5ldyBFcnJvcigoc3Rha2VzIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSBzdGFrZXMuc3RhY2s7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmxdO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdHJldHVybiBbdXJsLCBzdGFrZXNdO1xuXHRcdFx0XHRcdH0pLFxuXHRcdFx0XHQpLFxuXHRcdFx0KVxuXHRcdFx0LnRoZW4oKHJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIEVycm9yIHwgQXJyYXk8U3Rha2VFbnRyeT4+KSA9PiB7XG5cdFx0XHRcdGNvbnN0IG1heCA9IChhOiBudW1iZXIsIGI6IG51bWJlcikgPT4gKGEgPiBiID8gYSA6IGIpO1xuXHRcdFx0XHRjb25zdCB3aXRoZHJhd2VyczogUmVjb3JkPFB1YmxpY0tleUhhc2hTdHJpbmcsIFtiaWdpbnQsIE5vbmNlLCBudW1iZXJdPiA9IHt9O1xuXHRcdFx0XHRPYmplY3QudmFsdWVzKHJlc3VsdHMpLmZvckVhY2goKG1vcmVFbnRyaWVzKSA9PiB7XG5cdFx0XHRcdFx0aWYgKG1vcmVFbnRyaWVzICYmICEobW9yZUVudHJpZXMgaW5zdGFuY2VvZiBFcnJvcikpIHtcblx0XHRcdFx0XHRcdG1vcmVFbnRyaWVzLmZvckVhY2goKGVudHJ5KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmICh3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl0pIHtcblx0XHRcdFx0XHRcdFx0XHR3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl1bMF0gKz0gZW50cnkudmFsdWUuY29pbnM7XG5cdFx0XHRcdFx0XHRcdFx0d2l0aGRyYXdlcnNbZW50cnkua2V5LndpdGhkcmF3ZXJdWzFdID0gbWF4KGVudHJ5LnZhbHVlLm5vbmNlLCB3aXRoZHJhd2Vyc1tlbnRyeS5rZXkud2l0aGRyYXdlcl1bMV0pO1xuXHRcdFx0XHRcdFx0XHRcdHdpdGhkcmF3ZXJzW2VudHJ5LmtleS53aXRoZHJhd2VyXVsyXSArPSAxO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHdpdGhkcmF3ZXJzW2VudHJ5LmtleS53aXRoZHJhd2VyXSA9IFtlbnRyeS52YWx1ZS5jb2lucywgZW50cnkudmFsdWUubm9uY2UsIDFdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRyZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKHdpdGhkcmF3ZXJzKS5zb3J0KChbLCBbYSwgLF1dLCBbLCBbYiwgLF1dKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoYSA+IGIpIHJldHVybiAxO1xuXHRcdFx0XHRcdFx0ZWxzZSBpZiAoYSA8IGIpIHJldHVybiAtMTtcblx0XHRcdFx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuXHRwdWJsaWMgYXN5bmMgYWRkUGVlcnMocGVlcnM6IEFycmF5PHN0cmluZz4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlNZXRob2Q8Ym9vbGVhbj4oTWV0aG9kcy5BZGRQZWVycywgcGVlcnMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGF1dGhvcml6ZVN0YWtlcyhcblx0XHR3aXRoZHJhd2VyOiBQdWJsaWNLZXlIYXNoU3RyaW5nLFxuXHQpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIFtQdWJsaWNLZXlIYXNoU3RyaW5nLCBIZXhTdHJpbmddPj4ge1xuXHRcdGNvbnN0IG1zZyA9IFB1YmxpY0tleUhhc2guZnJvbUJlY2gzMih3aXRoZHJhd2VyKS50b0J5dGVzMzIoKTtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaVBraE1ldGhvZE5vUGtoPFN0YWtlQXV0aG9yaXphdGlvbj4oTWV0aG9kcy5BdXRob3JpemVTdGFrZSwgd2l0aGRyYXdlcikudGhlbihcblx0XHRcdChyZWNvcmRzOiBSZWNvcmQ8c3RyaW5nLCBbUHVibGljS2V5SGFzaFN0cmluZywgRXJyb3IgfCBTdGFrZUF1dGhvcml6YXRpb25dPikgPT5cblx0XHRcdFx0T2JqZWN0LmZyb21FbnRyaWVzKFxuXHRcdFx0XHRcdE9iamVjdC5lbnRyaWVzKHJlY29yZHMpLm1hcCgoW3VybCwgW3BraCwgYXV0aG9yaXphdGlvbl1dKSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAoYXV0aG9yaXphdGlvbiAmJiBhdXRob3JpemF0aW9uIGluc3RhbmNlb2YgRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0aWYgKChhdXRob3JpemF0aW9uIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpIHtcblx0XHRcdFx0XHRcdFx0XHRhdXRob3JpemF0aW9uID0gbmV3IEVycm9yKChhdXRob3JpemF0aW9uIGFzIEpzb25ScGNQcm92aWRlckVycm9yKT8uZXJyb3I/Lm1lc3NhZ2UpO1xuXHRcdFx0XHRcdFx0XHRcdGRlbGV0ZSBhdXRob3JpemF0aW9uLnN0YWNrO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHJldHVybiBbdXJsLCBbcGtoLCBhdXRob3JpemF0aW9uXV07XG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKGF1dGhvcml6YXRpb24pIHtcblx0XHRcdFx0XHRcdFx0Y29uc3Qgc2lnbmF0dXJlID0gUmVjb3ZlcmFibGVTaWduYXR1cmUuZnJvbUtleWVkU2lnbmF0dXJlKGF1dGhvcml6YXRpb24uc2lnbmF0dXJlLCBtc2cpO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBhdXRoY29kZSA9IHNpZ25hdHVyZS5wdWJLZXkuaGFzaCgpLnRvSGV4U3RyaW5nKCkgKyBzaWduYXR1cmUudG9IZXhTdHJpbmcoKTtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIFt1cmwsIFtwa2gsIGF1dGhjb2RlXV07XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gW3VybCwgW3BraCwgdW5kZWZpbmVkXV07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSksXG5cdFx0XHRcdCksXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBjbGVhclBlZXJzKCk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgYm9vbGVhbj4+IHtcblx0XHRyZXR1cm4gdGhpcy5iYXRjaEFwaU1ldGhvZDxib29sZWFuPihNZXRob2RzLkNsZWFyUGVlcnMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGluaXRpYWxpemVQZWVycygpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlNZXRob2Q8Ym9vbGVhbj4oTWV0aG9kcy5Jbml0aWFsaXplUGVlcnMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHJld2luZChlcG9jaDogRXBvY2gpOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+PiB7XG5cdFx0cmV0dXJuIHRoaXMuYmF0Y2hBcGlNZXRob2Q8Ym9vbGVhbj4oTWV0aG9kcy5SZXdpbmQsIFtlcG9jaF0pO1xuXHR9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/lib/rpc/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAoB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../../src/lib/rpc/provider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAoB,MAAM,OAAO,CAAC;AAWvD,OAAO,EAAa,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAClG,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EAEN,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,EACjC,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EACvB,KAAK,OAAO,EAEZ,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EAEtB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,gBAAgB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,CAA2B,CAAC,CAAC,CAAC;IAC9F,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxE,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,MAAM,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAClE,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IACtC,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACxD,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAClC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE7B,UAAU,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxD,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,qBAAqB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3E,cAAc,CACb,QAAQ,EAAE,IAAI,EACd,IAAI,CAAC,EAAE,kBAAkB,GACvB,OAAO,CAAC,wBAAwB,GAAG,4BAA4B,CAAC,CAAC;IACpE,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACvD,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACzD,qBAAqB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACjE,QAAQ,CACP,GAAG,EAAE,mBAAmB,EACxB,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,mBAAmB,CAAA;KAAE,GAC1D,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAChC,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE5D,kBAAkB,CACjB,OAAO,EAAE,IAAI,EACb,OAAO,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,kBAAkB,CAAC;QAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;KAClB,GACC,OAAO,CAAC,KAAK,CAAC,wBAAwB,GAAG,4BAA4B,CAAC,CAAC,CAAC;IAE3E,kBAAkB,CAAC,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAED,qBAAa,oBAAqB,SAAQ,KAAK;IAC9C,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC;gBACX,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,CAAC,EAAE,GAAG;CAOtD;AAED,qBAAa,eAAgB,YAAW,gBAAgB;IACvD,SAAgB,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpC,OAAc,QAAQ,EAAE,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAM;IAE9D,SAAS,CAAC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAC1C,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC;IAEjC;;;;OAIG;WACU,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI5D;;;OAGG;WACU,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;gBAK/C,GAAG,CAAC,EAAE,MAAM;IAmBxB,IAAW,OAAO,IAAI,OAAO,GAAG,SAAS,CAMxC;IAED,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAuCzC;IAED,SAAS,CAAC,OAAO,IAAI,MAAM;cAIX,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC;IAyBjG;;;;OAIG;IACU,MAAM,CAAC,KAAK,GAAE,MAAW,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAK7E,SAAS,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAcxC,OAAO,CAAC,UAAU,SAAI,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;IAuB5F,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAKtC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAK3B,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;IAKjC,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;IAKrC,MAAM,CAAC,KAAK,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAKhE,MAAM,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAWvD,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;IAIjC,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;IAI9B,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA2B3C,UAAU,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAQpE;;;;OAIG;IACU,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,mBAAmB,UAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;IAItE,cAAc,CAC1B,QAAQ,EAAE,IAAI,EACd,IAAI,CAAC,EAAE,kBAAkB,EACzB,KAAK,UAAQ,GACX,OAAO,CAAC,wBAAwB,GAAG,4BAA4B,CAAC;IAStD,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAMtD,cAAc,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxD,qBAAqB,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAMhE,QAAQ,CACpB,GAAG,EAAE,mBAAmB,EACxB,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,mBAAmB,CAAA;KAAE,GACvE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAalB,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,UAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAQ1E,kBAAkB,CAC9B,OAAO,EAAE,IAAI,EACb,OAAO,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,kBAAkB,CAAC;QAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;KAClB,GACC,OAAO,CAAC,KAAK,CAAC,4BAA4B,GAAG,wBAAwB,CAAC,CAAC;IAgB7D,kBAAkB,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtD,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC;CAG9C"}
|
|
@@ -6,7 +6,7 @@ import protobuf from "protobufjs";
|
|
|
6
6
|
const { Root: ProtoRoot } = protobuf;
|
|
7
7
|
const protoRoot = ProtoRoot.fromJSON(require("../../../witnet/witnet.proto.json"));
|
|
8
8
|
const protoBuf = protoRoot.lookupType("ConsensusConstants");
|
|
9
|
-
import { PublicKey
|
|
9
|
+
import { PublicKey } from "../crypto/types.js";
|
|
10
10
|
import * as utils from "../utils.js";
|
|
11
11
|
import { Methods, } from "./types.js";
|
|
12
12
|
export class JsonRpcProviderError extends Error {
|
|
@@ -63,9 +63,7 @@ export class JsonRpcProvider {
|
|
|
63
63
|
}
|
|
64
64
|
get network() {
|
|
65
65
|
if (this._constants) {
|
|
66
|
-
return this._constants.bootstrapping_committee[0].startsWith("wit")
|
|
67
|
-
? "mainnet"
|
|
68
|
-
: "testnet";
|
|
66
|
+
return this._constants.bootstrapping_committee[0].startsWith("wit") ? "mainnet" : "testnet";
|
|
69
67
|
}
|
|
70
68
|
else {
|
|
71
69
|
return undefined;
|
|
@@ -83,8 +81,7 @@ export class JsonRpcProvider {
|
|
|
83
81
|
obj.checkpointsPeriod = this._constants.checkpoints_period;
|
|
84
82
|
obj.collateralAge = this._constants.collateral_age;
|
|
85
83
|
obj.collateralMinimum = this._constants.collateral_minimum;
|
|
86
|
-
obj.epochsWithMinimumDifficulty =
|
|
87
|
-
this._constants.epochs_with_minimum_difficulty;
|
|
84
|
+
obj.epochsWithMinimumDifficulty = this._constants.epochs_with_minimum_difficulty;
|
|
88
85
|
obj.extraRounds = this._constants.extra_rounds;
|
|
89
86
|
obj.genesisHash = {
|
|
90
87
|
SHA256: Array.from(utils.fromHexString(this._constants.genesis_hash)),
|
|
@@ -97,19 +94,14 @@ export class JsonRpcProvider {
|
|
|
97
94
|
obj.minimumDifficulty = this._constants.minimum_difficulty;
|
|
98
95
|
obj.miningBackupFactor = this._constants.mining_backup_factor;
|
|
99
96
|
obj.miningReplicationFactor = this._constants.mining_replication_factor;
|
|
100
|
-
obj.reputationExpireAlphaDiff =
|
|
101
|
-
this._constants.reputation_expire_alpha_diff;
|
|
97
|
+
obj.reputationExpireAlphaDiff = this._constants.reputation_expire_alpha_diff;
|
|
102
98
|
obj.reputationIssuance = this._constants.reputation_issuance;
|
|
103
99
|
obj.reputationIssuanceStop = this._constants.reputation_issuance_stop;
|
|
104
|
-
obj.reputationPenalizationFactor =
|
|
105
|
-
|
|
106
|
-
obj.
|
|
107
|
-
this._constants.superblock_committee_decreasing_period;
|
|
108
|
-
obj.superblockCommitteeDecreasingStep =
|
|
109
|
-
this._constants.superblock_committee_decreasing_step;
|
|
100
|
+
obj.reputationPenalizationFactor = this._constants.reputation_penalization_factor;
|
|
101
|
+
obj.superblockCommitteeDecreasingPeriod = this._constants.superblock_committee_decreasing_period;
|
|
102
|
+
obj.superblockCommitteeDecreasingStep = this._constants.superblock_committee_decreasing_step;
|
|
110
103
|
obj.superblockPeriod = this._constants.superblock_period;
|
|
111
|
-
obj.superblockSigningCommitteeSize =
|
|
112
|
-
this._constants.superblock_signing_committee_size;
|
|
104
|
+
obj.superblockSigningCommitteeSize = this._constants.superblock_signing_committee_size;
|
|
113
105
|
const message = protoBuf.fromObject(obj);
|
|
114
106
|
const buffer = protoBuf.encode(message).finish();
|
|
115
107
|
const hash = utils.toHexString(utils.sha256(buffer));
|
|
@@ -148,10 +140,7 @@ export class JsonRpcProvider {
|
|
|
148
140
|
* @param {number} limit - Number of block hashes to return. If negative, return the last n block hashes from this epoch range.
|
|
149
141
|
*/
|
|
150
142
|
async blocks(since = -1, limit = 1) {
|
|
151
|
-
return this.callApiMethod(Methods.GetBlockChain, [
|
|
152
|
-
since,
|
|
153
|
-
limit,
|
|
154
|
-
]);
|
|
143
|
+
return this.callApiMethod(Methods.GetBlockChain, [since, limit]);
|
|
155
144
|
}
|
|
156
145
|
/// Get consensus constants used by the node
|
|
157
146
|
async constants() {
|
|
@@ -209,8 +198,7 @@ export class JsonRpcProvider {
|
|
|
209
198
|
/// Get a full list of current stake entries Query the amount of nanowits staked by an address.
|
|
210
199
|
async stakes(query) {
|
|
211
200
|
return this.callApiMethod(Methods.QueryStakes, query).catch((err) => {
|
|
212
|
-
if (err?.error?.message &&
|
|
213
|
-
err.error.message.indexOf("not registered") > -1) {
|
|
201
|
+
if (err?.error?.message && err.error.message.indexOf("not registered") > -1) {
|
|
214
202
|
return [];
|
|
215
203
|
}
|
|
216
204
|
else {
|
|
@@ -242,10 +230,8 @@ export class JsonRpcProvider {
|
|
|
242
230
|
})
|
|
243
231
|
.then((blocks) => {
|
|
244
232
|
const validators = [];
|
|
245
|
-
blocks.
|
|
246
|
-
const pkh = PublicKey.fromProtobuf(block.block_sig.public_key)
|
|
247
|
-
.hash()
|
|
248
|
-
.toBech32(this.network);
|
|
233
|
+
blocks.forEach((block) => {
|
|
234
|
+
const pkh = PublicKey.fromProtobuf(block.block_sig.public_key).hash().toBech32(this.network);
|
|
249
235
|
if (!validators.includes(pkh))
|
|
250
236
|
validators.push(pkh);
|
|
251
237
|
});
|
|
@@ -267,10 +253,7 @@ export class JsonRpcProvider {
|
|
|
267
253
|
* @param {boolean} showTransactionHash - Whether to include an extra field containing array of transaction hashes.
|
|
268
254
|
*/
|
|
269
255
|
async getBlock(blockHash, showTransactionHash = false) {
|
|
270
|
-
return this.callApiMethod(Methods.GetBlock, [
|
|
271
|
-
blockHash,
|
|
272
|
-
showTransactionHash,
|
|
273
|
-
]);
|
|
256
|
+
return this.callApiMethod(Methods.GetBlock, [blockHash, showTransactionHash]);
|
|
274
257
|
}
|
|
275
258
|
async getDataRequest(drTxHash, mode, force = false) {
|
|
276
259
|
return this.callApiMethod(Methods.GetDataRequest, {
|
|
@@ -286,9 +269,7 @@ export class JsonRpcProvider {
|
|
|
286
269
|
});
|
|
287
270
|
}
|
|
288
271
|
async getTransaction(txHash) {
|
|
289
|
-
return this.callApiMethod(Methods.GetTransaction, [
|
|
290
|
-
txHash,
|
|
291
|
-
]);
|
|
272
|
+
return this.callApiMethod(Methods.GetTransaction, [txHash]);
|
|
292
273
|
}
|
|
293
274
|
async getTransactionReceipt(txHash) {
|
|
294
275
|
// todo: fetch/update receipt from provider, if not cached
|
|
@@ -299,10 +280,7 @@ export class JsonRpcProvider {
|
|
|
299
280
|
if (filter) {
|
|
300
281
|
filter.minValue = filter?.minValue?.toString() ?? "0";
|
|
301
282
|
}
|
|
302
|
-
return this.callApiMethod(Methods.GetUtxoInfo, [
|
|
303
|
-
pkh,
|
|
304
|
-
...(filter ? [filter] : []),
|
|
305
|
-
]).then((result) => result.utxos.map((utxo) => ({
|
|
283
|
+
return this.callApiMethod(Methods.GetUtxoInfo, [pkh, ...(filter ? [filter] : [])]).then((result) => result.utxos.map((utxo) => ({
|
|
306
284
|
...utxo,
|
|
307
285
|
value: BigInt(utxo.value),
|
|
308
286
|
})));
|
|
@@ -333,4 +311,4 @@ export class JsonRpcProvider {
|
|
|
333
311
|
return this.callApiMethod(Methods.GetSupplyInfo);
|
|
334
312
|
}
|
|
335
313
|
}
|
|
336
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JwYy9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN2RCxPQUFPLE9BQU8sTUFBTSxhQUFhLENBQUM7QUFFbEMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFL0MsT0FBTyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBRWxDLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsUUFBUSxDQUFDO0FBQ3JDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQ25DLE9BQU8sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUM1QyxDQUFDO0FBQ0YsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBRTVELE9BQU8sRUFDTixTQUFTLEdBR1QsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUVyQyxPQUFPLEVBU04sT0FBTyxHQWNQLE1BQU0sWUFBWSxDQUFDO0FBa0RwQixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsS0FBSztJQUNyQyxLQUFLLENBQU87SUFDWixNQUFNLENBQVM7SUFDZixNQUFNLENBQVE7SUFDdkIsWUFBWSxNQUFjLEVBQUUsTUFBYSxFQUFFLEtBQVc7UUFDckQsS0FBSyxDQUFDLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekUsT0FBTyxLQUFLLEVB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QU0sSUFBSSxDQUFDO1lBQzVCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sS0FBSyxLQUFLLENBQUM7U0FDdEMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDekIsT0FBTyxDQUFDLEdBQUcsQ0FDVixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBWSxFQUFFLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUN6QixLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ1IsT0FBTyxFQUFFLElBQUksSUFBSSxVQUFVLEVBQzNCLElBQUksQ0FDSixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0YsQ0FDRCxDQUFDO0lBQ0gsQ0FBQztJQUVELG1IQUFtSDtJQUM1RyxLQUFLLENBQUMsa0JBQWtCLENBQUMsV0FBZ0I7UUFDL0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFVLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxtQkFBbUI7SUFDWixLQUFLLENBQUMsVUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQWEsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSBcIm5vZGU6bW9kdWxlXCI7XG5pbXBvcnQgeyBBeGlvc0hlYWRlcnMsIGRlZmF1bHQgYXMgYXhpb3MgfSBmcm9tIFwiYXhpb3NcIjtcbmltcG9ydCBqc29uQmlnIGZyb20gXCJqc29uLWJpZ2ludFwiO1xuXG5jb25zdCByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShpbXBvcnQubWV0YS51cmwpO1xuXG5pbXBvcnQgcHJvdG9idWYgZnJvbSBcInByb3RvYnVmanNcIjtcblxuY29uc3QgeyBSb290OiBQcm90b1Jvb3QgfSA9IHByb3RvYnVmO1xuY29uc3QgcHJvdG9Sb290ID0gUHJvdG9Sb290LmZyb21KU09OKFxuXHRyZXF1aXJlKFwiLi4vLi4vLi4vd2l0bmV0L3dpdG5ldC5wcm90by5qc29uXCIpLFxuKTtcbmNvbnN0IHByb3RvQnVmID0gcHJvdG9Sb290Lmxvb2t1cFR5cGUoXCJDb25zZW5zdXNDb25zdGFudHNcIik7XG5cbmltcG9ydCB7XG5cdFB1YmxpY0tleSxcblx0dHlwZSBQdWJsaWNLZXlIYXNoU3RyaW5nLFxuXHR0eXBlIFRyYW5zYWN0aW9uUmVjZWlwdCxcbn0gZnJvbSBcIi4uL2NyeXB0by90eXBlcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBFcG9jaCwgSGFzaCwgTmV0d29yaywgVXR4b01ldGFkYXRhIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgKiBhcyB1dGlscyBmcm9tIFwiLi4vdXRpbHMuanNcIjtcblxuaW1wb3J0IHtcblx0dHlwZSBCYWxhbmNlLFxuXHR0eXBlIEJhbGFuY2UyLFxuXHR0eXBlIEJsb2NrLFxuXHR0eXBlIENvbnNlbnN1c0NvbnN0YW50cyxcblx0dHlwZSBHZXREYXRhUmVxdWVzdEV0aGVyZWFsUmVwb3J0LFxuXHR0eXBlIEdldERhdGFSZXF1ZXN0RnVsbFJlcG9ydCxcblx0dHlwZSBHZXREYXRhUmVxdWVzdE1vZGUsXG5cdHR5cGUgTWVtcG9vbCxcblx0TWV0aG9kcyxcblx0dHlwZSBQZWVyQWRkcixcblx0dHlwZSBQcmlvcml0aWVzLFxuXHR0eXBlIFByb3RvY29sSW5mbyxcblx0dHlwZSBRdWVyeVN0YWtlcyxcblx0dHlwZSBRdWVyeVN0YWtpbmdQb3dlcnMsXG5cdHR5cGUgU2lnbmFsaW5nSW5mbyxcblx0dHlwZSBTdGFrZUVudHJ5LFxuXHR0eXBlIFN0YWtpbmdQb3dlcixcblx0dHlwZSBTdXBlcmJsb2NrUmVwb3J0LFxuXHR0eXBlIFN1cHBseUluZm8sXG5cdHR5cGUgU3luY1N0YXR1cyxcblx0dHlwZSBUcmFuc2FjdGlvblJlcG9ydCxcblx0dHlwZSBVdHhvSW5mbyxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJSnNvblJwY1Byb3ZpZGVyIHtcblx0bmV0d29yaz86IE5ldHdvcms7XG5cdG5ldHdvcmtJZD86IG51bWJlcjtcblxuXHRibG9ja3MoXG5cdFx0c2luY2U6IEVwb2NoLFxuXHRcdGxpbWl0OiBudW1iZXIsXG5cdCk6IFByb21pc2U8QXJyYXk8W251bWJlciwgSGFzaCAvKiwgUHVibGljS2V5SGFzaFN0cmluZyovXT4+O1xuXHRjb25zdGFudHMoKTogUHJvbWlzZTxDb25zZW5zdXNDb25zdGFudHM+O1xuXHRob2xkZXJzKGxpbWl0PzogbnVtYmVyKTogUHJvbWlzZTxSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQmFsYW5jZTI+Pjtcblx0bWVtcG9vbCgpOiBQcm9taXNlPE1lbXBvb2w+O1xuXHRwb3dlcnMocGFyYW1zPzogUXVlcnlTdGFraW5nUG93ZXJzKTogUHJvbWlzZTxBcnJheTxTdGFraW5nUG93ZXI+Pjtcblx0cHJpb3JpdGllcygpOiBQcm9taXNlPFByaW9yaXRpZXM+O1xuXHRwcm90b2NvbEluZm8oKTogUHJvbWlzZTxQcm90b2NvbEluZm8+O1xuXHRzdGFrZXMocGFyYW1zOiBRdWVyeVN0YWtlcyk6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+O1xuXHRzdXBwbHlJbmZvKCk6IFByb21pc2U8U3VwcGx5SW5mbz47XG5cdHN5bmNTdGF0dXMoKTogUHJvbWlzZTxhbnk+O1xuXHR3aXBzKCk6IFByb21pc2U8U2lnbmFsaW5nSW5mbz47XG5cdHdpdG5lc3NlcygpOiBQcm9taXNlPG51bWJlcj47XG5cblx0Z2V0QmFsYW5jZShwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBQcm9taXNlPEJhbGFuY2UyPjtcblx0Z2V0QmxvY2soYmxvY2tIYXNoOiBIYXNoLCBzaG93VHJhbnNhY3Rpb25IYXNoZXM/OiBib29sZWFuKTogUHJvbWlzZTxCbG9jaz47XG5cdGdldERhdGFSZXF1ZXN0KFxuXHRcdGRyVHhIYXNoOiBIYXNoLFxuXHRcdG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGUsXG5cdCk6IFByb21pc2U8R2V0RGF0YVJlcXVlc3RGdWxsUmVwb3J0IHwgR2V0RGF0YVJlcXVlc3RFdGhlcmVhbFJlcG9ydD47XG5cdGdldFN1cGVyYmxvY2soZXBvY2g6IEVwb2NoKTogUHJvbWlzZTxTdXBlcmJsb2NrUmVwb3J0Pjtcblx0Z2V0VHJhbnNhY3Rpb24odHhIYXNoOiBIYXNoKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlcG9ydD47XG5cdGdldFRyYW5zYWN0aW9uUmVjZWlwdCh0eEhhc2g6IEhhc2gpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD47XG5cdGdldFV0eG9zKFxuXHRcdHBraDogUHVibGljS2V5SGFzaFN0cmluZyxcblx0XHRmaWx0ZXI/OiB7IG1pblZhbHVlPzogYmlnaW50OyBzaWduZXI/OiBQdWJsaWNLZXlIYXNoU3RyaW5nIH0sXG5cdCk6IFByb21pc2U8QXJyYXk8VXR4b01ldGFkYXRhPj47XG5cdGdldFZhbHVlVHJhbnNmZXIodHhIYXNoOiBIYXNoLCBtb2RlPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuXG5cdHNlYXJjaERhdGFSZXF1ZXN0cyhcblx0XHRyYWRIYXNoOiBIYXNoLFxuXHRcdG9wdGlvbnM/OiB7XG5cdFx0XHRsaW1pdD86IG51bWJlcjtcblx0XHRcdG9mZnNldD86IG51bWJlcjtcblx0XHRcdG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGU7XG5cdFx0XHRyZXZlcnNlPzogYm9vbGVhbjtcblx0XHR9LFxuXHQpOiBQcm9taXNlPEFycmF5PEdldERhdGFSZXF1ZXN0RnVsbFJlcG9ydCB8IEdldERhdGFSZXF1ZXN0RXRoZXJlYWxSZXBvcnQ+PjtcblxuXHRzZW5kUmF3VHJhbnNhY3Rpb24odHg6IGFueSk6IFByb21pc2U8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBjbGFzcyBKc29uUnBjUHJvdmlkZXJFcnJvciBleHRlbmRzIEVycm9yIHtcblx0cmVhZG9ubHkgZXJyb3I/OiBhbnk7XG5cdHJlYWRvbmx5IG1ldGhvZDogc3RyaW5nO1xuXHRyZWFkb25seSBwYXJhbXM6IGFueVtdO1xuXHRjb25zdHJ1Y3RvcihtZXRob2Q6IHN0cmluZywgcGFyYW1zOiBhbnlbXSwgZXJyb3I/OiBhbnkpIHtcblx0XHRzdXBlcihgJHttZXRob2R9KCR7SlNPTi5zdHJpbmdpZnkocGFyYW1zKX0pOiAke0pTT04uc3RyaW5naWZ5KGVycm9yKX0pYCk7XG5cdFx0ZGVsZXRlIGVycm9yPy5zdGFjaztcblx0XHR0aGlzLmVycm9yID0gZXJyb3I7XG5cdFx0dGhpcy5tZXRob2QgPSBtZXRob2Q7XG5cdFx0dGhpcy5wYXJhbXMgPSBwYXJhbXM7XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIEpzb25ScGNQcm92aWRlciBpbXBsZW1lbnRzIElKc29uUnBjUHJvdmlkZXIge1xuXHRwdWJsaWMgcmVhZG9ubHkgZW5kcG9pbnRzOiBzdHJpbmdbXTtcblxuXHRwdWJsaWMgc3RhdGljIHJlY2VpcHRzOiBSZWNvcmQ8SGFzaCwgVHJhbnNhY3Rpb25SZWNlaXB0PiA9IHt9O1xuXG5cdHByb3RlY3RlZCBfY29uc3RhbnRzPzogQ29uc2Vuc3VzQ29uc3RhbnRzO1xuXHRwcm90ZWN0ZWQgX2hlYWRlcnM6IEF4aW9zSGVhZGVycztcblxuXHQvKipcblx0ICogQ3JlYXRlIGFuZCBpbml0aWFsaXplIGEgSnNvblJwY1Byb3ZpZGVyIG9iamVjdCBjb25uZWN0ZWQgdG8gdGhlIGRlZmF1bHQgV2l0L1JQQyBlbmRwb2ludC5cblx0ICogRGVmYXVsdHMgdG8gaHR0cHM6Ly9ycGMtMDEud2l0bmV0LmlvIGlmIG5vIFdJVE5FVF9TREtfUFJPVklERVJfVVJMIGVudmFyIGlzIHNldHRsZWRcblx0ICogb24gdGhlIGVudmlyb25tZW50LlxuXHQgKi9cblx0c3RhdGljIGFzeW5jIGZyb21FbnYodXJsPzogc3RyaW5nKTogUHJvbWlzZTxKc29uUnBjUHJvdmlkZXI+IHtcblx0XHRyZXR1cm4gSnNvblJwY1Byb3ZpZGVyLmZyb21VUkwoXG5cdFx0XHR1cmwgfHwgcHJvY2Vzcy5lbnYuV0lUTkVUX1NES19QUk9WSURFUl9VUkwgfHwgXCJodHRwczovL3JwYy0wMS53aXRuZXQuaW9cIixcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBhIEpzb25ScGNQcm92aWRlciBvYmplY3QgY29ubmVjdGVkIHRvIHRoZSBzcGVjaWZpZWQgV2l0L1JQQyBlbmRwb2ludC5cblx0ICogQHBhcmFtIHVybCBXaXQvUlBDIGVuZHBvaW50IFVSTC5cblx0ICovXG5cdHN0YXRpYyBhc3luYyBmcm9tVVJMKHVybDogc3RyaW5nKTogUHJvbWlzZTxKc29uUnBjUHJvdmlkZXI+IHtcblx0XHRjb25zdCBwcm92aWRlciA9IG5ldyBKc29uUnBjUHJvdmlkZXIodXJsKTtcblx0XHRyZXR1cm4gcHJvdmlkZXIuY29uc3RhbnRzKCkudGhlbigoKSA9PiBwcm92aWRlcik7XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcih1cmw/OiBzdHJpbmcpIHtcblx0XHR0aGlzLmVuZHBvaW50cyA9IFtdO1xuXHRcdGlmICh1cmwgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29uc3QgdXJscyA9IHVybC5yZXBsYWNlQWxsKFwiLFwiLCBcIjtcIikuc3BsaXQoXCI7XCIpO1xuXHRcdFx0dXJscy5mb3JFYWNoKCh1cmwpID0+IHtcblx0XHRcdFx0Y29uc3QgW3NjaGVtYV0gPSB1dGlscy5wYXJzZVVSTCh1cmwpO1xuXHRcdFx0XHRpZiAoIXNjaGVtYS5zdGFydHNXaXRoKFwiaHR0cDovL1wiKSAmJiAhc2NoZW1hLnN0YXJ0c1dpdGgoXCJodHRwczovL1wiKSkge1xuXHRcdFx0XHRcdHRocm93IEVycm9yKFxuXHRcdFx0XHRcdFx0YFdpdG5ldC5Kc29uUnBjUHJvdmlkZXI6IHVuc3VwcG9ydGVkIFVSTCBzY2hlbWEgJHtzY2hlbWF9YCxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuZW5kcG9pbnRzID0gdXJscztcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5lbmRwb2ludHMucHVzaChcblx0XHRcdFx0cHJvY2Vzcy5lbnYuV0lUTkVUX1NES19QUk9WSURFUl9VUkwgfHwgXCJodHRwczovL3JwYy0wMS53aXRuZXQuaW9cIixcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHRoaXMuX2hlYWRlcnMgPSBuZXcgQXhpb3NIZWFkZXJzKHtcblx0XHRcdFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGdldCBuZXR3b3JrKCk6IE5ldHdvcmsgfCB1bmRlZmluZWQge1xuXHRcdGlmICh0aGlzLl9jb25zdGFudHMpIHtcblx0XHRcdHJldHVybiB0aGlzLl9jb25zdGFudHMuYm9vdHN0cmFwcGluZ19jb21taXR0ZWVbMF0uc3RhcnRzV2l0aChcIndpdFwiKVxuXHRcdFx0XHQ/IFwibWFpbm5ldFwiXG5cdFx0XHRcdDogXCJ0ZXN0bmV0XCI7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGdldCBuZXR3b3JrSWQoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcblx0XHRpZiAodGhpcy5fY29uc3RhbnRzKSB7XG5cdFx0XHRjb25zdCBvYmo6IGFueSA9IHt9O1xuXHRcdFx0b2JqLmFjdGl2aXR5UGVyaW9kID0gdGhpcy5fY29uc3RhbnRzLmFjdGl2aXR5X3BlcmlvZDtcblx0XHRcdG9iai5ib290c3RyYXBIYXNoID0ge1xuXHRcdFx0XHRTSEEyNTY6IEFycmF5LmZyb20odXRpbHMuZnJvbUhleFN0cmluZyh0aGlzLl9jb25zdGFudHMuYm9vdHN0cmFwX2hhc2gpKSxcblx0XHRcdH07XG5cdFx0XHRvYmouYm9vdHN0cmFwcGluZ0NvbW1pdHRlZSA9IHRoaXMuX2NvbnN0YW50cy5ib290c3RyYXBwaW5nX2NvbW1pdHRlZTtcblx0XHRcdG9iai5jaGVja3BvaW50WmVyb1RpbWVzdGFtcCA9IHRoaXMuX2NvbnN0YW50cy5jaGVja3BvaW50X3plcm9fdGltZXN0YW1wO1xuXHRcdFx0b2JqLmNoZWNrcG9pbnRzUGVyaW9kID0gdGhpcy5fY29uc3RhbnRzLmNoZWNrcG9pbnRzX3BlcmlvZDtcblx0XHRcdG9iai5jb2xsYXRlcmFsQWdlID0gdGhpcy5fY29uc3RhbnRzLmNvbGxhdGVyYWxfYWdlO1xuXHRcdFx0b2JqLmNvbGxhdGVyYWxNaW5pbXVtID0gdGhpcy5fY29uc3RhbnRzLmNvbGxhdGVyYWxfbWluaW11bTtcblx0XHRcdG9iai5lcG9jaHNXaXRoTWluaW11bURpZmZpY3VsdHkgPVxuXHRcdFx0XHR0aGlzLl9jb25zdGFudHMuZXBvY2hzX3dpdGhfbWluaW11bV9kaWZmaWN1bHR5O1xuXHRcdFx0b2JqLmV4dHJhUm91bmRzID0gdGhpcy5fY29uc3RhbnRzLmV4dHJhX3JvdW5kcztcblx0XHRcdG9iai5nZW5lc2lzSGFzaCA9IHtcblx0XHRcdFx0U0hBMjU2OiBBcnJheS5mcm9tKHV0aWxzLmZyb21IZXhTdHJpbmcodGhpcy5fY29uc3RhbnRzLmdlbmVzaXNfaGFzaCkpLFxuXHRcdFx0fTtcblx0XHRcdG9iai5oYWx2aW5nUGVyaW9kID0gdGhpcy5fY29uc3RhbnRzLmhhbHZpbmdfcGVyaW9kO1xuXHRcdFx0b2JqLmluaXRpYWxCbG9ja1Jld2FyZCA9IHRoaXMuX2NvbnN0YW50cy5pbml0aWFsX2Jsb2NrX3Jld2FyZDtcblx0XHRcdG9iai5tYXhEcldlaWdodCA9IHRoaXMuX2NvbnN0YW50cy5tYXhfZHJfd2VpZ2h0O1xuXHRcdFx0b2JqLm1heFZ0V2VpZ2h0ID0gdGhpcy5fY29uc3RhbnRzLm1heF92dF93ZWlnaHQ7XG5cdFx0XHRpZiAodGhpcy5fY29uc3RhbnRzLm1pbmltdW1fZGlmZmljdWx0eSA+IDApXG5cdFx0XHRcdG9iai5taW5pbXVtRGlmZmljdWx0eSA9IHRoaXMuX2NvbnN0YW50cy5taW5pbXVtX2RpZmZpY3VsdHk7XG5cdFx0XHRvYmoubWluaW5nQmFja3VwRmFjdG9yID0gdGhpcy5fY29uc3RhbnRzLm1pbmluZ19iYWNrdXBfZmFjdG9yO1xuXHRcdFx0b2JqLm1pbmluZ1JlcGxpY2F0aW9uRmFjdG9yID0gdGhpcy5fY29uc3RhbnRzLm1pbmluZ19yZXBsaWNhdGlvbl9mYWN0b3I7XG5cdFx0XHRvYmoucmVwdXRhdGlvbkV4cGlyZUFscGhhRGlmZiA9XG5cdFx0XHRcdHRoaXMuX2NvbnN0YW50cy5yZXB1dGF0aW9uX2V4cGlyZV9hbHBoYV9kaWZmO1xuXHRcdFx0b2JqLnJlcHV0YXRpb25Jc3N1YW5jZSA9IHRoaXMuX2NvbnN0YW50cy5yZXB1dGF0aW9uX2lzc3VhbmNlO1xuXHRcdFx0b2JqLnJlcHV0YXRpb25Jc3N1YW5jZVN0b3AgPSB0aGlzLl9jb25zdGFudHMucmVwdXRhdGlvbl9pc3N1YW5jZV9zdG9wO1xuXHRcdFx0b2JqLnJlcHV0YXRpb25QZW5hbGl6YXRpb25GYWN0b3IgPVxuXHRcdFx0XHR0aGlzLl9jb25zdGFudHMucmVwdXRhdGlvbl9wZW5hbGl6YXRpb25fZmFjdG9yO1xuXHRcdFx0b2JqLnN1cGVyYmxvY2tDb21taXR0ZWVEZWNyZWFzaW5nUGVyaW9kID1cblx0XHRcdFx0dGhpcy5fY29uc3RhbnRzLnN1cGVyYmxvY2tfY29tbWl0dGVlX2RlY3JlYXNpbmdfcGVyaW9kO1xuXHRcdFx0b2JqLnN1cGVyYmxvY2tDb21taXR0ZWVEZWNyZWFzaW5nU3RlcCA9XG5cdFx0XHRcdHRoaXMuX2NvbnN0YW50cy5zdXBlcmJsb2NrX2NvbW1pdHRlZV9kZWNyZWFzaW5nX3N0ZXA7XG5cdFx0XHRvYmouc3VwZXJibG9ja1BlcmlvZCA9IHRoaXMuX2NvbnN0YW50cy5zdXBlcmJsb2NrX3BlcmlvZDtcblx0XHRcdG9iai5zdXBlcmJsb2NrU2lnbmluZ0NvbW1pdHRlZVNpemUgPVxuXHRcdFx0XHR0aGlzLl9jb25zdGFudHMuc3VwZXJibG9ja19zaWduaW5nX2NvbW1pdHRlZV9zaXplO1xuXHRcdFx0Y29uc3QgbWVzc2FnZSA9IHByb3RvQnVmLmZyb21PYmplY3Qob2JqKTtcblx0XHRcdGNvbnN0IGJ1ZmZlciA9IHByb3RvQnVmLmVuY29kZShtZXNzYWdlKS5maW5pc2goKTtcblx0XHRcdGNvbnN0IGhhc2ggPSB1dGlscy50b0hleFN0cmluZyh1dGlscy5zaGEyNTYoYnVmZmVyKSk7XG5cdFx0XHRjb25zdCBoZXggPSBoYXNoLnN1YnN0cmluZygwLCA0KTtcblx0XHRcdHJldHVybiBwYXJzZUludChoZXgsIDE2KTtcblx0XHR9XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdHByb3RlY3RlZCBuZXh0VVJMKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuZW5kcG9pbnRzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHRoaXMuZW5kcG9pbnRzLmxlbmd0aCldO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFzeW5jIGNhbGxBcGlNZXRob2Q8VD4oXG5cdFx0bWV0aG9kOiBzdHJpbmcsXG5cdFx0cGFyYW1zPzogQXJyYXk8YW55PiB8IGFueSxcblx0KTogUHJvbWlzZTxFcnJvciB8IGFueT4ge1xuXHRcdGNvbnN0IHVybCA9IHRoaXMubmV4dFVSTCgpO1xuXHRcdHJldHVybiBheGlvc1xuXHRcdFx0LnBvc3QoXG5cdFx0XHRcdHVybCxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGpzb25ycGM6IFwiMi4wXCIsXG5cdFx0XHRcdFx0aWQ6IERhdGUubm93KCksXG5cdFx0XHRcdFx0bWV0aG9kLFxuXHRcdFx0XHRcdHBhcmFtcyxcblx0XHRcdFx0fSxcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGhlYWRlcnM6IHRoaXMuX2hlYWRlcnMsXG5cdFx0XHRcdFx0dHJhbnNmb3JtUmVzcG9uc2U6IChyZXNwb25zZSkgPT4ganNvbkJpZygpLnBhcnNlKHJlc3BvbnNlKSxcblx0XHRcdFx0fSxcblx0XHRcdClcblx0XHRcdC50aGVuKChyZXNwb25zZTogYW55KSA9PiB7XG5cdFx0XHRcdGlmIChyZXNwb25zZT8uZXJyb3IgfHwgcmVzcG9uc2U/LmRhdGE/LmVycm9yKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEpzb25ScGNQcm92aWRlckVycm9yKFxuXHRcdFx0XHRcdFx0bWV0aG9kLFxuXHRcdFx0XHRcdFx0cGFyYW1zLFxuXHRcdFx0XHRcdFx0cmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcixcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9IGVsc2UgcmV0dXJuIHJlc3BvbnNlPy5kYXRhPy5yZXN1bHQgYXMgVDtcblx0XHRcdH0pO1xuXHR9XG5cblx0Ly8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG5cdC8qKlxuXHQgKiBHZXQgdGhlIGxpc3Qgb2YgYmxvY2sgaGFzaGVzIHdpdGhpbiBnaXZlbiByYW5nZSwgYXMga25vd24gYnkgdGhlIHByb3ZpZGVyLlxuXHQgKiBAcGFyYW0ge251bWJlcn0gc2luY2UgLSBGaXJzdCBlcG9jaCBmb3Igd2hpY2ggdG8gcmV0dXJuIGJsb2NrIGhhc2hlcy4gSWYgbmVnYXRpdmUsIHJldHVybiBibG9jayBoYXNoZXMgZnJvbSB0aGUgbGFzdCBuIGVwb2Nocy5cblx0ICogQHBhcmFtIHtudW1iZXJ9IGxpbWl0IC0gTnVtYmVyIG9mIGJsb2NrIGhhc2hlcyB0byByZXR1cm4uIElmIG5lZ2F0aXZlLCByZXR1cm4gdGhlIGxhc3QgbiBibG9jayBoYXNoZXMgZnJvbSB0aGlzIGVwb2NoIHJhbmdlLlxuXHQgKi9cblx0cHVibGljIGFzeW5jIGJsb2Nrcyhcblx0XHRzaW5jZTogbnVtYmVyID0gLTEsXG5cdFx0bGltaXQ6IG51bWJlciA9IDEsXG5cdCk6IFByb21pc2U8QXJyYXk8W251bWJlciwgSGFzaF0+PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxbbnVtYmVyLCBIYXNoXT4oTWV0aG9kcy5HZXRCbG9ja0NoYWluLCBbXG5cdFx0XHRzaW5jZSxcblx0XHRcdGxpbWl0LFxuXHRcdF0pO1xuXHR9XG5cblx0Ly8vIEdldCBjb25zZW5zdXMgY29uc3RhbnRzIHVzZWQgYnkgdGhlIG5vZGVcblx0cHVibGljIGFzeW5jIGNvbnN0YW50cygpOiBQcm9taXNlPENvbnNlbnN1c0NvbnN0YW50cz4ge1xuXHRcdGlmICghdGhpcy5fY29uc3RhbnRzKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPENvbnNlbnN1c0NvbnN0YW50cz4oXG5cdFx0XHRcdE1ldGhvZHMuR2V0Q29uc2Vuc3VzQ29uc3RhbnRzLFxuXHRcdFx0KS50aGVuKChjb25zdGFudHM6IENvbnNlbnN1c0NvbnN0YW50cykgPT4ge1xuXHRcdFx0XHR0aGlzLl9jb25zdGFudHMgPSBjb25zdGFudHM7XG5cdFx0XHRcdHJldHVybiBjb25zdGFudHM7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2NvbnN0YW50cztcblx0XHR9XG5cdH1cblxuXHQvLy8gR2V0IGxpbWl0ZWQgbGlzdCBvZiBjdXJyZW50bHkgdG9wIGhvbGRlcnMsIGFzIGtub3duIGJ5IHRoZSBwcm92aWRlci5cblx0cHVibGljIGFzeW5jIGhvbGRlcnMoXG5cdFx0bWluQmFsYW5jZSA9IDAsXG5cdFx0bWF4QmFsYW5jZT86IG51bWJlcixcblx0KTogUHJvbWlzZTxSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQmFsYW5jZTI+PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQmFsYW5jZT4+KFxuXHRcdFx0TWV0aG9kcy5HZXRCYWxhbmNlMixcblx0XHRcdHtcblx0XHRcdFx0YWxsOiB7XG5cdFx0XHRcdFx0bWluQmFsYW5jZSxcblx0XHRcdFx0XHQuLi4obWF4QmFsYW5jZSA/IHsgbWF4QmFsYW5jZSB9IDoge30pLFxuXHRcdFx0XHR9LFxuXHRcdFx0fSxcblx0XHQpLnRoZW4oKGJhbGFuY2VzOiBSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQmFsYW5jZTI+KSA9PiB7XG5cdFx0XHRjb25zdCByZXZlcnNlQ29tcGFyZSA9IChhOiBCYWxhbmNlMiwgYjogQmFsYW5jZTIpID0+IHtcblx0XHRcdFx0Y29uc3QgYV90b3QgPSBhLmxvY2tlZCArIGEudW5sb2NrZWQgKyBhLnN0YWtlZDtcblx0XHRcdFx0Y29uc3QgYl90b3QgPSBiLmxvY2tlZCArIGIudW5sb2NrZWQgKyBiLnN0YWtlZDtcblx0XHRcdFx0aWYgKGFfdG90IDwgYl90b3QpIHJldHVybiAxO1xuXHRcdFx0XHRlbHNlIGlmIChhX3RvdCA+IGJfdG90KSByZXR1cm4gLTE7XG5cdFx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0XHR9O1xuXHRcdFx0cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdFx0T2JqZWN0LmVudHJpZXMoYmFsYW5jZXMpLnNvcnQoXG5cdFx0XHRcdFx0KGE6IChzdHJpbmcgfCBCYWxhbmNlMilbXSwgYjogKHN0cmluZyB8IEJhbGFuY2UyKVtdKSA9PlxuXHRcdFx0XHRcdFx0cmV2ZXJzZUNvbXBhcmUoYVsxXSBhcyBCYWxhbmNlMiwgYlsxXSBhcyBCYWxhbmNlMiksXG5cdFx0XHRcdCksXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0Ly8vIEdldCBsaXN0IG9mIGtub3duIHBlZXJzXG5cdHB1YmxpYyBhc3luYyBrbm93blBlZXJzKCk6IFByb21pc2U8QXJyYXk8UGVlckFkZHI+PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxBcnJheTxQZWVyQWRkcj4+KE1ldGhvZHMuS25vd25QZWVycyk7XG5cdH1cblxuXHQvLy8gR2V0IGFsbCB0aGUgcGVuZGluZyB0cmFuc2FjdGlvbnNcblx0cHVibGljIGFzeW5jIG1lbXBvb2woKTogUHJvbWlzZTxNZW1wb29sPiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxNZW1wb29sPihNZXRob2RzLkdldE1lbXBvb2wpO1xuXHR9XG5cblx0Ly8vIEdldCBwcmlvcml0eSBhbmQgdGltZS10by1ibG9jayBlc3RpbWF0aW9ucyBmb3IgZGlmZmVyZW50IHByaW9yaXR5IHRpZXJzLlxuXHRwdWJsaWMgYXN5bmMgcHJpb3JpdGllcygpOiBQcm9taXNlPFByaW9yaXRpZXM+IHtcblx0XHRyZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPFByaW9yaXRpZXM+KE1ldGhvZHMuUHJpb3JpdHkpO1xuXHR9XG5cblx0Ly8vIEdldCBpbmZvcm1hdGlvbiBhYm91dCBwcm90b2NvbCB2ZXJzaW9ucyBhbmQgd2hpY2ggdmVyc2lvbiBpcyBjdXJyZW50bHkgYmVpbmcgZW5mb3JjZWQuXG5cdHB1YmxpYyBhc3luYyBwcm90b2NvbEluZm8oKTogUHJvbWlzZTxQcm90b2NvbEluZm8+IHtcblx0XHRyZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPFByb3RvY29sSW5mbz4oTWV0aG9kcy5Qcm90b2NvbCk7XG5cdH1cblxuXHQvLy8gR2V0IGEgZnVsbCBsaXN0IG9mIHN0YWtpbmcgcG93ZXJzIG9yZGVyZWQgYnkgcmFua1xuXHRwdWJsaWMgYXN5bmMgcG93ZXJzKFxuXHRcdHF1ZXJ5PzogUXVlcnlTdGFraW5nUG93ZXJzLFxuXHQpOiBQcm9taXNlPEFycmF5PFN0YWtpbmdQb3dlcj4+IHtcblx0XHRyZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPEFycmF5PFN0YWtpbmdQb3dlcj4+KFxuXHRcdFx0TWV0aG9kcy5RdWVyeVN0YWtpbmdQb3dlcnMsXG5cdFx0XHRxdWVyeSxcblx0XHQpO1xuXHR9XG5cblx0Ly8vIEdldCBhIGZ1bGwgbGlzdCBvZiBjdXJyZW50IHN0YWtlIGVudHJpZXMgIFF1ZXJ5IHRoZSBhbW91bnQgb2YgbmFub3dpdHMgc3Rha2VkIGJ5IGFuIGFkZHJlc3MuXG5cdHB1YmxpYyBhc3luYyBzdGFrZXMocXVlcnk/OiBRdWVyeVN0YWtlcyk6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+IHtcblx0XHRyZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPEFycmF5PFN0YWtlRW50cnk+Pihcblx0XHRcdE1ldGhvZHMuUXVlcnlTdGFrZXMsXG5cdFx0XHRxdWVyeSxcblx0XHQpLmNhdGNoKChlcnIpID0+IHtcblx0XHRcdGlmIChcblx0XHRcdFx0ZXJyPy5lcnJvcj8ubWVzc2FnZSAmJlxuXHRcdFx0XHRlcnIuZXJyb3IubWVzc2FnZS5pbmRleE9mKFwibm90IHJlZ2lzdGVyZWRcIikgPiAtMVxuXHRcdFx0KSB7XG5cdFx0XHRcdHJldHVybiBbXTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRocm93IGVycjtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8vLyBHZXQgbm9kZSBzdGF0dXNcblx0cHVibGljIGFzeW5jIHN5bmNTdGF0dXMoKTogUHJvbWlzZTxTeW5jU3RhdHVzPiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxTeW5jU3RhdHVzPihNZXRob2RzLlN5bmNTdGF0dXMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHdpcHMoKTogUHJvbWlzZTxTaWduYWxpbmdJbmZvPiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxTaWduYWxpbmdJbmZvPihNZXRob2RzLlNpZ25hbGluZ0luZm8pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHdpdG5lc3Nlcyhfc2luY2U/OiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj4ge1xuXHRcdC8vIHRvZG86IHdpdG5lc3NlcyBlc3RpbWF0aW9uIHNob3VsZCBpbnN0ZWFkIGJlIGNvbXB1dGVkIGluIHByb3BvcnRpb24gdG9cblx0XHQvLyAgICAgICByYXRpbyBvZiB2YWxpZGF0b3JzIHRoYXQgaGF2ZSBob25lc3RseSB3aXRuZXNzZWQgZGF0YSByZXF1ZXN0c1xuXHRcdC8vICAgICAgIHZzIHZhbGlkYXRvcnMgdGhhdCBoYXZlIGhvbmVzdGx5IHdpdG5lc3NlZCBkYXRhIHJlcXVlc3RzIGFuZFxuXHRcdC8vICAgICAgIG5ldmVyIHJldmVhbGVkIFwiaSBwYXNzZWRcIiBvdXQgb2YgbWFqb3JpdHksXG5cdFx0Ly8gICAgICAgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgZXBvY2hzLlxuXHRcdGxldCBjZW5zdXMgPSAwO1xuXHRcdHJldHVybiB0aGlzLnN0YWtlcyh7IHBhcmFtczogeyBkaXN0aW5jdDogdHJ1ZSB9IH0pIC8vIHRvZG86IGltcGxlbWVudCBgY291bnRgIGZsYWcgb24gSUpzb25ScGNQcm92aWRlci5zdGFrZXMoKVxuXHRcdFx0LnRoZW4oKHJlY29yZHMpID0+IHtcblx0XHRcdFx0Y2Vuc3VzID0gcmVjb3Jkcy5sZW5ndGg7XG5cdFx0XHRcdHJldHVybiB0aGlzLmJsb2NrcygtMTYsIDE2KTsgLy8gdG9kbzogYmxvY2tzKCkgc2hvdWxkIHJldHVybiBlcG9jaCwgaGFzaCBhbmQgdmFsaWRhdG9yIHBraCBmb3IgZWFjaCBibG9ja1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChyZWNvcmRzKSA9PiB7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChyZWNvcmRzLm1hcCgocmVjb3JkKSA9PiB0aGlzLmdldEJsb2NrKHJlY29yZFsxXSkpKTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoYmxvY2tzKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHZhbGlkYXRvcnM6IEFycmF5PFB1YmxpY0tleUhhc2hTdHJpbmc+ID0gW107XG5cdFx0XHRcdGJsb2Nrcy5tYXAoKGJsb2NrKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgcGtoID0gUHVibGljS2V5LmZyb21Qcm90b2J1ZihibG9jay5ibG9ja19zaWcucHVibGljX2tleSlcblx0XHRcdFx0XHRcdC5oYXNoKClcblx0XHRcdFx0XHRcdC50b0JlY2gzMih0aGlzLm5ldHdvcmspO1xuXHRcdFx0XHRcdGlmICghdmFsaWRhdG9ycy5pbmNsdWRlcyhwa2gpKSB2YWxpZGF0b3JzLnB1c2gocGtoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybiBNYXRoLm1pbihcblx0XHRcdFx0XHR2YWxpZGF0b3JzLmxlbmd0aCxcblx0XHRcdFx0XHRNYXRoLmZsb29yKHRoaXMubmV0d29yayA9PT0gXCJ0ZXN0bmV0XCIgPyBjZW5zdXMgLyAyIDogY2Vuc3VzIC8gNCksXG5cdFx0XHRcdCk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0Ly8vIEdldCBiYWxhbmNlXG5cdHB1YmxpYyBhc3luYyBnZXRCYWxhbmNlKHBraDogUHVibGljS2V5SGFzaFN0cmluZyk6IFByb21pc2U8QmFsYW5jZTI+IHtcblx0XHRyZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPEJhbGFuY2UyPihNZXRob2RzLkdldEJhbGFuY2UyLCB7IHBraCB9KS50aGVuKFxuXHRcdFx0KGJhbGFuY2U6IEJhbGFuY2UyKSA9PiAoe1xuXHRcdFx0XHRsb2NrZWQ6IEJpZ0ludChiYWxhbmNlLmxvY2tlZCksXG5cdFx0XHRcdHN0YWtlZDogQmlnSW50KGJhbGFuY2Uuc3Rha2VkKSxcblx0XHRcdFx0dW5sb2NrZWQ6IEJpZ0ludChiYWxhbmNlLnVubG9ja2VkKSxcblx0XHRcdH0pLFxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGJsb2NrIGluZm8gYnkgaGFzaFxuXHQgKiBAcGFyYW0ge0hhc2h9IGJsb2NrSGFzaCAtIEhhc2ggb2YgdGhlIGJsb2NrIHRoYXQgd2UgYXJlIHF1ZXJ5aW5nLlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IHNob3dUcmFuc2FjdGlvbkhhc2ggLSBXaGV0aGVyIHRvIGluY2x1ZGUgYW4gZXh0cmEgZmllbGQgY29udGFpbmluZyBhcnJheSBvZiB0cmFuc2FjdGlvbiBoYXNoZXMuXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgZ2V0QmxvY2soXG5cdFx0YmxvY2tIYXNoOiBIYXNoLFxuXHRcdHNob3dUcmFuc2FjdGlvbkhhc2ggPSBmYWxzZSxcblx0KTogUHJvbWlzZTxCbG9jaz4ge1xuXHRcdHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8QmxvY2s+KE1ldGhvZHMuR2V0QmxvY2ssIFtcblx0XHRcdGJsb2NrSGFzaCxcblx0XHRcdHNob3dUcmFuc2FjdGlvbkhhc2gsXG5cdFx0XSk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0RGF0YVJlcXVlc3QoXG5cdFx0ZHJUeEhhc2g6IEhhc2gsXG5cdFx0bW9kZT86IEdldERhdGFSZXF1ZXN0TW9kZSxcblx0XHRmb3JjZSA9IGZhbHNlLFxuXHQpOiBQcm9taXNlPEdldERhdGFSZXF1ZXN0RnVsbFJlcG9ydCB8IEdldERhdGFSZXF1ZXN0RXRoZXJlYWxSZXBvcnQ+IHtcblx0XHRyZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPFxuXHRcdFx0R2V0RGF0YVJlcXVlc3RGdWxsUmVwb3J0IHwgR2V0RGF0YVJlcXVlc3RFdGhlcmVhbFJlcG9ydFxuXHRcdD4oTWV0aG9kcy5HZXREYXRhUmVxdWVzdCwge1xuXHRcdFx0aGFzaDogZHJUeEhhc2gsXG5cdFx0XHRtb2RlOiBtb2RlIHx8IFwiZnVsbFwiLFxuXHRcdFx0Zm9yY2UsXG5cdFx0fSk7XG5cdH1cblxuXHQvLy8gR2V0IHRoZSBibG9ja3MgdGhhdCBwZXJ0YWluIHRvIHRoZSBzdXBlcmJsb2NrIGluZGV4XG5cdHB1YmxpYyBhc3luYyBnZXRTdXBlcmJsb2NrKGVwb2NoOiBFcG9jaCk6IFByb21pc2U8U3VwZXJibG9ja1JlcG9ydD4ge1xuXHRcdHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8U3VwZXJibG9ja1JlcG9ydD4oTWV0aG9kcy5HZXRTdXBlcmJsb2NrLCB7XG5cdFx0XHRibG9ja19lcG9jaDogZXBvY2gsXG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgYXN5bmMgZ2V0VHJhbnNhY3Rpb24odHhIYXNoOiBIYXNoKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlcG9ydD4ge1xuXHRcdHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8VHJhbnNhY3Rpb25SZXBvcnQ+KE1ldGhvZHMuR2V0VHJhbnNhY3Rpb24sIFtcblx0XHRcdHR4SGFzaCxcblx0XHRdKTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRUcmFuc2FjdGlvblJlY2VpcHQoXG5cdFx0dHhIYXNoOiBIYXNoLFxuXHQpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD4ge1xuXHRcdC8vIHRvZG86IGZldGNoL3VwZGF0ZSByZWNlaXB0IGZyb20gcHJvdmlkZXIsIGlmIG5vdCBjYWNoZWRcblx0XHRyZXR1cm4gSnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW3R4SGFzaF07XG5cdH1cblxuXHQvLy8gR2V0IHV0eG9zXG5cdHB1YmxpYyBhc3luYyBnZXRVdHhvcyhcblx0XHRwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdFx0ZmlsdGVyPzogeyBtaW5WYWx1ZT86IGJpZ2ludCB8IHN0cmluZzsgZnJvbVNpZ25lcj86IFB1YmxpY0tleUhhc2hTdHJpbmcgfSxcblx0KTogUHJvbWlzZTxBcnJheTxVdHhvTWV0YWRhdGE+PiB7XG5cdFx0aWYgKGZpbHRlcikge1xuXHRcdFx0ZmlsdGVyLm1pblZhbHVlID0gZmlsdGVyPy5taW5WYWx1ZT8udG9TdHJpbmcoKSA/PyBcIjBcIjtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxVdHhvSW5mbz4oTWV0aG9kcy5HZXRVdHhvSW5mbywgW1xuXHRcdFx0cGtoLFxuXHRcdFx0Li4uKGZpbHRlciA/IFtmaWx0ZXJdIDogW10pLFxuXHRcdF0pLnRoZW4oKHJlc3VsdDogVXR4b0luZm8pID0+XG5cdFx0XHRyZXN1bHQudXR4b3MubWFwKCh1dHhvOiBVdHhvTWV0YWRhdGEpID0+ICh7XG5cdFx0XHRcdC4uLnV0eG8sXG5cdFx0XHRcdHZhbHVlOiBCaWdJbnQodXR4by52YWx1ZSksXG5cdFx0XHR9KSksXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRWYWx1ZVRyYW5zZmVyKFxuXHRcdHR4SGFzaDogSGFzaCxcblx0XHRtb2RlPzogc3RyaW5nLFxuXHRcdGZvcmNlID0gZmFsc2UsXG5cdCk6IFByb21pc2U8YW55PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxhbnk+KE1ldGhvZHMuR2V0VmFsdWVUcmFuc2Zlciwge1xuXHRcdFx0aGFzaDogdHhIYXNoLFxuXHRcdFx0bW9kZTogbW9kZSxcblx0XHRcdGZvcmNlLFxuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNlYXJjaERhdGFSZXF1ZXN0cyhcblx0XHRyYWRIYXNoOiBIYXNoLFxuXHRcdG9wdGlvbnM/OiB7XG5cdFx0XHRsaW1pdD86IG51bWJlcjtcblx0XHRcdG9mZnNldD86IG51bWJlcjtcblx0XHRcdG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGU7XG5cdFx0XHRyZXZlcnNlPzogYm9vbGVhbjtcblx0XHR9LFxuXHQpOiBQcm9taXNlPEFycmF5PEdldERhdGFSZXF1ZXN0RXRoZXJlYWxSZXBvcnQgfCBHZXREYXRhUmVxdWVzdEZ1bGxSZXBvcnQ+PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxBcnJheTxhbnlbXT4+KE1ldGhvZHMuU2VhcmNoRGF0YVJlcXVlc3RzLCB7XG5cdFx0XHRyYWRIYXNoLFxuXHRcdFx0bGltaXQ6IG9wdGlvbnM/LmxpbWl0IHx8IDEsXG5cdFx0XHRvZmZzZXQ6IG9wdGlvbnM/Lm9mZnNldCB8fCAwLFxuXHRcdFx0cmV2ZXJzZTogIShvcHRpb25zPy5yZXZlcnNlID09PSBmYWxzZSksXG5cdFx0fSkudGhlbihhc3luYyAoZW50cmllcykgPT5cblx0XHRcdFByb21pc2UuYWxsKFxuXHRcdFx0XHRlbnRyaWVzLm1hcCgoZW50cnk6IGFueVtdKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0RGF0YVJlcXVlc3QoXG5cdFx0XHRcdFx0XHRlbnRyeVsxXSxcblx0XHRcdFx0XHRcdG9wdGlvbnM/Lm1vZGUgfHwgXCJldGhlcmVhbFwiLFxuXHRcdFx0XHRcdFx0dHJ1ZSxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9KSxcblx0XHRcdCksXG5cdFx0KTtcblx0fVxuXG5cdC8vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblx0cHVibGljIGFzeW5jIHNlbmRSYXdUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxib29sZWFuPihNZXRob2RzLkludmVudG9yeSwgeyB0cmFuc2FjdGlvbiB9KTtcblx0fVxuXG5cdC8vLyBHZXQgc3VwcGx5IGluZm9cblx0cHVibGljIGFzeW5jIHN1cHBseUluZm8oKTogUHJvbWlzZTxTdXBwbHlJbmZvPiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxTdXBwbHlJbmZvPihNZXRob2RzLkdldFN1cHBseUluZm8pO1xuXHR9XG59XG4iXX0=
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JwYy9wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxJQUFJLEtBQUssRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUN2RCxPQUFPLE9BQU8sTUFBTSxhQUFhLENBQUM7QUFFbEMsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFL0MsT0FBTyxRQUFRLE1BQU0sWUFBWSxDQUFDO0FBRWxDLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsUUFBUSxDQUFDO0FBQ3JDLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLG1DQUFtQyxDQUFDLENBQUMsQ0FBQztBQUNuRixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFNUQsT0FBTyxFQUFFLFNBQVMsRUFBcUQsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRyxPQUFPLEtBQUssS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUVyQyxPQUFPLEVBU04sT0FBTyxHQWNQLE1BQU0sWUFBWSxDQUFDO0FBK0NwQixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsS0FBSztJQUNyQyxLQUFLLENBQU87SUFDWixNQUFNLENBQVM7SUFDZixNQUFNLENBQVE7SUFDdkIsWUFBWSxNQUFjLEVBQUUsTUFBYSxFQUFFLEtBQVc7UUFDckQsS0FBSyxDQUFDLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekUsT0FBTyxLQUFLLEVB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Q0FBQyxPQUFPLEVBQUUsT0FBTyxLQUFLLEtBQUssQ0FBQztTQUN0QyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUN6QixPQUFPLENBQUMsR0FBRyxDQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFZLEVBQUUsRUFBRTtZQUM1QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3pFLENBQUMsQ0FBQyxDQUNGLENBQ0QsQ0FBQztJQUNILENBQUM7SUFFRCxtSEFBbUg7SUFDNUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFdBQWdCO1FBQy9DLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBVSxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsbUJBQW1CO0lBQ1osS0FBSyxDQUFDLFVBQVU7UUFDdEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFhLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVxdWlyZSB9IGZyb20gXCJub2RlOm1vZHVsZVwiO1xuaW1wb3J0IHsgQXhpb3NIZWFkZXJzLCBkZWZhdWx0IGFzIGF4aW9zIH0gZnJvbSBcImF4aW9zXCI7XG5pbXBvcnQganNvbkJpZyBmcm9tIFwianNvbi1iaWdpbnRcIjtcblxuY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtcblxuaW1wb3J0IHByb3RvYnVmIGZyb20gXCJwcm90b2J1ZmpzXCI7XG5cbmNvbnN0IHsgUm9vdDogUHJvdG9Sb290IH0gPSBwcm90b2J1ZjtcbmNvbnN0IHByb3RvUm9vdCA9IFByb3RvUm9vdC5mcm9tSlNPTihyZXF1aXJlKFwiLi4vLi4vLi4vd2l0bmV0L3dpdG5ldC5wcm90by5qc29uXCIpKTtcbmNvbnN0IHByb3RvQnVmID0gcHJvdG9Sb290Lmxvb2t1cFR5cGUoXCJDb25zZW5zdXNDb25zdGFudHNcIik7XG5cbmltcG9ydCB7IFB1YmxpY0tleSwgdHlwZSBQdWJsaWNLZXlIYXNoU3RyaW5nLCB0eXBlIFRyYW5zYWN0aW9uUmVjZWlwdCB9IGZyb20gXCIuLi9jcnlwdG8vdHlwZXMuanNcIjtcbmltcG9ydCB0eXBlIHsgRXBvY2gsIEhhc2gsIE5ldHdvcmssIFV0eG9NZXRhZGF0YSB9IGZyb20gXCIuLi90eXBlcy5qc1wiO1xuaW1wb3J0ICogYXMgdXRpbHMgZnJvbSBcIi4uL3V0aWxzLmpzXCI7XG5cbmltcG9ydCB7XG5cdHR5cGUgQmFsYW5jZSxcblx0dHlwZSBCYWxhbmNlMixcblx0dHlwZSBCbG9jayxcblx0dHlwZSBDb25zZW5zdXNDb25zdGFudHMsXG5cdHR5cGUgR2V0RGF0YVJlcXVlc3RFdGhlcmVhbFJlcG9ydCxcblx0dHlwZSBHZXREYXRhUmVxdWVzdEZ1bGxSZXBvcnQsXG5cdHR5cGUgR2V0RGF0YVJlcXVlc3RNb2RlLFxuXHR0eXBlIE1lbXBvb2wsXG5cdE1ldGhvZHMsXG5cdHR5cGUgUGVlckFkZHIsXG5cdHR5cGUgUHJpb3JpdGllcyxcblx0dHlwZSBQcm90b2NvbEluZm8sXG5cdHR5cGUgUXVlcnlTdGFrZXMsXG5cdHR5cGUgUXVlcnlTdGFraW5nUG93ZXJzLFxuXHR0eXBlIFNpZ25hbGluZ0luZm8sXG5cdHR5cGUgU3Rha2VFbnRyeSxcblx0dHlwZSBTdGFraW5nUG93ZXIsXG5cdHR5cGUgU3VwZXJibG9ja1JlcG9ydCxcblx0dHlwZSBTdXBwbHlJbmZvLFxuXHR0eXBlIFN5bmNTdGF0dXMsXG5cdHR5cGUgVHJhbnNhY3Rpb25SZXBvcnQsXG5cdHR5cGUgVXR4b0luZm8sXG59IGZyb20gXCIuL3R5cGVzLmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUpzb25ScGNQcm92aWRlciB7XG5cdG5ldHdvcms/OiBOZXR3b3JrO1xuXHRuZXR3b3JrSWQ/OiBudW1iZXI7XG5cblx0YmxvY2tzKHNpbmNlOiBFcG9jaCwgbGltaXQ6IG51bWJlcik6IFByb21pc2U8QXJyYXk8W251bWJlciwgSGFzaCAvKiwgUHVibGljS2V5SGFzaFN0cmluZyovXT4+O1xuXHRjb25zdGFudHMoKTogUHJvbWlzZTxDb25zZW5zdXNDb25zdGFudHM+O1xuXHRob2xkZXJzKGxpbWl0PzogbnVtYmVyKTogUHJvbWlzZTxSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQmFsYW5jZTI+Pjtcblx0bWVtcG9vbCgpOiBQcm9taXNlPE1lbXBvb2w+O1xuXHRwb3dlcnMocGFyYW1zPzogUXVlcnlTdGFraW5nUG93ZXJzKTogUHJvbWlzZTxBcnJheTxTdGFraW5nUG93ZXI+Pjtcblx0cHJpb3JpdGllcygpOiBQcm9taXNlPFByaW9yaXRpZXM+O1xuXHRwcm90b2NvbEluZm8oKTogUHJvbWlzZTxQcm90b2NvbEluZm8+O1xuXHRzdGFrZXMocGFyYW1zOiBRdWVyeVN0YWtlcyk6IFByb21pc2U8QXJyYXk8U3Rha2VFbnRyeT4+O1xuXHRzdXBwbHlJbmZvKCk6IFByb21pc2U8U3VwcGx5SW5mbz47XG5cdHN5bmNTdGF0dXMoKTogUHJvbWlzZTxhbnk+O1xuXHR3aXBzKCk6IFByb21pc2U8U2lnbmFsaW5nSW5mbz47XG5cdHdpdG5lc3NlcygpOiBQcm9taXNlPG51bWJlcj47XG5cblx0Z2V0QmFsYW5jZShwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcpOiBQcm9taXNlPEJhbGFuY2UyPjtcblx0Z2V0QmxvY2soYmxvY2tIYXNoOiBIYXNoLCBzaG93VHJhbnNhY3Rpb25IYXNoZXM/OiBib29sZWFuKTogUHJvbWlzZTxCbG9jaz47XG5cdGdldERhdGFSZXF1ZXN0KFxuXHRcdGRyVHhIYXNoOiBIYXNoLFxuXHRcdG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGUsXG5cdCk6IFByb21pc2U8R2V0RGF0YVJlcXVlc3RGdWxsUmVwb3J0IHwgR2V0RGF0YVJlcXVlc3RFdGhlcmVhbFJlcG9ydD47XG5cdGdldFN1cGVyYmxvY2soZXBvY2g6IEVwb2NoKTogUHJvbWlzZTxTdXBlcmJsb2NrUmVwb3J0Pjtcblx0Z2V0VHJhbnNhY3Rpb24odHhIYXNoOiBIYXNoKTogUHJvbWlzZTxUcmFuc2FjdGlvblJlcG9ydD47XG5cdGdldFRyYW5zYWN0aW9uUmVjZWlwdCh0eEhhc2g6IEhhc2gpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD47XG5cdGdldFV0eG9zKFxuXHRcdHBraDogUHVibGljS2V5SGFzaFN0cmluZyxcblx0XHRmaWx0ZXI/OiB7IG1pblZhbHVlPzogYmlnaW50OyBzaWduZXI/OiBQdWJsaWNLZXlIYXNoU3RyaW5nIH0sXG5cdCk6IFByb21pc2U8QXJyYXk8VXR4b01ldGFkYXRhPj47XG5cdGdldFZhbHVlVHJhbnNmZXIodHhIYXNoOiBIYXNoLCBtb2RlPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuXG5cdHNlYXJjaERhdGFSZXF1ZXN0cyhcblx0XHRyYWRIYXNoOiBIYXNoLFxuXHRcdG9wdGlvbnM/OiB7XG5cdFx0XHRsaW1pdD86IG51bWJlcjtcblx0XHRcdG9mZnNldD86IG51bWJlcjtcblx0XHRcdG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGU7XG5cdFx0XHRyZXZlcnNlPzogYm9vbGVhbjtcblx0XHR9LFxuXHQpOiBQcm9taXNlPEFycmF5PEdldERhdGFSZXF1ZXN0RnVsbFJlcG9ydCB8IEdldERhdGFSZXF1ZXN0RXRoZXJlYWxSZXBvcnQ+PjtcblxuXHRzZW5kUmF3VHJhbnNhY3Rpb24odHg6IGFueSk6IFByb21pc2U8Ym9vbGVhbj47XG59XG5cbmV4cG9ydCBjbGFzcyBKc29uUnBjUHJvdmlkZXJFcnJvciBleHRlbmRzIEVycm9yIHtcblx0cmVhZG9ubHkgZXJyb3I/OiBhbnk7XG5cdHJlYWRvbmx5IG1ldGhvZDogc3RyaW5nO1xuXHRyZWFkb25seSBwYXJhbXM6IGFueVtdO1xuXHRjb25zdHJ1Y3RvcihtZXRob2Q6IHN0cmluZywgcGFyYW1zOiBhbnlbXSwgZXJyb3I/OiBhbnkpIHtcblx0XHRzdXBlcihgJHttZXRob2R9KCR7SlNPTi5zdHJpbmdpZnkocGFyYW1zKX0pOiAke0pTT04uc3RyaW5naWZ5KGVycm9yKX0pYCk7XG5cdFx0ZGVsZXRlIGVycm9yPy5zdGFjaztcblx0XHR0aGlzLmVycm9yID0gZXJyb3I7XG5cdFx0dGhpcy5tZXRob2QgPSBtZXRob2Q7XG5cdFx0dGhpcy5wYXJhbXMgPSBwYXJhbXM7XG5cdH1cbn1cblxuZXhwb3J0IGNsYXNzIEpzb25ScGNQcm92aWRlciBpbXBsZW1lbnRzIElKc29uUnBjUHJvdmlkZXIge1xuXHRwdWJsaWMgcmVhZG9ubHkgZW5kcG9pbnRzOiBzdHJpbmdbXTtcblxuXHRwdWJsaWMgc3RhdGljIHJlY2VpcHRzOiBSZWNvcmQ8SGFzaCwgVHJhbnNhY3Rpb25SZWNlaXB0PiA9IHt9O1xuXG5cdHByb3RlY3RlZCBfY29uc3RhbnRzPzogQ29uc2Vuc3VzQ29uc3RhbnRzO1xuXHRwcm90ZWN0ZWQgX2hlYWRlcnM6IEF4aW9zSGVhZGVycztcblxuXHQvKipcblx0ICogQ3JlYXRlIGFuZCBpbml0aWFsaXplIGEgSnNvblJwY1Byb3ZpZGVyIG9iamVjdCBjb25uZWN0ZWQgdG8gdGhlIGRlZmF1bHQgV2l0L1JQQyBlbmRwb2ludC5cblx0ICogRGVmYXVsdHMgdG8gaHR0cHM6Ly9ycGMtMDEud2l0bmV0LmlvIGlmIG5vIFdJVE5FVF9TREtfUFJPVklERVJfVVJMIGVudmFyIGlzIHNldHRsZWRcblx0ICogb24gdGhlIGVudmlyb25tZW50LlxuXHQgKi9cblx0c3RhdGljIGFzeW5jIGZyb21FbnYodXJsPzogc3RyaW5nKTogUHJvbWlzZTxKc29uUnBjUHJvdmlkZXI+IHtcblx0XHRyZXR1cm4gSnNvblJwY1Byb3ZpZGVyLmZyb21VUkwodXJsIHx8IHByb2Nlc3MuZW52LldJVE5FVF9TREtfUFJPVklERVJfVVJMIHx8IFwiaHR0cHM6Ly9ycGMtMDEud2l0bmV0LmlvXCIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBhIEpzb25ScGNQcm92aWRlciBvYmplY3QgY29ubmVjdGVkIHRvIHRoZSBzcGVjaWZpZWQgV2l0L1JQQyBlbmRwb2ludC5cblx0ICogQHBhcmFtIHVybCBXaXQvUlBDIGVuZHBvaW50IFVSTC5cblx0ICovXG5cdHN0YXRpYyBhc3luYyBmcm9tVVJMKHVybDogc3RyaW5nKTogUHJvbWlzZTxKc29uUnBjUHJvdmlkZXI+IHtcblx0XHRjb25zdCBwcm92aWRlciA9IG5ldyBKc29uUnBjUHJvdmlkZXIodXJsKTtcblx0XHRyZXR1cm4gcHJvdmlkZXIuY29uc3RhbnRzKCkudGhlbigoKSA9PiBwcm92aWRlcik7XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcih1cmw/OiBzdHJpbmcpIHtcblx0XHR0aGlzLmVuZHBvaW50cyA9IFtdO1xuXHRcdGlmICh1cmwgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0Y29uc3QgdXJscyA9IHVybC5yZXBsYWNlQWxsKFwiLFwiLCBcIjtcIikuc3BsaXQoXCI7XCIpO1xuXHRcdFx0dXJscy5mb3JFYWNoKCh1cmwpID0+IHtcblx0XHRcdFx0Y29uc3QgW3NjaGVtYV0gPSB1dGlscy5wYXJzZVVSTCh1cmwpO1xuXHRcdFx0XHRpZiAoIXNjaGVtYS5zdGFydHNXaXRoKFwiaHR0cDovL1wiKSAmJiAhc2NoZW1hLnN0YXJ0c1dpdGgoXCJodHRwczovL1wiKSkge1xuXHRcdFx0XHRcdHRocm93IEVycm9yKGBXaXRuZXQuSnNvblJwY1Byb3ZpZGVyOiB1bnN1cHBvcnRlZCBVUkwgc2NoZW1hICR7c2NoZW1hfWApO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHRoaXMuZW5kcG9pbnRzID0gdXJscztcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5lbmRwb2ludHMucHVzaChwcm9jZXNzLmVudi5XSVRORVRfU0RLX1BST1ZJREVSX1VSTCB8fCBcImh0dHBzOi8vcnBjLTAxLndpdG5ldC5pb1wiKTtcblx0XHR9XG5cdFx0dGhpcy5faGVhZGVycyA9IG5ldyBBeGlvc0hlYWRlcnMoe1xuXHRcdFx0XCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IG5ldHdvcmsoKTogTmV0d29yayB8IHVuZGVmaW5lZCB7XG5cdFx0aWYgKHRoaXMuX2NvbnN0YW50cykge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2NvbnN0YW50cy5ib290c3RyYXBwaW5nX2NvbW1pdHRlZVswXS5zdGFydHNXaXRoKFwid2l0XCIpID8gXCJtYWlubmV0XCIgOiBcInRlc3RuZXRcIjtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgZ2V0IG5ldHdvcmtJZCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuXHRcdGlmICh0aGlzLl9jb25zdGFudHMpIHtcblx0XHRcdGNvbnN0IG9iajogYW55ID0ge307XG5cdFx0XHRvYmouYWN0aXZpdHlQZXJpb2QgPSB0aGlzLl9jb25zdGFudHMuYWN0aXZpdHlfcGVyaW9kO1xuXHRcdFx0b2JqLmJvb3RzdHJhcEhhc2ggPSB7XG5cdFx0XHRcdFNIQTI1NjogQXJyYXkuZnJvbSh1dGlscy5mcm9tSGV4U3RyaW5nKHRoaXMuX2NvbnN0YW50cy5ib290c3RyYXBfaGFzaCkpLFxuXHRcdFx0fTtcblx0XHRcdG9iai5ib290c3RyYXBwaW5nQ29tbWl0dGVlID0gdGhpcy5fY29uc3RhbnRzLmJvb3RzdHJhcHBpbmdfY29tbWl0dGVlO1xuXHRcdFx0b2JqLmNoZWNrcG9pbnRaZXJvVGltZXN0YW1wID0gdGhpcy5fY29uc3RhbnRzLmNoZWNrcG9pbnRfemVyb190aW1lc3RhbXA7XG5cdFx0XHRvYmouY2hlY2twb2ludHNQZXJpb2QgPSB0aGlzLl9jb25zdGFudHMuY2hlY2twb2ludHNfcGVyaW9kO1xuXHRcdFx0b2JqLmNvbGxhdGVyYWxBZ2UgPSB0aGlzLl9jb25zdGFudHMuY29sbGF0ZXJhbF9hZ2U7XG5cdFx0XHRvYmouY29sbGF0ZXJhbE1pbmltdW0gPSB0aGlzLl9jb25zdGFudHMuY29sbGF0ZXJhbF9taW5pbXVtO1xuXHRcdFx0b2JqLmVwb2Noc1dpdGhNaW5pbXVtRGlmZmljdWx0eSA9IHRoaXMuX2NvbnN0YW50cy5lcG9jaHNfd2l0aF9taW5pbXVtX2RpZmZpY3VsdHk7XG5cdFx0XHRvYmouZXh0cmFSb3VuZHMgPSB0aGlzLl9jb25zdGFudHMuZXh0cmFfcm91bmRzO1xuXHRcdFx0b2JqLmdlbmVzaXNIYXNoID0ge1xuXHRcdFx0XHRTSEEyNTY6IEFycmF5LmZyb20odXRpbHMuZnJvbUhleFN0cmluZyh0aGlzLl9jb25zdGFudHMuZ2VuZXNpc19oYXNoKSksXG5cdFx0XHR9O1xuXHRcdFx0b2JqLmhhbHZpbmdQZXJpb2QgPSB0aGlzLl9jb25zdGFudHMuaGFsdmluZ19wZXJpb2Q7XG5cdFx0XHRvYmouaW5pdGlhbEJsb2NrUmV3YXJkID0gdGhpcy5fY29uc3RhbnRzLmluaXRpYWxfYmxvY2tfcmV3YXJkO1xuXHRcdFx0b2JqLm1heERyV2VpZ2h0ID0gdGhpcy5fY29uc3RhbnRzLm1heF9kcl93ZWlnaHQ7XG5cdFx0XHRvYmoubWF4VnRXZWlnaHQgPSB0aGlzLl9jb25zdGFudHMubWF4X3Z0X3dlaWdodDtcblx0XHRcdGlmICh0aGlzLl9jb25zdGFudHMubWluaW11bV9kaWZmaWN1bHR5ID4gMCkgb2JqLm1pbmltdW1EaWZmaWN1bHR5ID0gdGhpcy5fY29uc3RhbnRzLm1pbmltdW1fZGlmZmljdWx0eTtcblx0XHRcdG9iai5taW5pbmdCYWNrdXBGYWN0b3IgPSB0aGlzLl9jb25zdGFudHMubWluaW5nX2JhY2t1cF9mYWN0b3I7XG5cdFx0XHRvYmoubWluaW5nUmVwbGljYXRpb25GYWN0b3IgPSB0aGlzLl9jb25zdGFudHMubWluaW5nX3JlcGxpY2F0aW9uX2ZhY3Rvcjtcblx0XHRcdG9iai5yZXB1dGF0aW9uRXhwaXJlQWxwaGFEaWZmID0gdGhpcy5fY29uc3RhbnRzLnJlcHV0YXRpb25fZXhwaXJlX2FscGhhX2RpZmY7XG5cdFx0XHRvYmoucmVwdXRhdGlvbklzc3VhbmNlID0gdGhpcy5fY29uc3RhbnRzLnJlcHV0YXRpb25faXNzdWFuY2U7XG5cdFx0XHRvYmoucmVwdXRhdGlvbklzc3VhbmNlU3RvcCA9IHRoaXMuX2NvbnN0YW50cy5yZXB1dGF0aW9uX2lzc3VhbmNlX3N0b3A7XG5cdFx0XHRvYmoucmVwdXRhdGlvblBlbmFsaXphdGlvbkZhY3RvciA9IHRoaXMuX2NvbnN0YW50cy5yZXB1dGF0aW9uX3BlbmFsaXphdGlvbl9mYWN0b3I7XG5cdFx0XHRvYmouc3VwZXJibG9ja0NvbW1pdHRlZURlY3JlYXNpbmdQZXJpb2QgPSB0aGlzLl9jb25zdGFudHMuc3VwZXJibG9ja19jb21taXR0ZWVfZGVjcmVhc2luZ19wZXJpb2Q7XG5cdFx0XHRvYmouc3VwZXJibG9ja0NvbW1pdHRlZURlY3JlYXNpbmdTdGVwID0gdGhpcy5fY29uc3RhbnRzLnN1cGVyYmxvY2tfY29tbWl0dGVlX2RlY3JlYXNpbmdfc3RlcDtcblx0XHRcdG9iai5zdXBlcmJsb2NrUGVyaW9kID0gdGhpcy5fY29uc3RhbnRzLnN1cGVyYmxvY2tfcGVyaW9kO1xuXHRcdFx0b2JqLnN1cGVyYmxvY2tTaWduaW5nQ29tbWl0dGVlU2l6ZSA9IHRoaXMuX2NvbnN0YW50cy5zdXBlcmJsb2NrX3NpZ25pbmdfY29tbWl0dGVlX3NpemU7XG5cdFx0XHRjb25zdCBtZXNzYWdlID0gcHJvdG9CdWYuZnJvbU9iamVjdChvYmopO1xuXHRcdFx0Y29uc3QgYnVmZmVyID0gcHJvdG9CdWYuZW5jb2RlKG1lc3NhZ2UpLmZpbmlzaCgpO1xuXHRcdFx0Y29uc3QgaGFzaCA9IHV0aWxzLnRvSGV4U3RyaW5nKHV0aWxzLnNoYTI1NihidWZmZXIpKTtcblx0XHRcdGNvbnN0IGhleCA9IGhhc2guc3Vic3RyaW5nKDAsIDQpO1xuXHRcdFx0cmV0dXJuIHBhcnNlSW50KGhleCwgMTYpO1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0cHJvdGVjdGVkIG5leHRVUkwoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5lbmRwb2ludHNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogdGhpcy5lbmRwb2ludHMubGVuZ3RoKV07XG5cdH1cblxuXHRwcm90ZWN0ZWQgYXN5bmMgY2FsbEFwaU1ldGhvZDxUPihtZXRob2Q6IHN0cmluZywgcGFyYW1zPzogQXJyYXk8YW55PiB8IGFueSk6IFByb21pc2U8RXJyb3IgfCBhbnk+IHtcblx0XHRjb25zdCB1cmwgPSB0aGlzLm5leHRVUkwoKTtcblx0XHRyZXR1cm4gYXhpb3Ncblx0XHRcdC5wb3N0KFxuXHRcdFx0XHR1cmwsXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRqc29ucnBjOiBcIjIuMFwiLFxuXHRcdFx0XHRcdGlkOiBEYXRlLm5vdygpLFxuXHRcdFx0XHRcdG1ldGhvZCxcblx0XHRcdFx0XHRwYXJhbXMsXG5cdFx0XHRcdH0sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHRoZWFkZXJzOiB0aGlzLl9oZWFkZXJzLFxuXHRcdFx0XHRcdHRyYW5zZm9ybVJlc3BvbnNlOiAocmVzcG9uc2UpID0+IGpzb25CaWcoKS5wYXJzZShyZXNwb25zZSksXG5cdFx0XHRcdH0sXG5cdFx0XHQpXG5cdFx0XHQudGhlbigocmVzcG9uc2U6IGFueSkgPT4ge1xuXHRcdFx0XHRpZiAocmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcikge1xuXHRcdFx0XHRcdHRocm93IG5ldyBKc29uUnBjUHJvdmlkZXJFcnJvcihtZXRob2QsIHBhcmFtcywgcmVzcG9uc2U/LmVycm9yIHx8IHJlc3BvbnNlPy5kYXRhPy5lcnJvcik7XG5cdFx0XHRcdH0gZWxzZSByZXR1cm4gcmVzcG9uc2U/LmRhdGE/LnJlc3VsdCBhcyBUO1xuXHRcdFx0fSk7XG5cdH1cblxuXHQvLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblx0LyoqXG5cdCAqIEdldCB0aGUgbGlzdCBvZiBibG9jayBoYXNoZXMgd2l0aGluIGdpdmVuIHJhbmdlLCBhcyBrbm93biBieSB0aGUgcHJvdmlkZXIuXG5cdCAqIEBwYXJhbSB7bnVtYmVyfSBzaW5jZSAtIEZpcnN0IGVwb2NoIGZvciB3aGljaCB0byByZXR1cm4gYmxvY2sgaGFzaGVzLiBJZiBuZWdhdGl2ZSwgcmV0dXJuIGJsb2NrIGhhc2hlcyBmcm9tIHRoZSBsYXN0IG4gZXBvY2hzLlxuXHQgKiBAcGFyYW0ge251bWJlcn0gbGltaXQgLSBOdW1iZXIgb2YgYmxvY2sgaGFzaGVzIHRvIHJldHVybi4gSWYgbmVnYXRpdmUsIHJldHVybiB0aGUgbGFzdCBuIGJsb2NrIGhhc2hlcyBmcm9tIHRoaXMgZXBvY2ggcmFuZ2UuXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgYmxvY2tzKHNpbmNlOiBudW1iZXIgPSAtMSwgbGltaXQ6IG51bWJlciA9IDEpOiBQcm9taXNlPEFycmF5PFtudW1iZXIsIEhhc2hdPj4ge1xuXHRcdHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8W251bWJlciwgSGFzaF0+KE1ldGhvZHMuR2V0QmxvY2tDaGFpbiwgW3NpbmNlLCBsaW1pdF0pO1xuXHR9XG5cblx0Ly8vIEdldCBjb25zZW5zdXMgY29uc3RhbnRzIHVzZWQgYnkgdGhlIG5vZGVcblx0cHVibGljIGFzeW5jIGNvbnN0YW50cygpOiBQcm9taXNlPENvbnNlbnN1c0NvbnN0YW50cz4ge1xuXHRcdGlmICghdGhpcy5fY29uc3RhbnRzKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPENvbnNlbnN1c0NvbnN0YW50cz4oTWV0aG9kcy5HZXRDb25zZW5zdXNDb25zdGFudHMpLnRoZW4oXG5cdFx0XHRcdChjb25zdGFudHM6IENvbnNlbnN1c0NvbnN0YW50cykgPT4ge1xuXHRcdFx0XHRcdHRoaXMuX2NvbnN0YW50cyA9IGNvbnN0YW50cztcblx0XHRcdFx0XHRyZXR1cm4gY29uc3RhbnRzO1xuXHRcdFx0XHR9LFxuXHRcdFx0KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2NvbnN0YW50cztcblx0XHR9XG5cdH1cblxuXHQvLy8gR2V0IGxpbWl0ZWQgbGlzdCBvZiBjdXJyZW50bHkgdG9wIGhvbGRlcnMsIGFzIGtub3duIGJ5IHRoZSBwcm92aWRlci5cblx0cHVibGljIGFzeW5jIGhvbGRlcnMobWluQmFsYW5jZSA9IDAsIG1heEJhbGFuY2U/OiBudW1iZXIpOiBQcm9taXNlPFJlY29yZDxQdWJsaWNLZXlIYXNoU3RyaW5nLCBCYWxhbmNlMj4+IHtcblx0XHRyZXR1cm4gdGhpcy5jYWxsQXBpTWV0aG9kPFJlY29yZDxQdWJsaWNLZXlIYXNoU3RyaW5nLCBCYWxhbmNlPj4oTWV0aG9kcy5HZXRCYWxhbmNlMiwge1xuXHRcdFx0YWxsOiB7XG5cdFx0XHRcdG1pbkJhbGFuY2UsXG5cdFx0XHRcdC4uLihtYXhCYWxhbmNlID8geyBtYXhCYWxhbmNlIH0gOiB7fSksXG5cdFx0XHR9LFxuXHRcdH0pLnRoZW4oKGJhbGFuY2VzOiBSZWNvcmQ8UHVibGljS2V5SGFzaFN0cmluZywgQmFsYW5jZTI+KSA9PiB7XG5cdFx0XHRjb25zdCByZXZlcnNlQ29tcGFyZSA9IChhOiBCYWxhbmNlMiwgYjogQmFsYW5jZTIpID0+IHtcblx0XHRcdFx0Y29uc3QgYV90b3QgPSBhLmxvY2tlZCArIGEudW5sb2NrZWQgKyBhLnN0YWtlZDtcblx0XHRcdFx0Y29uc3QgYl90b3QgPSBiLmxvY2tlZCArIGIudW5sb2NrZWQgKyBiLnN0YWtlZDtcblx0XHRcdFx0aWYgKGFfdG90IDwgYl90b3QpIHJldHVybiAxO1xuXHRcdFx0XHRlbHNlIGlmIChhX3RvdCA+IGJfdG90KSByZXR1cm4gLTE7XG5cdFx0XHRcdGVsc2UgcmV0dXJuIDA7XG5cdFx0XHR9O1xuXHRcdFx0cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcblx0XHRcdFx0T2JqZWN0LmVudHJpZXMoYmFsYW5jZXMpLnNvcnQoKGE6IChzdHJpbmcgfCBCYWxhbmNlMilbXSwgYjogKHN0cmluZyB8IEJhbGFuY2UyKVtdKSA9PlxuXHRcdFx0XHRcdHJldmVyc2VDb21wYXJlKGFbMV0gYXMgQmFsYW5jZTIsIGJbMV0gYXMgQmFsYW5jZTIpLFxuXHRcdFx0XHQpLFxuXHRcdFx0KTtcblx0XHR9KTtcblx0fVxuXG5cdC8vLyBHZXQgbGlzdCBvZiBrbm93biBwZWVyc1xuXHRwdWJsaWMgYXN5bmMga25vd25QZWVycygpOiBQcm9taXNlPEFycmF5PFBlZXJBZGRyPj4ge1xuXHRcdHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8QXJyYXk8UGVlckFkZHI+PihNZXRob2RzLktub3duUGVlcnMpO1xuXHR9XG5cblx0Ly8vIEdldCBhbGwgdGhlIHBlbmRpbmcgdHJhbnNhY3Rpb25zXG5cdHB1YmxpYyBhc3luYyBtZW1wb29sKCk6IFByb21pc2U8TWVtcG9vbD4ge1xuXHRcdHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8TWVtcG9vbD4oTWV0aG9kcy5HZXRNZW1wb29sKTtcblx0fVxuXG5cdC8vLyBHZXQgcHJpb3JpdHkgYW5kIHRpbWUtdG8tYmxvY2sgZXN0aW1hdGlvbnMgZm9yIGRpZmZlcmVudCBwcmlvcml0eSB0aWVycy5cblx0cHVibGljIGFzeW5jIHByaW9yaXRpZXMoKTogUHJvbWlzZTxQcmlvcml0aWVzPiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxQcmlvcml0aWVzPihNZXRob2RzLlByaW9yaXR5KTtcblx0fVxuXG5cdC8vLyBHZXQgaW5mb3JtYXRpb24gYWJvdXQgcHJvdG9jb2wgdmVyc2lvbnMgYW5kIHdoaWNoIHZlcnNpb24gaXMgY3VycmVudGx5IGJlaW5nIGVuZm9yY2VkLlxuXHRwdWJsaWMgYXN5bmMgcHJvdG9jb2xJbmZvKCk6IFByb21pc2U8UHJvdG9jb2xJbmZvPiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxQcm90b2NvbEluZm8+KE1ldGhvZHMuUHJvdG9jb2wpO1xuXHR9XG5cblx0Ly8vIEdldCBhIGZ1bGwgbGlzdCBvZiBzdGFraW5nIHBvd2VycyBvcmRlcmVkIGJ5IHJhbmtcblx0cHVibGljIGFzeW5jIHBvd2VycyhxdWVyeT86IFF1ZXJ5U3Rha2luZ1Bvd2Vycyk6IFByb21pc2U8QXJyYXk8U3Rha2luZ1Bvd2VyPj4ge1xuXHRcdHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8QXJyYXk8U3Rha2luZ1Bvd2VyPj4oTWV0aG9kcy5RdWVyeVN0YWtpbmdQb3dlcnMsIHF1ZXJ5KTtcblx0fVxuXG5cdC8vLyBHZXQgYSBmdWxsIGxpc3Qgb2YgY3VycmVudCBzdGFrZSBlbnRyaWVzICBRdWVyeSB0aGUgYW1vdW50IG9mIG5hbm93aXRzIHN0YWtlZCBieSBhbiBhZGRyZXNzLlxuXHRwdWJsaWMgYXN5bmMgc3Rha2VzKHF1ZXJ5PzogUXVlcnlTdGFrZXMpOiBQcm9taXNlPEFycmF5PFN0YWtlRW50cnk+PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxBcnJheTxTdGFrZUVudHJ5Pj4oTWV0aG9kcy5RdWVyeVN0YWtlcywgcXVlcnkpLmNhdGNoKChlcnIpID0+IHtcblx0XHRcdGlmIChlcnI/LmVycm9yPy5tZXNzYWdlICYmIGVyci5lcnJvci5tZXNzYWdlLmluZGV4T2YoXCJub3QgcmVnaXN0ZXJlZFwiKSA+IC0xKSB7XG5cdFx0XHRcdHJldHVybiBbXTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRocm93IGVycjtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8vLyBHZXQgbm9kZSBzdGF0dXNcblx0cHVibGljIGFzeW5jIHN5bmNTdGF0dXMoKTogUHJvbWlzZTxTeW5jU3RhdHVzPiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxTeW5jU3RhdHVzPihNZXRob2RzLlN5bmNTdGF0dXMpO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHdpcHMoKTogUHJvbWlzZTxTaWduYWxpbmdJbmZvPiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxTaWduYWxpbmdJbmZvPihNZXRob2RzLlNpZ25hbGluZ0luZm8pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHdpdG5lc3Nlcyhfc2luY2U/OiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj4ge1xuXHRcdC8vIHRvZG86IHdpdG5lc3NlcyBlc3RpbWF0aW9uIHNob3VsZCBpbnN0ZWFkIGJlIGNvbXB1dGVkIGluIHByb3BvcnRpb24gdG9cblx0XHQvLyAgICAgICByYXRpbyBvZiB2YWxpZGF0b3JzIHRoYXQgaGF2ZSBob25lc3RseSB3aXRuZXNzZWQgZGF0YSByZXF1ZXN0c1xuXHRcdC8vICAgICAgIHZzIHZhbGlkYXRvcnMgdGhhdCBoYXZlIGhvbmVzdGx5IHdpdG5lc3NlZCBkYXRhIHJlcXVlc3RzIGFuZFxuXHRcdC8vICAgICAgIG5ldmVyIHJldmVhbGVkIFwiaSBwYXNzZWRcIiBvdXQgb2YgbWFqb3JpdHksXG5cdFx0Ly8gICAgICAgd2l0aGluIHRoZSBzcGVjaWZpZWQgcmFuZ2Ugb2YgZXBvY2hzLlxuXHRcdGxldCBjZW5zdXMgPSAwO1xuXHRcdHJldHVybiB0aGlzLnN0YWtlcyh7IHBhcmFtczogeyBkaXN0aW5jdDogdHJ1ZSB9IH0pIC8vIHRvZG86IGltcGxlbWVudCBgY291bnRgIGZsYWcgb24gSUpzb25ScGNQcm92aWRlci5zdGFrZXMoKVxuXHRcdFx0LnRoZW4oKHJlY29yZHMpID0+IHtcblx0XHRcdFx0Y2Vuc3VzID0gcmVjb3Jkcy5sZW5ndGg7XG5cdFx0XHRcdHJldHVybiB0aGlzLmJsb2NrcygtMTYsIDE2KTsgLy8gdG9kbzogYmxvY2tzKCkgc2hvdWxkIHJldHVybiBlcG9jaCwgaGFzaCBhbmQgdmFsaWRhdG9yIHBraCBmb3IgZWFjaCBibG9ja1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChyZWNvcmRzKSA9PiB7XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChyZWNvcmRzLm1hcCgocmVjb3JkKSA9PiB0aGlzLmdldEJsb2NrKHJlY29yZFsxXSkpKTtcblx0XHRcdH0pXG5cdFx0XHQudGhlbigoYmxvY2tzKSA9PiB7XG5cdFx0XHRcdGNvbnN0IHZhbGlkYXRvcnM6IEFycmF5PFB1YmxpY0tleUhhc2hTdHJpbmc+ID0gW107XG5cdFx0XHRcdGJsb2Nrcy5mb3JFYWNoKChibG9jaykgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IHBraCA9IFB1YmxpY0tleS5mcm9tUHJvdG9idWYoYmxvY2suYmxvY2tfc2lnLnB1YmxpY19rZXkpLmhhc2goKS50b0JlY2gzMih0aGlzLm5ldHdvcmspO1xuXHRcdFx0XHRcdGlmICghdmFsaWRhdG9ycy5pbmNsdWRlcyhwa2gpKSB2YWxpZGF0b3JzLnB1c2gocGtoKTtcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHJldHVybiBNYXRoLm1pbih2YWxpZGF0b3JzLmxlbmd0aCwgTWF0aC5mbG9vcih0aGlzLm5ldHdvcmsgPT09IFwidGVzdG5ldFwiID8gY2Vuc3VzIC8gMiA6IGNlbnN1cyAvIDQpKTtcblx0XHRcdH0pO1xuXHR9XG5cblx0Ly8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXHQvLy8gR2V0IGJhbGFuY2Vcblx0cHVibGljIGFzeW5jIGdldEJhbGFuY2UocGtoOiBQdWJsaWNLZXlIYXNoU3RyaW5nKTogUHJvbWlzZTxCYWxhbmNlMj4ge1xuXHRcdHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8QmFsYW5jZTI+KE1ldGhvZHMuR2V0QmFsYW5jZTIsIHsgcGtoIH0pLnRoZW4oKGJhbGFuY2U6IEJhbGFuY2UyKSA9PiAoe1xuXHRcdFx0bG9ja2VkOiBCaWdJbnQoYmFsYW5jZS5sb2NrZWQpLFxuXHRcdFx0c3Rha2VkOiBCaWdJbnQoYmFsYW5jZS5zdGFrZWQpLFxuXHRcdFx0dW5sb2NrZWQ6IEJpZ0ludChiYWxhbmNlLnVubG9ja2VkKSxcblx0XHR9KSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0IGJsb2NrIGluZm8gYnkgaGFzaFxuXHQgKiBAcGFyYW0ge0hhc2h9IGJsb2NrSGFzaCAtIEhhc2ggb2YgdGhlIGJsb2NrIHRoYXQgd2UgYXJlIHF1ZXJ5aW5nLlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IHNob3dUcmFuc2FjdGlvbkhhc2ggLSBXaGV0aGVyIHRvIGluY2x1ZGUgYW4gZXh0cmEgZmllbGQgY29udGFpbmluZyBhcnJheSBvZiB0cmFuc2FjdGlvbiBoYXNoZXMuXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgZ2V0QmxvY2soYmxvY2tIYXNoOiBIYXNoLCBzaG93VHJhbnNhY3Rpb25IYXNoID0gZmFsc2UpOiBQcm9taXNlPEJsb2NrPiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxCbG9jaz4oTWV0aG9kcy5HZXRCbG9jaywgW2Jsb2NrSGFzaCwgc2hvd1RyYW5zYWN0aW9uSGFzaF0pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldERhdGFSZXF1ZXN0KFxuXHRcdGRyVHhIYXNoOiBIYXNoLFxuXHRcdG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGUsXG5cdFx0Zm9yY2UgPSBmYWxzZSxcblx0KTogUHJvbWlzZTxHZXREYXRhUmVxdWVzdEZ1bGxSZXBvcnQgfCBHZXREYXRhUmVxdWVzdEV0aGVyZWFsUmVwb3J0PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxHZXREYXRhUmVxdWVzdEZ1bGxSZXBvcnQgfCBHZXREYXRhUmVxdWVzdEV0aGVyZWFsUmVwb3J0PihNZXRob2RzLkdldERhdGFSZXF1ZXN0LCB7XG5cdFx0XHRoYXNoOiBkclR4SGFzaCxcblx0XHRcdG1vZGU6IG1vZGUgfHwgXCJmdWxsXCIsXG5cdFx0XHRmb3JjZSxcblx0XHR9KTtcblx0fVxuXG5cdC8vLyBHZXQgdGhlIGJsb2NrcyB0aGF0IHBlcnRhaW4gdG8gdGhlIHN1cGVyYmxvY2sgaW5kZXhcblx0cHVibGljIGFzeW5jIGdldFN1cGVyYmxvY2soZXBvY2g6IEVwb2NoKTogUHJvbWlzZTxTdXBlcmJsb2NrUmVwb3J0PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxTdXBlcmJsb2NrUmVwb3J0PihNZXRob2RzLkdldFN1cGVyYmxvY2ssIHtcblx0XHRcdGJsb2NrX2Vwb2NoOiBlcG9jaCxcblx0XHR9KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRUcmFuc2FjdGlvbih0eEhhc2g6IEhhc2gpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVwb3J0PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxUcmFuc2FjdGlvblJlcG9ydD4oTWV0aG9kcy5HZXRUcmFuc2FjdGlvbiwgW3R4SGFzaF0pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uUmVjZWlwdCh0eEhhc2g6IEhhc2gpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVjZWlwdD4ge1xuXHRcdC8vIHRvZG86IGZldGNoL3VwZGF0ZSByZWNlaXB0IGZyb20gcHJvdmlkZXIsIGlmIG5vdCBjYWNoZWRcblx0XHRyZXR1cm4gSnNvblJwY1Byb3ZpZGVyLnJlY2VpcHRzW3R4SGFzaF07XG5cdH1cblxuXHQvLy8gR2V0IHV0eG9zXG5cdHB1YmxpYyBhc3luYyBnZXRVdHhvcyhcblx0XHRwa2g6IFB1YmxpY0tleUhhc2hTdHJpbmcsXG5cdFx0ZmlsdGVyPzogeyBtaW5WYWx1ZT86IGJpZ2ludCB8IHN0cmluZzsgZnJvbVNpZ25lcj86IFB1YmxpY0tleUhhc2hTdHJpbmcgfSxcblx0KTogUHJvbWlzZTxBcnJheTxVdHhvTWV0YWRhdGE+PiB7XG5cdFx0aWYgKGZpbHRlcikge1xuXHRcdFx0ZmlsdGVyLm1pblZhbHVlID0gZmlsdGVyPy5taW5WYWx1ZT8udG9TdHJpbmcoKSA/PyBcIjBcIjtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxVdHhvSW5mbz4oTWV0aG9kcy5HZXRVdHhvSW5mbywgW3BraCwgLi4uKGZpbHRlciA/IFtmaWx0ZXJdIDogW10pXSkudGhlbihcblx0XHRcdChyZXN1bHQ6IFV0eG9JbmZvKSA9PlxuXHRcdFx0XHRyZXN1bHQudXR4b3MubWFwKCh1dHhvOiBVdHhvTWV0YWRhdGEpID0+ICh7XG5cdFx0XHRcdFx0Li4udXR4byxcblx0XHRcdFx0XHR2YWx1ZTogQmlnSW50KHV0eG8udmFsdWUpLFxuXHRcdFx0XHR9KSksXG5cdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBhc3luYyBnZXRWYWx1ZVRyYW5zZmVyKHR4SGFzaDogSGFzaCwgbW9kZT86IHN0cmluZywgZm9yY2UgPSBmYWxzZSk6IFByb21pc2U8YW55PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxhbnk+KE1ldGhvZHMuR2V0VmFsdWVUcmFuc2Zlciwge1xuXHRcdFx0aGFzaDogdHhIYXNoLFxuXHRcdFx0bW9kZTogbW9kZSxcblx0XHRcdGZvcmNlLFxuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIGFzeW5jIHNlYXJjaERhdGFSZXF1ZXN0cyhcblx0XHRyYWRIYXNoOiBIYXNoLFxuXHRcdG9wdGlvbnM/OiB7XG5cdFx0XHRsaW1pdD86IG51bWJlcjtcblx0XHRcdG9mZnNldD86IG51bWJlcjtcblx0XHRcdG1vZGU/OiBHZXREYXRhUmVxdWVzdE1vZGU7XG5cdFx0XHRyZXZlcnNlPzogYm9vbGVhbjtcblx0XHR9LFxuXHQpOiBQcm9taXNlPEFycmF5PEdldERhdGFSZXF1ZXN0RXRoZXJlYWxSZXBvcnQgfCBHZXREYXRhUmVxdWVzdEZ1bGxSZXBvcnQ+PiB7XG5cdFx0cmV0dXJuIHRoaXMuY2FsbEFwaU1ldGhvZDxBcnJheTxhbnlbXT4+KE1ldGhvZHMuU2VhcmNoRGF0YVJlcXVlc3RzLCB7XG5cdFx0XHRyYWRIYXNoLFxuXHRcdFx0bGltaXQ6IG9wdGlvbnM/LmxpbWl0IHx8IDEsXG5cdFx0XHRvZmZzZXQ6IG9wdGlvbnM/Lm9mZnNldCB8fCAwLFxuXHRcdFx0cmV2ZXJzZTogIShvcHRpb25zPy5yZXZlcnNlID09PSBmYWxzZSksXG5cdFx0fSkudGhlbihhc3luYyAoZW50cmllcykgPT5cblx0XHRcdFByb21pc2UuYWxsKFxuXHRcdFx0XHRlbnRyaWVzLm1hcCgoZW50cnk6IGFueVtdKSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuZ2V0RGF0YVJlcXVlc3QoZW50cnlbMV0sIG9wdGlvbnM/Lm1vZGUgfHwgXCJldGhlcmVhbFwiLCB0cnVlKTtcblx0XHRcdFx0fSksXG5cdFx0XHQpLFxuXHRcdCk7XG5cdH1cblxuXHQvLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cdHB1YmxpYyBhc3luYyBzZW5kUmF3VHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IGFueSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRcdHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8Ym9vbGVhbj4oTWV0aG9kcy5JbnZlbnRvcnksIHsgdHJhbnNhY3Rpb24gfSk7XG5cdH1cblxuXHQvLy8gR2V0IHN1cHBseSBpbmZvXG5cdHB1YmxpYyBhc3luYyBzdXBwbHlJbmZvKCk6IFByb21pc2U8U3VwcGx5SW5mbz4ge1xuXHRcdHJldHVybiB0aGlzLmNhbGxBcGlNZXRob2Q8U3VwcGx5SW5mbz4oTWV0aG9kcy5HZXRTdXBwbHlJbmZvKTtcblx0fVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/rpc/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/rpc/types.ts"],"names":[],"mappings":"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"}
|