@bitgo/abstract-utxo 12.4.4 → 12.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/src/abstractUtxoCoin.d.ts +10 -2
- package/dist/cjs/src/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/cjs/src/abstractUtxoCoin.js +29 -37
- package/dist/cjs/src/address/fixedScript.d.ts +4 -4
- package/dist/cjs/src/address/fixedScript.d.ts.map +1 -1
- package/dist/cjs/src/address/fixedScript.js +4 -3
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
- package/dist/cjs/src/descriptor/assertDescriptorWalletAddress.js +3 -4
- package/dist/cjs/src/impl/bch/bch.d.ts +15 -1
- package/dist/cjs/src/impl/bch/bch.d.ts.map +1 -1
- package/dist/cjs/src/impl/bch/bch.js +30 -6
- package/dist/cjs/src/impl/btc/index.d.ts +2 -0
- package/dist/cjs/src/impl/btc/index.d.ts.map +1 -1
- package/dist/cjs/src/impl/btc/index.js +3 -1
- package/dist/cjs/src/impl/btc/inscriptionBuilder.js +4 -4
- package/dist/cjs/src/impl/btc/tbtcstx.d.ts +10 -0
- package/dist/cjs/src/impl/btc/tbtcstx.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcstx.js +18 -0
- package/dist/cjs/src/impl/btc/tbtcstxprivate1.d.ts +9 -0
- package/dist/cjs/src/impl/btc/tbtcstxprivate1.d.ts.map +1 -0
- package/dist/cjs/src/impl/btc/tbtcstxprivate1.js +15 -0
- package/dist/cjs/src/impl/zec/address.d.ts +73 -0
- package/dist/cjs/src/impl/zec/address.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/address.js +120 -0
- package/dist/cjs/src/impl/zec/index.d.ts +3 -0
- package/dist/cjs/src/impl/zec/index.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/index.js +4 -1
- package/dist/cjs/src/impl/zec/recipients.d.ts +85 -0
- package/dist/cjs/src/impl/zec/recipients.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/recipients.js +94 -0
- package/dist/cjs/src/impl/zec/types.d.ts +3 -0
- package/dist/cjs/src/impl/zec/types.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/types.js +3 -0
- package/dist/cjs/src/impl/zec/zec.d.ts +14 -1
- package/dist/cjs/src/impl/zec/zec.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/zec.js +17 -1
- package/dist/cjs/src/names.d.ts +5 -2
- package/dist/cjs/src/names.d.ts.map +1 -1
- package/dist/cjs/src/names.js +19 -1
- package/dist/cjs/src/recovery/backupKeyRecovery.d.ts +6 -2
- package/dist/cjs/src/recovery/backupKeyRecovery.d.ts.map +1 -1
- package/dist/cjs/src/recovery/backupKeyRecovery.js +7 -5
- package/dist/cjs/src/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/cjs/src/recovery/crossChainRecovery.js +4 -4
- package/dist/cjs/src/transaction/decode.d.ts +2 -2
- package/dist/cjs/src/transaction/decode.d.ts.map +1 -1
- package/dist/cjs/src/transaction/decode.js +3 -2
- package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts +2 -2
- package/dist/cjs/src/transaction/descriptor/explainPsbt.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/explainPsbt.js +6 -5
- package/dist/cjs/src/transaction/descriptor/parse.d.ts +3 -3
- package/dist/cjs/src/transaction/descriptor/parse.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/parse.js +17 -18
- package/dist/cjs/src/transaction/descriptor/parseToAmountType.d.ts +2 -1
- package/dist/cjs/src/transaction/descriptor/parseToAmountType.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/parseToAmountType.js +3 -3
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts +3 -3
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/descriptor/verifyTransaction.js +6 -6
- package/dist/cjs/src/transaction/explainTransaction.d.ts +2 -2
- package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/explainTransaction.js +1 -1
- package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts +3 -1
- package/dist/cjs/src/transaction/fixedScript/parseOutput.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/parseOutput.js +5 -4
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts +2 -1
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +15 -14
- package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts +4 -4
- package/dist/cjs/src/transaction/fixedScript/replayProtection.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/replayProtection.js +1 -1
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +2 -2
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signTransaction.js +1 -1
- package/dist/cjs/src/transaction/parseTransaction.d.ts +2 -1
- package/dist/cjs/src/transaction/parseTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/parseTransaction.js +4 -4
- package/dist/cjs/src/transaction/recipient.d.ts +35 -16
- package/dist/cjs/src/transaction/recipient.d.ts.map +1 -1
- package/dist/cjs/src/transaction/recipient.js +80 -47
- package/dist/cjs/src/transaction/signTransaction.js +2 -2
- package/dist/cjs/src/transaction/verifyTransaction.d.ts +2 -1
- package/dist/cjs/src/transaction/verifyTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/verifyTransaction.js +3 -3
- package/dist/cjs/test/unit/descriptorAddress.d.ts.map +1 -1
- package/dist/cjs/test/unit/descriptorAddress.js +24 -4
- package/dist/cjs/test/unit/impl/bch/unit/bch.js +9 -1
- package/dist/cjs/test/unit/impl/zec/unit/address.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/address.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/address.js +205 -0
- package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.js +89 -0
- package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/unifiedRecipientPreference.js +57 -0
- package/dist/cjs/test/unit/recovery/backupKeyRecovery.js +15 -2
- package/dist/cjs/test/unit/recovery/crossChainRecovery.js +2 -2
- package/dist/cjs/test/unit/recovery/formatBackupKeyRecoveryResult.js +2 -2
- package/dist/cjs/test/unit/recovery/mock.d.ts.map +1 -1
- package/dist/cjs/test/unit/recovery/mock.js +5 -3
- package/dist/cjs/test/unit/tbtcstx.d.ts +2 -0
- package/dist/cjs/test/unit/tbtcstx.d.ts.map +1 -0
- package/dist/cjs/test/unit/tbtcstx.js +60 -0
- package/dist/cjs/test/unit/tbtcstxprivate1.d.ts +2 -0
- package/dist/cjs/test/unit/tbtcstxprivate1.d.ts.map +1 -0
- package/dist/cjs/test/unit/tbtcstxprivate1.js +61 -0
- package/dist/cjs/test/unit/transaction/addressCodec.d.ts +2 -0
- package/dist/cjs/test/unit/transaction/addressCodec.d.ts.map +1 -0
- package/dist/cjs/test/unit/transaction/addressCodec.js +30 -0
- package/dist/cjs/test/unit/transaction/descriptor/parse.js +4 -2
- package/dist/cjs/test/unit/transaction/descriptor/verifyTransactionQr.js +6 -5
- package/dist/cjs/test/unit/transaction.js +2 -2
- package/dist/cjs/test/unit/util/address.d.ts +2 -1
- package/dist/cjs/test/unit/util/address.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/address.js +3 -2
- package/dist/cjs/test/unit/util/nockIndexerAPI.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/nockIndexerAPI.js +3 -4
- package/dist/cjs/test/unit/util/transaction.d.ts +1 -1
- package/dist/cjs/test/unit/util/transaction.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/transaction.js +5 -4
- package/dist/cjs/test/unit/util/unspents.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/unspents.js +3 -3
- package/dist/cjs/test/unit/util/utxoCoins.d.ts +2 -2
- package/dist/cjs/test/unit/util/utxoCoins.d.ts.map +1 -1
- package/dist/cjs/test/unit/util/utxoCoins.js +17 -33
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/abstractUtxoCoin.d.ts +10 -2
- package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/esm/abstractUtxoCoin.js +32 -40
- package/dist/esm/address/fixedScript.d.ts +4 -4
- package/dist/esm/address/fixedScript.d.ts.map +1 -1
- package/dist/esm/address/fixedScript.js +4 -3
- package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts +2 -2
- package/dist/esm/descriptor/assertDescriptorWalletAddress.d.ts.map +1 -1
- package/dist/esm/descriptor/assertDescriptorWalletAddress.js +3 -4
- package/dist/esm/impl/bch/bch.d.ts +15 -1
- package/dist/esm/impl/bch/bch.d.ts.map +1 -1
- package/dist/esm/impl/bch/bch.js +31 -7
- package/dist/esm/impl/btc/index.d.ts +2 -0
- package/dist/esm/impl/btc/index.d.ts.map +1 -1
- package/dist/esm/impl/btc/index.js +3 -1
- package/dist/esm/impl/btc/inscriptionBuilder.js +4 -4
- package/dist/esm/impl/btc/tbtcstx.d.ts +10 -0
- package/dist/esm/impl/btc/tbtcstx.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcstx.js +14 -0
- package/dist/esm/impl/btc/tbtcstxprivate1.d.ts +9 -0
- package/dist/esm/impl/btc/tbtcstxprivate1.d.ts.map +1 -0
- package/dist/esm/impl/btc/tbtcstxprivate1.js +11 -0
- package/dist/esm/impl/zec/address.d.ts +73 -0
- package/dist/esm/impl/zec/address.d.ts.map +1 -0
- package/dist/esm/impl/zec/address.js +113 -0
- package/dist/esm/impl/zec/index.d.ts +3 -0
- package/dist/esm/impl/zec/index.d.ts.map +1 -1
- package/dist/esm/impl/zec/index.js +4 -1
- package/dist/esm/impl/zec/recipients.d.ts +85 -0
- package/dist/esm/impl/zec/recipients.d.ts.map +1 -0
- package/dist/esm/impl/zec/recipients.js +90 -0
- package/dist/esm/impl/zec/types.d.ts +3 -0
- package/dist/esm/impl/zec/types.d.ts.map +1 -0
- package/dist/esm/impl/zec/types.js +2 -0
- package/dist/esm/impl/zec/zec.d.ts +14 -1
- package/dist/esm/impl/zec/zec.d.ts.map +1 -1
- package/dist/esm/impl/zec/zec.js +17 -1
- package/dist/esm/names.d.ts +5 -2
- package/dist/esm/names.d.ts.map +1 -1
- package/dist/esm/names.js +18 -1
- package/dist/esm/recovery/backupKeyRecovery.d.ts +6 -2
- package/dist/esm/recovery/backupKeyRecovery.d.ts.map +1 -1
- package/dist/esm/recovery/backupKeyRecovery.js +8 -6
- package/dist/esm/recovery/crossChainRecovery.d.ts.map +1 -1
- package/dist/esm/recovery/crossChainRecovery.js +4 -4
- package/dist/esm/transaction/decode.d.ts +2 -2
- package/dist/esm/transaction/decode.d.ts.map +1 -1
- package/dist/esm/transaction/decode.js +3 -2
- package/dist/esm/transaction/descriptor/explainPsbt.d.ts +2 -2
- package/dist/esm/transaction/descriptor/explainPsbt.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/explainPsbt.js +6 -5
- package/dist/esm/transaction/descriptor/parse.d.ts +3 -3
- package/dist/esm/transaction/descriptor/parse.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/parse.js +17 -18
- package/dist/esm/transaction/descriptor/parseToAmountType.d.ts +2 -1
- package/dist/esm/transaction/descriptor/parseToAmountType.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/parseToAmountType.js +3 -3
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts +3 -3
- package/dist/esm/transaction/descriptor/verifyTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/descriptor/verifyTransaction.js +6 -6
- package/dist/esm/transaction/explainTransaction.d.ts +2 -2
- package/dist/esm/transaction/explainTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/explainTransaction.js +1 -1
- package/dist/esm/transaction/fixedScript/parseOutput.d.ts +3 -1
- package/dist/esm/transaction/fixedScript/parseOutput.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/parseOutput.js +5 -4
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts +2 -1
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/parseTransaction.js +16 -15
- package/dist/esm/transaction/fixedScript/replayProtection.d.ts +4 -4
- package/dist/esm/transaction/fixedScript/replayProtection.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/replayProtection.js +1 -1
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts +2 -2
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signTransaction.js +1 -1
- package/dist/esm/transaction/parseTransaction.d.ts +2 -1
- package/dist/esm/transaction/parseTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/parseTransaction.js +4 -4
- package/dist/esm/transaction/recipient.d.ts +35 -16
- package/dist/esm/transaction/recipient.d.ts.map +1 -1
- package/dist/esm/transaction/recipient.js +79 -48
- package/dist/esm/transaction/signTransaction.js +2 -2
- package/dist/esm/transaction/verifyTransaction.d.ts +2 -1
- package/dist/esm/transaction/verifyTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/verifyTransaction.js +3 -3
- package/package.json +10 -9
|
@@ -146,7 +146,7 @@ function run(sourceCoin, recoveryCoin) {
|
|
|
146
146
|
}
|
|
147
147
|
function checkRecoveryPsbtSignature(psbtHex) {
|
|
148
148
|
// Parse using wasm-utxo for signature verification
|
|
149
|
-
const wasmPsbt = wasm_utxo_1.fixedScriptWallet.BitGoPsbt.fromBytes(Buffer.from(psbtHex, 'hex'), sourceCoin.
|
|
149
|
+
const wasmPsbt = wasm_utxo_1.fixedScriptWallet.BitGoPsbt.fromBytes(Buffer.from(psbtHex, 'hex'), sourceCoin.wasmName);
|
|
150
150
|
const parsed = wasmPsbt.parseTransactionWithWalletKeys(wasmWalletKeys, { replayProtection: { publicKeys: [] } });
|
|
151
151
|
const unspents = getRecoveryUnspents();
|
|
152
152
|
assert.strictEqual(parsed.inputs.length, unspents.length);
|
|
@@ -349,4 +349,4 @@ describe('convertLtcAddressToLegacyFormat', function () {
|
|
|
349
349
|
assert.strictEqual(result, bech32Address);
|
|
350
350
|
});
|
|
351
351
|
});
|
|
352
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NDaGFpblJlY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3JlY292ZXJ5L2Nyb3NzQ2hhaW5SZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyw2QkFBOEI7QUFFOUIsOENBQTBDO0FBQzFDLGdEQUE2RTtBQUM3RSw2Q0FBK0I7QUFFL0Isc0NBU3NCO0FBQ3RCLDhDQUFrRTtBQUVsRSxrQ0FVaUI7QUFDakIsaURBQThDO0FBRTlDLGlDQUF3RDtBQUV4RCxTQUFTLFFBQVEsQ0FBQyxDQUFpQjtJQUNqQyxPQUFPLElBQUEsa0JBQU8sRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxJQUFzQixFQUFFLFFBQWdCLEVBQUUsVUFBa0M7SUFDOUYsT0FBTztRQUNMLElBQUEscUJBQVMsR0FBRTthQUNSLEdBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxRQUFRLEVBQUUsQ0FBQzthQUNwRCxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1YsRUFBRSxFQUFFLFFBQVE7WUFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNyQixLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekMsQ0FBQzthQUNELE9BQU8sRUFBRTtRQUNaLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3RCLElBQUEscUJBQVMsR0FBRTthQUNSLEdBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUs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QUM7UUFFdEUsaURBQWlEO1FBQ2pELE1BQU0sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSw0Q0FBNEMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUN4RyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRTtRQUN2QyxNQUFNLGFBQWEsR0FBRyw2Q0FBNkMsQ0FBQztRQUNwRSxNQUFNLE1BQU0sR0FBRyxJQUFBLHFDQUErQixFQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGdldFNlZWQgfSBmcm9tICdAYml0Z28vc2RrLXRlc3QnO1xuaW1wb3J0IHsgYWRkcmVzcyBhcyB3YXNtQWRkcmVzcywgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RVdHhvQ29pbixcbiAgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkLFxuICBDcm9zc0NoYWluUmVjb3ZlcnlVbnNpZ25lZCxcbiAgZ2V0V2FsbGV0LFxuICBpc1dhbGxldEFkZHJlc3MsXG4gIHN1cHBvcnRlZENyb3NzQ2hhaW5SZWNvdmVyaWVzLFxuICBnZW5lcmF0ZUFkZHJlc3MsXG4gIGNvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQsXG59IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBpc01haW5uZXRDb2luLCBpc1Rlc3RuZXRDb2luIH0gZnJvbSAnLi4vLi4vLi4vc3JjL25hbWVzJztcbmltcG9ydCB0eXBlIHsgV2FsbGV0VW5zcGVudCB9IGZyb20gJy4uLy4uLy4uL3NyYy91bnNwZW50JztcbmltcG9ydCB7XG4gIGdldEZpeHR1cmUsXG4gIGtleWNoYWluc0Jhc2U1OCxcbiAgS2V5Y2hhaW5CYXNlNTgsXG4gIGFzc2VydEVxdWFsSlNPTixcbiAgdXR4b0NvaW5zLFxuICBnZXREZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gIGRlZmF1bHRCaXRHbyxcbiAgZ2V0VXR4b0NvaW4sXG4gIGNyZWF0ZVdhc21XYWxsZXRVbnNwZW50LFxufSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IG5vY2tCaXRHbyB9IGZyb20gJy4uL3V0aWwvbm9ja0JpdEdvJztcblxuaW1wb3J0IHsgV2FzbUNyb3NzQ2hhaW5SZWNvdmVyeVByb3ZpZGVyIH0gZnJvbSAnLi9tb2NrJztcblxuZnVuY3Rpb24gZ2V0S2V5SWQoazogS2V5Y2hhaW5CYXNlNTgpOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0U2VlZChrLnB1YikudG9TdHJpbmcoJ2hleCcpO1xufVxuXG5mdW5jdGlvbiBub2NrV2FsbGV0KGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHdhbGxldElkOiBzdHJpbmcsIHdhbGxldEtleXM6IFRyaXBsZTxLZXljaGFpbkJhc2U1OD4pOiBub2NrLlNjb3BlW10ge1xuICByZXR1cm4gW1xuICAgIG5vY2tCaXRHbygpXG4gICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHt3YWxsZXRJZH1gKVxuICAgICAgLnJlcGx5KDIwMCwge1xuICAgICAgICBpZDogd2FsbGV0SWQsXG4gICAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgICAgbGFiZWw6ICdjcm9zc0NoYWluUmVjb3ZlcnknLFxuICAgICAgICBrZXlzOiB3YWxsZXRLZXlzLm1hcCgoaykgPT4gZ2V0S2V5SWQoaykpLFxuICAgICAgfSlcbiAgICAgIC5wZXJzaXN0KCksXG4gICAgLi4ud2FsbGV0S2V5cy5tYXAoKGspID0+XG4gICAgICBub2NrQml0R28oKVxuICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS9rZXkvJHtnZXRLZXlJZChrKX1gKVxuICAgICAgICAucmVwbHkoMjAwLCBrKVxuICAgICAgICAucGVyc2lzdCgpXG4gICAgKSxcbiAgXTtcbn1cblxudHlwZSBBZGRyZXNzID0ge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGNoYWluOiBudW1iZXI7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBub2NrV2FsbGV0QWRkcmVzcyhjb2luOiBBYnN0cmFjdFV0eG9Db2luLCB3YWxsZXRJZDogc3RyaW5nLCBhZGRyZXNzOiBBZGRyZXNzKTogbm9jay5TY29wZSB7XG4gIHJldHVybiBub2NrQml0R28oKVxuICAgIC5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3dhbGxldC8ke3dhbGxldElkfS9hZGRyZXNzLyR7YWRkcmVzcy5hZGRyZXNzfWApXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgYWRkcmVzczogYWRkcmVzcy5hZGRyZXNzLFxuICAgICAgY2hhaW46IGFkZHJlc3MuY2hhaW4sXG4gICAgICBpbmRleDogYWRkcmVzcy5pbmRleCxcbiAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgIHdhbGxldDogd2FsbGV0SWQsXG4gICAgfSlcbiAgICAucGVyc2lzdCgpO1xufVxuXG4vKipcbiAqIFNldHVwIHRlc3QgZm9yIGNyb3NzLWNoYWluIHJlY292ZXJ5LlxuICpcbiAqIFVzZXJzIGNhbiByZWNlaXZlIGRlcG9zaXRzIG9uIHdhbGxldCBhZGRyZXNzZXMgdGhhdCBhcmUgb24gYSBkaWZmZXJlbnQgY2hhaW4uXG4gKlxuICogRm9yIGluc3RhbmNlLCBhIHVzZXIgY2FuIHJlY2VpdmUgbGl0ZWNvaW4gb24gYSBiaXRjb2luIHdhbGxldC5cbiAqIFRoaXMgbWVhbnMgdGhhdCB0aGUgbGl0ZWNvaW4gYmxvY2tjaGFpbiBoYXMgYSB0cmFuc2FjdGlvbiB3aXRoIG91dHB1dHMgdGhhdCBhcmUgc3BlbmRhYmxlXG4gKiB3aXRoIGtleXMgdGhhdCB3ZXJlIG9yaWdpbmFsbHkgY3JlYXRlZCBmb3IgYSBCaXRHbyBCVEMgd2FsbGV0LlxuICogSW4gdGhpcyBleGFtcGxlLCBMVEMgaXMgdGhlIFwic291cmNlIGNvaW5cIiBhbmQgQlRDIGlzIHRoZSBcInJlY292ZXJ5IGNvaW5cIlxuICogSW4gY2FzZXMgbGlrZSB0aGVzZSB3ZSBtdXN0IHVzZSBjb25zdHJ1Y3QgYSB0cmFuc2FjdGlvbiBmb3IgbGl0ZWNvaW4gbmV0d29yayB1c2luZyBrZXlzIG9mIHRoZVxuICogYml0Y29pbiB3YWxsZXQuXG4gKlxuICogQHBhcmFtIHNvdXJjZUNvaW4gLSB0aGUgY29pbiB0byBjb25zdHJ1Y3QgdGhlIHRyYW5zYWN0aW9uIGZvclxuICogQHBhcmFtIHJlY292ZXJ5Q29pbiAtIHRoZSBjb2luIHRoZSByZWNlaXZpbmcgd2FsbGV0IHdhcyBzZXQgdXAgZm9yXG4gKi9cbi8vIEdldCB3YXNtIHdhbGxldCBrZXlzIGZvciBzaWduYXR1cmUgdmVyaWZpY2F0aW9uXG5jb25zdCB7IHdhbGxldEtleXM6IHdhc21XYWxsZXRLZXlzLCB4cHJpdnMgfSA9IGdldERlZmF1bHRXYXNtV2FsbGV0S2V5cygpO1xuXG5mdW5jdGlvbiBydW48VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbiwgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luKSB7XG4gIGRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBbc291cmNlQ29pbj0ke3NvdXJjZUNvaW4uZ2V0Q2hhaW4oKX0gcmVjb3ZlcnlDb2luPSR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9XWAsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCByZWNvdmVyeVdhbGxldElkID0gJzVhYmFjZWJlMjhkNzJmYmQwN2UwYjhjYmJhMGZmMzllJztcbiAgICAvLyB0aGUgYWRkcmVzcyB0aGUgYWNjaWRlbnRhbCBkZXBvc2l0IHdlbnQgdG8sIGluIGJvdGggc291cmNlQ29pbiBhbmQgYWRkcmVzc0NvaW4gZm9ybWF0c1xuICAgIGNvbnN0IFtkZXBvc2l0QWRkcmVzc1NvdXJjZUNvaW4sIGRlcG9zaXRBZGRyZXNzUmVjb3ZlcnlDb2luXSA9IFtzb3VyY2VDb2luLCByZWNvdmVyeUNvaW5dLm1hcCgoY29pbikgPT4gKHtcbiAgICAgIGFkZHJlc3M6IGdlbmVyYXRlQWRkcmVzcyhjb2luLm5hbWUsIHsga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsIGNoYWluOiAwLCBpbmRleDogMCB9KSxcbiAgICAgIGNoYWluOiAwLFxuICAgICAgaW5kZXg6IDAsXG4gICAgfSkpO1xuICAgIGNvbnN0IGNoYWluID0gMDtcbiAgICBjb25zdCBpbmRleCA9IDE7XG4gICAgLy8gdGhlIGFkZHJlc3Mgd2hlcmUgd2Ugd2FudCB0byByZWNvdmVyIG91ciBmdW5kcyB0b1xuICAgIGNvbnN0IHJlY292ZXJ5QWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzcyhzb3VyY2VDb2luLm5hbWUsIHtcbiAgICAgIGtleWNoYWluczoga2V5Y2hhaW5zQmFzZTU4LFxuICAgICAgY2hhaW4sXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCBub2Nrczogbm9jay5TY29wZVtdID0gW107XG5cbiAgICAvLyBDcmVhdGUgcmVjb3ZlcnkgdW5zcGVudCB1c2luZyB3YXNtLXV0eG8gKG5vIHV0eG9saWIgZGVwZW5kZW5jeSlcbiAgICBmdW5jdGlvbiBnZXRSZWNvdmVyeVVuc3BlbnRzKCk6IFdhbGxldFVuc3BlbnQ8VE51bWJlcj5bXSB7XG4gICAgICBjb25zdCBkZXBvc2l0VmFsdWUgPSAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50JyA/IEJpZ0ludCgxZTgpIDogMWU4KSBhcyBUTnVtYmVyO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgY3JlYXRlV2FzbVdhbGxldFVuc3BlbnQ8VE51bWJlcj4oZGVwb3NpdEFkZHJlc3NTb3VyY2VDb2luLmFkZHJlc3MsIGNoYWluLCBpbmRleCwgZGVwb3NpdFZhbHVlLCBzb3VyY2VDb2luLm5hbWUpLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBiZWZvcmUoJ3NldHVwIG5vY2tzJywgZnVuY3Rpb24gKCkge1xuICAgICAgbm9ja3MucHVzaCguLi5ub2NrV2FsbGV0KHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCwga2V5Y2hhaW5zQmFzZTU4KSk7XG4gICAgICBub2Nrcy5wdXNoKG5vY2tXYWxsZXRBZGRyZXNzKHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCwgZGVwb3NpdEFkZHJlc3NSZWNvdmVyeUNvaW4pKTtcbiAgICB9KTtcblxuICAgIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vY2tzLmZvckVhY2goKG4pID0+IG4uZG9uZSgpKTtcbiAgICB9KTtcblxuICAgIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vY2suY2xlYW5BbGwoKTtcbiAgICB9KTtcblxuICAgIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBzaW5vbi5yZXN0b3JlKCk7XG4gICAgfSk7XG5cbiAgICBhc3luYyBmdW5jdGlvbiBtYXRjaEZpeHR1cmUoXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICByZWNvdmVyeTogQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+IHwgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj5cbiAgICApIHtcbiAgICAgIGxldCByZWNvdmVyeU9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLnJlY292ZXJ5IH07XG4gICAgICBpZiAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50Jykge1xuICAgICAgICByZWNvdmVyeU9iaiA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkocmVjb3ZlcnlPYmosIChrLCB2KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB2LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgYXNzZXJ0RXF1YWxKU09OKFxuICAgICAgICByZWNvdmVyeU9iaixcbiAgICAgICAgYXdhaXQgZ2V0Rml4dHVyZShzb3VyY2VDb2luLCBgcmVjb3ZlcnkvY3Jvc3NDaGFpblJlY292ZXJ5LSR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9LSR7bmFtZX1gLCByZWNvdmVyeU9iailcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tSZWNvdmVyeVBzYnRTaWduYXR1cmUocHNidEhleDogc3RyaW5nKSB7XG4gICAgICAvLyBQYXJzZSB1c2luZyB3YXNtLXV0eG8gZm9yIHNpZ25hdHVyZSB2ZXJpZmljYXRpb25cbiAgICAgIGNvbnN0IHdhc21Qc2J0ID0gZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LmZyb21CeXRlcyhCdWZmZXIuZnJvbShwc2J0SGV4LCAnaGV4JyksIHNvdXJjZUNvaW4ubmFtZSk7XG4gICAgICBjb25zdCBwYXJzZWQgPSB3YXNtUHNidC5wYXJzZVRyYW5zYWN0aW9uV2l0aFdhbGxldEtleXMod2FzbVdhbGxldEtleXMsIHsgcmVwbGF5UHJvdGVjdGlvbjogeyBwdWJsaWNLZXlzOiBbXSB9IH0pO1xuICAgICAgY29uc3QgdW5zcGVudHMgPSBnZXRSZWNvdmVyeVVuc3BlbnRzKCk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocGFyc2VkLmlucHV0cy5sZW5ndGgsIHVuc3BlbnRzLmxlbmd0aCk7XG4gICAgICAvLyBWZXJpZnkgdXNlciBrZXkgaGFzIHNpZ25lZCBlYWNoIGlucHV0IChzYW1lIHBhdHRlcm4gYXMgYmFja3VwS2V5UmVjb3ZlcnkgdGVzdClcbiAgICAgIHBhcnNlZC5pbnB1dHMuZm9yRWFjaCgoXywgaSkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyU2lnbmVkID0gd2FzbVBzYnQudmVyaWZ5U2lnbmF0dXJlKGksIHhwcml2c1swXSk7XG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbCh1c2VyU2lnbmVkLCB0cnVlLCBgSW5wdXQgJHtpfSBzaG91bGQgYmUgc2lnbmVkIGJ5IHVzZXIga2V5YCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdCgnc2hvdWxkIHRlc3Qgc2lnbmVkIGNyb3NzIGNoYWluIHJlY292ZXJ5JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZGVwb3NpdFVuc3BlbnQgPSBnZXRSZWNvdmVyeVVuc3BlbnRzKClbMF07XG4gICAgICAvLyBQYXJzZSB0eGlkIGZyb20gdGhlIHVuc3BlbnQgaWQgKGZvcm1hdDogdHhpZDp2b3V0KVxuICAgICAgY29uc3QgZGVwb3NpdFR4aWQgPSBkZXBvc2l0VW5zcGVudC5pZC5zcGxpdCgnOicpWzBdO1xuICAgICAgLy8gVXNlIHRoZSBkZXBvc2l0IGFkZHJlc3MgYXMgdGhlIGlucHV0IGFkZHJlc3MgKHNpbXVsYXRpbmcgYSBwMnNoIGlucHV0KVxuICAgICAgY29uc3QgaW5wdXRBZGRyZXNzID0gZ2VuZXJhdGVBZGRyZXNzKHNvdXJjZUNvaW4ubmFtZSwgeyBrZXljaGFpbnM6IGtleWNoYWluc0Jhc2U1OCwgY2hhaW46IDAsIGluZGV4OiAyIH0pO1xuICAgICAgY29uc3QgZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIgPSBzaW5vblxuICAgICAgICAuc3R1YihBYnN0cmFjdFV0eG9Db2luLnByb3RvdHlwZSwgJ2dldFJlY292ZXJ5UHJvdmlkZXInKVxuICAgICAgICAucmV0dXJucyhuZXcgV2FzbUNyb3NzQ2hhaW5SZWNvdmVyeVByb3ZpZGVyPFROdW1iZXI+KHNvdXJjZUNvaW4sIGRlcG9zaXRVbnNwZW50LCBbaW5wdXRBZGRyZXNzXSkpO1xuICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICByZWNvdmVyeUNvaW4sXG4gICAgICAgIHR4aWQ6IGRlcG9zaXRUeGlkLFxuICAgICAgICByZWNvdmVyeUFkZHJlc3MsXG4gICAgICAgIHdhbGxldDogcmVjb3ZlcnlXYWxsZXRJZCxcbiAgICAgIH07XG4gICAgICBjb25zdCBzaWduZWRSZWNvdmVyeSA9IChhd2FpdCBzb3VyY2VDb2luLnJlY292ZXJGcm9tV3JvbmdDaGFpbjxUTnVtYmVyPih7XG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgeHBydjoga2V5Y2hhaW5zQmFzZTU4WzBdLnBydixcbiAgICAgIH0pKSBhcyBDcm9zc0NoYWluUmVjb3ZlcnlTaWduZWQ8VE51bWJlcj47XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIuY2FsbENvdW50LCAxKTtcblxuICAgICAgLy8gVmVyaWZ5IGZpeHR1cmUgbWF0Y2hcbiAgICAgIGF3YWl0IG1hdGNoRml4dHVyZSgnc2lnbmVkJywgc2lnbmVkUmVjb3ZlcnkpO1xuXG4gICAgICAvLyBWZXJpZnkgUFNCVCBoYXMgdmFsaWQgc2lnbmF0dXJlcyAodXNlciBrZXkgc2lnbmVkKVxuICAgICAgY2hlY2tSZWNvdmVyeVBzYnRTaWduYXR1cmUoc2lnbmVkUmVjb3ZlcnkudHhIZXggYXMgc3RyaW5nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdGVzdCB1bnNpZ25lZCBjcm9zcyBjaGFpbiByZWNvdmVyeScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGRlcG9zaXRVbnNwZW50ID0gZ2V0UmVjb3ZlcnlVbnNwZW50cygpWzBdO1xuICAgICAgLy8gUGFyc2UgdHhpZCBmcm9tIHRoZSB1bnNwZW50IGlkIChmb3JtYXQ6IHR4aWQ6dm91dClcbiAgICAgIGNvbnN0IGRlcG9zaXRUeGlkID0gZGVwb3NpdFVuc3BlbnQuaWQuc3BsaXQoJzonKVswXTtcbiAgICAgIC8vIFVzZSB0aGUgZGVwb3NpdCBhZGRyZXNzIGFzIHRoZSBpbnB1dCBhZGRyZXNzIChzaW11bGF0aW5nIGEgcDJzaCBpbnB1dClcbiAgICAgIGNvbnN0IGlucHV0QWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzcyhzb3VyY2VDb2luLm5hbWUsIHsga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsIGNoYWluOiAwLCBpbmRleDogMiB9KTtcbiAgICAgIGNvbnN0IGdldFJlY292ZXJ5UHJvdmlkZXJTdHViID0gc2lub25cbiAgICAgICAgLnN0dWIoQWJzdHJhY3RVdHhvQ29pbi5wcm90b3R5cGUsICdnZXRSZWNvdmVyeVByb3ZpZGVyJylcbiAgICAgICAgLnJldHVybnMobmV3IFdhc21Dcm9zc0NoYWluUmVjb3ZlcnlQcm92aWRlcjxUTnVtYmVyPihzb3VyY2VDb2luLCBkZXBvc2l0VW5zcGVudCwgW2lucHV0QWRkcmVzc10pKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgcmVjb3ZlcnlDb2luLFxuICAgICAgICB0eGlkOiBkZXBvc2l0VHhpZCxcbiAgICAgICAgcmVjb3ZlcnlBZGRyZXNzLFxuICAgICAgICB3YWxsZXQ6IHJlY292ZXJ5V2FsbGV0SWQsXG4gICAgICB9O1xuICAgICAgY29uc3QgdW5zaWduZWRSZWNvdmVyeSA9IChhd2FpdCBzb3VyY2VDb2luLnJlY292ZXJGcm9tV3JvbmdDaGFpbjxUTnVtYmVyPih7XG4gICAgICAgIC4uLnBhcmFtcyxcbiAgICAgICAgc2lnbmVkOiBmYWxzZSxcbiAgICAgIH0pKSBhcyBDcm9zc0NoYWluUmVjb3ZlcnlVbnNpZ25lZDxUTnVtYmVyPjtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChnZXRSZWNvdmVyeVByb3ZpZGVyU3R1Yi5jYWxsQ291bnQsIDEpO1xuXG4gICAgICAvLyBWZXJpZnkgZml4dHVyZSBtYXRjaFxuICAgICAgYXdhaXQgbWF0Y2hGaXh0dXJlKCd1bnNpZ25lZCcsIHVuc2lnbmVkUmVjb3ZlcnkpO1xuXG4gICAgICAvLyBWZXJpZnkgdGhlIHVuc2lnbmVkIFBTQlQgY2FuIGJlIHNpZ25lZFxuICAgICAgY29uc3Qgc2lnbmVkVHggPSBhd2FpdCBzb3VyY2VDb2luLnNpZ25UcmFuc2FjdGlvbjxUTnVtYmVyPih7XG4gICAgICAgIHR4UHJlYnVpbGQ6IHVuc2lnbmVkUmVjb3ZlcnksXG4gICAgICAgIHBydjoga2V5Y2hhaW5zQmFzZTU4WzBdLnBydixcbiAgICAgICAgcHViczoga2V5Y2hhaW5zQmFzZTU4Lm1hcCgoaykgPT4gay5wdWIpIGFzIFRyaXBsZTxzdHJpbmc+LFxuICAgICAgfSk7XG4gICAgICBjaGVja1JlY292ZXJ5UHNidFNpZ25hdHVyZSgoc2lnbmVkVHggYXMgeyB0eEhleDogc3RyaW5nIH0pLnR4SGV4KTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGlzU3VwcG9ydGVkQ3Jvc3NDaGFpblJlY292ZXJ5KHNvdXJjZUNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHJlY292ZXJ5Q29pbjogQWJzdHJhY3RVdHhvQ29pbik6IGJvb2xlYW4ge1xuICByZXR1cm4gc3VwcG9ydGVkQ3Jvc3NDaGFpblJlY292ZXJpZXNbc291cmNlQ29pbi5nZXRGYW1pbHkoKV0/LmluY2x1ZGVzKHJlY292ZXJ5Q29pbi5nZXRGYW1pbHkoKSk7XG59XG5cbnV0eG9Db2lucy5mb3JFYWNoKChjb2luKSA9PiB7XG4gIHV0eG9Db2luc1xuICAgIC5maWx0ZXIoXG4gICAgICAob3RoZXJDb2luKSA9PlxuICAgICAgICBjb2luICE9PSBvdGhlckNvaW4gJiZcbiAgICAgICAgaXNTdXBwb3J0ZWRDcm9zc0NoYWluUmVjb3ZlcnkoY29pbiwgb3RoZXJDb2luKSAmJlxuICAgICAgICAoKGlzTWFpbm5ldENvaW4oY29pbi5uYW1lKSAmJiBpc01haW5uZXRDb2luKG90aGVyQ29pbi5uYW1lKSkgfHxcbiAgICAgICAgICAoaXNUZXN0bmV0Q29pbihjb2luLm5hbWUpICYmIGlzVGVzdG5ldENvaW4ob3RoZXJDb2luLm5hbWUpKSlcbiAgICApXG4gICAgLmZvckVhY2goKG90aGVyQ29pbikgPT4ge1xuICAgICAgaWYgKGNvaW4uYW1vdW50VHlwZSA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgcnVuPGJpZ2ludD4oY29pbiwgb3RoZXJDb2luKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJ1bihjb2luLCBvdGhlckNvaW4pO1xuICAgICAgfVxuICAgIH0pO1xufSk7XG5cbmRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBnZXRXYWxsZXRgLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGJpdGdvID0gZGVmYXVsdEJpdEdvO1xuICBjb25zdCByZWNvdmVyeUNvaW4gPSBnZXRVdHhvQ29pbignYnRjJyk7XG4gIGNvbnN0IHJlY292ZXJ5V2FsbGV0SWQgPSAnNWFiYWNlYmUyOGQ3MmZiZDA3ZTBiOGNiYmEwZmYzOWUnO1xuXG4gIGl0KCdzaG91bGQgc2VhcmNoIHYxIHdhbGxldHMgaWYgdGhlIHYyIGVuZHBvaW50IHJlc3BvbmRzIHdpdGggYSA0eHggZXJyb3InLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZXMgPSBbNDAwLCA0MDRdO1xuXG4gICAgZm9yIChjb25zdCBlcnJvciBvZiBlcnJvclJlc3BvbnNlcykge1xuICAgICAgY29uc3Qgbm9ja1YyV2FsbGV0ID0gbm9ja0JpdEdvKGJpdGdvKVxuICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9L3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YClcbiAgICAgICAgLnJlcGx5KGVycm9yKTtcbiAgICAgIGNvbnN0IG5vY2tWMVdhbGxldCA9IG5vY2tCaXRHbyhiaXRnbykuZ2V0KGAvYXBpL3YxL3dhbGxldC8ke3JlY292ZXJ5V2FsbGV0SWR9YCkucmVwbHkoZXJyb3IpO1xuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoXG4gICAgICAgICgpID0+IGdldFdhbGxldChiaXRnbywgcmVjb3ZlcnlDb2luLCByZWNvdmVyeVdhbGxldElkKSxcbiAgICAgICAgRXJyb3IoYGNvdWxkIG5vdCBnZXQgd2FsbGV0ICR7cmVjb3ZlcnlXYWxsZXRJZH0gZnJvbSB2MSBvciB2MjogQXBpUmVzcG9uc2VFcnJvcjogJHtlcnJvcn1gKVxuICAgICAgKTtcbiAgICAgIG5vY2tWMldhbGxldC5kb25lKCk7XG4gICAgICBub2NrVjFXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgdjIgZW5kcG9pbnQgcmVzcG9uZHMgd2l0aCBhIDV4eCBlcnJvcicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBlcnJvclJlc3BvbnNlcyA9IFs1MDBdO1xuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JSZXNwb25zZXMpIHtcbiAgICAgIGNvbnN0IG5vY2tWMldhbGxldCA9IG5vY2tCaXRHbyhiaXRnbylcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke3JlY292ZXJ5Q29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtyZWNvdmVyeVdhbGxldElkfWApXG4gICAgICAgIC5yZXBseShlcnJvcik7XG4gICAgICBhd2FpdCBhc3NlcnQucmVqZWN0cygoKSA9PiBnZXRXYWxsZXQoYml0Z28sIHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCksIHtcbiAgICAgICAgbmFtZTogJ0FwaVJlc3BvbnNlRXJyb3InLFxuICAgICAgICBzdGF0dXM6IDUwMCxcbiAgICAgICAgcmVzdWx0OiB7fSxcbiAgICAgICAgaW52YWxpZFRva2VuOiBmYWxzZSxcbiAgICAgICAgbmVlZHNPVFA6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgICBub2NrVjJXYWxsZXQuZG9uZSgpO1xuICAgIH1cbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2lzV2FsbGV0QWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgY29pbiA9IGdldFV0eG9Db2luKCdidGMnKTtcbiAgY29uc3Qgd2FsbGV0SWQgPSAnNWFiYWNlYmUyOGQ3MmZiZDA3ZTBiOGNiYmEwZmYzOWUnO1xuICBjb25zdCB0ZXN0QWRkcmVzcyA9ICczR0J5Z3NHUHZUZGZLTWJxNEFLWlpSdTFzUE1XUEVzQmZkJztcblxuICBmdW5jdGlvbiBub2NrQWRkcmVzcyhzdGF0dXNDb2RlOiBudW1iZXIsIGJvZHk/OiB1bmtub3duKTogbm9jay5TY29wZSB7XG4gICAgcmV0dXJuIG5vY2tCaXRHbygpXG4gICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHt3YWxsZXRJZH0vYWRkcmVzcy8ke3Rlc3RBZGRyZXNzfWApXG4gICAgICAucmVwbHkoc3RhdHVzQ29kZSwgYm9keSA/PyB7fSk7XG4gIH1cblxuICBiZWZvcmUoJ3NldHVwIHdhbGxldCBub2NrJywgZnVuY3Rpb24gKCkge1xuICAgIG5vY2tCaXRHbygpXG4gICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHt3YWxsZXRJZH1gKVxuICAgICAgLnJlcGx5KDIwMCwge1xuICAgICAgICBpZDogd2FsbGV0SWQsXG4gICAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgICAgbGFiZWw6ICdpc1dhbGxldEFkZHJlc3MgdGVzdCcsXG4gICAgICAgIGtleXM6IGtleWNoYWluc0Jhc2U1OC5tYXAoKGspID0+IGdldFNlZWQoay5wdWIpLnRvU3RyaW5nKCdoZXgnKSksXG4gICAgICB9KVxuICAgICAgLnBlcnNpc3QoKTtcbiAgICBrZXljaGFpbnNCYXNlNTguZm9yRWFjaCgoaykgPT4ge1xuICAgICAgbm9ja0JpdEdvKClcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0va2V5LyR7Z2V0U2VlZChrLnB1YikudG9TdHJpbmcoJ2hleCcpfWApXG4gICAgICAgIC5yZXBseSgyMDAsIGspXG4gICAgICAgIC5wZXJzaXN0KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICBub2NrLmNsZWFuQWxsKCk7XG4gIH0pO1xuXG4gIGl0KCdyZXR1cm5zIHRydWUgd2hlbiBhZGRyZXNzIGJlbG9uZ3MgdG8gd2FsbGV0JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIG5vY2tBZGRyZXNzKDIwMCwgeyBhZGRyZXNzOiB0ZXN0QWRkcmVzcywgY2hhaW46IDAsIGluZGV4OiAwLCBjb2luOiBjb2luLmdldENoYWluKCksIHdhbGxldDogd2FsbGV0SWQgfSk7XG4gICAgY29uc3Qgd2FsbGV0ID0gYXdhaXQgZ2V0V2FsbGV0KGRlZmF1bHRCaXRHbywgY29pbiwgd2FsbGV0SWQpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChhd2FpdCBpc1dhbGxldEFkZHJlc3Mod2FsbGV0LCB0ZXN0QWRkcmVzcyksIHRydWUpO1xuICB9KTtcblxuICBpdCgncmV0dXJucyBmYWxzZSBmb3IgNDA0IChhZGRyZXNzIG5vdCBmb3VuZCBpbiB3YWxsZXQpJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIG5vY2tBZGRyZXNzKDQwNCk7XG4gICAgY29uc3Qgd2FsbGV0ID0gYXdhaXQgZ2V0V2FsbGV0KGRlZmF1bHRCaXRHbywgY29pbiwgd2FsbGV0SWQpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChhd2FpdCBpc1dhbGxldEFkZHJlc3Mod2FsbGV0LCB0ZXN0QWRkcmVzcyksIGZhbHNlKTtcbiAgfSk7XG5cbiAgaXQoJ3JlLXRocm93cyBvbiA1MDMgKHNlcnZlciBlcnJvciBkdXJpbmcgcmVjb3Zlcnkgc2lsZW50bHkgZXhjbHVkZXMgb3V0cHV0cyknLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgbm9ja0FkZHJlc3MoNTAzKTtcbiAgICBjb25zdCB3YWxsZXQgPSBhd2FpdCBnZXRXYWxsZXQoZGVmYXVsdEJpdEdvLCBjb2luLCB3YWxsZXRJZCk7XG4gICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoKCkgPT4gaXNXYWxsZXRBZGRyZXNzKHdhbGxldCwgdGVzdEFkZHJlc3MpLCB7IHN0YXR1czogNTAzIH0pO1xuICB9KTtcblxuICBpdCgncmUtdGhyb3dzIG9uIDUwMCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBub2NrQWRkcmVzcyg1MDApO1xuICAgIGNvbnN0IHdhbGxldCA9IGF3YWl0IGdldFdhbGxldChkZWZhdWx0Qml0R28sIGNvaW4sIHdhbGxldElkKTtcbiAgICBhd2FpdCBhc3NlcnQucmVqZWN0cygoKSA9PiBpc1dhbGxldEFkZHJlc3Mod2FsbGV0LCB0ZXN0QWRkcmVzcyksIHsgc3RhdHVzOiA1MDAgfSk7XG4gIH0pO1xuXG4gIGl0KCdyZS10aHJvd3Mgb24gNDAxIChhdXRoIGZhaWx1cmUpJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIG5vY2tBZGRyZXNzKDQwMSk7XG4gICAgY29uc3Qgd2FsbGV0ID0gYXdhaXQgZ2V0V2FsbGV0KGRlZmF1bHRCaXRHbywgY29pbiwgd2FsbGV0SWQpO1xuICAgIGF3YWl0IGFzc2VydC5yZWplY3RzKCgpID0+IGlzV2FsbGV0QWRkcmVzcyh3YWxsZXQsIHRlc3RBZGRyZXNzKSwgeyBzdGF0dXM6IDQwMSB9KTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2NvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHNjcmlwdFB1YktleSA9IEJ1ZmZlci5mcm9tKCdhOTE0OWYwYmY1MWZhYjRkMzNhYjIxOTc3ZTFiODlmNzc2ZjY0MTYxZWY0Mjg3JywgJ2hleCcpO1xuICBpdCgnc2hvdWxkIGNvbnZlcnQgTS4uLiBQMlNIIGFkZHJlc3MgdG8gMy4uLiBsZWdhY3kgZm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIC8vIFRoZXNlIHR3byBhZGRyZXNzZXMgcmVwcmVzZW50IHRoZSBzYW1lIHVuZGVybHlpbmcgc2NyaXB0IGhhc2g6XG4gICAgLy8gLSBNTlE3emtnTXNhVjY3cnNqQTNKdVA1OVJDNXd4Ulhwd2dFIGlzIHRoZSBMVEMgZm9ybWF0IChzY3JpcHRIYXNoIDB4MzIpXG4gICAgLy8gLSAzR0J5Z3NHUHZUZGZLTWJxNEFLWlpSdTFzUE1XUEVzQmZkIGlzIHRoZSBCVEMgZm9ybWF0IChzY3JpcHRIYXNoIDB4MDUpXG4gICAgLy8gY29uc3QgbHRjQWRkcmVzcyA9ICdNTlE3emtnTXNhVjY3cnNqQTNKdVA1OVJDNXd4Ulhwd2dFJztcbiAgICBjb25zdCBsdGNBZGRyZXNzID0gd2FzbUFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdFdpdGhDb2luKHNjcmlwdFB1YktleSwgJ2x0YycpO1xuICAgIGNvbnN0IHRsdGNBZGRyZXNzID0gd2FzbUFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdFdpdGhDb2luKHNjcmlwdFB1YktleSwgJ3RsdGMnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwobHRjQWRkcmVzcywgJ01OUTd6a2dNc2FWNjdyc2pBM0p1UDU5UkM1d3hSWHB3Z0UnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGx0Y0FkZHJlc3MsICdRYjZ3c2Q0ZloyQzZmS3pSTVB5VEc1S2lFODFXNlFDeGhVJyk7XG5cbiAgICBjb25zdCBsZWdhY3lBZGRyZXNzID0gY29udmVydEx0Y0FkZHJlc3NUb0xlZ2FjeUZvcm1hdChsdGNBZGRyZXNzLCAnbHRjJyk7XG4gICAgY29uc3QgZXhwZWN0ZWRMdGNMZWdhY3lBZGRyZXNzID0gJzNHQnlnc0dQdlRkZktNYnE0QUtaWlJ1MXNQTVdQRXNCZmQnO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChsZWdhY3lBZGRyZXNzLCBleHBlY3RlZEx0Y0xlZ2FjeUFkZHJlc3MpO1xuXG4gICAgY29uc3QgZXhwZWN0ZWRUbHRjTGVnYWN5QWRkcmVzcyA9ICcyTjdrQmtjQ1JYdjkxWDlFTmpId1NCTnRINWpaZzh5eWU2cic7XG4gICAgY29uc3QgdGx0Y0xlZ2FjeUFkZHJlc3MgPSBjb252ZXJ0THRjQWRkcmVzc1RvTGVnYWN5Rm9ybWF0KHRsdGNBZGRyZXNzLCAndGx0YycpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbCh0bHRjTGVnYWN5QWRkcmVzcywgZXhwZWN0ZWRUbHRjTGVnYWN5QWRkcmVzcyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgY29udmVydCBNRDY4UHNkaGVLeGNZc3JWTHlaUlhnb1NETG5CMU1kVnRFIHRvIGxlZ2FjeSBmb3JtYXQnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgYWRkcmVzcyA9ICdNRDY4UHNkaGVLeGNZc3JWTHlaUlhnb1NETG5CMU1kVnRFJztcbiAgICBjb25zdCBsZWdhY3lBZGRyZXNzID0gY29udmVydEx0Y0FkZHJlc3NUb0xlZ2FjeUZvcm1hdChhZGRyZXNzLCAnbHRjJyk7XG5cbiAgICAvLyBTaG91bGQgc3RhcnQgd2l0aCAnMycgKGxlZ2FjeSBCVEMgUDJTSCBmb3JtYXQpXG4gICAgYXNzZXJ0Lm9rKGxlZ2FjeUFkZHJlc3Muc3RhcnRzV2l0aCgnMycpLCBgRXhwZWN0ZWQgYWRkcmVzcyB0byBzdGFydCB3aXRoICczJywgZ290OiAke2xlZ2FjeUFkZHJlc3N9YCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgbm90IG1vZGlmeSBiZWNoMzIgYWRkcmVzc2VzJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGJlY2gzMkFkZHJlc3MgPSAnbHRjMXFncmw4enBuZHNrbGFhOXN3Z2Q1dmV2eXhteDV4NjN2Y3JsN2RrNCc7XG4gICAgY29uc3QgcmVzdWx0ID0gY29udmVydEx0Y0FkZHJlc3NUb0xlZ2FjeUZvcm1hdChiZWNoMzJBZGRyZXNzLCAnbHRjJyk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdCwgYmVjaDMyQWRkcmVzcyk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
352
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3NDaGFpblJlY292ZXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3JlY292ZXJ5L2Nyb3NzQ2hhaW5SZWNvdmVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUVqQyw2QkFBOEI7QUFFOUIsOENBQTBDO0FBQzFDLGdEQUE2RTtBQUM3RSw2Q0FBK0I7QUFFL0Isc0NBU3NCO0FBQ3RCLDhDQUFrRTtBQUVsRSxrQ0FVaUI7QUFDakIsaURBQThDO0FBRTlDLGlDQUF3RDtBQUV4RCxTQUFTLFFBQVEsQ0FBQyxDQUFpQjtJQUNqQyxPQUFPLElBQUEsa0JBQU8sRUFBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxJQUFzQixFQUFFLFFBQWdCLEVBQUUsVUFBa0M7SUFDOUYsT0FBTztRQUNMLElBQUEscUJBQVMsR0FBRTthQUNSLEdBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxRQUFRLEVBQUUsQ0FBQzthQUNwRCxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ1YsRUFBRSxFQUFFLFFBQVE7WUFDWixJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNyQixLQUFLLEVBQUUsb0JBQW9CO1lBQzNCLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekMsQ0FBQzthQUNELE9BQU8sRUFBRTtRQUNaLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3RCLElBQUEscUJBQVMsR0FBRTthQUNSLEdBQUcsQ0FBQyxXQUFXLElBQUksQ0FBQyxRQUFRLEVBQUUs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QUM7UUFFdEUsaURBQWlEO1FBQ2pELE1BQU0sQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSw0Q0FBNEMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUN4RyxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxvQ0FBb0MsRUFBRTtRQUN2QyxNQUFNLGFBQWEsR0FBRyw2Q0FBNkMsQ0FBQztRQUNwRSxNQUFNLE1BQU0sR0FBRyxJQUFBLHFDQUErQixFQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRSxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCBub2NrID0gcmVxdWlyZSgnbm9jaycpO1xuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGdldFNlZWQgfSBmcm9tICdAYml0Z28vc2RrLXRlc3QnO1xuaW1wb3J0IHsgYWRkcmVzcyBhcyB3YXNtQWRkcmVzcywgZml4ZWRTY3JpcHRXYWxsZXQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCAqIGFzIHNpbm9uIGZyb20gJ3Npbm9uJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RVdHhvQ29pbixcbiAgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkLFxuICBDcm9zc0NoYWluUmVjb3ZlcnlVbnNpZ25lZCxcbiAgZ2V0V2FsbGV0LFxuICBpc1dhbGxldEFkZHJlc3MsXG4gIHN1cHBvcnRlZENyb3NzQ2hhaW5SZWNvdmVyaWVzLFxuICBnZW5lcmF0ZUFkZHJlc3MsXG4gIGNvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQsXG59IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5pbXBvcnQgeyBpc01haW5uZXRDb2luLCBpc1Rlc3RuZXRDb2luIH0gZnJvbSAnLi4vLi4vLi4vc3JjL25hbWVzJztcbmltcG9ydCB0eXBlIHsgV2FsbGV0VW5zcGVudCB9IGZyb20gJy4uLy4uLy4uL3NyYy91bnNwZW50JztcbmltcG9ydCB7XG4gIGdldEZpeHR1cmUsXG4gIGtleWNoYWluc0Jhc2U1OCxcbiAgS2V5Y2hhaW5CYXNlNTgsXG4gIGFzc2VydEVxdWFsSlNPTixcbiAgdXR4b0NvaW5zLFxuICBnZXREZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gIGRlZmF1bHRCaXRHbyxcbiAgZ2V0VXR4b0NvaW4sXG4gIGNyZWF0ZVdhc21XYWxsZXRVbnNwZW50LFxufSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IG5vY2tCaXRHbyB9IGZyb20gJy4uL3V0aWwvbm9ja0JpdEdvJztcblxuaW1wb3J0IHsgV2FzbUNyb3NzQ2hhaW5SZWNvdmVyeVByb3ZpZGVyIH0gZnJvbSAnLi9tb2NrJztcblxuZnVuY3Rpb24gZ2V0S2V5SWQoazogS2V5Y2hhaW5CYXNlNTgpOiBzdHJpbmcge1xuICByZXR1cm4gZ2V0U2VlZChrLnB1YikudG9TdHJpbmcoJ2hleCcpO1xufVxuXG5mdW5jdGlvbiBub2NrV2FsbGV0KGNvaW46IEFic3RyYWN0VXR4b0NvaW4sIHdhbGxldElkOiBzdHJpbmcsIHdhbGxldEtleXM6IFRyaXBsZTxLZXljaGFpbkJhc2U1OD4pOiBub2NrLlNjb3BlW10ge1xuICByZXR1cm4gW1xuICAgIG5vY2tCaXRHbygpXG4gICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHt3YWxsZXRJZH1gKVxuICAgICAgLnJlcGx5KDIwMCwge1xuICAgICAgICBpZDogd2FsbGV0SWQsXG4gICAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgICAgbGFiZWw6ICdjcm9zc0NoYWluUmVjb3ZlcnknLFxuICAgICAgICBrZXlzOiB3YWxsZXRLZXlzLm1hcCgoaykgPT4gZ2V0S2V5SWQoaykpLFxuICAgICAgfSlcbiAgICAgIC5wZXJzaXN0KCksXG4gICAgLi4ud2FsbGV0S2V5cy5tYXAoKGspID0+XG4gICAgICBub2NrQml0R28oKVxuICAgICAgICAuZ2V0KGAvYXBpL3YyLyR7Y29pbi5nZXRDaGFpbigpfS9rZXkvJHtnZXRLZXlJZChrKX1gKVxuICAgICAgICAucmVwbHkoMjAwLCBrKVxuICAgICAgICAucGVyc2lzdCgpXG4gICAgKSxcbiAgXTtcbn1cblxudHlwZSBBZGRyZXNzID0ge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIGNoYWluOiBudW1iZXI7XG4gIGluZGV4OiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBub2NrV2FsbGV0QWRkcmVzcyhjb2luOiBBYnN0cmFjdFV0eG9Db2luLCB3YWxsZXRJZDogc3RyaW5nLCBhZGRyZXNzOiBBZGRyZXNzKTogbm9jay5TY29wZSB7XG4gIHJldHVybiBub2NrQml0R28oKVxuICAgIC5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L3dhbGxldC8ke3dhbGxldElkfS9hZGRyZXNzLyR7YWRkcmVzcy5hZGRyZXNzfWApXG4gICAgLnJlcGx5KDIwMCwge1xuICAgICAgYWRkcmVzczogYWRkcmVzcy5hZGRyZXNzLFxuICAgICAgY2hhaW46IGFkZHJlc3MuY2hhaW4sXG4gICAgICBpbmRleDogYWRkcmVzcy5pbmRleCxcbiAgICAgIGNvaW46IGNvaW4uZ2V0Q2hhaW4oKSxcbiAgICAgIHdhbGxldDogd2FsbGV0SWQsXG4gICAgfSlcbiAgICAucGVyc2lzdCgpO1xufVxuXG4vKipcbiAqIFNldHVwIHRlc3QgZm9yIGNyb3NzLWNoYWluIHJlY292ZXJ5LlxuICpcbiAqIFVzZXJzIGNhbiByZWNlaXZlIGRlcG9zaXRzIG9uIHdhbGxldCBhZGRyZXNzZXMgdGhhdCBhcmUgb24gYSBkaWZmZXJlbnQgY2hhaW4uXG4gKlxuICogRm9yIGluc3RhbmNlLCBhIHVzZXIgY2FuIHJlY2VpdmUgbGl0ZWNvaW4gb24gYSBiaXRjb2luIHdhbGxldC5cbiAqIFRoaXMgbWVhbnMgdGhhdCB0aGUgbGl0ZWNvaW4gYmxvY2tjaGFpbiBoYXMgYSB0cmFuc2FjdGlvbiB3aXRoIG91dHB1dHMgdGhhdCBhcmUgc3BlbmRhYmxlXG4gKiB3aXRoIGtleXMgdGhhdCB3ZXJlIG9yaWdpbmFsbHkgY3JlYXRlZCBmb3IgYSBCaXRHbyBCVEMgd2FsbGV0LlxuICogSW4gdGhpcyBleGFtcGxlLCBMVEMgaXMgdGhlIFwic291cmNlIGNvaW5cIiBhbmQgQlRDIGlzIHRoZSBcInJlY292ZXJ5IGNvaW5cIlxuICogSW4gY2FzZXMgbGlrZSB0aGVzZSB3ZSBtdXN0IHVzZSBjb25zdHJ1Y3QgYSB0cmFuc2FjdGlvbiBmb3IgbGl0ZWNvaW4gbmV0d29yayB1c2luZyBrZXlzIG9mIHRoZVxuICogYml0Y29pbiB3YWxsZXQuXG4gKlxuICogQHBhcmFtIHNvdXJjZUNvaW4gLSB0aGUgY29pbiB0byBjb25zdHJ1Y3QgdGhlIHRyYW5zYWN0aW9uIGZvclxuICogQHBhcmFtIHJlY292ZXJ5Q29pbiAtIHRoZSBjb2luIHRoZSByZWNlaXZpbmcgd2FsbGV0IHdhcyBzZXQgdXAgZm9yXG4gKi9cbi8vIEdldCB3YXNtIHdhbGxldCBrZXlzIGZvciBzaWduYXR1cmUgdmVyaWZpY2F0aW9uXG5jb25zdCB7IHdhbGxldEtleXM6IHdhc21XYWxsZXRLZXlzLCB4cHJpdnMgfSA9IGdldERlZmF1bHRXYXNtV2FsbGV0S2V5cygpO1xuXG5mdW5jdGlvbiBydW48VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4oc291cmNlQ29pbjogQWJzdHJhY3RVdHhvQ29pbiwgcmVjb3ZlcnlDb2luOiBBYnN0cmFjdFV0eG9Db2luKSB7XG4gIGRlc2NyaWJlKGBDcm9zcy1DaGFpbiBSZWNvdmVyeSBbc291cmNlQ29pbj0ke3NvdXJjZUNvaW4uZ2V0Q2hhaW4oKX0gcmVjb3ZlcnlDb2luPSR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9XWAsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCByZWNvdmVyeVdhbGxldElkID0gJzVhYmFjZWJlMjhkNzJmYmQwN2UwYjhjYmJhMGZmMzllJztcbiAgICAvLyB0aGUgYWRkcmVzcyB0aGUgYWNjaWRlbnRhbCBkZXBvc2l0IHdlbnQgdG8sIGluIGJvdGggc291cmNlQ29pbiBhbmQgYWRkcmVzc0NvaW4gZm9ybWF0c1xuICAgIGNvbnN0IFtkZXBvc2l0QWRkcmVzc1NvdXJjZUNvaW4sIGRlcG9zaXRBZGRyZXNzUmVjb3ZlcnlDb2luXSA9IFtzb3VyY2VDb2luLCByZWNvdmVyeUNvaW5dLm1hcCgoY29pbikgPT4gKHtcbiAgICAgIGFkZHJlc3M6IGdlbmVyYXRlQWRkcmVzcyhjb2luLm5hbWUsIHsga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsIGNoYWluOiAwLCBpbmRleDogMCB9KSxcbiAgICAgIGNoYWluOiAwLFxuICAgICAgaW5kZXg6IDAsXG4gICAgfSkpO1xuICAgIGNvbnN0IGNoYWluID0gMDtcbiAgICBjb25zdCBpbmRleCA9IDE7XG4gICAgLy8gdGhlIGFkZHJlc3Mgd2hlcmUgd2Ugd2FudCB0byByZWNvdmVyIG91ciBmdW5kcyB0b1xuICAgIGNvbnN0IHJlY292ZXJ5QWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzcyhzb3VyY2VDb2luLm5hbWUsIHtcbiAgICAgIGtleWNoYWluczoga2V5Y2hhaW5zQmFzZTU4LFxuICAgICAgY2hhaW4sXG4gICAgICBpbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCBub2Nrczogbm9jay5TY29wZVtdID0gW107XG5cbiAgICAvLyBDcmVhdGUgcmVjb3ZlcnkgdW5zcGVudCB1c2luZyB3YXNtLXV0eG8gKG5vIHV0eG9saWIgZGVwZW5kZW5jeSlcbiAgICBmdW5jdGlvbiBnZXRSZWNvdmVyeVVuc3BlbnRzKCk6IFdhbGxldFVuc3BlbnQ8VE51bWJlcj5bXSB7XG4gICAgICBjb25zdCBkZXBvc2l0VmFsdWUgPSAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50JyA/IEJpZ0ludCgxZTgpIDogMWU4KSBhcyBUTnVtYmVyO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgY3JlYXRlV2FzbVdhbGxldFVuc3BlbnQ8VE51bWJlcj4oZGVwb3NpdEFkZHJlc3NTb3VyY2VDb2luLmFkZHJlc3MsIGNoYWluLCBpbmRleCwgZGVwb3NpdFZhbHVlLCBzb3VyY2VDb2luLm5hbWUpLFxuICAgICAgXTtcbiAgICB9XG5cbiAgICBiZWZvcmUoJ3NldHVwIG5vY2tzJywgZnVuY3Rpb24gKCkge1xuICAgICAgbm9ja3MucHVzaCguLi5ub2NrV2FsbGV0KHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCwga2V5Y2hhaW5zQmFzZTU4KSk7XG4gICAgICBub2Nrcy5wdXNoKG5vY2tXYWxsZXRBZGRyZXNzKHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCwgZGVwb3NpdEFkZHJlc3NSZWNvdmVyeUNvaW4pKTtcbiAgICB9KTtcblxuICAgIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vY2tzLmZvckVhY2goKG4pID0+IG4uZG9uZSgpKTtcbiAgICB9KTtcblxuICAgIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vY2suY2xlYW5BbGwoKTtcbiAgICB9KTtcblxuICAgIGFmdGVyRWFjaChmdW5jdGlvbiAoKSB7XG4gICAgICBzaW5vbi5yZXN0b3JlKCk7XG4gICAgfSk7XG5cbiAgICBhc3luYyBmdW5jdGlvbiBtYXRjaEZpeHR1cmUoXG4gICAgICBuYW1lOiBzdHJpbmcsXG4gICAgICByZWNvdmVyeTogQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+IHwgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj5cbiAgICApIHtcbiAgICAgIGxldCByZWNvdmVyeU9iajogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7IC4uLnJlY292ZXJ5IH07XG4gICAgICBpZiAoc291cmNlQ29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50Jykge1xuICAgICAgICByZWNvdmVyeU9iaiA9IEpTT04ucGFyc2UoXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkocmVjb3ZlcnlPYmosIChrLCB2KSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHYgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgIHJldHVybiB2LnRvU3RyaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gdjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgYXNzZXJ0RXF1YWxKU09OKFxuICAgICAgICByZWNvdmVyeU9iaixcbiAgICAgICAgYXdhaXQgZ2V0Rml4dHVyZShzb3VyY2VDb2luLCBgcmVjb3ZlcnkvY3Jvc3NDaGFpblJlY292ZXJ5LSR7cmVjb3ZlcnlDb2luLmdldENoYWluKCl9LSR7bmFtZX1gLCByZWNvdmVyeU9iailcbiAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tSZWNvdmVyeVBzYnRTaWduYXR1cmUocHNidEhleDogc3RyaW5nKSB7XG4gICAgICAvLyBQYXJzZSB1c2luZyB3YXNtLXV0eG8gZm9yIHNpZ25hdHVyZSB2ZXJpZmljYXRpb25cbiAgICAgIGNvbnN0IHdhc21Qc2J0ID0gZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LmZyb21CeXRlcyhCdWZmZXIuZnJvbShwc2J0SGV4LCAnaGV4JyksIHNvdXJjZUNvaW4ud2FzbU5hbWUpO1xuICAgICAgY29uc3QgcGFyc2VkID0gd2FzbVBzYnQucGFyc2VUcmFuc2FjdGlvbldpdGhXYWxsZXRLZXlzKHdhc21XYWxsZXRLZXlzLCB7IHJlcGxheVByb3RlY3Rpb246IHsgcHVibGljS2V5czogW10gfSB9KTtcbiAgICAgIGNvbnN0IHVuc3BlbnRzID0gZ2V0UmVjb3ZlcnlVbnNwZW50cygpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHBhcnNlZC5pbnB1dHMubGVuZ3RoLCB1bnNwZW50cy5sZW5ndGgpO1xuICAgICAgLy8gVmVyaWZ5IHVzZXIga2V5IGhhcyBzaWduZWQgZWFjaCBpbnB1dCAoc2FtZSBwYXR0ZXJuIGFzIGJhY2t1cEtleVJlY292ZXJ5IHRlc3QpXG4gICAgICBwYXJzZWQuaW5wdXRzLmZvckVhY2goKF8sIGkpID0+IHtcbiAgICAgICAgY29uc3QgdXNlclNpZ25lZCA9IHdhc21Qc2J0LnZlcmlmeVNpZ25hdHVyZShpLCB4cHJpdnNbMF0pO1xuICAgICAgICBhc3NlcnQuc3RyaWN0RXF1YWwodXNlclNpZ25lZCwgdHJ1ZSwgYElucHV0ICR7aX0gc2hvdWxkIGJlIHNpZ25lZCBieSB1c2VyIGtleWApO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaXQoJ3Nob3VsZCB0ZXN0IHNpZ25lZCBjcm9zcyBjaGFpbiByZWNvdmVyeScsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGRlcG9zaXRVbnNwZW50ID0gZ2V0UmVjb3ZlcnlVbnNwZW50cygpWzBdO1xuICAgICAgLy8gUGFyc2UgdHhpZCBmcm9tIHRoZSB1bnNwZW50IGlkIChmb3JtYXQ6IHR4aWQ6dm91dClcbiAgICAgIGNvbnN0IGRlcG9zaXRUeGlkID0gZGVwb3NpdFVuc3BlbnQuaWQuc3BsaXQoJzonKVswXTtcbiAgICAgIC8vIFVzZSB0aGUgZGVwb3NpdCBhZGRyZXNzIGFzIHRoZSBpbnB1dCBhZGRyZXNzIChzaW11bGF0aW5nIGEgcDJzaCBpbnB1dClcbiAgICAgIGNvbnN0IGlucHV0QWRkcmVzcyA9IGdlbmVyYXRlQWRkcmVzcyhzb3VyY2VDb2luLm5hbWUsIHsga2V5Y2hhaW5zOiBrZXljaGFpbnNCYXNlNTgsIGNoYWluOiAwLCBpbmRleDogMiB9KTtcbiAgICAgIGNvbnN0IGdldFJlY292ZXJ5UHJvdmlkZXJTdHViID0gc2lub25cbiAgICAgICAgLnN0dWIoQWJzdHJhY3RVdHhvQ29pbi5wcm90b3R5cGUsICdnZXRSZWNvdmVyeVByb3ZpZGVyJylcbiAgICAgICAgLnJldHVybnMobmV3IFdhc21Dcm9zc0NoYWluUmVjb3ZlcnlQcm92aWRlcjxUTnVtYmVyPihzb3VyY2VDb2luLCBkZXBvc2l0VW5zcGVudCwgW2lucHV0QWRkcmVzc10pKTtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgICAgcmVjb3ZlcnlDb2luLFxuICAgICAgICB0eGlkOiBkZXBvc2l0VHhpZCxcbiAgICAgICAgcmVjb3ZlcnlBZGRyZXNzLFxuICAgICAgICB3YWxsZXQ6IHJlY292ZXJ5V2FsbGV0SWQsXG4gICAgICB9O1xuICAgICAgY29uc3Qgc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHhwcnY6IGtleWNoYWluc0Jhc2U1OFswXS5wcnYsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5U2lnbmVkPFROdW1iZXI+O1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGdldFJlY292ZXJ5UHJvdmlkZXJTdHViLmNhbGxDb3VudCwgMSk7XG5cbiAgICAgIC8vIFZlcmlmeSBmaXh0dXJlIG1hdGNoXG4gICAgICBhd2FpdCBtYXRjaEZpeHR1cmUoJ3NpZ25lZCcsIHNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgLy8gVmVyaWZ5IFBTQlQgaGFzIHZhbGlkIHNpZ25hdHVyZXMgKHVzZXIga2V5IHNpZ25lZClcbiAgICAgIGNoZWNrUmVjb3ZlcnlQc2J0U2lnbmF0dXJlKHNpZ25lZFJlY292ZXJ5LnR4SGV4IGFzIHN0cmluZyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHRlc3QgdW5zaWduZWQgY3Jvc3MgY2hhaW4gcmVjb3ZlcnknLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBkZXBvc2l0VW5zcGVudCA9IGdldFJlY292ZXJ5VW5zcGVudHMoKVswXTtcbiAgICAgIC8vIFBhcnNlIHR4aWQgZnJvbSB0aGUgdW5zcGVudCBpZCAoZm9ybWF0OiB0eGlkOnZvdXQpXG4gICAgICBjb25zdCBkZXBvc2l0VHhpZCA9IGRlcG9zaXRVbnNwZW50LmlkLnNwbGl0KCc6JylbMF07XG4gICAgICAvLyBVc2UgdGhlIGRlcG9zaXQgYWRkcmVzcyBhcyB0aGUgaW5wdXQgYWRkcmVzcyAoc2ltdWxhdGluZyBhIHAyc2ggaW5wdXQpXG4gICAgICBjb25zdCBpbnB1dEFkZHJlc3MgPSBnZW5lcmF0ZUFkZHJlc3Moc291cmNlQ29pbi5uYW1lLCB7IGtleWNoYWluczoga2V5Y2hhaW5zQmFzZTU4LCBjaGFpbjogMCwgaW5kZXg6IDIgfSk7XG4gICAgICBjb25zdCBnZXRSZWNvdmVyeVByb3ZpZGVyU3R1YiA9IHNpbm9uXG4gICAgICAgIC5zdHViKEFic3RyYWN0VXR4b0NvaW4ucHJvdG90eXBlLCAnZ2V0UmVjb3ZlcnlQcm92aWRlcicpXG4gICAgICAgIC5yZXR1cm5zKG5ldyBXYXNtQ3Jvc3NDaGFpblJlY292ZXJ5UHJvdmlkZXI8VE51bWJlcj4oc291cmNlQ29pbiwgZGVwb3NpdFVuc3BlbnQsIFtpbnB1dEFkZHJlc3NdKSk7XG4gICAgICBjb25zdCBwYXJhbXMgPSB7XG4gICAgICAgIHJlY292ZXJ5Q29pbixcbiAgICAgICAgdHhpZDogZGVwb3NpdFR4aWQsXG4gICAgICAgIHJlY292ZXJ5QWRkcmVzcyxcbiAgICAgICAgd2FsbGV0OiByZWNvdmVyeVdhbGxldElkLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHVuc2lnbmVkUmVjb3ZlcnkgPSAoYXdhaXQgc291cmNlQ29pbi5yZWNvdmVyRnJvbVdyb25nQ2hhaW48VE51bWJlcj4oe1xuICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgIHNpZ25lZDogZmFsc2UsXG4gICAgICB9KSkgYXMgQ3Jvc3NDaGFpblJlY292ZXJ5VW5zaWduZWQ8VE51bWJlcj47XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0UmVjb3ZlcnlQcm92aWRlclN0dWIuY2FsbENvdW50LCAxKTtcblxuICAgICAgLy8gVmVyaWZ5IGZpeHR1cmUgbWF0Y2hcbiAgICAgIGF3YWl0IG1hdGNoRml4dHVyZSgndW5zaWduZWQnLCB1bnNpZ25lZFJlY292ZXJ5KTtcblxuICAgICAgLy8gVmVyaWZ5IHRoZSB1bnNpZ25lZCBQU0JUIGNhbiBiZSBzaWduZWRcbiAgICAgIGNvbnN0IHNpZ25lZFR4ID0gYXdhaXQgc291cmNlQ29pbi5zaWduVHJhbnNhY3Rpb248VE51bWJlcj4oe1xuICAgICAgICB0eFByZWJ1aWxkOiB1bnNpZ25lZFJlY292ZXJ5LFxuICAgICAgICBwcnY6IGtleWNoYWluc0Jhc2U1OFswXS5wcnYsXG4gICAgICAgIHB1YnM6IGtleWNoYWluc0Jhc2U1OC5tYXAoKGspID0+IGsucHViKSBhcyBUcmlwbGU8c3RyaW5nPixcbiAgICAgIH0pO1xuICAgICAgY2hlY2tSZWNvdmVyeVBzYnRTaWduYXR1cmUoKHNpZ25lZFR4IGFzIHsgdHhIZXg6IHN0cmluZyB9KS50eEhleCk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBpc1N1cHBvcnRlZENyb3NzQ2hhaW5SZWNvdmVyeShzb3VyY2VDb2luOiBBYnN0cmFjdFV0eG9Db2luLCByZWNvdmVyeUNvaW46IEFic3RyYWN0VXR4b0NvaW4pOiBib29sZWFuIHtcbiAgcmV0dXJuIHN1cHBvcnRlZENyb3NzQ2hhaW5SZWNvdmVyaWVzW3NvdXJjZUNvaW4uZ2V0RmFtaWx5KCldPy5pbmNsdWRlcyhyZWNvdmVyeUNvaW4uZ2V0RmFtaWx5KCkpO1xufVxuXG51dHhvQ29pbnMuZm9yRWFjaCgoY29pbikgPT4ge1xuICB1dHhvQ29pbnNcbiAgICAuZmlsdGVyKFxuICAgICAgKG90aGVyQ29pbikgPT5cbiAgICAgICAgY29pbiAhPT0gb3RoZXJDb2luICYmXG4gICAgICAgIGlzU3VwcG9ydGVkQ3Jvc3NDaGFpblJlY292ZXJ5KGNvaW4sIG90aGVyQ29pbikgJiZcbiAgICAgICAgKChpc01haW5uZXRDb2luKGNvaW4ubmFtZSkgJiYgaXNNYWlubmV0Q29pbihvdGhlckNvaW4ubmFtZSkpIHx8XG4gICAgICAgICAgKGlzVGVzdG5ldENvaW4oY29pbi5uYW1lKSAmJiBpc1Rlc3RuZXRDb2luKG90aGVyQ29pbi5uYW1lKSkpXG4gICAgKVxuICAgIC5mb3JFYWNoKChvdGhlckNvaW4pID0+IHtcbiAgICAgIGlmIChjb2luLmFtb3VudFR5cGUgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIHJ1bjxiaWdpbnQ+KGNvaW4sIG90aGVyQ29pbik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBydW4oY29pbiwgb3RoZXJDb2luKTtcbiAgICAgIH1cbiAgICB9KTtcbn0pO1xuXG5kZXNjcmliZShgQ3Jvc3MtQ2hhaW4gUmVjb3ZlcnkgZ2V0V2FsbGV0YCwgYXN5bmMgZnVuY3Rpb24gKCkge1xuICBjb25zdCBiaXRnbyA9IGRlZmF1bHRCaXRHbztcbiAgY29uc3QgcmVjb3ZlcnlDb2luID0gZ2V0VXR4b0NvaW4oJ2J0YycpO1xuICBjb25zdCByZWNvdmVyeVdhbGxldElkID0gJzVhYmFjZWJlMjhkNzJmYmQwN2UwYjhjYmJhMGZmMzllJztcblxuICBpdCgnc2hvdWxkIHNlYXJjaCB2MSB3YWxsZXRzIGlmIHRoZSB2MiBlbmRwb2ludCByZXNwb25kcyB3aXRoIGEgNHh4IGVycm9yJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGVycm9yUmVzcG9uc2VzID0gWzQwMCwgNDA0XTtcblxuICAgIGZvciAoY29uc3QgZXJyb3Igb2YgZXJyb3JSZXNwb25zZXMpIHtcbiAgICAgIGNvbnN0IG5vY2tWMldhbGxldCA9IG5vY2tCaXRHbyhiaXRnbylcbiAgICAgICAgLmdldChgL2FwaS92Mi8ke3JlY292ZXJ5Q29pbi5nZXRDaGFpbigpfS93YWxsZXQvJHtyZWNvdmVyeVdhbGxldElkfWApXG4gICAgICAgIC5yZXBseShlcnJvcik7XG4gICAgICBjb25zdCBub2NrVjFXYWxsZXQgPSBub2NrQml0R28oYml0Z28pLmdldChgL2FwaS92MS93YWxsZXQvJHtyZWNvdmVyeVdhbGxldElkfWApLnJlcGx5KGVycm9yKTtcbiAgICAgIGF3YWl0IGFzc2VydC5yZWplY3RzKFxuICAgICAgICAoKSA9PiBnZXRXYWxsZXQoYml0Z28sIHJlY292ZXJ5Q29pbiwgcmVjb3ZlcnlXYWxsZXRJZCksXG4gICAgICAgIEVycm9yKGBjb3VsZCBub3QgZ2V0IHdhbGxldCAke3JlY292ZXJ5V2FsbGV0SWR9IGZyb20gdjEgb3IgdjI6IEFwaVJlc3BvbnNlRXJyb3I6ICR7ZXJyb3J9YClcbiAgICAgICk7XG4gICAgICBub2NrVjJXYWxsZXQuZG9uZSgpO1xuICAgICAgbm9ja1YxV2FsbGV0LmRvbmUoKTtcbiAgICB9XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHYyIGVuZHBvaW50IHJlc3BvbmRzIHdpdGggYSA1eHggZXJyb3InLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgY29uc3QgZXJyb3JSZXNwb25zZXMgPSBbNTAwXTtcbiAgICBmb3IgKGNvbnN0IGVycm9yIG9mIGVycm9yUmVzcG9uc2VzKSB7XG4gICAgICBjb25zdCBub2NrVjJXYWxsZXQgPSBub2NrQml0R28oYml0Z28pXG4gICAgICAgIC5nZXQoYC9hcGkvdjIvJHtyZWNvdmVyeUNvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7cmVjb3ZlcnlXYWxsZXRJZH1gKVxuICAgICAgICAucmVwbHkoZXJyb3IpO1xuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoKCkgPT4gZ2V0V2FsbGV0KGJpdGdvLCByZWNvdmVyeUNvaW4sIHJlY292ZXJ5V2FsbGV0SWQpLCB7XG4gICAgICAgIG5hbWU6ICdBcGlSZXNwb25zZUVycm9yJyxcbiAgICAgICAgc3RhdHVzOiA1MDAsXG4gICAgICAgIHJlc3VsdDoge30sXG4gICAgICAgIGludmFsaWRUb2tlbjogZmFsc2UsXG4gICAgICAgIG5lZWRzT1RQOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgICAgbm9ja1YyV2FsbGV0LmRvbmUoKTtcbiAgICB9XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdpc1dhbGxldEFkZHJlc3MnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IGNvaW4gPSBnZXRVdHhvQ29pbignYnRjJyk7XG4gIGNvbnN0IHdhbGxldElkID0gJzVhYmFjZWJlMjhkNzJmYmQwN2UwYjhjYmJhMGZmMzllJztcbiAgY29uc3QgdGVzdEFkZHJlc3MgPSAnM0dCeWdzR1B2VGRmS01icTRBS1paUnUxc1BNV1BFc0JmZCc7XG5cbiAgZnVuY3Rpb24gbm9ja0FkZHJlc3Moc3RhdHVzQ29kZTogbnVtYmVyLCBib2R5PzogdW5rbm93bik6IG5vY2suU2NvcGUge1xuICAgIHJldHVybiBub2NrQml0R28oKVxuICAgICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7d2FsbGV0SWR9L2FkZHJlc3MvJHt0ZXN0QWRkcmVzc31gKVxuICAgICAgLnJlcGx5KHN0YXR1c0NvZGUsIGJvZHkgPz8ge30pO1xuICB9XG5cbiAgYmVmb3JlKCdzZXR1cCB3YWxsZXQgbm9jaycsIGZ1bmN0aW9uICgpIHtcbiAgICBub2NrQml0R28oKVxuICAgICAgLmdldChgL2FwaS92Mi8ke2NvaW4uZ2V0Q2hhaW4oKX0vd2FsbGV0LyR7d2FsbGV0SWR9YClcbiAgICAgIC5yZXBseSgyMDAsIHtcbiAgICAgICAgaWQ6IHdhbGxldElkLFxuICAgICAgICBjb2luOiBjb2luLmdldENoYWluKCksXG4gICAgICAgIGxhYmVsOiAnaXNXYWxsZXRBZGRyZXNzIHRlc3QnLFxuICAgICAgICBrZXlzOiBrZXljaGFpbnNCYXNlNTgubWFwKChrKSA9PiBnZXRTZWVkKGsucHViKS50b1N0cmluZygnaGV4JykpLFxuICAgICAgfSlcbiAgICAgIC5wZXJzaXN0KCk7XG4gICAga2V5Y2hhaW5zQmFzZTU4LmZvckVhY2goKGspID0+IHtcbiAgICAgIG5vY2tCaXRHbygpXG4gICAgICAgIC5nZXQoYC9hcGkvdjIvJHtjb2luLmdldENoYWluKCl9L2tleS8ke2dldFNlZWQoay5wdWIpLnRvU3RyaW5nKCdoZXgnKX1gKVxuICAgICAgICAucmVwbHkoMjAwLCBrKVxuICAgICAgICAucGVyc2lzdCgpO1xuICAgIH0pO1xuICB9KTtcblxuICBhZnRlcihmdW5jdGlvbiAoKSB7XG4gICAgbm9jay5jbGVhbkFsbCgpO1xuICB9KTtcblxuICBpdCgncmV0dXJucyB0cnVlIHdoZW4gYWRkcmVzcyBiZWxvbmdzIHRvIHdhbGxldCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBub2NrQWRkcmVzcygyMDAsIHsgYWRkcmVzczogdGVzdEFkZHJlc3MsIGNoYWluOiAwLCBpbmRleDogMCwgY29pbjogY29pbi5nZXRDaGFpbigpLCB3YWxsZXQ6IHdhbGxldElkIH0pO1xuICAgIGNvbnN0IHdhbGxldCA9IGF3YWl0IGdldFdhbGxldChkZWZhdWx0Qml0R28sIGNvaW4sIHdhbGxldElkKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYXdhaXQgaXNXYWxsZXRBZGRyZXNzKHdhbGxldCwgdGVzdEFkZHJlc3MpLCB0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ3JldHVybnMgZmFsc2UgZm9yIDQwNCAoYWRkcmVzcyBub3QgZm91bmQgaW4gd2FsbGV0KScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBub2NrQWRkcmVzcyg0MDQpO1xuICAgIGNvbnN0IHdhbGxldCA9IGF3YWl0IGdldFdhbGxldChkZWZhdWx0Qml0R28sIGNvaW4sIHdhbGxldElkKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoYXdhaXQgaXNXYWxsZXRBZGRyZXNzKHdhbGxldCwgdGVzdEFkZHJlc3MpLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KCdyZS10aHJvd3Mgb24gNTAzIChzZXJ2ZXIgZXJyb3IgZHVyaW5nIHJlY292ZXJ5IHNpbGVudGx5IGV4Y2x1ZGVzIG91dHB1dHMpJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIG5vY2tBZGRyZXNzKDUwMyk7XG4gICAgY29uc3Qgd2FsbGV0ID0gYXdhaXQgZ2V0V2FsbGV0KGRlZmF1bHRCaXRHbywgY29pbiwgd2FsbGV0SWQpO1xuICAgIGF3YWl0IGFzc2VydC5yZWplY3RzKCgpID0+IGlzV2FsbGV0QWRkcmVzcyh3YWxsZXQsIHRlc3RBZGRyZXNzKSwgeyBzdGF0dXM6IDUwMyB9KTtcbiAgfSk7XG5cbiAgaXQoJ3JlLXRocm93cyBvbiA1MDAnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgbm9ja0FkZHJlc3MoNTAwKTtcbiAgICBjb25zdCB3YWxsZXQgPSBhd2FpdCBnZXRXYWxsZXQoZGVmYXVsdEJpdEdvLCBjb2luLCB3YWxsZXRJZCk7XG4gICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoKCkgPT4gaXNXYWxsZXRBZGRyZXNzKHdhbGxldCwgdGVzdEFkZHJlc3MpLCB7IHN0YXR1czogNTAwIH0pO1xuICB9KTtcblxuICBpdCgncmUtdGhyb3dzIG9uIDQwMSAoYXV0aCBmYWlsdXJlKScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBub2NrQWRkcmVzcyg0MDEpO1xuICAgIGNvbnN0IHdhbGxldCA9IGF3YWl0IGdldFdhbGxldChkZWZhdWx0Qml0R28sIGNvaW4sIHdhbGxldElkKTtcbiAgICBhd2FpdCBhc3NlcnQucmVqZWN0cygoKSA9PiBpc1dhbGxldEFkZHJlc3Mod2FsbGV0LCB0ZXN0QWRkcmVzcyksIHsgc3RhdHVzOiA0MDEgfSk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdjb252ZXJ0THRjQWRkcmVzc1RvTGVnYWN5Rm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBzY3JpcHRQdWJLZXkgPSBCdWZmZXIuZnJvbSgnYTkxNDlmMGJmNTFmYWI0ZDMzYWIyMTk3N2UxYjg5Zjc3NmY2NDE2MWVmNDI4NycsICdoZXgnKTtcbiAgaXQoJ3Nob3VsZCBjb252ZXJ0IE0uLi4gUDJTSCBhZGRyZXNzIHRvIDMuLi4gbGVnYWN5IGZvcm1hdCcsIGZ1bmN0aW9uICgpIHtcbiAgICAvLyBUaGVzZSB0d28gYWRkcmVzc2VzIHJlcHJlc2VudCB0aGUgc2FtZSB1bmRlcmx5aW5nIHNjcmlwdCBoYXNoOlxuICAgIC8vIC0gTU5RN3prZ01zYVY2N3JzakEzSnVQNTlSQzV3eFJYcHdnRSBpcyB0aGUgTFRDIGZvcm1hdCAoc2NyaXB0SGFzaCAweDMyKVxuICAgIC8vIC0gM0dCeWdzR1B2VGRmS01icTRBS1paUnUxc1BNV1BFc0JmZCBpcyB0aGUgQlRDIGZvcm1hdCAoc2NyaXB0SGFzaCAweDA1KVxuICAgIC8vIGNvbnN0IGx0Y0FkZHJlc3MgPSAnTU5RN3prZ01zYVY2N3JzakEzSnVQNTlSQzV3eFJYcHdnRSc7XG4gICAgY29uc3QgbHRjQWRkcmVzcyA9IHdhc21BZGRyZXNzLmZyb21PdXRwdXRTY3JpcHRXaXRoQ29pbihzY3JpcHRQdWJLZXksICdsdGMnKTtcbiAgICBjb25zdCB0bHRjQWRkcmVzcyA9IHdhc21BZGRyZXNzLmZyb21PdXRwdXRTY3JpcHRXaXRoQ29pbihzY3JpcHRQdWJLZXksICd0bHRjJyk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGx0Y0FkZHJlc3MsICdNTlE3emtnTXNhVjY3cnNqQTNKdVA1OVJDNXd4Ulhwd2dFJyk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKHRsdGNBZGRyZXNzLCAnUWI2d3NkNGZaMkM2Zkt6Uk1QeVRHNUtpRTgxVzZRQ3hoVScpO1xuXG4gICAgY29uc3QgbGVnYWN5QWRkcmVzcyA9IGNvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQobHRjQWRkcmVzcywgJ2x0YycpO1xuICAgIGNvbnN0IGV4cGVjdGVkTHRjTGVnYWN5QWRkcmVzcyA9ICczR0J5Z3NHUHZUZGZLTWJxNEFLWlpSdTFzUE1XUEVzQmZkJztcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwobGVnYWN5QWRkcmVzcywgZXhwZWN0ZWRMdGNMZWdhY3lBZGRyZXNzKTtcblxuICAgIGNvbnN0IGV4cGVjdGVkVGx0Y0xlZ2FjeUFkZHJlc3MgPSAnMk43a0JrY0NSWHY5MVg5RU5qSHdTQk50SDVqWmc4eXllNnInO1xuICAgIGNvbnN0IHRsdGNMZWdhY3lBZGRyZXNzID0gY29udmVydEx0Y0FkZHJlc3NUb0xlZ2FjeUZvcm1hdCh0bHRjQWRkcmVzcywgJ3RsdGMnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwodGx0Y0xlZ2FjeUFkZHJlc3MsIGV4cGVjdGVkVGx0Y0xlZ2FjeUFkZHJlc3MpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGNvbnZlcnQgTUQ2OFBzZGhlS3hjWXNyVkx5WlJYZ29TRExuQjFNZFZ0RSB0byBsZWdhY3kgZm9ybWF0JywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGFkZHJlc3MgPSAnTUQ2OFBzZGhlS3hjWXNyVkx5WlJYZ29TRExuQjFNZFZ0RSc7XG4gICAgY29uc3QgbGVnYWN5QWRkcmVzcyA9IGNvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQoYWRkcmVzcywgJ2x0YycpO1xuXG4gICAgLy8gU2hvdWxkIHN0YXJ0IHdpdGggJzMnIChsZWdhY3kgQlRDIFAyU0ggZm9ybWF0KVxuICAgIGFzc2VydC5vayhsZWdhY3lBZGRyZXNzLnN0YXJ0c1dpdGgoJzMnKSwgYEV4cGVjdGVkIGFkZHJlc3MgdG8gc3RhcnQgd2l0aCAnMycsIGdvdDogJHtsZWdhY3lBZGRyZXNzfWApO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIG5vdCBtb2RpZnkgYmVjaDMyIGFkZHJlc3NlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBiZWNoMzJBZGRyZXNzID0gJ2x0YzFxZ3JsOHpwbmRza2xhYTlzd2dkNXZldnl4bXg1eDYzdmNybDdkazQnO1xuICAgIGNvbnN0IHJlc3VsdCA9IGNvbnZlcnRMdGNBZGRyZXNzVG9MZWdhY3lGb3JtYXQoYmVjaDMyQWRkcmVzcywgJ2x0YycpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQsIGJlY2gzMkFkZHJlc3MpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -32,7 +32,7 @@ function createTestUnspents() {
|
|
|
32
32
|
* Clone a PSBT - necessary because formatBackupKeyRecoveryResult mutates when finalizing.
|
|
33
33
|
*/
|
|
34
34
|
function clonePsbt(psbt) {
|
|
35
|
-
return wasm_utxo_1.fixedScriptWallet.BitGoPsbt.fromBytes(psbt.serialize(), coin.
|
|
35
|
+
return wasm_utxo_1.fixedScriptWallet.BitGoPsbt.fromBytes(psbt.serialize(), coin.wasmName);
|
|
36
36
|
}
|
|
37
37
|
describe('formatBackupKeyRecoveryResult', function () {
|
|
38
38
|
const { walletKeys: externalWallet } = (0, util_1.createWasmWalletKeys)('external');
|
|
@@ -186,4 +186,4 @@ describe('formatBackupKeyRecoveryResult', function () {
|
|
|
186
186
|
});
|
|
187
187
|
});
|
|
188
188
|
});
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0QmFja3VwS2V5UmVjb3ZlcnlSZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvcmVjb3ZlcnkvZm9ybWF0QmFja3VwS2V5UmVjb3ZlcnlSZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRUFBd0M7QUFHeEMsZ0RBQTBFO0FBRTFFLHNDQUtzQjtBQUV0QixrQ0FTaUI7QUFFakIsaUVBQWlFO0FBQ2pFLE1BQU0sSUFBSSxHQUFHLGdCQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssTUFBTSxDQUFFLENBQUM7QUFDN0QsTUFBTSxVQUFVLEdBQUcsV0FBb0IsQ0FBQztBQUV4QyxrREFBa0Q7QUFDbEQsTUFBTSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBQSwrQkFBd0IsR0FBRSxDQUFDO0FBRXhGOztHQUVHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxPQUF5RDtJQUNqRixPQUFPO1FBQ0wsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCO0tBQ2xDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxrQkFBa0I7SUFDekIsT0FBTztRQUNMLElBQUEsZ0JBQVMsRUFBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJ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LEVBQUUscUJBQXFCO2dCQUNqQyxJQUFJLEVBQUUsV0FBVztnQkFDakIsbUJBQW1CO2dCQUNuQixRQUFRO2FBQ1QsQ0FBb0MsQ0FBQztZQUV0QyxJQUFBLHdCQUFpQixFQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzVDLElBQUEsd0JBQWlCLEVBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRXBDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RCxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLHdCQUFZLEVBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsaUJBQWlCLEVBQUUsS0FBSztZQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFBLG1DQUE2QixFQUFDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2xFLFVBQVUsRUFBRSxxQkFBcUI7Z0JBQ2pDLElBQUksRUFBRSxXQUFXO2dCQUNqQixtQkFBbUI7Z0JBQ25CLFFBQVE7YUFDVCxDQUFDLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUEsaUJBQVUsRUFBQyxJQUFJLEVBQUUsOENBQThDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0YsSUFBQSxzQkFBZSxFQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ25vZGU6YXNzZXJ0L3N0cmljdCc7XG5cbmltcG9ydCB7IFRyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCSVAzMiwgZml4ZWRTY3JpcHRXYWxsZXQsIGhhc1BzYnRNYWdpYyB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQge1xuICBiYWNrdXBLZXlSZWNvdmVyeVdpdGhXYWxsZXRVbnNwZW50cyxcbiAgQmFja3VwS2V5UmVjb3ZlcnlUcmFuc2Fuc2FjdGlvbixcbiAgZm9ybWF0QmFja3VwS2V5UmVjb3ZlcnlSZXN1bHQsXG4gIEZvcm1hdHRlZE9mZmxpbmVWYXVsdFR4SW5mbyxcbn0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCB0eXBlIHsgV2FsbGV0VW5zcGVudCB9IGZyb20gJy4uLy4uLy4uL3NyYy91bnNwZW50JztcbmltcG9ydCB7XG4gIGFzc2VydEVxdWFsSlNPTixcbiAgYXNzZXJ0SGFzUHJvcGVydHksXG4gIGNyZWF0ZVdhc21XYWxsZXRLZXlzLFxuICBnZXREZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gIGdldEZpeHR1cmUsXG4gIGdldFdhbGxldEFkZHJlc3MsXG4gIHRvVW5zcGVudCxcbiAgdXR4b0NvaW5zLFxufSBmcm9tICcuLi91dGlsJztcblxuLy8gVXNlIHRidGMgZm9yIGFsbCB0ZXN0cyAtIGZvcm1hdHRpbmcgbG9naWMgZG9lc24ndCB2YXJ5IGJ5IGNvaW5cbmNvbnN0IGNvaW4gPSB1dHhvQ29pbnMuZmluZCgoYykgPT4gYy5nZXRDaGFpbigpID09PSAndGJ0YycpITtcbmNvbnN0IHNjcmlwdFR5cGUgPSAncDJzaFAyd3NoJyBhcyBjb25zdDtcblxuLy8gR2V0IGRlZmF1bHQgd2FzbSB3YWxsZXQga2V5cyAoeHB1YnMgYW5kIHhwcml2cylcbmNvbnN0IHsgd2FsbGV0S2V5czogZGVmYXVsdFdhc21XYWxsZXRLZXlzLCB4cHVicywgeHByaXZzIH0gPSBnZXREZWZhdWx0V2FzbVdhbGxldEtleXMoKTtcblxuLyoqXG4gKiBCdWlsZCBzaWduaW5nIGtleXMgdHJpcGxlIHdpdGggc3BlY2lmaWVkIG5ldXRlciBvcHRpb25zLlxuICovXG5mdW5jdGlvbiBidWlsZFNpZ25pbmdLZXlzKG9wdGlvbnM6IHsgbmV1dGVyVXNlcj86IGJvb2xlYW47IG5ldXRlckJhY2t1cD86IGJvb2xlYW4gfSk6IFRyaXBsZTxCSVAzMj4ge1xuICByZXR1cm4gW1xuICAgIG9wdGlvbnMubmV1dGVyVXNlciA/IHhwdWJzWzBdIDogeHByaXZzWzBdLFxuICAgIG9wdGlvbnMubmV1dGVyQmFja3VwID8geHB1YnNbMV0gOiB4cHJpdnNbMV0sXG4gICAgeHB1YnNbMl0sIC8vIGJpdGdvIGlzIGFsd2F5cyB4cHViXG4gIF07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVRlc3RVbnNwZW50cygpOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSB7XG4gIHJldHVybiBbXG4gICAgdG9VbnNwZW50KHsgc2NyaXB0VHlwZSwgdmFsdWU6IEJpZ0ludCgxZTgpIH0sIDAsIGNvaW4ubmFtZSwgZGVmYXVsdFdhc21XYWxsZXRLZXlzKSxcbiAgICB0b1Vuc3BlbnQoeyBzY3JpcHRUeXBlLCB2YWx1ZTogQmlnSW50KDJlOCkgfSwgMCwgY29pbi5uYW1lLCBkZWZhdWx0V2FzbVdhbGxldEtleXMpLFxuICBdO1xufVxuXG4vKipcbiAqIENsb25lIGEgUFNCVCAtIG5lY2Vzc2FyeSBiZWNhdXNlIGZvcm1hdEJhY2t1cEtleVJlY292ZXJ5UmVzdWx0IG11dGF0ZXMgd2hlbiBmaW5hbGl6aW5nLlxuICovXG5mdW5jdGlvbiBjbG9uZVBzYnQocHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KTogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHtcbiAgcmV0dXJuIGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidC5mcm9tQnl0ZXMocHNidC5zZXJpYWxpemUoKSwgY29pbi5uYW1lKTtcbn1cblxuZGVzY3JpYmUoJ2Zvcm1hdEJhY2t1cEtleVJlY292ZXJ5UmVzdWx0JywgZnVuY3Rpb24gKCkge1xuICBjb25zdCB7IHdhbGxldEtleXM6IGV4dGVybmFsV2FsbGV0IH0gPSBjcmVhdGVXYXNtV2FsbGV0S2V5cygnZXh0ZXJuYWwnKTtcbiAgY29uc3QgcmVjb3ZlcnlEZXN0aW5hdGlvbiA9IGdldFdhbGxldEFkZHJlc3MoY29pbi5uYW1lLCBleHRlcm5hbFdhbGxldCk7XG4gIGNvbnN0IGZlZVJhdGVTYXRWQiA9IDEwMDtcblxuICBkZXNjcmliZSgndW5zaWduZWQgc3dlZXAgKG5vIHNpZ25hdHVyZXMpJywgZnVuY3Rpb24gKCkge1xuICAgIGxldCBwc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ7XG4gICAgbGV0IHNpZ25pbmdLZXlzOiBUcmlwbGU8QklQMzI+O1xuICAgIGxldCB1bnNwZW50czogV2FsbGV0VW5zcGVudDxiaWdpbnQ+W107XG5cbiAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgdW5zcGVudHMgPSBjcmVhdGVUZXN0VW5zcGVudHMoKTtcbiAgICAgIHNpZ25pbmdLZXlzID0gYnVpbGRTaWduaW5nS2V5cyh7IG5ldXRlclVzZXI6IHRydWUsIG5ldXRlckJhY2t1cDogdHJ1ZSB9KTtcbiAgICAgIHBzYnQgPSBiYWNrdXBLZXlSZWNvdmVyeVdpdGhXYWxsZXRVbnNwZW50cyhcbiAgICAgICAgY29pbi5uYW1lLFxuICAgICAgICB7IHdhbGxldEtleXM6IGRlZmF1bHRXYXNtV2FsbGV0S2V5cywga2V5czogc2lnbmluZ0tleXMsIHJlY292ZXJ5RGVzdGluYXRpb24sIGZlZVJhdGVTYXRWQiB9LFxuICAgICAgICB1bnNwZW50c1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZXR1cm5zIEZvcm1hdHRlZE9mZmxpbmVWYXVsdFR4SW5mbyB3aXRoIFBTQlQgaGV4JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0QmFja3VwS2V5UmVjb3ZlcnlSZXN1bHQoY29pbiwgY2xvbmVQc2J0KHBzYnQpLCB7XG4gICAgICAgIHdhbGxldEtleXM6IGRlZmF1bHRXYXNtV2FsbGV0S2V5cyxcbiAgICAgICAga2V5czogc2lnbmluZ0tleXMsXG4gICAgICAgIHJlY292ZXJ5RGVzdGluYXRpb24sXG4gICAgICAgIHVuc3BlbnRzLFxuICAgICAgfSkgYXMgRm9ybWF0dGVkT2ZmbGluZVZhdWx0VHhJbmZvO1xuXG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICd0eEhleCcpO1xuICAgICAgYXNzZXJ0SGFzUHJvcGVydHkocmVzdWx0LCAndHhJbmZvJyk7XG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICdmZWVJbmZvJyk7XG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICdjb2luJyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LmNvaW4hLCBjb2luLmdldENoYWluKCkpO1xuXG4gICAgICBjb25zdCB0eEJ1ZiA9IEJ1ZmZlci5mcm9tKHJlc3VsdC50eEhleCwgJ2hleCcpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhhc1BzYnRNYWdpYyh0eEJ1ZiksIHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ21hdGNoZXMgZml4dHVyZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdEJhY2t1cEtleVJlY292ZXJ5UmVzdWx0KGNvaW4sIGNsb25lUHNidChwc2J0KSwge1xuICAgICAgICB3YWxsZXRLZXlzOiBkZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gICAgICAgIGtleXM6IHNpZ25pbmdLZXlzLFxuICAgICAgICByZWNvdmVyeURlc3RpbmF0aW9uLFxuICAgICAgICB1bnNwZW50cyxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZml4dHVyZSA9IGF3YWl0IGdldEZpeHR1cmUoY29pbiwgJ3JlY292ZXJ5L2Zvcm1hdEJhY2t1cEtleVJlY292ZXJ5LXVuc2lnbmVkJywgcmVzdWx0KTtcbiAgICAgIGFzc2VydEVxdWFsSlNPTihyZXN1bHQsIGZpeHR1cmUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnS1JTIHJlY292ZXJ5IHdpdGgga2V5dGVybmFsIChsZWdhY3kgZm9ybWF0KScsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgcHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0O1xuICAgIGxldCBzaWduaW5nS2V5czogVHJpcGxlPEJJUDMyPjtcbiAgICBsZXQgdW5zcGVudHM6IFdhbGxldFVuc3BlbnQ8YmlnaW50PltdO1xuXG4gICAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICAgIHVuc3BlbnRzID0gY3JlYXRlVGVzdFVuc3BlbnRzKCk7XG4gICAgICBzaWduaW5nS2V5cyA9IGJ1aWxkU2lnbmluZ0tleXMoeyBuZXV0ZXJVc2VyOiBmYWxzZSwgbmV1dGVyQmFja3VwOiB0cnVlIH0pO1xuICAgICAgcHNidCA9IGJhY2t1cEtleVJlY292ZXJ5V2l0aFdhbGxldFVuc3BlbnRzKFxuICAgICAgICBjb2luLm5hbWUsXG4gICAgICAgIHsgd2FsbGV0S2V5czogZGVmYXVsdFdhc21XYWxsZXRLZXlzLCBrZXlzOiBzaWduaW5nS2V5cywgcmVjb3ZlcnlEZXN0aW5hdGlvbiwgZmVlUmF0ZVNhdFZCIH0sXG4gICAgICAgIHVuc3BlbnRzXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JldHVybnMgQmFja3VwS2V5UmVjb3ZlcnlUcmFuc2Fuc2FjdGlvbiB3aXRoIGxlZ2FjeSB0eCBoZXgnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBmb3JtYXRCYWNrdXBLZXlSZWNvdmVyeVJlc3VsdChjb2luLCBjbG9uZVBzYnQocHNidCksIHtcbiAgICAgICAgd2FsbGV0S2V5czogZGVmYXVsdFdhc21XYWxsZXRLZXlzLFxuICAgICAgICBrZXlzOiBzaWduaW5nS2V5cyxcbiAgICAgICAgcmVjb3ZlcnlEZXN0aW5hdGlvbixcbiAgICAgICAga3JzUHJvdmlkZXI6ICdrZXl0ZXJuYWwnLFxuICAgICAgICBiYWNrdXBLZXk6ICd0ZXN0LWJhY2t1cC1rZXknLFxuICAgICAgICB1bnNwZW50cyxcbiAgICAgIH0pIGFzIEJhY2t1cEtleVJlY292ZXJ5VHJhbnNhbnNhY3Rpb247XG5cbiAgICAgIGFzc2VydEhhc1Byb3BlcnR5KHJlc3VsdCwgJ3RyYW5zYWN0aW9uSGV4Jyk7XG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICdjb2luJyk7XG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICdiYWNrdXBLZXknKTtcbiAgICAgIGFzc2VydEhhc1Byb3BlcnR5KHJlc3VsdCwgJ3JlY292ZXJ5QW1vdW50Jyk7XG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICdpbnB1dHMnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQuYmFja3VwS2V5ISwgJ3Rlc3QtYmFja3VwLWtleScpO1xuXG4gICAgICBjb25zdCB0eEJ1ZiA9IEJ1ZmZlci5mcm9tKHJlc3VsdC50cmFuc2FjdGlvbkhleCEsICdoZXgnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoYXNQc2J0TWFnaWModHhCdWYpLCBmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnbWF0Y2hlcyBmaXh0dXJlJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0QmFja3VwS2V5UmVjb3ZlcnlSZXN1bHQoY29pbiwgY2xvbmVQc2J0KHBzYnQpLCB7XG4gICAgICAgIHdhbGxldEtleXM6IGRlZmF1bHRXYXNtV2FsbGV0S2V5cyxcbiAgICAgICAga2V5czogc2lnbmluZ0tleXMsXG4gICAgICAgIHJlY292ZXJ5RGVzdGluYXRpb24sXG4gICAgICAgIGtyc1Byb3ZpZGVyOiAna2V5dGVybmFsJyxcbiAgICAgICAgYmFja3VwS2V5OiAndGVzdC1iYWNrdXAta2V5JyxcbiAgICAgICAgdW5zcGVudHMsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZpeHR1cmUgPSBhd2FpdCBnZXRGaXh0dXJlKGNvaW4sICdyZWNvdmVyeS9mb3JtYXRCYWNrdXBLZXlSZWNvdmVyeS1rcnMta2V5dGVybmFsJywgcmVzdWx0KTtcbiAgICAgIGFzc2VydEVxdWFsSlNPTihyZXN1bHQsIGZpeHR1cmUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnS1JTIHJlY292ZXJ5IHdpdGggZGFpIChQU0JUIGZvcm1hdCknLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IHBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidDtcbiAgICBsZXQgc2lnbmluZ0tleXM6IFRyaXBsZTxCSVAzMj47XG4gICAgbGV0IHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXTtcblxuICAgIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgICB1bnNwZW50cyA9IGNyZWF0ZVRlc3RVbnNwZW50cygpO1xuICAgICAgc2lnbmluZ0tleXMgPSBidWlsZFNpZ25pbmdLZXlzKHsgbmV1dGVyVXNlcjogZmFsc2UsIG5ldXRlckJhY2t1cDogdHJ1ZSB9KTtcbiAgICAgIHBzYnQgPSBiYWNrdXBLZXlSZWNvdmVyeVdpdGhXYWxsZXRVbnNwZW50cyhcbiAgICAgICAgY29pbi5uYW1lLFxuICAgICAgICB7IHdhbGxldEtleXM6IGRlZmF1bHRXYXNtV2FsbGV0S2V5cywga2V5czogc2lnbmluZ0tleXMsIHJlY292ZXJ5RGVzdGluYXRpb24sIGZlZVJhdGVTYXRWQiB9LFxuICAgICAgICB1bnNwZW50c1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZXR1cm5zIEJhY2t1cEtleVJlY292ZXJ5VHJhbnNhbnNhY3Rpb24gd2l0aCBQU0JUIGhleCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdEJhY2t1cEtleVJlY292ZXJ5UmVzdWx0KGNvaW4sIGNsb25lUHNidChwc2J0KSwge1xuICAgICAgICB3YWxsZXRLZXlzOiBkZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gICAgICAgIGtleXM6IHNpZ25pbmdLZXlzLFxuICAgICAgICByZWNvdmVyeURlc3RpbmF0aW9uLFxuICAgICAgICBrcnNQcm92aWRlcjogJ2RhaScsXG4gICAgICAgIGJhY2t1cEtleTogJ3Rlc3QtYmFja3VwLWtleScsXG4gICAgICAgIHVuc3BlbnRzLFxuICAgICAgfSkgYXMgQmFja3VwS2V5UmVjb3ZlcnlUcmFuc2Fuc2FjdGlvbjtcblxuICAgICAgYXNzZXJ0SGFzUHJvcGVydHkocmVzdWx0LCAndHJhbnNhY3Rpb25IZXgnKTtcbiAgICAgIGFzc2VydEhhc1Byb3BlcnR5KHJlc3VsdCwgJ2NvaW4nKTtcbiAgICAgIGFzc2VydEhhc1Byb3BlcnR5KHJlc3VsdCwgJ2JhY2t1cEtleScpO1xuICAgICAgYXNzZXJ0SGFzUHJvcGVydHkocmVzdWx0LCAncmVjb3ZlcnlBbW91bnQnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQuYmFja3VwS2V5ISwgJ3Rlc3QtYmFja3VwLWtleScpO1xuXG4gICAgICBjb25zdCB0eEJ1ZiA9IEJ1ZmZlci5mcm9tKHJlc3VsdC50cmFuc2FjdGlvbkhleCEsICdoZXgnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoYXNQc2J0TWFnaWModHhCdWYpLCB0cnVlKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQuaW5wdXRzLCB1bmRlZmluZWQpO1xuICAgIH0pO1xuXG4gICAgaXQoJ21hdGNoZXMgZml4dHVyZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdEJhY2t1cEtleVJlY292ZXJ5UmVzdWx0KGNvaW4sIGNsb25lUHNidChwc2J0KSwge1xuICAgICAgICB3YWxsZXRLZXlzOiBkZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gICAgICAgIGtleXM6IHNpZ25pbmdLZXlzLFxuICAgICAgICByZWNvdmVyeURlc3RpbmF0aW9uLFxuICAgICAgICBrcnNQcm92aWRlcjogJ2RhaScsXG4gICAgICAgIGJhY2t1cEtleTogJ3Rlc3QtYmFja3VwLWtleScsXG4gICAgICAgIHVuc3BlbnRzLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBmaXh0dXJlID0gYXdhaXQgZ2V0Rml4dHVyZShjb2luLCAncmVjb3ZlcnkvZm9ybWF0QmFja3VwS2V5UmVjb3Zlcnkta3JzLWRhaScsIHJlc3VsdCk7XG4gICAgICBhc3NlcnRFcXVhbEpTT04ocmVzdWx0LCBmaXh0dXJlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2Z1bGwgcmVjb3ZlcnkgKHVzZXIgKyBiYWNrdXAgc2lnbmF0dXJlcyknLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IHBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidDtcbiAgICBsZXQgc2lnbmluZ0tleXM6IFRyaXBsZTxCSVAzMj47XG4gICAgbGV0IHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXTtcblxuICAgIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgICB1bnNwZW50cyA9IGNyZWF0ZVRlc3RVbnNwZW50cygpO1xuICAgICAgc2lnbmluZ0tleXMgPSBidWlsZFNpZ25pbmdLZXlzKHsgbmV1dGVyVXNlcjogZmFsc2UsIG5ldXRlckJhY2t1cDogZmFsc2UgfSk7XG4gICAgICBwc2J0ID0gYmFja3VwS2V5UmVjb3ZlcnlXaXRoV2FsbGV0VW5zcGVudHMoXG4gICAgICAgIGNvaW4ubmFtZSxcbiAgICAgICAgeyB3YWxsZXRLZXlzOiBkZWZhdWx0V2FzbVdhbGxldEtleXMsIGtleXM6IHNpZ25pbmdLZXlzLCByZWNvdmVyeURlc3RpbmF0aW9uLCBmZWVSYXRlU2F0VkIgfSxcbiAgICAgICAgdW5zcGVudHNcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyBCYWNrdXBLZXlSZWNvdmVyeVRyYW5zYW5zYWN0aW9uIHdpdGggZmluYWxpemVkIHR4IGhleCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdEJhY2t1cEtleVJlY292ZXJ5UmVzdWx0KGNvaW4sIGNsb25lUHNidChwc2J0KSwge1xuICAgICAgICB3YWxsZXRLZXlzOiBkZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gICAgICAgIGtleXM6IHNpZ25pbmdLZXlzLFxuICAgICAgICByZWNvdmVyeURlc3RpbmF0aW9uLFxuICAgICAgICB1bnNwZW50cyxcbiAgICAgIH0pIGFzIEJhY2t1cEtleVJlY292ZXJ5VHJhbnNhbnNhY3Rpb247XG5cbiAgICAgIGFzc2VydEhhc1Byb3BlcnR5KHJlc3VsdCwgJ3RyYW5zYWN0aW9uSGV4Jyk7XG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICdpbnB1dHMnKTtcblxuICAgICAgY29uc3QgdHhCdWYgPSBCdWZmZXIuZnJvbShyZXN1bHQudHJhbnNhY3Rpb25IZXghLCAnaGV4Jyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGFzUHNidE1hZ2ljKHR4QnVmKSwgZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ21hdGNoZXMgZml4dHVyZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdEJhY2t1cEtleVJlY292ZXJ5UmVzdWx0KGNvaW4sIGNsb25lUHNidChwc2J0KSwge1xuICAgICAgICB3YWxsZXRLZXlzOiBkZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gICAgICAgIGtleXM6IHNpZ25pbmdLZXlzLFxuICAgICAgICByZWNvdmVyeURlc3RpbmF0aW9uLFxuICAgICAgICB1bnNwZW50cyxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZml4dHVyZSA9IGF3YWl0IGdldEZpeHR1cmUoY29pbiwgJ3JlY292ZXJ5L2Zvcm1hdEJhY2t1cEtleVJlY292ZXJ5LWZ1bGx5U2lnbmVkJywgcmVzdWx0KTtcbiAgICAgIGFzc2VydEVxdWFsSlNPTihyZXN1bHQsIGZpeHR1cmUpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0QmFja3VwS2V5UmVjb3ZlcnlSZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90ZXN0L3VuaXQvcmVjb3ZlcnkvZm9ybWF0QmFja3VwS2V5UmVjb3ZlcnlSZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxnRUFBd0M7QUFHeEMsZ0RBQTBFO0FBRTFFLHNDQUtzQjtBQUV0QixrQ0FTaUI7QUFFakIsaUVBQWlFO0FBQ2pFLE1BQU0sSUFBSSxHQUFHLGdCQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssTUFBTSxDQUFFLENBQUM7QUFDN0QsTUFBTSxVQUFVLEdBQUcsV0FBb0IsQ0FBQztBQUV4QyxrREFBa0Q7QUFDbEQsTUFBTSxFQUFFLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBQSwrQkFBd0IsR0FBRSxDQUFDO0FBRXhGOztHQUVHO0FBQ0gsU0FBUyxnQkFBZ0IsQ0FBQyxPQUF5RDtJQUNqRixPQUFPO1FBQ0wsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUMzQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsdUJBQXVCO0tBQ2xDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxrQkFBa0I7SUFDekIsT0FBTztRQUNMLElBQUEsZ0JBQVMsRUFBQyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJ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LEVBQUUscUJBQXFCO2dCQUNqQyxJQUFJLEVBQUUsV0FBVztnQkFDakIsbUJBQW1CO2dCQUNuQixRQUFRO2FBQ1QsQ0FBb0MsQ0FBQztZQUV0QyxJQUFBLHdCQUFpQixFQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzVDLElBQUEsd0JBQWlCLEVBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRXBDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RCxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFBLHdCQUFZLEVBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsaUJBQWlCLEVBQUUsS0FBSztZQUN6QixNQUFNLE1BQU0sR0FBRyxJQUFBLG1DQUE2QixFQUFDLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2xFLFVBQVUsRUFBRSxxQkFBcUI7Z0JBQ2pDLElBQUksRUFBRSxXQUFXO2dCQUNqQixtQkFBbUI7Z0JBQ25CLFFBQVE7YUFDVCxDQUFDLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUEsaUJBQVUsRUFBQyxJQUFJLEVBQUUsOENBQThDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDL0YsSUFBQSxzQkFBZSxFQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ25vZGU6YXNzZXJ0L3N0cmljdCc7XG5cbmltcG9ydCB7IFRyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCSVAzMiwgZml4ZWRTY3JpcHRXYWxsZXQsIGhhc1BzYnRNYWdpYyB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQge1xuICBiYWNrdXBLZXlSZWNvdmVyeVdpdGhXYWxsZXRVbnNwZW50cyxcbiAgQmFja3VwS2V5UmVjb3ZlcnlUcmFuc2Fuc2FjdGlvbixcbiAgZm9ybWF0QmFja3VwS2V5UmVjb3ZlcnlSZXN1bHQsXG4gIEZvcm1hdHRlZE9mZmxpbmVWYXVsdFR4SW5mbyxcbn0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCB0eXBlIHsgV2FsbGV0VW5zcGVudCB9IGZyb20gJy4uLy4uLy4uL3NyYy91bnNwZW50JztcbmltcG9ydCB7XG4gIGFzc2VydEVxdWFsSlNPTixcbiAgYXNzZXJ0SGFzUHJvcGVydHksXG4gIGNyZWF0ZVdhc21XYWxsZXRLZXlzLFxuICBnZXREZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gIGdldEZpeHR1cmUsXG4gIGdldFdhbGxldEFkZHJlc3MsXG4gIHRvVW5zcGVudCxcbiAgdXR4b0NvaW5zLFxufSBmcm9tICcuLi91dGlsJztcblxuLy8gVXNlIHRidGMgZm9yIGFsbCB0ZXN0cyAtIGZvcm1hdHRpbmcgbG9naWMgZG9lc24ndCB2YXJ5IGJ5IGNvaW5cbmNvbnN0IGNvaW4gPSB1dHhvQ29pbnMuZmluZCgoYykgPT4gYy5nZXRDaGFpbigpID09PSAndGJ0YycpITtcbmNvbnN0IHNjcmlwdFR5cGUgPSAncDJzaFAyd3NoJyBhcyBjb25zdDtcblxuLy8gR2V0IGRlZmF1bHQgd2FzbSB3YWxsZXQga2V5cyAoeHB1YnMgYW5kIHhwcml2cylcbmNvbnN0IHsgd2FsbGV0S2V5czogZGVmYXVsdFdhc21XYWxsZXRLZXlzLCB4cHVicywgeHByaXZzIH0gPSBnZXREZWZhdWx0V2FzbVdhbGxldEtleXMoKTtcblxuLyoqXG4gKiBCdWlsZCBzaWduaW5nIGtleXMgdHJpcGxlIHdpdGggc3BlY2lmaWVkIG5ldXRlciBvcHRpb25zLlxuICovXG5mdW5jdGlvbiBidWlsZFNpZ25pbmdLZXlzKG9wdGlvbnM6IHsgbmV1dGVyVXNlcj86IGJvb2xlYW47IG5ldXRlckJhY2t1cD86IGJvb2xlYW4gfSk6IFRyaXBsZTxCSVAzMj4ge1xuICByZXR1cm4gW1xuICAgIG9wdGlvbnMubmV1dGVyVXNlciA/IHhwdWJzWzBdIDogeHByaXZzWzBdLFxuICAgIG9wdGlvbnMubmV1dGVyQmFja3VwID8geHB1YnNbMV0gOiB4cHJpdnNbMV0sXG4gICAgeHB1YnNbMl0sIC8vIGJpdGdvIGlzIGFsd2F5cyB4cHViXG4gIF07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVRlc3RVbnNwZW50cygpOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXSB7XG4gIHJldHVybiBbXG4gICAgdG9VbnNwZW50KHsgc2NyaXB0VHlwZSwgdmFsdWU6IEJpZ0ludCgxZTgpIH0sIDAsIGNvaW4ubmFtZSwgZGVmYXVsdFdhc21XYWxsZXRLZXlzKSxcbiAgICB0b1Vuc3BlbnQoeyBzY3JpcHRUeXBlLCB2YWx1ZTogQmlnSW50KDJlOCkgfSwgMCwgY29pbi5uYW1lLCBkZWZhdWx0V2FzbVdhbGxldEtleXMpLFxuICBdO1xufVxuXG4vKipcbiAqIENsb25lIGEgUFNCVCAtIG5lY2Vzc2FyeSBiZWNhdXNlIGZvcm1hdEJhY2t1cEtleVJlY292ZXJ5UmVzdWx0IG11dGF0ZXMgd2hlbiBmaW5hbGl6aW5nLlxuICovXG5mdW5jdGlvbiBjbG9uZVBzYnQocHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KTogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHtcbiAgcmV0dXJuIGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidC5mcm9tQnl0ZXMocHNidC5zZXJpYWxpemUoKSwgY29pbi53YXNtTmFtZSk7XG59XG5cbmRlc2NyaWJlKCdmb3JtYXRCYWNrdXBLZXlSZWNvdmVyeVJlc3VsdCcsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgeyB3YWxsZXRLZXlzOiBleHRlcm5hbFdhbGxldCB9ID0gY3JlYXRlV2FzbVdhbGxldEtleXMoJ2V4dGVybmFsJyk7XG4gIGNvbnN0IHJlY292ZXJ5RGVzdGluYXRpb24gPSBnZXRXYWxsZXRBZGRyZXNzKGNvaW4ubmFtZSwgZXh0ZXJuYWxXYWxsZXQpO1xuICBjb25zdCBmZWVSYXRlU2F0VkIgPSAxMDA7XG5cbiAgZGVzY3JpYmUoJ3Vuc2lnbmVkIHN3ZWVwIChubyBzaWduYXR1cmVzKScsIGZ1bmN0aW9uICgpIHtcbiAgICBsZXQgcHNidDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0O1xuICAgIGxldCBzaWduaW5nS2V5czogVHJpcGxlPEJJUDMyPjtcbiAgICBsZXQgdW5zcGVudHM6IFdhbGxldFVuc3BlbnQ8YmlnaW50PltdO1xuXG4gICAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICAgIHVuc3BlbnRzID0gY3JlYXRlVGVzdFVuc3BlbnRzKCk7XG4gICAgICBzaWduaW5nS2V5cyA9IGJ1aWxkU2lnbmluZ0tleXMoeyBuZXV0ZXJVc2VyOiB0cnVlLCBuZXV0ZXJCYWNrdXA6IHRydWUgfSk7XG4gICAgICBwc2J0ID0gYmFja3VwS2V5UmVjb3ZlcnlXaXRoV2FsbGV0VW5zcGVudHMoXG4gICAgICAgIGNvaW4ubmFtZSxcbiAgICAgICAgeyB3YWxsZXRLZXlzOiBkZWZhdWx0V2FzbVdhbGxldEtleXMsIGtleXM6IHNpZ25pbmdLZXlzLCByZWNvdmVyeURlc3RpbmF0aW9uLCBmZWVSYXRlU2F0VkIgfSxcbiAgICAgICAgdW5zcGVudHNcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyBGb3JtYXR0ZWRPZmZsaW5lVmF1bHRUeEluZm8gd2l0aCBQU0JUIGhleCcsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdEJhY2t1cEtleVJlY292ZXJ5UmVzdWx0KGNvaW4sIGNsb25lUHNidChwc2J0KSwge1xuICAgICAgICB3YWxsZXRLZXlzOiBkZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gICAgICAgIGtleXM6IHNpZ25pbmdLZXlzLFxuICAgICAgICByZWNvdmVyeURlc3RpbmF0aW9uLFxuICAgICAgICB1bnNwZW50cyxcbiAgICAgIH0pIGFzIEZvcm1hdHRlZE9mZmxpbmVWYXVsdFR4SW5mbztcblxuICAgICAgYXNzZXJ0SGFzUHJvcGVydHkocmVzdWx0LCAndHhIZXgnKTtcbiAgICAgIGFzc2VydEhhc1Byb3BlcnR5KHJlc3VsdCwgJ3R4SW5mbycpO1xuICAgICAgYXNzZXJ0SGFzUHJvcGVydHkocmVzdWx0LCAnZmVlSW5mbycpO1xuICAgICAgYXNzZXJ0SGFzUHJvcGVydHkocmVzdWx0LCAnY29pbicpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdC5jb2luISwgY29pbi5nZXRDaGFpbigpKTtcblxuICAgICAgY29uc3QgdHhCdWYgPSBCdWZmZXIuZnJvbShyZXN1bHQudHhIZXgsICdoZXgnKTtcbiAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChoYXNQc2J0TWFnaWModHhCdWYpLCB0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdtYXRjaGVzIGZpeHR1cmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBmb3JtYXRCYWNrdXBLZXlSZWNvdmVyeVJlc3VsdChjb2luLCBjbG9uZVBzYnQocHNidCksIHtcbiAgICAgICAgd2FsbGV0S2V5czogZGVmYXVsdFdhc21XYWxsZXRLZXlzLFxuICAgICAgICBrZXlzOiBzaWduaW5nS2V5cyxcbiAgICAgICAgcmVjb3ZlcnlEZXN0aW5hdGlvbixcbiAgICAgICAgdW5zcGVudHMsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZpeHR1cmUgPSBhd2FpdCBnZXRGaXh0dXJlKGNvaW4sICdyZWNvdmVyeS9mb3JtYXRCYWNrdXBLZXlSZWNvdmVyeS11bnNpZ25lZCcsIHJlc3VsdCk7XG4gICAgICBhc3NlcnRFcXVhbEpTT04ocmVzdWx0LCBmaXh0dXJlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0tSUyByZWNvdmVyeSB3aXRoIGtleXRlcm5hbCAobGVnYWN5IGZvcm1hdCknLCBmdW5jdGlvbiAoKSB7XG4gICAgbGV0IHBzYnQ6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidDtcbiAgICBsZXQgc2lnbmluZ0tleXM6IFRyaXBsZTxCSVAzMj47XG4gICAgbGV0IHVuc3BlbnRzOiBXYWxsZXRVbnNwZW50PGJpZ2ludD5bXTtcblxuICAgIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgICB1bnNwZW50cyA9IGNyZWF0ZVRlc3RVbnNwZW50cygpO1xuICAgICAgc2lnbmluZ0tleXMgPSBidWlsZFNpZ25pbmdLZXlzKHsgbmV1dGVyVXNlcjogZmFsc2UsIG5ldXRlckJhY2t1cDogdHJ1ZSB9KTtcbiAgICAgIHBzYnQgPSBiYWNrdXBLZXlSZWNvdmVyeVdpdGhXYWxsZXRVbnNwZW50cyhcbiAgICAgICAgY29pbi5uYW1lLFxuICAgICAgICB7IHdhbGxldEtleXM6IGRlZmF1bHRXYXNtV2FsbGV0S2V5cywga2V5czogc2lnbmluZ0tleXMsIHJlY292ZXJ5RGVzdGluYXRpb24sIGZlZVJhdGVTYXRWQiB9LFxuICAgICAgICB1bnNwZW50c1xuICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdyZXR1cm5zIEJhY2t1cEtleVJlY292ZXJ5VHJhbnNhbnNhY3Rpb24gd2l0aCBsZWdhY3kgdHggaGV4JywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gZm9ybWF0QmFja3VwS2V5UmVjb3ZlcnlSZXN1bHQoY29pbiwgY2xvbmVQc2J0KHBzYnQpLCB7XG4gICAgICAgIHdhbGxldEtleXM6IGRlZmF1bHRXYXNtV2FsbGV0S2V5cyxcbiAgICAgICAga2V5czogc2lnbmluZ0tleXMsXG4gICAgICAgIHJlY292ZXJ5RGVzdGluYXRpb24sXG4gICAgICAgIGtyc1Byb3ZpZGVyOiAna2V5dGVybmFsJyxcbiAgICAgICAgYmFja3VwS2V5OiAndGVzdC1iYWNrdXAta2V5JyxcbiAgICAgICAgdW5zcGVudHMsXG4gICAgICB9KSBhcyBCYWNrdXBLZXlSZWNvdmVyeVRyYW5zYW5zYWN0aW9uO1xuXG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICd0cmFuc2FjdGlvbkhleCcpO1xuICAgICAgYXNzZXJ0SGFzUHJvcGVydHkocmVzdWx0LCAnY29pbicpO1xuICAgICAgYXNzZXJ0SGFzUHJvcGVydHkocmVzdWx0LCAnYmFja3VwS2V5Jyk7XG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICdyZWNvdmVyeUFtb3VudCcpO1xuICAgICAgYXNzZXJ0SGFzUHJvcGVydHkocmVzdWx0LCAnaW5wdXRzJyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LmJhY2t1cEtleSEsICd0ZXN0LWJhY2t1cC1rZXknKTtcblxuICAgICAgY29uc3QgdHhCdWYgPSBCdWZmZXIuZnJvbShyZXN1bHQudHJhbnNhY3Rpb25IZXghLCAnaGV4Jyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGFzUHNidE1hZ2ljKHR4QnVmKSwgZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgaXQoJ21hdGNoZXMgZml4dHVyZScsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdEJhY2t1cEtleVJlY292ZXJ5UmVzdWx0KGNvaW4sIGNsb25lUHNidChwc2J0KSwge1xuICAgICAgICB3YWxsZXRLZXlzOiBkZWZhdWx0V2FzbVdhbGxldEtleXMsXG4gICAgICAgIGtleXM6IHNpZ25pbmdLZXlzLFxuICAgICAgICByZWNvdmVyeURlc3RpbmF0aW9uLFxuICAgICAgICBrcnNQcm92aWRlcjogJ2tleXRlcm5hbCcsXG4gICAgICAgIGJhY2t1cEtleTogJ3Rlc3QtYmFja3VwLWtleScsXG4gICAgICAgIHVuc3BlbnRzLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBmaXh0dXJlID0gYXdhaXQgZ2V0Rml4dHVyZShjb2luLCAncmVjb3ZlcnkvZm9ybWF0QmFja3VwS2V5UmVjb3Zlcnkta3JzLWtleXRlcm5hbCcsIHJlc3VsdCk7XG4gICAgICBhc3NlcnRFcXVhbEpTT04ocmVzdWx0LCBmaXh0dXJlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0tSUyByZWNvdmVyeSB3aXRoIGRhaSAoUFNCVCBmb3JtYXQpJywgZnVuY3Rpb24gKCkge1xuICAgIGxldCBwc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ7XG4gICAgbGV0IHNpZ25pbmdLZXlzOiBUcmlwbGU8QklQMzI+O1xuICAgIGxldCB1bnNwZW50czogV2FsbGV0VW5zcGVudDxiaWdpbnQ+W107XG5cbiAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgdW5zcGVudHMgPSBjcmVhdGVUZXN0VW5zcGVudHMoKTtcbiAgICAgIHNpZ25pbmdLZXlzID0gYnVpbGRTaWduaW5nS2V5cyh7IG5ldXRlclVzZXI6IGZhbHNlLCBuZXV0ZXJCYWNrdXA6IHRydWUgfSk7XG4gICAgICBwc2J0ID0gYmFja3VwS2V5UmVjb3ZlcnlXaXRoV2FsbGV0VW5zcGVudHMoXG4gICAgICAgIGNvaW4ubmFtZSxcbiAgICAgICAgeyB3YWxsZXRLZXlzOiBkZWZhdWx0V2FzbVdhbGxldEtleXMsIGtleXM6IHNpZ25pbmdLZXlzLCByZWNvdmVyeURlc3RpbmF0aW9uLCBmZWVSYXRlU2F0VkIgfSxcbiAgICAgICAgdW5zcGVudHNcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyBCYWNrdXBLZXlSZWNvdmVyeVRyYW5zYW5zYWN0aW9uIHdpdGggUFNCVCBoZXgnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBmb3JtYXRCYWNrdXBLZXlSZWNvdmVyeVJlc3VsdChjb2luLCBjbG9uZVBzYnQocHNidCksIHtcbiAgICAgICAgd2FsbGV0S2V5czogZGVmYXVsdFdhc21XYWxsZXRLZXlzLFxuICAgICAgICBrZXlzOiBzaWduaW5nS2V5cyxcbiAgICAgICAgcmVjb3ZlcnlEZXN0aW5hdGlvbixcbiAgICAgICAga3JzUHJvdmlkZXI6ICdkYWknLFxuICAgICAgICBiYWNrdXBLZXk6ICd0ZXN0LWJhY2t1cC1rZXknLFxuICAgICAgICB1bnNwZW50cyxcbiAgICAgIH0pIGFzIEJhY2t1cEtleVJlY292ZXJ5VHJhbnNhbnNhY3Rpb247XG5cbiAgICAgIGFzc2VydEhhc1Byb3BlcnR5KHJlc3VsdCwgJ3RyYW5zYWN0aW9uSGV4Jyk7XG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICdjb2luJyk7XG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICdiYWNrdXBLZXknKTtcbiAgICAgIGFzc2VydEhhc1Byb3BlcnR5KHJlc3VsdCwgJ3JlY292ZXJ5QW1vdW50Jyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LmJhY2t1cEtleSEsICd0ZXN0LWJhY2t1cC1rZXknKTtcblxuICAgICAgY29uc3QgdHhCdWYgPSBCdWZmZXIuZnJvbShyZXN1bHQudHJhbnNhY3Rpb25IZXghLCAnaGV4Jyk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwoaGFzUHNidE1hZ2ljKHR4QnVmKSwgdHJ1ZSk7XG4gICAgICBhc3NlcnQuc3RyaWN0RXF1YWwocmVzdWx0LmlucHV0cywgdW5kZWZpbmVkKTtcbiAgICB9KTtcblxuICAgIGl0KCdtYXRjaGVzIGZpeHR1cmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBmb3JtYXRCYWNrdXBLZXlSZWNvdmVyeVJlc3VsdChjb2luLCBjbG9uZVBzYnQocHNidCksIHtcbiAgICAgICAgd2FsbGV0S2V5czogZGVmYXVsdFdhc21XYWxsZXRLZXlzLFxuICAgICAgICBrZXlzOiBzaWduaW5nS2V5cyxcbiAgICAgICAgcmVjb3ZlcnlEZXN0aW5hdGlvbixcbiAgICAgICAga3JzUHJvdmlkZXI6ICdkYWknLFxuICAgICAgICBiYWNrdXBLZXk6ICd0ZXN0LWJhY2t1cC1rZXknLFxuICAgICAgICB1bnNwZW50cyxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZml4dHVyZSA9IGF3YWl0IGdldEZpeHR1cmUoY29pbiwgJ3JlY292ZXJ5L2Zvcm1hdEJhY2t1cEtleVJlY292ZXJ5LWtycy1kYWknLCByZXN1bHQpO1xuICAgICAgYXNzZXJ0RXF1YWxKU09OKHJlc3VsdCwgZml4dHVyZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdmdWxsIHJlY292ZXJ5ICh1c2VyICsgYmFja3VwIHNpZ25hdHVyZXMpJywgZnVuY3Rpb24gKCkge1xuICAgIGxldCBwc2J0OiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ7XG4gICAgbGV0IHNpZ25pbmdLZXlzOiBUcmlwbGU8QklQMzI+O1xuICAgIGxldCB1bnNwZW50czogV2FsbGV0VW5zcGVudDxiaWdpbnQ+W107XG5cbiAgICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgICAgdW5zcGVudHMgPSBjcmVhdGVUZXN0VW5zcGVudHMoKTtcbiAgICAgIHNpZ25pbmdLZXlzID0gYnVpbGRTaWduaW5nS2V5cyh7IG5ldXRlclVzZXI6IGZhbHNlLCBuZXV0ZXJCYWNrdXA6IGZhbHNlIH0pO1xuICAgICAgcHNidCA9IGJhY2t1cEtleVJlY292ZXJ5V2l0aFdhbGxldFVuc3BlbnRzKFxuICAgICAgICBjb2luLm5hbWUsXG4gICAgICAgIHsgd2FsbGV0S2V5czogZGVmYXVsdFdhc21XYWxsZXRLZXlzLCBrZXlzOiBzaWduaW5nS2V5cywgcmVjb3ZlcnlEZXN0aW5hdGlvbiwgZmVlUmF0ZVNhdFZCIH0sXG4gICAgICAgIHVuc3BlbnRzXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3JldHVybnMgQmFja3VwS2V5UmVjb3ZlcnlUcmFuc2Fuc2FjdGlvbiB3aXRoIGZpbmFsaXplZCB0eCBoZXgnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBmb3JtYXRCYWNrdXBLZXlSZWNvdmVyeVJlc3VsdChjb2luLCBjbG9uZVBzYnQocHNidCksIHtcbiAgICAgICAgd2FsbGV0S2V5czogZGVmYXVsdFdhc21XYWxsZXRLZXlzLFxuICAgICAgICBrZXlzOiBzaWduaW5nS2V5cyxcbiAgICAgICAgcmVjb3ZlcnlEZXN0aW5hdGlvbixcbiAgICAgICAgdW5zcGVudHMsXG4gICAgICB9KSBhcyBCYWNrdXBLZXlSZWNvdmVyeVRyYW5zYW5zYWN0aW9uO1xuXG4gICAgICBhc3NlcnRIYXNQcm9wZXJ0eShyZXN1bHQsICd0cmFuc2FjdGlvbkhleCcpO1xuICAgICAgYXNzZXJ0SGFzUHJvcGVydHkocmVzdWx0LCAnaW5wdXRzJyk7XG5cbiAgICAgIGNvbnN0IHR4QnVmID0gQnVmZmVyLmZyb20ocmVzdWx0LnRyYW5zYWN0aW9uSGV4ISwgJ2hleCcpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKGhhc1BzYnRNYWdpYyh0eEJ1ZiksIGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdtYXRjaGVzIGZpeHR1cmUnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCByZXN1bHQgPSBmb3JtYXRCYWNrdXBLZXlSZWNvdmVyeVJlc3VsdChjb2luLCBjbG9uZVBzYnQocHNidCksIHtcbiAgICAgICAgd2FsbGV0S2V5czogZGVmYXVsdFdhc21XYWxsZXRLZXlzLFxuICAgICAgICBrZXlzOiBzaWduaW5nS2V5cyxcbiAgICAgICAgcmVjb3ZlcnlEZXN0aW5hdGlvbixcbiAgICAgICAgdW5zcGVudHMsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGZpeHR1cmUgPSBhd2FpdCBnZXRGaXh0dXJlKGNvaW4sICdyZWNvdmVyeS9mb3JtYXRCYWNrdXBLZXlSZWNvdmVyeS1mdWxseVNpZ25lZCcsIHJlc3VsdCk7XG4gICAgICBhc3NlcnRFcXVhbEpTT04ocmVzdWx0LCBmaXh0dXJlKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../../../test/unit/recovery/mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGlE,OAAO,EAAiB,KAAK,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/G,qBAAa,oBAAqB,YAAW,gBAAgB;IACpD,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IACnC,OAAO,CAAC,WAAW,CAA8B;gBACrC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;IASjC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQrD,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAUhE,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAItD,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAItD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAGvD;AAED;;;GAGG;AACH,qBAAa,8BAA8B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,YAAW,gBAAgB;IAK7F,IAAI,EAAE,gBAAgB;IAC7B,oEAAoE;IAC7D,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC;IAC7C,yEAAyE;IAClE,cAAc,EAAE,MAAM,EAAE;IARjC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,aAAa,CAAgB;gBAG5B,IAAI,EAAE,gBAAgB;IAC7B,oEAAoE;IAC7D,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC;IAC7C,yEAAyE;IAClE,cAAc,EAAE,MAAM,EAAE;IAM3B,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"mock.d.ts","sourceRoot":"","sources":["../../../../../test/unit/recovery/mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGlE,OAAO,EAAiB,KAAK,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC/G,qBAAa,oBAAqB,YAAW,gBAAgB;IACpD,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IACnC,OAAO,CAAC,WAAW,CAA8B;gBACrC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE;IASjC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAQrD,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAUhE,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAItD,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAItD,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CAGvD;AAED;;;GAGG;AACH,qBAAa,8BAA8B,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,CAAE,YAAW,gBAAgB;IAK7F,IAAI,EAAE,gBAAgB;IAC7B,oEAAoE;IAC7D,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC;IAC7C,yEAAyE;IAClE,cAAc,EAAE,MAAM,EAAE;IARjC,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,aAAa,CAAgB;gBAG5B,IAAI,EAAE,gBAAgB;IAC7B,oEAAoE;IAC7D,cAAc,EAAE,aAAa,CAAC,OAAO,CAAC;IAC7C,yEAAyE;IAClE,cAAc,EAAE,MAAM,EAAE;IAM3B,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAqBhE,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBtD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIrD,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAItD,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;CAGhE"}
|
|
@@ -63,7 +63,8 @@ class WasmCrossChainRecoveryProvider {
|
|
|
63
63
|
// Format the deposit address for BCH-like coins
|
|
64
64
|
let formattedAddress = this.depositUnspent.address;
|
|
65
65
|
if (this.addressFormat === 'cashaddr') {
|
|
66
|
-
|
|
66
|
+
const script = wasm_utxo_1.address.toOutputScriptWithCoin(this.depositUnspent.address, this.coin.wasmName);
|
|
67
|
+
formattedAddress = wasm_utxo_1.address.fromOutputScriptWithCoin(script, this.coin.wasmName, 'cashaddr');
|
|
67
68
|
if (formattedAddress.includes(':')) {
|
|
68
69
|
[, formattedAddress] = formattedAddress.split(':');
|
|
69
70
|
}
|
|
@@ -81,7 +82,8 @@ class WasmCrossChainRecoveryProvider {
|
|
|
81
82
|
// Format deposit address for output
|
|
82
83
|
let outputAddress = this.depositUnspent.address;
|
|
83
84
|
if (this.addressFormat === 'cashaddr') {
|
|
84
|
-
|
|
85
|
+
const script = wasm_utxo_1.address.toOutputScriptWithCoin(this.depositUnspent.address, this.coin.wasmName);
|
|
86
|
+
outputAddress = wasm_utxo_1.address.fromOutputScriptWithCoin(script, this.coin.wasmName, 'cashaddr');
|
|
85
87
|
if (outputAddress.includes(':')) {
|
|
86
88
|
[, outputAddress] = outputAddress.split(':');
|
|
87
89
|
}
|
|
@@ -108,4 +110,4 @@ class WasmCrossChainRecoveryProvider {
|
|
|
108
110
|
}
|
|
109
111
|
}
|
|
110
112
|
exports.WasmCrossChainRecoveryProvider = WasmCrossChainRecoveryProvider;
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9yZWNvdmVyeS9tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGdEQUF5RTtBQUd6RSwrQ0FBNEM7QUFDNUMsK0NBQTRDO0FBQzVDLGtEQUErRztBQUMvRyxNQUFhLG9CQUFvQjtJQUcvQixZQUFZLFFBQTJCO1FBRC9CLGdCQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzFCLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNsQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBQSx1QkFBYSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBSSxDQUErQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUNsQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQztRQUMzRCxPQUFPO1lBQ0wsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakMsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFL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dEMsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQWU7UUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBWTtRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELG9CQUFvQixDQUFDLElBQVk7UUFDL0IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQTVFRCx3RUE0RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZGRyZXNzSW5mbywgVHJhbnNhY3Rpb25JTyB9IGZyb20gJ0BiaXRnby9ibG9ja2FwaXMnO1xuaW1wb3J0IHsgYWRkcmVzcyBhcyB3YXNtQWRkcmVzcywgQWRkcmVzc0Zvcm1hdCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBBYnN0cmFjdFV0eG9Db2luLCBSZWNvdmVyeVByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjJztcbmltcG9ydCB7IEJjaCB9IGZyb20gJy4uLy4uLy4uL3NyYy9pbXBsL2JjaCc7XG5pbXBvcnQgeyBCc3YgfSBmcm9tICcuLi8uLi8uLi9zcmMvaW1wbC9ic3YnO1xuaW1wb3J0IHsgcGFyc2VPdXRwdXRJZCwgdHlwZSBVbnNwZW50LCB0eXBlIFVuc3BlbnRXaXRoUHJldlR4LCB0eXBlIFdhbGxldFVuc3BlbnQgfSBmcm9tICcuLi8uLi8uLi9zcmMvdW5zcGVudCc7XG5leHBvcnQgY2xhc3MgTW9ja1JlY292ZXJ5UHJvdmlkZXIgaW1wbGVtZW50cyBSZWNvdmVyeVByb3ZpZGVyIHtcbiAgcHVibGljIHVuc3BlbnRzOiBVbnNwZW50PGJpZ2ludD5bXTtcbiAgcHJpdmF0ZSBwcmV2VHhDYWNoZTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBjb25zdHJ1Y3Rvcih1bnNwZW50czogVW5zcGVudDxiaWdpbnQ+W10pIHtcbiAgICB0aGlzLnVuc3BlbnRzID0gdW5zcGVudHM7XG4gICAgdGhpcy51bnNwZW50cy5mb3JFYWNoKCh1KSA9PiB7XG4gICAgICBpZiAoJ3ByZXZUeCcgaW4gdSkge1xuICAgICAgICBjb25zdCB7IHR4aWQgfSA9IHBhcnNlT3V0cHV0SWQodS5pZCk7XG4gICAgICAgIHRoaXMucHJldlR4Q2FjaGVbdHhpZF0gPSAodSBhcyBVbnNwZW50V2l0aFByZXZUeDxiaWdpbnQ+KS5wcmV2VHgudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIGFzeW5jIGdldEFkZHJlc3NJbmZvKGFkZHJlc3M6IHN0cmluZyk6IFByb21pc2U8QWRkcmVzc0luZm8+IHtcbiAgICBjb25zdCB1ID0gdGhpcy51bnNwZW50cy5maW5kKCh1KSA9PiB1LmFkZHJlc3MgPT09IGFkZHJlc3MpO1xuICAgIHJldHVybiB7XG4gICAgICB0eENvdW50OiB1ID8gMSA6IDAsXG4gICAgICBiYWxhbmNlOiB1ID8gTnVtYmVyKHUudmFsdWUpIDogMCxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgZ2V0VW5zcGVudHNGb3JBZGRyZXNzZXMoYWRkcmVzc2VzOiBzdHJpbmdbXSk6IFByb21pc2U8VW5zcGVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMudW5zcGVudHNcbiAgICAgIC5maWx0ZXIoKHUpID0+IGFkZHJlc3Nlcy5pbmNsdWRlcyh1LmFkZHJlc3MpKVxuICAgICAgLm1hcCgodSkgPT4gKHtcbiAgICAgICAgaWQ6IHUuaWQsXG4gICAgICAgIGFkZHJlc3M6IHUuYWRkcmVzcyxcbiAgICAgICAgdmFsdWU6IE51bWJlcih1LnZhbHVlKSxcbiAgICAgIH0pKTtcbiAgfVxuXG4gIGFzeW5jIGdldFRyYW5zYWN0aW9uSGV4KHR4aWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMucHJldlR4Q2FjaGVbdHhpZF07XG4gIH1cblxuICBnZXRUcmFuc2FjdGlvbklucHV0cyh0eGlkOiBzdHJpbmcpOiBQcm9taXNlPFVuc3BlbnRbXT4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm90IGltcGxlbWVudGVkYCk7XG4gIH1cblxuICBnZXRUcmFuc2FjdGlvbklPKHR4aWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JTz4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm90IGltcGxlbWVudGVkYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBDcm9zcy1jaGFpbiByZWNvdmVyeSBtb2NrIHByb3ZpZGVyIHVzaW5nIHdhc20tdXR4byBvbmx5IChubyB1dHhvbGliIGRlcGVuZGVuY3kpLlxuICogVXNlcyBkaXJlY3QgdW5zcGVudCBkYXRhIGluc3RlYWQgb2YgcGFyc2luZyBhIHV0eG9saWIgdHJhbnNhY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBXYXNtQ3Jvc3NDaGFpblJlY292ZXJ5UHJvdmlkZXI8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludD4gaW1wbGVtZW50cyBSZWNvdmVyeVByb3ZpZGVyIHtcbiAgcHJpdmF0ZSBhZGRyZXNzVmVyc2lvbjogJ2Nhc2hhZGRyJyB8ICdiYXNlNTgnO1xuICBwcml2YXRlIGFkZHJlc3NGb3JtYXQ6IEFkZHJlc3NGb3JtYXQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gICAgLyoqIFRoZSB3YWxsZXQgdW5zcGVudCByZXByZXNlbnRpbmcgdGhlIG91dHB1dCBvbiB0aGUgd3JvbmcgY2hhaW4gKi9cbiAgICBwdWJsaWMgZGVwb3NpdFVuc3BlbnQ6IFdhbGxldFVuc3BlbnQ8VE51bWJlcj4sXG4gICAgLyoqIFRoZSBhZGRyZXNzZXMgdGhhdCB3ZXJlIGlucHV0cyB0byB0aGUgb3JpZ2luYWwgZGVwb3NpdCB0cmFuc2FjdGlvbiAqL1xuICAgIHB1YmxpYyBpbnB1dEFkZHJlc3Nlczogc3RyaW5nW11cbiAgKSB7XG4gICAgdGhpcy5hZGRyZXNzRm9ybWF0ID0gdGhpcy5jb2luIGluc3RhbmNlb2YgQmNoICYmICEodGhpcy5jb2luIGluc3RhbmNlb2YgQnN2KSA/ICdjYXNoYWRkcicgOiAnZGVmYXVsdCc7XG4gICAgdGhpcy5hZGRyZXNzVmVyc2lvbiA9IHRoaXMuY29pbiBpbnN0YW5jZW9mIEJjaCAmJiAhKHRoaXMuY29pbiBpbnN0YW5jZW9mIEJzdikgPyAnY2FzaGFkZHInIDogJ2Jhc2U1OCc7XG4gIH1cblxuICBhc3luYyBnZXRVbnNwZW50c0ZvckFkZHJlc3NlcyhhZGRyZXNzZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxVbnNwZW50W10+IHtcbiAgICAvLyBGb3JtYXQgdGhlIGRlcG9zaXQgYWRkcmVzcyBmb3IgQkNILWxpa2UgY29pbnNcbiAgICBsZXQgZm9ybWF0dGVkQWRkcmVzcyA9IHRoaXMuZGVwb3NpdFVuc3BlbnQuYWRkcmVzcztcbiAgICBpZiAodGhpcy5hZGRyZXNzRm9ybWF0ID09PSAnY2FzaGFkZHInKSB7XG4gICAgICBmb3JtYXR0ZWRBZGRyZXNzID0gd2FzbUFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdFdpdGhDb2luKFxuICAgICAgICB3YXNtQWRkcmVzcy50b091dHB1dFNjcmlwdFdpdGhDb2luKHRoaXMuZGVwb3NpdFVuc3BlbnQuYWRkcmVzcywgdGhpcy5jb2luLm5hbWUpLFxuICAgICAgICB0aGlzLmNvaW4ubmFtZSxcbiAgICAgICAgdGhpcy5hZGRyZXNzRm9ybWF0XG4gICAgICApO1xuICAgICAgaWYgKGZvcm1hdHRlZEFkZHJlc3MuaW5jbHVkZXMoJzonKSkge1xuICAgICAgICBbLCBmb3JtYXR0ZWRBZGRyZXNzXSA9IGZvcm1hdHRlZEFkZHJlc3Muc3BsaXQoJzonKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBpZDogdGhpcy5kZXBvc2l0VW5zcGVudC5pZCxcbiAgICAgICAgYWRkcmVzczogZm9ybWF0dGVkQWRkcmVzcyxcbiAgICAgICAgdmFsdWU6IE51bWJlcih0aGlzLmRlcG9zaXRVbnNwZW50LnZhbHVlKSxcbiAgICAgICAgLi4uKHRoaXMuY29pbi5hbW91bnRUeXBlID09PSAnYmlnaW50JyA/IHsgdmFsdWVTdHJpbmc6IHRoaXMuZGVwb3NpdFVuc3BlbnQudmFsdWUudG9TdHJpbmcoKSB9IDoge30pLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgYXN5bmMgZ2V0VHJhbnNhY3Rpb25JTyh0eGlkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSU8+IHtcbiAgICAvLyBGb3JtYXQgZGVwb3NpdCBhZGRyZXNzIGZvciBvdXRwdXRcbiAgICBsZXQgb3V0cHV0QWRkcmVzcyA9IHRoaXMuZGVwb3NpdFVuc3BlbnQuYWRkcmVzcztcbiAgICBpZiAodGhpcy5hZGRyZXNzRm9ybWF0ID09PSAnY2FzaGFkZHInKSB7XG4gICAgICBvdXRwdXRBZGRyZXNzID0gd2FzbUFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdFdpdGhDb2luKFxuICAgICAgICB3YXNtQWRkcmVzcy50b091dHB1dFNjcmlwdFdpdGhDb2luKHRoaXMuZGVwb3NpdFVuc3BlbnQuYWRkcmVzcywgdGhpcy5jb2luLm5hbWUpLFxuICAgICAgICB0aGlzLmNvaW4ubmFtZSxcbiAgICAgICAgdGhpcy5hZGRyZXNzRm9ybWF0XG4gICAgICApO1xuICAgICAgaWYgKG91dHB1dEFkZHJlc3MuaW5jbHVkZXMoJzonKSkge1xuICAgICAgICBbLCBvdXRwdXRBZGRyZXNzXSA9IG91dHB1dEFkZHJlc3Muc3BsaXQoJzonKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgaW5wdXRzOiB0aGlzLmlucHV0QWRkcmVzc2VzLm1hcCgoYWRkcikgPT4ge1xuICAgICAgICBsZXQgYWRkcmVzcyA9IHRoaXMuY29pbi5jYW5vbmljYWxBZGRyZXNzKGFkZHIsIHRoaXMuYWRkcmVzc1ZlcnNpb24pO1xuICAgICAgICBpZiAoYWRkcmVzcy5pbmNsdWRlcygnOicpKSB7XG4gICAgICAgICAgWywgYWRkcmVzc10gPSBhZGRyZXNzLnNwbGl0KCc6Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgYWRkcmVzcyB9O1xuICAgICAgfSksXG4gICAgICBvdXRwdXRzOiBbeyBhZGRyZXNzOiBvdXRwdXRBZGRyZXNzIH1dLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBnZXRBZGRyZXNzSW5mbyhhZGRyZXNzOiBzdHJpbmcpOiBQcm9taXNlPEFkZHJlc3NJbmZvPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGFzeW5jIGdldFRyYW5zYWN0aW9uSGV4KHR4aWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxuXG4gIGdldFRyYW5zYWN0aW9uSW5wdXRzKHR4aWQ6IHN0cmluZyk6IFByb21pc2U8VW5zcGVudDxUTnVtYmVyPltdPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgaW1wbGVtZW50ZWQnKTtcbiAgfVxufVxuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Rlc3QvdW5pdC9yZWNvdmVyeS9tb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLGdEQUF5RTtBQUd6RSwrQ0FBNEM7QUFDNUMsK0NBQTRDO0FBQzVDLGtEQUErRztBQUMvRyxNQUFhLG9CQUFvQjtJQUcvQixZQUFZLFFBQTJCO1FBRC9CLGdCQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUUvQyxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzFCLElBQUksUUFBUSxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUNsQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBQSx1QkFBYSxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBSSxDQUErQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkYsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUNsQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxPQUFPLENBQUMsQ0FBQztRQUMzRCxPQUFPO1lBQ0wsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakMsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFL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Q0FBQyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQztTQUN0QyxDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxJQUFZO1FBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsb0JBQW9CLENBQUMsSUFBWTtRQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBdEVELHdFQXNFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFkZHJlc3NJbmZvLCBUcmFuc2FjdGlvbklPIH0gZnJvbSAnQGJpdGdvL2Jsb2NrYXBpcyc7XG5pbXBvcnQgeyBhZGRyZXNzIGFzIHdhc21BZGRyZXNzLCBBZGRyZXNzRm9ybWF0IH0gZnJvbSAnQGJpdGdvL3dhc20tdXR4byc7XG5cbmltcG9ydCB7IEFic3RyYWN0VXR4b0NvaW4sIFJlY292ZXJ5UHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgQmNoIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2ltcGwvYmNoJztcbmltcG9ydCB7IEJzdiB9IGZyb20gJy4uLy4uLy4uL3NyYy9pbXBsL2Jzdic7XG5pbXBvcnQgeyBwYXJzZU91dHB1dElkLCB0eXBlIFVuc3BlbnQsIHR5cGUgVW5zcGVudFdpdGhQcmV2VHgsIHR5cGUgV2FsbGV0VW5zcGVudCB9IGZyb20gJy4uLy4uLy4uL3NyYy91bnNwZW50JztcbmV4cG9ydCBjbGFzcyBNb2NrUmVjb3ZlcnlQcm92aWRlciBpbXBsZW1lbnRzIFJlY292ZXJ5UHJvdmlkZXIge1xuICBwdWJsaWMgdW5zcGVudHM6IFVuc3BlbnQ8YmlnaW50PltdO1xuICBwcml2YXRlIHByZXZUeENhY2hlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGNvbnN0cnVjdG9yKHVuc3BlbnRzOiBVbnNwZW50PGJpZ2ludD5bXSkge1xuICAgIHRoaXMudW5zcGVudHMgPSB1bnNwZW50cztcbiAgICB0aGlzLnVuc3BlbnRzLmZvckVhY2goKHUpID0+IHtcbiAgICAgIGlmICgncHJldlR4JyBpbiB1KSB7XG4gICAgICAgIGNvbnN0IHsgdHhpZCB9ID0gcGFyc2VPdXRwdXRJZCh1LmlkKTtcbiAgICAgICAgdGhpcy5wcmV2VHhDYWNoZVt0eGlkXSA9ICh1IGFzIFVuc3BlbnRXaXRoUHJldlR4PGJpZ2ludD4pLnByZXZUeC50b1N0cmluZygnaGV4Jyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgYXN5bmMgZ2V0QWRkcmVzc0luZm8oYWRkcmVzczogc3RyaW5nKTogUHJvbWlzZTxBZGRyZXNzSW5mbz4ge1xuICAgIGNvbnN0IHUgPSB0aGlzLnVuc3BlbnRzLmZpbmQoKHUpID0+IHUuYWRkcmVzcyA9PT0gYWRkcmVzcyk7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR4Q291bnQ6IHUgPyAxIDogMCxcbiAgICAgIGJhbGFuY2U6IHUgPyBOdW1iZXIodS52YWx1ZSkgOiAwLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBnZXRVbnNwZW50c0ZvckFkZHJlc3NlcyhhZGRyZXNzZXM6IHN0cmluZ1tdKTogUHJvbWlzZTxVbnNwZW50W10+IHtcbiAgICByZXR1cm4gdGhpcy51bnNwZW50c1xuICAgICAgLmZpbHRlcigodSkgPT4gYWRkcmVzc2VzLmluY2x1ZGVzKHUuYWRkcmVzcykpXG4gICAgICAubWFwKCh1KSA9PiAoe1xuICAgICAgICBpZDogdS5pZCxcbiAgICAgICAgYWRkcmVzczogdS5hZGRyZXNzLFxuICAgICAgICB2YWx1ZTogTnVtYmVyKHUudmFsdWUpLFxuICAgICAgfSkpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VHJhbnNhY3Rpb25IZXgodHhpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5wcmV2VHhDYWNoZVt0eGlkXTtcbiAgfVxuXG4gIGdldFRyYW5zYWN0aW9uSW5wdXRzKHR4aWQ6IHN0cmluZyk6IFByb21pc2U8VW5zcGVudFtdPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBub3QgaW1wbGVtZW50ZWRgKTtcbiAgfVxuXG4gIGdldFRyYW5zYWN0aW9uSU8odHhpZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbklPPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBub3QgaW1wbGVtZW50ZWRgKTtcbiAgfVxufVxuXG4vKipcbiAqIENyb3NzLWNoYWluIHJlY292ZXJ5IG1vY2sgcHJvdmlkZXIgdXNpbmcgd2FzbS11dHhvIG9ubHkgKG5vIHV0eG9saWIgZGVwZW5kZW5jeSkuXG4gKiBVc2VzIGRpcmVjdCB1bnNwZW50IGRhdGEgaW5zdGVhZCBvZiBwYXJzaW5nIGEgdXR4b2xpYiB0cmFuc2FjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFdhc21Dcm9zc0NoYWluUmVjb3ZlcnlQcm92aWRlcjxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50PiBpbXBsZW1lbnRzIFJlY292ZXJ5UHJvdmlkZXIge1xuICBwcml2YXRlIGFkZHJlc3NWZXJzaW9uOiAnY2FzaGFkZHInIHwgJ2Jhc2U1OCc7XG4gIHByaXZhdGUgYWRkcmVzc0Zvcm1hdDogQWRkcmVzc0Zvcm1hdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgICAvKiogVGhlIHdhbGxldCB1bnNwZW50IHJlcHJlc2VudGluZyB0aGUgb3V0cHV0IG9uIHRoZSB3cm9uZyBjaGFpbiAqL1xuICAgIHB1YmxpYyBkZXBvc2l0VW5zcGVudDogV2FsbGV0VW5zcGVudDxUTnVtYmVyPixcbiAgICAvKiogVGhlIGFkZHJlc3NlcyB0aGF0IHdlcmUgaW5wdXRzIHRvIHRoZSBvcmlnaW5hbCBkZXBvc2l0IHRyYW5zYWN0aW9uICovXG4gICAgcHVibGljIGlucHV0QWRkcmVzc2VzOiBzdHJpbmdbXVxuICApIHtcbiAgICB0aGlzLmFkZHJlc3NGb3JtYXQgPSB0aGlzLmNvaW4gaW5zdGFuY2VvZiBCY2ggJiYgISh0aGlzLmNvaW4gaW5zdGFuY2VvZiBCc3YpID8gJ2Nhc2hhZGRyJyA6ICdkZWZhdWx0JztcbiAgICB0aGlzLmFkZHJlc3NWZXJzaW9uID0gdGhpcy5jb2luIGluc3RhbmNlb2YgQmNoICYmICEodGhpcy5jb2luIGluc3RhbmNlb2YgQnN2KSA/ICdjYXNoYWRkcicgOiAnYmFzZTU4JztcbiAgfVxuXG4gIGFzeW5jIGdldFVuc3BlbnRzRm9yQWRkcmVzc2VzKGFkZHJlc3Nlczogc3RyaW5nW10pOiBQcm9taXNlPFVuc3BlbnRbXT4ge1xuICAgIC8vIEZvcm1hdCB0aGUgZGVwb3NpdCBhZGRyZXNzIGZvciBCQ0gtbGlrZSBjb2luc1xuICAgIGxldCBmb3JtYXR0ZWRBZGRyZXNzID0gdGhpcy5kZXBvc2l0VW5zcGVudC5hZGRyZXNzO1xuICAgIGlmICh0aGlzLmFkZHJlc3NGb3JtYXQgPT09ICdjYXNoYWRkcicpIHtcbiAgICAgIGNvbnN0IHNjcmlwdCA9IHdhc21BZGRyZXNzLnRvT3V0cHV0U2NyaXB0V2l0aENvaW4odGhpcy5kZXBvc2l0VW5zcGVudC5hZGRyZXNzLCB0aGlzLmNvaW4ud2FzbU5hbWUpO1xuICAgICAgZm9ybWF0dGVkQWRkcmVzcyA9IHdhc21BZGRyZXNzLmZyb21PdXRwdXRTY3JpcHRXaXRoQ29pbihzY3JpcHQsIHRoaXMuY29pbi53YXNtTmFtZSwgJ2Nhc2hhZGRyJyk7XG4gICAgICBpZiAoZm9ybWF0dGVkQWRkcmVzcy5pbmNsdWRlcygnOicpKSB7XG4gICAgICAgIFssIGZvcm1hdHRlZEFkZHJlc3NdID0gZm9ybWF0dGVkQWRkcmVzcy5zcGxpdCgnOicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIGlkOiB0aGlzLmRlcG9zaXRVbnNwZW50LmlkLFxuICAgICAgICBhZGRyZXNzOiBmb3JtYXR0ZWRBZGRyZXNzLFxuICAgICAgICB2YWx1ZTogTnVtYmVyKHRoaXMuZGVwb3NpdFVuc3BlbnQudmFsdWUpLFxuICAgICAgICAuLi4odGhpcy5jb2luLmFtb3VudFR5cGUgPT09ICdiaWdpbnQnID8geyB2YWx1ZVN0cmluZzogdGhpcy5kZXBvc2l0VW5zcGVudC52YWx1ZS50b1N0cmluZygpIH0gOiB7fSksXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBhc3luYyBnZXRUcmFuc2FjdGlvbklPKHR4aWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JTz4ge1xuICAgIC8vIEZvcm1hdCBkZXBvc2l0IGFkZHJlc3MgZm9yIG91dHB1dFxuICAgIGxldCBvdXRwdXRBZGRyZXNzID0gdGhpcy5kZXBvc2l0VW5zcGVudC5hZGRyZXNzO1xuICAgIGlmICh0aGlzLmFkZHJlc3NGb3JtYXQgPT09ICdjYXNoYWRkcicpIHtcbiAgICAgIGNvbnN0IHNjcmlwdCA9IHdhc21BZGRyZXNzLnRvT3V0cHV0U2NyaXB0V2l0aENvaW4odGhpcy5kZXBvc2l0VW5zcGVudC5hZGRyZXNzLCB0aGlzLmNvaW4ud2FzbU5hbWUpO1xuICAgICAgb3V0cHV0QWRkcmVzcyA9IHdhc21BZGRyZXNzLmZyb21PdXRwdXRTY3JpcHRXaXRoQ29pbihzY3JpcHQsIHRoaXMuY29pbi53YXNtTmFtZSwgJ2Nhc2hhZGRyJyk7XG4gICAgICBpZiAob3V0cHV0QWRkcmVzcy5pbmNsdWRlcygnOicpKSB7XG4gICAgICAgIFssIG91dHB1dEFkZHJlc3NdID0gb3V0cHV0QWRkcmVzcy5zcGxpdCgnOicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBpbnB1dHM6IHRoaXMuaW5wdXRBZGRyZXNzZXMubWFwKChhZGRyKSA9PiB7XG4gICAgICAgIGxldCBhZGRyZXNzID0gdGhpcy5jb2luLmNhbm9uaWNhbEFkZHJlc3MoYWRkciwgdGhpcy5hZGRyZXNzVmVyc2lvbik7XG4gICAgICAgIGlmIChhZGRyZXNzLmluY2x1ZGVzKCc6JykpIHtcbiAgICAgICAgICBbLCBhZGRyZXNzXSA9IGFkZHJlc3Muc3BsaXQoJzonKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBhZGRyZXNzIH07XG4gICAgICB9KSxcbiAgICAgIG91dHB1dHM6IFt7IGFkZHJlc3M6IG91dHB1dEFkZHJlc3MgfV0sXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIGdldEFkZHJlc3NJbmZvKGFkZHJlc3M6IHN0cmluZyk6IFByb21pc2U8QWRkcmVzc0luZm8+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgYXN5bmMgZ2V0VHJhbnNhY3Rpb25IZXgodHhpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG5cbiAgZ2V0VHJhbnNhY3Rpb25JbnB1dHModHhpZDogc3RyaW5nKTogUHJvbWlzZTxVbnNwZW50PFROdW1iZXI+W10+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCBpbXBsZW1lbnRlZCcpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tbtcstx.d.ts","sourceRoot":"","sources":["../../../../test/unit/tbtcstx.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = 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);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const assert_1 = __importDefault(require("assert"));
|
|
40
|
+
const statics_1 = require("@bitgo/statics");
|
|
41
|
+
const utxolib = __importStar(require("@bitgo/utxo-lib"));
|
|
42
|
+
const src_1 = require("../../src");
|
|
43
|
+
const util_1 = require("./util");
|
|
44
|
+
describe('tbtcstx', function () {
|
|
45
|
+
const coin = src_1.Tbtcstx.createInstance(util_1.defaultBitGo);
|
|
46
|
+
it('uses the public coin name with the testnet utxolib network', function () {
|
|
47
|
+
assert_1.default.strictEqual(coin.getChain(), 'tbtcstx');
|
|
48
|
+
assert_1.default.strictEqual(coin.wasmName, 'tbtcreg');
|
|
49
|
+
assert_1.default.strictEqual(statics_1.Networks.test.bitcoinStx.utxolibName, 'testnet');
|
|
50
|
+
assert_1.default.strictEqual((0, util_1.getNetworkForCoinName)(coin.name), utxolib.networks.testnet);
|
|
51
|
+
});
|
|
52
|
+
it('encodes and decodes private-1 addresses through the tbtcreg codec', function () {
|
|
53
|
+
const script = Buffer.from(`0014${'11'.repeat(20)}`, 'hex');
|
|
54
|
+
const address = coin.addressCodec.encode(script);
|
|
55
|
+
assert_1.default.match(address, /^bcrt1q/);
|
|
56
|
+
assert_1.default.deepStrictEqual(Buffer.from(coin.addressCodec.decode(address)), script);
|
|
57
|
+
assert_1.default.strictEqual(coin.isValidAddress(address), true);
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGJ0Y3N0eC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Rlc3QvdW5pdC90YnRjc3R4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQTRCO0FBRTVCLDRDQUEwQztBQUMxQyx5REFBMkM7QUFFM0MsbUNBQW9DO0FBRXBDLGlDQUE2RDtBQUU3RCxRQUFRLENBQUMsU0FBUyxFQUFFO0lBQ2xCLE1BQU0sSUFBSSxHQUFHLGFBQU8sQ0FBQyxjQUFjLENBQUMsbUJBQVksQ0FBQyxDQUFDO0lBRWxELEVBQUUsQ0FBQyw0REFBNEQsRUFBRTtRQUMvRCxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDL0MsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM3QyxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxrQkFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLGdCQUFNLENBQUMsV0FBVyxDQUFDLElBQUEsNEJBQXFCLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakYsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbUVBQW1FLEVBQUU7UUFDdEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVqRCxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDakMsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQy9FLGdCQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDekQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgTmV0d29ya3MgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmltcG9ydCB7IFRidGNzdHggfSBmcm9tICcuLi8uLi9zcmMnO1xuXG5pbXBvcnQgeyBkZWZhdWx0Qml0R28sIGdldE5ldHdvcmtGb3JDb2luTmFtZSB9IGZyb20gJy4vdXRpbCc7XG5cbmRlc2NyaWJlKCd0YnRjc3R4JywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBjb2luID0gVGJ0Y3N0eC5jcmVhdGVJbnN0YW5jZShkZWZhdWx0Qml0R28pO1xuXG4gIGl0KCd1c2VzIHRoZSBwdWJsaWMgY29pbiBuYW1lIHdpdGggdGhlIHRlc3RuZXQgdXR4b2xpYiBuZXR3b3JrJywgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb2luLmdldENoYWluKCksICd0YnRjc3R4Jyk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvaW4ud2FzbU5hbWUsICd0YnRjcmVnJyk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKE5ldHdvcmtzLnRlc3QuYml0Y29pblN0eC51dHhvbGliTmFtZSwgJ3Rlc3RuZXQnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0TmV0d29ya0ZvckNvaW5OYW1lKGNvaW4ubmFtZSksIHV0eG9saWIubmV0d29ya3MudGVzdG5ldCk7XG4gIH0pO1xuXG4gIGl0KCdlbmNvZGVzIGFuZCBkZWNvZGVzIHByaXZhdGUtMSBhZGRyZXNzZXMgdGhyb3VnaCB0aGUgdGJ0Y3JlZyBjb2RlYycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBzY3JpcHQgPSBCdWZmZXIuZnJvbShgMDAxNCR7JzExJy5yZXBlYXQoMjApfWAsICdoZXgnKTtcbiAgICBjb25zdCBhZGRyZXNzID0gY29pbi5hZGRyZXNzQ29kZWMuZW5jb2RlKHNjcmlwdCk7XG5cbiAgICBhc3NlcnQubWF0Y2goYWRkcmVzcywgL15iY3J0MXEvKTtcbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKEJ1ZmZlci5mcm9tKGNvaW4uYWRkcmVzc0NvZGVjLmRlY29kZShhZGRyZXNzKSksIHNjcmlwdCk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvaW4uaXNWYWxpZEFkZHJlc3MoYWRkcmVzcyksIHRydWUpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tbtcstxprivate1.d.ts","sourceRoot":"","sources":["../../../../test/unit/tbtcstxprivate1.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = 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);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const assert_1 = __importDefault(require("assert"));
|
|
40
|
+
const statics_1 = require("@bitgo/statics");
|
|
41
|
+
const utxolib = __importStar(require("@bitgo/utxo-lib"));
|
|
42
|
+
const src_1 = require("../../src");
|
|
43
|
+
const util_1 = require("./util");
|
|
44
|
+
describe('tbtcstxprivate1', function () {
|
|
45
|
+
const coin = src_1.Tbtcstxprivate1.createInstance(util_1.defaultBitGo);
|
|
46
|
+
it('uses the private-1 public coin name with the testnet utxolib network', function () {
|
|
47
|
+
assert_1.default.strictEqual(coin.getChain(), 'tbtcstxprivate1');
|
|
48
|
+
assert_1.default.strictEqual(coin.getFullName(), 'Stacks Bitcoin (Private-1 Regtest)');
|
|
49
|
+
assert_1.default.strictEqual(coin.wasmName, 'tbtcreg');
|
|
50
|
+
assert_1.default.strictEqual(statics_1.Networks.test.bitcoinStxPrivate1.utxolibName, 'testnet');
|
|
51
|
+
assert_1.default.strictEqual((0, util_1.getNetworkForCoinName)(coin.name), utxolib.networks.testnet);
|
|
52
|
+
});
|
|
53
|
+
it('encodes and decodes private-1 addresses through the tbtcreg codec', function () {
|
|
54
|
+
const script = Buffer.from(`0014${'11'.repeat(20)}`, 'hex');
|
|
55
|
+
const address = coin.addressCodec.encode(script);
|
|
56
|
+
assert_1.default.match(address, /^bcrt1q/);
|
|
57
|
+
assert_1.default.deepStrictEqual(Buffer.from(coin.addressCodec.decode(address)), script);
|
|
58
|
+
assert_1.default.strictEqual(coin.isValidAddress(address), true);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGJ0Y3N0eHByaXZhdGUxLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RidGNzdHhwcml2YXRlMS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUE0QjtBQUU1Qiw0Q0FBMEM7QUFDMUMseURBQTJDO0FBRTNDLG1DQUE0QztBQUU1QyxpQ0FBNkQ7QUFFN0QsUUFBUSxDQUFDLGlCQUFpQixFQUFFO0lBQzFCLE1BQU0sSUFBSSxHQUFHLHFCQUFlLENBQUMsY0FBYyxDQUFDLG1CQUFZLENBQUMsQ0FBQztJQUUxRCxFQUFFLENBQUMsc0VBQXNFLEVBQUU7UUFDekUsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDdkQsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLG9DQUFvQyxDQUFDLENBQUM7UUFDN0UsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM3QyxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxrQkFBUSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDNUUsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsSUFBQSw0QkFBcUIsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxtRUFBbUUsRUFBRTtRQUN0RSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpELGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqQyxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0UsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBOZXR3b3JrcyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcblxuaW1wb3J0IHsgVGJ0Y3N0eHByaXZhdGUxIH0gZnJvbSAnLi4vLi4vc3JjJztcblxuaW1wb3J0IHsgZGVmYXVsdEJpdEdvLCBnZXROZXR3b3JrRm9yQ29pbk5hbWUgfSBmcm9tICcuL3V0aWwnO1xuXG5kZXNjcmliZSgndGJ0Y3N0eHByaXZhdGUxJywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBjb2luID0gVGJ0Y3N0eHByaXZhdGUxLmNyZWF0ZUluc3RhbmNlKGRlZmF1bHRCaXRHbyk7XG5cbiAgaXQoJ3VzZXMgdGhlIHByaXZhdGUtMSBwdWJsaWMgY29pbiBuYW1lIHdpdGggdGhlIHRlc3RuZXQgdXR4b2xpYiBuZXR3b3JrJywgZnVuY3Rpb24gKCkge1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb2luLmdldENoYWluKCksICd0YnRjc3R4cHJpdmF0ZTEnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29pbi5nZXRGdWxsTmFtZSgpLCAnU3RhY2tzIEJpdGNvaW4gKFByaXZhdGUtMSBSZWd0ZXN0KScpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChjb2luLndhc21OYW1lLCAndGJ0Y3JlZycpO1xuICAgIGFzc2VydC5zdHJpY3RFcXVhbChOZXR3b3Jrcy50ZXN0LmJpdGNvaW5TdHhQcml2YXRlMS51dHhvbGliTmFtZSwgJ3Rlc3RuZXQnKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoZ2V0TmV0d29ya0ZvckNvaW5OYW1lKGNvaW4ubmFtZSksIHV0eG9saWIubmV0d29ya3MudGVzdG5ldCk7XG4gIH0pO1xuXG4gIGl0KCdlbmNvZGVzIGFuZCBkZWNvZGVzIHByaXZhdGUtMSBhZGRyZXNzZXMgdGhyb3VnaCB0aGUgdGJ0Y3JlZyBjb2RlYycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBzY3JpcHQgPSBCdWZmZXIuZnJvbShgMDAxNCR7JzExJy5yZXBlYXQoMjApfWAsICdoZXgnKTtcbiAgICBjb25zdCBhZGRyZXNzID0gY29pbi5hZGRyZXNzQ29kZWMuZW5jb2RlKHNjcmlwdCk7XG5cbiAgICBhc3NlcnQubWF0Y2goYWRkcmVzcywgL15iY3J0MXEvKTtcbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKEJ1ZmZlci5mcm9tKGNvaW4uYWRkcmVzc0NvZGVjLmRlY29kZShhZGRyZXNzKSksIHNjcmlwdCk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvaW4uaXNWYWxpZEFkZHJlc3MoYWRkcmVzcyksIHRydWUpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addressCodec.d.ts","sourceRoot":"","sources":["../../../../../test/unit/transaction/addressCodec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const strict_1 = __importDefault(require("node:assert/strict"));
|
|
7
|
+
const recipient_1 = require("../../../src/transaction/recipient");
|
|
8
|
+
describe('AddressCodec', function () {
|
|
9
|
+
const witnessScript = Buffer.from(`0014${'11'.repeat(20)}`, 'hex');
|
|
10
|
+
it('round-trips standard testnet addresses and rejects malformed addresses', function () {
|
|
11
|
+
const codec = new recipient_1.AddressCodec('tbtc');
|
|
12
|
+
const address = codec.encode(witnessScript);
|
|
13
|
+
strict_1.default.match(address, /^tb1q/);
|
|
14
|
+
strict_1.default.deepStrictEqual(Buffer.from(codec.decode(address)), witnessScript);
|
|
15
|
+
strict_1.default.strictEqual(codec.isValidAddress(address), true);
|
|
16
|
+
strict_1.default.strictEqual(codec.isValidAddress(`${address.slice(0, -1)}0`), false);
|
|
17
|
+
});
|
|
18
|
+
it('supports a separate WASM codec name without changing the public coin name', function () {
|
|
19
|
+
const codec = new recipient_1.AddressCodec('tbtc', 'tbtcreg');
|
|
20
|
+
const address = codec.encode(witnessScript);
|
|
21
|
+
strict_1.default.match(address, /^bcrt1q/);
|
|
22
|
+
strict_1.default.deepStrictEqual(Buffer.from(codec.decode(address)), witnessScript);
|
|
23
|
+
strict_1.default.strictEqual(codec.isValidAddress(address), true);
|
|
24
|
+
});
|
|
25
|
+
it('does not treat cashaddr as a general address format', function () {
|
|
26
|
+
const codec = new recipient_1.AddressCodec('bch');
|
|
27
|
+
strict_1.default.strictEqual(codec.isValidAddress('bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a'), false);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc0NvZGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uL2FkZHJlc3NDb2RlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdFQUF3QztBQUV4QyxrRUFBa0U7QUFFbEUsUUFBUSxDQUFDLGNBQWMsRUFBRTtJQUN2QixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRW5FLEVBQUUsQ0FBQyx3RUFBd0UsRUFBRTtRQUMzRSxNQUFNLEtBQUssR0FBRyxJQUFJLHdCQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUU1QyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDL0IsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDMUUsZ0JBQU0sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkVBQTJFLEVBQUU7UUFDOUUsTUFBTSxLQUFLLEdBQUcsSUFBSSx3QkFBWSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTVDLGdCQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqQyxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMxRSxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHFEQUFxRCxFQUFFO1FBQ3hELE1BQU0sS0FBSyxHQUFHLElBQUksd0JBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV0QyxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLHdEQUF3RCxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUcsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnbm9kZTphc3NlcnQvc3RyaWN0JztcblxuaW1wb3J0IHsgQWRkcmVzc0NvZGVjIH0gZnJvbSAnLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL3JlY2lwaWVudCc7XG5cbmRlc2NyaWJlKCdBZGRyZXNzQ29kZWMnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHdpdG5lc3NTY3JpcHQgPSBCdWZmZXIuZnJvbShgMDAxNCR7JzExJy5yZXBlYXQoMjApfWAsICdoZXgnKTtcblxuICBpdCgncm91bmQtdHJpcHMgc3RhbmRhcmQgdGVzdG5ldCBhZGRyZXNzZXMgYW5kIHJlamVjdHMgbWFsZm9ybWVkIGFkZHJlc3NlcycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBjb2RlYyA9IG5ldyBBZGRyZXNzQ29kZWMoJ3RidGMnKTtcbiAgICBjb25zdCBhZGRyZXNzID0gY29kZWMuZW5jb2RlKHdpdG5lc3NTY3JpcHQpO1xuXG4gICAgYXNzZXJ0Lm1hdGNoKGFkZHJlc3MsIC9edGIxcS8pO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoQnVmZmVyLmZyb20oY29kZWMuZGVjb2RlKGFkZHJlc3MpKSwgd2l0bmVzc1NjcmlwdCk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvZGVjLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpLCB0cnVlKTtcbiAgICBhc3NlcnQuc3RyaWN0RXF1YWwoY29kZWMuaXNWYWxpZEFkZHJlc3MoYCR7YWRkcmVzcy5zbGljZSgwLCAtMSl9MGApLCBmYWxzZSk7XG4gIH0pO1xuXG4gIGl0KCdzdXBwb3J0cyBhIHNlcGFyYXRlIFdBU00gY29kZWMgbmFtZSB3aXRob3V0IGNoYW5naW5nIHRoZSBwdWJsaWMgY29pbiBuYW1lJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGNvZGVjID0gbmV3IEFkZHJlc3NDb2RlYygndGJ0YycsICd0YnRjcmVnJyk7XG4gICAgY29uc3QgYWRkcmVzcyA9IGNvZGVjLmVuY29kZSh3aXRuZXNzU2NyaXB0KTtcblxuICAgIGFzc2VydC5tYXRjaChhZGRyZXNzLCAvXmJjcnQxcS8pO1xuICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoQnVmZmVyLmZyb20oY29kZWMuZGVjb2RlKGFkZHJlc3MpKSwgd2l0bmVzc1NjcmlwdCk7XG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvZGVjLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpLCB0cnVlKTtcbiAgfSk7XG5cbiAgaXQoJ2RvZXMgbm90IHRyZWF0IGNhc2hhZGRyIGFzIGEgZ2VuZXJhbCBhZGRyZXNzIGZvcm1hdCcsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBjb2RlYyA9IG5ldyBBZGRyZXNzQ29kZWMoJ2JjaCcpO1xuXG4gICAgYXNzZXJ0LnN0cmljdEVxdWFsKGNvZGVjLmlzVmFsaWRBZGRyZXNzKCdiaXRjb2luY2FzaDpxcG0ycXN6bmhrczIzejc2MjltbXM2czRjd2VmNzR2Y3d2eTIyZ2R4NmEnKSwgZmFsc2UpO1xuICB9KTtcbn0pO1xuIl19
|