@bitgo/account-lib 2.19.0-rc.2 → 2.19.0-rc.5
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/DEVELOPER.md +1 -1
- package/dist/browser/bitgo-account-lib.js +1 -1
- package/dist/package.json +6 -6
- package/dist/src/coin/algo/utils.d.ts.map +1 -1
- package/dist/src/coin/algo/utils.js +6 -2
- package/dist/src/coin/baseCoin/blsKeyPair.js +7 -7
- package/dist/src/coin/baseCoin/index.d.ts +1 -0
- package/dist/src/coin/baseCoin/index.d.ts.map +1 -1
- package/dist/src/coin/baseCoin/index.js +4 -2
- package/dist/src/coin/dot/iface.d.ts +8 -2
- package/dist/src/coin/dot/iface.d.ts.map +1 -1
- package/dist/src/coin/dot/iface.js +2 -1
- package/dist/src/coin/dot/index.d.ts +1 -0
- package/dist/src/coin/dot/index.d.ts.map +1 -1
- package/dist/src/coin/dot/index.js +4 -2
- package/dist/src/coin/dot/transaction.d.ts +18 -2
- package/dist/src/coin/dot/transaction.d.ts.map +1 -1
- package/dist/src/coin/dot/transaction.js +66 -66
- package/dist/src/coin/dot/transactionBuilder.d.ts +6 -2
- package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/transactionBuilder.js +20 -24
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts +2 -1
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/dot/transactionBuilderFactory.js +4 -1
- package/dist/src/coin/dot/txnSchema.d.ts +1 -0
- package/dist/src/coin/dot/txnSchema.d.ts.map +1 -1
- package/dist/src/coin/dot/txnSchema.js +5 -2
- package/dist/src/coin/dot/utils.d.ts +20 -4
- package/dist/src/coin/dot/utils.d.ts.map +1 -1
- package/dist/src/coin/dot/utils.js +33 -5
- package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +38 -0
- package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +1 -0
- package/dist/src/coin/dot/withdrawUnstakedBuilder.js +112 -0
- package/dist/src/coin/eth2/keyPair.js +2 -2
- package/dist/src/coin/near/utils.d.ts.map +1 -1
- package/dist/src/coin/near/utils.js +4 -2
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts +2 -0
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/ataInitializationBuilder.js +6 -3
- package/dist/src/coin/sol/ataInitializationTransaction.d.ts +14 -0
- package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +1 -0
- package/dist/src/coin/sol/ataInitializationTransaction.js +104 -0
- package/dist/src/coin/sol/iface.d.ts +0 -1
- package/dist/src/coin/sol/iface.d.ts.map +1 -1
- package/dist/src/coin/sol/iface.js +1 -1
- package/dist/src/coin/sol/transaction.d.ts +5 -2
- package/dist/src/coin/sol/transaction.d.ts.map +1 -1
- package/dist/src/coin/sol/transaction.js +10 -22
- package/dist/src/coin/sol/transactionBuilder.d.ts +1 -1
- package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/transactionBuilder.js +1 -1
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts +3 -1
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/sol/transactionBuilderFactory.js +8 -3
- package/dist/src/mpc/tss.d.ts +6 -6
- package/dist/src/mpc/tss.d.ts.map +1 -1
- package/dist/src/mpc/tss.js +3 -2
- package/dist/src/utils/crypto.d.ts +7 -0
- package/dist/src/utils/crypto.d.ts.map +1 -1
- package/dist/src/utils/crypto.js +13 -2
- package/package.json +6 -6
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo/account-lib",
|
|
3
|
-
"version": "2.19.0-rc.
|
|
3
|
+
"version": "2.19.0-rc.5",
|
|
4
4
|
"description": "BitGo's account library functions",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -39,19 +39,19 @@
|
|
|
39
39
|
"@bitgo/blake2b": "^3.0.2",
|
|
40
40
|
"@bitgo/bls": "^0.1.0",
|
|
41
41
|
"@bitgo/bls-dkg": "^1.0.2-rc.0",
|
|
42
|
-
"@bitgo/statics": "^6.17.0-rc.
|
|
42
|
+
"@bitgo/statics": "^6.17.0-rc.3",
|
|
43
43
|
"@celo/contractkit": "^1.2.4",
|
|
44
44
|
"@ethereumjs/common": "^2.4.0",
|
|
45
45
|
"@ethereumjs/tx": "^3.3.0",
|
|
46
46
|
"@hashgraph/sdk": "~2.3.0",
|
|
47
|
-
"@polkadot/api": "^7.
|
|
47
|
+
"@polkadot/api": "^7.8.1",
|
|
48
48
|
"@solana/spl-token": "0.1.8",
|
|
49
49
|
"@solana/web3.js": "1.31.0",
|
|
50
50
|
"@stablelib/hex": "^1.0.0",
|
|
51
51
|
"@stablelib/sha384": "^1.0.0",
|
|
52
52
|
"@stacks/transactions": "2.0.1",
|
|
53
|
-
"@substrate/txwrapper-core": "1.5.
|
|
54
|
-
"@substrate/txwrapper-polkadot": "1.5.
|
|
53
|
+
"@substrate/txwrapper-core": "1.5.3",
|
|
54
|
+
"@substrate/txwrapper-polkadot": "1.5.3",
|
|
55
55
|
"@taquito/local-forging": "6.3.5-beta.0",
|
|
56
56
|
"@taquito/signer": "6.3.5-beta.0",
|
|
57
57
|
"@types/lodash": "^4.14.151",
|
|
@@ -126,5 +126,5 @@
|
|
|
126
126
|
"publishConfig": {
|
|
127
127
|
"access": "public"
|
|
128
128
|
},
|
|
129
|
-
"gitHead": "
|
|
129
|
+
"gitHead": "094cb83a8ff1cb53199e0b35de7259285c66e8e3"
|
|
130
130
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/utils.ts"],"names":[],"mappings":";AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAQ9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmCpC,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ3C,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAIjC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC;;;;;;OAMG;IACH,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO;IAIzD;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAIrC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAsBlC;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAYrC;;;;;;;;;OASG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAY9B;;;;;;;OAOG;IACH,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO;IAIjF;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAG9C;;;;;OAKG;IACH,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAS9D;;;;;OAKG;IACH,SAAS,CAAC,4BAA4B,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAShE;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/coin/algo/utils.ts"],"names":[],"mappings":";AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAQ9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmCpC,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIxC,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ3C,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAIjC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC;;;;;;OAMG;IACH,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO;IAIzD;;;;;OAKG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAIrC;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAsBlC;;;;;OAKG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAYrC;;;;;;;;;OASG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAY9B;;;;;;;OAOG;IACH,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO;IAIjF;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAG9C;;;;;OAKG;IACH,SAAS,CAAC,0BAA0B,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAS9D;;;;;OAKG;IACH,SAAS,CAAC,4BAA4B,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAShE;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS;IAqCvD;;;;;OAKG;IACH,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IA6BvD;;;;;OAKG;IACH,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAgBzD,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,UAAU;IAIjE;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,OAAO;IAIxC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IASvC;;;;;;;OAOG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU;IAI9C;;;;OAIG;IACH,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO;IAM1C;;;;;OAKG;IACH,SAAS,CAAC,aAAa,CAAC,gBAAgB,EAAE,UAAU,GAAG,OAAO;IAK9D;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAIpD;;;;;OAKG;IACH,SAAS,CAAC,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpE;;;;;OAKG;IACH,SAAS,CAAC,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIlE;;;;;OAKG;IACH,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI5C;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IAIvC;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIpC;;;;;;OAMG;IACH,2BAA2B,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM;IAiB5D;;;;;;;OAOG;IACH,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM;IAQ5E;;;;;OAKG;IACH,eAAe,IAAI,OAAO,CAAC,OAAO;IAIlC,uBAAuB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO;IAQ1D;;;;;;;;OAQG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAYzC;;;;;;;OAOG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;CAO5F;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
|
|
@@ -248,7 +248,11 @@ var Utils = /** @class */ (function () {
|
|
|
248
248
|
// release standard.
|
|
249
249
|
// This way we can decode transactions successfully by still maintaining backward compatibility.
|
|
250
250
|
var decodedTx = encoding.decode(buffer);
|
|
251
|
-
if (decodedTx.txn &&
|
|
251
|
+
if (decodedTx.txn &&
|
|
252
|
+
decodedTx.txn.type === 'keyreg' &&
|
|
253
|
+
decodedTx.txn.votefst &&
|
|
254
|
+
decodedTx.txn.votelst &&
|
|
255
|
+
decodedTx.txn.votekd) {
|
|
252
256
|
decodedTx.txn.votekey = decodedTx.txn.votekey || decodedTx.msig.subsig[0].pk;
|
|
253
257
|
decodedTx.txn.selkey = decodedTx.txn.selkey || decodedTx.msig.subsig[0].pk;
|
|
254
258
|
buffer = decodedTx.msig || decodedTx.sig ? encoding.encode(decodedTx) : encoding.encode(decodedTx.txn);
|
|
@@ -524,4 +528,4 @@ var Utils = /** @class */ (function () {
|
|
|
524
528
|
exports.Utils = Utils;
|
|
525
529
|
var utils = new Utils();
|
|
526
530
|
exports.default = utils;
|
|
527
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9hbGdvL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBOEI7QUFDOUIsNERBQWtDO0FBQ2xDLGtEQUFzQztBQUN0Qyw4Q0FBa0M7QUFDbEMsd0RBQStCO0FBQy9CLHdEQUErQjtBQUMvQixrREFBdUI7QUFDdkIsNkNBQXNGO0FBRXRGLDZDQUE4RjtBQUU5RixxQ0FBb0M7QUFDcEMsK0NBQThDO0FBQzlDLCtFQUFtRTtBQUNuRSwrRUFBbUU7QUFFbkUsSUFBTSw2QkFBNkIsR0FBRyxDQUFDLENBQUM7QUFDeEMsSUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDaEMsSUFBTSx5QkFBeUIsR0FBRyxFQUFFLENBQUM7QUFDckMsSUFBTSwyQkFBMkIsR0FBRyxFQUFFLENBQUM7QUFDdkMsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFFN0I7Ozs7O0dBS0c7QUFDSCxTQUFTLFdBQVcsQ0FBQyxLQUFhO0lBQ2hDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxDQUFhLEVBQUUsQ0FBYTtJQUNoRCxJQUFNLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVEO0lBQUE7SUFpZkEsQ0FBQztJQWhmQyxrQkFBa0I7SUFDbEIsOEJBQWMsR0FBZCxVQUFlLE9BQWU7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QVksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLHVCQUF1QixFQUFFLENBQUM7UUFDaEYsSUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QyxJQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkQsT0FBTyxtQkFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCw4QkFBYyxHQUFkLFVBQWUsTUFBYyxFQUFFLElBQVksRUFBRSxFQUFVLEVBQUUsZ0JBQXlCO1FBQ2hGLElBQUksSUFBSSxHQUFHLGVBQWUsQ0FBQztRQUMzQixJQUFJLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxLQUFLLEVBQUUsRUFBRTtZQUNqQyxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7U0FDM0Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDSCxZQUFDO0FBQUQsQ0FBQyxBQWpmRCxJQWlmQztBQWpmWSxzQkFBSztBQW1mbEIsSUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUUxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYWxnb3NkayBmcm9tICdhbGdvc2RrJztcbmltcG9ydCBzdGVsbGFyIGZyb20gJ3N0ZWxsYXItc2RrJztcbmltcG9ydCAqIGFzIGhleCBmcm9tICdAc3RhYmxlbGliL2hleCc7XG5pbXBvcnQgKiBhcyBuYWNsIGZyb20gJ3R3ZWV0bmFjbCc7XG5pbXBvcnQgYmFzZTMyIGZyb20gJ2hpLWJhc2UzMic7XG5pbXBvcnQgc2hhNTEyIGZyb20gJ2pzLXNoYTUxMic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXksIGlzVmFsaWRFZDI1NTE5U2VjcmV0S2V5IH0gZnJvbSAnLi4vLi4vdXRpbHMvY3J5cHRvJztcbmltcG9ydCB7IEJhc2VVdGlscyB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEludmFsaWRLZXksIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7IEFkZHJlc3MsIEVuY29kZWRUeCwgU2VlZCB9IGZyb20gJy4vaWZhY2VzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgU2VlZEVuY29kaW5nIH0gZnJvbSAnLi9zZWVkRW5jb2RpbmcnO1xuaW1wb3J0ICogYXMgYWxnb05hY2wgZnJvbSAnYWxnb3Nkay9kaXN0L2Nqcy9zcmMvbmFjbC9uYWNsV3JhcHBlcnMnO1xuaW1wb3J0ICogYXMgZW5jb2RpbmcgZnJvbSAnYWxnb3Nkay9kaXN0L2Nqcy9zcmMvZW5jb2RpbmcvZW5jb2RpbmcnO1xuXG5jb25zdCBBTEdPUkFORF9DSEVDS1NVTV9CWVRFX0xFTkdUSCA9IDQ7XG5jb25zdCBBTEdPUkFORF9TRUVEX0xFTkdUSCA9IDU4O1xuY29uc3QgQUxHT1JBTkRfU0VFRF9CWVRFX0xFTkdUSCA9IDM2O1xuY29uc3QgQUxHT1JBTkRfVFJBTlNBQ1RJT05fTEVOR1RIID0gNTI7XG5jb25zdCBTRUVEX0JZVEVTX0xFTkdUSCA9IDMyO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgc3RyaW5nIGlzIG9ubHkgY29tcG9zZWQgb2YgaGV4IGNoYXJzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtYXliZSBUaGUgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZC5cbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSBzdHJpbmcgY29uc2lzdHMgb2Ygb25seSBoZXggY2hhcmFjdGVycywgb3RoZXJ3aXNlIGZhbHNlLlxuICovXG5mdW5jdGlvbiBhbGxIZXhDaGFycyhtYXliZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAvXihbMC05YS1mXXsyfSkrJC9pLnRlc3QobWF5YmUpO1xufVxuXG4vKipcbiAqIENvbmNhdEFycmF5cyB0YWtlcyB0d28gYXJyYXkgYW5kIHJldHVybnMgYSBqb2ludCBhcnJheSBvZiBib3RoXG4gKlxuICogQHBhcmFtIGEge1VpbnQ4QXJyYXl9IGZpcnN0IGFycmF5IHRvIGNvbmNhdFxuICogQHBhcmFtIGIge1VpbnQ4QXJyYXl9IHNlY29uZCBhcnJheVxuICogQHJldHVybnMge1VpbnQ4QXJyYXl9IGEgbmV3IGFycmF5IGNvbnRhaW5pbmcgYWxsIGVsZW1lbnRzIG9mICdhJyBmb2xsb3dlZCBieSBhbGwgZWxlbWVudHMgb2YgJ2InXG4gKi9cbmZ1bmN0aW9uIGNvbmNhdEFycmF5cyhhOiBVaW50OEFycmF5LCBiOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XG4gIGNvbnN0IGMgPSBuZXcgVWludDhBcnJheShhLmxlbmd0aCArIGIubGVuZ3RoKTtcbiAgYy5zZXQoYSk7XG4gIGMuc2V0KGIsIGEubGVuZ3RoKTtcbiAgcmV0dXJuIGM7XG59XG5cbmV4cG9ydCBjbGFzcyBVdGlscyBpbXBsZW1lbnRzIEJhc2VVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYWxnb3Nkay5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodHhJZC5sZW5ndGggIT09IDEwNCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBhbGxIZXhDaGFycyh0eElkKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHVibGljS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5KGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlTZWNyZXRLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGhleCBzdHJpbmcgb2YgdGhlIGdpdmVuIGJ1ZmZlclxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ1ZmZlciAtIHRoZSBidWZmZXIgdG8gYmUgY29udmVydGVkIHRvIGhleFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBoZXggdmFsdWVcbiAgICovXG4gIHRvSGV4KGJ1ZmZlcjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGhleC5lbmNvZGUoYnVmZmVyLCB0cnVlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ2lzVmFsaWRTaWduYXR1cmUgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdoYXNoIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlIHR3byBLZXlzXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ga2V5MSAtIGtleSB0byBiZSBjb21wYXJlXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ga2V5MiAtIGtleSB0byBiZSBjb21wYXJlXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIHJldHVybnMgdHJ1ZSBpZiBib3RoIGtleXMgYXJlIGVxdWFsXG4gICAqL1xuICBhcmVLZXlzRXF1YWwoa2V5MTogVWludDhBcnJheSwga2V5MjogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuYWNsLnZlcmlmeShrZXkxLCBrZXkyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgVWludDhBcnJheSBvZiB0aGUgZ2l2ZW4gaGV4IHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gdGhlIGhleCBzdHJpbmcgdG8gYmUgY29udmVydGVkXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdGhlIFVpbnQ4QXJyYXkgdmFsdWVcbiAgICovXG4gIHRvVWludDhBcnJheShzdHI6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShzdHIsICdoZXgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBzZWVkIGlzIHZhbGlkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VlZCAtIHRoZSBzZWVkIHRvIGJlIHZhbGlkYXRlZFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0cnVlIGlmIHRoZSBzZWVkIGlzIHZhbGlkXG4gICAqL1xuICBpc1ZhbGlkU2VlZChzZWVkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHNlZWQgIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoc2VlZC5sZW5ndGggIT09IEFMR09SQU5EX1NFRURfTEVOR1RIKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBUcnkgdG8gZGVjb2RlXG4gICAgbGV0IGRlY29kZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGRlY29kZWQgPSB0aGlzLmRlY29kZVNlZWQoc2VlZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIENvbXB1dGUgY2hlY2tzdW1cbiAgICBjb25zdCBjaGVja3N1bSA9IG5ldyBVaW50OEFycmF5KFxuICAgICAgc2hhNTEyLnNoYTUxMl8yNTYuYXJyYXkoZGVjb2RlZC5zZWVkKS5zbGljZShTRUVEX0JZVEVTX0xFTkdUSCAtIEFMR09SQU5EX0NIRUNLU1VNX0JZVEVfTEVOR1RILCBTRUVEX0JZVEVTX0xFTkdUSCksXG4gICAgKTtcblxuICAgIC8vIENoZWNrIGlmIHRoZSBjaGVja3N1bSBtYXRjaGVzIHRoZSBvbmUgZnJvbSB0aGUgZGVjb2RlZCBzZWVkXG4gICAgcmV0dXJuIF8uaXNFcXVhbChjaGVja3N1bSwgZGVjb2RlZC5jaGVja3N1bSk7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIGFuIGFsZ28gc2VlZFxuICAgKlxuICAgKiBAcGFyYW0gIHtCdWZmZXJ9IHNlY3JldEtleSAtIHRoZSB2YWxpZCBzZWNyZXRLZXkgLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBzZWVkIHRvIGJlIHZhbGlkYXRlZC5cbiAgICovXG4gIGVuY29kZVNlZWQoc2VjcmV0S2V5OiBCdWZmZXIpOiBzdHJpbmcge1xuICAgIC8vIGdldCBzZWVkXG4gICAgY29uc3Qgc2VlZCA9IHNlY3JldEtleS5zbGljZSgwLCBTRUVEX0JZVEVTX0xFTkdUSCk7XG4gICAgLy8gY29tcHV0ZSBjaGVja3N1bVxuICAgIGNvbnN0IGNoZWNrc3VtID0gQnVmZmVyLmZyb20oXG4gICAgICBzaGE1MTIuc2hhNTEyXzI1Ni5hcnJheShzZWVkKS5zbGljZShTRUVEX0JZVEVTX0xFTkdUSCAtIEFMR09SQU5EX0NIRUNLU1VNX0JZVEVfTEVOR1RILCBTRUVEX0JZVEVTX0xFTkdUSCksXG4gICAgKTtcbiAgICBjb25zdCBlbmNvZGVkU2VlZCA9IGJhc2UzMi5lbmNvZGUoY29uY2F0QXJyYXlzKHNlZWQsIGNoZWNrc3VtKSk7XG5cbiAgICByZXR1cm4gZW5jb2RlZFNlZWQudG9TdHJpbmcoKS5zbGljZSgwLCBBTEdPUkFORF9TRUVEX0xFTkdUSCk7IC8vIHJlbW92aW5nIHRoZSBleHRyYSAnPT09PSdcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWNvZGVTZWVkIGRlY29kZXMgYW4gYWxnbyBzZWVkXG4gICAqXG4gICAqIERlY29kaW5nIGFsZ28gc2VlZCBpcyBzYW1lIGFzIGRlY29kaW5nIGFkZHJlc3MuXG4gICAqIExhdGVzdCB2ZXJzaW9uIG9mIGFsZ28gc2RrICgxLjksIGF0IHRoaXMgd3JpdGluZykgZG9lcyBub3QgZXhwb3NlIGV4cGxpY2l0IG1ldGhvZCBmb3IgZGVjb2Rpbmcgc2VlZC5cbiAgICogUGFyYW1ldGVyIGlzIGRlY29kZWQgYW5kIHNwbGl0IGludG8gc2VlZCBhbmQgY2hlY2tzdW0uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWVkIC0gaGV4IG9yIGJhc2U2NCBlbmNvZGVkIHNlZWQgdG8gYmUgdmFsaWRhdGVkXG4gICAqIEByZXR1cm5zIHtTZWVkfSAtIHZhbGlkYXRlZCBvYmplY3QgU2VlZFxuICAgKi9cbiAgZGVjb2RlU2VlZChzZWVkOiBzdHJpbmcpOiBTZWVkIHtcbiAgICAvLyB0cnkgdG8gZGVjb2RlXG4gICAgY29uc3QgZGVjb2RlZCA9IGJhc2UzMi5kZWNvZGUuYXNCeXRlcyhzZWVkKTtcblxuICAgIC8vIFNhbml0eSBjaGVja1xuICAgIGlmIChkZWNvZGVkLmxlbmd0aCAhPT0gQUxHT1JBTkRfU0VFRF9CWVRFX0xFTkdUSCkgdGhyb3cgbmV3IEVycm9yKCdzZWVkIHNlZW1zIHRvIGJlIG1hbGZvcm1lZCcpO1xuICAgIHJldHVybiB7XG4gICAgICBzZWVkOiBuZXcgVWludDhBcnJheShkZWNvZGVkLnNsaWNlKDAsIEFMR09SQU5EX1NFRURfQllURV9MRU5HVEggLSBBTEdPUkFORF9DSEVDS1NVTV9CWVRFX0xFTkdUSCkpLFxuICAgICAgY2hlY2tzdW06IG5ldyBVaW50OEFycmF5KGRlY29kZWQuc2xpY2UoU0VFRF9CWVRFU19MRU5HVEgsIEFMR09SQU5EX1NFRURfQllURV9MRU5HVEgpKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIGlmIHNpZ25hdHVyZSBmb3IgbWVzc2FnZSBpcyB2YWxpZC5cbiAgICpcbiAgICogQHBhcmFtIHB1YiB7VWludDhBcnJheX0gcHVibGljIGtleVxuICAgKiBAcGFyYW0gbWVzc2FnZSB7VWludDhBcnJheX0gc2lnbmVkIG1lc3NhZ2VcbiAgICogQHBhcmFtIHNpZ25hdHVyZSB7QnVmZmVyfSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gICAqIEByZXR1cm5zIHtCb29sZWFufSB0cnVlIGlmIHNpZ25hdHVyZSBpcyB2YWxpZC5cbiAgICovXG4gIHZlcmlmeVNpZ25hdHVyZShtZXNzYWdlOiBVaW50OEFycmF5LCBzaWduYXR1cmU6IEJ1ZmZlciwgcHViOiBVaW50OEFycmF5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5hY2wuc2lnbi5kZXRhY2hlZC52ZXJpZnkobWVzc2FnZSwgc2lnbmF0dXJlLCBwdWIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgYW4gRWQyNTUxOSBwdWJsaWMga2V5IGludG8gYW4gYWxnb3JhbmQgYWRkcmVzcy5cbiAgICpcbiAgICogQHBhcmFtIHtVaW50OEFycmF5fSBwayBUaGUgRWQyNTUxOSBwdWJsaWMga2V5LlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL2ZlYXR1cmVzL2FjY291bnRzLyN0cmFuc2Zvcm1hdGlvbi1wdWJsaWMta2V5LXRvLWFsZ29yYW5kLWFkZHJlc3NcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIGFsZ29yYW5kIGFkZHJlc3MuXG4gICAqL1xuICBwdWJsaWNLZXlUb0FsZ29BZGRyZXNzKHBrOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEtleVBhaXIoeyBwdWI6IEJ1ZmZlci5mcm9tKHBrKS50b1N0cmluZygnaGV4JykgfSkuZ2V0QWRkcmVzcygpO1xuICB9XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSB1bnNpZ25lZCBhbGdvIHRyYW5zYWN0aW9uIGNhbiBiZSBkZWNvZGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IHR4biBUaGUgZW5jb2RlZCB1bnNpZ25lZCB0cmFuc2FjdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIGNhbiBiZSBkZWNvZGVkLCBvdGhlcndpc2UgZmFsc2VcbiAgICovXG4gIHByb3RlY3RlZCBpc0RlY29kYWJsZVVuc2lnbmVkQWxnb1R4bih0eG46IFVpbnQ4QXJyYXkpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgYWxnb3Nkay5kZWNvZGVVbnNpZ25lZFRyYW5zYWN0aW9uKHR4bik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgc2lnbmVkIGFsZ28gdHJhbnNhY3Rpb24gY2FuIGJlIGRlY29kZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gdHhuIFRoZSBlbmNvZGVkIHNpZ25lZCB0cmFuc2FjdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIGNhbiBiZSBkZWNvZGVkLCBvdGhlcndpc2UgZmFsc2VcbiAgICovXG4gIHByb3RlY3RlZCBpc0RlY29kYWJsZVNpZ25lZFRyYW5zYWN0aW9uKHR4bjogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBhbGdvc2RrLmRlY29kZVNpZ25lZFRyYW5zYWN0aW9uKHR4bik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyBhIHNpZ25lZCBvciB1bnNpZ25lZCBhbGdvIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXkgfCBzdHJpbmd9IHR4bkJ5dGVzIFRoZSBlbmNvZGVkIHVuc2lnbmVkIG9yIHNpZ25lZCB0eG4uXG4gICAqIEByZXR1cm5zIHtFbmNvZGVkVHh9IFRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgZGVjb2RlQWxnb1R4bih0eG5CeXRlczogVWludDhBcnJheSB8IHN0cmluZyk6IEVuY29kZWRUeCB7XG4gICAgbGV0IGJ1ZmZlciA9XG4gICAgICB0eXBlb2YgdHhuQnl0ZXMgPT09ICdzdHJpbmcnXG4gICAgICAgID8gQnVmZmVyLmZyb20odHhuQnl0ZXMsIGFsbEhleENoYXJzKHR4bkJ5dGVzKSA/ICdoZXgnIDogJ2Jhc2U2NCcpXG4gICAgICAgIDogQnVmZmVyLmZyb20odHhuQnl0ZXMpO1xuXG4gICAgLy8gSW4gb3JkZXIgdG8gbWFpbnRhaW4gYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBrZXlyZWcgdHJhbnNhY3Rpb25zIGVuY29kZWQgd2l0aFxuICAgIC8vIGZvcmtlZCBhbGdvc2RrIDEuMi4wIChodHRwczovL2dpdGh1Yi5jb20vQml0R28vYWxnb3Nkay1iaXRnbyksXG4gICAgLy8gdGhlIHJlbGV2YW50IGluZm9ybWF0aW9uIGlzIGV4dHJhY3RlZCBhbmQgcGFyc2VkIGZvbGxvd2luZyB0aGUgbGF0ZXN0IGFsZ29zZGtcbiAgICAvLyByZWxlYXNlIHN0YW5kYXJkLlxuICAgIC8vIFRoaXMgd2F5IHdlIGNhbiBkZWNvZGUgdHJhbnNhY3Rpb25zIHN1Y2Nlc3NmdWxseSBieSBzdGlsbCBtYWludGFpbmluZyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgIGNvbnN0IGRlY29kZWRUeCA9IGVuY29kaW5nLmRlY29kZShidWZmZXIpO1xuICAgIGlmIChkZWNvZGVkVHgudHhuICYmIGRlY29kZWRUeC50eG4udHlwZSA9PT0gJ2tleXJlZycpIHtcbiAgICAgIGRlY29kZWRUeC50eG4udm90ZWtleSA9IGRlY29kZWRUeC50eG4udm90ZWtleSB8fCBkZWNvZGVkVHgubXNpZy5zdWJzaWdbMF0ucGs7XG4gICAgICBkZWNvZGVkVHgudHhuLnNlbGtleSA9IGRlY29kZWRUeC50eG4uc2Vsa2V5IHx8IGRlY29kZWRUeC5tc2lnLnN1YnNpZ1swXS5waztcbiAgICAgIGJ1ZmZlciA9IGRlY29kZWRUeC5tc2lnIHx8IGRlY29kZWRUeC5zaWcgPyBlbmNvZGluZy5lbmNvZGUoZGVjb2RlZFR4KSA6IGVuY29kaW5nLmVuY29kZShkZWNvZGVkVHgudHhuKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMudHJ5VG9EZWNvZGVVbnNpZ25lZFRyYW5zYWN0aW9uKGJ1ZmZlcik7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBJZ25vcmUgZXJyb3IgdG8gdHJ5IGRpZmZlcmVudCBmb3JtYXRcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRoaXMudHJ5VG9EZWNvZGVTaWduZWRUcmFuc2FjdGlvbihidWZmZXIpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiBjYW5ub3QgYmUgZGVjb2RlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gZGVjb2RlIGEgc2lnbmVkIEFsZ28gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIGJ1ZmZlciB0aGUgZW5jb2RlZCB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7IEVuY29kZWRUeCB9IHRoZSBkZWNvZGVkIHNpZ25lZCB0cmFuc2FjdGlvblxuICAgKiBAdGhyb3dzIGVycm9yIGlmIGl0IGlzIG5vdCBhIHZhbGlkIGVuY29kZWQgc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqL1xuICB0cnlUb0RlY29kZVNpZ25lZFRyYW5zYWN0aW9uKGJ1ZmZlcjogQnVmZmVyKTogRW5jb2RlZFR4IHtcbiAgICAvLyBUT0RPOiBSZXBsYWNlIHdpdGhcbiAgICAvLyByZXR1cm4gYWxnb3Nkay5UcmFuc2FjdGlvbi5mcm9tX29ial9mb3JfZW5jb2RpbmcoYWxnb3Nkay5kZWNvZGVTaWduZWRUcmFuc2FjdGlvbihidWZmZXIpLnR4bik7XG4gICAgLy8gc2VlOiBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmQvanMtYWxnb3JhbmQtc2RrL2lzc3Vlcy8zNjRcbiAgICAvLyBcIi4uLnNvbWUgcGFydHMgb2YgdGhlIGNvZGViYXNlIHRyZWF0IHRoZSBvdXRwdXQgb2YgVHJhbnNhY3Rpb24uZnJvbV9vYmpfZm9yX2VuY29kaW5nIGFzIEVuY29kZWRUcmFuc2FjdGlvbi5cbiAgICAvLyBUaGV5IG5lZWQgdG8gYmUgZml4ZWQob3Igd2UgYXQgbGVhc3QgbmVlZCB0byBtYWtlIGl0IHNvIFRyYW5zYWN0aW9uIGNvbmZvcm1zIHRvIEVuY29kZWRUcmFuc2FjdGlvbikuXCJcbiAgICBjb25zdCB0eCA9IGFsZ29zZGsuZGVjb2RlU2lnbmVkVHJhbnNhY3Rpb24oYnVmZmVyKTtcblxuICAgIGNvbnN0IHNpZ25lcnM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgc2lnbmVkQnk6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHR4Lm1zaWcgJiYgdHgubXNpZy5zdWJzaWcpIHtcbiAgICAgIGZvciAoY29uc3Qgc2lnIG9mIHR4Lm1zaWcuc3Vic2lnKSB7XG4gICAgICAgIGNvbnN0IGFkZHIgPSBhbGdvc2RrLmVuY29kZUFkZHJlc3Moc2lnLnBrKTtcbiAgICAgICAgc2lnbmVycy5wdXNoKGFkZHIpO1xuICAgICAgICBpZiAoc2lnLnMpIHtcbiAgICAgICAgICBzaWduZWRCeS5wdXNoKGFkZHIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIHJhd1RyYW5zYWN0aW9uOiBuZXcgVWludDhBcnJheShidWZmZXIpLFxuICAgICAgdHhuOiB0eC50eG4sXG4gICAgICBzaWduZWQ6IHRydWUsXG4gICAgICBzaWduZXJzOiBzaWduZXJzLFxuICAgICAgc2lnbmVkQnk6IHNpZ25lZEJ5LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVHJ5IHRvIGRlY29kZSBhbiB1bnNpZ25lZCBBbGdvIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBidWZmZXIgdGhlIGVuY29kZWQgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge0VuY29kZWRUeH0gdGhlIGRlY29kZWQgdW5zaWduZWQgdHJhbnNhY3Rpb25cbiAgICogQHRocm93cyBlcnJvciBpZiBpdCBpcyBub3QgYSB2YWxpZCBlbmNvZGVkIHVuc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqL1xuICB0cnlUb0RlY29kZVVuc2lnbmVkVHJhbnNhY3Rpb24oYnVmZmVyOiBCdWZmZXIpOiBFbmNvZGVkVHgge1xuICAgIGNvbnN0IHR4biA9IGFsZ29zZGsuZGVjb2RlVW5zaWduZWRUcmFuc2FjdGlvbihidWZmZXIpO1xuICAgIHJldHVybiB7XG4gICAgICByYXdUcmFuc2FjdGlvbjogbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKSxcbiAgICAgIHR4bixcbiAgICAgIHNpZ25lZDogZmFsc2UsXG4gICAgfTtcbiAgfVxuXG4gIC8qXG4gICAqIGVuY29kZU9iaiB0YWtlcyBhIGphdmFzY3JpcHQgb2JqZWN0IGFuZCByZXR1cm5zIGl0cyBtc2dwYWNrIGVuY29kaW5nXG4gICAqIE5vdGUgdGhhdCB0aGUgZW5jb2Rpbmcgc29ydHMgdGhlIGZpZWxkcyBhbHBoYWJldGljYWxseVxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIGFueT59IG9iaiBqcyBvYmpcbiAgICogQHJldHVybnMge1VpbnQ4QXJyYXl9IFVpbnQ4QXJyYXkgYmluYXJ5IHJlcHJlc2VudGF0aW9uXG4gICAqL1xuICBlbmNvZGVPYmoob2JqOiBSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sLCBhbnk+KTogVWludDhBcnJheSB7XG4gICAgcmV0dXJuIGFsZ29zZGsuZW5jb2RlT2JqKG9iaik7XG4gIH1cblxuICAvKipcbiAgICogZGVjb2RlT2JqIHRha2VzIGEgVWludDhBcnJheSBhbmQgcmV0dXJucyBpdHMgamF2YXNjcmlwdCBvYmpcbiAgICogQHBhcmFtIG8gLSBVaW50OEFycmF5IHRvIGRlY29kZVxuICAgKiBAcmV0dXJucyBvYmplY3RcbiAgICovXG4gIGRlY29kZU9iaihvOiBBcnJheUxpa2U8bnVtYmVyPik6IHVua25vd24ge1xuICAgIHJldHVybiBhbGdvc2RrLmRlY29kZU9iaihvKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzZWNyZXRLZXlUb01uZW1vbmljIHRha2VzIGFuIEFsZ29yYW50IHNlY3JldCBrZXkgYW5kIHJldHVybnMgdGhlIGNvcnJlc3BvbmRpbmcgbW5lbW9uaWNcbiAgICpcbiAgICogQHBhcmFtIHNrIC0gQWxnb3JhbnQgc2VjcmV0IGtleVxuICAgKiBAcmV0dXJuIFNlY3JldCBrZXkgaXMgYXNzb2NpYXRlZCBtbmVtb25pY1xuICAgKi9cbiAgc2VjcmV0S2V5VG9NbmVtb25pYyhzazogQnVmZmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBza1ZhbGlkID0gQnVmZmVyLmZyb20oc2sudG9TdHJpbmcoJ2hleCcpKTtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZFByaXZhdGVLZXkoc2tWYWxpZC50b1N0cmluZygnaGV4JykpKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZEtleShgVGhlIHNlY3JldCBrZXk6ICR7c2sudG9TdHJpbmcoJ2hleCcpfSBpcyBpbnZhbGlkYCk7XG4gICAgfVxuICAgIGNvbnN0IHNrVW5pdDhBcnJheSA9IEJ1ZmZlci5mcm9tKHNrKTtcbiAgICByZXR1cm4gYWxnb3Nkay5zZWNyZXRLZXlUb01uZW1vbmljKHNrVW5pdDhBcnJheSk7XG4gIH1cblxuICAvKipcbiAgICogc2VlZEZyb21NbmVtb25pYyBjb252ZXJ0cyBhIG1uZW1vbmljIGdlbmVyYXRlZCB1c2luZyB0aGlzIGxpYnJhcnkgaW50byB0aGUgc291cmNlIGtleSB1c2VkIHRvIGNyZWF0ZSBpdFxuICAgKiBJdCByZXR1cm5zIGFuIGVycm9yIGlmIHRoZSBwYXNzZWQgbW5lbW9uaWMgaGFzIGFuIGluY29ycmVjdCBjaGVja3N1bSwgaWYgdGhlIG51bWJlciBvZiB3b3JkcyBpcyB1bmV4cGVjdGVkLCBvciBpZiBvbmVcbiAgICogb2YgdGhlIHBhc3NlZCB3b3JkcyBpcyBub3QgZm91bmQgaW4gdGhlIHdvcmRzIGxpc3RcbiAgICpcbiAgICogQHBhcmFtIG1uZW1vbmljIC0gMjUgd29yZHMgbW5lbW9uaWNcbiAgICogQHJldHVybnMgMzIgYnl0ZXMgbG9uZyBzZWVkXG4gICAqL1xuICBzZWVkRnJvbU1uZW1vbmljKG1uZW1vbmljOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgICByZXR1cm4gYWxnb3Nkay5tbmVtb25pY1RvTWFzdGVyRGVyaXZhdGlvbktleShtbmVtb25pYyk7XG4gIH1cblxuICAvKipcbiAgICoga2V5UGFpckZyb21TZWVkIGdlbmVyYXRlcyBhbiBvYmplY3Qgd2l0aCBzZWNyZXRLZXkgYW5kIHB1YmxpY0tleSB1c2luZyB0aGUgYWxnb3Nka1xuICAgKiBAcGFyYW0gc2VlZCAzMiBieXRlcyBsb25nIHNlZWRcbiAgICogQHJldHVybnMgS2V5UGFpclxuICAgKi9cbiAga2V5UGFpckZyb21TZWVkKHNlZWQ6IFVpbnQ4QXJyYXkpOiBLZXlQYWlyIHtcbiAgICBjb25zdCBtbiA9IHRoaXMubW5lbW9uaWNGcm9tU2VlZChzZWVkKTtcbiAgICBjb25zdCBiYXNlNjRQcml2YXRlS2V5ID0gYWxnb3Nkay5tbmVtb25pY1RvU2VjcmV0S2V5KG1uKS5zaztcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVLZXlQYWlyKGJhc2U2NFByaXZhdGVLZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGEgbmV3IGBLZXlQYWlyYCBvYmplY3QgZnJvbSB0aGUgZ2l2ZW4gcHJpdmF0ZSBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSBiYXNlNjRQcml2YXRlS2V5IDY0IGJ5dGVzIGxvbmcgcHJpdmF0ZUtleVxuICAgKiBAcmV0dXJucyBLZXlQYWlyXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlS2V5UGFpcihiYXNlNjRQcml2YXRlS2V5OiBVaW50OEFycmF5KTogS2V5UGFpciB7XG4gICAgY29uc3Qgc2sgPSBiYXNlNjRQcml2YXRlS2V5LnNsaWNlKDAsIDMyKTtcbiAgICByZXR1cm4gbmV3IEtleVBhaXIoeyBwcnY6IEJ1ZmZlci5mcm9tKHNrKS50b1N0cmluZygnaGV4JykgfSk7XG4gIH1cblxuICAvKipcbiAgICogZGVjb2RlUHJpdmF0ZUtleSBnZW5lcmF0ZXMgYSBzZWVkIHdpdGggYSBtbmVtb25pYyBhbmQgdXNpbmcgYWxnb3Nkay5cbiAgICpcbiAgICogQHBhcmFtIHNlZWQgMzIgYnl0ZXMgbG9uZyBzZWVkXG4gICAqIEByZXR1cm5zIG1uZW1vbmljIC0gMjUgd29yZHMgbW5lbW9uaWMgLSAyNSB3b3JkcyBtbmVtb25pY1xuICAgKi9cbiAgcHJvdGVjdGVkIG1uZW1vbmljRnJvbVNlZWQoc2VlZDogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFsZ29zZGsubWFzdGVyRGVyaXZhdGlvbktleVRvTW5lbW9uaWMoc2VlZCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBrZXkgd2l0aCB0aGUgc3RlbGxhci1zZGtcbiAgICpcbiAgICogQHBhcmFtIHB1YmxpY0tleVxuICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXlTdGVsbGFyKHB1YmxpY0tleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHN0ZWxsYXIuU3RyS2V5LmlzVmFsaWRFZDI1NTE5UHVibGljS2V5KHB1YmxpY0tleSk7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyB0aGUga2V5IHdpdGggdGhlIHN0ZWxsYXItc2RrXG4gICAqXG4gICAqIEBwYXJhbSBwdWJsaWNLZXlcbiAgICogQHJldHVybnMgQnVmZmVyXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVjb2RlRWQyNTUxOVB1YmxpY0tleVN0ZWxsYXIocHVibGljS2V5OiBzdHJpbmcpOiBCdWZmZXIge1xuICAgIHJldHVybiBzdGVsbGFyLlN0cktleS5kZWNvZGVFZDI1NTE5UHVibGljS2V5KHB1YmxpY0tleSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIHN0ZWxsYXIgc2VlZCB0byBhbGdvcmFuZCBlbmNvZGluZ1xuICAgKlxuICAgKiBAcGFyYW0gc2VlZFxuICAgKiBAcmV0dXJucyBzdHJpbmcgdGhlIGVuY29kZWQgc2VlZFxuICAgKi9cbiAgY29udmVydEZyb21TdGVsbGFyU2VlZChzZWVkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBTZWVkRW5jb2RpbmcuZW5jb2RlKHN0ZWxsYXIuU3RyS2V5LmRlY29kZUVkMjU1MTlTZWNyZXRTZWVkKHNlZWQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGFkZHJlc3MgZW5jb2RlZCB3aXRoIGFsZ29zZGtcbiAgICpcbiAgICogQHBhcmFtIGFkZHJcbiAgICogQHJldHVybnMgc3RyaW5nXG4gICAqL1xuICBlbmNvZGVBZGRyZXNzKGFkZHI6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICAgIHJldHVybiBhbGdvc2RrLmVuY29kZUFkZHJlc3MoYWRkcik7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFuIGFkZHJlc3MgZGVjb2RlZCB3aXRoIGFsZ29zZGtcbiAgICpcbiAgICogQHBhcmFtIGFkZHJcbiAgICogQHJldHVybnMgQWRkcmVzc1xuICAgKi9cbiAgZGVjb2RlQWRkcmVzcyhhZGRyOiBzdHJpbmcpOiBBZGRyZXNzIHtcbiAgICByZXR1cm4gYWxnb3Nkay5kZWNvZGVBZGRyZXNzKGFkZHIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGFuIGFkZHJlc3MgaW50byBhbiBBTEdPIG9uZVxuICAgKiBJZiB0aGUgZ2l2ZW4gZGF0YSBpcyBhIFN0ZWxsYXIgYWRkcmVzcyBvciBwdWJsaWMga2V5LCBpdCBpcyBjb252ZXJ0ZWQgdG8gQUxHTyBhZGRyZXNzLlxuICAgKlxuICAgKiBAcGFyYW0gYWRkcmVzc09yUHViS2V5IGFuIEFMR08gYWRkcmVzcywgb3IgYW4gU3RlbGxhciBhZGRyZXNzIG9yIHB1YmxpYyBrZXlcbiAgICogQHJldHVybnMgYWRkcmVzcyBhbGdvIGFkZHJlc3Mgc3RyaW5nXG4gICAqL1xuICBzdGVsbGFyQWRkcmVzc1RvQWxnb0FkZHJlc3MoYWRkcmVzc09yUHViS2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIC8vIHdlIGhhdmUgYW4gQWxnb3JhbmQgYWRkcmVzc1xuICAgIGlmICh0aGlzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3NPclB1YktleSkpIHtcbiAgICAgIHJldHVybiBhZGRyZXNzT3JQdWJLZXk7XG4gICAgfVxuICAgIC8vIHdlIGhhdmUgYSBzdGVsbGFyIGtleVxuICAgIGlmICh0aGlzLmlzVmFsaWRFZDI1NTE5UHVibGljS2V5U3RlbGxhcihhZGRyZXNzT3JQdWJLZXkpKSB7XG4gICAgICBjb25zdCBzdGVsbGFyUHViID0gdGhpcy5kZWNvZGVFZDI1NTE5UHVibGljS2V5U3RlbGxhcihhZGRyZXNzT3JQdWJLZXkpO1xuICAgICAgY29uc3QgYWxnb0FkZHJlc3MgPSB0aGlzLmVuY29kZUFkZHJlc3Moc3RlbGxhclB1Yik7XG4gICAgICBpZiAodGhpcy5pc1ZhbGlkQWRkcmVzcyhhbGdvQWRkcmVzcykpIHtcbiAgICAgICAgcmV0dXJuIGFsZ29BZGRyZXNzO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29udmVydCBTdGVsbGFyIGFkZHJlc3MgdG8gYW4gQWxnb3JhbmQgYWRkcmVzcyB2aWEgcHVia2V5LicpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ05laXRoZXIgYW4gQWxnb3JhbmQgYWRkcmVzcyBub3IgYSBzdGVsbGFyIHB1YmtleS4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBtdWx0aXNpZ0FkZHJlc3MgdGFrZXMgbXVsdGlzaWcgbWV0YWRhdGEgKHByZWltYWdlKSBhbmQgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBodW1hbiByZWFkYWJsZSBBbGdvcmFuZCBhZGRyZXNzLlxuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gdmVyc2lvbiBtdXRsaXNpZyB2ZXJzaW9uXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aHJlc2hvbGQgbXVsdGlzaWcgdGhyZXNob2xkXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGFkZHJzIGxpc3Qgb2YgQWxnb3JhbmQgYWRkcmVzc2VzXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IGh1bWFuIHJlYWRhYmxlIEFsZ29yYW5kIGFkZHJlc3MuXG4gICAqL1xuICBtdWx0aXNpZ0FkZHJlc3ModmVyc2lvbjogbnVtYmVyLCB0aHJlc2hvbGQ6IG51bWJlciwgYWRkcnM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWxnb3Nkay5tdWx0aXNpZ0FkZHJlc3Moe1xuICAgICAgdmVyc2lvbixcbiAgICAgIHRocmVzaG9sZCxcbiAgICAgIGFkZHJzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIGdlbmVyYXRlQWNjb3VudCBnZW5lcmF0ZXMgdW4gYWNjb3VudCB3aXRoIGEgc2VjcmV0S2V5IGFuZCBhbiBhZGRyZXNzXG4gICAqXG4gICAqIEZ1bmN0aW9uIGhhcyBub3QgcGFyYW1zXG4gICAqIEByZXR1cm5zIEFjY291bnRcbiAgICovXG4gIGdlbmVyYXRlQWNjb3VudCgpOiBhbGdvc2RrLkFjY291bnQge1xuICAgIHJldHVybiBhbGdvc2RrLmdlbmVyYXRlQWNjb3VudCgpO1xuICB9XG5cbiAgZ2VuZXJhdGVBY2NvdW50RnJvbVNlZWQoc2VlZDogVWludDhBcnJheSk6IGFsZ29zZGsuQWNjb3VudCB7XG4gICAgY29uc3Qga2V5cyA9IG5hY2wuc2lnbi5rZXlQYWlyLmZyb21TZWVkKHNlZWQpO1xuICAgIHJldHVybiB7XG4gICAgICBhZGRyOiBhbGdvc2RrLmVuY29kZUFkZHJlc3Moa2V5cy5wdWJsaWNLZXkpLFxuICAgICAgc2s6IGtleXMuc2VjcmV0S2V5LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIFR4IElEIGZyb20gYW4gZW5jb2RlZCBtdWx0aXNpZyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBUaGlzIGlzIGRvbmUgYmVjYXVzZSBvZiBhIGNoYW5nZSBtYWRlIG9uIHZlcnNpb24gMS4xMC4xIG9uIGFsZ29zZGsgc28gbWV0aG9kIHR4SUQoKSBvbmx5IHN1cHBvcnRzIFNpZ25lZFRyYW5zYWN0aW9uIHR5cGUuXG4gICAqIChodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmQvanMtYWxnb3JhbmQtc2RrL2Jsb2IvZGV2ZWxvcC9DSEFOR0VMT0cubWQjMTEwMSlcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHR4QmFzZTY0IC0gZW5jb2RlZCBiYXNlNjQgbXVsdGlzaWcgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge3N0cmluZ30gLSB0cmFuc2FjdGlvbiBJRFxuICAgKi9cbiAgZ2V0TXVsdGlzaWdUeElEKHR4QmFzZTY0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR4Qnl0ZXMgPSBCdWZmZXIuZnJvbSh0eEJhc2U2NCwgJ2Jhc2U2NCcpO1xuICAgIGNvbnN0IGRlY29kZVNpZ25UeCA9IGFsZ29zZGsuZGVjb2RlU2lnbmVkVHJhbnNhY3Rpb24odHhCeXRlcyk7XG4gICAgY29uc3Qgd2VsbEZvcm1lZERlY29kZWRTaWduVHggPSBkZWNvZGVTaWduVHgudHhuLmdldF9vYmpfZm9yX2VuY29kaW5nKCk7XG4gICAgY29uc3QgdHhGb3JFbmNvZGluZyA9IHsgbXNpZzogZGVjb2RlU2lnblR4Lm1zaWcsIHR4bjogd2VsbEZvcm1lZERlY29kZWRTaWduVHggfTtcbiAgICBjb25zdCBlbl9tc2cgPSBlbmNvZGluZy5lbmNvZGUodHhGb3JFbmNvZGluZyk7XG4gICAgY29uc3QgdGFnID0gQnVmZmVyLmZyb20oWzg0LCA4OF0pO1xuICAgIGNvbnN0IGdoID0gQnVmZmVyLmZyb20oY29uY2F0QXJyYXlzKHRhZywgZW5fbXNnKSk7XG4gICAgY29uc3QgaGFzaCA9IEJ1ZmZlci5mcm9tKGFsZ29OYWNsLmdlbmVyaWNIYXNoKGdoKSk7XG4gICAgcmV0dXJuIGJhc2UzMi5lbmNvZGUoaGFzaCkuc2xpY2UoMCwgQUxHT1JBTkRfVFJBTlNBQ1RJT05fTEVOR1RIKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gdHJhbnNhY3Rpb24gZGF0YSBpcyB0byBlbmFibGUgb3IgZGlzYWJsZSBhIHRva2VuXG4gICAqIEBwYXJhbSBhbW91bnQgdGhlIGFtb3VudCBpbiB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gZnJvbSB0aGUgb3JpZ2luYXRlZCBhZGRyZXNzXG4gICAqIEBwYXJhbSB0byB0aGUgdGFyZ2V0IGFkZHJlc3NcbiAgICogQHBhcmFtIGNsb3NlUmVtYWluZGVyVG8gKG9wdGlvbmFsKSBhZGRyZXNzIHRvIHNlbmQgcmVtYWluaW5nIHVuaXRzIGluIG9yaWdpbmF0ZWQgYWRkcmVzc1xuICAgKiBAcmV0dXJucyAnZW5hYmxlVG9rZW4nIG9yICdkaXNhYmxlVG9rZW4nXG4gICAqL1xuICBnZXRUb2tlblR4VHlwZShhbW91bnQ6IHN0cmluZywgZnJvbTogc3RyaW5nLCB0bzogc3RyaW5nLCBjbG9zZVJlbWFpbmRlclRvPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgdHlwZSA9ICd0cmFuc2ZlclRva2VuJztcbiAgICBpZiAoYW1vdW50ID09PSAnMCcgJiYgZnJvbSA9PT0gdG8pIHtcbiAgICAgIHR5cGUgPSAhY2xvc2VSZW1haW5kZXJUbyA/ICdlbmFibGVUb2tlbicgOiAnZGlzYWJsZVRva2VuJztcbiAgICB9XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
|
|
531
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9hbGdvL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxvREFBOEI7QUFDOUIsNERBQWtDO0FBQ2xDLGtEQUFzQztBQUN0Qyw4Q0FBa0M7QUFDbEMsd0RBQStCO0FBQy9CLHdEQUErQjtBQUMvQixrREFBdUI7QUFDdkIsNkNBQXNGO0FBRXRGLDZDQUE4RjtBQUU5RixxQ0FBb0M7QUFDcEMsK0NBQThDO0FBQzlDLCtFQUFtRTtBQUNuRSwrRUFBbUU7QUFFbkUsSUFBTSw2QkFBNkIsR0FBRyxDQUFDLENBQUM7QUFDeEMsSUFBTSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7QUFDaEMsSUFBTSx5QkFBeUIsR0FBRyxFQUFFLENBQUM7QUFDckMsSUFBTSwyQkFBMkIsR0FBRyxFQUFFLENBQUM7QUFDdkMsSUFBTSxpQkFBaUIsR0FBRyxFQUFFLENBQUM7QUFFN0I7Ozs7O0dBS0c7QUFDSCxTQUFTLFdBQVcsQ0FBQyxLQUFhO0lBQ2hDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFTLFlBQVksQ0FBQyxDQUFhLEVBQUUsQ0FBYTtJQUNoRCxJQUFNLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25CLE9BQU8sQ0FBQyxDQUFDO0FBQ1gsQ0FBQztBQUVEO0lBQUE7SUF1ZkEsQ0FBQztJQXRmQyxrQkFBa0I7SUFDbEIsOEJBQWMsR0FBZCxVQUFlLE9BQWU7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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYWxnb3NkayBmcm9tICdhbGdvc2RrJztcbmltcG9ydCBzdGVsbGFyIGZyb20gJ3N0ZWxsYXItc2RrJztcbmltcG9ydCAqIGFzIGhleCBmcm9tICdAc3RhYmxlbGliL2hleCc7XG5pbXBvcnQgKiBhcyBuYWNsIGZyb20gJ3R3ZWV0bmFjbCc7XG5pbXBvcnQgYmFzZTMyIGZyb20gJ2hpLWJhc2UzMic7XG5pbXBvcnQgc2hhNTEyIGZyb20gJ2pzLXNoYTUxMic7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXksIGlzVmFsaWRFZDI1NTE5U2VjcmV0S2V5IH0gZnJvbSAnLi4vLi4vdXRpbHMvY3J5cHRvJztcbmltcG9ydCB7IEJhc2VVdGlscyB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEludmFsaWRLZXksIEludmFsaWRUcmFuc2FjdGlvbkVycm9yLCBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7IEFkZHJlc3MsIEVuY29kZWRUeCwgU2VlZCB9IGZyb20gJy4vaWZhY2VzJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgU2VlZEVuY29kaW5nIH0gZnJvbSAnLi9zZWVkRW5jb2RpbmcnO1xuaW1wb3J0ICogYXMgYWxnb05hY2wgZnJvbSAnYWxnb3Nkay9kaXN0L2Nqcy9zcmMvbmFjbC9uYWNsV3JhcHBlcnMnO1xuaW1wb3J0ICogYXMgZW5jb2RpbmcgZnJvbSAnYWxnb3Nkay9kaXN0L2Nqcy9zcmMvZW5jb2RpbmcvZW5jb2RpbmcnO1xuXG5jb25zdCBBTEdPUkFORF9DSEVDS1NVTV9CWVRFX0xFTkdUSCA9IDQ7XG5jb25zdCBBTEdPUkFORF9TRUVEX0xFTkdUSCA9IDU4O1xuY29uc3QgQUxHT1JBTkRfU0VFRF9CWVRFX0xFTkdUSCA9IDM2O1xuY29uc3QgQUxHT1JBTkRfVFJBTlNBQ1RJT05fTEVOR1RIID0gNTI7XG5jb25zdCBTRUVEX0JZVEVTX0xFTkdUSCA9IDMyO1xuXG4vKipcbiAqIERldGVybWluZXMgd2hldGhlciB0aGUgc3RyaW5nIGlzIG9ubHkgY29tcG9zZWQgb2YgaGV4IGNoYXJzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtYXliZSBUaGUgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZC5cbiAqIEByZXR1cm5zIHtib29sZWFufSB0cnVlIGlmIHRoZSBzdHJpbmcgY29uc2lzdHMgb2Ygb25seSBoZXggY2hhcmFjdGVycywgb3RoZXJ3aXNlIGZhbHNlLlxuICovXG5mdW5jdGlvbiBhbGxIZXhDaGFycyhtYXliZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAvXihbMC05YS1mXXsyfSkrJC9pLnRlc3QobWF5YmUpO1xufVxuXG4vKipcbiAqIENvbmNhdEFycmF5cyB0YWtlcyB0d28gYXJyYXkgYW5kIHJldHVybnMgYSBqb2ludCBhcnJheSBvZiBib3RoXG4gKlxuICogQHBhcmFtIGEge1VpbnQ4QXJyYXl9IGZpcnN0IGFycmF5IHRvIGNvbmNhdFxuICogQHBhcmFtIGIge1VpbnQ4QXJyYXl9IHNlY29uZCBhcnJheVxuICogQHJldHVybnMge1VpbnQ4QXJyYXl9IGEgbmV3IGFycmF5IGNvbnRhaW5pbmcgYWxsIGVsZW1lbnRzIG9mICdhJyBmb2xsb3dlZCBieSBhbGwgZWxlbWVudHMgb2YgJ2InXG4gKi9cbmZ1bmN0aW9uIGNvbmNhdEFycmF5cyhhOiBVaW50OEFycmF5LCBiOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XG4gIGNvbnN0IGMgPSBuZXcgVWludDhBcnJheShhLmxlbmd0aCArIGIubGVuZ3RoKTtcbiAgYy5zZXQoYSk7XG4gIGMuc2V0KGIsIGEubGVuZ3RoKTtcbiAgcmV0dXJuIGM7XG59XG5cbmV4cG9ydCBjbGFzcyBVdGlscyBpbXBsZW1lbnRzIEJhc2VVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYWxnb3Nkay5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkVHJhbnNhY3Rpb25JZCh0eElkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodHhJZC5sZW5ndGggIT09IDEwNCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBhbGxIZXhDaGFycyh0eElkKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHVibGljS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5KGtleSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlTZWNyZXRLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIGhleCBzdHJpbmcgb2YgdGhlIGdpdmVuIGJ1ZmZlclxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IGJ1ZmZlciAtIHRoZSBidWZmZXIgdG8gYmUgY29udmVydGVkIHRvIGhleFxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBoZXggdmFsdWVcbiAgICovXG4gIHRvSGV4KGJ1ZmZlcjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGhleC5lbmNvZGUoYnVmZmVyLCB0cnVlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ2lzVmFsaWRTaWduYXR1cmUgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRCbG9ja0lkKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdoYXNoIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wYXJlIHR3byBLZXlzXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ga2V5MSAtIGtleSB0byBiZSBjb21wYXJlXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ga2V5MiAtIGtleSB0byBiZSBjb21wYXJlXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIHJldHVybnMgdHJ1ZSBpZiBib3RoIGtleXMgYXJlIGVxdWFsXG4gICAqL1xuICBhcmVLZXlzRXF1YWwoa2V5MTogVWludDhBcnJheSwga2V5MjogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBuYWNsLnZlcmlmeShrZXkxLCBrZXkyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgVWludDhBcnJheSBvZiB0aGUgZ2l2ZW4gaGV4IHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gdGhlIGhleCBzdHJpbmcgdG8gYmUgY29udmVydGVkXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdGhlIFVpbnQ4QXJyYXkgdmFsdWVcbiAgICovXG4gIHRvVWludDhBcnJheShzdHI6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShzdHIsICdoZXgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgYSBzZWVkIGlzIHZhbGlkLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2VlZCAtIHRoZSBzZWVkIHRvIGJlIHZhbGlkYXRlZFxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSB0cnVlIGlmIHRoZSBzZWVkIGlzIHZhbGlkXG4gICAqL1xuICBpc1ZhbGlkU2VlZChzZWVkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAodHlwZW9mIHNlZWQgIT09ICdzdHJpbmcnKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAoc2VlZC5sZW5ndGggIT09IEFMR09SQU5EX1NFRURfTEVOR1RIKSByZXR1cm4gZmFsc2U7XG5cbiAgICAvLyBUcnkgdG8gZGVjb2RlXG4gICAgbGV0IGRlY29kZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGRlY29kZWQgPSB0aGlzLmRlY29kZVNlZWQoc2VlZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIENvbXB1dGUgY2hlY2tzdW1cbiAgICBjb25zdCBjaGVja3N1bSA9IG5ldyBVaW50OEFycmF5KFxuICAgICAgc2hhNTEyLnNoYTUxMl8yNTYuYXJyYXkoZGVjb2RlZC5zZWVkKS5zbGljZShTRUVEX0JZVEVTX0xFTkdUSCAtIEFMR09SQU5EX0NIRUNLU1VNX0JZVEVfTEVOR1RILCBTRUVEX0JZVEVTX0xFTkdUSCksXG4gICAgKTtcblxuICAgIC8vIENoZWNrIGlmIHRoZSBjaGVja3N1bSBtYXRjaGVzIHRoZSBvbmUgZnJvbSB0aGUgZGVjb2RlZCBzZWVkXG4gICAgcmV0dXJuIF8uaXNFcXVhbChjaGVja3N1bSwgZGVjb2RlZC5jaGVja3N1bSk7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIGFuIGFsZ28gc2VlZFxuICAgKlxuICAgKiBAcGFyYW0gIHtCdWZmZXJ9IHNlY3JldEtleSAtIHRoZSB2YWxpZCBzZWNyZXRLZXkgLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBzZWVkIHRvIGJlIHZhbGlkYXRlZC5cbiAgICovXG4gIGVuY29kZVNlZWQoc2VjcmV0S2V5OiBCdWZmZXIpOiBzdHJpbmcge1xuICAgIC8vIGdldCBzZWVkXG4gICAgY29uc3Qgc2VlZCA9IHNlY3JldEtleS5zbGljZSgwLCBTRUVEX0JZVEVTX0xFTkdUSCk7XG4gICAgLy8gY29tcHV0ZSBjaGVja3N1bVxuICAgIGNvbnN0IGNoZWNrc3VtID0gQnVmZmVyLmZyb20oXG4gICAgICBzaGE1MTIuc2hhNTEyXzI1Ni5hcnJheShzZWVkKS5zbGljZShTRUVEX0JZVEVTX0xFTkdUSCAtIEFMR09SQU5EX0NIRUNLU1VNX0JZVEVfTEVOR1RILCBTRUVEX0JZVEVTX0xFTkdUSCksXG4gICAgKTtcbiAgICBjb25zdCBlbmNvZGVkU2VlZCA9IGJhc2UzMi5lbmNvZGUoY29uY2F0QXJyYXlzKHNlZWQsIGNoZWNrc3VtKSk7XG5cbiAgICByZXR1cm4gZW5jb2RlZFNlZWQudG9TdHJpbmcoKS5zbGljZSgwLCBBTEdPUkFORF9TRUVEX0xFTkdUSCk7IC8vIHJlbW92aW5nIHRoZSBleHRyYSAnPT09PSdcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWNvZGVTZWVkIGRlY29kZXMgYW4gYWxnbyBzZWVkXG4gICAqXG4gICAqIERlY29kaW5nIGFsZ28gc2VlZCBpcyBzYW1lIGFzIGRlY29kaW5nIGFkZHJlc3MuXG4gICAqIExhdGVzdCB2ZXJzaW9uIG9mIGFsZ28gc2RrICgxLjksIGF0IHRoaXMgd3JpdGluZykgZG9lcyBub3QgZXhwb3NlIGV4cGxpY2l0IG1ldGhvZCBmb3IgZGVjb2Rpbmcgc2VlZC5cbiAgICogUGFyYW1ldGVyIGlzIGRlY29kZWQgYW5kIHNwbGl0IGludG8gc2VlZCBhbmQgY2hlY2tzdW0uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZWVkIC0gaGV4IG9yIGJhc2U2NCBlbmNvZGVkIHNlZWQgdG8gYmUgdmFsaWRhdGVkXG4gICAqIEByZXR1cm5zIHtTZWVkfSAtIHZhbGlkYXRlZCBvYmplY3QgU2VlZFxuICAgKi9cbiAgZGVjb2RlU2VlZChzZWVkOiBzdHJpbmcpOiBTZWVkIHtcbiAgICAvLyB0cnkgdG8gZGVjb2RlXG4gICAgY29uc3QgZGVjb2RlZCA9IGJhc2UzMi5kZWNvZGUuYXNCeXRlcyhzZWVkKTtcblxuICAgIC8vIFNhbml0eSBjaGVja1xuICAgIGlmIChkZWNvZGVkLmxlbmd0aCAhPT0gQUxHT1JBTkRfU0VFRF9CWVRFX0xFTkdUSCkgdGhyb3cgbmV3IEVycm9yKCdzZWVkIHNlZW1zIHRvIGJlIG1hbGZvcm1lZCcpO1xuICAgIHJldHVybiB7XG4gICAgICBzZWVkOiBuZXcgVWludDhBcnJheShkZWNvZGVkLnNsaWNlKDAsIEFMR09SQU5EX1NFRURfQllURV9MRU5HVEggLSBBTEdPUkFORF9DSEVDS1NVTV9CWVRFX0xFTkdUSCkpLFxuICAgICAgY2hlY2tzdW06IG5ldyBVaW50OEFycmF5KGRlY29kZWQuc2xpY2UoU0VFRF9CWVRFU19MRU5HVEgsIEFMR09SQU5EX1NFRURfQllURV9MRU5HVEgpKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIGlmIHNpZ25hdHVyZSBmb3IgbWVzc2FnZSBpcyB2YWxpZC5cbiAgICpcbiAgICogQHBhcmFtIHB1YiB7VWludDhBcnJheX0gcHVibGljIGtleVxuICAgKiBAcGFyYW0gbWVzc2FnZSB7VWludDhBcnJheX0gc2lnbmVkIG1lc3NhZ2VcbiAgICogQHBhcmFtIHNpZ25hdHVyZSB7QnVmZmVyfSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gICAqIEByZXR1cm5zIHtCb29sZWFufSB0cnVlIGlmIHNpZ25hdHVyZSBpcyB2YWxpZC5cbiAgICovXG4gIHZlcmlmeVNpZ25hdHVyZShtZXNzYWdlOiBVaW50OEFycmF5LCBzaWduYXR1cmU6IEJ1ZmZlciwgcHViOiBVaW50OEFycmF5KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG5hY2wuc2lnbi5kZXRhY2hlZC52ZXJpZnkobWVzc2FnZSwgc2lnbmF0dXJlLCBwdWIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyYW5zZm9ybXMgYW4gRWQyNTUxOSBwdWJsaWMga2V5IGludG8gYW4gYWxnb3JhbmQgYWRkcmVzcy5cbiAgICpcbiAgICogQHBhcmFtIHtVaW50OEFycmF5fSBwayBUaGUgRWQyNTUxOSBwdWJsaWMga2V5LlxuICAgKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFsZ29yYW5kLm9yZy9kb2NzL2ZlYXR1cmVzL2FjY291bnRzLyN0cmFuc2Zvcm1hdGlvbi1wdWJsaWMta2V5LXRvLWFsZ29yYW5kLWFkZHJlc3NcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIGFsZ29yYW5kIGFkZHJlc3MuXG4gICAqL1xuICBwdWJsaWNLZXlUb0FsZ29BZGRyZXNzKHBrOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbmV3IEtleVBhaXIoeyBwdWI6IEJ1ZmZlci5mcm9tKHBrKS50b1N0cmluZygnaGV4JykgfSkuZ2V0QWRkcmVzcygpO1xuICB9XG4gIC8qKlxuICAgKiBDaGVja3MgaWYgYSB1bnNpZ25lZCBhbGdvIHRyYW5zYWN0aW9uIGNhbiBiZSBkZWNvZGVkLlxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IHR4biBUaGUgZW5jb2RlZCB1bnNpZ25lZCB0cmFuc2FjdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIGNhbiBiZSBkZWNvZGVkLCBvdGhlcndpc2UgZmFsc2VcbiAgICovXG4gIHByb3RlY3RlZCBpc0RlY29kYWJsZVVuc2lnbmVkQWxnb1R4bih0eG46IFVpbnQ4QXJyYXkpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgYWxnb3Nkay5kZWNvZGVVbnNpZ25lZFRyYW5zYWN0aW9uKHR4bik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIGEgc2lnbmVkIGFsZ28gdHJhbnNhY3Rpb24gY2FuIGJlIGRlY29kZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gdHhuIFRoZSBlbmNvZGVkIHNpZ25lZCB0cmFuc2FjdGlvbi5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IHRydWUgaWYgdGhlIHRyYW5zYWN0aW9uIGNhbiBiZSBkZWNvZGVkLCBvdGhlcndpc2UgZmFsc2VcbiAgICovXG4gIHByb3RlY3RlZCBpc0RlY29kYWJsZVNpZ25lZFRyYW5zYWN0aW9uKHR4bjogVWludDhBcnJheSk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBhbGdvc2RrLmRlY29kZVNpZ25lZFRyYW5zYWN0aW9uKHR4bik7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyBhIHNpZ25lZCBvciB1bnNpZ25lZCBhbGdvIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXkgfCBzdHJpbmd9IHR4bkJ5dGVzIFRoZSBlbmNvZGVkIHVuc2lnbmVkIG9yIHNpZ25lZCB0eG4uXG4gICAqIEByZXR1cm5zIHtFbmNvZGVkVHh9IFRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgZGVjb2RlQWxnb1R4bih0eG5CeXRlczogVWludDhBcnJheSB8IHN0cmluZyk6IEVuY29kZWRUeCB7XG4gICAgbGV0IGJ1ZmZlciA9XG4gICAgICB0eXBlb2YgdHhuQnl0ZXMgPT09ICdzdHJpbmcnXG4gICAgICAgID8gQnVmZmVyLmZyb20odHhuQnl0ZXMsIGFsbEhleENoYXJzKHR4bkJ5dGVzKSA/ICdoZXgnIDogJ2Jhc2U2NCcpXG4gICAgICAgIDogQnVmZmVyLmZyb20odHhuQnl0ZXMpO1xuXG4gICAgLy8gSW4gb3JkZXIgdG8gbWFpbnRhaW4gYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBrZXlyZWcgdHJhbnNhY3Rpb25zIGVuY29kZWQgd2l0aFxuICAgIC8vIGZvcmtlZCBhbGdvc2RrIDEuMi4wIChodHRwczovL2dpdGh1Yi5jb20vQml0R28vYWxnb3Nkay1iaXRnbyksXG4gICAgLy8gdGhlIHJlbGV2YW50IGluZm9ybWF0aW9uIGlzIGV4dHJhY3RlZCBhbmQgcGFyc2VkIGZvbGxvd2luZyB0aGUgbGF0ZXN0IGFsZ29zZGtcbiAgICAvLyByZWxlYXNlIHN0YW5kYXJkLlxuICAgIC8vIFRoaXMgd2F5IHdlIGNhbiBkZWNvZGUgdHJhbnNhY3Rpb25zIHN1Y2Nlc3NmdWxseSBieSBzdGlsbCBtYWludGFpbmluZyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICAgIGNvbnN0IGRlY29kZWRUeCA9IGVuY29kaW5nLmRlY29kZShidWZmZXIpO1xuICAgIGlmIChcbiAgICAgIGRlY29kZWRUeC50eG4gJiZcbiAgICAgIGRlY29kZWRUeC50eG4udHlwZSA9PT0gJ2tleXJlZycgJiZcbiAgICAgIGRlY29kZWRUeC50eG4udm90ZWZzdCAmJlxuICAgICAgZGVjb2RlZFR4LnR4bi52b3RlbHN0ICYmXG4gICAgICBkZWNvZGVkVHgudHhuLnZvdGVrZFxuICAgICkge1xuICAgICAgZGVjb2RlZFR4LnR4bi52b3Rla2V5ID0gZGVjb2RlZFR4LnR4bi52b3Rla2V5IHx8IGRlY29kZWRUeC5tc2lnLnN1YnNpZ1swXS5waztcbiAgICAgIGRlY29kZWRUeC50eG4uc2Vsa2V5ID0gZGVjb2RlZFR4LnR4bi5zZWxrZXkgfHwgZGVjb2RlZFR4Lm1zaWcuc3Vic2lnWzBdLnBrO1xuICAgICAgYnVmZmVyID0gZGVjb2RlZFR4Lm1zaWcgfHwgZGVjb2RlZFR4LnNpZyA/IGVuY29kaW5nLmVuY29kZShkZWNvZGVkVHgpIDogZW5jb2RpbmcuZW5jb2RlKGRlY29kZWRUeC50eG4pO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy50cnlUb0RlY29kZVVuc2lnbmVkVHJhbnNhY3Rpb24oYnVmZmVyKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIElnbm9yZSBlcnJvciB0byB0cnkgZGlmZmVyZW50IGZvcm1hdFxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy50cnlUb0RlY29kZVNpZ25lZFRyYW5zYWN0aW9uKGJ1ZmZlcik7XG4gICAgfSBjYXRjaCB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIGNhbm5vdCBiZSBkZWNvZGVkJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byBkZWNvZGUgYSBzaWduZWQgQWxnbyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0gYnVmZmVyIHRoZSBlbmNvZGVkIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHsgRW5jb2RlZFR4IH0gdGhlIGRlY29kZWQgc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqIEB0aHJvd3MgZXJyb3IgaWYgaXQgaXMgbm90IGEgdmFsaWQgZW5jb2RlZCBzaWduZWQgdHJhbnNhY3Rpb25cbiAgICovXG4gIHRyeVRvRGVjb2RlU2lnbmVkVHJhbnNhY3Rpb24oYnVmZmVyOiBCdWZmZXIpOiBFbmNvZGVkVHgge1xuICAgIC8vIFRPRE86IFJlcGxhY2Ugd2l0aFxuICAgIC8vIHJldHVybiBhbGdvc2RrLlRyYW5zYWN0aW9uLmZyb21fb2JqX2Zvcl9lbmNvZGluZyhhbGdvc2RrLmRlY29kZVNpZ25lZFRyYW5zYWN0aW9uKGJ1ZmZlcikudHhuKTtcbiAgICAvLyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZC9qcy1hbGdvcmFuZC1zZGsvaXNzdWVzLzM2NFxuICAgIC8vIFwiLi4uc29tZSBwYXJ0cyBvZiB0aGUgY29kZWJhc2UgdHJlYXQgdGhlIG91dHB1dCBvZiBUcmFuc2FjdGlvbi5mcm9tX29ial9mb3JfZW5jb2RpbmcgYXMgRW5jb2RlZFRyYW5zYWN0aW9uLlxuICAgIC8vIFRoZXkgbmVlZCB0byBiZSBmaXhlZChvciB3ZSBhdCBsZWFzdCBuZWVkIHRvIG1ha2UgaXQgc28gVHJhbnNhY3Rpb24gY29uZm9ybXMgdG8gRW5jb2RlZFRyYW5zYWN0aW9uKS5cIlxuICAgIGNvbnN0IHR4ID0gYWxnb3Nkay5kZWNvZGVTaWduZWRUcmFuc2FjdGlvbihidWZmZXIpO1xuXG4gICAgY29uc3Qgc2lnbmVyczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBzaWduZWRCeTogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodHgubXNpZyAmJiB0eC5tc2lnLnN1YnNpZykge1xuICAgICAgZm9yIChjb25zdCBzaWcgb2YgdHgubXNpZy5zdWJzaWcpIHtcbiAgICAgICAgY29uc3QgYWRkciA9IGFsZ29zZGsuZW5jb2RlQWRkcmVzcyhzaWcucGspO1xuICAgICAgICBzaWduZXJzLnB1c2goYWRkcik7XG4gICAgICAgIGlmIChzaWcucykge1xuICAgICAgICAgIHNpZ25lZEJ5LnB1c2goYWRkcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcmF3VHJhbnNhY3Rpb246IG5ldyBVaW50OEFycmF5KGJ1ZmZlciksXG4gICAgICB0eG46IHR4LnR4bixcbiAgICAgIHNpZ25lZDogdHJ1ZSxcbiAgICAgIHNpZ25lcnM6IHNpZ25lcnMsXG4gICAgICBzaWduZWRCeTogc2lnbmVkQnksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gZGVjb2RlIGFuIHVuc2lnbmVkIEFsZ28gdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIGJ1ZmZlciB0aGUgZW5jb2RlZCB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7RW5jb2RlZFR4fSB0aGUgZGVjb2RlZCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgKiBAdGhyb3dzIGVycm9yIGlmIGl0IGlzIG5vdCBhIHZhbGlkIGVuY29kZWQgdW5zaWduZWQgdHJhbnNhY3Rpb25cbiAgICovXG4gIHRyeVRvRGVjb2RlVW5zaWduZWRUcmFuc2FjdGlvbihidWZmZXI6IEJ1ZmZlcik6IEVuY29kZWRUeCB7XG4gICAgY29uc3QgdHhuID0gYWxnb3Nkay5kZWNvZGVVbnNpZ25lZFRyYW5zYWN0aW9uKGJ1ZmZlcik7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJhd1RyYW5zYWN0aW9uOiBuZXcgVWludDhBcnJheShidWZmZXIpLFxuICAgICAgdHhuLFxuICAgICAgc2lnbmVkOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgLypcbiAgICogZW5jb2RlT2JqIHRha2VzIGEgamF2YXNjcmlwdCBvYmplY3QgYW5kIHJldHVybnMgaXRzIG1zZ3BhY2sgZW5jb2RpbmdcbiAgICogTm90ZSB0aGF0IHRoZSBlbmNvZGluZyBzb3J0cyB0aGUgZmllbGRzIGFscGhhYmV0aWNhbGx5XG4gICAqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZyB8IG51bWJlciB8IHN5bWJvbCwgYW55Pn0gb2JqIGpzIG9ialxuICAgKiBAcmV0dXJucyB7VWludDhBcnJheX0gVWludDhBcnJheSBiaW5hcnkgcmVwcmVzZW50YXRpb25cbiAgICovXG4gIGVuY29kZU9iaihvYmo6IFJlY29yZDxzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wsIGFueT4pOiBVaW50OEFycmF5IHtcbiAgICByZXR1cm4gYWxnb3Nkay5lbmNvZGVPYmoob2JqKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWNvZGVPYmogdGFrZXMgYSBVaW50OEFycmF5IGFuZCByZXR1cm5zIGl0cyBqYXZhc2NyaXB0IG9ialxuICAgKiBAcGFyYW0gbyAtIFVpbnQ4QXJyYXkgdG8gZGVjb2RlXG4gICAqIEByZXR1cm5zIG9iamVjdFxuICAgKi9cbiAgZGVjb2RlT2JqKG86IEFycmF5TGlrZTxudW1iZXI+KTogdW5rbm93biB7XG4gICAgcmV0dXJuIGFsZ29zZGsuZGVjb2RlT2JqKG8pO1xuICB9XG5cbiAgLyoqXG4gICAqIHNlY3JldEtleVRvTW5lbW9uaWMgdGFrZXMgYW4gQWxnb3JhbnQgc2VjcmV0IGtleSBhbmQgcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBtbmVtb25pY1xuICAgKlxuICAgKiBAcGFyYW0gc2sgLSBBbGdvcmFudCBzZWNyZXQga2V5XG4gICAqIEByZXR1cm4gU2VjcmV0IGtleSBpcyBhc3NvY2lhdGVkIG1uZW1vbmljXG4gICAqL1xuICBzZWNyZXRLZXlUb01uZW1vbmljKHNrOiBCdWZmZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNrVmFsaWQgPSBCdWZmZXIuZnJvbShzay50b1N0cmluZygnaGV4JykpO1xuICAgIGlmICghdGhpcy5pc1ZhbGlkUHJpdmF0ZUtleShza1ZhbGlkLnRvU3RyaW5nKCdoZXgnKSkpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkS2V5KGBUaGUgc2VjcmV0IGtleTogJHtzay50b1N0cmluZygnaGV4Jyl9IGlzIGludmFsaWRgKTtcbiAgICB9XG4gICAgY29uc3Qgc2tVbml0OEFycmF5ID0gQnVmZmVyLmZyb20oc2spO1xuICAgIHJldHVybiBhbGdvc2RrLnNlY3JldEtleVRvTW5lbW9uaWMoc2tVbml0OEFycmF5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBzZWVkRnJvbU1uZW1vbmljIGNvbnZlcnRzIGEgbW5lbW9uaWMgZ2VuZXJhdGVkIHVzaW5nIHRoaXMgbGlicmFyeSBpbnRvIHRoZSBzb3VyY2Uga2V5IHVzZWQgdG8gY3JlYXRlIGl0XG4gICAqIEl0IHJldHVybnMgYW4gZXJyb3IgaWYgdGhlIHBhc3NlZCBtbmVtb25pYyBoYXMgYW4gaW5jb3JyZWN0IGNoZWNrc3VtLCBpZiB0aGUgbnVtYmVyIG9mIHdvcmRzIGlzIHVuZXhwZWN0ZWQsIG9yIGlmIG9uZVxuICAgKiBvZiB0aGUgcGFzc2VkIHdvcmRzIGlzIG5vdCBmb3VuZCBpbiB0aGUgd29yZHMgbGlzdFxuICAgKlxuICAgKiBAcGFyYW0gbW5lbW9uaWMgLSAyNSB3b3JkcyBtbmVtb25pY1xuICAgKiBAcmV0dXJucyAzMiBieXRlcyBsb25nIHNlZWRcbiAgICovXG4gIHNlZWRGcm9tTW5lbW9uaWMobW5lbW9uaWM6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAgIHJldHVybiBhbGdvc2RrLm1uZW1vbmljVG9NYXN0ZXJEZXJpdmF0aW9uS2V5KG1uZW1vbmljKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBrZXlQYWlyRnJvbVNlZWQgZ2VuZXJhdGVzIGFuIG9iamVjdCB3aXRoIHNlY3JldEtleSBhbmQgcHVibGljS2V5IHVzaW5nIHRoZSBhbGdvc2RrXG4gICAqIEBwYXJhbSBzZWVkIDMyIGJ5dGVzIGxvbmcgc2VlZFxuICAgKiBAcmV0dXJucyBLZXlQYWlyXG4gICAqL1xuICBrZXlQYWlyRnJvbVNlZWQoc2VlZDogVWludDhBcnJheSk6IEtleVBhaXIge1xuICAgIGNvbnN0IG1uID0gdGhpcy5tbmVtb25pY0Zyb21TZWVkKHNlZWQpO1xuICAgIGNvbnN0IGJhc2U2NFByaXZhdGVLZXkgPSBhbGdvc2RrLm1uZW1vbmljVG9TZWNyZXRLZXkobW4pLnNrO1xuICAgIHJldHVybiB0aGlzLmNyZWF0ZUtleVBhaXIoYmFzZTY0UHJpdmF0ZUtleSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGUgYSBuZXcgYEtleVBhaXJgIG9iamVjdCBmcm9tIHRoZSBnaXZlbiBwcml2YXRlIGtleS5cbiAgICpcbiAgICogQHBhcmFtIGJhc2U2NFByaXZhdGVLZXkgNjQgYnl0ZXMgbG9uZyBwcml2YXRlS2V5XG4gICAqIEByZXR1cm5zIEtleVBhaXJcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVLZXlQYWlyKGJhc2U2NFByaXZhdGVLZXk6IFVpbnQ4QXJyYXkpOiBLZXlQYWlyIHtcbiAgICBjb25zdCBzayA9IGJhc2U2NFByaXZhdGVLZXkuc2xpY2UoMCwgMzIpO1xuICAgIHJldHVybiBuZXcgS2V5UGFpcih7IHBydjogQnVmZmVyLmZyb20oc2spLnRvU3RyaW5nKCdoZXgnKSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBkZWNvZGVQcml2YXRlS2V5IGdlbmVyYXRlcyBhIHNlZWQgd2l0aCBhIG1uZW1vbmljIGFuZCB1c2luZyBhbGdvc2RrLlxuICAgKlxuICAgKiBAcGFyYW0gc2VlZCAzMiBieXRlcyBsb25nIHNlZWRcbiAgICogQHJldHVybnMgbW5lbW9uaWMgLSAyNSB3b3JkcyBtbmVtb25pYyAtIDI1IHdvcmRzIG1uZW1vbmljXG4gICAqL1xuICBwcm90ZWN0ZWQgbW5lbW9uaWNGcm9tU2VlZChzZWVkOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWxnb3Nkay5tYXN0ZXJEZXJpdmF0aW9uS2V5VG9NbmVtb25pYyhzZWVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIGtleSB3aXRoIHRoZSBzdGVsbGFyLXNka1xuICAgKlxuICAgKiBAcGFyYW0gcHVibGljS2V5XG4gICAqIEByZXR1cm5zIGJvb2xlYW5cbiAgICovXG4gIHByb3RlY3RlZCBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleVN0ZWxsYXIocHVibGljS2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RlbGxhci5TdHJLZXkuaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkocHVibGljS2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIHRoZSBrZXkgd2l0aCB0aGUgc3RlbGxhci1zZGtcbiAgICpcbiAgICogQHBhcmFtIHB1YmxpY0tleVxuICAgKiBAcmV0dXJucyBCdWZmZXJcbiAgICovXG4gIHByb3RlY3RlZCBkZWNvZGVFZDI1NTE5UHVibGljS2V5U3RlbGxhcihwdWJsaWNLZXk6IHN0cmluZyk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHN0ZWxsYXIuU3RyS2V5LmRlY29kZUVkMjU1MTlQdWJsaWNLZXkocHVibGljS2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgc3RlbGxhciBzZWVkIHRvIGFsZ29yYW5kIGVuY29kaW5nXG4gICAqXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqIEByZXR1cm5zIHN0cmluZyB0aGUgZW5jb2RlZCBzZWVkXG4gICAqL1xuICBjb252ZXJ0RnJvbVN0ZWxsYXJTZWVkKHNlZWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNlZWRFbmNvZGluZy5lbmNvZGUoc3RlbGxhci5TdHJLZXkuZGVjb2RlRWQyNTUxOVNlY3JldFNlZWQoc2VlZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYWRkcmVzcyBlbmNvZGVkIHdpdGggYWxnb3Nka1xuICAgKlxuICAgKiBAcGFyYW0gYWRkclxuICAgKiBAcmV0dXJucyBzdHJpbmdcbiAgICovXG4gIGVuY29kZUFkZHJlc3MoYWRkcjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFsZ29zZGsuZW5jb2RlQWRkcmVzcyhhZGRyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYW4gYWRkcmVzcyBkZWNvZGVkIHdpdGggYWxnb3Nka1xuICAgKlxuICAgKiBAcGFyYW0gYWRkclxuICAgKiBAcmV0dXJucyBBZGRyZXNzXG4gICAqL1xuICBkZWNvZGVBZGRyZXNzKGFkZHI6IHN0cmluZyk6IEFkZHJlc3Mge1xuICAgIHJldHVybiBhbGdvc2RrLmRlY29kZUFkZHJlc3MoYWRkcik7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYW4gYWRkcmVzcyBpbnRvIGFuIEFMR08gb25lXG4gICAqIElmIHRoZSBnaXZlbiBkYXRhIGlzIGEgU3RlbGxhciBhZGRyZXNzIG9yIHB1YmxpYyBrZXksIGl0IGlzIGNvbnZlcnRlZCB0byBBTEdPIGFkZHJlc3MuXG4gICAqXG4gICAqIEBwYXJhbSBhZGRyZXNzT3JQdWJLZXkgYW4gQUxHTyBhZGRyZXNzLCBvciBhbiBTdGVsbGFyIGFkZHJlc3Mgb3IgcHVibGljIGtleVxuICAgKiBAcmV0dXJucyBhZGRyZXNzIGFsZ28gYWRkcmVzcyBzdHJpbmdcbiAgICovXG4gIHN0ZWxsYXJBZGRyZXNzVG9BbGdvQWRkcmVzcyhhZGRyZXNzT3JQdWJLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgLy8gd2UgaGF2ZSBhbiBBbGdvcmFuZCBhZGRyZXNzXG4gICAgaWYgKHRoaXMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzc09yUHViS2V5KSkge1xuICAgICAgcmV0dXJuIGFkZHJlc3NPclB1YktleTtcbiAgICB9XG4gICAgLy8gd2UgaGF2ZSBhIHN0ZWxsYXIga2V5XG4gICAgaWYgKHRoaXMuaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXlTdGVsbGFyKGFkZHJlc3NPclB1YktleSkpIHtcbiAgICAgIGNvbnN0IHN0ZWxsYXJQdWIgPSB0aGlzLmRlY29kZUVkMjU1MTlQdWJsaWNLZXlTdGVsbGFyKGFkZHJlc3NPclB1YktleSk7XG4gICAgICBjb25zdCBhbGdvQWRkcmVzcyA9IHRoaXMuZW5jb2RlQWRkcmVzcyhzdGVsbGFyUHViKTtcbiAgICAgIGlmICh0aGlzLmlzVmFsaWRBZGRyZXNzKGFsZ29BZGRyZXNzKSkge1xuICAgICAgICByZXR1cm4gYWxnb0FkZHJlc3M7XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb252ZXJ0IFN0ZWxsYXIgYWRkcmVzcyB0byBhbiBBbGdvcmFuZCBhZGRyZXNzIHZpYSBwdWJrZXkuJyk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcignTmVpdGhlciBhbiBBbGdvcmFuZCBhZGRyZXNzIG5vciBhIHN0ZWxsYXIgcHVia2V5LicpO1xuICB9XG5cbiAgLyoqXG4gICAqIG11bHRpc2lnQWRkcmVzcyB0YWtlcyBtdWx0aXNpZyBtZXRhZGF0YSAocHJlaW1hZ2UpIGFuZCByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIGh1bWFuIHJlYWRhYmxlIEFsZ29yYW5kIGFkZHJlc3MuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyfSB2ZXJzaW9uIG11dGxpc2lnIHZlcnNpb25cbiAgICogQHBhcmFtIHtudW1iZXJ9IHRocmVzaG9sZCBtdWx0aXNpZyB0aHJlc2hvbGRcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gYWRkcnMgbGlzdCBvZiBBbGdvcmFuZCBhZGRyZXNzZXNcbiAgICogQHJldHVybnMge3N0cmluZ30gaHVtYW4gcmVhZGFibGUgQWxnb3JhbmQgYWRkcmVzcy5cbiAgICovXG4gIG11bHRpc2lnQWRkcmVzcyh2ZXJzaW9uOiBudW1iZXIsIHRocmVzaG9sZDogbnVtYmVyLCBhZGRyczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHJldHVybiBhbGdvc2RrLm11bHRpc2lnQWRkcmVzcyh7XG4gICAgICB2ZXJzaW9uLFxuICAgICAgdGhyZXNob2xkLFxuICAgICAgYWRkcnMsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogZ2VuZXJhdGVBY2NvdW50IGdlbmVyYXRlcyB1biBhY2NvdW50IHdpdGggYSBzZWNyZXRLZXkgYW5kIGFuIGFkZHJlc3NcbiAgICpcbiAgICogRnVuY3Rpb24gaGFzIG5vdCBwYXJhbXNcbiAgICogQHJldHVybnMgQWNjb3VudFxuICAgKi9cbiAgZ2VuZXJhdGVBY2NvdW50KCk6IGFsZ29zZGsuQWNjb3VudCB7XG4gICAgcmV0dXJuIGFsZ29zZGsuZ2VuZXJhdGVBY2NvdW50KCk7XG4gIH1cblxuICBnZW5lcmF0ZUFjY291bnRGcm9tU2VlZChzZWVkOiBVaW50OEFycmF5KTogYWxnb3Nkay5BY2NvdW50IHtcbiAgICBjb25zdCBrZXlzID0gbmFjbC5zaWduLmtleVBhaXIuZnJvbVNlZWQoc2VlZCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZHI6IGFsZ29zZGsuZW5jb2RlQWRkcmVzcyhrZXlzLnB1YmxpY0tleSksXG4gICAgICBzazoga2V5cy5zZWNyZXRLZXksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgVHggSUQgZnJvbSBhbiBlbmNvZGVkIG11bHRpc2lnIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIFRoaXMgaXMgZG9uZSBiZWNhdXNlIG9mIGEgY2hhbmdlIG1hZGUgb24gdmVyc2lvbiAxLjEwLjEgb24gYWxnb3NkayBzbyBtZXRob2QgdHhJRCgpIG9ubHkgc3VwcG9ydHMgU2lnbmVkVHJhbnNhY3Rpb24gdHlwZS5cbiAgICogKGh0dHBzOi8vZ2l0aHViLmNvbS9hbGdvcmFuZC9qcy1hbGdvcmFuZC1zZGsvYmxvYi9kZXZlbG9wL0NIQU5HRUxPRy5tZCMxMTAxKVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdHhCYXNlNjQgLSBlbmNvZGVkIGJhc2U2NCBtdWx0aXNpZyB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRyYW5zYWN0aW9uIElEXG4gICAqL1xuICBnZXRNdWx0aXNpZ1R4SUQodHhCYXNlNjQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdHhCeXRlcyA9IEJ1ZmZlci5mcm9tKHR4QmFzZTY0LCAnYmFzZTY0Jyk7XG4gICAgY29uc3QgZGVjb2RlU2lnblR4ID0gYWxnb3Nkay5kZWNvZGVTaWduZWRUcmFuc2FjdGlvbih0eEJ5dGVzKTtcbiAgICBjb25zdCB3ZWxsRm9ybWVkRGVjb2RlZFNpZ25UeCA9IGRlY29kZVNpZ25UeC50eG4uZ2V0X29ial9mb3JfZW5jb2RpbmcoKTtcbiAgICBjb25zdCB0eEZvckVuY29kaW5nID0geyBtc2lnOiBkZWNvZGVTaWduVHgubXNpZywgdHhuOiB3ZWxsRm9ybWVkRGVjb2RlZFNpZ25UeCB9O1xuICAgIGNvbnN0IGVuX21zZyA9IGVuY29kaW5nLmVuY29kZSh0eEZvckVuY29kaW5nKTtcbiAgICBjb25zdCB0YWcgPSBCdWZmZXIuZnJvbShbODQsIDg4XSk7XG4gICAgY29uc3QgZ2ggPSBCdWZmZXIuZnJvbShjb25jYXRBcnJheXModGFnLCBlbl9tc2cpKTtcbiAgICBjb25zdCBoYXNoID0gQnVmZmVyLmZyb20oYWxnb05hY2wuZ2VuZXJpY0hhc2goZ2gpKTtcbiAgICByZXR1cm4gYmFzZTMyLmVuY29kZShoYXNoKS5zbGljZSgwLCBBTEdPUkFORF9UUkFOU0FDVElPTl9MRU5HVEgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiB0cmFuc2FjdGlvbiBkYXRhIGlzIHRvIGVuYWJsZSBvciBkaXNhYmxlIGEgdG9rZW5cbiAgICogQHBhcmFtIGFtb3VudCB0aGUgYW1vdW50IGluIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSBmcm9tIHRoZSBvcmlnaW5hdGVkIGFkZHJlc3NcbiAgICogQHBhcmFtIHRvIHRoZSB0YXJnZXQgYWRkcmVzc1xuICAgKiBAcGFyYW0gY2xvc2VSZW1haW5kZXJUbyAob3B0aW9uYWwpIGFkZHJlc3MgdG8gc2VuZCByZW1haW5pbmcgdW5pdHMgaW4gb3JpZ2luYXRlZCBhZGRyZXNzXG4gICAqIEByZXR1cm5zICdlbmFibGVUb2tlbicgb3IgJ2Rpc2FibGVUb2tlbidcbiAgICovXG4gIGdldFRva2VuVHhUeXBlKGFtb3VudDogc3RyaW5nLCBmcm9tOiBzdHJpbmcsIHRvOiBzdHJpbmcsIGNsb3NlUmVtYWluZGVyVG8/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCB0eXBlID0gJ3RyYW5zZmVyVG9rZW4nO1xuICAgIGlmIChhbW91bnQgPT09ICcwJyAmJiBmcm9tID09PSB0bykge1xuICAgICAgdHlwZSA9ICFjbG9zZVJlbWFpbmRlclRvID8gJ2VuYWJsZVRva2VuJyA6ICdkaXNhYmxlVG9rZW4nO1xuICAgIH1cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
|
|
@@ -106,8 +106,8 @@ var BlsKeyPair = /** @class */ (function () {
|
|
|
106
106
|
var keySecretShares = BLS.secretShares(polynomial, participants);
|
|
107
107
|
var keyPublicShare = BLS.publicShare(polynomial);
|
|
108
108
|
this.keyPair = {
|
|
109
|
-
secretShares: keySecretShares.map(function (secretShare) { return
|
|
110
|
-
publicShare:
|
|
109
|
+
secretShares: keySecretShares.map(function (secretShare) { return crypto_1.bigIntToHex(secretShare); }),
|
|
110
|
+
publicShare: crypto_1.bigIntToHex(keyPublicShare),
|
|
111
111
|
};
|
|
112
112
|
};
|
|
113
113
|
/**
|
|
@@ -148,7 +148,7 @@ var BlsKeyPair = /** @class */ (function () {
|
|
|
148
148
|
return [4 /*yield*/, BLS.sign(msg, BigInt(this.keyPair.prv))];
|
|
149
149
|
case 1:
|
|
150
150
|
signedMessage = _a.sent();
|
|
151
|
-
return [2 /*return*/,
|
|
151
|
+
return [2 /*return*/, crypto_1.bigIntToHex(signedMessage)];
|
|
152
152
|
case 2: throw new Error('Missing private key');
|
|
153
153
|
}
|
|
154
154
|
});
|
|
@@ -165,7 +165,7 @@ var BlsKeyPair = /** @class */ (function () {
|
|
|
165
165
|
try {
|
|
166
166
|
var secretShares = prvKeys.map(function (secretShare) { return BigInt(secretShare); });
|
|
167
167
|
var prv = BLS.mergeSecretShares(secretShares);
|
|
168
|
-
return
|
|
168
|
+
return crypto_1.bigIntToHex(prv);
|
|
169
169
|
}
|
|
170
170
|
catch (e) {
|
|
171
171
|
throw new Error('Error aggregating prvkeys: ' + e);
|
|
@@ -181,7 +181,7 @@ var BlsKeyPair = /** @class */ (function () {
|
|
|
181
181
|
try {
|
|
182
182
|
var secretShares = pubKeys.map(function (secretShare) { return BigInt(secretShare); });
|
|
183
183
|
var commonPubKey = BLS.mergePublicShares(secretShares);
|
|
184
|
-
return
|
|
184
|
+
return crypto_1.bigIntToHex(commonPubKey);
|
|
185
185
|
}
|
|
186
186
|
catch (e) {
|
|
187
187
|
throw new Error('Error aggregating pubkeys: ' + e);
|
|
@@ -201,7 +201,7 @@ var BlsKeyPair = /** @class */ (function () {
|
|
|
201
201
|
BlsKeyPair.aggregateSignatures = function (signatures) {
|
|
202
202
|
try {
|
|
203
203
|
var signature = BLS.mergeSignatures(signatures);
|
|
204
|
-
return
|
|
204
|
+
return crypto_1.bigIntToHex(signature);
|
|
205
205
|
}
|
|
206
206
|
catch (e) {
|
|
207
207
|
throw new Error('Error aggregating signatures: ' + e);
|
|
@@ -229,4 +229,4 @@ var BlsKeyPair = /** @class */ (function () {
|
|
|
229
229
|
return BlsKeyPair;
|
|
230
230
|
}());
|
|
231
231
|
exports.BlsKeyPair = BlsKeyPair;
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxzS2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL2Jhc2VDb2luL2Jsc0tleVBhaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUE0QjtBQUM1QixrREFBc0M7QUFHdEMsbUNBQStDO0FBQy9DLGlDQUFpRjtBQUNqRiw2Q0FBK0U7QUFFL0UsSUFBTSwyQkFBMkIsR0FBRyxDQUFDLENBQUM7QUFDdEMsSUFBTSw4QkFBOEIsR0FBRyxDQUFDLENBQUM7QUFFekM7O0dBRUc7QUFDSDtJQUdFOzs7O09BSUc7SUFDSCxvQkFBc0IsTUFBdUI7UUFDM0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsMkJBQTJCLEVBQUUsOEJBQThCLENBQUMsQ0FBQztTQUNoRjthQUFNLElBQUksYUFBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDMUQ7YUFBTSxJQUFJLGdCQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDM0IsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyw2QkFBb0IsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLENBQUM7WUFDaEYsZ0JBQU0sQ0FBQyw0QkFBbUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztTQUN2QjthQUFNLElBQUksb0JBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHO2dCQUNiLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDZixX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c3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIEJMUyBmcm9tICdAYml0Z28vYmxzLWRrZyc7XG5pbXBvcnQgeyBCYXNlS2V5UGFpciB9IGZyb20gJy4vYmFzZUtleVBhaXInO1xuaW1wb3J0IHsgQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4vZW51bSc7XG5pbXBvcnQgeyBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgQmxzS2V5cywgS2V5UGFpck9wdGlvbnMsIGlzRGtnLCBpc0Jsc0tleSwgaXNQcml2YXRlS2V5IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBpc1ZhbGlkQkxTUHVibGljS2V5LCBpc1ZhbGlkQkxTUHJpdmF0ZUtleSB9IGZyb20gJy4uLy4uL3V0aWxzL2NyeXB0byc7XG5cbmNvbnN0IERFRkFVTFRfU0lHTkFUVVJFX1RIUkVTSE9MRCA9IDI7XG5jb25zdCBERUZBVUxUX1NJR05BVFVSRV9QQVJUSUNJUEFOVFMgPSAzO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIEJMUyBrZXlwYWlycy5cbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJsc0tleVBhaXIgaW1wbGVtZW50cyBCYXNlS2V5UGFpciB7XG4gIHByb3RlY3RlZCBrZXlQYWlyOiBCbHNLZXlzO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgY29uc3RydWN0b3IuIEJ5IGRlZmF1bHQsIGNyZWF0ZXMgYSBrZXkgcGFpciB3aXRoIGEgcmFuZG9tIHBvbHlub21pYWwuXG4gICAqXG4gICAqIEBwYXJhbSB7S2V5UGFpck9wdGlvbnN9IHNvdXJjZSBFaXRoZXIgYSBka2cgb3B0aW9ucywgYSBwdWJsaWMgYW5kIHNlY3JldCBzaGFyZXMsIG9yIGEgcHJpdmF0ZSBrZXlcbiAgICovXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihzb3VyY2U/OiBLZXlQYWlyT3B0aW9ucykge1xuICAgIGlmICghc291cmNlKSB7XG4gICAgICB0aGlzLmNyZWF0ZVNoYXJlcyhERUZBVUxUX1NJR05BVFVSRV9USFJFU0hPTEQsIERFRkFVTFRfU0lHTkFUVVJFX1BBUlRJQ0lQQU5UUyk7XG4gICAgfSBlbHNlIGlmIChpc0RrZyhzb3VyY2UpKSB7XG4gICAgICB0aGlzLmNyZWF0ZVNoYXJlcyhzb3VyY2UudGhyZXNob2xkLCBzb3VyY2UucGFydGljaXBhbnRzKTtcbiAgICB9IGVsc2UgaWYgKGlzQmxzS2V5KHNvdXJjZSkpIHtcbiAgICAgIGFzc2VydChzb3VyY2Uuc2VjcmV0U2hhcmVzLmV2ZXJ5KGlzVmFsaWRCTFNQcml2YXRlS2V5KSwgJ0ludmFsaWQgcHJpdmF0ZSBrZXlzJyk7XG4gICAgICBhc3NlcnQoaXNWYWxpZEJMU1B1YmxpY0tleShzb3VyY2UucHVibGljU2hhcmUpLCAnSW52YWxpZCBwdWJsaWMga2V5Jyk7XG4gICAgICB0aGlzLmtleVBhaXIgPSBzb3VyY2U7XG4gICAgfSBlbHNlIGlmIChpc1ByaXZhdGVLZXkoc291cmNlKSkge1xuICAgICAgdGhpcy5rZXlQYWlyID0ge1xuICAgICAgICBwcnY6IHNvdXJjZS5wcnYsXG4gICAgICAgIHB1YmxpY1NoYXJlOiAnJyxcbiAgICAgICAgc2VjcmV0U2hhcmVzOiBbXSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBrZXkgcGFpciBvcHRpb25zJyk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlU2hhcmVzKHRocmVzaG9sZDogbnVtYmVyLCBwYXJ0aWNpcGFudHM6IG51bWJlcik6IHZvaWQge1xuICAgIGlmIChwYXJ0aWNpcGFudHMgPCB0aHJlc2hvbGQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUGFydGljaXBhbnRzIHNob3VsZCBiZSBncmVhdGVyIHRoYW4gdGhyZXNob2xkJyk7XG4gICAgfVxuICAgIGNvbnN0IHBvbHlub21pYWwgPSBCTFMuZ2VuZXJhdGVQb2x5bm9taWFsKHRocmVzaG9sZCk7XG4gICAgY29uc3Qga2V5U2VjcmV0U2hhcmVzID0gQkxTLnNlY3JldFNoYXJlcyhwb2x5bm9taWFsLCBwYXJ0aWNpcGFudHMpO1xuICAgIGNvbnN0IGtleVB1YmxpY1NoYXJlID0gQkxTLnB1YmxpY1NoYXJlKHBvbHlub21pYWwpO1xuICAgIHRoaXMua2V5UGFpciA9IHtcbiAgICAgIHNlY3JldFNoYXJlczoga2V5U2VjcmV0U2hhcmVzLm1hcCgoc2VjcmV0U2hhcmUpID0+ICcweCcgKyBzZWNyZXRTaGFyZS50b1N0cmluZygxNikpLFxuICAgICAgcHVibGljU2hhcmU6ICcweCcgKyBrZXlQdWJsaWNTaGFyZS50b1N0cmluZygxNiksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3RlIC0gdGhpcyBpcyBub3QgcG9zc2libGUgdXNpbmcgQkxTLiBCTFMgZG9lcyBub3Qgc3VwcG9ydCBwcnZrZXkgZGVyaXZlZCBrZXkgZ2VuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IHBydiBhIGhleGFkZWNpbWFsIHByaXZhdGUga2V5XG4gICAqL1xuICByZWNvcmRLZXlzRnJvbVByaXZhdGVLZXkocHJ2OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignUHJpdmF0ZSBrZXkgZGVyaXZhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGluIGJscycpO1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdGUgLSB0aGlzIGlzIG5vdCBwb3NzaWJsZSB1c2luZyBCTFMuIEJMUyBkb2VzIG5vdCBzdXBwb3J0IHB1YmtleSBkZXJpdmVkIGtleSBnZW5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHB1YiAtIEFuIGV4dGVuZGVkLCBjb21wcmVzc2VkLCBvciB1bmNvbXByZXNzZWQgcHVibGljIGtleVxuICAgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXkocHViOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcignUHVibGljIGtleSBkZXJpdmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYmxzJyk7XG4gIH1cblxuICBnZXRBZGRyZXNzKGZvcm1hdD86IEFkZHJlc3NGb3JtYXQpOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdnZXRBZGRyZXNzIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgZ2V0S2V5cygpOiBhbnkge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdnZXRLZXlzIG5vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIGJ5dGVzIHVzaW5nIHRoZSBrZXkgcGFpclxuICAgKlxuICAgKiBAcGFyYW0gbXNnIFRoZSBtZXNzYWdlIGJ5dGVzIHRvIHNpZ25cbiAgICogQHJldHVybiBzaWduYXR1cmUgb2YgdGhlIGJ5dGVzIHVzaW5nIHRoaXMga2V5cGFpclxuICAgKi9cbiAgYXN5bmMgc2lnbihtc2c6IEJ1ZmZlcik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKHRoaXMua2V5UGFpci5wcnYpIHtcbiAgICAgIGNvbnN0IHNpZ25lZE1lc3NhZ2UgPSBhd2FpdCBCTFMuc2lnbihtc2csIEJpZ0ludCh0aGlzLmtleVBhaXIucHJ2KSk7XG4gICAgICByZXR1cm4gJzB4JyArIHNpZ25lZE1lc3NhZ2UudG9TdHJpbmcoMTYpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZ2dyZWdhdGVzIHRoZSBzZWNyZXQgc2hhcmVzIG9mIGRpZmZlcmVudCBrZXkgcGFpcnMgaW50byBvbmUgcHJpdmF0ZSBrZXlcbiAgICpcbiAgICogQHBhcmFtIHBydktleXMgYW4gYXJyYXkgb2Ygc2VjcmV0IHNoYXJlc1xuICAgKiBAcmV0dXJucyBhIHByaXZhdGUga2V5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFnZ3JlZ2F0ZVBydmtleXMocHJ2S2V5czogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIGFzc2VydChwcnZLZXlzLmV2ZXJ5KGlzVmFsaWRCTFNQcml2YXRlS2V5KSwgJ0ludmFsaWQgcHJpdmF0ZSBrZXlzJyk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlY3JldFNoYXJlcyA9IHBydktleXMubWFwKChzZWNyZXRTaGFyZSkgPT4gQmlnSW50KHNlY3JldFNoYXJlKSk7XG4gICAgICBjb25zdCBwcnYgPSBCTFMubWVyZ2VTZWNyZXRTaGFyZXMoc2VjcmV0U2hhcmVzKTtcbiAgICAgIHJldHVybiAnMHgnICsgcHJ2LnRvU3RyaW5nKDE2KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGFnZ3JlZ2F0aW5nIHBydmtleXM6ICcgKyBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWdncmVnYXRlcyB0aGUgcHVibGljIHNoYXJlcyBvZiBkaWZmZXJlbnQga2V5IHBhaXJzIGludG8gYSBjb21tb24gcHVibGljIGtleVxuICAgKlxuICAgKiBAcGFyYW0gcHViS2V5cyBhbiBhcnJheSBvZiBwdWJsaWMgc2hhcmVzXG4gICAqIEByZXR1cm5zIGEgY29tbW9uIHB1YmxpYyBrZXlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYWdncmVnYXRlUHVia2V5cyhwdWJLZXlzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlY3JldFNoYXJlcyA9IHB1YktleXMubWFwKChzZWNyZXRTaGFyZSkgPT4gQmlnSW50KHNlY3JldFNoYXJlKSk7XG4gICAgICBjb25zdCBjb21tb25QdWJLZXkgPSBCTFMubWVyZ2VQdWJsaWNTaGFyZXMoc2VjcmV0U2hhcmVzKTtcbiAgICAgIHJldHVybiAnMHgnICsgY29tbW9uUHViS2V5LnRvU3RyaW5nKDE2KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGFnZ3JlZ2F0aW5nIHB1YmtleXM6ICcgKyBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWdncmVnYXRlcyB0aGUgbWVzc2FnZSBzaWduZWQgYnkgZGlmZmVyZW50IGtleSBwYWlycyBpbnRvIG9uZSBzaWduXG4gICAqXG4gICAqIEBwYXJhbSBzaWduYXR1cmVzIHRoZSBtZXNzYWdlIHNpZ25lZCBieSBkaWZmZXJlbnQga2V5IHBhaXJzLiBUaGUgc2lnbmVyIGlkIGlzIHJlbGV2YW50IHRvIGVuc3VyZSBhIHZhbGlkIHNpZ25hdHVyZS5cbiAgICogQGV4YW1wbGUgPGNhcHRpb24+IEUuZy4sIHRoZSBtZXNzYWdlIGlzIHNpZ25lZCBieSB1c2VyIGFuZCB3YWxsZXQsIHRoZW4gc2lnbmF0dXJlcyB3b3VsZCBiZTo8L2NhcHRpb24+XG4gICAqIHtcbiAgICogICAxOiBCaWdJbnQobWVzc2FnZVNpZ25lZFdpdGhVc2VyUHJ2KSxcbiAgICogICAzOiBCaWdJbnQobWVzc2FnZVNpZ25lZFdpdGhXYWxsZXRQcnYpLFxuICAgKiB9XG4gICAqIEByZXR1cm5zIGEgc2lnbmF0dXJlIGNvbWJpbmluZyBhbGwgdGhlIHByb3ZpZGVkIHNpZ25lZCBtZXNzYWdlc1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhZ2dyZWdhdGVTaWduYXR1cmVzKHNpZ25hdHVyZXM6IHsgW246IG51bWJlcl06IGJpZ2ludCB9KTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2lnbmF0dXJlID0gQkxTLm1lcmdlU2lnbmF0dXJlcyhzaWduYXR1cmVzKTtcbiAgICAgIHJldHVybiAnMHgnICsgc2lnbmF0dXJlLnRvU3RyaW5nKDE2KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGFnZ3JlZ2F0aW5nIHNpZ25hdHVyZXM6ICcgKyBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpZXMgdGhlIHNpZ25hdHVyZSBmb3IgdGhpcyBrZXkgcGFpclxuICAgKiBAcGFyYW0gcHViIFRoZSBwdWJsaWMga2V5IHdpdGggd2hpY2ggdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmVcbiAgICogQHBhcmFtIG1zZyBUaGUgbWVzc2FnZSB0byB2ZXJpZnkgdGhlIHNpZ25hdHVyZSB3aXRoXG4gICAqIEBwYXJhbSBzaWduYXR1cmUgdGhlIHNpZ25hdHVyZSB0byB2ZXJpZnlcbiAgICogQHJldHVybiB0cnVlIGlmIHRoZSBzaWduYXR1cmUgaXMgdmFsaWQsIGVsc2UgZmFsc2VcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYXN5bmMgdmVyaWZ5U2lnbmF0dXJlKHB1Yjogc3RyaW5nLCBtc2c6IEJ1ZmZlciwgc2lnbmF0dXJlOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBhc3NlcnQoaXNWYWxpZEJMU1B1YmxpY0tleShwdWIpLCBgSW52YWxpZCBwdWJsaWMga2V5OiAke3B1Yn1gKTtcbiAgICByZXR1cm4gYXdhaXQgQkxTLnZlcmlmeShCaWdJbnQoc2lnbmF0dXJlKSwgbXNnLCBCaWdJbnQocHViKSk7XG4gIH1cbn1cbiJdfQ==
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxzS2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb2luL2Jhc2VDb2luL2Jsc0tleVBhaXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtEQUE0QjtBQUM1QixrREFBc0M7QUFHdEMsbUNBQStDO0FBQy9DLGlDQUFpRjtBQUNqRiw2Q0FBNEY7QUFFNUYsSUFBTSwyQkFBMkIsR0FBRyxDQUFDLENBQUM7QUFDdEMsSUFBTSw4QkFBOEIsR0FBRyxDQUFDLENBQUM7QUFFekM7O0dBRUc7QUFDSDtJQUdFOzs7O09BSUc7SUFDSCxvQkFBc0IsTUFBdUI7UUFDM0MsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLElBQUksQ0FBQyxZQUFZLENBQUMsMkJBQTJCLEVBQUUsOEJBQThCLENBQUMsQ0FBQztTQUNoRjthQUFNLElBQUksYUFBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDMUQ7YUFBTSxJQUFJLGdCQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDM0IsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyw2QkFBb0IsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLENBQUM7WUFDaEYsZ0JBQU0sQ0FBQyw0QkFBbUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUN0RSxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztTQUN2QjthQUFNLElBQUksb0JBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHO2dCQUNiLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRztnQkFDZixX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Q0FBQyxDQUFDO1lBQ3ZFLElBQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN6RCxPQUFPLG9CQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDbEM7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNXLDhCQUFtQixHQUFqQyxVQUFrQyxVQUFtQztRQUNuRSxJQUFJO1lBQ0YsSUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNsRCxPQUFPLG9CQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0I7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ2lCLDBCQUFlLEdBQW5DLFVBQW9DLEdBQVcsRUFBRSxHQUFXLEVBQUUsU0FBaUI7Ozs7O3dCQUM3RSxnQkFBTSxDQUFDLDRCQUFtQixDQUFDLEdBQUcsQ0FBQyxFQUFFLHlCQUF1QixHQUFLLENBQUMsQ0FBQzt3QkFDeEQscUJBQU0sR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFBOzRCQUE1RCxzQkFBTyxTQUFxRCxFQUFDOzs7O0tBQzlEO0lBQ0gsaUJBQUM7QUFBRCxDQUFDLEFBakpELElBaUpDO0FBakpxQixnQ0FBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIEJMUyBmcm9tICdAYml0Z28vYmxzLWRrZyc7XG5pbXBvcnQgeyBCYXNlS2V5UGFpciB9IGZyb20gJy4vYmFzZUtleVBhaXInO1xuaW1wb3J0IHsgQWRkcmVzc0Zvcm1hdCB9IGZyb20gJy4vZW51bSc7XG5pbXBvcnQgeyBOb3RJbXBsZW1lbnRlZEVycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHsgQmxzS2V5cywgS2V5UGFpck9wdGlvbnMsIGlzRGtnLCBpc0Jsc0tleSwgaXNQcml2YXRlS2V5IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBpc1ZhbGlkQkxTUHVibGljS2V5LCBpc1ZhbGlkQkxTUHJpdmF0ZUtleSwgYmlnSW50VG9IZXggfSBmcm9tICcuLi8uLi91dGlscy9jcnlwdG8nO1xuXG5jb25zdCBERUZBVUxUX1NJR05BVFVSRV9USFJFU0hPTEQgPSAyO1xuY29uc3QgREVGQVVMVF9TSUdOQVRVUkVfUEFSVElDSVBBTlRTID0gMztcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBCTFMga2V5cGFpcnMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCbHNLZXlQYWlyIGltcGxlbWVudHMgQmFzZUtleVBhaXIge1xuICBwcm90ZWN0ZWQga2V5UGFpcjogQmxzS2V5cztcblxuICAvKipcbiAgICogUHVibGljIGNvbnN0cnVjdG9yLiBCeSBkZWZhdWx0LCBjcmVhdGVzIGEga2V5IHBhaXIgd2l0aCBhIHJhbmRvbSBwb2x5bm9taWFsLlxuICAgKlxuICAgKiBAcGFyYW0ge0tleVBhaXJPcHRpb25zfSBzb3VyY2UgRWl0aGVyIGEgZGtnIG9wdGlvbnMsIGEgcHVibGljIGFuZCBzZWNyZXQgc2hhcmVzLCBvciBhIHByaXZhdGUga2V5XG4gICAqL1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3Ioc291cmNlPzogS2V5UGFpck9wdGlvbnMpIHtcbiAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgdGhpcy5jcmVhdGVTaGFyZXMoREVGQVVMVF9TSUdOQVRVUkVfVEhSRVNIT0xELCBERUZBVUxUX1NJR05BVFVSRV9QQVJUSUNJUEFOVFMpO1xuICAgIH0gZWxzZSBpZiAoaXNEa2coc291cmNlKSkge1xuICAgICAgdGhpcy5jcmVhdGVTaGFyZXMoc291cmNlLnRocmVzaG9sZCwgc291cmNlLnBhcnRpY2lwYW50cyk7XG4gICAgfSBlbHNlIGlmIChpc0Jsc0tleShzb3VyY2UpKSB7XG4gICAgICBhc3NlcnQoc291cmNlLnNlY3JldFNoYXJlcy5ldmVyeShpc1ZhbGlkQkxTUHJpdmF0ZUtleSksICdJbnZhbGlkIHByaXZhdGUga2V5cycpO1xuICAgICAgYXNzZXJ0KGlzVmFsaWRCTFNQdWJsaWNLZXkoc291cmNlLnB1YmxpY1NoYXJlKSwgJ0ludmFsaWQgcHVibGljIGtleScpO1xuICAgICAgdGhpcy5rZXlQYWlyID0gc291cmNlO1xuICAgIH0gZWxzZSBpZiAoaXNQcml2YXRlS2V5KHNvdXJjZSkpIHtcbiAgICAgIHRoaXMua2V5UGFpciA9IHtcbiAgICAgICAgcHJ2OiBzb3VyY2UucHJ2LFxuICAgICAgICBwdWJsaWNTaGFyZTogJycsXG4gICAgICAgIHNlY3JldFNoYXJlczogW10sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQga2V5IHBhaXIgb3B0aW9ucycpO1xuICAgIH1cbiAgfVxuXG4gIGNyZWF0ZVNoYXJlcyh0aHJlc2hvbGQ6IG51bWJlciwgcGFydGljaXBhbnRzOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAocGFydGljaXBhbnRzIDwgdGhyZXNob2xkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcnRpY2lwYW50cyBzaG91bGQgYmUgZ3JlYXRlciB0aGFuIHRocmVzaG9sZCcpO1xuICAgIH1cbiAgICBjb25zdCBwb2x5bm9taWFsID0gQkxTLmdlbmVyYXRlUG9seW5vbWlhbCh0aHJlc2hvbGQpO1xuICAgIGNvbnN0IGtleVNlY3JldFNoYXJlcyA9IEJMUy5zZWNyZXRTaGFyZXMocG9seW5vbWlhbCwgcGFydGljaXBhbnRzKTtcbiAgICBjb25zdCBrZXlQdWJsaWNTaGFyZSA9IEJMUy5wdWJsaWNTaGFyZShwb2x5bm9taWFsKTtcbiAgICB0aGlzLmtleVBhaXIgPSB7XG4gICAgICBzZWNyZXRTaGFyZXM6IGtleVNlY3JldFNoYXJlcy5tYXAoKHNlY3JldFNoYXJlKSA9PiBiaWdJbnRUb0hleChzZWNyZXRTaGFyZSkpLFxuICAgICAgcHVibGljU2hhcmU6IGJpZ0ludFRvSGV4KGtleVB1YmxpY1NoYXJlKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE5vdGUgLSB0aGlzIGlzIG5vdCBwb3NzaWJsZSB1c2luZyBCTFMuIEJMUyBkb2VzIG5vdCBzdXBwb3J0IHBydmtleSBkZXJpdmVkIGtleSBnZW5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gcHJ2IGEgaGV4YWRlY2ltYWwgcHJpdmF0ZSBrZXlcbiAgICovXG4gIHJlY29yZEtleXNGcm9tUHJpdmF0ZUtleShwcnY6IHN0cmluZyk6IHZvaWQge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdQcml2YXRlIGtleSBkZXJpdmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4gYmxzJyk7XG4gIH1cblxuICAvKipcbiAgICogTm90ZSAtIHRoaXMgaXMgbm90IHBvc3NpYmxlIHVzaW5nIEJMUy4gQkxTIGRvZXMgbm90IHN1cHBvcnQgcHVia2V5IGRlcml2ZWQga2V5IGdlblxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHViIC0gQW4gZXh0ZW5kZWQsIGNvbXByZXNzZWQsIG9yIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5XG4gICAqL1xuICByZWNvcmRLZXlzRnJvbVB1YmxpY0tleShwdWI6IHN0cmluZyk6IHZvaWQge1xuICAgIHRocm93IG5ldyBOb3RJbXBsZW1lbnRlZEVycm9yKCdQdWJsaWMga2V5IGRlcml2YXRpb24gaXMgbm90IHN1cHBvcnRlZCBpbiBibHMnKTtcbiAgfVxuXG4gIGdldEFkZHJlc3MoZm9ybWF0PzogQWRkcmVzc0Zvcm1hdCk6IHN0cmluZyB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ2dldEFkZHJlc3Mgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBnZXRLZXlzKCk6IGFueSB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ2dldEtleXMgbm90IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgYnl0ZXMgdXNpbmcgdGhlIGtleSBwYWlyXG4gICAqXG4gICAqIEBwYXJhbSBtc2cgVGhlIG1lc3NhZ2UgYnl0ZXMgdG8gc2lnblxuICAgKiBAcmV0dXJuIHNpZ25hdHVyZSBvZiB0aGUgYnl0ZXMgdXNpbmcgdGhpcyBrZXlwYWlyXG4gICAqL1xuICBhc3luYyBzaWduKG1zZzogQnVmZmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBpZiAodGhpcy5rZXlQYWlyLnBydikge1xuICAgICAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IGF3YWl0IEJMUy5zaWduKG1zZywgQmlnSW50KHRoaXMua2V5UGFpci5wcnYpKTtcbiAgICAgIHJldHVybiBiaWdJbnRUb0hleChzaWduZWRNZXNzYWdlKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gIH1cblxuICAvKipcbiAgICogQWdncmVnYXRlcyB0aGUgc2VjcmV0IHNoYXJlcyBvZiBkaWZmZXJlbnQga2V5IHBhaXJzIGludG8gb25lIHByaXZhdGUga2V5XG4gICAqXG4gICAqIEBwYXJhbSBwcnZLZXlzIGFuIGFycmF5IG9mIHNlY3JldCBzaGFyZXNcbiAgICogQHJldHVybnMgYSBwcml2YXRlIGtleVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhZ2dyZWdhdGVQcnZrZXlzKHBydktleXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICBhc3NlcnQocHJ2S2V5cy5ldmVyeShpc1ZhbGlkQkxTUHJpdmF0ZUtleSksICdJbnZhbGlkIHByaXZhdGUga2V5cycpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzZWNyZXRTaGFyZXMgPSBwcnZLZXlzLm1hcCgoc2VjcmV0U2hhcmUpID0+IEJpZ0ludChzZWNyZXRTaGFyZSkpO1xuICAgICAgY29uc3QgcHJ2ID0gQkxTLm1lcmdlU2VjcmV0U2hhcmVzKHNlY3JldFNoYXJlcyk7XG4gICAgICByZXR1cm4gYmlnSW50VG9IZXgocHJ2KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Vycm9yIGFnZ3JlZ2F0aW5nIHBydmtleXM6ICcgKyBlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWdncmVnYXRlcyB0aGUgcHVibGljIHNoYXJlcyBvZiBkaWZmZXJlbnQga2V5IHBhaXJzIGludG8gYSBjb21tb24gcHVibGljIGtleVxuICAgKlxuICAgKiBAcGFyYW0gcHViS2V5cyBhbiBhcnJheSBvZiBwdWJsaWMgc2hhcmVzXG4gICAqIEByZXR1cm5zIGEgY29tbW9uIHB1YmxpYyBrZXlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYWdncmVnYXRlUHVia2V5cyhwdWJLZXlzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHNlY3JldFNoYXJlcyA9IHB1YktleXMubWFwKChzZWNyZXRTaGFyZSkgPT4gQmlnSW50KHNlY3JldFNoYXJlKSk7XG4gICAgICBjb25zdCBjb21tb25QdWJLZXkgPSBCTFMubWVyZ2VQdWJsaWNTaGFyZXMoc2VjcmV0U2hhcmVzKTtcbiAgICAgIHJldHVybiBiaWdJbnRUb0hleChjb21tb25QdWJLZXkpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXJyb3IgYWdncmVnYXRpbmcgcHVia2V5czogJyArIGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBZ2dyZWdhdGVzIHRoZSBtZXNzYWdlIHNpZ25lZCBieSBkaWZmZXJlbnQga2V5IHBhaXJzIGludG8gb25lIHNpZ25cbiAgICpcbiAgICogQHBhcmFtIHNpZ25hdHVyZXMgdGhlIG1lc3NhZ2Ugc2lnbmVkIGJ5IGRpZmZlcmVudCBrZXkgcGFpcnMuIFRoZSBzaWduZXIgaWQgaXMgcmVsZXZhbnQgdG8gZW5zdXJlIGEgdmFsaWQgc2lnbmF0dXJlLlxuICAgKiBAZXhhbXBsZSA8Y2FwdGlvbj4gRS5nLiwgdGhlIG1lc3NhZ2UgaXMgc2lnbmVkIGJ5IHVzZXIgYW5kIHdhbGxldCwgdGhlbiBzaWduYXR1cmVzIHdvdWxkIGJlOjwvY2FwdGlvbj5cbiAgICoge1xuICAgKiAgIDE6IEJpZ0ludChtZXNzYWdlU2lnbmVkV2l0aFVzZXJQcnYpLFxuICAgKiAgIDM6IEJpZ0ludChtZXNzYWdlU2lnbmVkV2l0aFdhbGxldFBydiksXG4gICAqIH1cbiAgICogQHJldHVybnMgYSBzaWduYXR1cmUgY29tYmluaW5nIGFsbCB0aGUgcHJvdmlkZWQgc2lnbmVkIG1lc3NhZ2VzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFnZ3JlZ2F0ZVNpZ25hdHVyZXMoc2lnbmF0dXJlczogeyBbbjogbnVtYmVyXTogYmlnaW50IH0pOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaWduYXR1cmUgPSBCTFMubWVyZ2VTaWduYXR1cmVzKHNpZ25hdHVyZXMpO1xuICAgICAgcmV0dXJuIGJpZ0ludFRvSGV4KHNpZ25hdHVyZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcnJvciBhZ2dyZWdhdGluZyBzaWduYXR1cmVzOiAnICsgZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIHRoZSBzaWduYXR1cmUgZm9yIHRoaXMga2V5IHBhaXJcbiAgICogQHBhcmFtIHB1YiBUaGUgcHVibGljIGtleSB3aXRoIHdoaWNoIHRvIHZlcmlmeSB0aGUgc2lnbmF0dXJlXG4gICAqIEBwYXJhbSBtc2cgVGhlIG1lc3NhZ2UgdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmUgd2l0aFxuICAgKiBAcGFyYW0gc2lnbmF0dXJlIHRoZSBzaWduYXR1cmUgdG8gdmVyaWZ5XG4gICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgc2lnbmF0dXJlIGlzIHZhbGlkLCBlbHNlIGZhbHNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFzeW5jIHZlcmlmeVNpZ25hdHVyZShwdWI6IHN0cmluZywgbXNnOiBCdWZmZXIsIHNpZ25hdHVyZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgYXNzZXJ0KGlzVmFsaWRCTFNQdWJsaWNLZXkocHViKSwgYEludmFsaWQgcHVibGljIGtleTogJHtwdWJ9YCk7XG4gICAgcmV0dXJuIGF3YWl0IEJMUy52ZXJpZnkoQmlnSW50KHNpZ25hdHVyZSksIG1zZywgQmlnSW50KHB1YikpO1xuICB9XG59XG4iXX0=
|
|
@@ -5,6 +5,7 @@ export { BaseUtils } from './baseUtils';
|
|
|
5
5
|
export { BaseKeyPair } from './baseKeyPair';
|
|
6
6
|
export { Ed25519KeyPair } from './ed25519KeyPair';
|
|
7
7
|
export { TransactionType, StakingOperationTypes } from './enum';
|
|
8
|
+
export { BlsKeyPair } from './blsKeyPair';
|
|
8
9
|
import * as Error from './errors';
|
|
9
10
|
import * as Interface from './iface';
|
|
10
11
|
export { Error, Interface };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/coin/baseCoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/coin/baseCoin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -19,7 +19,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.Interface = exports.Error = exports.StakingOperationTypes = exports.TransactionType = exports.Ed25519KeyPair = exports.BaseTransactionBuilderFactory = exports.BaseTransactionBuilder = exports.BaseTransaction = void 0;
|
|
22
|
+
exports.Interface = exports.Error = exports.BlsKeyPair = exports.StakingOperationTypes = exports.TransactionType = exports.Ed25519KeyPair = exports.BaseTransactionBuilderFactory = exports.BaseTransactionBuilder = exports.BaseTransaction = void 0;
|
|
23
23
|
var baseTransaction_1 = require("./baseTransaction");
|
|
24
24
|
Object.defineProperty(exports, "BaseTransaction", { enumerable: true, get: function () { return baseTransaction_1.BaseTransaction; } });
|
|
25
25
|
var baseTransactionBuilder_1 = require("./baseTransactionBuilder");
|
|
@@ -31,8 +31,10 @@ Object.defineProperty(exports, "Ed25519KeyPair", { enumerable: true, get: functi
|
|
|
31
31
|
var enum_1 = require("./enum");
|
|
32
32
|
Object.defineProperty(exports, "TransactionType", { enumerable: true, get: function () { return enum_1.TransactionType; } });
|
|
33
33
|
Object.defineProperty(exports, "StakingOperationTypes", { enumerable: true, get: function () { return enum_1.StakingOperationTypes; } });
|
|
34
|
+
var blsKeyPair_1 = require("./blsKeyPair");
|
|
35
|
+
Object.defineProperty(exports, "BlsKeyPair", { enumerable: true, get: function () { return blsKeyPair_1.BlsKeyPair; } });
|
|
34
36
|
var Error = __importStar(require("./errors"));
|
|
35
37
|
exports.Error = Error;
|
|
36
38
|
var Interface = __importStar(require("./iface"));
|
|
37
39
|
exports.Interface = Interface;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9iYXNlQ29pbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQW9EO0FBQTNDLGtIQUFBLGVBQWUsT0FBQTtBQUN4QixtRUFBa0U7QUFBekQsZ0lBQUEsc0JBQXNCLE9BQUE7QUFDL0IsaUZBQWdGO0FBQXZFLDhJQUFBLDZCQUE2QixPQUFBO0FBR3RDLG1EQUFrRDtBQUF6QyxnSEFBQSxjQUFjLE9BQUE7QUFDdkIsK0JBQWdFO0FBQXZELHVHQUFBLGVBQWUsT0FBQTtBQUFFLDZHQUFBLHFCQUFxQixPQUFBO0FBQy9DLDJDQUEwQztBQUFqQyx3R0FBQSxVQUFVLE9BQUE7QUFFbkIsOENBQWtDO0FBR3pCLHNCQUFLO0FBRmQsaURBQXFDO0FBRXJCLDhCQUFTIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQmFzZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi9iYXNlVHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vYmFzZVRyYW5zYWN0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB9IGZyb20gJy4vYmFzZVRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgQmFzZVV0aWxzIH0gZnJvbSAnLi9iYXNlVXRpbHMnO1xuZXhwb3J0IHsgQmFzZUtleVBhaXIgfSBmcm9tICcuL2Jhc2VLZXlQYWlyJztcbmV4cG9ydCB7IEVkMjU1MTlLZXlQYWlyIH0gZnJvbSAnLi9lZDI1NTE5S2V5UGFpcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIFN0YWtpbmdPcGVyYXRpb25UeXBlcyB9IGZyb20gJy4vZW51bSc7XG5leHBvcnQgeyBCbHNLZXlQYWlyIH0gZnJvbSAnLi9ibHNLZXlQYWlyJztcblxuaW1wb3J0ICogYXMgRXJyb3IgZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0ICogYXMgSW50ZXJmYWNlIGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgeyBFcnJvciwgSW50ZXJmYWNlIH07XG4iXX0=
|
|
@@ -2,6 +2,7 @@ import { PolkadotSpecNameType } from '@bitgo/statics';
|
|
|
2
2
|
import { BaseTxInfo, TypeRegistry, DecodedUnsignedTx } from '@substrate/txwrapper-core/lib/types';
|
|
3
3
|
import { TransactionType } from '../baseCoin';
|
|
4
4
|
import { TransactionExplanation as BaseTransactionExplanation } from '../baseCoin/iface';
|
|
5
|
+
export { HexString } from '@polkadot/util/types';
|
|
5
6
|
/**
|
|
6
7
|
* Method names for the transaction method. Names change based on the type of transaction e.g 'bond' for the staking transaction
|
|
7
8
|
*/
|
|
@@ -13,7 +14,8 @@ export declare enum MethodNames {
|
|
|
13
14
|
Unbond = "unbond",
|
|
14
15
|
Anonymous = "anonymous",
|
|
15
16
|
Batch = "batch",
|
|
16
|
-
Chill = "chill"
|
|
17
|
+
Chill = "chill",
|
|
18
|
+
WithdrawUnbonded = "withdrawUnbonded"
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* The transaction data returned from the toJson() function of a transaction
|
|
@@ -42,6 +44,7 @@ export interface TxData {
|
|
|
42
44
|
forceProxyType?: ProxyType;
|
|
43
45
|
index?: string;
|
|
44
46
|
batchCalls?: BatchCallObject[];
|
|
47
|
+
numSlashingSpans?: number;
|
|
45
48
|
}
|
|
46
49
|
/**
|
|
47
50
|
* Transaction method specific args
|
|
@@ -80,6 +83,9 @@ export interface StakeArgs {
|
|
|
80
83
|
export interface UnstakeArgs {
|
|
81
84
|
value: string;
|
|
82
85
|
}
|
|
86
|
+
export interface WithdrawUnstakedArgs {
|
|
87
|
+
numSlashingSpans: number;
|
|
88
|
+
}
|
|
83
89
|
/**
|
|
84
90
|
* The types of proxies that can be setup and used
|
|
85
91
|
* https://wiki.polkadot.network/docs/learn-proxies#proxy-types
|
|
@@ -135,7 +141,7 @@ export interface ProxyArgs {
|
|
|
135
141
|
* Decoded TxMethod from a transaction hex
|
|
136
142
|
*/
|
|
137
143
|
export interface TxMethod {
|
|
138
|
-
args: TransferArgs | StakeArgs | AddProxyArgs | ProxyArgs | UnstakeArgs | AddAnonymousProxyArgs | BatchArgs;
|
|
144
|
+
args: TransferArgs | StakeArgs | AddProxyArgs | ProxyArgs | UnstakeArgs | AddAnonymousProxyArgs | BatchArgs | WithdrawUnstakedArgs;
|
|
139
145
|
name: MethodNames;
|
|
140
146
|
pallet: string;
|
|
141
147
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,IAAI,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAEzF;;GAEG;AACH,oBAAY,WAAW;IACrB,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,iBAAiB,sBAAsB;IACvC,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,KAAK,UAAU;
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/iface.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,7 @@ var MethodNames;
|
|
|
14
14
|
MethodNames["Anonymous"] = "anonymous";
|
|
15
15
|
MethodNames["Batch"] = "batch";
|
|
16
16
|
MethodNames["Chill"] = "chill";
|
|
17
|
+
MethodNames["WithdrawUnbonded"] = "withdrawUnbonded";
|
|
17
18
|
})(MethodNames = exports.MethodNames || (exports.MethodNames = {}));
|
|
18
19
|
/**
|
|
19
20
|
* The types of proxies that can be setup and used
|
|
@@ -34,4 +35,4 @@ var TransactionTypes;
|
|
|
34
35
|
TransactionTypes["ADDR_INIT"] = "addressInitialization";
|
|
35
36
|
TransactionTypes["UNSTAKING"] = "unstaking";
|
|
36
37
|
})(TransactionTypes = exports.TransactionTypes || (exports.TransactionTypes = {}));
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9kb3QvaWZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0E7O0dBRUc7QUFDSCxJQUFZLFdBVVg7QUFWRCxXQUFZLFdBQVc7SUFDckIsb0NBQXFCLENBQUE7SUFDckIsOEJBQWUsQ0FBQTtJQUNmLDRCQUFhLENBQUE7SUFDYixzREFBdUMsQ0FBQTtJQUN2QyxnQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBdUIsQ0FBQTtJQUN2Qiw4QkFBZSxDQUFBO0lBQ2YsOEJBQWUsQ0FBQTtJQUNmLG9EQUFxQyxDQUFBO0FBQ3ZDLENBQUMsRUFWVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQVV0QjtBQXlFRDs7O0dBR0c7QUFDSCxJQUFZLFNBTVg7QUFORCxXQUFZLFNBQVM7SUFDbkIsd0JBQVcsQ0FBQTtJQUNYLHlDQUE0QixDQUFBO0lBQzVCLGdDQUFtQixDQUFBO0lBQ25CLHNEQUF5QyxDQUFBO0lBQ3pDLHlDQUE0QixDQUFBO0FBQzlCLENBQUMsRUFOVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU1wQjtBQTRGRCxJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIseUNBQXFCLENBQUE7SUFDckIsdUNBQW1CLENBQUE7SUFDbkIsdURBQW1DLENBQUE7SUFDbkMsMkNBQXVCLENBQUE7QUFDekIsQ0FBQyxFQUxXLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBSzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9sa2Fkb3RTcGVjTmFtZVR5cGUgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBCYXNlVHhJbmZvLCBUeXBlUmVnaXN0cnksIERlY29kZWRVbnNpZ25lZFR4IH0gZnJvbSAnQHN1YnN0cmF0ZS90eHdyYXBwZXItY29yZS9saWIvdHlwZXMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBhcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJy4uL2Jhc2VDb2luL2lmYWNlJztcblxuZXhwb3J0IHsgSGV4U3RyaW5nIH0gZnJvbSAnQHBvbGthZG90L3V0aWwvdHlwZXMnO1xuXG4vKipcbiAqIE1ldGhvZCBuYW1lcyBmb3IgdGhlIHRyYW5zYWN0aW9uIG1ldGhvZC4gTmFtZXMgY2hhbmdlIGJhc2VkIG9uIHRoZSB0eXBlIG9mIHRyYW5zYWN0aW9uIGUuZyAnYm9uZCcgZm9yIHRoZSBzdGFraW5nIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBlbnVtIE1ldGhvZE5hbWVzIHtcbiAgQWRkUHJveHkgPSAnYWRkUHJveHknLFxuICBQcm94eSA9ICdwcm94eScsXG4gIEJvbmQgPSAnYm9uZCcsXG4gIFRyYW5zZmVyS2VlcEFsaXZlID0gJ3RyYW5zZmVyS2VlcEFsaXZlJyxcbiAgVW5ib25kID0gJ3VuYm9uZCcsXG4gIEFub255bW91cyA9ICdhbm9ueW1vdXMnLFxuICBCYXRjaCA9ICdiYXRjaCcsXG4gIENoaWxsID0gJ2NoaWxsJyxcbiAgV2l0aGRyYXdVbmJvbmRlZCA9ICd3aXRoZHJhd1VuYm9uZGVkJyxcbn1cblxuLyoqXG4gKiBUaGUgdHJhbnNhY3Rpb24gZGF0YSByZXR1cm5lZCBmcm9tIHRoZSB0b0pzb24oKSBmdW5jdGlvbiBvZiBhIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHhEYXRhIHtcbiAgaWQ6IHN0cmluZztcbiAgc2VuZGVyOiBzdHJpbmc7XG4gIHJlZmVyZW5jZUJsb2NrOiBzdHJpbmc7XG4gIGJsb2NrTnVtYmVyOiBudW1iZXI7XG4gIGdlbmVzaXNIYXNoOiBzdHJpbmc7XG4gIG5vbmNlOiBudW1iZXI7XG4gIHNwZWNWZXJzaW9uOiBudW1iZXI7XG4gIHRyYW5zYWN0aW9uVmVyc2lvbjogbnVtYmVyO1xuICBjaGFpbk5hbWU6IHN0cmluZztcbiAgbWV0aG9kPzogc3RyaW5nO1xuICBzcGVjTmFtZT86IHN0cmluZztcbiAgYW1vdW50Pzogc3RyaW5nO1xuICB0bz86IHN0cmluZztcbiAgdGlwPzogbnVtYmVyO1xuICBlcmFQZXJpb2Q/OiBudW1iZXI7XG4gIGNvbnRyb2xsZXI/OiBzdHJpbmc7XG4gIHBheWVlPzogc3RyaW5nO1xuICBvd25lcj86IHN0cmluZztcbiAgcHJveHlUeXBlPzogc3RyaW5nO1xuICBkZWxheT86IHN0cmluZztcbiAgZm9yY2VQcm94eVR5cGU/OiBQcm94eVR5cGU7XG4gIGluZGV4Pzogc3RyaW5nO1xuICBiYXRjaENhbGxzPzogQmF0Y2hDYWxsT2JqZWN0W107XG4gIG51bVNsYXNoaW5nU3BhbnM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gbWV0aG9kIHNwZWNpZmljIGFyZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2ZlckFyZ3Mge1xuICBkZXN0OiB7IGlkOiBzdHJpbmcgfTtcbiAgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBtZXRob2Qgc3BlY2lmaWMgYXJnc1xuICovXG5leHBvcnQgdHlwZSBTdGFrZUFyZ3NQYXllZSA9XG4gIHwgJ1N0YWtlZCdcbiAgfCAnU3Rhc2gnXG4gIHwgJ0NvbnRyb2xsZXInXG4gIHwge1xuICAgICAgQWNjb3VudDogc3RyaW5nO1xuICAgIH07XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gbWV0aG9kIHNwZWNpZmljIGFyZ3NcbiAqL1xuZXhwb3J0IHR5cGUgU3Rha2VBcmdzUGF5ZWVSYXcgPSB7IGNvbnRyb2xsZXI/OiBudWxsOyBzdGFzaD86IG51bGw7IHN0YWtlZD86IG51bGw7IGFjY291bnQ/OiBzdHJpbmcgfTtcblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBtZXRob2Qgc3BlY2lmaWMgYXJnc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWtlQXJncyB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIGNvbnRyb2xsZXI6IHsgaWQ6IHN0cmluZyB9O1xuICBwYXllZTogU3Rha2VBcmdzUGF5ZWU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVW5zdGFrZUFyZ3Mge1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhkcmF3VW5zdGFrZWRBcmdzIHtcbiAgbnVtU2xhc2hpbmdTcGFuczogbnVtYmVyO1xufVxuXG4vKipcbiAqIFRoZSB0eXBlcyBvZiBwcm94aWVzIHRoYXQgY2FuIGJlIHNldHVwIGFuZCB1c2VkXG4gKiBodHRwczovL3dpa2kucG9sa2Fkb3QubmV0d29yay9kb2NzL2xlYXJuLXByb3hpZXMjcHJveHktdHlwZXNcbiAqL1xuZXhwb3J0IGVudW0gUHJveHlUeXBlIHtcbiAgQU5ZID0gJ0FueScsXG4gIE5PTl9UUkFOU0ZFUiA9ICdOb25UcmFuc2ZlcicsXG4gIFNUQUtJTkcgPSAnU3Rha2luZycsXG4gIElERU5UVElUWV9KVURHRU1FTlQgPSAnSWRlbnRpdHlKdWRnZW1lbnQnLFxuICBDQU5DRUxfUFJPWFkgPSAnQ2FuY2VsUHJveHknLFxufVxuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWRkUHJveHlBcmdzIHtcbiAgZGVsZWdhdGU6IHN0cmluZztcbiAgZGVsYXk6IHN0cmluZztcbiAgcHJveHlUeXBlOiBQcm94eVR5cGU7XG59XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gbWV0aG9kIHNwZWNpZmljIGFyZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBZGRBbm9ueW1vdXNQcm94eUFyZ3Mge1xuICBwcm94eVR5cGU6IFByb3h5VHlwZTtcbiAgaW5kZXg6IHN0cmluZztcbiAgZGVsYXk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBtZXRob2Qgc3BlY2lmaWMgYXJnc1xuICovXG5leHBvcnQgdHlwZSBCYXRjaENhbGxPYmplY3QgPSB7XG4gIGNhbGxJbmRleDogc3RyaW5nO1xuICBhcmdzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufTtcbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hBcmdzIHtcbiAgY2FsbHM6IEJhdGNoQ2FsbE9iamVjdFtdO1xufVxuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCB0eXBlIFByb3h5Q2FsbEFyZ3MgPSB7XG4gIGNhbGxJbmRleDogc3RyaW5nO1xuICBhcmdzOiBUcmFuc2ZlckFyZ3M7XG59O1xuXG4vKipcbiAqIFRyYW5zYWN0aW9uIG1ldGhvZCBzcGVjaWZpYyBhcmdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJveHlBcmdzIHtcbiAgcmVhbDogc3RyaW5nO1xuICBmb3JjZVByb3h5VHlwZTogUHJveHlUeXBlO1xufVxuXG4vKipcbiAqIERlY29kZWQgVHhNZXRob2QgZnJvbSBhIHRyYW5zYWN0aW9uIGhleFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFR4TWV0aG9kIHtcbiAgYXJnczpcbiAgICB8IFRyYW5zZmVyQXJnc1xuICAgIHwgU3Rha2VBcmdzXG4gICAgfCBBZGRQcm94eUFyZ3NcbiAgICB8IFByb3h5QXJnc1xuICAgIHwgVW5zdGFrZUFyZ3NcbiAgICB8IEFkZEFub255bW91c1Byb3h5QXJnc1xuICAgIHwgQmF0Y2hBcmdzXG4gICAgfCBXaXRoZHJhd1Vuc3Rha2VkQXJncztcbiAgbmFtZTogTWV0aG9kTmFtZXM7XG4gIHBhbGxldDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE1vZGlmaWVkIHVuc2lnbmVkIHRyYW5zYWN0aW9uIHdpdGggYSBkZWNvZGVkIG1ldGhvZCBpbnN0ZWFkIG9mIGEgbWV0aG9kIGhleFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY29kZWRUeCBleHRlbmRzIE9taXQ8RGVjb2RlZFVuc2lnbmVkVHgsICdtZXRob2QnPiB7XG4gIG1ldGhvZDogVHhNZXRob2Q7XG59XG5cbi8qKlxuICogQmFzZSB0cmFuc2FjdGlvbiBpbmZvIHNoYXJlZCBhY3Jvc3MgYWxsIHR5cGVzIG9mIHRyYW5zYWN0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUJhc2VUeEluZm8ge1xuICBiYXNlVHhJbmZvOiBCYXNlVHhJbmZvO1xuICBvcHRpb25zOiB7XG4gICAgbWV0YWRhdGFScGM6IGAweCR7c3RyaW5nfWA7XG4gICAgcmVnaXN0cnk6IFR5cGVSZWdpc3RyeTtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICB0eXBlOiBUcmFuc2FjdGlvblR5cGU7XG4gIGZvcmNlUHJveHlUeXBlPzogUHJveHlUeXBlO1xuICBjb250cm9sbGVyPzogc3RyaW5nO1xuICBwYXllZT86IHN0cmluZztcbiAgb3duZXI/OiBzdHJpbmc7XG4gIHByb3h5VHlwZT86IHN0cmluZztcbiAgZGVsYXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBlbnVtIFRyYW5zYWN0aW9uVHlwZXMge1xuICBUUkFOU0ZFUiA9ICd0cmFuc2ZlcicsXG4gIFNUQUtJTkcgPSAnc3Rha2luZycsXG4gIEFERFJfSU5JVCA9ICdhZGRyZXNzSW5pdGlhbGl6YXRpb24nLFxuICBVTlNUQUtJTkcgPSAndW5zdGFraW5nJyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgTWF0ZXJpYWwge1xuICBnZW5lc2lzSGFzaDogc3RyaW5nO1xuICBjaGFpbk5hbWU6IHN0cmluZztcbiAgc3BlY05hbWU6IFBvbGthZG90U3BlY05hbWVUeXBlO1xuICBzcGVjVmVyc2lvbjogbnVtYmVyO1xuICB0eFZlcnNpb246IG51bWJlcjtcbiAgbWV0YWRhdGE6IGAweCR7c3RyaW5nfWA7XG59XG4iXX0=
|
|
@@ -9,6 +9,7 @@ export { AddressInitializationBuilder } from './addressInitializationBuilder';
|
|
|
9
9
|
export { BatchTransactionBuilder } from './batchTransactionBuilder';
|
|
10
10
|
export { UnstakeBuilder } from './unstakeBuilder';
|
|
11
11
|
export { UnnominateBuilder } from './unnominateBuilder';
|
|
12
|
+
export { WithdrawUnstakedBuilder } from './withdrawUnstakedBuilder';
|
|
12
13
|
export { TransactionBuilderFactory } from './transactionBuilderFactory';
|
|
13
14
|
export { Interface, Utils };
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,SAAS,MAAM,SAAS,CAAC;AAErC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -19,7 +19,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.Utils = exports.Interface = exports.TransactionBuilderFactory = exports.UnnominateBuilder = exports.UnstakeBuilder = exports.BatchTransactionBuilder = exports.AddressInitializationBuilder = exports.TransferBuilder = exports.StakingBuilder = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
|
|
22
|
+
exports.Utils = exports.Interface = exports.TransactionBuilderFactory = exports.WithdrawUnstakedBuilder = exports.UnnominateBuilder = exports.UnstakeBuilder = exports.BatchTransactionBuilder = exports.AddressInitializationBuilder = exports.TransferBuilder = exports.StakingBuilder = exports.TransactionBuilder = exports.Transaction = exports.KeyPair = void 0;
|
|
23
23
|
var Utils = __importStar(require("./utils"));
|
|
24
24
|
exports.Utils = Utils;
|
|
25
25
|
var Interface = __importStar(require("./iface"));
|
|
@@ -42,6 +42,8 @@ var unstakeBuilder_1 = require("./unstakeBuilder");
|
|
|
42
42
|
Object.defineProperty(exports, "UnstakeBuilder", { enumerable: true, get: function () { return unstakeBuilder_1.UnstakeBuilder; } });
|
|
43
43
|
var unnominateBuilder_1 = require("./unnominateBuilder");
|
|
44
44
|
Object.defineProperty(exports, "UnnominateBuilder", { enumerable: true, get: function () { return unnominateBuilder_1.UnnominateBuilder; } });
|
|
45
|
+
var withdrawUnstakedBuilder_1 = require("./withdrawUnstakedBuilder");
|
|
46
|
+
Object.defineProperty(exports, "WithdrawUnstakedBuilder", { enumerable: true, get: function () { return withdrawUnstakedBuilder_1.WithdrawUnstakedBuilder; } });
|
|
45
47
|
var transactionBuilderFactory_1 = require("./transactionBuilderFactory");
|
|
46
48
|
Object.defineProperty(exports, "TransactionBuilderFactory", { enumerable: true, get: function () { return transactionBuilderFactory_1.TransactionBuilderFactory; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9kb3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUFpQztBQWNiLHNCQUFLO0FBYnpCLGlEQUFxQztBQWE1Qiw4QkFBUztBQVhsQixxQ0FBb0M7QUFBM0Isa0dBQUEsT0FBTyxPQUFBO0FBQ2hCLDZDQUE0QztBQUFuQywwR0FBQSxXQUFXLE9BQUE7QUFDcEIsMkRBQTBEO0FBQWpELHdIQUFBLGtCQUFrQixPQUFBO0FBQzNCLG1EQUFrRDtBQUF6QyxnSEFBQSxjQUFjLE9BQUE7QUFDdkIscURBQW9EO0FBQTNDLGtIQUFBLGVBQWUsT0FBQTtBQUN4QiwrRUFBOEU7QUFBckUsNElBQUEsNEJBQTRCLE9BQUE7QUFDckMscUVBQW9FO0FBQTNELGtJQUFBLHVCQUF1QixPQUFBO0FBQ2hDLG1EQUFrRDtBQUF6QyxnSEFBQSxjQUFjLE9BQUE7QUFDdkIseURBQXdEO0FBQS9DLHNIQUFBLGlCQUFpQixPQUFBO0FBQzFCLHFFQUFvRTtBQUEzRCxrSUFBQSx1QkFBdUIsT0FBQTtBQUNoQyx5RUFBd0U7QUFBL0Qsc0lBQUEseUJBQXlCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAqIGFzIEludGVyZmFjZSBmcm9tICcuL2lmYWNlJztcblxuZXhwb3J0IHsgS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5leHBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgU3Rha2luZ0J1aWxkZXIgfSBmcm9tICcuL3N0YWtpbmdCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmV4cG9ydCB7IEFkZHJlc3NJbml0aWFsaXphdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2FkZHJlc3NJbml0aWFsaXphdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgQmF0Y2hUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2JhdGNoVHJhbnNhY3Rpb25CdWlsZGVyJztcbmV4cG9ydCB7IFVuc3Rha2VCdWlsZGVyIH0gZnJvbSAnLi91bnN0YWtlQnVpbGRlcic7XG5leHBvcnQgeyBVbm5vbWluYXRlQnVpbGRlciB9IGZyb20gJy4vdW5ub21pbmF0ZUJ1aWxkZXInO1xuZXhwb3J0IHsgV2l0aGRyYXdVbnN0YWtlZEJ1aWxkZXIgfSBmcm9tICcuL3dpdGhkcmF3VW5zdGFrZWRCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnknO1xuZXhwb3J0IHsgSW50ZXJmYWNlLCBVdGlscyB9O1xuIl19
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
3
|
import { BaseTransaction, TransactionType } from '../baseCoin';
|
|
3
4
|
import { BaseKey } from '../baseCoin/iface';
|
|
@@ -14,8 +15,12 @@ export declare class Transaction extends BaseTransaction {
|
|
|
14
15
|
constructor(coinConfig: Readonly<CoinConfig>);
|
|
15
16
|
/** @inheritdoc */
|
|
16
17
|
canSign({ key }: BaseKey): boolean;
|
|
17
|
-
/**
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Sign a polkadot transaction and update the transaction hex
|
|
20
|
+
*
|
|
21
|
+
* @param {KeyPair} keyPair - ed signature
|
|
22
|
+
*/
|
|
23
|
+
sign(keyPair: KeyPair): void;
|
|
19
24
|
registry(registry: TypeRegistry): void;
|
|
20
25
|
chainName(chainName: string): void;
|
|
21
26
|
sender(sender: string): void;
|
|
@@ -34,7 +39,18 @@ export declare class Transaction extends BaseTransaction {
|
|
|
34
39
|
* Load the input and output data on this transaction.
|
|
35
40
|
*/
|
|
36
41
|
loadInputsAndOutputs(): void;
|
|
42
|
+
/**
|
|
43
|
+
* Constructs a signed payload using construct.signTx
|
|
44
|
+
* This method will be called during the build step if a TSS signature
|
|
45
|
+
* is added and will set the signTransaction which is the txHex that will be broadcasted
|
|
46
|
+
* As well as add the signature used to sign to the signature array in hex format
|
|
47
|
+
*
|
|
48
|
+
* @param {Buffer} signature The signature to be added to a dot transaction
|
|
49
|
+
*/
|
|
50
|
+
constructSignedPayload(signature: Buffer): void;
|
|
37
51
|
setTransaction(tx: UnsignedTransaction): void;
|
|
52
|
+
/** @inheritdoc **/
|
|
53
|
+
get signablePayload(): Buffer;
|
|
38
54
|
/**
|
|
39
55
|
* Set the transaction type.
|
|
40
56
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAwB,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,MAAM,EAMN,sBAAsB,
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAwB,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,MAAM,EAMN,sBAAsB,EAKvB,MAAM,SAAS,CAAC;AAIjB,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,eAAe,EAAE,mBAAmB,CAAC;IAC/C,OAAO,CAAC,kBAAkB,CAAC,CAAS;IACpC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,kBAAkB;IAClB,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,OAAO,GAAG,OAAO;IAMlC;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IA0B5B,QAAQ,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAItC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIlC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI5B,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAa3B,eAAe,IAAI,MAAM;IAIzB,kBAAkB;IAClB,MAAM,IAAI,MAAM;IA2GhB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAe3G,iCAAiC,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAelH,uCAAuC,CACrC,IAAI,EAAE,MAAM,EACZ,iBAAiB,EAAE,sBAAsB,GACxC,sBAAsB;IAUzB,+BAA+B,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,sBAAsB,GAAG,sBAAsB;IAYhH,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAgC5C;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAwD5B;;;;;;;OAOG;IACH,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAgB/C,cAAc,CAAC,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAI7C,mBAAmB;IACnB,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED;;;;OAIG;IACH,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;CAGxD"}
|