@bitgo-beta/utxo-lib 8.0.3-beta.52 → 8.0.3-beta.521

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/README.md +19 -16
  2. package/dist/src/address.js +5 -5
  3. package/dist/src/addressFormat.d.ts +1 -1
  4. package/dist/src/addressFormat.d.ts.map +1 -1
  5. package/dist/src/addressFormat.js +9 -9
  6. package/dist/src/bitgo/Musig2.js +19 -19
  7. package/dist/src/bitgo/PsbtUtil.d.ts +17 -0
  8. package/dist/src/bitgo/PsbtUtil.d.ts.map +1 -1
  9. package/dist/src/bitgo/PsbtUtil.js +57 -3
  10. package/dist/src/bitgo/Unspent.d.ts +2 -2
  11. package/dist/src/bitgo/Unspent.d.ts.map +1 -1
  12. package/dist/src/bitgo/Unspent.js +3 -3
  13. package/dist/src/bitgo/UtxoPsbt.d.ts +16 -4
  14. package/dist/src/bitgo/UtxoPsbt.d.ts.map +1 -1
  15. package/dist/src/bitgo/UtxoPsbt.js +118 -76
  16. package/dist/src/bitgo/UtxoTransaction.d.ts.map +1 -1
  17. package/dist/src/bitgo/UtxoTransaction.js +9 -9
  18. package/dist/src/bitgo/bitcoincash/address.js +6 -6
  19. package/dist/src/bitgo/bitcoincash/index.js +6 -2
  20. package/dist/src/bitgo/dash/DashTransaction.js +3 -3
  21. package/dist/src/bitgo/dash/index.js +6 -2
  22. package/dist/src/bitgo/index.d.ts +3 -1
  23. package/dist/src/bitgo/index.d.ts.map +1 -1
  24. package/dist/src/bitgo/index.js +9 -3
  25. package/dist/src/bitgo/keyutil.d.ts +9 -0
  26. package/dist/src/bitgo/keyutil.d.ts.map +1 -1
  27. package/dist/src/bitgo/keyutil.js +24 -2
  28. package/dist/src/bitgo/legacysafe/index.d.ts +15 -0
  29. package/dist/src/bitgo/legacysafe/index.d.ts.map +1 -0
  30. package/dist/src/bitgo/legacysafe/index.js +61 -0
  31. package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts +1 -1
  32. package/dist/src/bitgo/litecoin/LitecoinTransaction.d.ts.map +1 -1
  33. package/dist/src/bitgo/litecoin/LitecoinTransaction.js +2 -2
  34. package/dist/src/bitgo/litecoin/index.js +6 -2
  35. package/dist/src/bitgo/outputScripts.d.ts +7 -6
  36. package/dist/src/bitgo/outputScripts.d.ts.map +1 -1
  37. package/dist/src/bitgo/outputScripts.js +29 -14
  38. package/dist/src/bitgo/parseInput.d.ts +11 -7
  39. package/dist/src/bitgo/parseInput.d.ts.map +1 -1
  40. package/dist/src/bitgo/parseInput.js +23 -7
  41. package/dist/src/bitgo/psbt/fromHalfSigned.js +5 -5
  42. package/dist/src/bitgo/signature.d.ts +2 -2
  43. package/dist/src/bitgo/signature.d.ts.map +1 -1
  44. package/dist/src/bitgo/signature.js +17 -8
  45. package/dist/src/bitgo/transaction.d.ts +13 -0
  46. package/dist/src/bitgo/transaction.d.ts.map +1 -1
  47. package/dist/src/bitgo/transaction.js +31 -11
  48. package/dist/src/bitgo/transactionAmounts.d.ts +9 -0
  49. package/dist/src/bitgo/transactionAmounts.d.ts.map +1 -0
  50. package/dist/src/bitgo/transactionAmounts.js +33 -0
  51. package/dist/src/bitgo/types.d.ts +9 -2
  52. package/dist/src/bitgo/types.d.ts.map +1 -1
  53. package/dist/src/bitgo/types.js +11 -2
  54. package/dist/src/bitgo/wallet/Psbt.d.ts +48 -18
  55. package/dist/src/bitgo/wallet/Psbt.d.ts.map +1 -1
  56. package/dist/src/bitgo/wallet/Psbt.js +129 -29
  57. package/dist/src/bitgo/wallet/Unspent.d.ts +23 -15
  58. package/dist/src/bitgo/wallet/Unspent.d.ts.map +1 -1
  59. package/dist/src/bitgo/wallet/Unspent.js +59 -54
  60. package/dist/src/bitgo/wallet/WalletKeys.d.ts +1 -1
  61. package/dist/src/bitgo/wallet/WalletKeys.d.ts.map +1 -1
  62. package/dist/src/bitgo/wallet/WalletOutput.d.ts +17 -1
  63. package/dist/src/bitgo/wallet/WalletOutput.d.ts.map +1 -1
  64. package/dist/src/bitgo/wallet/WalletOutput.js +68 -27
  65. package/dist/src/bitgo/wallet/WalletScripts.js +2 -2
  66. package/dist/src/bitgo/wallet/WalletUnspentSigner.js +7 -7
  67. package/dist/src/bitgo/wallet/chains.d.ts +2 -2
  68. package/dist/src/bitgo/wallet/chains.d.ts.map +1 -1
  69. package/dist/src/bitgo/wallet/index.d.ts +2 -0
  70. package/dist/src/bitgo/wallet/index.d.ts.map +1 -1
  71. package/dist/src/bitgo/wallet/index.js +8 -2
  72. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts +50 -0
  73. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.d.ts.map +1 -0
  74. package/dist/src/bitgo/wallet/psbt/PsbtOutputs.js +87 -0
  75. package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts +32 -0
  76. package/dist/src/bitgo/wallet/psbt/RootNodes.d.ts.map +1 -0
  77. package/dist/src/bitgo/wallet/psbt/RootNodes.js +125 -0
  78. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts +0 -1
  79. package/dist/src/bitgo/zcash/ZcashPsbt.d.ts.map +1 -1
  80. package/dist/src/bitgo/zcash/ZcashPsbt.js +5 -14
  81. package/dist/src/bitgo/zcash/ZcashTransaction.d.ts +1 -1
  82. package/dist/src/bitgo/zcash/ZcashTransaction.d.ts.map +1 -1
  83. package/dist/src/bitgo/zcash/ZcashTransaction.js +15 -15
  84. package/dist/src/bitgo/zcash/ZcashTransactionBuilder.js +4 -4
  85. package/dist/src/bitgo/zcash/address.js +3 -3
  86. package/dist/src/bitgo/zcash/hashZip0244.d.ts +1 -1
  87. package/dist/src/bitgo/zcash/hashZip0244.d.ts.map +1 -1
  88. package/dist/src/bitgo/zcash/hashZip0244.js +3 -3
  89. package/dist/src/bitgo/zcash/index.js +6 -2
  90. package/dist/src/index.js +6 -2
  91. package/dist/src/networks.d.ts +2 -2
  92. package/dist/src/networks.d.ts.map +1 -1
  93. package/dist/src/networks.js +47 -1
  94. package/dist/src/noble_ecc.d.ts +7 -7
  95. package/dist/src/noble_ecc.d.ts.map +1 -1
  96. package/dist/src/noble_ecc.js +4 -4
  97. package/dist/src/testutil/index.js +6 -2
  98. package/dist/src/testutil/keys.d.ts +4 -1
  99. package/dist/src/testutil/keys.d.ts.map +1 -1
  100. package/dist/src/testutil/keys.js +18 -3
  101. package/dist/src/testutil/mock.d.ts +1 -1
  102. package/dist/src/testutil/mock.d.ts.map +1 -1
  103. package/dist/src/testutil/mock.js +15 -15
  104. package/dist/src/testutil/psbt.d.ts +37 -15
  105. package/dist/src/testutil/psbt.d.ts.map +1 -1
  106. package/dist/src/testutil/psbt.js +41 -31
  107. package/dist/src/testutil/transaction.d.ts +15 -6
  108. package/dist/src/testutil/transaction.d.ts.map +1 -1
  109. package/dist/src/testutil/transaction.js +20 -20
  110. package/dist/src/transaction_builder.d.ts.map +1 -1
  111. package/dist/src/transaction_builder.js +12 -17
  112. package/package.json +7 -7
@@ -11,7 +11,7 @@ const networks_1 = require("../../networks");
11
11
  class LitecoinTransaction extends UtxoTransaction_1.UtxoTransaction {
12
12
  constructor(network, tx, amountType) {
13
13
  super(network, tx, amountType);
14
- if (!networks_1.isLitecoin(network)) {
14
+ if (!(0, networks_1.isLitecoin)(network)) {
15
15
  throw new Error(`invalid network`);
16
16
  }
17
17
  }
@@ -43,4 +43,4 @@ class LitecoinTransaction extends UtxoTransaction_1.UtxoTransaction {
43
43
  }
44
44
  exports.LitecoinTransaction = LitecoinTransaction;
45
45
  LitecoinTransaction.MWEB_PEGOUT_TX_FLAG = 0x08;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl0ZWNvaW5UcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9saXRlY29pbi9MaXRlY29pblRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUEyRTtBQUUzRSx3REFBcUQ7QUFDckQsNkNBQStEO0FBSS9EOzs7R0FHRztBQUNILE1BQWEsbUJBQThELFNBQVEsaUNBQXdCO0lBR3pHLFlBQVksT0FBZ0IsRUFBRSxFQUF5QyxFQUFFLFVBQWdDO1FBQ3ZHLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxxQkFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFUyxNQUFNLENBQUMsY0FBYyxDQUM3QixPQUFnQixFQUNoQixXQUFrRCxFQUNsRCxVQUFnQztRQUVoQyxPQUFPLElBQUksbUJBQW1CLENBQVUsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsS0FBSyxDQUF3QyxVQUFnQztRQUMzRSxPQUFPLElBQUksbUJBQW1CLENBQU0sSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQ2YsTUFBYyxFQUNkLFFBQWlCLEVBQ2pCLGFBQWtDLFFBQVEsRUFDMUMsT0FBeUI7UUFFekIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUN6QztRQUVELE1BQU0sWUFBWSxHQUFHLElBQUksMEJBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDM0MsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUV0QyxJQUNFLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQywyQkFBMkI7WUFDMUQsSUFBSSxLQUFLLG1CQUFtQixDQUFDLG1CQUFtQixFQUNoRDtZQUNBLGtJQUFrSTtZQUNsSSxNQUFNLFlBQVksR0FBRyxJQUFJLDBCQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0UsWUFBWSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwQyxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RCxZQUFZLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDeEUsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM3RTtRQUNELE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNqRSxDQUFDOztBQWxESCxrREFtREM7QUFsRFEsdUNBQW1CLEdBQUcsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVmZmVyUmVhZGVyLCBCdWZmZXJXcml0ZXIgfSBmcm9tICdiaXRjb2luanMtbGliL3NyYy9idWZmZXJ1dGlscyc7XG5cbmltcG9ydCB7IFV0eG9UcmFuc2FjdGlvbiB9IGZyb20gJy4uL1V0eG9UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBpc0xpdGVjb2luLCBOZXR3b3JrLCBuZXR3b3JrcyB9IGZyb20gJy4uLy4uL25ldHdvcmtzJztcblxuZXhwb3J0IHR5cGUgTGl0ZWNvaW5OZXR3b3JrID0gdHlwZW9mIG5ldHdvcmtzLmxpdGVjb2luIHwgdHlwZW9mIG5ldHdvcmtzLmxpdGVjb2luVGVzdDtcblxuLyoqXG4gKiBXZSBvbmx5IGNhcmUgYWJvdXQgcmVhZGluZyBhIHRyYW5zYWN0aW9uIHRoYXQgY2FuIGhhdmUgYSBwb3RlbnRpYWxseSBkaWZmZXJlbnQgYWR2YW5jZWQgdHJhbnNhY3Rpb24gZmxhZyxcbiAqIGJ1dCB3ZSBkb250IG5lZWQgdG8gd3JpdGUgb25lLlxuICovXG5leHBvcnQgY2xhc3MgTGl0ZWNvaW5UcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPiBleHRlbmRzIFV0eG9UcmFuc2FjdGlvbjxUTnVtYmVyPiB7XG4gIHN0YXRpYyBNV0VCX1BFR09VVF9UWF9GTEFHID0gMHgwODtcblxuICBjb25zdHJ1Y3RvcihuZXR3b3JrOiBOZXR3b3JrLCB0eD86IExpdGVjb2luVHJhbnNhY3Rpb248YmlnaW50IHwgbnVtYmVyPiwgYW1vdW50VHlwZT86ICdiaWdpbnQnIHwgJ251bWJlcicpIHtcbiAgICBzdXBlcihuZXR3b3JrLCB0eCwgYW1vdW50VHlwZSk7XG5cbiAgICBpZiAoIWlzTGl0ZWNvaW4obmV0d29yaykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBuZXR3b3JrYCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIHN0YXRpYyBuZXdUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgICBuZXR3b3JrOiBOZXR3b3JrLFxuICAgIHRyYW5zYWN0aW9uPzogTGl0ZWNvaW5UcmFuc2FjdGlvbjxudW1iZXIgfCBiaWdpbnQ+LFxuICAgIGFtb3VudFR5cGU/OiAnbnVtYmVyJyB8ICdiaWdpbnQnXG4gICk6IExpdGVjb2luVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICAgIHJldHVybiBuZXcgTGl0ZWNvaW5UcmFuc2FjdGlvbjxUTnVtYmVyPihuZXR3b3JrLCB0cmFuc2FjdGlvbiwgYW1vdW50VHlwZSk7XG4gIH1cblxuICBjbG9uZTxUTjIgZXh0ZW5kcyBiaWdpbnQgfCBudW1iZXIgPSBUTnVtYmVyPihhbW91bnRUeXBlPzogJ251bWJlcicgfCAnYmlnaW50Jyk6IExpdGVjb2luVHJhbnNhY3Rpb248VE4yPiB7XG4gICAgcmV0dXJuIG5ldyBMaXRlY29pblRyYW5zYWN0aW9uPFROMj4odGhpcy5uZXR3b3JrLCB0aGlzLCBhbW91bnRUeXBlKTtcbiAgfVxuXG4gIHN0YXRpYyBmcm9tQnVmZmVyPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICAgIGJ1ZmZlcjogQnVmZmVyLFxuICAgIG5vU3RyaWN0OiBib29sZWFuLFxuICAgIGFtb3VudFR5cGU6ICdudW1iZXInIHwgJ2JpZ2ludCcgPSAnbnVtYmVyJyxcbiAgICBuZXR3b3JrPzogTGl0ZWNvaW5OZXR3b3JrXG4gICk6IExpdGVjb2luVHJhbnNhY3Rpb248VE51bWJlcj4ge1xuICAgIGlmICghbmV0d29yaykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgbmV0d29ya2ApO1xuICAgIH1cblxuICAgIGNvbnN0IGJ1ZmZlclJlYWRlciA9IG5ldyBCdWZmZXJSZWFkZXIoYnVmZmVyKTtcbiAgICBjb25zdCB0eFZlcnNpb24gPSBidWZmZXJSZWFkZXIucmVhZEludDMyKCk7XG4gICAgY29uc3QgbWFya2VyID0gYnVmZmVyUmVhZGVyLnJlYWRVSW50OCgpO1xuICAgIGNvbnN0IGZsYWcgPSBidWZmZXJSZWFkZXIucmVhZFVJbnQ4KCk7XG5cbiAgICBpZiAoXG4gICAgICBtYXJrZXIgPT09IExpdGVjb2luVHJhbnNhY3Rpb24uQURWQU5DRURfVFJBTlNBQ1RJT05fTUFSS0VSICYmXG4gICAgICBmbGFnID09PSBMaXRlY29pblRyYW5zYWN0aW9uLk1XRUJfUEVHT1VUX1RYX0ZMQUdcbiAgICApIHtcbiAgICAgIC8vIExpdGVjb2luIGhhcyBhbiBNV0VCIGFkdmFuY2VkIHRyYW5zYWN0aW9uIG1hcmtlci4gU2xpY2Ugb3V0IHRoZSBtYXJrZXIgYW5kIDV0aCB0byBsYXN0IGJ5dGUgIGFuZCByZWFkIGxpa2UgYSBub3JtYWwgdHJhbnNhY3Rpb25cbiAgICAgIGNvbnN0IGJ1ZmZlcldyaXRlciA9IG5ldyBCdWZmZXJXcml0ZXIoQnVmZmVyLmFsbG9jVW5zYWZlKGJ1ZmZlci5sZW5ndGggLSAzKSk7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVVSW50MzIodHhWZXJzaW9uKTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVNsaWNlKGJ1ZmZlci5zbGljZSg2LCBidWZmZXIubGVuZ3RoIC0gNSkpO1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoYnVmZmVyLnNsaWNlKGJ1ZmZlci5sZW5ndGggLSA0LCBidWZmZXIubGVuZ3RoKSk7XG4gICAgICByZXR1cm4gc3VwZXIuZnJvbUJ1ZmZlcihidWZmZXJXcml0ZXIuYnVmZmVyLCBub1N0cmljdCwgYW1vdW50VHlwZSwgbmV0d29yayk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5mcm9tQnVmZmVyKGJ1ZmZlciwgbm9TdHJpY3QsIGFtb3VudFR5cGUsIG5ldHdvcmspO1xuICB9XG59XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGl0ZWNvaW5UcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9saXRlY29pbi9MaXRlY29pblRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtEQUEyRTtBQUUzRSx3REFBcUQ7QUFDckQsNkNBQStEO0FBSS9EOzs7R0FHRztBQUNILE1BQWEsbUJBQThELFNBQVEsaUNBQXdCO0lBR3pHLFlBQVksT0FBZ0IsRUFBRSxFQUF5QyxFQUFFLFVBQWdDO1FBQ3ZHLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRS9CLElBQUksQ0FBQyxJQUFBLHFCQUFVLEVBQUMsT0FBTyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVTLE1BQU0sQ0FBQyxjQUFjLENBQzdCLE9BQWdCLEVBQ2hCLFdBQWtELEVBQ2xELFVBQWdDO1FBRWhDLE9BQU8sSUFBSSxtQkFBbUIsQ0FBVSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxLQUFLLENBQXdDLFVBQWdDO1FBQzNFLE9BQU8sSUFBSSxtQkFBbUIsQ0FBTSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FDZixNQUFjLEVBQ2QsUUFBaUIsRUFDakIsYUFBa0MsUUFBUSxFQUMxQyxPQUF5QjtRQUV6QixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsTUFBTSxZQUFZLEdBQUcsSUFBSSwwQkFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzQyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBRXRDLElBQ0UsTUFBTSxLQUFLLG1CQUFtQixDQUFDLDJCQUEyQjtZQUMxRCxJQUFJLEtBQUssbUJBQW1CLENBQUMsbUJBQW1CLEVBQ2hEO1lBQ0Esa0lBQWtJO1lBQ2xJLE1BQU0sWUFBWSxHQUFHLElBQUksMEJBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RSxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BDLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN4RSxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzdFO1FBQ0QsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2pFLENBQUM7O0FBbERILGtEQW1EQztBQWxEUSx1Q0FBbUIsR0FBRyxJQUFJLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWZmZXJSZWFkZXIsIEJ1ZmZlcldyaXRlciB9IGZyb20gJ2JpdGNvaW5qcy1saWIvc3JjL2J1ZmZlcnV0aWxzJztcblxuaW1wb3J0IHsgVXR4b1RyYW5zYWN0aW9uIH0gZnJvbSAnLi4vVXR4b1RyYW5zYWN0aW9uJztcbmltcG9ydCB7IGlzTGl0ZWNvaW4sIE5ldHdvcmssIG5ldHdvcmtzIH0gZnJvbSAnLi4vLi4vbmV0d29ya3MnO1xuXG5leHBvcnQgdHlwZSBMaXRlY29pbk5ldHdvcmsgPSB0eXBlb2YgbmV0d29ya3MubGl0ZWNvaW4gfCB0eXBlb2YgbmV0d29ya3MubGl0ZWNvaW5UZXN0O1xuXG4vKipcbiAqIFdlIG9ubHkgY2FyZSBhYm91dCByZWFkaW5nIGEgdHJhbnNhY3Rpb24gdGhhdCBjYW4gaGF2ZSBhIHBvdGVudGlhbGx5IGRpZmZlcmVudCBhZHZhbmNlZCB0cmFuc2FjdGlvbiBmbGFnLFxuICogYnV0IHdlIGRvbnQgbmVlZCB0byB3cml0ZSBvbmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaXRlY29pblRyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+IGV4dGVuZHMgVXR4b1RyYW5zYWN0aW9uPFROdW1iZXI+IHtcbiAgc3RhdGljIE1XRUJfUEVHT1VUX1RYX0ZMQUcgPSAweDA4O1xuXG4gIGNvbnN0cnVjdG9yKG5ldHdvcms6IE5ldHdvcmssIHR4PzogTGl0ZWNvaW5UcmFuc2FjdGlvbjxiaWdpbnQgfCBudW1iZXI+LCBhbW91bnRUeXBlPzogJ2JpZ2ludCcgfCAnbnVtYmVyJykge1xuICAgIHN1cGVyKG5ldHdvcmssIHR4LCBhbW91bnRUeXBlKTtcblxuICAgIGlmICghaXNMaXRlY29pbihuZXR3b3JrKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIG5ldHdvcmtgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgc3RhdGljIG5ld1RyYW5zYWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICAgIG5ldHdvcms6IE5ldHdvcmssXG4gICAgdHJhbnNhY3Rpb24/OiBMaXRlY29pblRyYW5zYWN0aW9uPG51bWJlciB8IGJpZ2ludD4sXG4gICAgYW1vdW50VHlwZT86ICdudW1iZXInIHwgJ2JpZ2ludCdcbiAgKTogTGl0ZWNvaW5UcmFuc2FjdGlvbjxUTnVtYmVyPiB7XG4gICAgcmV0dXJuIG5ldyBMaXRlY29pblRyYW5zYWN0aW9uPFROdW1iZXI+KG5ldHdvcmssIHRyYW5zYWN0aW9uLCBhbW91bnRUeXBlKTtcbiAgfVxuXG4gIGNsb25lPFROMiBleHRlbmRzIGJpZ2ludCB8IG51bWJlciA9IFROdW1iZXI+KGFtb3VudFR5cGU/OiAnbnVtYmVyJyB8ICdiaWdpbnQnKTogTGl0ZWNvaW5UcmFuc2FjdGlvbjxUTjI+IHtcbiAgICByZXR1cm4gbmV3IExpdGVjb2luVHJhbnNhY3Rpb248VE4yPih0aGlzLm5ldHdvcmssIHRoaXMsIGFtb3VudFR5cGUpO1xuICB9XG5cbiAgc3RhdGljIGZyb21CdWZmZXI8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oXG4gICAgYnVmZmVyOiBCdWZmZXIsXG4gICAgbm9TdHJpY3Q6IGJvb2xlYW4sXG4gICAgYW1vdW50VHlwZTogJ251bWJlcicgfCAnYmlnaW50JyA9ICdudW1iZXInLFxuICAgIG5ldHdvcms/OiBMaXRlY29pbk5ldHdvcmtcbiAgKTogTGl0ZWNvaW5UcmFuc2FjdGlvbjxUTnVtYmVyPiB7XG4gICAgaWYgKCFuZXR3b3JrKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYG11c3QgcHJvdmlkZSBuZXR3b3JrYCk7XG4gICAgfVxuXG4gICAgY29uc3QgYnVmZmVyUmVhZGVyID0gbmV3IEJ1ZmZlclJlYWRlcihidWZmZXIpO1xuICAgIGNvbnN0IHR4VmVyc2lvbiA9IGJ1ZmZlclJlYWRlci5yZWFkSW50MzIoKTtcbiAgICBjb25zdCBtYXJrZXIgPSBidWZmZXJSZWFkZXIucmVhZFVJbnQ4KCk7XG4gICAgY29uc3QgZmxhZyA9IGJ1ZmZlclJlYWRlci5yZWFkVUludDgoKTtcblxuICAgIGlmIChcbiAgICAgIG1hcmtlciA9PT0gTGl0ZWNvaW5UcmFuc2FjdGlvbi5BRFZBTkNFRF9UUkFOU0FDVElPTl9NQVJLRVIgJiZcbiAgICAgIGZsYWcgPT09IExpdGVjb2luVHJhbnNhY3Rpb24uTVdFQl9QRUdPVVRfVFhfRkxBR1xuICAgICkge1xuICAgICAgLy8gTGl0ZWNvaW4gaGFzIGFuIE1XRUIgYWR2YW5jZWQgdHJhbnNhY3Rpb24gbWFya2VyLiBTbGljZSBvdXQgdGhlIG1hcmtlciBhbmQgNXRoIHRvIGxhc3QgYnl0ZSAgYW5kIHJlYWQgbGlrZSBhIG5vcm1hbCB0cmFuc2FjdGlvblxuICAgICAgY29uc3QgYnVmZmVyV3JpdGVyID0gbmV3IEJ1ZmZlcldyaXRlcihCdWZmZXIuYWxsb2NVbnNhZmUoYnVmZmVyLmxlbmd0aCAtIDMpKTtcbiAgICAgIGJ1ZmZlcldyaXRlci53cml0ZVVJbnQzMih0eFZlcnNpb24pO1xuICAgICAgYnVmZmVyV3JpdGVyLndyaXRlU2xpY2UoYnVmZmVyLnNsaWNlKDYsIGJ1ZmZlci5sZW5ndGggLSA1KSk7XG4gICAgICBidWZmZXJXcml0ZXIud3JpdGVTbGljZShidWZmZXIuc2xpY2UoYnVmZmVyLmxlbmd0aCAtIDQsIGJ1ZmZlci5sZW5ndGgpKTtcbiAgICAgIHJldHVybiBzdXBlci5mcm9tQnVmZmVyKGJ1ZmZlcldyaXRlci5idWZmZXIsIG5vU3RyaWN0LCBhbW91bnRUeXBlLCBuZXR3b3JrKTtcbiAgICB9XG4gICAgcmV0dXJuIHN1cGVyLmZyb21CdWZmZXIoYnVmZmVyLCBub1N0cmljdCwgYW1vdW50VHlwZSwgbmV0d29yayk7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -13,4 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
17
  __exportStar(require("./LitecoinPsbt"), exports);
14
18
  __exportStar(require("./LitecoinTransaction"), exports);
15
19
  __exportStar(require("./LitecoinTransactionBuilder"), exports);
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vbGl0ZWNvaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsaURBQStCO0FBQy9CLHdEQUFzQztBQUN0QywrREFBNkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL0xpdGVjb2luUHNidCc7XG5leHBvcnQgKiBmcm9tICcuL0xpdGVjb2luVHJhbnNhY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9MaXRlY29pblRyYW5zYWN0aW9uQnVpbGRlcic7XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vbGl0ZWNvaW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUErQjtBQUMvQix3REFBc0M7QUFDdEMsK0RBQTZDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9MaXRlY29pblBzYnQnO1xuZXhwb3J0ICogZnJvbSAnLi9MaXRlY29pblRyYW5zYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vTGl0ZWNvaW5UcmFuc2FjdGlvbkJ1aWxkZXInO1xuIl19
@@ -4,11 +4,11 @@ import { Network } from '..';
4
4
  import { Triple, Tuple } from './types';
5
5
  export { scriptTypeForChain } from './wallet/chains';
6
6
  export declare const scriptTypeP2shP2pk = "p2shP2pk";
7
- export declare type ScriptTypeP2shP2pk = typeof scriptTypeP2shP2pk;
7
+ export type ScriptTypeP2shP2pk = typeof scriptTypeP2shP2pk;
8
8
  export declare const scriptTypes2Of3: readonly ["p2sh", "p2shP2wsh", "p2wsh", "p2tr", "p2trMusig2"];
9
- export declare type ScriptType2Of3 = (typeof scriptTypes2Of3)[number];
9
+ export type ScriptType2Of3 = (typeof scriptTypes2Of3)[number];
10
10
  export declare function isScriptType2Of3(t: string): t is ScriptType2Of3;
11
- export declare type ScriptType = ScriptTypeP2shP2pk | ScriptType2Of3;
11
+ export type ScriptType = ScriptTypeP2shP2pk | ScriptType2Of3;
12
12
  /**
13
13
  * @return true iff scriptType requires witness data
14
14
  */
@@ -24,12 +24,12 @@ export declare function isSupportedScriptType(network: Network, scriptType: Scri
24
24
  * @return string prevOut as defined in PREVOUT_TYPES (bitcoinjs-lib/.../transaction_builder.js)
25
25
  */
26
26
  export declare function scriptType2Of3AsPrevOutType(t: ScriptType2Of3): string;
27
- export declare type SpendableScript = {
27
+ export type SpendableScript = {
28
28
  scriptPubKey: Buffer;
29
29
  redeemScript?: Buffer;
30
30
  witnessScript?: Buffer;
31
31
  };
32
- export declare type SpendScriptP2tr = {
32
+ export type SpendScriptP2tr = {
33
33
  controlBlock: Buffer;
34
34
  witnessScript: Buffer;
35
35
  leafVersion: number;
@@ -38,7 +38,7 @@ export declare type SpendScriptP2tr = {
38
38
  /**
39
39
  * Tweak data holder for P2tr Musig2 key path.
40
40
  */
41
- export declare type KeyPathP2trMusig2 = {
41
+ export type KeyPathP2trMusig2 = {
42
42
  internalPubkey: Buffer;
43
43
  outputPubkey: Buffer;
44
44
  taptreeRoot: Buffer;
@@ -48,6 +48,7 @@ export declare type KeyPathP2trMusig2 = {
48
48
  * @param pubkey
49
49
  */
50
50
  export declare function createOutputScriptP2shP2pk(pubkey: Buffer): SpendableScript;
51
+ export declare function getOutputScript(scriptType: 'p2sh' | 'p2shP2wsh' | 'p2wsh', conditionScript: Buffer): Buffer;
51
52
  /**
52
53
  * Return scripts for 2-of-3 multisig output
53
54
  * @param pubkeys - the key triple for multisig
@@ -1 +1 @@
1
- {"version":3,"file":"outputScripts.d.ts","sourceRoot":"","sources":["../../../src/bitgo/outputScripts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"outputScripts.d.ts","sourceRoot":"","sources":["../../../src/bitgo/outputScripts.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createSpendScriptP2trMusig2 = exports.createSpendScriptP2tr = exports.createKeyPathP2trMusig2 = exports.getLeafHash = exports.createPaymentP2trMusig2 = exports.createPaymentP2tr = exports.checkTxHash = exports.checkTapMerkleRoot = exports.checkPlainPublicKey = exports.checkXOnlyPublicKey = exports.toXOnlyPublicKey = exports.createOutputScript2of3 = exports.createOutputScriptP2shP2pk = exports.scriptType2Of3AsPrevOutType = exports.isSupportedScriptType = exports.hasWitnessData = exports.isScriptType2Of3 = exports.scriptTypes2Of3 = exports.scriptTypeP2shP2pk = exports.scriptTypeForChain = void 0;
3
+ exports.createSpendScriptP2trMusig2 = exports.createSpendScriptP2tr = exports.createKeyPathP2trMusig2 = exports.getLeafHash = exports.createPaymentP2trMusig2 = exports.createPaymentP2tr = exports.checkTxHash = exports.checkTapMerkleRoot = exports.checkPlainPublicKey = exports.checkXOnlyPublicKey = exports.toXOnlyPublicKey = exports.createOutputScript2of3 = exports.getOutputScript = exports.createOutputScriptP2shP2pk = exports.scriptType2Of3AsPrevOutType = exports.isSupportedScriptType = exports.hasWitnessData = exports.isScriptType2Of3 = exports.scriptTypes2Of3 = exports.scriptTypeP2shP2pk = exports.scriptTypeForChain = void 0;
4
4
  const assert = require("assert");
5
5
  const bitcoinjs = require("bitcoinjs-lib");
6
6
  const __1 = require("..");
@@ -34,10 +34,10 @@ function isSupportedScriptType(network, scriptType) {
34
34
  return true;
35
35
  case 'p2shP2wsh':
36
36
  case 'p2wsh':
37
- return __1.supportsSegwit(network);
37
+ return (0, __1.supportsSegwit)(network);
38
38
  case 'p2tr':
39
39
  case 'p2trMusig2':
40
- return __1.supportsTaproot(network);
40
+ return (0, __1.supportsTaproot)(network);
41
41
  }
42
42
  /* istanbul ignore next */
43
43
  throw new Error(`unexpected script type ${scriptType}`);
@@ -80,6 +80,27 @@ function createOutputScriptP2shP2pk(pubkey) {
80
80
  };
81
81
  }
82
82
  exports.createOutputScriptP2shP2pk = createOutputScriptP2shP2pk;
83
+ function getOutputScript(scriptType, conditionScript) {
84
+ let output;
85
+ switch (scriptType) {
86
+ case 'p2sh':
87
+ ({ output } = bitcoinjs.payments.p2sh({ redeem: { output: conditionScript } }));
88
+ break;
89
+ case 'p2shP2wsh':
90
+ ({ output } = bitcoinjs.payments.p2sh({
91
+ redeem: { output: getOutputScript('p2wsh', conditionScript) },
92
+ }));
93
+ break;
94
+ case 'p2wsh':
95
+ ({ output } = bitcoinjs.payments.p2wsh({ redeem: { output: conditionScript } }));
96
+ break;
97
+ }
98
+ if (output === undefined) {
99
+ throw new Error(`output undefined`);
100
+ }
101
+ return output;
102
+ }
103
+ exports.getOutputScript = getOutputScript;
83
104
  /**
84
105
  * Return scripts for 2-of-3 multisig output
85
106
  * @param pubkeys - the key triple for multisig
@@ -93,7 +114,7 @@ function createOutputScript2of3(pubkeys, scriptType, network) {
93
114
  throw new Error(`unsupported script type ${scriptType} for network`);
94
115
  }
95
116
  }
96
- if (!types_1.isTriple(pubkeys)) {
117
+ if (!(0, types_1.isTriple)(pubkeys)) {
97
118
  throw new Error(`must provide pubkey triple`);
98
119
  }
99
120
  pubkeys.forEach((key) => {
@@ -108,30 +129,24 @@ function createOutputScript2of3(pubkeys, scriptType, network) {
108
129
  }
109
130
  const script2of3 = bitcoinjs.payments.p2ms({ m: 2, pubkeys });
110
131
  assert(script2of3.output);
111
- let scriptPubKey;
112
132
  let redeemScript;
113
133
  let witnessScript;
114
134
  switch (scriptType) {
115
135
  case 'p2sh':
116
136
  redeemScript = script2of3;
117
- scriptPubKey = bitcoinjs.payments.p2sh({ redeem: script2of3 });
118
137
  break;
119
138
  case 'p2shP2wsh':
120
139
  witnessScript = script2of3;
121
140
  redeemScript = bitcoinjs.payments.p2wsh({ redeem: script2of3 });
122
- scriptPubKey = bitcoinjs.payments.p2sh({ redeem: redeemScript });
123
141
  break;
124
142
  case 'p2wsh':
125
143
  witnessScript = script2of3;
126
- scriptPubKey = bitcoinjs.payments.p2wsh({ redeem: witnessScript });
127
144
  break;
128
145
  default:
129
146
  throw new Error(`unknown multisig script type ${scriptType}`);
130
147
  }
131
- assert(scriptPubKey);
132
- assert(scriptPubKey.output);
133
148
  return {
134
- scriptPubKey: scriptPubKey.output,
149
+ scriptPubKey: getOutputScript(scriptType, script2of3.output),
135
150
  redeemScript: redeemScript === null || redeemScript === void 0 ? void 0 : redeemScript.output,
136
151
  witnessScript: witnessScript === null || witnessScript === void 0 ? void 0 : witnessScript.output,
137
152
  };
@@ -249,8 +264,8 @@ function createKeyPathP2trMusig2(pubkeys) {
249
264
  assert(payment.tapTree);
250
265
  return {
251
266
  internalPubkey: payment.internalPubkey,
252
- outputPubkey: taproot_1.getTweakedOutputKey(payment),
253
- taptreeRoot: taproot_1.getDepthFirstTaptree(payment.tapTree).root,
267
+ outputPubkey: (0, taproot_1.getTweakedOutputKey)(payment),
268
+ taptreeRoot: (0, taproot_1.getDepthFirstTaptree)(payment.tapTree).root,
254
269
  };
255
270
  }
256
271
  exports.createKeyPathP2trMusig2 = createKeyPathP2trMusig2;
@@ -302,4 +317,4 @@ function createTaprootScript2of3(scriptType, pubkeys) {
302
317
  scriptPubKey: output,
303
318
  };
304
319
  }
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0U2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9vdXRwdXRTY3JpcHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQUNqQywyQ0FBMkM7QUFFM0MsMEJBQXFGO0FBRXJGLG1DQUFrRDtBQUVsRCw0Q0FBNkM7QUFDN0Msd0NBQXVFO0FBRXZFLDBDQUFxRDtBQUE1Qyw0R0FBQSxrQkFBa0IsT0FBQTtBQUVkLFFBQUEsa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBR2hDLFFBQUEsZUFBZSxHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBVSxDQUFDO0FBRzdGLFNBQWdCLGdCQUFnQixDQUFDLENBQVM7SUFDeEMsT0FBTyx1QkFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFtQixDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUZELDRDQUVDO0FBSUQ7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsVUFBc0I7SUFDbkQsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMzRSxDQUFDO0FBRkQsd0NBRUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsT0FBZ0IsRUFBRSxVQUFzQjtJQUM1RSxRQUFRLFVBQVUsRUFBRTtRQUNsQixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssVUFBVTtZQUNiLE9BQU8sSUFBSSxDQUFDO1FBQ2QsS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxrQkFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLEtBQUssTUFBTSxDQUFDO1FBQ1osS0FBSyxZQUFZO1lBQ2YsT0FBTyxtQkFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ25DO0lBRUQsMEJBQTBCO0lBQzFC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TSxDQUFDLE1BQU0sQ0FBQztJQUN6QyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRXBDLE1BQU0sa0JBQWtCLEdBQUcsV0FBTyxDQUFDLGlCQUFpQixDQUFDLGVBQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUMzRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsa0JBQWtCLENBQUM7SUFDM0MsTUFBTSxRQUFRLEdBQUcsV0FBTyxDQUFDLGNBQWMsQ0FBQyxlQUFNLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFaEYsT0FBTztRQUNMLFlBQVk7UUFDWixhQUFhLEVBQUUsVUFBVTtRQUN6QixXQUFXO1FBQ1gsUUFBUTtLQUNULENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsT0FBdUIsRUFBRSxjQUE2QjtJQUMxRixPQUFPLDJCQUEyQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUZELHNEQUVDO0FBRUQsU0FBZ0IsMkJBQTJCLENBQUMsT0FBdUIsRUFBRSxjQUE2QjtJQUNoRyxPQUFPLDJCQUEyQixDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUZELGtFQUVDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsU0FBUyx1QkFBdUIsQ0FBQyxVQUFpQyxFQUFFLE9BQXVCO0lBQ3pGLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyx1QkFBdUIsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoQyxPQUFPO1FBQ0wsWUFBWSxFQUFFLE1BQU07S0FDckIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIGJpdGNvaW5qcyBmcm9tICdiaXRjb2luanMtbGliJztcblxuaW1wb3J0IHsgTmV0d29yaywgcDJ0clBheW1lbnRzLCBzdXBwb3J0c1NlZ3dpdCwgc3VwcG9ydHNUYXByb290LCB0YXByb290IH0gZnJvbSAnLi4nO1xuXG5pbXBvcnQgeyBpc1RyaXBsZSwgVHJpcGxlLCBUdXBsZSB9IGZyb20gJy4vdHlwZXMnO1xuXG5pbXBvcnQgeyBlY2MgYXMgZWNjTGliIH0gZnJvbSAnLi4vbm9ibGVfZWNjJztcbmltcG9ydCB7IGdldERlcHRoRmlyc3RUYXB0cmVlLCBnZXRUd2Vha2VkT3V0cHV0S2V5IH0gZnJvbSAnLi4vdGFwcm9vdCc7XG5cbmV4cG9ydCB7IHNjcmlwdFR5cGVGb3JDaGFpbiB9IGZyb20gJy4vd2FsbGV0L2NoYWlucyc7XG5cbmV4cG9ydCBjb25zdCBzY3JpcHRUeXBlUDJzaFAycGsgPSAncDJzaFAycGsnO1xuZXhwb3J0IHR5cGUgU2NyaXB0VHlwZVAyc2hQMnBrID0gdHlwZW9mIHNjcmlwdFR5cGVQMnNoUDJwaztcblxuZXhwb3J0IGNvbnN0IHNjcmlwdFR5cGVzMk9mMyA9IFsncDJzaCcsICdwMnNoUDJ3c2gnLCAncDJ3c2gnLCAncDJ0cicsICdwMnRyTXVzaWcyJ10gYXMgY29uc3Q7XG5leHBvcnQgdHlwZSBTY3JpcHRUeXBlMk9mMyA9ICh0eXBlb2Ygc2NyaXB0VHlwZXMyT2YzKVtudW1iZXJdO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNTY3JpcHRUeXBlMk9mMyh0OiBzdHJpbmcpOiB0IGlzIFNjcmlwdFR5cGUyT2YzIHtcbiAgcmV0dXJuIHNjcmlwdFR5cGVzMk9mMy5pbmNsdWRlcyh0IGFzIFNjcmlwdFR5cGUyT2YzKTtcbn1cblxuZXhwb3J0IHR5cGUgU2NyaXB0VHlwZSA9IFNjcmlwdFR5cGVQMnNoUDJwayB8IFNjcmlwdFR5cGUyT2YzO1xuXG4vKipcbiAqIEByZXR1cm4gdHJ1ZSBpZmYgc2NyaXB0VHlwZSByZXF1aXJlcyB3aXRuZXNzIGRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1dpdG5lc3NEYXRhKHNjcmlwdFR5cGU6IFNjcmlwdFR5cGUpOiBzY3JpcHRUeXBlIGlzICdwMnNoUDJ3c2gnIHwgJ3Ayd3NoJyB8ICdwMnRyJyB8ICdwMnRyTXVzaWcyJyB7XG4gIHJldHVybiBbJ3Ayc2hQMndzaCcsICdwMndzaCcsICdwMnRyJywgJ3AydHJNdXNpZzInXS5pbmNsdWRlcyhzY3JpcHRUeXBlKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0gbmV0d29ya1xuICogQHBhcmFtIHNjcmlwdFR5cGVcbiAqIEByZXR1cm4gdHJ1ZSBpZmYgc2NyaXB0IHR5cGUgaXMgc3VwcG9ydGVkIGZvciBuZXR3b3JrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1N1cHBvcnRlZFNjcmlwdFR5cGUobmV0d29yazogTmV0d29yaywgc2NyaXB0VHlwZTogU2NyaXB0VHlwZSk6IGJvb2xlYW4ge1xuICBzd2l0Y2ggKHNjcmlwdFR5cGUpIHtcbiAgICBjYXNlICdwMnNoJzpcbiAgICBjYXNlICdwMnNoUDJwayc6XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICBjYXNlICdwMnNoUDJ3c2gnOlxuICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICAgIHJldHVybiBzdXBwb3J0c1NlZ3dpdChuZXR3b3JrKTtcbiAgICBjYXNlICdwMnRyJzpcbiAgICBjYXNlICdwMnRyTXVzaWcyJzpcbiAgICAgIHJldHVybiBzdXBwb3J0c1RhcHJvb3QobmV0d29yayk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgc2NyaXB0IHR5cGUgJHtzY3JpcHRUeXBlfWApO1xufVxuXG4vKipcbiAqIEBwYXJhbSB0XG4gKiBAcmV0dXJuIHN0cmluZyBwcmV2T3V0IGFzIGRlZmluZWQgaW4gUFJFVk9VVF9UWVBFUyAoYml0Y29pbmpzLWxpYi8uLi4vdHJhbnNhY3Rpb25fYnVpbGRlci5qcylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjcmlwdFR5cGUyT2YzQXNQcmV2T3V0VHlwZSh0OiBTY3JpcHRUeXBlMk9mMyk6IHN0cmluZyB7XG4gIHN3aXRjaCAodCkge1xuICAgIGNhc2UgJ3Ayc2gnOlxuICAgICAgcmV0dXJuICdwMnNoLXAybXMnO1xuICAgIGNhc2UgJ3Ayc2hQMndzaCc6XG4gICAgICByZXR1cm4gJ3Ayc2gtcDJ3c2gtcDJtcyc7XG4gICAgY2FzZSAncDJ3c2gnOlxuICAgICAgcmV0dXJuICdwMndzaC1wMm1zJztcbiAgICBjYXNlICdwMnRyJzpcbiAgICAgIHJldHVybiAncDJ0ci1wMm5zJztcbiAgICBjYXNlICdwMnRyTXVzaWcyJzpcbiAgICAgIHJldHVybiAncDJ0cic7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIHNjcmlwdCB0eXBlICR7dH1gKTtcbn1cblxuZXhwb3J0IHR5cGUgU3BlbmRhYmxlU2NyaXB0ID0ge1xuICBzY3JpcHRQdWJLZXk6IEJ1ZmZlcjtcbiAgcmVkZWVtU2NyaXB0PzogQnVmZmVyO1xuICB3aXRuZXNzU2NyaXB0PzogQnVmZmVyO1xufTtcblxuZXhwb3J0IHR5cGUgU3BlbmRTY3JpcHRQMnRyID0ge1xuICBjb250cm9sQmxvY2s6IEJ1ZmZlcjtcbiAgd2l0bmVzc1NjcmlwdDogQnVmZmVyO1xuICBsZWFmVmVyc2lvbjogbnVtYmVyO1xuICBsZWFmSGFzaDogQnVmZmVyO1xufTtcblxuLyoqXG4gKiBUd2VhayBkYXRhIGhvbGRlciBmb3IgUDJ0ciBNdXNpZzIga2V5IHBhdGguXG4gKi9cbmV4cG9ydCB0eXBlIEtleVBhdGhQMnRyTXVzaWcyID0ge1xuICBpbnRlcm5hbFB1YmtleTogQnVmZmVyO1xuICBvdXRwdXRQdWJrZXk6IEJ1ZmZlcjtcbiAgdGFwdHJlZVJvb3Q6IEJ1ZmZlcjtcbn07XG5cbi8qKlxuICogUmV0dXJuIHNjcmlwdHMgZm9yIHAyc2gtcDJwayAodXNlZCBmb3IgQkNIL0JTViByZXBsYXkgcHJvdGVjdGlvbilcbiAqIEBwYXJhbSBwdWJrZXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU91dHB1dFNjcmlwdFAyc2hQMnBrKHB1YmtleTogQnVmZmVyKTogU3BlbmRhYmxlU2NyaXB0IHtcbiAgY29uc3QgcDJwayA9IGJpdGNvaW5qcy5wYXltZW50cy5wMnBrKHsgcHVia2V5IH0pO1xuICBjb25zdCBwMnNoID0gYml0Y29pbmpzLnBheW1lbnRzLnAyc2goeyByZWRlZW06IHAycGsgfSk7XG4gIGlmICghcDJzaC5vdXRwdXQgfHwgIXAycGsub3V0cHV0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHN0YXRlYCk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBzY3JpcHRQdWJLZXk6IHAyc2gub3V0cHV0LFxuICAgIHJlZGVlbVNjcmlwdDogcDJway5vdXRwdXQsXG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJuIHNjcmlwdHMgZm9yIDItb2YtMyBtdWx0aXNpZyBvdXRwdXRcbiAqIEBwYXJhbSBwdWJrZXlzIC0gdGhlIGtleSB0cmlwbGUgZm9yIG11bHRpc2lnXG4gKiBAcGFyYW0gc2NyaXB0VHlwZVxuICogQHBhcmFtIG5ldHdvcmsgLSBpZiBzZXQsIHBlcmZvcm1zIHNhbml0eSBjaGVjayBmb3Igc2NyaXB0VHlwZSBzdXBwb3J0XG4gKiBAcmV0dXJucyB7e3JlZGVlbVNjcmlwdCwgd2l0bmVzc1NjcmlwdCwgc2NyaXB0UHViS2V5fX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU91dHB1dFNjcmlwdDJvZjMoXG4gIHB1YmtleXM6IEJ1ZmZlcltdLFxuICBzY3JpcHRUeXBlOiBTY3JpcHRUeXBlMk9mMyxcbiAgbmV0d29yaz86IE5ldHdvcmtcbik6IFNwZW5kYWJsZVNjcmlwdCB7XG4gIGlmIChuZXR3b3JrKSB7XG4gICAgaWYgKCFpc1N1cHBvcnRlZFNjcmlwdFR5cGUobmV0d29yaywgc2NyaXB0VHlwZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgc2NyaXB0IHR5cGUgJHtzY3JpcHRUeXBlfSBmb3IgbmV0d29ya2ApO1xuICAgIH1cbiAgfVxuXG4gIGlmICghaXNUcmlwbGUocHVia2V5cykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG11c3QgcHJvdmlkZSBwdWJrZXkgdHJpcGxlYCk7XG4gIH1cblxuICBwdWJrZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGlmIChrZXkubGVuZ3RoICE9PSAzMykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmV4cGVjdGVkIGtleSBsZW5ndGggJHtrZXkubGVuZ3RofS4gTXVzdCB1c2UgY29tcHJlc3NlZCBrZXlzLmApO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMnRyJyB8fCBzY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMicpIHtcbiAgICAvLyBwMnRyL3AydHJNdXNpZzIgYWRkcmVzc2VzIHVzZSBhIGNvbWJpbmF0aW9uIG9mIDIgb2YgMiBtdWx0aXNpZyBzY3JpcHRzIGRpc3RpbmN0IGZyb21cbiAgICAvLyB0aGUgMiBvZiAzIG11bHRpc2lnIHVzZWQgZm9yIG90aGVyIHNjcmlwdCB0eXBlc1xuICAgIHJldHVybiBjcmVhdGVUYXByb290U2NyaXB0Mm9mMyhzY3JpcHRUeXBlLCBwdWJrZXlzKTtcbiAgfVxuXG4gIGNvbnN0IHNjcmlwdDJvZjMgPSBiaXRjb2luanMucGF5bWVudHMucDJtcyh7IG06IDIsIHB1YmtleXMgfSk7XG4gIGFzc2VydChzY3JpcHQyb2YzLm91dHB1dCk7XG5cbiAgbGV0IHNjcmlwdFB1YktleTogYml0Y29pbmpzLlBheW1lbnQ7XG4gIGxldCByZWRlZW1TY3JpcHQ6IGJpdGNvaW5qcy5QYXltZW50IHwgdW5kZWZpbmVkO1xuICBsZXQgd2l0bmVzc1NjcmlwdDogYml0Y29pbmpzLlBheW1lbnQgfCB1bmRlZmluZWQ7XG4gIHN3aXRjaCAoc2NyaXB0VHlwZSkge1xuICAgIGNhc2UgJ3Ayc2gnOlxuICAgICAgcmVkZWVtU2NyaXB0ID0gc2NyaXB0Mm9mMztcbiAgICAgIHNjcmlwdFB1YktleSA9IGJpdGNvaW5qcy5wYXltZW50cy5wMnNoKHsgcmVkZWVtOiBzY3JpcHQyb2YzIH0pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncDJzaFAyd3NoJzpcbiAgICAgIHdpdG5lc3NTY3JpcHQgPSBzY3JpcHQyb2YzO1xuICAgICAgcmVkZWVtU2NyaXB0ID0gYml0Y29pbmpzLnBheW1lbnRzLnAyd3NoKHsgcmVkZWVtOiBzY3JpcHQyb2YzIH0pO1xuICAgICAgc2NyaXB0UHViS2V5ID0gYml0Y29pbmpzLnBheW1lbnRzLnAyc2goeyByZWRlZW06IHJlZGVlbVNjcmlwdCB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICAgIHdpdG5lc3NTY3JpcHQgPSBzY3JpcHQyb2YzO1xuICAgICAgc2NyaXB0UHViS2V5ID0gYml0Y29pbmpzLnBheW1lbnRzLnAyd3NoKHsgcmVkZWVtOiB3aXRuZXNzU2NyaXB0IH0pO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBtdWx0aXNpZyBzY3JpcHQgdHlwZSAke3NjcmlwdFR5cGV9YCk7XG4gIH1cblxuICBhc3NlcnQoc2NyaXB0UHViS2V5KTtcbiAgYXNzZXJ0KHNjcmlwdFB1YktleS5vdXRwdXQpO1xuXG4gIHJldHVybiB7XG4gICAgc2NyaXB0UHViS2V5OiBzY3JpcHRQdWJLZXkub3V0cHV0LFxuICAgIHJlZGVlbVNjcmlwdDogcmVkZWVtU2NyaXB0Py5vdXRwdXQsXG4gICAgd2l0bmVzc1NjcmlwdDogd2l0bmVzc1NjcmlwdD8ub3V0cHV0LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9YT25seVB1YmxpY0tleShiOiBCdWZmZXIpOiBCdWZmZXIge1xuICBpZiAoYi5sZW5ndGggPT09IDMzKSB7XG4gICAgcmV0dXJuIGIuc2xpY2UoMSk7XG4gIH1cbiAgaWYgKGIubGVuZ3RoID09PSAzMikge1xuICAgIHJldHVybiBiO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBrZXkgc2l6ZSAke2IubGVuZ3RofWApO1xufVxuXG5mdW5jdGlvbiBjaGVja1NpemUoYjogQnVmZmVyLCB0YXJnZXRTaXplOiBudW1iZXIsIG5hbWU6IHN0cmluZyk6IEJ1ZmZlciB7XG4gIGlmIChiLmxlbmd0aCA9PT0gdGFyZ2V0U2l6ZSkge1xuICAgIHJldHVybiBiO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBzaXplICR7Yi5sZW5ndGh9LiBNdXN0IHVzZSAke25hbWV9LmApO1xufVxuXG4vKipcbiAqIFZhbGlkYXRlcyBzaXplIG9mIHRoZSBwdWIga2V5IGZvciAzMiBieXRlcyBhbmQgcmV0dXJucyB0aGUgc2FtZSBpZmYgdHJ1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrWE9ubHlQdWJsaWNLZXkoYjogQnVmZmVyKTogQnVmZmVyIHtcbiAgcmV0dXJuIGNoZWNrU2l6ZShiLCAzMiwgJ3gtb25seSBrZXknKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgc2l6ZSBvZiB0aGUgcHViIGtleSBmb3IgMzIgYnl0ZXMgYW5kIHJldHVybnMgdGhlIHNhbWUgaWZmIHRydWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1BsYWluUHVibGljS2V5KGI6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIHJldHVybiBjaGVja1NpemUoYiwgMzMsICdwbGFpbiBrZXknKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrVGFwTWVya2xlUm9vdChiOiBCdWZmZXIpOiBCdWZmZXIge1xuICByZXR1cm4gY2hlY2tTaXplKGIsIDMyLCAndGFwIG1lcmtsZSByb290Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1R4SGFzaChiOiBCdWZmZXIpOiBCdWZmZXIge1xuICByZXR1cm4gY2hlY2tTaXplKGIsIDMyLCAndHggaGFzaCcpO1xufVxuXG5mdW5jdGlvbiBnZXRUYXB0cmVlS2V5Q29tYmluYXRpb25zKHNjcmlwdFR5cGU6ICdwMnRyJyB8ICdwMnRyTXVzaWcyJywga2V5czogVHJpcGxlPEJ1ZmZlcj4pOiBUdXBsZTxCdWZmZXI+W10ge1xuICBjb25zdCBbdXNlcktleSwgYmFja3VwS2V5LCBiaXRHb0tleV0gPSBrZXlzLm1hcCgoaykgPT4gdG9YT25seVB1YmxpY0tleShrKSk7XG4gIHJldHVybiBzY3JpcHRUeXBlID09PSAncDJ0cidcbiAgICA/IFtcbiAgICAgICAgW3VzZXJLZXksIGJpdEdvS2V5XSxcbiAgICAgICAgW3VzZXJLZXksIGJhY2t1cEtleV0sXG4gICAgICAgIFtiYWNrdXBLZXksIGJpdEdvS2V5XSxcbiAgICAgIF1cbiAgICA6IFtcbiAgICAgICAgW3VzZXJLZXksIGJhY2t1cEtleV0sXG4gICAgICAgIFtiYWNrdXBLZXksIGJpdEdvS2V5XSxcbiAgICAgIF07XG59XG5cbmZ1bmN0aW9uIGdldEtleVBhdGhDb21iaW5hdGlvbihzY3JpcHRUeXBlOiAncDJ0cicgfCAncDJ0ck11c2lnMicsIGtleXM6IFRyaXBsZTxCdWZmZXI+KTogVHVwbGU8QnVmZmVyPiB7XG4gIGNvbnN0IHNhbml0aXplUHVibGljS2V5ID0gc2NyaXB0VHlwZSA9PT0gJ3AydHInID8gdG9YT25seVB1YmxpY0tleSA6IGNoZWNrUGxhaW5QdWJsaWNLZXk7XG4gIHJldHVybiBbc2FuaXRpemVQdWJsaWNLZXkoa2V5c1swXSksIHNhbml0aXplUHVibGljS2V5KGtleXNbMl0pXTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVkZWVtSW5kZXgoa2V5Q29tYmluYXRpb25zOiBbQnVmZmVyLCBCdWZmZXJdW10sIHNpZ25lcjogQnVmZmVyLCBjb3NpZ25lcjogQnVmZmVyKTogbnVtYmVyIHtcbiAgc2lnbmVyID0gdG9YT25seVB1YmxpY0tleShzaWduZXIpO1xuICBjb3NpZ25lciA9IHRvWE9ubHlQdWJsaWNLZXkoY29zaWduZXIpO1xuICBjb25zdCBpID0ga2V5Q29tYmluYXRpb25zLmZpbmRJbmRleCgoW2EsIGJdKSA9PiB7XG4gICAgaWYgKGEubGVuZ3RoICE9PSBzaWduZXIubGVuZ3RoIHx8IGIubGVuZ3RoICE9PSBjb3NpZ25lci5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBjb21wYXJpc29uYCk7XG4gICAgfVxuICAgIHJldHVybiAoYS5lcXVhbHMoc2lnbmVyKSAmJiBiLmVxdWFscyhjb3NpZ25lcikpIHx8IChhLmVxdWFscyhjb3NpZ25lcikgJiYgYi5lcXVhbHMoc2lnbmVyKSk7XG4gIH0pO1xuICBpZiAoMCA8PSBpKSB7XG4gICAgcmV0dXJuIGk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBjb3VsZCBub3QgZmluZCBzaW5nZXIvY29zaWduZXIgY29tYmluYXRpb25gKTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUGF5bWVudFAydHJDb21tb24oXG4gIHNjcmlwdFR5cGU6ICdwMnRyJyB8ICdwMnRyTXVzaWcyJyxcbiAgcHVia2V5czogVHJpcGxlPEJ1ZmZlcj4sXG4gIHJlZGVlbUluZGV4PzogbnVtYmVyIHwgeyBzaWduZXI6IEJ1ZmZlcjsgY29zaWduZXI6IEJ1ZmZlciB9XG4pOiBiaXRjb2luanMuUGF5bWVudCB7XG4gIGNvbnN0IGtleUNvbWJpbmF0aW9uczJvZjIgPSBnZXRUYXB0cmVlS2V5Q29tYmluYXRpb25zKHNjcmlwdFR5cGUsIHB1YmtleXMpO1xuICBpZiAodHlwZW9mIHJlZGVlbUluZGV4ID09PSAnb2JqZWN0Jykge1xuICAgIHJlZGVlbUluZGV4ID0gZ2V0UmVkZWVtSW5kZXgoa2V5Q29tYmluYXRpb25zMm9mMiwgcmVkZWVtSW5kZXguc2lnbmVyLCByZWRlZW1JbmRleC5jb3NpZ25lcik7XG4gIH1cbiAgY29uc3QgcmVkZWVtcyA9IGtleUNvbWJpbmF0aW9uczJvZjIubWFwKChwdWJrZXlzLCBpbmRleCkgPT5cbiAgICBwMnRyUGF5bWVudHMucDJ0cl9ucyhcbiAgICAgIHtcbiAgICAgICAgcHVia2V5cyxcbiAgICAgICAgZGVwdGg6IHNjcmlwdFR5cGUgPT09ICdwMnRyTXVzaWcyJyB8fCBpbmRleCA9PT0gMCA/IDEgOiAyLFxuICAgICAgfSxcbiAgICAgIHsgZWNjTGliIH1cbiAgICApXG4gICk7XG5cbiAgcmV0dXJuIHAydHJQYXltZW50cy5wMnRyKFxuICAgIHtcbiAgICAgIHB1YmtleXM6IGdldEtleVBhdGhDb21iaW5hdGlvbihzY3JpcHRUeXBlLCBwdWJrZXlzKSxcbiAgICAgIHJlZGVlbXMsXG4gICAgICByZWRlZW1JbmRleCxcbiAgICB9LFxuICAgIHsgZWNjTGliIH1cbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBheW1lbnRQMnRyKFxuICBwdWJrZXlzOiBUcmlwbGU8QnVmZmVyPixcbiAgcmVkZWVtSW5kZXg/OiBudW1iZXIgfCB7IHNpZ25lcjogQnVmZmVyOyBjb3NpZ25lcjogQnVmZmVyIH1cbik6IGJpdGNvaW5qcy5QYXltZW50IHtcbiAgcmV0dXJuIGNyZWF0ZVBheW1lbnRQMnRyQ29tbW9uKCdwMnRyJywgcHVia2V5cywgcmVkZWVtSW5kZXgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUGF5bWVudFAydHJNdXNpZzIoXG4gIHB1YmtleXM6IFRyaXBsZTxCdWZmZXI+LFxuICByZWRlZW1JbmRleD86IG51bWJlciB8IHsgc2lnbmVyOiBCdWZmZXI7IGNvc2lnbmVyOiBCdWZmZXIgfVxuKTogYml0Y29pbmpzLlBheW1lbnQge1xuICByZXR1cm4gY3JlYXRlUGF5bWVudFAydHJDb21tb24oJ3AydHJNdXNpZzInLCBwdWJrZXlzLCByZWRlZW1JbmRleCk7XG59XG5cbmZ1bmN0aW9uIGdldExlYWZIYXNoQ29tbW9uKFxuICBzY3JpcHRUeXBlOiAncDJ0cicgfCAncDJ0ck11c2lnMicsXG4gIHBhcmFtczogYml0Y29pbmpzLlBheW1lbnQgfCB7IHB1YmxpY0tleXM6IFRyaXBsZTxCdWZmZXI+OyBzaWduZXI6IEJ1ZmZlcjsgY29zaWduZXI6IEJ1ZmZlciB9XG4pOiBCdWZmZXIge1xuICBpZiAoJ3B1YmxpY0tleXMnIGluIHBhcmFtcykge1xuICAgIHBhcmFtcyA9IGNyZWF0ZVBheW1lbnRQMnRyQ29tbW9uKHNjcmlwdFR5cGUsIHBhcmFtcy5wdWJsaWNLZXlzLCBwYXJhbXMpO1xuICB9XG4gIGNvbnN0IHsgb3V0cHV0LCBjb250cm9sQmxvY2ssIHJlZGVlbSB9ID0gcGFyYW1zO1xuICBpZiAoIW91dHB1dCB8fCAhY29udHJvbEJsb2NrIHx8ICFyZWRlZW0gfHwgIXJlZGVlbS5vdXRwdXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgc3RhdGVgKTtcbiAgfVxuICByZXR1cm4gdGFwcm9vdC5nZXRUYXBsZWFmSGFzaChlY2NMaWIsIGNvbnRyb2xCbG9jaywgcmVkZWVtLm91dHB1dCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMZWFmSGFzaChcbiAgcGFyYW1zOiBiaXRjb2luanMuUGF5bWVudCB8IHsgcHVibGljS2V5czogVHJpcGxlPEJ1ZmZlcj47IHNpZ25lcjogQnVmZmVyOyBjb3NpZ25lcjogQnVmZmVyIH1cbik6IEJ1ZmZlciB7XG4gIHJldHVybiBnZXRMZWFmSGFzaENvbW1vbigncDJ0cicsIHBhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVLZXlQYXRoUDJ0ck11c2lnMihwdWJrZXlzOiBUcmlwbGU8QnVmZmVyPik6IEtleVBhdGhQMnRyTXVzaWcyIHtcbiAgY29uc3QgcGF5bWVudCA9IGNyZWF0ZVBheW1lbnRQMnRyQ29tbW9uKCdwMnRyTXVzaWcyJywgcHVia2V5cyk7XG4gIGFzc2VydChwYXltZW50LmludGVybmFsUHVia2V5KTtcbiAgYXNzZXJ0KHBheW1lbnQudGFwVHJlZSk7XG4gIHJldHVybiB7XG4gICAgaW50ZXJuYWxQdWJrZXk6IHBheW1lbnQuaW50ZXJuYWxQdWJrZXksXG4gICAgb3V0cHV0UHVia2V5OiBnZXRUd2Vha2VkT3V0cHV0S2V5KHBheW1lbnQpLFxuICAgIHRhcHRyZWVSb290OiBnZXREZXB0aEZpcnN0VGFwdHJlZShwYXltZW50LnRhcFRyZWUpLnJvb3QsXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVNwZW5kU2NyaXB0UDJ0ckNvbW1vbihcbiAgc2NyaXB0VHlwZTogJ3AydHInIHwgJ3AydHJNdXNpZzInLFxuICBwdWJrZXlzOiBUcmlwbGU8QnVmZmVyPixcbiAga2V5Q29tYmluYXRpb246IFR1cGxlPEJ1ZmZlcj5cbik6IFNwZW5kU2NyaXB0UDJ0ciB7XG4gIGNvbnN0IGtleUNvbWJpbmF0aW9ucyA9IGdldFRhcHRyZWVLZXlDb21iaW5hdGlvbnMoc2NyaXB0VHlwZSwgcHVia2V5cyk7XG4gIGNvbnN0IFthLCBiXSA9IGtleUNvbWJpbmF0aW9uLm1hcCgoaykgPT4gdG9YT25seVB1YmxpY0tleShrKSk7XG4gIGNvbnN0IHJlZGVlbUluZGV4ID0ga2V5Q29tYmluYXRpb25zLmZpbmRJbmRleChcbiAgICAoW2MsIGRdKSA9PiAoYS5lcXVhbHMoYykgJiYgYi5lcXVhbHMoZCkpIHx8IChhLmVxdWFscyhkKSAmJiBiLmVxdWFscyhjKSlcbiAgKTtcblxuICBpZiAocmVkZWVtSW5kZXggPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBjb3VsZCBub3QgZmluZCByZWRlZW1JbmRleCBmb3Iga2V5IGNvbWJpbmF0aW9uYCk7XG4gIH1cblxuICBjb25zdCBwYXltZW50ID0gY3JlYXRlUGF5bWVudFAydHJDb21tb24oc2NyaXB0VHlwZSwgcHVia2V5cywgcmVkZWVtSW5kZXgpO1xuICBjb25zdCB7IGNvbnRyb2xCbG9jayB9ID0gcGF5bWVudDtcbiAgYXNzZXJ0KEJ1ZmZlci5pc0J1ZmZlcihjb250cm9sQmxvY2spKTtcblxuICBhc3NlcnQocGF5bWVudC5yZWRlZW0pO1xuICBjb25zdCBsZWFmU2NyaXB0ID0gcGF5bWVudC5yZWRlZW0ub3V0cHV0O1xuICBhc3NlcnQoQnVmZmVyLmlzQnVmZmVyKGxlYWZTY3JpcHQpKTtcblxuICBjb25zdCBwYXJzZWRDb250cm9sQmxvY2sgPSB0YXByb290LnBhcnNlQ29udHJvbEJsb2NrKGVjY0xpYiwgY29udHJvbEJsb2NrKTtcbiAgY29uc3QgeyBsZWFmVmVyc2lvbiB9ID0gcGFyc2VkQ29udHJvbEJsb2NrO1xuICBjb25zdCBsZWFmSGFzaCA9IHRhcHJvb3QuZ2V0VGFwbGVhZkhhc2goZWNjTGliLCBwYXJzZWRDb250cm9sQmxvY2ssIGxlYWZTY3JpcHQpO1xuXG4gIHJldHVybiB7XG4gICAgY29udHJvbEJsb2NrLFxuICAgIHdpdG5lc3NTY3JpcHQ6IGxlYWZTY3JpcHQsXG4gICAgbGVhZlZlcnNpb24sXG4gICAgbGVhZkhhc2gsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTcGVuZFNjcmlwdFAydHIocHVia2V5czogVHJpcGxlPEJ1ZmZlcj4sIGtleUNvbWJpbmF0aW9uOiBUdXBsZTxCdWZmZXI+KTogU3BlbmRTY3JpcHRQMnRyIHtcbiAgcmV0dXJuIGNyZWF0ZVNwZW5kU2NyaXB0UDJ0ckNvbW1vbigncDJ0cicsIHB1YmtleXMsIGtleUNvbWJpbmF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNwZW5kU2NyaXB0UDJ0ck11c2lnMihwdWJrZXlzOiBUcmlwbGU8QnVmZmVyPiwga2V5Q29tYmluYXRpb246IFR1cGxlPEJ1ZmZlcj4pOiBTcGVuZFNjcmlwdFAydHIge1xuICByZXR1cm4gY3JlYXRlU3BlbmRTY3JpcHRQMnRyQ29tbW9uKCdwMnRyTXVzaWcyJywgcHVia2V5cywga2V5Q29tYmluYXRpb24pO1xufVxuXG4vKipcbiAqIENyZWF0ZXMgYW5kIHJldHVybnMgYSB0YXByb290IG91dHB1dCBzY3JpcHQgdXNpbmcgdGhlIHVzZXIrYml0Z28ga2V5cyBmb3IgdGhlIGFnZ3JlZ2F0ZVxuICogcHVibGljIGtleSB1c2luZyBNdVNpZzIgYW5kIGEgdGFwdHJlZSBjb250YWluaW5nIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nIGRlcGVuZHMgb24gc2NyaXB0VHlwZS5cbiAqIHAydHIgdHlwZTogYSB1c2VyK2JpdGdvIDItb2YtMiBzY3JpcHQgYXQgdGhlIGZpcnN0IGRlcHRoIGxldmVsIG9mIHRoZSB0cmVlIGFuZCB1c2VyK2JhY2t1cFxuICogYW5kIGJpdGdvK2JhY2t1cCAyLW9mLTIgc2NyaXB0cyBvbmUgbGV2ZWwgZGVlcGVyLlxuICogcDJ0ck11c2lnMiB0eXBlOiB1c2VyK2JhY2t1cCBhbmQgYml0Z28rYmFja3VwIDItb2YtMiBzY3JpcHRzIGF0IHRoZSBmaXJzdCBkZXB0aCBsZXZlbCBvZiB0aGVcbiAqIHRyZWUuXG4gKiBAcGFyYW0gcHVia2V5cyAtIGEgcHVia2V5IGFycmF5IGNvbnRhaW5pbmcgdGhlIHVzZXIga2V5LCBiYWNrdXAga2V5LCBhbmQgYml0Z28ga2V5IGluIHRoYXQgb3JkZXJcbiAqIEByZXR1cm5zIHt7c2NyaXB0UHViS2V5fX1cbiAqL1xuZnVuY3Rpb24gY3JlYXRlVGFwcm9vdFNjcmlwdDJvZjMoc2NyaXB0VHlwZTogJ3AydHInIHwgJ3AydHJNdXNpZzInLCBwdWJrZXlzOiBUcmlwbGU8QnVmZmVyPik6IFNwZW5kYWJsZVNjcmlwdCB7XG4gIGNvbnN0IHsgb3V0cHV0IH0gPSBjcmVhdGVQYXltZW50UDJ0ckNvbW1vbihzY3JpcHRUeXBlLCBwdWJrZXlzKTtcbiAgYXNzZXJ0KEJ1ZmZlci5pc0J1ZmZlcihvdXRwdXQpKTtcbiAgcmV0dXJuIHtcbiAgICBzY3JpcHRQdWJLZXk6IG91dHB1dCxcbiAgfTtcbn1cbiJdfQ==
320
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0U2NyaXB0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXRnby9vdXRwdXRTY3JpcHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQUFpQztBQUNqQywyQ0FBMkM7QUFFM0MsMEJBQXFGO0FBRXJGLG1DQUFrRDtBQUVsRCw0Q0FBNkM7QUFDN0Msd0NBQXVFO0FBRXZFLDBDQUFxRDtBQUE1Qyw0R0FBQSxrQkFBa0IsT0FBQTtBQUVkLFFBQUEsa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBR2hDLFFBQUEsZUFBZSxHQUFHLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBVSxDQUFDO0FBRzdGLFNBQWdCLGdCQUFnQixDQUFDLENBQVM7SUFDeEMsT0FBTyx1QkFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFtQixDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUZELDRDQUVDO0FBSUQ7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsVUFBc0I7SUFDbkQsT0FBTyxDQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMzRSxDQUFDO0FBRkQsd0NBRUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsT0FBZ0IsRUFBRSxVQUFzQjtJQUM1RSxRQUFRLFVBQVUsRUFBRTtRQUNsQixLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssVUFBVTtZQUNiLE9BQU8sSUFBSSxDQUFDO1FBQ2QsS0FBSyxXQUFXLENBQUM7UUFDakIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxJQUFBLGtCQUFjLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFDakMsS0FBSyxNQUFNLENBQUM7UUFDWixLQUFLLFlBQVk7WUFDZixPQUFPLElBQUEsbUJBQWUsRUFBQyxPQUFPLENBQUMsQ0FBQztLQUNuQztJQUVELDBC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QU8sMkJBQTJCLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztBQUM1RSxDQUFDO0FBRkQsa0VBRUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHVCQUF1QixDQUFDLFVBQWlDLEVBQUUsT0FBdUI7SUFDekYsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLHVCQUF1QixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRSxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLE9BQU87UUFDTCxZQUFZLEVBQUUsTUFBTTtLQUNyQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICogYXMgYml0Y29pbmpzIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5pbXBvcnQgeyBOZXR3b3JrLCBwMnRyUGF5bWVudHMsIHN1cHBvcnRzU2Vnd2l0LCBzdXBwb3J0c1RhcHJvb3QsIHRhcHJvb3QgfSBmcm9tICcuLic7XG5cbmltcG9ydCB7IGlzVHJpcGxlLCBUcmlwbGUsIFR1cGxlIH0gZnJvbSAnLi90eXBlcyc7XG5cbmltcG9ydCB7IGVjYyBhcyBlY2NMaWIgfSBmcm9tICcuLi9ub2JsZV9lY2MnO1xuaW1wb3J0IHsgZ2V0RGVwdGhGaXJzdFRhcHRyZWUsIGdldFR3ZWFrZWRPdXRwdXRLZXkgfSBmcm9tICcuLi90YXByb290JztcblxuZXhwb3J0IHsgc2NyaXB0VHlwZUZvckNoYWluIH0gZnJvbSAnLi93YWxsZXQvY2hhaW5zJztcblxuZXhwb3J0IGNvbnN0IHNjcmlwdFR5cGVQMnNoUDJwayA9ICdwMnNoUDJwayc7XG5leHBvcnQgdHlwZSBTY3JpcHRUeXBlUDJzaFAycGsgPSB0eXBlb2Ygc2NyaXB0VHlwZVAyc2hQMnBrO1xuXG5leHBvcnQgY29uc3Qgc2NyaXB0VHlwZXMyT2YzID0gWydwMnNoJywgJ3Ayc2hQMndzaCcsICdwMndzaCcsICdwMnRyJywgJ3AydHJNdXNpZzInXSBhcyBjb25zdDtcbmV4cG9ydCB0eXBlIFNjcmlwdFR5cGUyT2YzID0gKHR5cGVvZiBzY3JpcHRUeXBlczJPZjMpW251bWJlcl07XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NjcmlwdFR5cGUyT2YzKHQ6IHN0cmluZyk6IHQgaXMgU2NyaXB0VHlwZTJPZjMge1xuICByZXR1cm4gc2NyaXB0VHlwZXMyT2YzLmluY2x1ZGVzKHQgYXMgU2NyaXB0VHlwZTJPZjMpO1xufVxuXG5leHBvcnQgdHlwZSBTY3JpcHRUeXBlID0gU2NyaXB0VHlwZVAyc2hQMnBrIHwgU2NyaXB0VHlwZTJPZjM7XG5cbi8qKlxuICogQHJldHVybiB0cnVlIGlmZiBzY3JpcHRUeXBlIHJlcXVpcmVzIHdpdG5lc3MgZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzV2l0bmVzc0RhdGEoc2NyaXB0VHlwZTogU2NyaXB0VHlwZSk6IHNjcmlwdFR5cGUgaXMgJ3Ayc2hQMndzaCcgfCAncDJ3c2gnIHwgJ3AydHInIHwgJ3AydHJNdXNpZzInIHtcbiAgcmV0dXJuIFsncDJzaFAyd3NoJywgJ3Ayd3NoJywgJ3AydHInLCAncDJ0ck11c2lnMiddLmluY2x1ZGVzKHNjcmlwdFR5cGUpO1xufVxuXG4vKipcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKiBAcGFyYW0gc2NyaXB0VHlwZVxuICogQHJldHVybiB0cnVlIGlmZiBzY3JpcHQgdHlwZSBpcyBzdXBwb3J0ZWQgZm9yIG5ldHdvcmtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU3VwcG9ydGVkU2NyaXB0VHlwZShuZXR3b3JrOiBOZXR3b3JrLCBzY3JpcHRUeXBlOiBTY3JpcHRUeXBlKTogYm9vbGVhbiB7XG4gIHN3aXRjaCAoc2NyaXB0VHlwZSkge1xuICAgIGNhc2UgJ3Ayc2gnOlxuICAgIGNhc2UgJ3Ayc2hQMnBrJzpcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIGNhc2UgJ3Ayc2hQMndzaCc6XG4gICAgY2FzZSAncDJ3c2gnOlxuICAgICAgcmV0dXJuIHN1cHBvcnRzU2Vnd2l0KG5ldHdvcmspO1xuICAgIGNhc2UgJ3AydHInOlxuICAgIGNhc2UgJ3AydHJNdXNpZzInOlxuICAgICAgcmV0dXJuIHN1cHBvcnRzVGFwcm9vdChuZXR3b3JrKTtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBzY3JpcHQgdHlwZSAke3NjcmlwdFR5cGV9YCk7XG59XG5cbi8qKlxuICogQHBhcmFtIHRcbiAqIEByZXR1cm4gc3RyaW5nIHByZXZPdXQgYXMgZGVmaW5lZCBpbiBQUkVWT1VUX1RZUEVTIChiaXRjb2luanMtbGliLy4uLi90cmFuc2FjdGlvbl9idWlsZGVyLmpzKVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2NyaXB0VHlwZTJPZjNBc1ByZXZPdXRUeXBlKHQ6IFNjcmlwdFR5cGUyT2YzKTogc3RyaW5nIHtcbiAgc3dpdGNoICh0KSB7XG4gICAgY2FzZSAncDJzaCc6XG4gICAgICByZXR1cm4gJ3Ayc2gtcDJtcyc7XG4gICAgY2FzZSAncDJzaFAyd3NoJzpcbiAgICAgIHJldHVybiAncDJzaC1wMndzaC1wMm1zJztcbiAgICBjYXNlICdwMndzaCc6XG4gICAgICByZXR1cm4gJ3Ayd3NoLXAybXMnO1xuICAgIGNhc2UgJ3AydHInOlxuICAgICAgcmV0dXJuICdwMnRyLXAybnMnO1xuICAgIGNhc2UgJ3AydHJNdXNpZzInOlxuICAgICAgcmV0dXJuICdwMnRyJztcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHRocm93IG5ldyBFcnJvcihgdW5zdXBwb3J0ZWQgc2NyaXB0IHR5cGUgJHt0fWApO1xufVxuXG5leHBvcnQgdHlwZSBTcGVuZGFibGVTY3JpcHQgPSB7XG4gIHNjcmlwdFB1YktleTogQnVmZmVyO1xuICByZWRlZW1TY3JpcHQ/OiBCdWZmZXI7XG4gIHdpdG5lc3NTY3JpcHQ/OiBCdWZmZXI7XG59O1xuXG5leHBvcnQgdHlwZSBTcGVuZFNjcmlwdFAydHIgPSB7XG4gIGNvbnRyb2xCbG9jazogQnVmZmVyO1xuICB3aXRuZXNzU2NyaXB0OiBCdWZmZXI7XG4gIGxlYWZWZXJzaW9uOiBudW1iZXI7XG4gIGxlYWZIYXNoOiBCdWZmZXI7XG59O1xuXG4vKipcbiAqIFR3ZWFrIGRhdGEgaG9sZGVyIGZvciBQMnRyIE11c2lnMiBrZXkgcGF0aC5cbiAqL1xuZXhwb3J0IHR5cGUgS2V5UGF0aFAydHJNdXNpZzIgPSB7XG4gIGludGVybmFsUHVia2V5OiBCdWZmZXI7XG4gIG91dHB1dFB1YmtleTogQnVmZmVyO1xuICB0YXB0cmVlUm9vdDogQnVmZmVyO1xufTtcblxuLyoqXG4gKiBSZXR1cm4gc2NyaXB0cyBmb3IgcDJzaC1wMnBrICh1c2VkIGZvciBCQ0gvQlNWIHJlcGxheSBwcm90ZWN0aW9uKVxuICogQHBhcmFtIHB1YmtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlT3V0cHV0U2NyaXB0UDJzaFAycGsocHVia2V5OiBCdWZmZXIpOiBTcGVuZGFibGVTY3JpcHQge1xuICBjb25zdCBwMnBrID0gYml0Y29pbmpzLnBheW1lbnRzLnAycGsoeyBwdWJrZXkgfSk7XG4gIGNvbnN0IHAyc2ggPSBiaXRjb2luanMucGF5bWVudHMucDJzaCh7IHJlZGVlbTogcDJwayB9KTtcbiAgaWYgKCFwMnNoLm91dHB1dCB8fCAhcDJway5vdXRwdXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgc3RhdGVgKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHNjcmlwdFB1YktleTogcDJzaC5vdXRwdXQsXG4gICAgcmVkZWVtU2NyaXB0OiBwMnBrLm91dHB1dCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE91dHB1dFNjcmlwdChzY3JpcHRUeXBlOiAncDJzaCcgfCAncDJzaFAyd3NoJyB8ICdwMndzaCcsIGNvbmRpdGlvblNjcmlwdDogQnVmZmVyKTogQnVmZmVyIHtcbiAgbGV0IG91dHB1dDtcbiAgc3dpdGNoIChzY3JpcHRUeXBlKSB7XG4gICAgY2FzZSAncDJzaCc6XG4gICAgICAoeyBvdXRwdXQgfSA9IGJpdGNvaW5qcy5wYXltZW50cy5wMnNoKHsgcmVkZWVtOiB7IG91dHB1dDogY29uZGl0aW9uU2NyaXB0IH0gfSkpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncDJzaFAyd3NoJzpcbiAgICAgICh7IG91dHB1dCB9ID0gYml0Y29pbmpzLnBheW1lbnRzLnAyc2goe1xuICAgICAgICByZWRlZW06IHsgb3V0cHV0OiBnZXRPdXRwdXRTY3JpcHQoJ3Ayd3NoJywgY29uZGl0aW9uU2NyaXB0KSB9LFxuICAgICAgfSkpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAncDJ3c2gnOlxuICAgICAgKHsgb3V0cHV0IH0gPSBiaXRjb2luanMucGF5bWVudHMucDJ3c2goeyByZWRlZW06IHsgb3V0cHV0OiBjb25kaXRpb25TY3JpcHQgfSB9KSk7XG4gICAgICBicmVhaztcbiAgfVxuICBpZiAob3V0cHV0ID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYG91dHB1dCB1bmRlZmluZWRgKTtcbiAgfVxuICByZXR1cm4gb3V0cHV0O1xufVxuXG4vKipcbiAqIFJldHVybiBzY3JpcHRzIGZvciAyLW9mLTMgbXVsdGlzaWcgb3V0cHV0XG4gKiBAcGFyYW0gcHVia2V5cyAtIHRoZSBrZXkgdHJpcGxlIGZvciBtdWx0aXNpZ1xuICogQHBhcmFtIHNjcmlwdFR5cGVcbiAqIEBwYXJhbSBuZXR3b3JrIC0gaWYgc2V0LCBwZXJmb3JtcyBzYW5pdHkgY2hlY2sgZm9yIHNjcmlwdFR5cGUgc3VwcG9ydFxuICogQHJldHVybnMge3tyZWRlZW1TY3JpcHQsIHdpdG5lc3NTY3JpcHQsIHNjcmlwdFB1YktleX19XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVPdXRwdXRTY3JpcHQyb2YzKFxuICBwdWJrZXlzOiBCdWZmZXJbXSxcbiAgc2NyaXB0VHlwZTogU2NyaXB0VHlwZTJPZjMsXG4gIG5ldHdvcms/OiBOZXR3b3JrXG4pOiBTcGVuZGFibGVTY3JpcHQge1xuICBpZiAobmV0d29yaykge1xuICAgIGlmICghaXNTdXBwb3J0ZWRTY3JpcHRUeXBlKG5ldHdvcmssIHNjcmlwdFR5cGUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3VwcG9ydGVkIHNjcmlwdCB0eXBlICR7c2NyaXB0VHlwZX0gZm9yIG5ldHdvcmtgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWlzVHJpcGxlKHB1YmtleXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBtdXN0IHByb3ZpZGUgcHVia2V5IHRyaXBsZWApO1xuICB9XG5cbiAgcHVia2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoa2V5Lmxlbmd0aCAhPT0gMzMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5leHBlY3RlZCBrZXkgbGVuZ3RoICR7a2V5Lmxlbmd0aH0uIE11c3QgdXNlIGNvbXByZXNzZWQga2V5cy5gKTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChzY3JpcHRUeXBlID09PSAncDJ0cicgfHwgc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzInKSB7XG4gICAgLy8gcDJ0ci9wMnRyTXVzaWcyIGFkZHJlc3NlcyB1c2UgYSBjb21iaW5hdGlvbiBvZiAyIG9mIDIgbXVsdGlzaWcgc2NyaXB0cyBkaXN0aW5jdCBmcm9tXG4gICAgLy8gdGhlIDIgb2YgMyBtdWx0aXNpZyB1c2VkIGZvciBvdGhlciBzY3JpcHQgdHlwZXNcbiAgICByZXR1cm4gY3JlYXRlVGFwcm9vdFNjcmlwdDJvZjMoc2NyaXB0VHlwZSwgcHVia2V5cyk7XG4gIH1cblxuICBjb25zdCBzY3JpcHQyb2YzID0gYml0Y29pbmpzLnBheW1lbnRzLnAybXMoeyBtOiAyLCBwdWJrZXlzIH0pO1xuICBhc3NlcnQoc2NyaXB0Mm9mMy5vdXRwdXQpO1xuXG4gIGxldCByZWRlZW1TY3JpcHQ6IGJpdGNvaW5qcy5QYXltZW50IHwgdW5kZWZpbmVkO1xuICBsZXQgd2l0bmVzc1NjcmlwdDogYml0Y29pbmpzLlBheW1lbnQgfCB1bmRlZmluZWQ7XG4gIHN3aXRjaCAoc2NyaXB0VHlwZSkge1xuICAgIGNhc2UgJ3Ayc2gnOlxuICAgICAgcmVkZWVtU2NyaXB0ID0gc2NyaXB0Mm9mMztcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3Ayc2hQMndzaCc6XG4gICAgICB3aXRuZXNzU2NyaXB0ID0gc2NyaXB0Mm9mMztcbiAgICAgIHJlZGVlbVNjcmlwdCA9IGJpdGNvaW5qcy5wYXltZW50cy5wMndzaCh7IHJlZGVlbTogc2NyaXB0Mm9mMyB9KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ3Ayd3NoJzpcbiAgICAgIHdpdG5lc3NTY3JpcHQgPSBzY3JpcHQyb2YzO1xuICAgICAgYnJlYWs7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdW5rbm93biBtdWx0aXNpZyBzY3JpcHQgdHlwZSAke3NjcmlwdFR5cGV9YCk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNjcmlwdFB1YktleTogZ2V0T3V0cHV0U2NyaXB0KHNjcmlwdFR5cGUsIHNjcmlwdDJvZjMub3V0cHV0KSxcbiAgICByZWRlZW1TY3JpcHQ6IHJlZGVlbVNjcmlwdD8ub3V0cHV0LFxuICAgIHdpdG5lc3NTY3JpcHQ6IHdpdG5lc3NTY3JpcHQ/Lm91dHB1dCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvWE9ubHlQdWJsaWNLZXkoYjogQnVmZmVyKTogQnVmZmVyIHtcbiAgaWYgKGIubGVuZ3RoID09PSAzMykge1xuICAgIHJldHVybiBiLnNsaWNlKDEpO1xuICB9XG4gIGlmIChiLmxlbmd0aCA9PT0gMzIpIHtcbiAgICByZXR1cm4gYjtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQga2V5IHNpemUgJHtiLmxlbmd0aH1gKTtcbn1cblxuZnVuY3Rpb24gY2hlY2tTaXplKGI6IEJ1ZmZlciwgdGFyZ2V0U2l6ZTogbnVtYmVyLCBuYW1lOiBzdHJpbmcpOiBCdWZmZXIge1xuICBpZiAoYi5sZW5ndGggPT09IHRhcmdldFNpemUpIHtcbiAgICByZXR1cm4gYjtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgc2l6ZSAke2IubGVuZ3RofS4gTXVzdCB1c2UgJHtuYW1lfS5gKTtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZXMgc2l6ZSBvZiB0aGUgcHViIGtleSBmb3IgMzIgYnl0ZXMgYW5kIHJldHVybnMgdGhlIHNhbWUgaWZmIHRydWUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1hPbmx5UHVibGljS2V5KGI6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIHJldHVybiBjaGVja1NpemUoYiwgMzIsICd4LW9ubHkga2V5Jyk7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIHNpemUgb2YgdGhlIHB1YiBrZXkgZm9yIDMyIGJ5dGVzIGFuZCByZXR1cm5zIHRoZSBzYW1lIGlmZiB0cnVlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQbGFpblB1YmxpY0tleShiOiBCdWZmZXIpOiBCdWZmZXIge1xuICByZXR1cm4gY2hlY2tTaXplKGIsIDMzLCAncGxhaW4ga2V5Jyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1RhcE1lcmtsZVJvb3QoYjogQnVmZmVyKTogQnVmZmVyIHtcbiAgcmV0dXJuIGNoZWNrU2l6ZShiLCAzMiwgJ3RhcCBtZXJrbGUgcm9vdCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tUeEhhc2goYjogQnVmZmVyKTogQnVmZmVyIHtcbiAgcmV0dXJuIGNoZWNrU2l6ZShiLCAzMiwgJ3R4IGhhc2gnKTtcbn1cblxuZnVuY3Rpb24gZ2V0VGFwdHJlZUtleUNvbWJpbmF0aW9ucyhzY3JpcHRUeXBlOiAncDJ0cicgfCAncDJ0ck11c2lnMicsIGtleXM6IFRyaXBsZTxCdWZmZXI+KTogVHVwbGU8QnVmZmVyPltdIHtcbiAgY29uc3QgW3VzZXJLZXksIGJhY2t1cEtleSwgYml0R29LZXldID0ga2V5cy5tYXAoKGspID0+IHRvWE9ubHlQdWJsaWNLZXkoaykpO1xuICByZXR1cm4gc2NyaXB0VHlwZSA9PT0gJ3AydHInXG4gICAgPyBbXG4gICAgICAgIFt1c2VyS2V5LCBiaXRHb0tleV0sXG4gICAgICAgIFt1c2VyS2V5LCBiYWNrdXBLZXldLFxuICAgICAgICBbYmFja3VwS2V5LCBiaXRHb0tleV0sXG4gICAgICBdXG4gICAgOiBbXG4gICAgICAgIFt1c2VyS2V5LCBiYWNrdXBLZXldLFxuICAgICAgICBbYmFja3VwS2V5LCBiaXRHb0tleV0sXG4gICAgICBdO1xufVxuXG5mdW5jdGlvbiBnZXRLZXlQYXRoQ29tYmluYXRpb24oc2NyaXB0VHlwZTogJ3AydHInIHwgJ3AydHJNdXNpZzInLCBrZXlzOiBUcmlwbGU8QnVmZmVyPik6IFR1cGxlPEJ1ZmZlcj4ge1xuICBjb25zdCBzYW5pdGl6ZVB1YmxpY0tleSA9IHNjcmlwdFR5cGUgPT09ICdwMnRyJyA/IHRvWE9ubHlQdWJsaWNLZXkgOiBjaGVja1BsYWluUHVibGljS2V5O1xuICByZXR1cm4gW3Nhbml0aXplUHVibGljS2V5KGtleXNbMF0pLCBzYW5pdGl6ZVB1YmxpY0tleShrZXlzWzJdKV07XG59XG5cbmZ1bmN0aW9uIGdldFJlZGVlbUluZGV4KGtleUNvbWJpbmF0aW9uczogW0J1ZmZlciwgQnVmZmVyXVtdLCBzaWduZXI6IEJ1ZmZlciwgY29zaWduZXI6IEJ1ZmZlcik6IG51bWJlciB7XG4gIHNpZ25lciA9IHRvWE9ubHlQdWJsaWNLZXkoc2lnbmVyKTtcbiAgY29zaWduZXIgPSB0b1hPbmx5UHVibGljS2V5KGNvc2lnbmVyKTtcbiAgY29uc3QgaSA9IGtleUNvbWJpbmF0aW9ucy5maW5kSW5kZXgoKFthLCBiXSkgPT4ge1xuICAgIGlmIChhLmxlbmd0aCAhPT0gc2lnbmVyLmxlbmd0aCB8fCBiLmxlbmd0aCAhPT0gY29zaWduZXIubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgY29tcGFyaXNvbmApO1xuICAgIH1cbiAgICByZXR1cm4gKGEuZXF1YWxzKHNpZ25lcikgJiYgYi5lcXVhbHMoY29zaWduZXIpKSB8fCAoYS5lcXVhbHMoY29zaWduZXIpICYmIGIuZXF1YWxzKHNpZ25lcikpO1xuICB9KTtcbiAgaWYgKDAgPD0gaSkge1xuICAgIHJldHVybiBpO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgY291bGQgbm90IGZpbmQgc2luZ2VyL2Nvc2lnbmVyIGNvbWJpbmF0aW9uYCk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVBheW1lbnRQMnRyQ29tbW9uKFxuICBzY3JpcHRUeXBlOiAncDJ0cicgfCAncDJ0ck11c2lnMicsXG4gIHB1YmtleXM6IFRyaXBsZTxCdWZmZXI+LFxuICByZWRlZW1JbmRleD86IG51bWJlciB8IHsgc2lnbmVyOiBCdWZmZXI7IGNvc2lnbmVyOiBCdWZmZXIgfVxuKTogYml0Y29pbmpzLlBheW1lbnQge1xuICBjb25zdCBrZXlDb21iaW5hdGlvbnMyb2YyID0gZ2V0VGFwdHJlZUtleUNvbWJpbmF0aW9ucyhzY3JpcHRUeXBlLCBwdWJrZXlzKTtcbiAgaWYgKHR5cGVvZiByZWRlZW1JbmRleCA9PT0gJ29iamVjdCcpIHtcbiAgICByZWRlZW1JbmRleCA9IGdldFJlZGVlbUluZGV4KGtleUNvbWJpbmF0aW9uczJvZjIsIHJlZGVlbUluZGV4LnNpZ25lciwgcmVkZWVtSW5kZXguY29zaWduZXIpO1xuICB9XG4gIGNvbnN0IHJlZGVlbXMgPSBrZXlDb21iaW5hdGlvbnMyb2YyLm1hcCgocHVia2V5cywgaW5kZXgpID0+XG4gICAgcDJ0clBheW1lbnRzLnAydHJfbnMoXG4gICAgICB7XG4gICAgICAgIHB1YmtleXMsXG4gICAgICAgIGRlcHRoOiBzY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMicgfHwgaW5kZXggPT09IDAgPyAxIDogMixcbiAgICAgIH0sXG4gICAgICB7IGVjY0xpYiB9XG4gICAgKVxuICApO1xuXG4gIHJldHVybiBwMnRyUGF5bWVudHMucDJ0cihcbiAgICB7XG4gICAgICBwdWJrZXlzOiBnZXRLZXlQYXRoQ29tYmluYXRpb24oc2NyaXB0VHlwZSwgcHVia2V5cyksXG4gICAgICByZWRlZW1zLFxuICAgICAgcmVkZWVtSW5kZXgsXG4gICAgfSxcbiAgICB7IGVjY0xpYiB9XG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYXltZW50UDJ0cihcbiAgcHVia2V5czogVHJpcGxlPEJ1ZmZlcj4sXG4gIHJlZGVlbUluZGV4PzogbnVtYmVyIHwgeyBzaWduZXI6IEJ1ZmZlcjsgY29zaWduZXI6IEJ1ZmZlciB9XG4pOiBiaXRjb2luanMuUGF5bWVudCB7XG4gIHJldHVybiBjcmVhdGVQYXltZW50UDJ0ckNvbW1vbigncDJ0cicsIHB1YmtleXMsIHJlZGVlbUluZGV4KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBheW1lbnRQMnRyTXVzaWcyKFxuICBwdWJrZXlzOiBUcmlwbGU8QnVmZmVyPixcbiAgcmVkZWVtSW5kZXg/OiBudW1iZXIgfCB7IHNpZ25lcjogQnVmZmVyOyBjb3NpZ25lcjogQnVmZmVyIH1cbik6IGJpdGNvaW5qcy5QYXltZW50IHtcbiAgcmV0dXJuIGNyZWF0ZVBheW1lbnRQMnRyQ29tbW9uKCdwMnRyTXVzaWcyJywgcHVia2V5cywgcmVkZWVtSW5kZXgpO1xufVxuXG5mdW5jdGlvbiBnZXRMZWFmSGFzaENvbW1vbihcbiAgc2NyaXB0VHlwZTogJ3AydHInIHwgJ3AydHJNdXNpZzInLFxuICBwYXJhbXM6IGJpdGNvaW5qcy5QYXltZW50IHwgeyBwdWJsaWNLZXlzOiBUcmlwbGU8QnVmZmVyPjsgc2lnbmVyOiBCdWZmZXI7IGNvc2lnbmVyOiBCdWZmZXIgfVxuKTogQnVmZmVyIHtcbiAgaWYgKCdwdWJsaWNLZXlzJyBpbiBwYXJhbXMpIHtcbiAgICBwYXJhbXMgPSBjcmVhdGVQYXltZW50UDJ0ckNvbW1vbihzY3JpcHRUeXBlLCBwYXJhbXMucHVibGljS2V5cywgcGFyYW1zKTtcbiAgfVxuICBjb25zdCB7IG91dHB1dCwgY29udHJvbEJsb2NrLCByZWRlZW0gfSA9IHBhcmFtcztcbiAgaWYgKCFvdXRwdXQgfHwgIWNvbnRyb2xCbG9jayB8fCAhcmVkZWVtIHx8ICFyZWRlZW0ub3V0cHV0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIHN0YXRlYCk7XG4gIH1cbiAgcmV0dXJuIHRhcHJvb3QuZ2V0VGFwbGVhZkhhc2goZWNjTGliLCBjb250cm9sQmxvY2ssIHJlZGVlbS5vdXRwdXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGVhZkhhc2goXG4gIHBhcmFtczogYml0Y29pbmpzLlBheW1lbnQgfCB7IHB1YmxpY0tleXM6IFRyaXBsZTxCdWZmZXI+OyBzaWduZXI6IEJ1ZmZlcjsgY29zaWduZXI6IEJ1ZmZlciB9XG4pOiBCdWZmZXIge1xuICByZXR1cm4gZ2V0TGVhZkhhc2hDb21tb24oJ3AydHInLCBwYXJhbXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlS2V5UGF0aFAydHJNdXNpZzIocHVia2V5czogVHJpcGxlPEJ1ZmZlcj4pOiBLZXlQYXRoUDJ0ck11c2lnMiB7XG4gIGNvbnN0IHBheW1lbnQgPSBjcmVhdGVQYXltZW50UDJ0ckNvbW1vbigncDJ0ck11c2lnMicsIHB1YmtleXMpO1xuICBhc3NlcnQocGF5bWVudC5pbnRlcm5hbFB1YmtleSk7XG4gIGFzc2VydChwYXltZW50LnRhcFRyZWUpO1xuICByZXR1cm4ge1xuICAgIGludGVybmFsUHVia2V5OiBwYXltZW50LmludGVybmFsUHVia2V5LFxuICAgIG91dHB1dFB1YmtleTogZ2V0VHdlYWtlZE91dHB1dEtleShwYXltZW50KSxcbiAgICB0YXB0cmVlUm9vdDogZ2V0RGVwdGhGaXJzdFRhcHRyZWUocGF5bWVudC50YXBUcmVlKS5yb290LFxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTcGVuZFNjcmlwdFAydHJDb21tb24oXG4gIHNjcmlwdFR5cGU6ICdwMnRyJyB8ICdwMnRyTXVzaWcyJyxcbiAgcHVia2V5czogVHJpcGxlPEJ1ZmZlcj4sXG4gIGtleUNvbWJpbmF0aW9uOiBUdXBsZTxCdWZmZXI+XG4pOiBTcGVuZFNjcmlwdFAydHIge1xuICBjb25zdCBrZXlDb21iaW5hdGlvbnMgPSBnZXRUYXB0cmVlS2V5Q29tYmluYXRpb25zKHNjcmlwdFR5cGUsIHB1YmtleXMpO1xuICBjb25zdCBbYSwgYl0gPSBrZXlDb21iaW5hdGlvbi5tYXAoKGspID0+IHRvWE9ubHlQdWJsaWNLZXkoaykpO1xuICBjb25zdCByZWRlZW1JbmRleCA9IGtleUNvbWJpbmF0aW9ucy5maW5kSW5kZXgoXG4gICAgKFtjLCBkXSkgPT4gKGEuZXF1YWxzKGMpICYmIGIuZXF1YWxzKGQpKSB8fCAoYS5lcXVhbHMoZCkgJiYgYi5lcXVhbHMoYykpXG4gICk7XG5cbiAgaWYgKHJlZGVlbUluZGV4IDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgY291bGQgbm90IGZpbmQgcmVkZWVtSW5kZXggZm9yIGtleSBjb21iaW5hdGlvbmApO1xuICB9XG5cbiAgY29uc3QgcGF5bWVudCA9IGNyZWF0ZVBheW1lbnRQMnRyQ29tbW9uKHNjcmlwdFR5cGUsIHB1YmtleXMsIHJlZGVlbUluZGV4KTtcbiAgY29uc3QgeyBjb250cm9sQmxvY2sgfSA9IHBheW1lbnQ7XG4gIGFzc2VydChCdWZmZXIuaXNCdWZmZXIoY29udHJvbEJsb2NrKSk7XG5cbiAgYXNzZXJ0KHBheW1lbnQucmVkZWVtKTtcbiAgY29uc3QgbGVhZlNjcmlwdCA9IHBheW1lbnQucmVkZWVtLm91dHB1dDtcbiAgYXNzZXJ0KEJ1ZmZlci5pc0J1ZmZlcihsZWFmU2NyaXB0KSk7XG5cbiAgY29uc3QgcGFyc2VkQ29udHJvbEJsb2NrID0gdGFwcm9vdC5wYXJzZUNvbnRyb2xCbG9jayhlY2NMaWIsIGNvbnRyb2xCbG9jayk7XG4gIGNvbnN0IHsgbGVhZlZlcnNpb24gfSA9IHBhcnNlZENvbnRyb2xCbG9jaztcbiAgY29uc3QgbGVhZkhhc2ggPSB0YXByb290LmdldFRhcGxlYWZIYXNoKGVjY0xpYiwgcGFyc2VkQ29udHJvbEJsb2NrLCBsZWFmU2NyaXB0KTtcblxuICByZXR1cm4ge1xuICAgIGNvbnRyb2xCbG9jayxcbiAgICB3aXRuZXNzU2NyaXB0OiBsZWFmU2NyaXB0LFxuICAgIGxlYWZWZXJzaW9uLFxuICAgIGxlYWZIYXNoLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3BlbmRTY3JpcHRQMnRyKHB1YmtleXM6IFRyaXBsZTxCdWZmZXI+LCBrZXlDb21iaW5hdGlvbjogVHVwbGU8QnVmZmVyPik6IFNwZW5kU2NyaXB0UDJ0ciB7XG4gIHJldHVybiBjcmVhdGVTcGVuZFNjcmlwdFAydHJDb21tb24oJ3AydHInLCBwdWJrZXlzLCBrZXlDb21iaW5hdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTcGVuZFNjcmlwdFAydHJNdXNpZzIocHVia2V5czogVHJpcGxlPEJ1ZmZlcj4sIGtleUNvbWJpbmF0aW9uOiBUdXBsZTxCdWZmZXI+KTogU3BlbmRTY3JpcHRQMnRyIHtcbiAgcmV0dXJuIGNyZWF0ZVNwZW5kU2NyaXB0UDJ0ckNvbW1vbigncDJ0ck11c2lnMicsIHB1YmtleXMsIGtleUNvbWJpbmF0aW9uKTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuZCByZXR1cm5zIGEgdGFwcm9vdCBvdXRwdXQgc2NyaXB0IHVzaW5nIHRoZSB1c2VyK2JpdGdvIGtleXMgZm9yIHRoZSBhZ2dyZWdhdGVcbiAqIHB1YmxpYyBrZXkgdXNpbmcgTXVTaWcyIGFuZCBhIHRhcHRyZWUgY29udGFpbmluZyBlaXRoZXIgb2YgdGhlIGZvbGxvd2luZyBkZXBlbmRzIG9uIHNjcmlwdFR5cGUuXG4gKiBwMnRyIHR5cGU6IGEgdXNlcitiaXRnbyAyLW9mLTIgc2NyaXB0IGF0IHRoZSBmaXJzdCBkZXB0aCBsZXZlbCBvZiB0aGUgdHJlZSBhbmQgdXNlcitiYWNrdXBcbiAqIGFuZCBiaXRnbytiYWNrdXAgMi1vZi0yIHNjcmlwdHMgb25lIGxldmVsIGRlZXBlci5cbiAqIHAydHJNdXNpZzIgdHlwZTogdXNlcitiYWNrdXAgYW5kIGJpdGdvK2JhY2t1cCAyLW9mLTIgc2NyaXB0cyBhdCB0aGUgZmlyc3QgZGVwdGggbGV2ZWwgb2YgdGhlXG4gKiB0cmVlLlxuICogQHBhcmFtIHB1YmtleXMgLSBhIHB1YmtleSBhcnJheSBjb250YWluaW5nIHRoZSB1c2VyIGtleSwgYmFja3VwIGtleSwgYW5kIGJpdGdvIGtleSBpbiB0aGF0IG9yZGVyXG4gKiBAcmV0dXJucyB7e3NjcmlwdFB1YktleX19XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZVRhcHJvb3RTY3JpcHQyb2YzKHNjcmlwdFR5cGU6ICdwMnRyJyB8ICdwMnRyTXVzaWcyJywgcHVia2V5czogVHJpcGxlPEJ1ZmZlcj4pOiBTcGVuZGFibGVTY3JpcHQge1xuICBjb25zdCB7IG91dHB1dCB9ID0gY3JlYXRlUGF5bWVudFAydHJDb21tb24oc2NyaXB0VHlwZSwgcHVia2V5cyk7XG4gIGFzc2VydChCdWZmZXIuaXNCdWZmZXIob3V0cHV0KSk7XG4gIHJldHVybiB7XG4gICAgc2NyaXB0UHViS2V5OiBvdXRwdXQsXG4gIH07XG59XG4iXX0=
@@ -13,12 +13,12 @@ export declare function calculateScriptPathLevel(controlBlock: Buffer): number;
13
13
  * @return leaf version for P2TR control block.
14
14
  */
15
15
  export declare function getLeafVersion(controlBlock: Buffer): number;
16
- export declare type ParsedScriptType2Of3 = 'p2sh' | 'p2shP2wsh' | 'p2wsh' | 'taprootKeyPathSpend' | 'taprootScriptPathSpend';
17
- export declare type ParsedScriptType = ParsedScriptType2Of3 | 'p2shP2pk';
18
- export declare type ParsedPubScript = {
16
+ export type ParsedScriptType2Of3 = 'p2sh' | 'p2shP2wsh' | 'p2wsh' | 'taprootKeyPathSpend' | 'taprootScriptPathSpend';
17
+ export type ParsedScriptType = ParsedScriptType2Of3 | 'p2shP2pk';
18
+ export type ParsedPubScript = {
19
19
  scriptType: ParsedScriptType;
20
20
  };
21
- export declare type ParsedSignatureScript = {
21
+ export type ParsedSignatureScript = {
22
22
  scriptType: ParsedScriptType;
23
23
  };
24
24
  export interface ParsedSignatureScriptP2shP2pk extends ParsedSignatureScript {
@@ -36,7 +36,7 @@ export interface ParsedPubScriptTaprootScriptPath extends ParsedPubScript {
36
36
  publicKeys: [Buffer, Buffer];
37
37
  pubScript: Buffer;
38
38
  }
39
- export declare type ParsedPubScriptTaproot = ParsedPubScriptTaprootKeyPath | ParsedPubScriptTaprootScriptPath;
39
+ export type ParsedPubScriptTaproot = ParsedPubScriptTaprootKeyPath | ParsedPubScriptTaprootScriptPath;
40
40
  export interface ParsedPubScriptP2ms extends ParsedPubScript {
41
41
  scriptType: 'p2sh' | 'p2shP2wsh' | 'p2wsh';
42
42
  publicKeys: [Buffer, Buffer, Buffer];
@@ -79,8 +79,8 @@ export interface ParsedSignatureScriptTaprootScriptPath extends ParsedSignatureS
79
79
  scriptPathLevel: number;
80
80
  pubScript: Buffer;
81
81
  }
82
- export declare type ParsedSignatureScriptTaproot = ParsedSignatureScriptTaprootKeyPath | ParsedSignatureScriptTaprootScriptPath;
83
- export declare type InputPubScript = Buffer;
82
+ export type ParsedSignatureScriptTaproot = ParsedSignatureScriptTaprootKeyPath | ParsedSignatureScriptTaprootScriptPath;
83
+ export type InputPubScript = Buffer;
84
84
  /**
85
85
  * Parse a transaction's signature script to obtain public keys, signatures, the sig script,
86
86
  * and other properties.
@@ -118,4 +118,8 @@ export declare function parsePubScript(inputPubScript: InputPubScript, scriptTyp
118
118
  export declare function parsePubScript(inputPubScript: InputPubScript, scriptType: 'p2shP2pk'): ParsedPubScriptP2shP2pk;
119
119
  export declare function parsePubScript(inputPubScript: InputPubScript, scriptType: 'p2sh' | 'p2shP2wsh' | 'p2wsh'): ParsedPubScriptP2ms;
120
120
  export declare function parsePubScript(inputPubScript: InputPubScript, scriptType: ParsedScriptType): ParsedPubScriptP2ms | ParsedPubScriptTaproot | ParsedPubScriptP2shP2pk;
121
+ export declare function getChainAndIndexFromPath(path: string): {
122
+ chain: number;
123
+ index: number;
124
+ };
121
125
  //# sourceMappingURL=parseInput.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseInput.d.ts","sourceRoot":"","sources":["../../../src/bitgo/parseInput.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseInput.d.ts","sourceRoot":"","sources":["../../../src/bitgo/parseInput.ts"],"names":[],"mappings":"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"}