@bitgo/abstract-utxo 12.7.0 → 13.1.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.map +1 -1
- package/dist/cjs/src/abstractUtxoCoin.js +3 -3
- package/dist/cjs/src/impl/zec/address.d.ts +6 -0
- package/dist/cjs/src/impl/zec/address.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/address.js +38 -1
- package/dist/cjs/src/impl/zec/index.d.ts +1 -0
- package/dist/cjs/src/impl/zec/index.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/index.js +2 -1
- package/dist/cjs/src/impl/zec/recipients.d.ts +2 -1
- package/dist/cjs/src/impl/zec/recipients.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/recipients.js +7 -3
- package/dist/cjs/src/impl/zec/shieldedAddress.d.ts +36 -0
- package/dist/cjs/src/impl/zec/shieldedAddress.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/shieldedAddress.js +51 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.d.ts +29 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.d.ts.map +1 -0
- package/dist/cjs/src/impl/zec/signIronwoodTransaction.js +57 -0
- package/dist/cjs/src/impl/zec/types.d.ts +5 -0
- package/dist/cjs/src/impl/zec/types.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/types.js +1 -1
- package/dist/cjs/src/impl/zec/zec.d.ts +35 -2
- package/dist/cjs/src/impl/zec/zec.d.ts.map +1 -1
- package/dist/cjs/src/impl/zec/zec.js +94 -1
- package/dist/cjs/src/transaction/explainTransaction.d.ts +2 -1
- package/dist/cjs/src/transaction/explainTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/explainTransaction.js +3 -2
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts +2 -0
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/explainPsbtWasm.js +4 -1
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/parseTransaction.js +9 -3
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts +7 -0
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signPsbtWasm.js +32 -20
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts +9 -0
- package/dist/cjs/src/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/fixedScript/signTransaction.js +18 -9
- package/dist/cjs/src/transaction/recipient.d.ts +24 -1
- package/dist/cjs/src/transaction/recipient.d.ts.map +1 -1
- package/dist/cjs/src/transaction/recipient.js +32 -4
- package/dist/cjs/src/transaction/signTransaction.d.ts +12 -0
- package/dist/cjs/src/transaction/signTransaction.d.ts.map +1 -1
- package/dist/cjs/src/transaction/signTransaction.js +16 -7
- package/dist/cjs/test/unit/bip322.js +14 -4
- package/dist/cjs/test/unit/customChangeWallet.js +3 -1
- package/dist/cjs/test/unit/impl/zec/psbtDecode.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/psbtDecode.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/psbtDecode.js +69 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/shieldedPrebuildAndSign.js +470 -0
- package/dist/cjs/test/unit/impl/zec/unit/address.js +23 -1
- package/dist/cjs/test/unit/impl/zec/unit/resolvePsbtRecipients.js +7 -5
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.d.ts +2 -0
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.d.ts.map +1 -0
- package/dist/cjs/test/unit/impl/zec/unit/shieldedAddress.js +57 -0
- package/dist/cjs/test/unit/transaction/fixedScript/explainPsbt.js +9 -1
- package/dist/cjs/test/unit/transaction/fixedScript/parsePsbt.js +2 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/abstractUtxoCoin.d.ts.map +1 -1
- package/dist/esm/abstractUtxoCoin.js +3 -3
- package/dist/esm/impl/zec/address.d.ts +6 -0
- package/dist/esm/impl/zec/address.d.ts.map +1 -1
- package/dist/esm/impl/zec/address.js +38 -1
- package/dist/esm/impl/zec/index.d.ts +1 -0
- package/dist/esm/impl/zec/index.d.ts.map +1 -1
- package/dist/esm/impl/zec/index.js +2 -1
- package/dist/esm/impl/zec/recipients.d.ts +2 -1
- package/dist/esm/impl/zec/recipients.d.ts.map +1 -1
- package/dist/esm/impl/zec/recipients.js +7 -3
- package/dist/esm/impl/zec/shieldedAddress.d.ts +36 -0
- package/dist/esm/impl/zec/shieldedAddress.d.ts.map +1 -0
- package/dist/esm/impl/zec/shieldedAddress.js +48 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.d.ts +29 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.d.ts.map +1 -0
- package/dist/esm/impl/zec/signIronwoodTransaction.js +50 -0
- package/dist/esm/impl/zec/types.d.ts +5 -0
- package/dist/esm/impl/zec/types.d.ts.map +1 -1
- package/dist/esm/impl/zec/types.js +1 -1
- package/dist/esm/impl/zec/zec.d.ts +35 -2
- package/dist/esm/impl/zec/zec.d.ts.map +1 -1
- package/dist/esm/impl/zec/zec.js +92 -2
- package/dist/esm/transaction/explainTransaction.d.ts +2 -1
- package/dist/esm/transaction/explainTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/explainTransaction.js +3 -2
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts +2 -0
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/explainPsbtWasm.js +4 -1
- package/dist/esm/transaction/fixedScript/parseTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/parseTransaction.js +9 -3
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts +7 -0
- package/dist/esm/transaction/fixedScript/signPsbtWasm.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signPsbtWasm.js +30 -20
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts +9 -0
- package/dist/esm/transaction/fixedScript/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/fixedScript/signTransaction.js +17 -9
- package/dist/esm/transaction/recipient.d.ts +24 -1
- package/dist/esm/transaction/recipient.d.ts.map +1 -1
- package/dist/esm/transaction/recipient.js +32 -4
- package/dist/esm/transaction/signTransaction.d.ts +12 -0
- package/dist/esm/transaction/signTransaction.d.ts.map +1 -1
- package/dist/esm/transaction/signTransaction.js +15 -8
- package/package.json +6 -6
|
@@ -46,7 +46,7 @@ const descriptor = __importStar(require("./descriptor"));
|
|
|
46
46
|
* Decompose a raw transaction into useful information, such as the total amounts,
|
|
47
47
|
* change amounts, and transaction outputs.
|
|
48
48
|
*/
|
|
49
|
-
function explainTx(tx, params, coinName) {
|
|
49
|
+
function explainTx(tx, params, coinName, addressCodec) {
|
|
50
50
|
if (params.wallet && (0, descriptor_1.isDescriptorWallet)(params.wallet)) {
|
|
51
51
|
if (!(tx instanceof wasm_utxo_1.Psbt)) {
|
|
52
52
|
throw new Error('descriptor wallets require PSBT format transactions');
|
|
@@ -68,6 +68,7 @@ function explainTx(tx, params, coinName) {
|
|
|
68
68
|
throw new Error('pub triple must be valid triple or RootWalletKeys');
|
|
69
69
|
}
|
|
70
70
|
return fixedScript.explainPsbtWasm(tx, walletXpubs, {
|
|
71
|
+
addressCodec,
|
|
71
72
|
replayProtection: {
|
|
72
73
|
publicKeys: (0, replayProtection_1.getReplayProtectionPubkeys)(coinName),
|
|
73
74
|
},
|
|
@@ -81,4 +82,4 @@ function explainTx(tx, params, coinName) {
|
|
|
81
82
|
throw new Error('unsupported transaction type');
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2V4cGxhaW5UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtCQSw4QkEyQ0M7QUE3REQsZ0RBQXVFO0FBQ3ZFLDhDQUE0RDtBQUU1RCw4Q0FBK0U7QUFDL0UsNENBQTZDO0FBQzdDLGlFQUErRDtBQUkvRCxxRUFBNEU7QUFFNUUsMkRBQTZDO0FBQzdDLHlEQUEyQztBQUUzQzs7O0dBR0c7QUFDSCxTQUFnQixTQUFTLENBQ3ZCLEVBQTBDLEVBQzFDLE1BS0MsRUFDRCxRQUF5QyxFQUN6QyxZQUEwQjtJQUUxQixJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBQSwrQkFBa0IsRUFBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN2RCxJQUFJLENBQUMsQ0FBQyxFQUFFLFlBQVksZ0JBQVEsQ0FBQyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUEsbUJBQVEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDbkUsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLElBQUEseUJBQWEsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsTUFBTSxXQUFXLEdBQUcsSUFBQSx1Q0FBMEIsRUFBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxJQUFBLGdDQUFlLEVBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwSCxPQUFPLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsSUFBSSxFQUFFLFlBQVksNkJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUErQixJQUFBLG1CQUFRLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFFLElBQXVCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN0RyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRTtZQUNsRCxZQUFZO1lBQ1osZ0JBQWdCLEVBQUU7Z0JBQ2hCLFVBQVUsRUFBRSxJQUFBLDZDQUEwQixFQUFDLFFBQVEsQ0FBQzthQUNqRDtZQUNELHVCQUF1QixFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7U0FDbEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztTQUFNLElBQUksRUFBRSxZQUFZLGdCQUFRLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7SUFDOUUsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLElBQUksS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDbEQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaXhlZFNjcmlwdFdhbGxldCwgUHNidCBhcyBXYXNtUHNidCB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuaW1wb3J0IHsgaXNUcmlwbGUsIElXYWxsZXQsIFRyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB7IGdldERlc2NyaXB0b3JNYXBGcm9tV2FsbGV0LCBpc0Rlc2NyaXB0b3JXYWxsZXQgfSBmcm9tICcuLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IHRvQmlwMzJUcmlwbGUgfSBmcm9tICcuLi9rZXljaGFpbnMnO1xuaW1wb3J0IHsgZ2V0UG9saWN5Rm9yRW52IH0gZnJvbSAnLi4vZGVzY3JpcHRvci92YWxpZGF0ZVBvbGljeSc7XG5pbXBvcnQgeyBVdHhvQ29pbk5hbWUsIFdhc21VdHhvQ29pbk5hbWUgfSBmcm9tICcuLi9uYW1lcyc7XG5pbXBvcnQgdHlwZSB7IFVuc3BlbnQgfSBmcm9tICcuLi91bnNwZW50JztcblxuaW1wb3J0IHsgZ2V0UmVwbGF5UHJvdGVjdGlvblB1YmtleXMgfSBmcm9tICcuL2ZpeGVkU2NyaXB0L3JlcGxheVByb3RlY3Rpb24nO1xuaW1wb3J0IHR5cGUgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uVXR4b2xpYlBzYnQsIFRyYW5zYWN0aW9uRXhwbGFuYXRpb25XYXNtIH0gZnJvbSAnLi9maXhlZFNjcmlwdC9leHBsYWluVHJhbnNhY3Rpb24nO1xuaW1wb3J0ICogYXMgZml4ZWRTY3JpcHQgZnJvbSAnLi9maXhlZFNjcmlwdCc7XG5pbXBvcnQgKiBhcyBkZXNjcmlwdG9yIGZyb20gJy4vZGVzY3JpcHRvcic7XG5pbXBvcnQgdHlwZSB7IEFkZHJlc3NDb2RlYyB9IGZyb20gJy4vcmVjaXBpZW50Jztcbi8qKlxuICogRGVjb21wb3NlIGEgcmF3IHRyYW5zYWN0aW9uIGludG8gdXNlZnVsIGluZm9ybWF0aW9uLCBzdWNoIGFzIHRoZSB0b3RhbCBhbW91bnRzLFxuICogY2hhbmdlIGFtb3VudHMsIGFuZCB0cmFuc2FjdGlvbiBvdXRwdXRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhwbGFpblR4PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQ+KFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0IHwgV2FzbVBzYnQsXG4gIHBhcmFtczoge1xuICAgIHdhbGxldD86IElXYWxsZXQ7XG4gICAgcHVicz86IHN0cmluZ1tdO1xuICAgIGN1c3RvbUNoYW5nZVhwdWJzPzogVHJpcGxlPHN0cmluZz47XG4gICAgdHhJbmZvPzogeyB1bnNwZW50cz86IFVuc3BlbnQ8VE51bWJlcj5bXSB9O1xuICB9LFxuICBjb2luTmFtZTogVXR4b0NvaW5OYW1lIHwgV2FzbVV0eG9Db2luTmFtZSxcbiAgYWRkcmVzc0NvZGVjOiBBZGRyZXNzQ29kZWNcbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25VdHhvbGliUHNidCB8IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25XYXNtIHtcbiAgaWYgKHBhcmFtcy53YWxsZXQgJiYgaXNEZXNjcmlwdG9yV2FsbGV0KHBhcmFtcy53YWxsZXQpKSB7XG4gICAgaWYgKCEodHggaW5zdGFuY2VvZiBXYXNtUHNidCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZGVzY3JpcHRvciB3YWxsZXRzIHJlcXVpcmUgUFNCVCBmb3JtYXQgdHJhbnNhY3Rpb25zJyk7XG4gICAgfVxuICAgIGlmICghcGFyYW1zLnB1YnMgfHwgIWlzVHJpcGxlKHBhcmFtcy5wdWJzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwdWIgdHJpcGxlIGlzIHJlcXVpcmVkIGZvciBkZXNjcmlwdG9yIHdhbGxldHMnKTtcbiAgICB9XG4gICAgY29uc3Qgd2FsbGV0S2V5cyA9IHRvQmlwMzJUcmlwbGUocGFyYW1zLnB1YnMpO1xuICAgIGNvbnN0IGRlc2NyaXB0b3JzID0gZ2V0RGVzY3JpcHRvck1hcEZyb21XYWxsZXQocGFyYW1zLndhbGxldCwgd2FsbGV0S2V5cywgZ2V0UG9saWN5Rm9yRW52KHBhcmFtcy53YWxsZXQuYml0Z28uZW52KSk7XG4gICAgcmV0dXJuIGRlc2NyaXB0b3IuZXhwbGFpblBzYnQodHgsIGRlc2NyaXB0b3JzLCBjb2luTmFtZSk7XG4gIH1cbiAgaWYgKHR4IGluc3RhbmNlb2YgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KSB7XG4gICAgY29uc3QgcHVicyA9IHBhcmFtcy5wdWJzO1xuICAgIGlmICghcHVicykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdwdWIgdHJpcGxlIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IHdhbGxldFhwdWJzOiBUcmlwbGU8c3RyaW5nPiB8IHVuZGVmaW5lZCA9IGlzVHJpcGxlKHB1YnMpID8gKHB1YnMgYXMgVHJpcGxlPHN0cmluZz4pIDogdW5kZWZpbmVkO1xuICAgIGlmICghd2FsbGV0WHB1YnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncHViIHRyaXBsZSBtdXN0IGJlIHZhbGlkIHRyaXBsZSBvciBSb290V2FsbGV0S2V5cycpO1xuICAgIH1cbiAgICByZXR1cm4gZml4ZWRTY3JpcHQuZXhwbGFpblBzYnRXYXNtKHR4LCB3YWxsZXRYcHVicywge1xuICAgICAgYWRkcmVzc0NvZGVjLFxuICAgICAgcmVwbGF5UHJvdGVjdGlvbjoge1xuICAgICAgICBwdWJsaWNLZXlzOiBnZXRSZXBsYXlQcm90ZWN0aW9uUHVia2V5cyhjb2luTmFtZSksXG4gICAgICB9LFxuICAgICAgY3VzdG9tQ2hhbmdlV2FsbGV0WHB1YnM6IHBhcmFtcy5jdXN0b21DaGFuZ2VYcHVicyxcbiAgICB9KTtcbiAgfSBlbHNlIGlmICh0eCBpbnN0YW5jZW9mIFdhc21Qc2J0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdkZXNjcmlwdG9yIFBzYnQgaXMgb25seSBzdXBwb3J0ZWQgZm9yIGRlc2NyaXB0b3Igd2FsbGV0cycpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { fixedScriptWallet } from '@bitgo/wasm-utxo';
|
|
2
2
|
import { Triple } from '@bitgo/sdk-core';
|
|
3
3
|
import type { FixedScriptWalletOutput, Output, BitGoPsbt } from '../types';
|
|
4
|
+
import { AddressCodec } from '../recipient';
|
|
4
5
|
import type { TransactionExplanationWasm } from './explainTransaction';
|
|
5
6
|
interface ExplainPsbtWasmParams {
|
|
7
|
+
addressCodec: AddressCodec;
|
|
6
8
|
replayProtection: {
|
|
7
9
|
checkSignature?: boolean;
|
|
8
10
|
publicKeys: Buffer[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"explainPsbtWasm.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/explainPsbtWasm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAU,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"explainPsbtWasm.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/explainPsbtWasm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAU,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAE3E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAkCvE,UAAU,qBAAqB;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE;QAChB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;IACF,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,cAAc,CAAC;CAC7E;AAED,MAAM,WAAW,cAAc,CAAC,OAAO,GAAG,MAAM;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,iBAAiB,CAAC,QAAQ,GAAG,IAAI,CAAC;IAC5C,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACtC;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1B,aAAa,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;IACjD,mBAAmB,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAqBD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,iBAAiB,CAAC,cAAc,EAC7C,MAAM,EAAE,qBAAqB,GAC5B,4BAA4B,CAgD9B;AAuBD,wBAAgB,eAAe,CAC7B,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,cAAc,EAC9D,MAAM,EAAE,qBAAqB,GAC5B,0BAA0B,CAmB5B;AAED,MAAM,WAAW,gCAAgC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,gCAAgC,CAC9C,YAAY,EAAE,4BAA4B,EAAE,GAC3C,gCAAgC,CA4BlC"}
|
|
@@ -48,6 +48,9 @@ function explainPsbtWasmBigInt(psbt, walletXpubs, params) {
|
|
|
48
48
|
: undefined;
|
|
49
49
|
const customChangeOutputs = [];
|
|
50
50
|
parsed.outputs.forEach((output, i) => {
|
|
51
|
+
if (!params.addressCodec.isMatchingScript(output)) {
|
|
52
|
+
throw new Error(`Output ${i} address ${output.address} does not match its raw script`);
|
|
53
|
+
}
|
|
51
54
|
const parseCustomChangeOutput = parsedCustomChangeOutputs?.[i];
|
|
52
55
|
if (isParsedWalletOutput(output)) {
|
|
53
56
|
changeOutputs.push(toChangeOutputBigInt(output));
|
|
@@ -146,4 +149,4 @@ function aggregateTransactionExplanations(explanations) {
|
|
|
146
149
|
fee,
|
|
147
150
|
};
|
|
148
151
|
}
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnRXYXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L2V4cGxhaW5Qc2J0V2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXdGQSxzREFtREM7QUF1QkQsMENBdUJDO0FBWUQsNEVBOEJDO0FBbk9ELGdEQUE2RDtBQVE3RCxTQUFTLGVBQWUsQ0FBQyxNQUFrQjtJQUN6QyxPQUFPLGdCQUFnQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0FBQy9ELENBQUM7QUFLRCxTQUFTLG9CQUFvQixDQUFDLE1BQWlEO0lBQzdFLE9BQU8sTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsTUFBaUQ7SUFDL0UsT0FBTyxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQztBQUNsQyxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxNQUEwQjtJQUN0RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDekQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLO1FBQ3BCLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUs7UUFDNUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSztRQUM1QixRQUFRLEVBQUUsS0FBSztLQUNoQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsTUFBNEI7SUFDMUQsT0FBTztRQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3pELE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSztRQUNwQixRQUFRLEVBQUUs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SSxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUM1QyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNiLFdBQVcsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDO1FBQzdCLFlBQVksSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQy9CLFlBQVksSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxPQUFPO1FBQ0wsVUFBVTtRQUNWLFdBQVc7UUFDWCxpQkFBaUI7UUFDakIsV0FBVztRQUNYLFlBQVk7UUFDWixZQUFZO1FBQ1osR0FBRztLQUNKLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZml4ZWRTY3JpcHRXYWxsZXQsIGJpcDMyMiB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuaW1wb3J0IHsgVHJpcGxlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBGaXhlZFNjcmlwdFdhbGxldE91dHB1dCwgT3V0cHV0LCBCaXRHb1BzYnQgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEJpcDMyMk1lc3NhZ2UgfSBmcm9tICcuLi8uLi9hYnN0cmFjdFV0eG9Db2luJztcblxuaW1wb3J0IHR5cGUgeyBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uV2FzbSB9IGZyb20gJy4vZXhwbGFpblRyYW5zYWN0aW9uJztcblxuZnVuY3Rpb24gc2NyaXB0VG9BZGRyZXNzKHNjcmlwdDogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIHJldHVybiBgc2NyaXB0UHViS2V5OiR7QnVmZmVyLmZyb20oc2NyaXB0KS50b1N0cmluZygnaGV4Jyl9YDtcbn1cblxudHlwZSBQYXJzZWRXYWxsZXRPdXRwdXQgPSBmaXhlZFNjcmlwdFdhbGxldC5QYXJzZWRPdXRwdXQgJiB7IHNjcmlwdElkOiBmaXhlZFNjcmlwdFdhbGxldC5TY3JpcHRJZCB9O1xudHlwZSBQYXJzZWRFeHRlcm5hbE91dHB1dCA9IGZpeGVkU2NyaXB0V2FsbGV0LlBhcnNlZE91dHB1dCAmIHsgc2NyaXB0SWQ6IG51bGwgfTtcblxuZnVuY3Rpb24gaXNQYXJzZWRXYWxsZXRPdXRwdXQob3V0cHV0OiBQYXJzZWRXYWxsZXRPdXRwdXQgfCBQYXJzZWRFeHRlcm5hbE91dHB1dCk6IG91dHB1dCBpcyBQYXJzZWRXYWxsZXRPdXRwdXQge1xuICByZXR1cm4gb3V0cHV0LnNjcmlwdElkICE9PSBudWxsO1xufVxuXG5mdW5jdGlvbiBpc1BhcnNlZEV4dGVybmFsT3V0cHV0KG91dHB1dDogUGFyc2VkV2FsbGV0T3V0cHV0IHwgUGFyc2VkRXh0ZXJuYWxPdXRwdXQpOiBvdXRwdXQgaXMgUGFyc2VkRXh0ZXJuYWxPdXRwdXQge1xuICByZXR1cm4gb3V0cHV0LnNjcmlwdElkID09PSBudWxsO1xufVxuXG5mdW5jdGlvbiB0b0NoYW5nZU91dHB1dEJpZ0ludChvdXRwdXQ6IFBhcnNlZFdhbGxldE91dHB1dCk6IEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PGJpZ2ludD4ge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzID8/IHNjcmlwdFRvQWRkcmVzcyhvdXRwdXQuc2NyaXB0KSxcbiAgICBhbW91bnQ6IG91dHB1dC52YWx1ZSxcbiAgICBjaGFpbjogb3V0cHV0LnNjcmlwdElkLmNoYWluLFxuICAgIGluZGV4OiBvdXRwdXQuc2NyaXB0SWQuaW5kZXgsXG4gICAgZXh0ZXJuYWw6IGZhbHNlLFxuICB9O1xufVxuXG5mdW5jdGlvbiB0b0V4dGVybmFsT3V0cHV0QmlnSW50KG91dHB1dDogUGFyc2VkRXh0ZXJuYWxPdXRwdXQpOiBPdXRwdXQ8YmlnaW50PiB7XG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MgPz8gc2NyaXB0VG9BZGRyZXNzKG91dHB1dC5zY3JpcHQpLFxuICAgIGFtb3VudDogb3V0cHV0LnZhbHVlLFxuICAgIGV4dGVybmFsOiB0cnVlLFxuICB9O1xufVxuXG5pbnRlcmZhY2UgRXhwbGFpblBzYnRXYXNtUGFyYW1zIHtcbiAgcmVwbGF5UHJvdGVjdGlvbjoge1xuICAgIGNoZWNrU2lnbmF0dXJlPzogYm9vbGVhbjtcbiAgICBwdWJsaWNLZXlzOiBCdWZmZXJbXTtcbiAgfTtcbiAgY3VzdG9tQ2hhbmdlV2FsbGV0WHB1YnM/OiBUcmlwbGU8c3RyaW5nPiB8IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4cGxhaW5lZElucHV0PFRBbW91bnQgPSBiaWdpbnQ+IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB2YWx1ZTogVEFtb3VudDtcbiAgc2NyaXB0SWQ6IGZpeGVkU2NyaXB0V2FsbGV0LlNjcmlwdElkIHwgbnVsbDtcbiAgc2lnbmVkQnk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uRXhwbGFuYXRpb25CaWdJbnQge1xuICBpZDogc3RyaW5nO1xuICBpbnB1dHM6IEV4cGxhaW5lZElucHV0W107XG4gIGlucHV0QW1vdW50OiBiaWdpbnQ7XG4gIG91dHB1dHM6IE91dHB1dDxiaWdpbnQ+W107XG4gIGNoYW5nZU91dHB1dHM6IEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PGJpZ2ludD5bXTtcbiAgY3VzdG9tQ2hhbmdlT3V0cHV0czogRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQ8YmlnaW50PltdO1xuICBvdXRwdXRBbW91bnQ6IGJpZ2ludDtcbiAgY2hhbmdlQW1vdW50OiBiaWdpbnQ7XG4gIGN1c3RvbUNoYW5nZUFtb3VudDogYmlnaW50O1xuICBmZWU6IGJpZ2ludDtcbn1cblxuZnVuY3Rpb24gZ2V0U2lnbmVkQnlGb3JJbnB1dChcbiAgcHNidDogQml0R29Qc2J0LFxuICBpbnB1dEluZGV4OiBudW1iZXIsXG4gIHdhbGxldFhwdWJzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcmVwbGF5UHJvdGVjdGlvblB1YmxpY0tleXM6IEJ1ZmZlcltdLFxuICBzY3JpcHRJZDogZml4ZWRTY3JpcHRXYWxsZXQuU2NyaXB0SWQgfCBudWxsXG4pOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gIGlmIChzY3JpcHRJZCAhPT0gbnVsbCkge1xuICAgIHJldHVybiB7XG4gICAgICB1c2VyOiBwc2J0LnZlcmlmeVNpZ25hdHVyZShpbnB1dEluZGV4LCB3YWxsZXRYcHVicy51c2VyS2V5KCkpLFxuICAgICAgYmFja3VwOiBwc2J0LnZlcmlmeVNpZ25hdHVyZShpbnB1dEluZGV4LCB3YWxsZXRYcHVicy5iYWNrdXBLZXkoKSksXG4gICAgICBiaXRnbzogcHNidC52ZXJpZnlTaWduYXR1cmUoaW5wdXRJbmRleCwgd2FsbGV0WHB1YnMuYml0Z29LZXkoKSksXG4gICAgfTtcbiAgfVxuICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgIHJlcGxheVByb3RlY3Rpb25QdWJsaWNLZXlzLm1hcCgoa2V5LCBqKSA9PiBbYHJlcGxheVByb3RlY3Rpb24ke2p9YCwgcHNidC52ZXJpZnlTaWduYXR1cmUoaW5wdXRJbmRleCwga2V5KV0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluUHNidFdhc21CaWdJbnQoXG4gIHBzYnQ6IEJpdEdvUHNidCxcbiAgd2FsbGV0WHB1YnM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICBwYXJhbXM6IEV4cGxhaW5Qc2J0V2FzbVBhcmFtc1xuKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbkJpZ0ludCB7XG4gIGNvbnN0IHBhcnNlZCA9IHBzYnQucGFyc2VUcmFuc2FjdGlvbldpdGhXYWxsZXRLZXlzKHdhbGxldFhwdWJzLCB7IHJlcGxheVByb3RlY3Rpb246IHBhcmFtcy5yZXBsYXlQcm90ZWN0aW9uIH0pO1xuXG4gIGNvbnN0IGNoYW5nZU91dHB1dHM6IEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PGJpZ2ludD5bXSA9IFtdO1xuICBjb25zdCBvdXRwdXRzOiBPdXRwdXQ8YmlnaW50PltdID0gW107XG4gIGNvbnN0IHBhcnNlZEN1c3RvbUNoYW5nZU91dHB1dHMgPSBwYXJhbXMuY3VzdG9tQ2hhbmdlV2FsbGV0WHB1YnNcbiAgICA/IHBzYnQucGFyc2VPdXRwdXRzV2l0aFdhbGxldEtleXMocGFyYW1zLmN1c3RvbUNoYW5nZVdhbGxldFhwdWJzKVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGN1c3RvbUNoYW5nZU91dHB1dHM6IEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PGJpZ2ludD5bXSA9IFtdO1xuXG4gIHBhcnNlZC5vdXRwdXRzLmZvckVhY2goKG91dHB1dCwgaSkgPT4ge1xuICAgIGNvbnN0IHBhcnNlQ3VzdG9tQ2hhbmdlT3V0cHV0ID0gcGFyc2VkQ3VzdG9tQ2hhbmdlT3V0cHV0cz8uW2ldO1xuICAgIGlmIChpc1BhcnNlZFdhbGxldE91dHB1dChvdXRwdXQpKSB7XG4gICAgICBjaGFuZ2VPdXRwdXRzLnB1c2godG9DaGFuZ2VPdXRwdXRCaWdJbnQob3V0cHV0KSk7XG4gICAgfSBlbHNlIGlmIChwYXJzZUN1c3RvbUNoYW5nZU91dHB1dCAmJiBpc1BhcnNlZFdhbGxldE91dHB1dChwYXJzZUN1c3RvbUNoYW5nZU91dHB1dCkpIHtcbiAgICAgIGN1c3RvbUNoYW5nZU91dHB1dHMucHVzaCh0b0NoYW5nZU91dHB1dEJpZ0ludChwYXJzZUN1c3RvbUNoYW5nZU91dHB1dCkpO1xuICAgIH0gZWxzZSBpZiAoaXNQYXJzZWRFeHRlcm5hbE91dHB1dChvdXRwdXQpKSB7XG4gICAgICBvdXRwdXRzLnB1c2godG9FeHRlcm5hbE91dHB1dEJpZ0ludChvdXRwdXQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIG91dHB1dCcpO1xuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgaW5wdXRzID0gcGFyc2VkLmlucHV0cy5tYXAoKGlucHV0LCBpKSA9PiAoe1xuICAgIGFkZHJlc3M6IGlucHV0LmFkZHJlc3MsXG4gICAgdmFsdWU6IGlucHV0LnZhbHVlLFxuICAgIHNjcmlwdElkOiBpbnB1dC5zY3JpcHRJZCxcbiAgICBzaWduZWRCeTogZ2V0U2lnbmVkQnlGb3JJbnB1dChwc2J0LCBpLCB3YWxsZXRYcHVicywgcGFyYW1zLnJlcGxheVByb3RlY3Rpb24ucHVibGljS2V5cywgaW5wdXQuc2NyaXB0SWQpLFxuICB9KSk7XG4gIGNvbnN0IGlucHV0QW1vdW50ID0gaW5wdXRzLnJlZHVjZSgoc3VtLCBpbnB1dCkgPT4gc3VtICsgaW5wdXQudmFsdWUsIDBuKTtcbiAgY29uc3Qgb3V0cHV0QW1vdW50ID0gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBvdXRwdXQuYW1vdW50LCAwbik7XG4gIGNvbnN0IGNoYW5nZUFtb3VudCA9IGNoYW5nZU91dHB1dHMucmVkdWNlKChzdW0sIG91dHB1dCkgPT4gc3VtICsgb3V0cHV0LmFtb3VudCwgMG4pO1xuICBjb25zdCBjdXN0b21DaGFuZ2VBbW91bnQgPSBjdXN0b21DaGFuZ2VPdXRwdXRzLnJlZHVjZSgoc3VtLCBvdXRwdXQpID0+IHN1bSArIG91dHB1dC5hbW91bnQsIDBuKTtcblxuICByZXR1cm4ge1xuICAgIGlkOiBwc2J0LnVuc2lnbmVkVHhJZCgpLFxuICAgIGlucHV0cyxcbiAgICBpbnB1dEFtb3VudCxcbiAgICBvdXRwdXRzLFxuICAgIGNoYW5nZU91dHB1dHMsXG4gICAgY3VzdG9tQ2hhbmdlT3V0cHV0cyxcbiAgICBvdXRwdXRBbW91bnQsXG4gICAgY2hhbmdlQW1vdW50LFxuICAgIGN1c3RvbUNoYW5nZUFtb3VudCxcbiAgICBmZWU6IHBhcnNlZC5taW5lckZlZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gc3RyaW5naWZ5T3V0cHV0KG91dHB1dDogT3V0cHV0PGJpZ2ludD4pOiBPdXRwdXQge1xuICByZXR1cm4geyAuLi5vdXRwdXQsIGFtb3VudDogb3V0cHV0LmFtb3VudC50b1N0cmluZygpIH07XG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeUNoYW5nZU91dHB1dChvdXRwdXQ6IEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PGJpZ2ludD4pOiBGaXhlZFNjcmlwdFdhbGxldE91dHB1dCB7XG4gIHJldHVybiB7IC4uLm91dHB1dCwgYW1vdW50OiBvdXRwdXQuYW1vdW50LnRvU3RyaW5nKCkgfTtcbn1cblxuZnVuY3Rpb24gZXh0cmFjdEJpcDMyMk1lc3NhZ2VzKHBzYnQ6IEJpdEdvUHNidCwgaW5wdXRzOiBFeHBsYWluZWRJbnB1dFtdKTogeyBtZXNzYWdlczogQmlwMzIyTWVzc2FnZVtdIHwgdW5kZWZpbmVkIH0ge1xuICBjb25zdCBtZXNzYWdlczogQmlwMzIyTWVzc2FnZVtdID0gaW5wdXRzLmZsYXRNYXAoKGlucHV0LCBpKSA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGJpcDMyMi5nZXRCaXAzMjJNZXNzYWdlKHBzYnQsIGkpO1xuICAgIHJldHVybiBtZXNzYWdlID8gW3sgbWVzc2FnZSwgYWRkcmVzczogaW5wdXQuYWRkcmVzcyB9XSA6IFtdO1xuICB9KTtcblxuICBpZiAobWVzc2FnZXMubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHsgbWVzc2FnZXM6IHVuZGVmaW5lZCB9O1xuICB9XG5cbiAgcmV0dXJuIHsgbWVzc2FnZXMgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4cGxhaW5Qc2J0V2FzbShcbiAgcHNidDogQml0R29Qc2J0LFxuICB3YWxsZXRYcHViczogVHJpcGxlPHN0cmluZz4gfCBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcGFyYW1zOiBFeHBsYWluUHNidFdhc21QYXJhbXNcbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25XYXNtIHtcbiAgY29uc3QgcmVzdWx0ID0gZXhwbGFpblBzYnRXYXNtQmlnSW50KHBzYnQsIGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLmZyb20od2FsbGV0WHB1YnMpLCBwYXJhbXMpO1xuICBjb25zdCBpbnB1dHMgPSByZXN1bHQuaW5wdXRzLm1hcCgoaSkgPT4gKHsgYWRkcmVzczogaS5hZGRyZXNzLCB2YWx1ZTogaS52YWx1ZS50b1N0cmluZygpLCBzaWduZWRCeTogaS5zaWduZWRCeSB9KSk7XG5cbiAgY29uc3QgeyBtZXNzYWdlcyB9ID0gZXh0cmFjdEJpcDMyMk1lc3NhZ2VzKHBzYnQsIHJlc3VsdC5pbnB1dHMpO1xuXG4gIHJldHVybiB7XG4gICAgaWQ6IHJlc3VsdC5pZCxcbiAgICBpbnB1dHMsXG4gICAgaW5wdXRBbW91bnQ6IHJlc3VsdC5pbnB1dEFtb3VudC50b1N0cmluZygpLFxuICAgIG91dHB1dEFtb3VudDogcmVzdWx0Lm91dHB1dEFtb3VudC50b1N0cmluZygpLFxuICAgIGNoYW5nZUFtb3VudDogcmVzdWx0LmNoYW5nZUFtb3VudC50b1N0cmluZygpLFxuICAgIGN1c3RvbUNoYW5nZUFtb3VudDogcmVzdWx0LmN1c3RvbUNoYW5nZUFtb3VudC50b1N0cmluZygpLFxuICAgIG91dHB1dHM6IHJlc3VsdC5vdXRwdXRzLm1hcChzdHJpbmdpZnlPdXRwdXQpLFxuICAgIGNoYW5nZU91dHB1dHM6IHJlc3VsdC5jaGFuZ2VPdXRwdXRzLm1hcChzdHJpbmdpZnlDaGFuZ2VPdXRwdXQpLFxuICAgIGN1c3RvbUNoYW5nZU91dHB1dHM6IHJlc3VsdC5jdXN0b21DaGFuZ2VPdXRwdXRzLm1hcChzdHJpbmdpZnlDaGFuZ2VPdXRwdXQpLFxuICAgIGZlZTogcmVzdWx0LmZlZS50b1N0cmluZygpLFxuICAgIG1lc3NhZ2VzLFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFnZ3JlZ2F0ZWRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgaW5wdXRDb3VudDogbnVtYmVyO1xuICBvdXRwdXRDb3VudDogbnVtYmVyO1xuICBjaGFuZ2VPdXRwdXRDb3VudDogbnVtYmVyO1xuICBpbnB1dEFtb3VudDogYmlnaW50O1xuICBvdXRwdXRBbW91bnQ6IGJpZ2ludDtcbiAgY2hhbmdlQW1vdW50OiBiaWdpbnQ7XG4gIGZlZTogYmlnaW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWdncmVnYXRlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbnMoXG4gIGV4cGxhbmF0aW9uczogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbkJpZ0ludFtdXG4pOiBBZ2dyZWdhdGVkVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIGxldCBpbnB1dENvdW50ID0gMDtcbiAgbGV0IG91dHB1dENvdW50ID0gMDtcbiAgbGV0IGNoYW5nZU91dHB1dENvdW50ID0gMDtcbiAgbGV0IGZlZSA9IDBuO1xuICBsZXQgaW5wdXRBbW91bnQgPSAwbjtcbiAgbGV0IG91dHB1dEFtb3VudCA9IDBuO1xuICBsZXQgY2hhbmdlQW1vdW50ID0gMG47XG5cbiAgZm9yIChjb25zdCBlIG9mIGV4cGxhbmF0aW9ucykge1xuICAgIGlucHV0Q291bnQgKz0gZS5pbnB1dHMubGVuZ3RoO1xuICAgIG91dHB1dENvdW50ICs9IGUub3V0cHV0cy5sZW5ndGg7XG4gICAgY2hhbmdlT3V0cHV0Q291bnQgKz0gZS5jaGFuZ2VPdXRwdXRzLmxlbmd0aDtcbiAgICBmZWUgKz0gZS5mZWU7XG4gICAgaW5wdXRBbW91bnQgKz0gZS5pbnB1dEFtb3VudDtcbiAgICBvdXRwdXRBbW91bnQgKz0gZS5vdXRwdXRBbW91bnQ7XG4gICAgY2hhbmdlQW1vdW50ICs9IGUuY2hhbmdlQW1vdW50O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBpbnB1dENvdW50LFxuICAgIG91dHB1dENvdW50LFxuICAgIGNoYW5nZU91dHB1dENvdW50LFxuICAgIGlucHV0QW1vdW50LFxuICAgIG91dHB1dEFtb3VudCxcbiAgICBjaGFuZ2VBbW91bnQsXG4gICAgZmVlLFxuICB9O1xufVxuIl19
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnRXYXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L2V4cGxhaW5Qc2J0V2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlGQSxzREFvREM7QUF1QkQsMENBdUJDO0FBWUQsNEVBOEJDO0FBck9ELGdEQUE2RDtBQVE3RCxTQUFTLGVBQWUsQ0FBQyxNQUFrQjtJQUN6QyxPQUFPLGdCQUFnQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0FBQy9ELENBQUM7QUFLRCxTQUFTLG9CQUFvQixDQUFDLE1BQWlEO0lBQzdFLE9BQU8sTUFBTSxDQUFDLFFBQVEsS0FBSyxJQUFJLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsTUFBaUQ7SUFDL0UsT0FBTyxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQztBQUNsQyxDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxNQUEwQjtJQUN0RCxPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDekQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLO1FBQ3BCLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUs7UUFDNUIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSztRQUM1QixRQUFRLEVBQUUsS0FBSztLQUNoQixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsTUFBNEI7SUFDMUQsT0FBTztRQUNMLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQ3pELE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSztRQUNwQixRQUFRLEVBQUUs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QztJQUV0QixLQUFLLE1BQU0sQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdCLFVBQVUsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUM5QixXQUFXLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDaEMsaUJBQWlCLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFDNUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDYixXQUFXLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUM3QixZQUFZLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUMvQixZQUFZLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztJQUNqQyxDQUFDO0lBRUQsT0FBTztRQUNMLFVBQVU7UUFDVixXQUFXO1FBQ1gsaUJBQWlCO1FBQ2pCLFdBQVc7UUFDWCxZQUFZO1FBQ1osWUFBWTtRQUNaLEdBQUc7S0FDSixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpeGVkU2NyaXB0V2FsbGV0LCBiaXAzMjIgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCB7IFRyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQsIE91dHB1dCwgQml0R29Qc2J0IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBCaXAzMjJNZXNzYWdlIH0gZnJvbSAnLi4vLi4vYWJzdHJhY3RVdHhvQ29pbic7XG5pbXBvcnQgeyBBZGRyZXNzQ29kZWMgfSBmcm9tICcuLi9yZWNpcGllbnQnO1xuXG5pbXBvcnQgdHlwZSB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25XYXNtIH0gZnJvbSAnLi9leHBsYWluVHJhbnNhY3Rpb24nO1xuZnVuY3Rpb24gc2NyaXB0VG9BZGRyZXNzKHNjcmlwdDogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIHJldHVybiBgc2NyaXB0UHViS2V5OiR7QnVmZmVyLmZyb20oc2NyaXB0KS50b1N0cmluZygnaGV4Jyl9YDtcbn1cblxudHlwZSBQYXJzZWRXYWxsZXRPdXRwdXQgPSBmaXhlZFNjcmlwdFdhbGxldC5QYXJzZWRPdXRwdXQgJiB7IHNjcmlwdElkOiBmaXhlZFNjcmlwdFdhbGxldC5TY3JpcHRJZCB9O1xudHlwZSBQYXJzZWRFeHRlcm5hbE91dHB1dCA9IGZpeGVkU2NyaXB0V2FsbGV0LlBhcnNlZE91dHB1dCAmIHsgc2NyaXB0SWQ6IG51bGwgfTtcblxuZnVuY3Rpb24gaXNQYXJzZWRXYWxsZXRPdXRwdXQob3V0cHV0OiBQYXJzZWRXYWxsZXRPdXRwdXQgfCBQYXJzZWRFeHRlcm5hbE91dHB1dCk6IG91dHB1dCBpcyBQYXJzZWRXYWxsZXRPdXRwdXQge1xuICByZXR1cm4gb3V0cHV0LnNjcmlwdElkICE9PSBudWxsO1xufVxuXG5mdW5jdGlvbiBpc1BhcnNlZEV4dGVybmFsT3V0cHV0KG91dHB1dDogUGFyc2VkV2FsbGV0T3V0cHV0IHwgUGFyc2VkRXh0ZXJuYWxPdXRwdXQpOiBvdXRwdXQgaXMgUGFyc2VkRXh0ZXJuYWxPdXRwdXQge1xuICByZXR1cm4gb3V0cHV0LnNjcmlwdElkID09PSBudWxsO1xufVxuXG5mdW5jdGlvbiB0b0NoYW5nZU91dHB1dEJpZ0ludChvdXRwdXQ6IFBhcnNlZFdhbGxldE91dHB1dCk6IEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PGJpZ2ludD4ge1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzID8/IHNjcmlwdFRvQWRkcmVzcyhvdXRwdXQuc2NyaXB0KSxcbiAgICBhbW91bnQ6IG91dHB1dC52YWx1ZSxcbiAgICBjaGFpbjogb3V0cHV0LnNjcmlwdElkLmNoYWluLFxuICAgIGluZGV4OiBvdXRwdXQuc2NyaXB0SWQuaW5kZXgsXG4gICAgZXh0ZXJuYWw6IGZhbHNlLFxuICB9O1xufVxuXG5mdW5jdGlvbiB0b0V4dGVybmFsT3V0cHV0QmlnSW50KG91dHB1dDogUGFyc2VkRXh0ZXJuYWxPdXRwdXQpOiBPdXRwdXQ8YmlnaW50PiB7XG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MgPz8gc2NyaXB0VG9BZGRyZXNzKG91dHB1dC5zY3JpcHQpLFxuICAgIGFtb3VudDogb3V0cHV0LnZhbHVlLFxuICAgIGV4dGVybmFsOiB0cnVlLFxuICB9O1xufVxuXG5pbnRlcmZhY2UgRXhwbGFpblBzYnRXYXNtUGFyYW1zIHtcbiAgYWRkcmVzc0NvZGVjOiBBZGRyZXNzQ29kZWM7XG4gIHJlcGxheVByb3RlY3Rpb246IHtcbiAgICBjaGVja1NpZ25hdHVyZT86IGJvb2xlYW47XG4gICAgcHVibGljS2V5czogQnVmZmVyW107XG4gIH07XG4gIGN1c3RvbUNoYW5nZVdhbGxldFhwdWJzPzogVHJpcGxlPHN0cmluZz4gfCBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeHBsYWluZWRJbnB1dDxUQW1vdW50ID0gYmlnaW50PiB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWU6IFRBbW91bnQ7XG4gIHNjcmlwdElkOiBmaXhlZFNjcmlwdFdhbGxldC5TY3JpcHRJZCB8IG51bGw7XG4gIHNpZ25lZEJ5OiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uQmlnSW50IHtcbiAgaWQ6IHN0cmluZztcbiAgaW5wdXRzOiBFeHBsYWluZWRJbnB1dFtdO1xuICBpbnB1dEFtb3VudDogYmlnaW50O1xuICBvdXRwdXRzOiBPdXRwdXQ8YmlnaW50PltdO1xuICBjaGFuZ2VPdXRwdXRzOiBGaXhlZFNjcmlwdFdhbGxldE91dHB1dDxiaWdpbnQ+W107XG4gIGN1c3RvbUNoYW5nZU91dHB1dHM6IEZpeGVkU2NyaXB0V2FsbGV0T3V0cHV0PGJpZ2ludD5bXTtcbiAgb3V0cHV0QW1vdW50OiBiaWdpbnQ7XG4gIGNoYW5nZUFtb3VudDogYmlnaW50O1xuICBjdXN0b21DaGFuZ2VBbW91bnQ6IGJpZ2ludDtcbiAgZmVlOiBiaWdpbnQ7XG59XG5cbmZ1bmN0aW9uIGdldFNpZ25lZEJ5Rm9ySW5wdXQoXG4gIHBzYnQ6IEJpdEdvUHNidCxcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICB3YWxsZXRYcHViczogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHJlcGxheVByb3RlY3Rpb25QdWJsaWNLZXlzOiBCdWZmZXJbXSxcbiAgc2NyaXB0SWQ6IGZpeGVkU2NyaXB0V2FsbGV0LlNjcmlwdElkIHwgbnVsbFxuKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0ge1xuICBpZiAoc2NyaXB0SWQgIT09IG51bGwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdXNlcjogcHNidC52ZXJpZnlTaWduYXR1cmUoaW5wdXRJbmRleCwgd2FsbGV0WHB1YnMudXNlcktleSgpKSxcbiAgICAgIGJhY2t1cDogcHNidC52ZXJpZnlTaWduYXR1cmUoaW5wdXRJbmRleCwgd2FsbGV0WHB1YnMuYmFja3VwS2V5KCkpLFxuICAgICAgYml0Z286IHBzYnQudmVyaWZ5U2lnbmF0dXJlKGlucHV0SW5kZXgsIHdhbGxldFhwdWJzLmJpdGdvS2V5KCkpLFxuICAgIH07XG4gIH1cbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICByZXBsYXlQcm90ZWN0aW9uUHVibGljS2V5cy5tYXAoKGtleSwgaikgPT4gW2ByZXBsYXlQcm90ZWN0aW9uJHtqfWAsIHBzYnQudmVyaWZ5U2lnbmF0dXJlKGlucHV0SW5kZXgsIGtleSldKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXhwbGFpblBzYnRXYXNtQmlnSW50KFxuICBwc2J0OiBCaXRHb1BzYnQsXG4gIHdhbGxldFhwdWJzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcGFyYW1zOiBFeHBsYWluUHNidFdhc21QYXJhbXNcbik6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25CaWdJbnQge1xuICBjb25zdCBwYXJzZWQgPSBwc2J0LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyh3YWxsZXRYcHVicywgeyByZXBsYXlQcm90ZWN0aW9uOiBwYXJhbXMucmVwbGF5UHJvdGVjdGlvbiB9KTtcblxuICBjb25zdCBjaGFuZ2VPdXRwdXRzOiBGaXhlZFNjcmlwdFdhbGxldE91dHB1dDxiaWdpbnQ+W10gPSBbXTtcbiAgY29uc3Qgb3V0cHV0czogT3V0cHV0PGJpZ2ludD5bXSA9IFtdO1xuICBjb25zdCBwYXJzZWRDdXN0b21DaGFuZ2VPdXRwdXRzID0gcGFyYW1zLmN1c3RvbUNoYW5nZVdhbGxldFhwdWJzXG4gICAgPyBwc2J0LnBhcnNlT3V0cHV0c1dpdGhXYWxsZXRLZXlzKHBhcmFtcy5jdXN0b21DaGFuZ2VXYWxsZXRYcHVicylcbiAgICA6IHVuZGVmaW5lZDtcbiAgY29uc3QgY3VzdG9tQ2hhbmdlT3V0cHV0czogRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQ8YmlnaW50PltdID0gW107XG4gIHBhcnNlZC5vdXRwdXRzLmZvckVhY2goKG91dHB1dCwgaSkgPT4ge1xuICAgIGlmICghcGFyYW1zLmFkZHJlc3NDb2RlYy5pc01hdGNoaW5nU2NyaXB0KG91dHB1dCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgT3V0cHV0ICR7aX0gYWRkcmVzcyAke291dHB1dC5hZGRyZXNzfSBkb2VzIG5vdCBtYXRjaCBpdHMgcmF3IHNjcmlwdGApO1xuICAgIH1cbiAgICBjb25zdCBwYXJzZUN1c3RvbUNoYW5nZU91dHB1dCA9IHBhcnNlZEN1c3RvbUNoYW5nZU91dHB1dHM/LltpXTtcbiAgICBpZiAoaXNQYXJzZWRXYWxsZXRPdXRwdXQob3V0cHV0KSkge1xuICAgICAgY2hhbmdlT3V0cHV0cy5wdXNoKHRvQ2hhbmdlT3V0cHV0QmlnSW50KG91dHB1dCkpO1xuICAgIH0gZWxzZSBpZiAocGFyc2VDdXN0b21DaGFuZ2VPdXRwdXQgJiYgaXNQYXJzZWRXYWxsZXRPdXRwdXQocGFyc2VDdXN0b21DaGFuZ2VPdXRwdXQpKSB7XG4gICAgICBjdXN0b21DaGFuZ2VPdXRwdXRzLnB1c2godG9DaGFuZ2VPdXRwdXRCaWdJbnQocGFyc2VDdXN0b21DaGFuZ2VPdXRwdXQpKTtcbiAgICB9IGVsc2UgaWYgKGlzUGFyc2VkRXh0ZXJuYWxPdXRwdXQob3V0cHV0KSkge1xuICAgICAgb3V0cHV0cy5wdXNoKHRvRXh0ZXJuYWxPdXRwdXRCaWdJbnQob3V0cHV0KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBvdXRwdXQnKTtcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IGlucHV0cyA9IHBhcnNlZC5pbnB1dHMubWFwKChpbnB1dCwgaSkgPT4gKHtcbiAgICBhZGRyZXNzOiBpbnB1dC5hZGRyZXNzLFxuICAgIHZhbHVlOiBpbnB1dC52YWx1ZSxcbiAgICBzY3JpcHRJZDogaW5wdXQuc2NyaXB0SWQsXG4gICAgc2lnbmVkQnk6IGdldFNpZ25lZEJ5Rm9ySW5wdXQocHNidCwgaSwgd2FsbGV0WHB1YnMsIHBhcmFtcy5yZXBsYXlQcm90ZWN0aW9uLnB1YmxpY0tleXMsIGlucHV0LnNjcmlwdElkKSxcbiAgfSkpO1xuICBjb25zdCBpbnB1dEFtb3VudCA9IGlucHV0cy5yZWR1Y2UoKHN1bSwgaW5wdXQpID0+IHN1bSArIGlucHV0LnZhbHVlLCAwbik7XG4gIGNvbnN0IG91dHB1dEFtb3VudCA9IG91dHB1dHMucmVkdWNlKChzdW0sIG91dHB1dCkgPT4gc3VtICsgb3V0cHV0LmFtb3VudCwgMG4pO1xuICBjb25zdCBjaGFuZ2VBbW91bnQgPSBjaGFuZ2VPdXRwdXRzLnJlZHVjZSgoc3VtLCBvdXRwdXQpID0+IHN1bSArIG91dHB1dC5hbW91bnQsIDBuKTtcbiAgY29uc3QgY3VzdG9tQ2hhbmdlQW1vdW50ID0gY3VzdG9tQ2hhbmdlT3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBvdXRwdXQuYW1vdW50LCAwbik7XG5cbiAgcmV0dXJuIHtcbiAgICBpZDogcHNidC51bnNpZ25lZFR4SWQoKSxcbiAgICBpbnB1dHMsXG4gICAgaW5wdXRBbW91bnQsXG4gICAgb3V0cHV0cyxcbiAgICBjaGFuZ2VPdXRwdXRzLFxuICAgIGN1c3RvbUNoYW5nZU91dHB1dHMsXG4gICAgb3V0cHV0QW1vdW50LFxuICAgIGNoYW5nZUFtb3VudCxcbiAgICBjdXN0b21DaGFuZ2VBbW91bnQsXG4gICAgZmVlOiBwYXJzZWQubWluZXJGZWUsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHN0cmluZ2lmeU91dHB1dChvdXRwdXQ6IE91dHB1dDxiaWdpbnQ+KTogT3V0cHV0IHtcbiAgcmV0dXJuIHsgLi4ub3V0cHV0LCBhbW91bnQ6IG91dHB1dC5hbW91bnQudG9TdHJpbmcoKSB9O1xufVxuXG5mdW5jdGlvbiBzdHJpbmdpZnlDaGFuZ2VPdXRwdXQob3V0cHV0OiBGaXhlZFNjcmlwdFdhbGxldE91dHB1dDxiaWdpbnQ+KTogRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQge1xuICByZXR1cm4geyAuLi5vdXRwdXQsIGFtb3VudDogb3V0cHV0LmFtb3VudC50b1N0cmluZygpIH07XG59XG5cbmZ1bmN0aW9uIGV4dHJhY3RCaXAzMjJNZXNzYWdlcyhwc2J0OiBCaXRHb1BzYnQsIGlucHV0czogRXhwbGFpbmVkSW5wdXRbXSk6IHsgbWVzc2FnZXM6IEJpcDMyMk1lc3NhZ2VbXSB8IHVuZGVmaW5lZCB9IHtcbiAgY29uc3QgbWVzc2FnZXM6IEJpcDMyMk1lc3NhZ2VbXSA9IGlucHV0cy5mbGF0TWFwKChpbnB1dCwgaSkgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBiaXAzMjIuZ2V0QmlwMzIyTWVzc2FnZShwc2J0LCBpKTtcbiAgICByZXR1cm4gbWVzc2FnZSA/IFt7IG1lc3NhZ2UsIGFkZHJlc3M6IGlucHV0LmFkZHJlc3MgfV0gOiBbXTtcbiAgfSk7XG5cbiAgaWYgKG1lc3NhZ2VzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7IG1lc3NhZ2VzOiB1bmRlZmluZWQgfTtcbiAgfVxuXG4gIHJldHVybiB7IG1lc3NhZ2VzIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluUHNidFdhc20oXG4gIHBzYnQ6IEJpdEdvUHNidCxcbiAgd2FsbGV0WHB1YnM6IFRyaXBsZTxzdHJpbmc+IHwgZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHBhcmFtczogRXhwbGFpblBzYnRXYXNtUGFyYW1zXG4pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uV2FzbSB7XG4gIGNvbnN0IHJlc3VsdCA9IGV4cGxhaW5Qc2J0V2FzbUJpZ0ludChwc2J0LCBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cy5mcm9tKHdhbGxldFhwdWJzKSwgcGFyYW1zKTtcbiAgY29uc3QgaW5wdXRzID0gcmVzdWx0LmlucHV0cy5tYXAoKGkpID0+ICh7IGFkZHJlc3M6IGkuYWRkcmVzcywgdmFsdWU6IGkudmFsdWUudG9TdHJpbmcoKSwgc2lnbmVkQnk6IGkuc2lnbmVkQnkgfSkpO1xuXG4gIGNvbnN0IHsgbWVzc2FnZXMgfSA9IGV4dHJhY3RCaXAzMjJNZXNzYWdlcyhwc2J0LCByZXN1bHQuaW5wdXRzKTtcblxuICByZXR1cm4ge1xuICAgIGlkOiByZXN1bHQuaWQsXG4gICAgaW5wdXRzLFxuICAgIGlucHV0QW1vdW50OiByZXN1bHQuaW5wdXRBbW91bnQudG9TdHJpbmcoKSxcbiAgICBvdXRwdXRBbW91bnQ6IHJlc3VsdC5vdXRwdXRBbW91bnQudG9TdHJpbmcoKSxcbiAgICBjaGFuZ2VBbW91bnQ6IHJlc3VsdC5jaGFuZ2VBbW91bnQudG9TdHJpbmcoKSxcbiAgICBjdXN0b21DaGFuZ2VBbW91bnQ6IHJlc3VsdC5jdXN0b21DaGFuZ2VBbW91bnQudG9TdHJpbmcoKSxcbiAgICBvdXRwdXRzOiByZXN1bHQub3V0cHV0cy5tYXAoc3RyaW5naWZ5T3V0cHV0KSxcbiAgICBjaGFuZ2VPdXRwdXRzOiByZXN1bHQuY2hhbmdlT3V0cHV0cy5tYXAoc3RyaW5naWZ5Q2hhbmdlT3V0cHV0KSxcbiAgICBjdXN0b21DaGFuZ2VPdXRwdXRzOiByZXN1bHQuY3VzdG9tQ2hhbmdlT3V0cHV0cy5tYXAoc3RyaW5naWZ5Q2hhbmdlT3V0cHV0KSxcbiAgICBmZWU6IHJlc3VsdC5mZWUudG9TdHJpbmcoKSxcbiAgICBtZXNzYWdlcyxcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZ2dyZWdhdGVkVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIGlucHV0Q291bnQ6IG51bWJlcjtcbiAgb3V0cHV0Q291bnQ6IG51bWJlcjtcbiAgY2hhbmdlT3V0cHV0Q291bnQ6IG51bWJlcjtcbiAgaW5wdXRBbW91bnQ6IGJpZ2ludDtcbiAgb3V0cHV0QW1vdW50OiBiaWdpbnQ7XG4gIGNoYW5nZUFtb3VudDogYmlnaW50O1xuICBmZWU6IGJpZ2ludDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFnZ3JlZ2F0ZVRyYW5zYWN0aW9uRXhwbGFuYXRpb25zKFxuICBleHBsYW5hdGlvbnM6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb25CaWdJbnRbXVxuKTogQWdncmVnYXRlZFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBsZXQgaW5wdXRDb3VudCA9IDA7XG4gIGxldCBvdXRwdXRDb3VudCA9IDA7XG4gIGxldCBjaGFuZ2VPdXRwdXRDb3VudCA9IDA7XG4gIGxldCBmZWUgPSAwbjtcbiAgbGV0IGlucHV0QW1vdW50ID0gMG47XG4gIGxldCBvdXRwdXRBbW91bnQgPSAwbjtcbiAgbGV0IGNoYW5nZUFtb3VudCA9IDBuO1xuXG4gIGZvciAoY29uc3QgZSBvZiBleHBsYW5hdGlvbnMpIHtcbiAgICBpbnB1dENvdW50ICs9IGUuaW5wdXRzLmxlbmd0aDtcbiAgICBvdXRwdXRDb3VudCArPSBlLm91dHB1dHMubGVuZ3RoO1xuICAgIGNoYW5nZU91dHB1dENvdW50ICs9IGUuY2hhbmdlT3V0cHV0cy5sZW5ndGg7XG4gICAgZmVlICs9IGUuZmVlO1xuICAgIGlucHV0QW1vdW50ICs9IGUuaW5wdXRBbW91bnQ7XG4gICAgb3V0cHV0QW1vdW50ICs9IGUub3V0cHV0QW1vdW50O1xuICAgIGNoYW5nZUFtb3VudCArPSBlLmNoYW5nZUFtb3VudDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgaW5wdXRDb3VudCxcbiAgICBvdXRwdXRDb3VudCxcbiAgICBjaGFuZ2VPdXRwdXRDb3VudCxcbiAgICBpbnB1dEFtb3VudCxcbiAgICBvdXRwdXRBbW91bnQsXG4gICAgY2hhbmdlQW1vdW50LFxuICAgIGZlZSxcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/parseTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,KAAK,EAAmC,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAUnF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAoB,MAAM,qBAAqB,CAAC;AAMzF,MAAM,MAAM,4BAA4B,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG;IAC/F,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"parseTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/parseTransaction.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,KAAK,EAAmC,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAUnF,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAoB,MAAM,qBAAqB,CAAC;AAMzF,MAAM,MAAM,4BAA4B,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG;IAC/F,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B,CAAC;AAmHF,wBAAsB,gBAAgB,CAAC,OAAO,SAAS,MAAM,GAAG,MAAM,EACpE,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,EACxC,YAAY,GAAE,YAAgC,GAC7C,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CA6KrC"}
|
|
@@ -63,6 +63,7 @@ function toExpectedOutputs(addressCodec, txParams) {
|
|
|
63
63
|
{
|
|
64
64
|
script: addressCodec.fromExtendedAddressFormatToScript(output.address),
|
|
65
65
|
value: output.amount === 'max' ? 'max' : BigInt(output.amount),
|
|
66
|
+
address: output.address,
|
|
66
67
|
},
|
|
67
68
|
];
|
|
68
69
|
});
|
|
@@ -74,6 +75,7 @@ function toExpectedOutputs(addressCodec, txParams) {
|
|
|
74
75
|
value: 'max',
|
|
75
76
|
// Note that the change output is not required to exist, so we mark it as optional.
|
|
76
77
|
optional: true,
|
|
78
|
+
address: txParams.changeAddress,
|
|
77
79
|
});
|
|
78
80
|
}
|
|
79
81
|
return expectedOutputs;
|
|
@@ -178,9 +180,13 @@ async function parseTransaction(coin, params, addressCodec = coin.addressCodec)
|
|
|
178
180
|
const changeOutputs = lodash_1.default.filter(allOutputDetails, { external: false });
|
|
179
181
|
function toComparableOutputsWithExternal(outputs) {
|
|
180
182
|
return outputs.map((output) => ({
|
|
181
|
-
|
|
183
|
+
// Change/custom-change outputs are always transparent wallet addresses.
|
|
184
|
+
script: output.external
|
|
185
|
+
? addressCodec.fromExtendedAddressFormatToScript(output.address)
|
|
186
|
+
: Buffer.from(addressCodec.decodeChangeAddress(output.address)),
|
|
182
187
|
value: output.amount === 'max' ? 'max' : BigInt(output.amount),
|
|
183
188
|
external: output.external,
|
|
189
|
+
address: output.address,
|
|
184
190
|
}));
|
|
185
191
|
}
|
|
186
192
|
const missingOutputs = (0, outputDifference_1.outputDifference)(expectedOutputs, toComparableOutputsWithExternal(allOutputs));
|
|
@@ -206,7 +212,7 @@ async function parseTransaction(coin, params, addressCodec = coin.addressCodec)
|
|
|
206
212
|
const implicitExternalSpendAmount = (0, tnumber_1.toTNumber)(implicitExternalOutputs.reduce((sum, o) => sum + BigInt(o.value), BigInt(0)), coin.amountType);
|
|
207
213
|
function toOutputs(outputs) {
|
|
208
214
|
return outputs.map((output) => ({
|
|
209
|
-
address: addressCodec.toExtendedAddressFormat(output.script),
|
|
215
|
+
address: addressCodec.toExtendedAddressFormat(output.script, output.address),
|
|
210
216
|
amount: output.value.toString(),
|
|
211
217
|
external: output.external,
|
|
212
218
|
}));
|
|
@@ -225,4 +231,4 @@ async function parseTransaction(coin, params, addressCodec = coin.addressCodec)
|
|
|
225
231
|
customChange,
|
|
226
232
|
};
|
|
227
233
|
}
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9wYXJzZVRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBdUlBLDRDQThLQztBQXJURCxvREFBNEI7QUFFNUIsb0RBQXVCO0FBQ3ZCLDhDQUF5RztBQUl6RywrQ0FPeUI7QUFDekIsK0NBQXFEO0FBQ3JELDRDQUE0QztBQUM1QywwREFBeUY7QUFDekYsMkNBQTBDO0FBRzFDLCtDQUFpRTtBQU1qRSxTQUFTLCtCQUErQixDQUN0QyxJQUFzQixFQUN0QixNQUFpRDtJQUtqRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLHdCQUFZLENBQUMsK0JBQStCLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDOUMsSUFBSSx3QkFBWSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0FBQ3BFLENBQUM7QUFFRCxLQUFLLFVBQVUsbUJBQW1CLENBQ2hDLElBQXNCLEVBQ3RCLE1BQXdDLEVBQ3hDLGVBQTZCLElBQUksQ0FBQyxZQUFZO0lBRTlDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRXBDLElB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QU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3BGLElBQUksQ0FBQyxVQUFVLENBQ0wsQ0FBQztJQUViLFNBQVMsU0FBUyxDQUFDLE9BQTBFO1FBQzNGLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM5QixPQUFPLEVBQUUsWUFBWSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDNUQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQy9CLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtTQUMxQixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxPQUFPO1FBQ0wsU0FBUztRQUNULGFBQWEsRUFBRSxJQUFBLDRCQUFnQixFQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDN0MsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixjQUFjLEVBQUUsU0FBUyxDQUFDLGNBQWMsQ0FBQztRQUN6Qyx1QkFBdUIsRUFBRSxTQUFTLENBQUMsdUJBQXVCLENBQUM7UUFDM0QsdUJBQXVCLEVBQUUsU0FBUyxDQUFDLHVCQUF1QixDQUFDO1FBQzNELGFBQWE7UUFDYiwyQkFBMkI7UUFDM0IsMkJBQTJCO1FBQzNCLHlDQUF5QztRQUN6QyxZQUFZO0tBQ2IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQsIEtleUluZGljZXMsIFRyaXBsZSwgVmVyaWZpY2F0aW9uT3B0aW9ucywgV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdFV0eG9Db2luLCBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHR5cGUgeyBGaXhlZFNjcmlwdFdhbGxldE91dHB1dCwgT3V0cHV0LCBQYXJzZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIGZldGNoS2V5Y2hhaW5zLFxuICBnZXRLZXlTaWduYXR1cmVzLFxuICB0b0tleWNoYWluVHJpcGxlLFxuICB0b1hwdWJUcmlwbGUsXG4gIFV0eG9LZXljaGFpbixcbiAgVXR4b05hbWVkS2V5Y2hhaW5zLFxufSBmcm9tICcuLi8uLi9rZXljaGFpbnMnO1xuaW1wb3J0IHsgdmVyaWZ5S2V5U2lnbmF0dXJlIH0gZnJvbSAnLi4vLi4vdmVyaWZ5S2V5JztcbmltcG9ydCB7IEFkZHJlc3NDb2RlYyB9IGZyb20gJy4uL3JlY2lwaWVudCc7XG5pbXBvcnQgeyBDb21wYXJhYmxlT3V0cHV0LCBFeHBlY3RlZE91dHB1dCwgb3V0cHV0RGlmZmVyZW5jZSB9IGZyb20gJy4uL291dHB1dERpZmZlcmVuY2UnO1xuaW1wb3J0IHsgdG9UTnVtYmVyIH0gZnJvbSAnLi4vLi4vdG51bWJlcic7XG5cbmltcG9ydCB0eXBlIHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJy4vZXhwbGFpblRyYW5zYWN0aW9uJztcbmltcG9ydCB7IEN1c3RvbUNoYW5nZU9wdGlvbnMsIHBhcnNlT3V0cHV0IH0gZnJvbSAnLi9wYXJzZU91dHB1dCc7XG5cbmV4cG9ydCB0eXBlIENvbXBhcmFibGVPdXRwdXRXaXRoRXh0ZXJuYWw8VFZhbHVlPiA9IChDb21wYXJhYmxlT3V0cHV0PFRWYWx1ZT4gfCBFeHBlY3RlZE91dHB1dCkgJiB7XG4gIGV4dGVybmFsOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufTtcblxuZnVuY3Rpb24gdG9DYW5vbmljYWxUcmFuc2FjdGlvblJlY2lwaWVudChcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgb3V0cHV0OiB7IHZhbHVlU3RyaW5nOiBzdHJpbmc7IGFkZHJlc3M/OiBzdHJpbmcgfVxuKToge1xuICBhbW91bnQ6IGJpZ2ludDtcbiAgYWRkcmVzczogc3RyaW5nO1xufSB7XG4gIGNvbnN0IGFtb3VudCA9IEJpZ0ludChvdXRwdXQudmFsdWVTdHJpbmcpO1xuICBBZGRyZXNzQ29kZWMuYXNzZXJ0VmFsaWRUcmFuc2FjdGlvblJlY2lwaWVudCh7IGFtb3VudCwgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MgfSk7XG4gIGFzc2VydChvdXRwdXQuYWRkcmVzcywgJ2FkZHJlc3MgaXMgcmVxdWlyZWQnKTtcbiAgaWYgKEFkZHJlc3NDb2RlYy5pc1NjcmlwdFJlY2lwaWVudChvdXRwdXQuYWRkcmVzcykpIHtcbiAgICByZXR1cm4geyBhbW91bnQsIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzIH07XG4gIH1cbiAgcmV0dXJuIHsgYW1vdW50LCBhZGRyZXNzOiBjb2luLmNhbm9uaWNhbEFkZHJlc3Mob3V0cHV0LmFkZHJlc3MpIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlUmJmVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIGJpZ2ludCB8IG51bWJlcj4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHBhcmFtczogUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnM8VE51bWJlcj4sXG4gIGFkZHJlc3NDb2RlYzogQWRkcmVzc0NvZGVjID0gY29pbi5hZGRyZXNzQ29kZWNcbik6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb248VE51bWJlcj4+IHtcbiAgY29uc3QgeyB0eFBhcmFtcywgd2FsbGV0IH0gPSBwYXJhbXM7XG5cbiAgYXNzZXJ0KHR4UGFyYW1zLnJiZlR4SWRzKTtcbiAgYXNzZXJ0KHR4UGFyYW1zLnJiZlR4SWRzLmxlbmd0aCA9PT0gMSk7XG5cbiAgY29uc3QgdHhUb0JlUmVwbGFjZWQgPSBhd2FpdCB3YWxsZXQuZ2V0VHJhbnNhY3Rpb24oeyB0eEhhc2g6IHR4UGFyYW1zLnJiZlR4SWRzWzBdLCBpbmNsdWRlUmJmOiB0cnVlIH0pO1xuICBjb25zdCByZWNpcGllbnRzID0gdHhUb0JlUmVwbGFjZWQub3V0cHV0cy5mbGF0TWFwKFxuICAgIChvdXRwdXQ6IHsgdmFsdWVTdHJpbmc6IHN0cmluZzsgYWRkcmVzcz86IHN0cmluZzsgd2FsbGV0Pzogc3RyaW5nIH0pID0+IHtcbiAgICAgIC8vIEZvciBzZWxmLXNlbmRzLCB0aGUgd2FsbGV0SWQgd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGUgd2FsbGV0J3MgaWRcbiAgICAgIGlmIChvdXRwdXQud2FsbGV0ID09PSB3YWxsZXQuaWQoKSkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICByZXR1cm4gW3RvQ2Fub25pY2FsVHJhbnNhY3Rpb25SZWNpcGllbnQoY29pbiwgb3V0cHV0KV07XG4gICAgfVxuICApO1xuXG4gIC8vIFJlY3Vyc2UgaW50byBwYXJzZVRyYW5zYWN0aW9uIHdpdGggdGhlIGRlcml2ZWQgcmVjaXBpZW50cyBhbmQgd2l0aG91dCByYmZUeElkc1xuICByZXR1cm4gcGFyc2VUcmFuc2FjdGlvbihcbiAgICBjb2luLFxuICAgIHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHR4UGFyYW1zOiB7XG4gICAgICAgIC4uLnR4UGFyYW1zLFxuICAgICAgICByZWNpcGllbnRzLFxuICAgICAgICByYmZUeElkczogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGFkZHJlc3NDb2RlY1xuICApO1xufVxuXG5mdW5jdGlvbiB0b0V4cGVjdGVkT3V0cHV0cyhcbiAgYWRkcmVzc0NvZGVjOiBBZGRyZXNzQ29kZWMsXG4gIHR4UGFyYW1zOiB7XG4gICAgcmVjaXBpZW50cz86IElUcmFuc2FjdGlvblJlY2lwaWVudFtdO1xuICAgIGFsbG93RXh0ZXJuYWxDaGFuZ2VBZGRyZXNzPzogYm9vbGVhbjtcbiAgICBjaGFuZ2VBZGRyZXNzPzogc3RyaW5nO1xuICB9XG4pOiBFeHBlY3RlZE91dHB1dFtdIHtcbiAgLy8gdmVyaWZ5IHRoYXQgZWFjaCByZWNpcGllbnQgZnJvbSB0eFBhcmFtcyBoYXMgdGhlaXIgb3duIG91dHB1dFxuICBjb25zdCBleHBlY3RlZE91dHB1dHM6IEV4cGVjdGVkT3V0cHV0W10gPSAodHhQYXJhbXMucmVjaXBpZW50cyA/PyBbXSkuZmxhdE1hcCgob3V0cHV0KSA9PiB7XG4gICAgaWYgKG91dHB1dC5hZGRyZXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGFzc2VydCgnc2NyaXB0JyBpbiBvdXRwdXQsICdzY3JpcHQgaXMgcmVxdWlyZWQgZm9yIG5vbi1lbmNvZGVhYmxlIHNjcmlwdFB1YmtleXMnKTtcbiAgICAgIGlmIChvdXRwdXQuYW1vdW50LnRvU3RyaW5nKCkgIT09ICcwJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE9ubHkgemVybyBhbW91bnRzIGFsbG93ZWQgZm9yIG5vbi1lbmNvZGVhYmxlIHNjcmlwdFB1YmtleXM6ICR7b3V0cHV0fWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHNjcmlwdDogYWRkcmVzc0NvZGVjLnRvT3V0cHV0U2NyaXB0KG91dHB1dCksXG4gICAgICAgICAgdmFsdWU6IG91dHB1dC5hbW91bnQgPT09ICdtYXgnID8gJ21heCcgOiBCaWdJbnQob3V0cHV0LmFtb3VudCksXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBzY3JpcHQ6IGFkZHJlc3NDb2RlYy5mcm9tRXh0ZW5kZWRBZGRyZXNzRm9ybWF0VG9TY3JpcHQob3V0cHV0LmFkZHJlc3MpLFxuICAgICAgICB2YWx1ZTogb3V0cHV0LmFtb3VudCA9PT0gJ21heCcgPyAnbWF4JyA6IEJpZ0ludChvdXRwdXQuYW1vdW50KSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfSk7XG4gIGlmICh0eFBhcmFtcy5hbGxvd0V4dGVybmFsQ2hhbmdlQWRkcmVzcyAmJiB0eFBhcmFtcy5jaGFuZ2VBZGRyZXNzKSB7XG4gICAgZXhwZWN0ZWRPdXRwdXRzLnB1c2goe1xuICAgICAgc2NyaXB0OiBhZGRyZXNzQ29kZWMudG9PdXRwdXRTY3JpcHQodHhQYXJhbXMuY2hhbmdlQWRkcmVzcyksXG4gICAgICAvLyBXaGVuIGFuIGV4dGVybmFsIGNoYW5nZSBhZGRyZXNzIGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLCBjb3VudCBhbGwgb3V0cHV0cyBnb2luZyB0b3dhcmRzIHRoYXRcbiAgICAgIC8vIGFkZHJlc3MgaW4gdGhlIGV4cGVjdGVkIG91dHB1dHMgKHJlZ2FyZGxlc3Mgb2YgdGhlIG91dHB1dCBhbW91bnQpXG4gICAgICB2YWx1ZTogJ21heCcsXG4gICAgICAvLyBOb3RlIHRoYXQgdGhlIGNoYW5nZSBvdXRwdXQgaXMgbm90IHJlcXVpcmVkIHRvIGV4aXN0LCBzbyB3ZSBtYXJrIGl0IGFzIG9wdGlvbmFsLlxuICAgICAgb3B0aW9uYWw6IHRydWUsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIGV4cGVjdGVkT3V0cHV0cztcbn1cblxuZnVuY3Rpb24gdmVyaWZ5Q3VzdG9tQ2hhbmdlS2V5cyh1c2VyS2V5Y2hhaW46IFV0eG9LZXljaGFpbiwgY3VzdG9tQ2hhbmdlOiBDdXN0b21DaGFuZ2VPcHRpb25zKTogdm9pZCB7XG4gIGZvciAoY29uc3Qga2V5SW5kZXggb2YgW0tleUluZGljZXMuVVNFUiwgS2V5SW5kaWNlcy5CQUNLVVAsIEtleUluZGljZXMuQklUR09dKSB7XG4gICAgaWYgKFxuICAgICAgIXZlcmlmeUtleVNpZ25hdHVyZSh7XG4gICAgICAgIHVzZXJLZXljaGFpbixcbiAgICAgICAga2V5Y2hhaW5Ub1ZlcmlmeTogY3VzdG9tQ2hhbmdlLmtleXNba2V5SW5kZXhdLFxuICAgICAgICBrZXlTaWduYXR1cmU6IGN1c3RvbUNoYW5nZS5zaWduYXR1cmVzW2tleUluZGV4XSxcbiAgICAgIH0pXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGZhaWxlZCB0byB2ZXJpZnkgY3VzdG9tIGNoYW5nZSAke0tleUluZGljZXNba2V5SW5kZXhdLnRvTG93ZXJDYXNlKCl9IGtleSBzaWduYXR1cmVgKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlVHJhbnNhY3Rpb248VE51bWJlciBleHRlbmRzIGJpZ2ludCB8IG51bWJlcj4oXG4gIGNvaW46IEFic3RyYWN0VXR4b0NvaW4sXG4gIHBhcmFtczogUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnM8VE51bWJlcj4sXG4gIGFkZHJlc3NDb2RlYzogQWRkcmVzc0NvZGVjID0gY29pbi5hZGRyZXNzQ29kZWNcbik6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb248VE51bWJlcj4+IHtcbiAgY29uc3QgeyB0eFBhcmFtcywgdHhQcmVidWlsZCwgd2FsbGV0LCB2ZXJpZmljYXRpb24gPSB7fSwgcmVxSWQgfSA9IHBhcmFtcztcblxuICAvLyBCcmFuY2ggb2ZmIGVhcmx5IGZvciBSQkYgdHJhbnNhY3Rpb25zXG4gIGlmICh0eFBhcmFtcy5yYmZUeElkcykge1xuICAgIHJldHVybiBwYXJzZVJiZlRyYW5zYWN0aW9uKGNvaW4sIHBhcmFtcywgYWRkcmVzc0NvZGVjKTtcbiAgfVxuXG4gIGlmICghXy5pc1VuZGVmaW5lZCh2ZXJpZmljYXRpb24uZGlzYWJsZU5ldHdvcmtpbmcpICYmICFfLmlzQm9vbGVhbih2ZXJpZmljYXRpb24uZGlzYWJsZU5ldHdvcmtpbmcpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd2ZXJpZmljYXRpb24uZGlzYWJsZU5ldHdvcmtpbmcgbXVzdCBiZSBhIGJvb2xlYW4nKTtcbiAgfVxuICBjb25zdCBkaXNhYmxlTmV0d29ya2luZyA9IHZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZztcblxuICAvLyBvYnRhaW4gdGhlIGtleWNoYWlucyBhbmQga2V5IHNpZ25hdHVyZXNcbiAgbGV0IGtleWNoYWluczogVXR4b05hbWVkS2V5Y2hhaW5zIHwgVmVyaWZpY2F0aW9uT3B0aW9uc1sna2V5Y2hhaW5zJ10gfCB1bmRlZmluZWQgPSB2ZXJpZmljYXRpb24ua2V5Y2hhaW5zO1xuICBpZiAoIWtleWNoYWlucykge1xuICAgIGlmIChkaXNhYmxlTmV0d29ya2luZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdjYW5ub3QgZmV0Y2gga2V5Y2hhaW5zIHdpdGhvdXQgbmV0d29ya2luZycpO1xuICAgIH1cbiAgICBrZXljaGFpbnMgPSBhd2FpdCBmZXRjaEtleWNoYWlucyhjb2luLCB3YWxsZXQsIHJlcUlkKTtcbiAgfVxuXG4gIGlmICghVXR4b05hbWVkS2V5Y2hhaW5zLmlzKGtleWNoYWlucykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQga2V5Y2hhaW5zJyk7XG4gIH1cblxuICBjb25zdCBrZXljaGFpbkFycmF5OiBUcmlwbGU8VXR4b0tleWNoYWluPiA9IHRvS2V5Y2hhaW5UcmlwbGUoa2V5Y2hhaW5zKTtcblxuICBjb25zdCBlZmZlY3RpdmVUeEhleCA9IHR4UHJlYnVpbGQudHhIZXhQc2J0ID8/IHR4UHJlYnVpbGQudHhIZXg7XG4gIGlmIChfLmlzVW5kZWZpbmVkKGVmZmVjdGl2ZVR4SGV4KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignbWlzc2luZyByZXF1aXJlZCB0eFByZWJ1aWxkIHByb3BlcnR5IHR4SGV4Jyk7XG4gIH1cblxuICBjb25zdCBleHBlY3RlZE91dHB1dHMgPSB0b0V4cGVjdGVkT3V0cHV0cyhhZGRyZXNzQ29kZWMsIHR4UGFyYW1zKTtcblxuICAvLyBnZXQgdGhlIGtleWNoYWlucyBmcm9tIHRoZSBjdXN0b20gY2hhbmdlIHdhbGxldCBpZiBuZWVkZWRcbiAgbGV0IGN1c3RvbUNoYW5nZTogQ3VzdG9tQ2hhbmdlT3B0aW9ucyB8IHVuZGVmaW5lZDtcbiAgY29uc3QgeyBjdXN0b21DaGFuZ2VXYWxsZXRJZCA9IHVuZGVmaW5lZCB9ID0gd2FsbGV0LmNvaW5TcGVjaWZpYygpIHx8IHt9O1xuICBpZiAoY3VzdG9tQ2hhbmdlV2FsbGV0SWQpIHtcbiAgICAvLyBmZXRjaCBrZXljaGFpbnMgZnJvbSBjdXN0b20gY2hhbmdlIHdhbGxldCBmb3IgZGVyaXZpbmcgYWRkcmVzc2VzLlxuICAgIC8vIFRoZXNlIGtleWNoYWlucyBzaG91bGQgYmUgc2lnbmVkIGFuZCB0aGlzIHNob3VsZCBiZSB2ZXJpZmllZCBpbiB2ZXJpZnlUcmFuc2FjdGlvblxuICAgIGNvbnN0IGN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXMgPSB3YWxsZXQuX3dhbGxldC5jdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzO1xuICAgIGNvbnN0IGN1c3RvbUNoYW5nZVdhbGxldDogV2FsbGV0ID0gYXdhaXQgY29pbi53YWxsZXRzKCkuZ2V0KHsgaWQ6IGN1c3RvbUNoYW5nZVdhbGxldElkIH0pO1xuICAgIGNvbnN0IGN1c3RvbUNoYW5nZUtleXMgPSBhd2FpdCBmZXRjaEtleWNoYWlucyhjb2luLCBjdXN0b21DaGFuZ2VXYWxsZXQsIHJlcUlkKTtcblxuICAgIGlmICghY3VzdG9tQ2hhbmdlS2V5cykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdmYWlsZWQgdG8gZmV0Y2gga2V5Y2hhaW5zIGZvciBjdXN0b20gY2hhbmdlIHdhbGxldCcpO1xuICAgIH1cblxuICAgIGlmIChjdXN0b21DaGFuZ2VLZXlzLnVzZXIgJiYgY3VzdG9tQ2hhbmdlS2V5cy5iYWNrdXAgJiYgY3VzdG9tQ2hhbmdlS2V5cy5iaXRnbyAmJiBjdXN0b21DaGFuZ2VXYWxsZXQpIHtcbiAgICAgIGNvbnN0IGN1c3RvbUNoYW5nZUtleWNoYWluczogVHJpcGxlPFV0eG9LZXljaGFpbj4gPSBbXG4gICAgICAgIGN1c3RvbUNoYW5nZUtleXMudXNlcixcbiAgICAgICAgY3VzdG9tQ2hhbmdlS2V5cy5iYWNrdXAsXG4gICAgICAgIGN1c3RvbUNoYW5nZUtleXMuYml0Z28sXG4gICAgICBdO1xuXG4gICAgICBjdXN0b21DaGFuZ2UgPSB7XG4gICAgICAgIGtleXM6IGN1c3RvbUNoYW5nZUtleWNoYWlucyxcbiAgICAgICAgc2lnbmF0dXJlczogW2N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXMudXNlciwgY3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlcy5iYWNrdXAsIGN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXMuYml0Z29dLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBsZXQgY3VzdG9tQ2hhbmdlWHB1YnM6IFRyaXBsZTxzdHJpbmc+IHwgdW5kZWZpbmVkO1xuICBpZiAoY3VzdG9tQ2hhbmdlKSB7XG4gICAgdmVyaWZ5Q3VzdG9tQ2hhbmdlS2V5cyhrZXljaGFpbkFycmF5W0tleUluZGljZXMuVVNFUl0sIGN1c3RvbUNoYW5nZSk7XG4gICAgY3VzdG9tQ2hhbmdlWHB1YnMgPSB0b1hwdWJUcmlwbGUoY3VzdG9tQ2hhbmdlLmtleXMpO1xuICB9XG5cbiAgLy8gb2J0YWluIGFsbCBvdXRwdXRzXG4gIGNvbnN0IGV4cGxhbmF0aW9uOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uID0gYXdhaXQgY29pbi5leHBsYWluVHJhbnNhY3Rpb248VE51bWJlcj4oe1xuICAgIHR4SGV4OiBlZmZlY3RpdmVUeEhleCxcbiAgICB0eEluZm86IHR4UHJlYnVpbGQudHhJbmZvLFxuICAgIHB1YnM6IGtleWNoYWluQXJyYXkubWFwKChrKSA9PiBrLnB1YikgYXMgVHJpcGxlPHN0cmluZz4sXG4gICAgY3VzdG9tQ2hhbmdlWHB1YnMsXG4gIH0pO1xuXG4gIGNvbnN0IGFsbE91dHB1dHMgPSBbLi4uZXhwbGFuYXRpb24ub3V0cHV0cywgLi4uZXhwbGFuYXRpb24uY2hhbmdlT3V0cHV0c107XG5cbiAgLyoqXG4gICAqIExvb3AgdGhyb3VnaCBhbGwgdGhlIG91dHB1dHMgYW5kIGNsYXNzaWZ5IGVhY2ggb2YgdGhlbSBhcyBlaXRoZXIgaW50ZXJuYWwgc3BlbmRzXG4gICAqIG9yIGV4dGVybmFsIHNwZW5kcyBieSBzZXR0aW5nIHRoZSBcImV4dGVybmFsXCIgcHJvcGVydHkgdG8gdHJ1ZSBvciBmYWxzZSBvbiB0aGUgb3V0cHV0IG9iamVjdC5cbiAgICovXG4gIGNvbnN0IGFsbE91dHB1dERldGFpbHM6IE91dHB1dFtdID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgYWxsT3V0cHV0cy5tYXAoKGN1cnJlbnRPdXRwdXQpID0+IHtcbiAgICAgIHJldHVybiBwYXJzZU91dHB1dCh7XG4gICAgICAgIGN1cnJlbnRPdXRwdXQsXG4gICAgICAgIGNvaW4sXG4gICAgICAgIHR4UHJlYnVpbGQsXG4gICAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgICAga2V5Y2hhaW5BcnJheTogdG9LZXljaGFpblRyaXBsZShrZXljaGFpbnMpLFxuICAgICAgICB3YWxsZXQsXG4gICAgICAgIGFkZHJlc3NDb2RlYyxcbiAgICAgICAgdHhQYXJhbXM6IHtcbiAgICAgICAgICByZWNpcGllbnRzOiB0eFBhcmFtcy5yZWNpcGllbnRzID8/IFtdLFxuICAgICAgICAgIGNoYW5nZUFkZHJlc3M6IHR4UGFyYW1zLmNoYW5nZUFkZHJlc3MsXG4gICAgICAgIH0sXG4gICAgICAgIGN1c3RvbUNoYW5nZSxcbiAgICAgICAgcmVxSWQsXG4gICAgICB9KTtcbiAgICB9KVxuICApO1xuXG4gIGNvbnN0IG5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uID0gYWxsT3V0cHV0RGV0YWlscy5zb21lKFxuICAgIChvdXRwdXQpID0+IChvdXRwdXQgYXMgRml4ZWRTY3JpcHRXYWxsZXRPdXRwdXQpPy5uZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvblxuICApO1xuXG4gIGNvbnN0IGNoYW5nZU91dHB1dHMgPSBfLmZpbHRlcihhbGxPdXRwdXREZXRhaWxzLCB7IGV4dGVybmFsOiBmYWxzZSB9KTtcblxuICBmdW5jdGlvbiB0b0NvbXBhcmFibGVPdXRwdXRzV2l0aEV4dGVybmFsKG91dHB1dHM6IE91dHB1dFtdKTogQ29tcGFyYWJsZU91dHB1dFdpdGhFeHRlcm5hbDxiaWdpbnQgfCAnbWF4Jz5bXSB7XG4gICAgcmV0dXJuIG91dHB1dHMubWFwKChvdXRwdXQpID0+ICh7XG4gICAgICBzY3JpcHQ6IGFkZHJlc3NDb2RlYy5mcm9tRXh0ZW5kZWRBZGRyZXNzRm9ybWF0VG9TY3JpcHQob3V0cHV0LmFkZHJlc3MpLFxuICAgICAgdmFsdWU6IG91dHB1dC5hbW91bnQgPT09ICdtYXgnID8gJ21heCcgOiAoQmlnSW50KG91dHB1dC5hbW91bnQpIGFzIGJpZ2ludCB8ICdtYXgnKSxcbiAgICAgIGV4dGVybmFsOiBvdXRwdXQuZXh0ZXJuYWwsXG4gICAgfSkpO1xuICB9XG5cbiAgY29uc3QgbWlzc2luZ091dHB1dHMgPSBvdXRwdXREaWZmZXJlbmNlKGV4cGVjdGVkT3V0cHV0cywgdG9Db21wYXJhYmxlT3V0cHV0c1dpdGhFeHRlcm5hbChhbGxPdXRwdXRzKSk7XG5cbiAgY29uc3QgaW1wbGljaXRPdXRwdXRzID0gb3V0cHV0RGlmZmVyZW5jZSh0b0NvbXBhcmFibGVPdXRwdXRzV2l0aEV4dGVybmFsKGFsbE91dHB1dERldGFpbHMpLCBleHBlY3RlZE91dHB1dHMpO1xuICBjb25zdCBleHBsaWNpdE91dHB1dHMgPSBvdXRwdXREaWZmZXJlbmNlKHRvQ29tcGFyYWJsZU91dHB1dHNXaXRoRXh0ZXJuYWwoYWxsT3V0cHV0RGV0YWlscyksIGltcGxpY2l0T3V0cHV0cyk7XG5cbiAgLy8gdGhlc2UgYXJlIGFsbCB0aGUgbm9uLXdhbGxldCBvdXRwdXRzIHRoYXQgaGFkIGJlZW4gb3JpZ2luYWxseSBleHBsaWNpdGx5IHNwZWNpZmllZCBpbiByZWNpcGllbnRzXG4gIGNvbnN0IGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzID0gZXhwbGljaXRPdXRwdXRzLmZpbHRlcigob3V0cHV0KSA9PiBvdXRwdXQuZXh0ZXJuYWwpO1xuICAvLyB0aGlzIGlzIHRoZSBzdW0gb2YgYWxsIHRoZSBvcmlnaW5hbGx5IGV4cGxpY2l0bHkgc3BlY2lmaWVkIG5vbi13YWxsZXQgb3V0cHV0IHZhbHVlc1xuICBjb25zdCBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQgPSB0b1ROdW1iZXIoXG4gICAgZXhwbGljaXRFeHRlcm5hbE91dHB1dHMucmVkdWNlKChzdW06IGJpZ2ludCwgbykgPT4gc3VtICsgQmlnSW50KG8udmFsdWUpLCBCaWdJbnQoMCkpLFxuICAgIGNvaW4uYW1vdW50VHlwZVxuICApIGFzIFROdW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgaW1wbGljaXQgZXh0ZXJuYWwgc3BlbmQgYW1vdW50IHBlcnRhaW5zIHRvIHZlcmlmeWluZyB0aGUgcGF5LWFzLXlvdS1nby1mZWUgQml0R29cbiAgICogYXV0b21hdGljYWxseSBhcHBsaWVkIHRvIHRyYW5zYWN0aW9ucyBzZW5kaW5nIG1vbmV5IG91dCBvZiB0aGUgd2FsbGV0LiBUaGUgbG9naWMgaXMgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZFxuICAgKiBpbiB0aGF0IHdlIGNvbXBhcmUgdGhlIGV4dGVybmFsIHNwZW5kIGFtb3VudCB0aGF0IHdhcyBzcGVjaWZpZWQgZXhwbGljaXRseSBieSB0aGUgdXNlciB0byB0aGUgcG9ydGlvblxuICAgKiB0aGF0IHdhcyBzcGVjaWZpZWQgaW1wbGljaXRseS4gVG8gcHJvdGVjdCBjdXN0b21lcnMgZnJvbSBwZW9wbGUgdGFtcGVyaW5nIHdpdGggdGhlIHRyYW5zYWN0aW9uIG91dHB1dHMsIHdlXG4gICAqIGRlZmluZSBhIHRocmVzaG9sZCBmb3IgdGhlIG1heGltdW0gcGVyY2VudGFnZSBvZiB0aGUgaW1wbGljaXQgZXh0ZXJuYWwgc3BlbmQgaW4gcmVsYXRpb24gdG8gdGhlIGV4cGxpY2l0XG4gICAqIGV4dGVybmFsIHNwZW5kLlxuICAgKlxuICAgKiBUaGlzIGhhcyBiZWNvbWUgb2Jzb2xldGUgd2l0aCB0aGUgaW50b2R1Y3Rpb24gb2YgYHV0eG9jb3JlLnBheWdvLnZlcmlmeVBheUdvQWRkcmVzc1Byb29mKClgLlxuICAgKi9cblxuICAvLyBtYWtlIHN1cmUgdGhhdCBhbGwgdGhlIGV4dHJhIGFkZHJlc3NlcyBhcmUgY2hhbmdlIGFkZHJlc3Nlc1xuICAvLyBnZXQgYWxsIHRoZSBhZGRpdGlvbmFsIGV4dGVybmFsIG91dHB1dHMgdGhlIHNlcnZlciBhZGRlZCBhbmQgY2FsY3VsYXRlIHRoZWlyIHZhbHVlc1xuICBjb25zdCBpbXBsaWNpdEV4dGVybmFsT3V0cHV0cyA9IGltcGxpY2l0T3V0cHV0cy5maWx0ZXIoKG91dHB1dCkgPT4gb3V0cHV0LmV4dGVybmFsKTtcbiAgY29uc3QgaW1wbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50ID0gdG9UTnVtYmVyKFxuICAgIGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzLnJlZHVjZSgoc3VtOiBiaWdpbnQsIG8pID0+IHN1bSArIEJpZ0ludChvLnZhbHVlKSwgQmlnSW50KDApKSxcbiAgICBjb2luLmFtb3VudFR5cGVcbiAgKSBhcyBUTnVtYmVyO1xuXG4gIGZ1bmN0aW9uIHRvT3V0cHV0cyhvdXRwdXRzOiBFeHBlY3RlZE91dHB1dFtdIHwgQ29tcGFyYWJsZU91dHB1dFdpdGhFeHRlcm5hbDxiaWdpbnQgfCAnbWF4Jz5bXSk6IE91dHB1dFtdIHtcbiAgICByZXR1cm4gb3V0cHV0cy5tYXAoKG91dHB1dCkgPT4gKHtcbiAgICAgIGFkZHJlc3M6IGFkZHJlc3NDb2RlYy50b0V4dGVuZGVkQWRkcmVzc0Zvcm1hdChvdXRwdXQuc2NyaXB0KSxcbiAgICAgIGFtb3VudDogb3V0cHV0LnZhbHVlLnRvU3RyaW5nKCksXG4gICAgICBleHRlcm5hbDogb3V0cHV0LmV4dGVybmFsLFxuICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAga2V5Y2hhaW5zLFxuICAgIGtleVNpZ25hdHVyZXM6IGdldEtleVNpZ25hdHVyZXMod2FsbGV0KSA/PyB7fSxcbiAgICBvdXRwdXRzOiBhbGxPdXRwdXREZXRhaWxzLFxuICAgIG1pc3NpbmdPdXRwdXRzOiB0b091dHB1dHMobWlzc2luZ091dHB1dHMpLFxuICAgIGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiB0b091dHB1dHMoZXhwbGljaXRFeHRlcm5hbE91dHB1dHMpLFxuICAgIGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiB0b091dHB1dHMoaW1wbGljaXRFeHRlcm5hbE91dHB1dHMpLFxuICAgIGNoYW5nZU91dHB1dHMsXG4gICAgZXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50LFxuICAgIGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCxcbiAgICBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbixcbiAgICBjdXN0b21DaGFuZ2UsXG4gIH07XG59XG4iXX0=
|
|
234
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VUcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9maXhlZFNjcmlwdC9wYXJzZVRyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBNElBLDRDQWlMQztBQTdURCxvREFBNEI7QUFFNUIsb0RBQXVCO0FBQ3ZCLDhDQUF5RztBQUl6RywrQ0FPeUI7QUFDekIsK0NBQXFEO0FBQ3JELDRDQUE0QztBQUM1QywwREFBeUY7QUFDekYsMkNBQTBDO0FBRzFDLCtDQUFpRTtBQVNqRSxTQUFTLCtCQUErQixDQUN0QyxJQUFzQixFQUN0QixNQUFpRDtJQUtqRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLHdCQUFZLENBQUMsK0JBQStCLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsT0FBTyxFQUFFLHFCQUFxQixDQUFDLENBQUM7SUFDOUMsSUFBSSx3QkFBWSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0FBQ3BFLENBQUM7QUFFRCxLQUFLLFVBQVUsbUJBQW1CLENBQ2hDLElBQXNCLEVBQ3RCLE1BQXdDLEVBQ3hDLGVBQTZCLElBQUksQ0FBQyxZQUFZO0lBRTlDLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRXBDLElBQUEsZ0JBQU0sRUFBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDMUIsSUFBQSxnQkFBTSxFQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBRXZDLE1BQU0sY0FBYyxHQUFHLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZHLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUMvQyxDQUFDLE1BQWtFLEVBQUUsRUFBRTtRQUNyRSxtRUFBbUU7UUFDbkUsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ2xDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUNELE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDLENBQ0YsQ0FBQztJQUVGLGlGQUFpRjtJQUNqRixPQUFPLGdCQUFnQixDQUNyQixJQUFJLEVBQ0o7UUFDRSxHQUFHLE1BQU07UUFDVCxRQUFRLEVBQUU7WUFDUixHQUFHLFFBQVE7WUFDWCxVQUFVO1lBQ1YsUUFBUSxFQUFFLFNBQVM7U0FDcEI7S0FDRixFQUNELFlBQVksQ0FDYixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsaUJBQWlCLENBQ3hCLFlBQTBCLEVBQzFCLFFBSUM7SUFFRCxnRUFBZ0U7SUFDaEUsTUFBTSxlQUFlLEdBQWdDLENBQUMsUUFBUSxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNsRyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDakMsSUFBQSxnQkFBTSxFQUFDLFFBQVEsSUFBSSxNQUFNLEVBQUUscURBQXFELENBQUMsQ0FBQztZQUNsRixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDM0YsQ0FBQztZQUNELE9BQU87Z0JBQ0w7b0JBQ0UsTUFBTSxFQUFFLFlBQVksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO29CQUMzQyxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7aUJBQy9EO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPO1lBQ0w7Z0JBQ0UsTUFBTSxFQUFFLFlBQVksQ0FBQyxpQ0FBaUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUN0RSxLQUFLLEVBQUUsTUFBTSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQzlELE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTzthQUN4QjtTQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztJQUNILElBQUksUUFBUSxDQUFDLDBCQUEwQixJQUFJLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNsRSxlQUFlLENBQUMsSUFBSSxDQUFDO1lBQ25CLE1BQU0sRUFBRSxZQUFZLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDM0QsZ0dBQWdHO1lBQ2hHLG9FQUFvRTtZQUNwRSxLQUFLLEVBQUUsS0FBSztZQUNaLG1GQUFtRjtZQUNuRixRQUFRLEVBQUUsSUFBSTtZQUNkLE9BQU8sRUFBRSxRQUFRLENBQUMsYUFBYTtTQUNoQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxlQUFlLENBQUM7QUFDekIsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsWUFBMEIsRUFBRSxZQUFpQztJQUMzRixLQUFLLE1BQU0sUUFBUSxJQUFJLENBQUMscUJBQVUsQ0FBQyxJQUFJLEVBQUUscUJBQVUsQ0FBQyxNQUFNLEVBQUUscUJBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzlFLElBQ0UsQ0FBQyxJQUFBLDhCQUFrQixFQUFDO1lBQ2xCLFlBQVk7WUFDWixnQkFBZ0IsRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUM3QyxZQUFZLEVBQUUsWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDaEQsQ0FBQyxFQUNGLENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxxQkFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3hHLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxnQkFBZ0IsQ0FDcEMsSUFBc0IsRUFDdEIsTUFBd0MsRUFDeEMsZUFBNkIsSUFBSSxDQUFDLFlBQVk7SUFFOUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksR0FBRyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTFFLHdDQUF3QztJQUN4QyxJQUFJLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QixPQUFPLG1CQUFtQixDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksQ0FBQyxnQkFBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGdCQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDbkcsTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFDRCxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztJQUV6RCwwQ0FBMEM7SUFDMUMsSUFBSSxTQUFTLEdBQXNFLFlBQVksQ0FBQyxTQUFTLENBQUM7SUFDMUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2YsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBQ0QsU0FBUyxHQUFHLE1BQU0sSUFBQSwwQkFBYyxFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksQ0FBQyw4QkFBa0IsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUF5QixJQUFBLDRCQUFnQixFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRXhFLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxTQUFTLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQztJQUNoRSxJQUFJLGdCQUFDLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFFbEUsNERBQTREO0lBQzVELElBQUksWUFBNkMsQ0FBQztJQUNsRCxNQUFNLEVBQUUsb0JBQW9CLEdBQUcsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUN6RSxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFDekIsb0VBQW9FO1FBQ3BFLG9GQUFvRjtRQUNwRixNQUFNLHlCQUF5QixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUM7UUFDM0UsTUFBTSxrQkFBa0IsR0FBVyxNQUFNLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDO1FBQzFGLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxJQUFBLDBCQUFjLEVBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRS9FLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsSUFBSSxnQkFBZ0IsQ0FBQyxJQUFJLElBQUksZ0JBQWdCLENBQUMsTUFBTSxJQUFJLGdCQUFnQixDQUFDLEtBQUssSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3JHLE1BQU0scUJBQXFCLEdBQXlCO2dCQUNsRCxnQkFBZ0IsQ0FBQyxJQUFJO2dCQUNyQixnQkFBZ0IsQ0FBQyxNQUFNO2dCQUN2QixnQkFBZ0IsQ0FBQyxLQUFLO2FBQ3ZCLENBQUM7WUFFRixZQUFZLEdBQUc7Z0JBQ2IsSUFBSSxFQUFFLHFCQUFxQjtnQkFDM0IsVUFBVSxFQUFFLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLHlCQUF5QixDQUFDLE1BQU0sRUFBRSx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7YUFDaEgsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxpQkFBNkMsQ0FBQztJQUNsRCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxxQkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3JFLGlCQUFpQixHQUFHLElBQUEsd0JBQVksRUFBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELHFCQUFxQjtJQUNyQixNQUFNLFdBQVcsR0FBMkIsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQVU7UUFDakYsS0FBSyxFQUFFLGNBQWM7UUFDckIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNO1FBQ3pCLElBQUksRUFBRSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFtQjtRQUN2RCxpQkFBaUI7S0FDbEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFMUU7OztPQUdHO0lBQ0gsTUFBTSxnQkFBZ0IsR0FBYSxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2xELFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtRQUMvQixPQUFPLElBQUEseUJBQVcsRUFBQztZQUNqQixhQUFhO1lBQ2IsSUFBSTtZQUNKLFVBQVU7WUFDVixZQUFZO1lBQ1osYUFBYSxFQUFFLElBQUEsNEJBQWdCLEVBQUMsU0FBUyxDQUFDO1lBQzFDLE1BQU07WUFDTixZQUFZO1lBQ1osUUFBUSxFQUFFO2dCQUNSLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUU7Z0JBQ3JDLGFBQWEsRUFBRSxRQUFRLENBQUMsYUFBYTthQUN0QztZQUNELFlBQVk7WUFDWixLQUFLO1NBQ04sQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVGLE1BQU0seUNBQXlDLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUNyRSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUUsTUFBa0MsRUFBRSx5Q0FBeUMsQ0FDM0YsQ0FBQztJQUVGLE1BQU0sYUFBYSxHQUFHLGdCQUFDLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFFdEUsU0FBUywrQkFBK0IsQ0FBQyxPQUFpQjtRQUN4RCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUIsd0VBQXdFO1lBQ3hFLE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUTtnQkFDckIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxpQ0FBaUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2dCQUNoRSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pFLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBb0I7WUFDbEYsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztTQUN4QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxNQUFNLGNBQWMsR0FBRyxJQUFBLG1DQUFnQixFQUFDLGVBQWUsRUFBRSwrQkFBK0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRXRHLE1BQU0sZUFBZSxHQUFHLElBQUEsbUNBQWdCLEVBQUMsK0JBQStCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUM3RyxNQUFNLGVBQWUsR0FBRyxJQUFBLG1DQUFnQixFQUFDLCtCQUErQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFFN0csbUdBQW1HO0lBQ25HLE1BQU0sdUJBQXVCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3BGLHNGQUFzRjtJQUN0RixNQUFNLDJCQUEyQixHQUFHLElBQUEsbUJBQVMsRUFDM0MsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ3BGLElBQUksQ0FBQyxVQUFVLENBQ0wsQ0FBQztJQUViOzs7Ozs7Ozs7T0FTRztJQUNILDhEQUE4RDtJQUM5RCxzRkFBc0Y7SUFDdEYsTUFBTSx1QkFBdUIsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEYsTUFBTSwyQkFBMkIsR0FBRyxJQUFBLG1CQUFTLEVBQzNDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNwRixJQUFJLENBQUMsVUFBVSxDQUNMLENBQUM7SUFFYixTQUFTLFNBQVMsQ0FBQyxPQUFvRjtRQUNyRyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUIsT0FBTyxFQUFFLFlBQVksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUM7WUFDNUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQy9CLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTtTQUMxQixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxPQUFPO1FBQ0wsU0FBUztRQUNULGFBQWEsRUFBRSxJQUFBLDRCQUFnQixFQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7UUFDN0MsT0FBTyxFQUFFLGdCQUFnQjtRQUN6QixjQUFjLEVBQUUsU0FBUyxDQUFDLGNBQWMsQ0FBQztRQUN6Qyx1QkFBdUIsRUFBRSxTQUFTLENBQUMsdUJBQXVCLENBQUM7UUFDM0QsdUJBQXVCLEVBQUUsU0FBUyxDQUFDLHVCQUF1QixDQUFDO1FBQzNELGFBQWE7UUFDYiwyQkFBMkI7UUFDM0IsMkJBQTJCO1FBQzNCLHlDQUF5QztRQUN6QyxZQUFZO0tBQ2IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQsIEtleUluZGljZXMsIFRyaXBsZSwgVmVyaWZpY2F0aW9uT3B0aW9ucywgV2FsbGV0IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBBYnN0cmFjdFV0eG9Db2luLCBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL2Fic3RyYWN0VXR4b0NvaW4nO1xuaW1wb3J0IHR5cGUgeyBGaXhlZFNjcmlwdFdhbGxldE91dHB1dCwgT3V0cHV0LCBQYXJzZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7XG4gIGZldGNoS2V5Y2hhaW5zLFxuICBnZXRLZXlTaWduYXR1cmVzLFxuICB0b0tleWNoYWluVHJpcGxlLFxuICB0b1hwdWJUcmlwbGUsXG4gIFV0eG9LZXljaGFpbixcbiAgVXR4b05hbWVkS2V5Y2hhaW5zLFxufSBmcm9tICcuLi8uLi9rZXljaGFpbnMnO1xuaW1wb3J0IHsgdmVyaWZ5S2V5U2lnbmF0dXJlIH0gZnJvbSAnLi4vLi4vdmVyaWZ5S2V5JztcbmltcG9ydCB7IEFkZHJlc3NDb2RlYyB9IGZyb20gJy4uL3JlY2lwaWVudCc7XG5pbXBvcnQgeyBDb21wYXJhYmxlT3V0cHV0LCBFeHBlY3RlZE91dHB1dCwgb3V0cHV0RGlmZmVyZW5jZSB9IGZyb20gJy4uL291dHB1dERpZmZlcmVuY2UnO1xuaW1wb3J0IHsgdG9UTnVtYmVyIH0gZnJvbSAnLi4vLi4vdG51bWJlcic7XG5cbmltcG9ydCB0eXBlIHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJy4vZXhwbGFpblRyYW5zYWN0aW9uJztcbmltcG9ydCB7IEN1c3RvbUNoYW5nZU9wdGlvbnMsIHBhcnNlT3V0cHV0IH0gZnJvbSAnLi9wYXJzZU91dHB1dCc7XG5cbmV4cG9ydCB0eXBlIENvbXBhcmFibGVPdXRwdXRXaXRoRXh0ZXJuYWw8VFZhbHVlPiA9IChDb21wYXJhYmxlT3V0cHV0PFRWYWx1ZT4gfCBFeHBlY3RlZE91dHB1dCkgJiB7XG4gIGV4dGVybmFsOiBib29sZWFuIHwgdW5kZWZpbmVkO1xufTtcblxudHlwZSBFeHBlY3RlZE91dHB1dFdpdGhBZGRyZXNzID0gRXhwZWN0ZWRPdXRwdXQgJiB7IGFkZHJlc3M/OiBzdHJpbmcgfTtcbnR5cGUgQ29tcGFyYWJsZU91dHB1dFdpdGhBZGRyZXNzPFRWYWx1ZT4gPSBDb21wYXJhYmxlT3V0cHV0V2l0aEV4dGVybmFsPFRWYWx1ZT4gJiB7IGFkZHJlc3M6IHN0cmluZyB9O1xuXG5mdW5jdGlvbiB0b0Nhbm9uaWNhbFRyYW5zYWN0aW9uUmVjaXBpZW50KFxuICBjb2luOiBBYnN0cmFjdFV0eG9Db2luLFxuICBvdXRwdXQ6IHsgdmFsdWVTdHJpbmc6IHN0cmluZzsgYWRkcmVzcz86IHN0cmluZyB9XG4pOiB7XG4gIGFtb3VudDogYmlnaW50O1xuICBhZGRyZXNzOiBzdHJpbmc7XG59IHtcbiAgY29uc3QgYW1vdW50ID0gQmlnSW50KG91dHB1dC52YWx1ZVN0cmluZyk7XG4gIEFkZHJlc3NDb2RlYy5hc3NlcnRWYWxpZFRyYW5zYWN0aW9uUmVjaXBpZW50KHsgYW1vdW50LCBhZGRyZXNzOiBvdXRwdXQuYWRkcmVzcyB9KTtcbiAgYXNzZXJ0KG91dHB1dC5hZGRyZXNzLCAnYWRkcmVzcyBpcyByZXF1aXJlZCcpO1xuICBpZiAoQWRkcmVzc0NvZGVjLmlzU2NyaXB0UmVjaXBpZW50KG91dHB1dC5hZGRyZXNzKSkge1xuICAgIHJldHVybiB7IGFtb3VudCwgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MgfTtcbiAgfVxuICByZXR1cm4geyBhbW91bnQsIGFkZHJlc3M6IGNvaW4uY2Fub25pY2FsQWRkcmVzcyhvdXRwdXQuYWRkcmVzcykgfTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFyc2VSYmZUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgYmlnaW50IHwgbnVtYmVyPihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPixcbiAgYWRkcmVzc0NvZGVjOiBBZGRyZXNzQ29kZWMgPSBjb2luLmFkZHJlc3NDb2RlY1xuKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyPj4ge1xuICBjb25zdCB7IHR4UGFyYW1zLCB3YWxsZXQgfSA9IHBhcmFtcztcblxuICBhc3NlcnQodHhQYXJhbXMucmJmVHhJZHMpO1xuICBhc3NlcnQodHhQYXJhbXMucmJmVHhJZHMubGVuZ3RoID09PSAxKTtcblxuICBjb25zdCB0eFRvQmVSZXBsYWNlZCA9IGF3YWl0IHdhbGxldC5nZXRUcmFuc2FjdGlvbih7IHR4SGFzaDogdHhQYXJhbXMucmJmVHhJZHNbMF0sIGluY2x1ZGVSYmY6IHRydWUgfSk7XG4gIGNvbnN0IHJlY2lwaWVudHMgPSB0eFRvQmVSZXBsYWNlZC5vdXRwdXRzLmZsYXRNYXAoXG4gICAgKG91dHB1dDogeyB2YWx1ZVN0cmluZzogc3RyaW5nOyBhZGRyZXNzPzogc3RyaW5nOyB3YWxsZXQ/OiBzdHJpbmcgfSkgPT4ge1xuICAgICAgLy8gRm9yIHNlbGYtc2VuZHMsIHRoZSB3YWxsZXRJZCB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSB3YWxsZXQncyBpZFxuICAgICAgaWYgKG91dHB1dC53YWxsZXQgPT09IHdhbGxldC5pZCgpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBbdG9DYW5vbmljYWxUcmFuc2FjdGlvblJlY2lwaWVudChjb2luLCBvdXRwdXQpXTtcbiAgICB9XG4gICk7XG5cbiAgLy8gUmVjdXJzZSBpbnRvIHBhcnNlVHJhbnNhY3Rpb24gd2l0aCB0aGUgZGVyaXZlZCByZWNpcGllbnRzIGFuZCB3aXRob3V0IHJiZlR4SWRzXG4gIHJldHVybiBwYXJzZVRyYW5zYWN0aW9uKFxuICAgIGNvaW4sXG4gICAge1xuICAgICAgLi4ucGFyYW1zLFxuICAgICAgdHhQYXJhbXM6IHtcbiAgICAgICAgLi4udHhQYXJhbXMsXG4gICAgICAgIHJlY2lwaWVudHMsXG4gICAgICAgIHJiZlR4SWRzOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgIH0sXG4gICAgYWRkcmVzc0NvZGVjXG4gICk7XG59XG5cbmZ1bmN0aW9uIHRvRXhwZWN0ZWRPdXRwdXRzKFxuICBhZGRyZXNzQ29kZWM6IEFkZHJlc3NDb2RlYyxcbiAgdHhQYXJhbXM6IHtcbiAgICByZWNpcGllbnRzPzogSVRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gICAgYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3M/OiBib29sZWFuO1xuICAgIGNoYW5nZUFkZHJlc3M/OiBzdHJpbmc7XG4gIH1cbik6IEV4cGVjdGVkT3V0cHV0V2l0aEFkZHJlc3NbXSB7XG4gIC8vIHZlcmlmeSB0aGF0IGVhY2ggcmVjaXBpZW50IGZyb20gdHhQYXJhbXMgaGFzIHRoZWlyIG93biBvdXRwdXRcbiAgY29uc3QgZXhwZWN0ZWRPdXRwdXRzOiBFeHBlY3RlZE91dHB1dFdpdGhBZGRyZXNzW10gPSAodHhQYXJhbXMucmVjaXBpZW50cyA/PyBbXSkuZmxhdE1hcCgob3V0cHV0KSA9PiB7XG4gICAgaWYgKG91dHB1dC5hZGRyZXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGFzc2VydCgnc2NyaXB0JyBpbiBvdXRwdXQsICdzY3JpcHQgaXMgcmVxdWlyZWQgZm9yIG5vbi1lbmNvZGVhYmxlIHNjcmlwdFB1YmtleXMnKTtcbiAgICAgIGlmIChvdXRwdXQuYW1vdW50LnRvU3RyaW5nKCkgIT09ICcwJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE9ubHkgemVybyBhbW91bnRzIGFsbG93ZWQgZm9yIG5vbi1lbmNvZGVhYmxlIHNjcmlwdFB1YmtleXM6ICR7b3V0cHV0fWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgIHNjcmlwdDogYWRkcmVzc0NvZGVjLnRvT3V0cHV0U2NyaXB0KG91dHB1dCksXG4gICAgICAgICAgdmFsdWU6IG91dHB1dC5hbW91bnQgPT09ICdtYXgnID8gJ21heCcgOiBCaWdJbnQob3V0cHV0LmFtb3VudCksXG4gICAgICAgIH0sXG4gICAgICBdO1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBzY3JpcHQ6IGFkZHJlc3NDb2RlYy5mcm9tRXh0ZW5kZWRBZGRyZXNzRm9ybWF0VG9TY3JpcHQob3V0cHV0LmFkZHJlc3MpLFxuICAgICAgICB2YWx1ZTogb3V0cHV0LmFtb3VudCA9PT0gJ21heCcgPyAnbWF4JyA6IEJpZ0ludChvdXRwdXQuYW1vdW50KSxcbiAgICAgICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MsXG4gICAgICB9LFxuICAgIF07XG4gIH0pO1xuICBpZiAodHhQYXJhbXMuYWxsb3dFeHRlcm5hbENoYW5nZUFkZHJlc3MgJiYgdHhQYXJhbXMuY2hhbmdlQWRkcmVzcykge1xuICAgIGV4cGVjdGVkT3V0cHV0cy5wdXNoKHtcbiAgICAgIHNjcmlwdDogYWRkcmVzc0NvZGVjLnRvT3V0cHV0U2NyaXB0KHR4UGFyYW1zLmNoYW5nZUFkZHJlc3MpLFxuICAgICAgLy8gV2hlbiBhbiBleHRlcm5hbCBjaGFuZ2UgYWRkcmVzcyBpcyBleHBsaWNpdGx5IHNwZWNpZmllZCwgY291bnQgYWxsIG91dHB1dHMgZ29pbmcgdG93YXJkcyB0aGF0XG4gICAgICAvLyBhZGRyZXNzIGluIHRoZSBleHBlY3RlZCBvdXRwdXRzIChyZWdhcmRsZXNzIG9mIHRoZSBvdXRwdXQgYW1vdW50KVxuICAgICAgdmFsdWU6ICdtYXgnLFxuICAgICAgLy8gTm90ZSB0aGF0IHRoZSBjaGFuZ2Ugb3V0cHV0IGlzIG5vdCByZXF1aXJlZCB0byBleGlzdCwgc28gd2UgbWFyayBpdCBhcyBvcHRpb25hbC5cbiAgICAgIG9wdGlvbmFsOiB0cnVlLFxuICAgICAgYWRkcmVzczogdHhQYXJhbXMuY2hhbmdlQWRkcmVzcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gZXhwZWN0ZWRPdXRwdXRzO1xufVxuXG5mdW5jdGlvbiB2ZXJpZnlDdXN0b21DaGFuZ2VLZXlzKHVzZXJLZXljaGFpbjogVXR4b0tleWNoYWluLCBjdXN0b21DaGFuZ2U6IEN1c3RvbUNoYW5nZU9wdGlvbnMpOiB2b2lkIHtcbiAgZm9yIChjb25zdCBrZXlJbmRleCBvZiBbS2V5SW5kaWNlcy5VU0VSLCBLZXlJbmRpY2VzLkJBQ0tVUCwgS2V5SW5kaWNlcy5CSVRHT10pIHtcbiAgICBpZiAoXG4gICAgICAhdmVyaWZ5S2V5U2lnbmF0dXJlKHtcbiAgICAgICAgdXNlcktleWNoYWluLFxuICAgICAgICBrZXljaGFpblRvVmVyaWZ5OiBjdXN0b21DaGFuZ2Uua2V5c1trZXlJbmRleF0sXG4gICAgICAgIGtleVNpZ25hdHVyZTogY3VzdG9tQ2hhbmdlLnNpZ25hdHVyZXNba2V5SW5kZXhdLFxuICAgICAgfSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZmFpbGVkIHRvIHZlcmlmeSBjdXN0b20gY2hhbmdlICR7S2V5SW5kaWNlc1trZXlJbmRleF0udG9Mb3dlckNhc2UoKX0ga2V5IHNpZ25hdHVyZWApO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VUcmFuc2FjdGlvbjxUTnVtYmVyIGV4dGVuZHMgYmlnaW50IHwgbnVtYmVyPihcbiAgY29pbjogQWJzdHJhY3RVdHhvQ29pbixcbiAgcGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9uczxUTnVtYmVyPixcbiAgYWRkcmVzc0NvZGVjOiBBZGRyZXNzQ29kZWMgPSBjb2luLmFkZHJlc3NDb2RlY1xuKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbjxUTnVtYmVyPj4ge1xuICBjb25zdCB7IHR4UGFyYW1zLCB0eFByZWJ1aWxkLCB3YWxsZXQsIHZlcmlmaWNhdGlvbiA9IHt9LCByZXFJZCB9ID0gcGFyYW1zO1xuXG4gIC8vIEJyYW5jaCBvZmYgZWFybHkgZm9yIFJCRiB0cmFuc2FjdGlvbnNcbiAgaWYgKHR4UGFyYW1zLnJiZlR4SWRzKSB7XG4gICAgcmV0dXJuIHBhcnNlUmJmVHJhbnNhY3Rpb24oY29pbiwgcGFyYW1zLCBhZGRyZXNzQ29kZWMpO1xuICB9XG5cbiAgaWYgKCFfLmlzVW5kZWZpbmVkKHZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZykgJiYgIV8uaXNCb29sZWFuKHZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZlcmlmaWNhdGlvbi5kaXNhYmxlTmV0d29ya2luZyBtdXN0IGJlIGEgYm9vbGVhbicpO1xuICB9XG4gIGNvbnN0IGRpc2FibGVOZXR3b3JraW5nID0gdmVyaWZpY2F0aW9uLmRpc2FibGVOZXR3b3JraW5nO1xuXG4gIC8vIG9idGFpbiB0aGUga2V5Y2hhaW5zIGFuZCBrZXkgc2lnbmF0dXJlc1xuICBsZXQga2V5Y2hhaW5zOiBVdHhvTmFtZWRLZXljaGFpbnMgfCBWZXJpZmljYXRpb25PcHRpb25zWydrZXljaGFpbnMnXSB8IHVuZGVmaW5lZCA9IHZlcmlmaWNhdGlvbi5rZXljaGFpbnM7XG4gIGlmICgha2V5Y2hhaW5zKSB7XG4gICAgaWYgKGRpc2FibGVOZXR3b3JraW5nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nhbm5vdCBmZXRjaCBrZXljaGFpbnMgd2l0aG91dCBuZXR3b3JraW5nJyk7XG4gICAgfVxuICAgIGtleWNoYWlucyA9IGF3YWl0IGZldGNoS2V5Y2hhaW5zKGNvaW4sIHdhbGxldCwgcmVxSWQpO1xuICB9XG5cbiAgaWYgKCFVdHhvTmFtZWRLZXljaGFpbnMuaXMoa2V5Y2hhaW5zKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBrZXljaGFpbnMnKTtcbiAgfVxuXG4gIGNvbnN0IGtleWNoYWluQXJyYXk6IFRyaXBsZTxVdHhvS2V5Y2hhaW4+ID0gdG9LZXljaGFpblRyaXBsZShrZXljaGFpbnMpO1xuXG4gIGNvbnN0IGVmZmVjdGl2ZVR4SGV4ID0gdHhQcmVidWlsZC50eEhleFBzYnQgPz8gdHhQcmVidWlsZC50eEhleDtcbiAgaWYgKF8uaXNVbmRlZmluZWQoZWZmZWN0aXZlVHhIZXgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtaXNzaW5nIHJlcXVpcmVkIHR4UHJlYnVpbGQgcHJvcGVydHkgdHhIZXgnKTtcbiAgfVxuXG4gIGNvbnN0IGV4cGVjdGVkT3V0cHV0cyA9IHRvRXhwZWN0ZWRPdXRwdXRzKGFkZHJlc3NDb2RlYywgdHhQYXJhbXMpO1xuXG4gIC8vIGdldCB0aGUga2V5Y2hhaW5zIGZyb20gdGhlIGN1c3RvbSBjaGFuZ2Ugd2FsbGV0IGlmIG5lZWRlZFxuICBsZXQgY3VzdG9tQ2hhbmdlOiBDdXN0b21DaGFuZ2VPcHRpb25zIHwgdW5kZWZpbmVkO1xuICBjb25zdCB7IGN1c3RvbUNoYW5nZVdhbGxldElkID0gdW5kZWZpbmVkIH0gPSB3YWxsZXQuY29pblNwZWNpZmljKCkgfHwge307XG4gIGlmIChjdXN0b21DaGFuZ2VXYWxsZXRJZCkge1xuICAgIC8vIGZldGNoIGtleWNoYWlucyBmcm9tIGN1c3RvbSBjaGFuZ2Ugd2FsbGV0IGZvciBkZXJpdmluZyBhZGRyZXNzZXMuXG4gICAgLy8gVGhlc2Uga2V5Y2hhaW5zIHNob3VsZCBiZSBzaWduZWQgYW5kIHRoaXMgc2hvdWxkIGJlIHZlcmlmaWVkIGluIHZlcmlmeVRyYW5zYWN0aW9uXG4gICAgY29uc3QgY3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlcyA9IHdhbGxldC5fd2FsbGV0LmN1c3RvbUNoYW5nZUtleVNpZ25hdHVyZXM7XG4gICAgY29uc3QgY3VzdG9tQ2hhbmdlV2FsbGV0OiBXYWxsZXQgPSBhd2FpdCBjb2luLndhbGxldHMoKS5nZXQoeyBpZDogY3VzdG9tQ2hhbmdlV2FsbGV0SWQgfSk7XG4gICAgY29uc3QgY3VzdG9tQ2hhbmdlS2V5cyA9IGF3YWl0IGZldGNoS2V5Y2hhaW5zKGNvaW4sIGN1c3RvbUNoYW5nZVdhbGxldCwgcmVxSWQpO1xuXG4gICAgaWYgKCFjdXN0b21DaGFuZ2VLZXlzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ZhaWxlZCB0byBmZXRjaCBrZXljaGFpbnMgZm9yIGN1c3RvbSBjaGFuZ2Ugd2FsbGV0Jyk7XG4gICAgfVxuXG4gICAgaWYgKGN1c3RvbUNoYW5nZUtleXMudXNlciAmJiBjdXN0b21DaGFuZ2VLZXlzLmJhY2t1cCAmJiBjdXN0b21DaGFuZ2VLZXlzLmJpdGdvICYmIGN1c3RvbUNoYW5nZVdhbGxldCkge1xuICAgICAgY29uc3QgY3VzdG9tQ2hhbmdlS2V5Y2hhaW5zOiBUcmlwbGU8VXR4b0tleWNoYWluPiA9IFtcbiAgICAgICAgY3VzdG9tQ2hhbmdlS2V5cy51c2VyLFxuICAgICAgICBjdXN0b21DaGFuZ2VLZXlzLmJhY2t1cCxcbiAgICAgICAgY3VzdG9tQ2hhbmdlS2V5cy5iaXRnbyxcbiAgICAgIF07XG5cbiAgICAgIGN1c3RvbUNoYW5nZSA9IHtcbiAgICAgICAga2V5czogY3VzdG9tQ2hhbmdlS2V5Y2hhaW5zLFxuICAgICAgICBzaWduYXR1cmVzOiBbY3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlcy51c2VyLCBjdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVzLmJhY2t1cCwgY3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlcy5iaXRnb10sXG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIGxldCBjdXN0b21DaGFuZ2VYcHViczogVHJpcGxlPHN0cmluZz4gfCB1bmRlZmluZWQ7XG4gIGlmIChjdXN0b21DaGFuZ2UpIHtcbiAgICB2ZXJpZnlDdXN0b21DaGFuZ2VLZXlzKGtleWNoYWluQXJyYXlbS2V5SW5kaWNlcy5VU0VSXSwgY3VzdG9tQ2hhbmdlKTtcbiAgICBjdXN0b21DaGFuZ2VYcHVicyA9IHRvWHB1YlRyaXBsZShjdXN0b21DaGFuZ2Uua2V5cyk7XG4gIH1cblxuICAvLyBvYnRhaW4gYWxsIG91dHB1dHNcbiAgY29uc3QgZXhwbGFuYXRpb246IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gPSBhd2FpdCBjb2luLmV4cGxhaW5UcmFuc2FjdGlvbjxUTnVtYmVyPih7XG4gICAgdHhIZXg6IGVmZmVjdGl2ZVR4SGV4LFxuICAgIHR4SW5mbzogdHhQcmVidWlsZC50eEluZm8sXG4gICAgcHViczoga2V5Y2hhaW5BcnJheS5tYXAoKGspID0+IGsucHViKSBhcyBUcmlwbGU8c3RyaW5nPixcbiAgICBjdXN0b21DaGFuZ2VYcHVicyxcbiAgfSk7XG5cbiAgY29uc3QgYWxsT3V0cHV0cyA9IFsuLi5leHBsYW5hdGlvbi5vdXRwdXRzLCAuLi5leHBsYW5hdGlvbi5jaGFuZ2VPdXRwdXRzXTtcblxuICAvKipcbiAgICogTG9vcCB0aHJvdWdoIGFsbCB0aGUgb3V0cHV0cyBhbmQgY2xhc3NpZnkgZWFjaCBvZiB0aGVtIGFzIGVpdGhlciBpbnRlcm5hbCBzcGVuZHNcbiAgICogb3IgZXh0ZXJuYWwgc3BlbmRzIGJ5IHNldHRpbmcgdGhlIFwiZXh0ZXJuYWxcIiBwcm9wZXJ0eSB0byB0cnVlIG9yIGZhbHNlIG9uIHRoZSBvdXRwdXQgb2JqZWN0LlxuICAgKi9cbiAgY29uc3QgYWxsT3V0cHV0RGV0YWlsczogT3V0cHV0W10gPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICBhbGxPdXRwdXRzLm1hcCgoY3VycmVudE91dHB1dCkgPT4ge1xuICAgICAgcmV0dXJuIHBhcnNlT3V0cHV0KHtcbiAgICAgICAgY3VycmVudE91dHB1dCxcbiAgICAgICAgY29pbixcbiAgICAgICAgdHhQcmVidWlsZCxcbiAgICAgICAgdmVyaWZpY2F0aW9uLFxuICAgICAgICBrZXljaGFpbkFycmF5OiB0b0tleWNoYWluVHJpcGxlKGtleWNoYWlucyksXG4gICAgICAgIHdhbGxldCxcbiAgICAgICAgYWRkcmVzc0NvZGVjLFxuICAgICAgICB0eFBhcmFtczoge1xuICAgICAgICAgIHJlY2lwaWVudHM6IHR4UGFyYW1zLnJlY2lwaWVudHMgPz8gW10sXG4gICAgICAgICAgY2hhbmdlQWRkcmVzczogdHhQYXJhbXMuY2hhbmdlQWRkcmVzcyxcbiAgICAgICAgfSxcbiAgICAgICAgY3VzdG9tQ2hhbmdlLFxuICAgICAgICByZXFJZCxcbiAgICAgIH0pO1xuICAgIH0pXG4gICk7XG5cbiAgY29uc3QgbmVlZHNDdXN0b21DaGFuZ2VLZXlTaWduYXR1cmVWZXJpZmljYXRpb24gPSBhbGxPdXRwdXREZXRhaWxzLnNvbWUoXG4gICAgKG91dHB1dCkgPT4gKG91dHB1dCBhcyBGaXhlZFNjcmlwdFdhbGxldE91dHB1dCk/Lm5lZWRzQ3VzdG9tQ2hhbmdlS2V5U2lnbmF0dXJlVmVyaWZpY2F0aW9uXG4gICk7XG5cbiAgY29uc3QgY2hhbmdlT3V0cHV0cyA9IF8uZmlsdGVyKGFsbE91dHB1dERldGFpbHMsIHsgZXh0ZXJuYWw6IGZhbHNlIH0pO1xuXG4gIGZ1bmN0aW9uIHRvQ29tcGFyYWJsZU91dHB1dHNXaXRoRXh0ZXJuYWwob3V0cHV0czogT3V0cHV0W10pOiBDb21wYXJhYmxlT3V0cHV0V2l0aEFkZHJlc3M8YmlnaW50IHwgJ21heCc+W10ge1xuICAgIHJldHVybiBvdXRwdXRzLm1hcCgob3V0cHV0KSA9PiAoe1xuICAgICAgLy8gQ2hhbmdlL2N1c3RvbS1jaGFuZ2Ugb3V0cHV0cyBhcmUgYWx3YXlzIHRyYW5zcGFyZW50IHdhbGxldCBhZGRyZXNzZXMuXG4gICAgICBzY3JpcHQ6IG91dHB1dC5leHRlcm5hbFxuICAgICAgICA/IGFkZHJlc3NDb2RlYy5mcm9tRXh0ZW5kZWRBZGRyZXNzRm9ybWF0VG9TY3JpcHQob3V0cHV0LmFkZHJlc3MpXG4gICAgICAgIDogQnVmZmVyLmZyb20oYWRkcmVzc0NvZGVjLmRlY29kZUNoYW5nZUFkZHJlc3Mob3V0cHV0LmFkZHJlc3MpKSxcbiAgICAgIHZhbHVlOiBvdXRwdXQuYW1vdW50ID09PSAnbWF4JyA/ICdtYXgnIDogKEJpZ0ludChvdXRwdXQuYW1vdW50KSBhcyBiaWdpbnQgfCAnbWF4JyksXG4gICAgICBleHRlcm5hbDogb3V0cHV0LmV4dGVybmFsLFxuICAgICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MsXG4gICAgfSkpO1xuICB9XG5cbiAgY29uc3QgbWlzc2luZ091dHB1dHMgPSBvdXRwdXREaWZmZXJlbmNlKGV4cGVjdGVkT3V0cHV0cywgdG9Db21wYXJhYmxlT3V0cHV0c1dpdGhFeHRlcm5hbChhbGxPdXRwdXRzKSk7XG5cbiAgY29uc3QgaW1wbGljaXRPdXRwdXRzID0gb3V0cHV0RGlmZmVyZW5jZSh0b0NvbXBhcmFibGVPdXRwdXRzV2l0aEV4dGVybmFsKGFsbE91dHB1dERldGFpbHMpLCBleHBlY3RlZE91dHB1dHMpO1xuICBjb25zdCBleHBsaWNpdE91dHB1dHMgPSBvdXRwdXREaWZmZXJlbmNlKHRvQ29tcGFyYWJsZU91dHB1dHNXaXRoRXh0ZXJuYWwoYWxsT3V0cHV0RGV0YWlscyksIGltcGxpY2l0T3V0cHV0cyk7XG5cbiAgLy8gdGhlc2UgYXJlIGFsbCB0aGUgbm9uLXdhbGxldCBvdXRwdXRzIHRoYXQgaGFkIGJlZW4gb3JpZ2luYWxseSBleHBsaWNpdGx5IHNwZWNpZmllZCBpbiByZWNpcGllbnRzXG4gIGNvbnN0IGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzID0gZXhwbGljaXRPdXRwdXRzLmZpbHRlcigob3V0cHV0KSA9PiBvdXRwdXQuZXh0ZXJuYWwpO1xuICAvLyB0aGlzIGlzIHRoZSBzdW0gb2YgYWxsIHRoZSBvcmlnaW5hbGx5IGV4cGxpY2l0bHkgc3BlY2lmaWVkIG5vbi13YWxsZXQgb3V0cHV0IHZhbHVlc1xuICBjb25zdCBleHBsaWNpdEV4dGVybmFsU3BlbmRBbW91bnQgPSB0b1ROdW1iZXIoXG4gICAgZXhwbGljaXRFeHRlcm5hbE91dHB1dHMucmVkdWNlKChzdW06IGJpZ2ludCwgbykgPT4gc3VtICsgQmlnSW50KG8udmFsdWUpLCBCaWdJbnQoMCkpLFxuICAgIGNvaW4uYW1vdW50VHlwZVxuICApIGFzIFROdW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgaW1wbGljaXQgZXh0ZXJuYWwgc3BlbmQgYW1vdW50IHBlcnRhaW5zIHRvIHZlcmlmeWluZyB0aGUgcGF5LWFzLXlvdS1nby1mZWUgQml0R29cbiAgICogYXV0b21hdGljYWxseSBhcHBsaWVkIHRvIHRyYW5zYWN0aW9ucyBzZW5kaW5nIG1vbmV5IG91dCBvZiB0aGUgd2FsbGV0LiBUaGUgbG9naWMgaXMgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZFxuICAgKiBpbiB0aGF0IHdlIGNvbXBhcmUgdGhlIGV4dGVybmFsIHNwZW5kIGFtb3VudCB0aGF0IHdhcyBzcGVjaWZpZWQgZXhwbGljaXRseSBieSB0aGUgdXNlciB0byB0aGUgcG9ydGlvblxuICAgKiB0aGF0IHdhcyBzcGVjaWZpZWQgaW1wbGljaXRseS4gVG8gcHJvdGVjdCBjdXN0b21lcnMgZnJvbSBwZW9wbGUgdGFtcGVyaW5nIHdpdGggdGhlIHRyYW5zYWN0aW9uIG91dHB1dHMsIHdlXG4gICAqIGRlZmluZSBhIHRocmVzaG9sZCBmb3IgdGhlIG1heGltdW0gcGVyY2VudGFnZSBvZiB0aGUgaW1wbGljaXQgZXh0ZXJuYWwgc3BlbmQgaW4gcmVsYXRpb24gdG8gdGhlIGV4cGxpY2l0XG4gICAqIGV4dGVybmFsIHNwZW5kLlxuICAgKlxuICAgKiBUaGlzIGhhcyBiZWNvbWUgb2Jzb2xldGUgd2l0aCB0aGUgaW50b2R1Y3Rpb24gb2YgYHV0eG9jb3JlLnBheWdvLnZlcmlmeVBheUdvQWRkcmVzc1Byb29mKClgLlxuICAgKi9cbiAgLy8gbWFrZSBzdXJlIHRoYXQgYWxsIHRoZSBleHRyYSBhZGRyZXNzZXMgYXJlIGNoYW5nZSBhZGRyZXNzZXNcbiAgLy8gZ2V0IGFsbCB0aGUgYWRkaXRpb25hbCBleHRlcm5hbCBvdXRwdXRzIHRoZSBzZXJ2ZXIgYWRkZWQgYW5kIGNhbGN1bGF0ZSB0aGVpciB2YWx1ZXNcbiAgY29uc3QgaW1wbGljaXRFeHRlcm5hbE91dHB1dHMgPSBpbXBsaWNpdE91dHB1dHMuZmlsdGVyKChvdXRwdXQpID0+IG91dHB1dC5leHRlcm5hbCk7XG4gIGNvbnN0IGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCA9IHRvVE51bWJlcihcbiAgICBpbXBsaWNpdEV4dGVybmFsT3V0cHV0cy5yZWR1Y2UoKHN1bTogYmlnaW50LCBvKSA9PiBzdW0gKyBCaWdJbnQoby52YWx1ZSksIEJpZ0ludCgwKSksXG4gICAgY29pbi5hbW91bnRUeXBlXG4gICkgYXMgVE51bWJlcjtcblxuICBmdW5jdGlvbiB0b091dHB1dHMob3V0cHV0czogRXhwZWN0ZWRPdXRwdXRXaXRoQWRkcmVzc1tdIHwgQ29tcGFyYWJsZU91dHB1dFdpdGhBZGRyZXNzPGJpZ2ludCB8ICdtYXgnPltdKTogT3V0cHV0W10ge1xuICAgIHJldHVybiBvdXRwdXRzLm1hcCgob3V0cHV0KSA9PiAoe1xuICAgICAgYWRkcmVzczogYWRkcmVzc0NvZGVjLnRvRXh0ZW5kZWRBZGRyZXNzRm9ybWF0KG91dHB1dC5zY3JpcHQsIG91dHB1dC5hZGRyZXNzKSxcbiAgICAgIGFtb3VudDogb3V0cHV0LnZhbHVlLnRvU3RyaW5nKCksXG4gICAgICBleHRlcm5hbDogb3V0cHV0LmV4dGVybmFsLFxuICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAga2V5Y2hhaW5zLFxuICAgIGtleVNpZ25hdHVyZXM6IGdldEtleVNpZ25hdHVyZXMod2FsbGV0KSA/PyB7fSxcbiAgICBvdXRwdXRzOiBhbGxPdXRwdXREZXRhaWxzLFxuICAgIG1pc3NpbmdPdXRwdXRzOiB0b091dHB1dHMobWlzc2luZ091dHB1dHMpLFxuICAgIGV4cGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiB0b091dHB1dHMoZXhwbGljaXRFeHRlcm5hbE91dHB1dHMpLFxuICAgIGltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzOiB0b091dHB1dHMoaW1wbGljaXRFeHRlcm5hbE91dHB1dHMpLFxuICAgIGNoYW5nZU91dHB1dHMsXG4gICAgZXhwbGljaXRFeHRlcm5hbFNwZW5kQW1vdW50LFxuICAgIGltcGxpY2l0RXh0ZXJuYWxTcGVuZEFtb3VudCxcbiAgICBuZWVkc0N1c3RvbUNoYW5nZUtleVNpZ25hdHVyZVZlcmlmaWNhdGlvbixcbiAgICBjdXN0b21DaGFuZ2UsXG4gIH07XG59XG4iXX0=
|
|
@@ -3,6 +3,13 @@ import { Musig2Participant } from './musig2';
|
|
|
3
3
|
export type ReplayProtectionKeys = {
|
|
4
4
|
publicKeys: (Uint8Array | ECPair)[];
|
|
5
5
|
};
|
|
6
|
+
/**
|
|
7
|
+
* Verify signatures on all signed inputs, per-input for granular error reporting.
|
|
8
|
+
* Shared by the generic wasm signing path and Zec's Ironwood (v6) signing path.
|
|
9
|
+
*/
|
|
10
|
+
export declare function verifyPsbtSignaturesWasm(tx: fixedScriptWallet.BitGoPsbt, wasmSigner: BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys): void;
|
|
11
|
+
/** Embed the wasm-utxo version metadata into the signed PSBT. Shared by all wasm signing paths. */
|
|
12
|
+
export declare function writeWasmUtxoSignedWithKv(tx: fixedScriptWallet.BitGoPsbt): void;
|
|
6
13
|
/**
|
|
7
14
|
* Sign all inputs of a PSBT and verify signatures after signing.
|
|
8
15
|
* Uses bulk signing for performance (signs all matching inputs in one pass).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signPsbtWasm.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/signPsbtWasm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAsB,MAAM,kBAAkB,CAAC;AAG/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;CACrC,CAAC;AAmBF;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,EAAE,eAAuB,EAAE,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9D,iBAAiB,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"signPsbtWasm.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/signPsbtWasm.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAsB,MAAM,kBAAkB,CAAC;AAG/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;CACrC,CAAC;AAmBF;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,UAAU,EAAE,KAAK,EACjB,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,GACrC,IAAI,CAyBN;AAED,mGAAmG;AACnG,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,iBAAiB,CAAC,SAAS,GAAG,IAAI,CAS/E;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,EAAE,eAAuB,EAAE,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC9D,iBAAiB,CAAC,SAAS,CAiB7B;AAED,wBAAsB,iCAAiC,CACrD,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EACpD,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EAChD,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,MAAM,EAAE;IACN,gBAAgB,EAAE,oBAAoB,CAAC;IACvC,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAmDtC"}
|
|
@@ -3,6 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.verifyPsbtSignaturesWasm = verifyPsbtSignaturesWasm;
|
|
7
|
+
exports.writeWasmUtxoSignedWithKv = writeWasmUtxoSignedWithKv;
|
|
6
8
|
exports.signAndVerifyPsbtWasm = signAndVerifyPsbtWasm;
|
|
7
9
|
exports.signPsbtWithMusig2ParticipantWasm = signPsbtWithMusig2ParticipantWasm;
|
|
8
10
|
const assert_1 = __importDefault(require("assert"));
|
|
@@ -23,20 +25,10 @@ function hasKeyPathSpendInput(tx, rootWalletKeys, replayProtection) {
|
|
|
23
25
|
return parsed.inputs.some((input) => input.scriptType === 'p2trMusig2KeyPath');
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
* Collects and logs signing errors and verification errors, throws error in the end if any of them failed.
|
|
28
|
+
* Verify signatures on all signed inputs, per-input for granular error reporting.
|
|
29
|
+
* Shared by the generic wasm signing path and Zec's Ironwood (v6) signing path.
|
|
29
30
|
*/
|
|
30
|
-
function
|
|
31
|
-
const wasmSigner = toWasmBIP32(signerKeychain);
|
|
32
|
-
// Bulk sign all wallet inputs (ECDSA + MuSig2) - much faster than per-input signing
|
|
33
|
-
try {
|
|
34
|
-
tx.sign(wasmSigner);
|
|
35
|
-
}
|
|
36
|
-
catch (e) {
|
|
37
|
-
throw new SigningError_1.BulkSigningError(e);
|
|
38
|
-
}
|
|
39
|
-
// Verify signatures for all signed inputs (still per-input for granular error reporting)
|
|
31
|
+
function verifyPsbtSignaturesWasm(tx, wasmSigner, rootWalletKeys, replayProtection) {
|
|
40
32
|
const parsed = tx.parseTransactionWithWalletKeys(rootWalletKeys, { replayProtection });
|
|
41
33
|
const verifyErrors = [];
|
|
42
34
|
parsed.inputs.forEach((input, inputIndex) => {
|
|
@@ -57,13 +49,33 @@ function signAndVerifyPsbtWasm(tx, signerKeychain, rootWalletKeys, replayProtect
|
|
|
57
49
|
if (verifyErrors.length) {
|
|
58
50
|
throw new SigningError_1.TransactionSigningError([], verifyErrors);
|
|
59
51
|
}
|
|
52
|
+
}
|
|
53
|
+
/** Embed the wasm-utxo version metadata into the signed PSBT. Shared by all wasm signing paths. */
|
|
54
|
+
function writeWasmUtxoSignedWithKv(tx) {
|
|
55
|
+
const versionInfo = (0, wasm_utxo_1.getWasmUtxoVersion)();
|
|
56
|
+
const versionPayload = new TextEncoder().encode(JSON.stringify({
|
|
57
|
+
version: versionInfo.version,
|
|
58
|
+
gitHash: versionInfo.gitHash,
|
|
59
|
+
}));
|
|
60
|
+
tx.setKV({ type: 'bitgo', subtype: wasm_utxo_1.fixedScriptWallet.BitGoKeySubtype.WasmUtxoSignedWith }, versionPayload);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Sign all inputs of a PSBT and verify signatures after signing.
|
|
64
|
+
* Uses bulk signing for performance (signs all matching inputs in one pass).
|
|
65
|
+
* Collects and logs signing errors and verification errors, throws error in the end if any of them failed.
|
|
66
|
+
*/
|
|
67
|
+
function signAndVerifyPsbtWasm(tx, signerKeychain, rootWalletKeys, replayProtection, { writeSignedWith = false } = {}) {
|
|
68
|
+
const wasmSigner = toWasmBIP32(signerKeychain);
|
|
69
|
+
// Bulk sign all wallet inputs (ECDSA + MuSig2) - much faster than per-input signing
|
|
70
|
+
try {
|
|
71
|
+
tx.sign(wasmSigner);
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
throw new SigningError_1.BulkSigningError(e);
|
|
75
|
+
}
|
|
76
|
+
verifyPsbtSignaturesWasm(tx, wasmSigner, rootWalletKeys, replayProtection);
|
|
60
77
|
if (writeSignedWith) {
|
|
61
|
-
|
|
62
|
-
const versionPayload = new TextEncoder().encode(JSON.stringify({
|
|
63
|
-
version: versionInfo.version,
|
|
64
|
-
gitHash: versionInfo.gitHash,
|
|
65
|
-
}));
|
|
66
|
-
tx.setKV({ type: 'bitgo', subtype: wasm_utxo_1.fixedScriptWallet.BitGoKeySubtype.WasmUtxoSignedWith }, versionPayload);
|
|
78
|
+
writeWasmUtxoSignedWithKv(tx);
|
|
67
79
|
}
|
|
68
80
|
return tx;
|
|
69
81
|
}
|
|
@@ -115,4 +127,4 @@ async function signPsbtWithMusig2ParticipantWasm(coin, tx, signerKeychain, rootW
|
|
|
115
127
|
writeSignedWith: params.writeSignedWith,
|
|
116
128
|
});
|
|
117
129
|
}
|
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnRXYXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25Qc2J0V2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXFDQSxzREFzREM7QUFFRCw4RUE4REM7QUEzSkQsb0RBQTRCO0FBRTVCLGdEQUErRjtBQUUvRixpREFBOEY7QUFHOUYsU0FBUyxXQUFXLENBQUMsR0FBaUM7SUFDcEQsT0FBTyxHQUFHLFlBQVksaUJBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxpQkFBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBTUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsRUFBdUMsQ0FBQztBQUV2RSxTQUFTLG9CQUFvQixDQUMzQixFQUErQixFQUMvQixjQUFnRCxFQUNoRCxnQkFBc0M7SUFFdEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLDhCQUE4QixDQUFDLGNBQWMsRUFBRSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN2RixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLG1CQUFtQixDQUFDLENBQUM7QUFDakYsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsRUFBK0IsRUFDL0IsY0FBNEMsRUFDNUMsY0FBZ0QsRUFDaEQsZ0JBQXNDLEVBQ3RDLEVBQUUsZUFBZSxHQUFHLEtBQUssS0FBb0MsRUFBRTtJQUUvRCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFL0Msb0ZBQW9GO0lBQ3BGLElBQUksQ0FBQztRQUNILEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFD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QixLQUFLLGVBQWU7Z0JBQ2xCOzs7bUJBR0c7Z0JBQ0gsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUEsZ0JBQU0sRUFBQyxjQUFjLENBQUMsQ0FBQztJQUN2QixPQUFPLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRTtRQUN4RixlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWU7S0FDeEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0IHsgQklQMzIsIGJpcDMyLCBFQ1BhaXIsIGZpeGVkU2NyaXB0V2FsbGV0LCBnZXRXYXNtVXR4b1ZlcnNpb24gfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuaW1wb3J0IHsgQnVsa1NpZ25pbmdFcnJvciwgSW5wdXRTaWduaW5nRXJyb3IsIFRyYW5zYWN0aW9uU2lnbmluZ0Vycm9yIH0gZnJvbSAnLi9TaWduaW5nRXJyb3InO1xuaW1wb3J0IHsgTXVzaWcyUGFydGljaXBhbnQgfSBmcm9tICcuL211c2lnMic7XG5cbmZ1bmN0aW9uIHRvV2FzbUJJUDMyKGtleTogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCBCSVAzMik6IEJJUDMyIHtcbiAgcmV0dXJuIGtleSBpbnN0YW5jZW9mIEJJUDMyID8ga2V5IDogQklQMzIuZnJvbUJhc2U1OChrZXkudG9CYXNlNTgoKSk7XG59XG5cbmV4cG9ydCB0eXBlIFJlcGxheVByb3RlY3Rpb25LZXlzID0ge1xuICBwdWJsaWNLZXlzOiAoVWludDhBcnJheSB8IEVDUGFpcilbXTtcbn07XG5cbi8qKlxuICogS2V5IFZhbHVlOiBVbnNpZ25lZCB0eCBpZCA9PiBQU0JUXG4gKiBJdCBpcyB1c2VkIHRvIGNhY2hlIFBTQlRzIHdpdGggdGFwcm9vdCBrZXkgcGF0aCAoTXVTaWcyKSBpbnB1dHMgZHVyaW5nIGV4dGVybmFsIGV4cHJlc3Mgc2lnbmVyIGlzIGFjdGl2YXRlZC5cbiAqIFJlYXNvbjogTXVTaWcyIHNpZ25lciBzZWN1cmUgbm9uY2UgaXMgY2FjaGVkIGluIHRoZSBCaXRHb1BzYnQgb2JqZWN0LiBJdCB3aWxsIGJlIHJlcXVpcmVkIGR1cmluZyB0aGUgc2lnbmluZyBzdGVwLlxuICogRm9yIG1vcmUgaW5mbywgY2hlY2sgU2lnblRyYW5zYWN0aW9uT3B0aW9ucy5zaWduaW5nU3RlcFxuICovXG5jb25zdCBQU0JUX0NBQ0hFX1dBU00gPSBuZXcgTWFwPHN0cmluZywgZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0PigpO1xuXG5mdW5jdGlvbiBoYXNLZXlQYXRoU3BlbmRJbnB1dChcbiAgdHg6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5c1xuKTogYm9vbGVhbiB7XG4gIGNvbnN0IHBhcnNlZCA9IHR4LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyhyb290V2FsbGV0S2V5cywgeyByZXBsYXlQcm90ZWN0aW9uIH0pO1xuICByZXR1cm4gcGFyc2VkLmlucHV0cy5zb21lKChpbnB1dCkgPT4gaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzJLZXlQYXRoJyk7XG59XG5cbi8qKlxuICogU2lnbiBhbGwgaW5wdXRzIG9mIGEgUFNCVCBhbmQgdmVyaWZ5IHNpZ25hdHVyZXMgYWZ0ZXIgc2lnbmluZy5cbiAqIFVzZXMgYnVsayBzaWduaW5nIGZvciBwZXJmb3JtYW5jZSAoc2lnbnMgYWxsIG1hdGNoaW5nIGlucHV0cyBpbiBvbmUgcGFzcykuXG4gKiBDb2xsZWN0cyBhbmQgbG9ncyBzaWduaW5nIGVycm9ycyBhbmQgdmVyaWZpY2F0aW9uIGVycm9ycywgdGhyb3dzIGVycm9yIGluIHRoZSBlbmQgaWYgYW55IG9mIHRoZW0gZmFpbGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5cyxcbiAgeyB3cml0ZVNpZ25lZFdpdGggPSBmYWxzZSB9OiB7IHdyaXRlU2lnbmVkV2l0aD86IGJvb2xlYW4gfSA9IHt9XG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBjb25zdCB3YXNtU2lnbmVyID0gdG9XYXNtQklQMzIoc2lnbmVyS2V5Y2hhaW4pO1xuXG4gIC8vIEJ1bGsgc2lnbiBhbGwgd2FsbGV0IGlucHV0cyAoRUNEU0EgKyBNdVNpZzIpIC0gbXVjaCBmYXN0ZXIgdGhhbiBwZXItaW5wdXQgc2lnbmluZ1xuICB0cnkge1xuICAgIHR4LnNpZ24od2FzbVNpZ25lcik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgQnVsa1NpZ25pbmdFcnJvcihlKTtcbiAgfVxuXG4gIC8vIFZlcmlmeSBzaWduYXR1cmVzIGZvciBhbGwgc2lnbmVkIGlucHV0cyAoc3RpbGwgcGVyLWlucHV0IGZvciBncmFudWxhciBlcnJvciByZXBvcnRpbmcpXG4gIGNvbnN0IHBhcnNlZCA9IHR4LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyhyb290V2FsbGV0S2V5cywgeyByZXBsYXlQcm90ZWN0aW9uIH0pO1xuICBjb25zdCB2ZXJpZnlFcnJvcnM6IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD5bXSA9IFtdO1xuXG4gIHBhcnNlZC5pbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICBpZiAoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMnBrJykge1xuICAgICAgLy8gU2tpcCByZXBsYXkgcHJvdGVjdGlvbiBpbnB1dHMgLSB0aGV5IGFyZSBwbGF0Zm9ybSBzaWduZWQgb25seVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG91dHB1dElkID0gYCR7aW5wdXQucHJldmlvdXNPdXRwdXQudHhpZH06JHtpbnB1dC5wcmV2aW91c091dHB1dC52b3V0fWA7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghdHgudmVyaWZ5U2lnbmF0dXJlKGlucHV0SW5kZXgsIHdhc21TaWduZXIpKSB7XG4gICAgICAgIHZlcmlmeUVycm9ycy5wdXNoKFxuICAgICAgICAgIG5ldyBJbnB1dFNpZ25pbmdFcnJvcihpbnB1dEluZGV4LCBpbnB1dC5zY3JpcHRUeXBlLCB7IGlkOiBvdXRwdXRJZCB9LCBuZXcgRXJyb3IoJ2ludmFsaWQgc2lnbmF0dXJlJykpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdmVyaWZ5RXJyb3JzLnB1c2gobmV3IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD4oaW5wdXRJbmRleCwgaW5wdXQuc2NyaXB0VHlwZSwgeyBpZDogb3V0cHV0SWQgfSwgZSkpO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHZlcmlmeUVycm9ycy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgVHJhbnNhY3Rpb25TaWduaW5nRXJyb3IoW10sIHZlcmlmeUVycm9ycyk7XG4gIH1cblxuICBpZiAod3JpdGVTaWduZWRXaXRoKSB7XG4gICAgY29uc3QgdmVyc2lvbkluZm8gPSBnZXRXYXNtVXR4b1ZlcnNpb24oKTtcbiAgICBjb25zdCB2ZXJzaW9uUGF5bG9hZCA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShcbiAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgdmVyc2lvbjogdmVyc2lvbkluZm8udmVyc2lvbixcbiAgICAgICAgZ2l0SGFzaDogdmVyc2lvbkluZm8uZ2l0SGFzaCxcbiAgICAgIH0pXG4gICAgKTtcbiAgICB0eC5zZXRLVih7IHR5cGU6ICdiaXRnbycsIHN1YnR5cGU6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvS2V5U3VidHlwZS5XYXNtVXR4b1NpZ25lZFdpdGggfSwgdmVyc2lvblBheWxvYWQpO1xuICB9XG5cbiAgcmV0dXJuIHR4O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2lnblBzYnRXaXRoTXVzaWcyUGFydGljaXBhbnRXYXNtKFxuICBjb2luOiBNdXNpZzJQYXJ0aWNpcGFudDxmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+LFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCB1bmRlZmluZWQsXG4gIHJvb3RXYWxsZXRLZXlzOiBmaXhlZFNjcmlwdFdhbGxldC5Sb290V2FsbGV0S2V5cyxcbiAgcGFyYW1zOiB7XG4gICAgcmVwbGF5UHJvdGVjdGlvbjogUmVwbGF5UHJvdGVjdGlvbktleXM7XG4gICAgc2lnbmluZ1N0ZXA6ICdzaWduZXJOb25jZScgfCAnY29zaWduZXJOb25jZScgfCAnc2lnbmVyU2lnbmF0dXJlJyB8IHVuZGVmaW5lZDtcbiAgICB3YWxsZXRJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIHdyaXRlU2lnbmVkV2l0aD86IGJvb2xlYW47XG4gIH1cbik6IFByb21pc2U8Zml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0PiB7XG4gIGNvbnN0IHdhc21TaWduZXIgPSBzaWduZXJLZXljaGFpbiA/IHRvV2FzbUJJUDMyKHNpZ25lcktleWNoYWluKSA6IHVuZGVmaW5lZDtcblxuICBpZiAoaGFzS2V5UGF0aFNwZW5kSW5wdXQodHgsIHJvb3RXYWxsZXRLZXlzLCBwYXJhbXMucmVwbGF5UHJvdGVjdGlvbikpIHtcbiAgICBzd2l0Y2ggKHBhcmFtcy5zaWduaW5nU3RlcCkge1xuICAgICAgY2FzZSAnc2lnbmVyTm9uY2UnOlxuICAgICAgICBhc3NlcnQod2FzbVNpZ25lcik7XG4gICAgICAgIHR4LmdlbmVyYXRlTXVzaWcyTm9uY2VzKHdhc21TaWduZXIpO1xuICAgICAgICBQU0JUX0NBQ0hFX1dBU00uc2V0KHR4LnVuc2lnbmVkVHhJZCgpLCB0eCk7XG4gICAgICAgIHJldHVybiB0eDtcbiAgICAgIGNhc2UgJ2Nvc2lnbmVyTm9uY2UnOlxuICAgICAgICBhc3NlcnQocGFyYW1zLndhbGxldElkLCAnd2FsbGV0SWQgaXMgcmVxdWlyZWQgZm9yIE11U2lnMiBiaXRnbyBub25jZScpO1xuICAgICAgICByZXR1cm4gYXdhaXQgY29pbi5nZXRNdXNpZzJOb25jZXModHgsIHBhcmFtcy53YWxsZXRJZCk7XG4gICAgICBjYXNlICdzaWduZXJTaWduYXR1cmUnOiB7XG4gICAgICAgIGNvbnN0IHR4SWQgPSB0eC51bnNpZ25lZFR4SWQoKTtcbiAgICAgICAgY29uc3QgY2FjaGVkUHNidCA9IFBTQlRfQ0FDSEVfV0FTTS5nZXQodHhJZCk7XG4gICAgICAgIGFzc2VydChcbiAgICAgICAgICBjYWNoZWRQc2J0LFxuICAgICAgICAgIGBQc2J0IGlzIG1pc3NpbmcgZnJvbSB0eENhY2hlIChjYWNoZSBzaXplICR7UFNCVF9DQUNIRV9XQVNNLnNpemV9KS5cbiAgICAgICAgICAgIFRoaXMgbWF5IGJlIGR1ZSB0byB0aGUgcmVxdWVzdCBiZWluZyByb3V0ZWQgdG8gYSBkaWZmZXJlbnQgQml0R28tRXhwcmVzcyBpbnN0YW5jZSB0aGF0IGZvciBzaWduaW5nIHN0ZXAgJ3NpZ25lck5vbmNlJy5gXG4gICAgICAgICk7XG4gICAgICAgIFBTQlRfQ0FDSEVfV0FTTS5kZWxldGUodHhJZCk7XG4gICAgICAgIGNhY2hlZFBzYnQuY29tYmluZU11c2lnMk5vbmNlcyh0eCk7XG4gICAgICAgIHR4ID0gY2FjaGVkUHNidDtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyB0aGlzIGluc3RhbmNlIGlzIG5vdCBhbiBleHRlcm5hbCBzaWduZXJcbiAgICAgICAgYXNzZXJ0KHBhcmFtcy53YWxsZXRJZCwgJ3dhbGxldElkIGlzIHJlcXVpcmVkIGZvciBNdVNpZzIgYml0Z28gbm9uY2UnKTtcbiAgICAgICAgYXNzZXJ0KHdhc21TaWduZXIpO1xuICAgICAgICB0eC5nZW5lcmF0ZU11c2lnMk5vbmNlcyh3YXNtU2lnbmVyKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjb2luLmdldE11c2lnMk5vbmNlcyh0eCwgcGFyYW1zLndhbGxldElkKTtcbiAgICAgICAgdHguY29tYmluZU11c2lnMk5vbmNlcyhyZXNwb25zZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBzd2l0Y2ggKHBhcmFtcy5zaWduaW5nU3RlcCkge1xuICAgICAgY2FzZSAnc2lnbmVyTm9uY2UnOlxuICAgICAgY2FzZSAnY29zaWduZXJOb25jZSc6XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBJbiBjZXJ0YWluIGNhc2VzLCB0aGUgY2FsbGVyIG9mIHRoaXMgbWV0aG9kIG1heSBub3Qga25vdyB3aGV0aGVyIHRoZSB0eEhleCBjb250YWlucyBhIHBzYnQgd2l0aCB0YXByb290IGtleSBwYXRoIHNwZW5kIGlucHV0KHMpLlxuICAgICAgICAgKiBJbnN0ZWFkIG9mIHRocm93aW5nIGVycm9yLCBuby1vcCBhbmQgcmV0dXJuIHRoZSB0eEhleC4gU28gdGhhdCB0aGUgY2FsbGVyIGNhbiBjYWxsIHRoaXMgbWV0aG9kIGluIHRoZSBzYW1lIHNlcXVlbmNlLlxuICAgICAgICAgKi9cbiAgICAgICAgcmV0dXJuIHR4O1xuICAgIH1cbiAgfVxuXG4gIGFzc2VydChzaWduZXJLZXljaGFpbik7XG4gIHJldHVybiBzaWduQW5kVmVyaWZ5UHNidFdhc20odHgsIHNpZ25lcktleWNoYWluLCByb290V2FsbGV0S2V5cywgcGFyYW1zLnJlcGxheVByb3RlY3Rpb24sIHtcbiAgICB3cml0ZVNpZ25lZFdpdGg6IHBhcmFtcy53cml0ZVNpZ25lZFdpdGgsXG4gIH0pO1xufVxuIl19
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnblBzYnRXYXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2ZpeGVkU2NyaXB0L3NpZ25Qc2J0V2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQW9DQSw0REE4QkM7QUFHRCw4REFTQztBQU9ELHNEQXVCQztBQUVELDhFQThEQztBQTVLRCxvREFBNEI7QUFFNUIsZ0RBQStGO0FBRS9GLGlEQUE4RjtBQUc5RixTQUFTLFdBQVcsQ0FBQyxHQUFpQztJQUNwRCxPQUFPLEdBQUcsWUFBWSxpQkFBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGlCQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFNRDs7Ozs7R0FLRztBQUNILE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxFQUF1QyxDQUFDO0FBRXZFLFNBQVMsb0JBQW9CLENBQzNCLEVBQStCLEVBQy9CLGNBQWdELEVBQ2hELGdCQUFzQztJQUV0QyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsOEJBQThCLENBQUMsY0FBYyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssbUJBQW1CLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQ3RDLEVBQStCLEVBQy9CLFVBQWlCLEVBQ2pCLGNBQWdELEVBQ2hELGdCQUFzQztJQUV0QyxNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsOEJBQThCLENBQUMsY0FBYyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZGLE1BQU0sWUFBWSxHQUFnQyxFQUFFLENBQUM7SUFFckQsTUFBTSxD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b0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDcEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2pFLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDakMsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLFFBQVEsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNCLEtBQUssYUFBYSxDQUFDO1lBQ25CLEtBQUssZUFBZTtnQkFDbEI7OzttQkFHRztnQkFDSCxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBQSxnQkFBTSxFQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8scUJBQXFCLENBQUMsRUFBRSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixFQUFFO1FBQ3hGLGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtLQUN4QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBCSVAzMiwgYmlwMzIsIEVDUGFpciwgZml4ZWRTY3JpcHRXYWxsZXQsIGdldFdhc21VdHhvVmVyc2lvbiB9IGZyb20gJ0BiaXRnby93YXNtLXV0eG8nO1xuXG5pbXBvcnQgeyBCdWxrU2lnbmluZ0Vycm9yLCBJbnB1dFNpZ25pbmdFcnJvciwgVHJhbnNhY3Rpb25TaWduaW5nRXJyb3IgfSBmcm9tICcuL1NpZ25pbmdFcnJvcic7XG5pbXBvcnQgeyBNdXNpZzJQYXJ0aWNpcGFudCB9IGZyb20gJy4vbXVzaWcyJztcblxuZnVuY3Rpb24gdG9XYXNtQklQMzIoa2V5OiBiaXAzMi5CSVAzMkludGVyZmFjZSB8IEJJUDMyKTogQklQMzIge1xuICByZXR1cm4ga2V5IGluc3RhbmNlb2YgQklQMzIgPyBrZXkgOiBCSVAzMi5mcm9tQmFzZTU4KGtleS50b0Jhc2U1OCgpKTtcbn1cblxuZXhwb3J0IHR5cGUgUmVwbGF5UHJvdGVjdGlvbktleXMgPSB7XG4gIHB1YmxpY0tleXM6IChVaW50OEFycmF5IHwgRUNQYWlyKVtdO1xufTtcblxuLyoqXG4gKiBLZXkgVmFsdWU6IFVuc2lnbmVkIHR4IGlkID0+IFBTQlRcbiAqIEl0IGlzIHVzZWQgdG8gY2FjaGUgUFNCVHMgd2l0aCB0YXByb290IGtleSBwYXRoIChNdVNpZzIpIGlucHV0cyBkdXJpbmcgZXh0ZXJuYWwgZXhwcmVzcyBzaWduZXIgaXMgYWN0aXZhdGVkLlxuICogUmVhc29uOiBNdVNpZzIgc2lnbmVyIHNlY3VyZSBub25jZSBpcyBjYWNoZWQgaW4gdGhlIEJpdEdvUHNidCBvYmplY3QuIEl0IHdpbGwgYmUgcmVxdWlyZWQgZHVyaW5nIHRoZSBzaWduaW5nIHN0ZXAuXG4gKiBGb3IgbW9yZSBpbmZvLCBjaGVjayBTaWduVHJhbnNhY3Rpb25PcHRpb25zLnNpZ25pbmdTdGVwXG4gKi9cbmNvbnN0IFBTQlRfQ0FDSEVfV0FTTSA9IG5ldyBNYXA8c3RyaW5nLCBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQ+KCk7XG5cbmZ1bmN0aW9uIGhhc0tleVBhdGhTcGVuZElucHV0KFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcGFyc2VkID0gdHgucGFyc2VUcmFuc2FjdGlvbldpdGhXYWxsZXRLZXlzKHJvb3RXYWxsZXRLZXlzLCB7IHJlcGxheVByb3RlY3Rpb24gfSk7XG4gIHJldHVybiBwYXJzZWQuaW5wdXRzLnNvbWUoKGlucHV0KSA9PiBpbnB1dC5zY3JpcHRUeXBlID09PSAncDJ0ck11c2lnMktleVBhdGgnKTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgc2lnbmF0dXJlcyBvbiBhbGwgc2lnbmVkIGlucHV0cywgcGVyLWlucHV0IGZvciBncmFudWxhciBlcnJvciByZXBvcnRpbmcuXG4gKiBTaGFyZWQgYnkgdGhlIGdlbmVyaWMgd2FzbSBzaWduaW5nIHBhdGggYW5kIFplYydzIElyb253b29kICh2Nikgc2lnbmluZyBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5UHNidFNpZ25hdHVyZXNXYXNtKFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICB3YXNtU2lnbmVyOiBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5c1xuKTogdm9pZCB7XG4gIGNvbnN0IHBhcnNlZCA9IHR4LnBhcnNlVHJhbnNhY3Rpb25XaXRoV2FsbGV0S2V5cyhyb290V2FsbGV0S2V5cywgeyByZXBsYXlQcm90ZWN0aW9uIH0pO1xuICBjb25zdCB2ZXJpZnlFcnJvcnM6IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD5bXSA9IFtdO1xuXG4gIHBhcnNlZC5pbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICBpZiAoaW5wdXQuc2NyaXB0VHlwZSA9PT0gJ3Ayc2hQMnBrJykge1xuICAgICAgLy8gU2tpcCByZXBsYXkgcHJvdGVjdGlvbiBpbnB1dHMgLSB0aGV5IGFyZSBwbGF0Zm9ybSBzaWduZWQgb25seVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG91dHB1dElkID0gYCR7aW5wdXQucHJldmlvdXNPdXRwdXQudHhpZH06JHtpbnB1dC5wcmV2aW91c091dHB1dC52b3V0fWA7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghdHgudmVyaWZ5U2lnbmF0dXJlKGlucHV0SW5kZXgsIHdhc21TaWduZXIpKSB7XG4gICAgICAgIHZlcmlmeUVycm9ycy5wdXNoKFxuICAgICAgICAgIG5ldyBJbnB1dFNpZ25pbmdFcnJvcihpbnB1dEluZGV4LCBpbnB1dC5zY3JpcHRUeXBlLCB7IGlkOiBvdXRwdXRJZCB9LCBuZXcgRXJyb3IoJ2ludmFsaWQgc2lnbmF0dXJlJykpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdmVyaWZ5RXJyb3JzLnB1c2gobmV3IElucHV0U2lnbmluZ0Vycm9yPGJpZ2ludD4oaW5wdXRJbmRleCwgaW5wdXQuc2NyaXB0VHlwZSwgeyBpZDogb3V0cHV0SWQgfSwgZSkpO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKHZlcmlmeUVycm9ycy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgVHJhbnNhY3Rpb25TaWduaW5nRXJyb3IoW10sIHZlcmlmeUVycm9ycyk7XG4gIH1cbn1cblxuLyoqIEVtYmVkIHRoZSB3YXNtLXV0eG8gdmVyc2lvbiBtZXRhZGF0YSBpbnRvIHRoZSBzaWduZWQgUFNCVC4gU2hhcmVkIGJ5IGFsbCB3YXNtIHNpZ25pbmcgcGF0aHMuICovXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVXYXNtVXR4b1NpZ25lZFdpdGhLdih0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0KTogdm9pZCB7XG4gIGNvbnN0IHZlcnNpb25JbmZvID0gZ2V0V2FzbVV0eG9WZXJzaW9uKCk7XG4gIGNvbnN0IHZlcnNpb25QYXlsb2FkID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKFxuICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIHZlcnNpb246IHZlcnNpb25JbmZvLnZlcnNpb24sXG4gICAgICBnaXRIYXNoOiB2ZXJzaW9uSW5mby5naXRIYXNoLFxuICAgIH0pXG4gICk7XG4gIHR4LnNldEtWKHsgdHlwZTogJ2JpdGdvJywgc3VidHlwZTogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29LZXlTdWJ0eXBlLldhc21VdHhvU2lnbmVkV2l0aCB9LCB2ZXJzaW9uUGF5bG9hZCk7XG59XG5cbi8qKlxuICogU2lnbiBhbGwgaW5wdXRzIG9mIGEgUFNCVCBhbmQgdmVyaWZ5IHNpZ25hdHVyZXMgYWZ0ZXIgc2lnbmluZy5cbiAqIFVzZXMgYnVsayBzaWduaW5nIGZvciBwZXJmb3JtYW5jZSAoc2lnbnMgYWxsIG1hdGNoaW5nIGlucHV0cyBpbiBvbmUgcGFzcykuXG4gKiBDb2xsZWN0cyBhbmQgbG9ncyBzaWduaW5nIGVycm9ycyBhbmQgdmVyaWZpY2F0aW9uIGVycm9ycywgdGhyb3dzIGVycm9yIGluIHRoZSBlbmQgaWYgYW55IG9mIHRoZW0gZmFpbGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKFxuICB0eDogZml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0LFxuICBzaWduZXJLZXljaGFpbjogYmlwMzIuQklQMzJJbnRlcmZhY2UgfCBCSVAzMixcbiAgcm9vdFdhbGxldEtleXM6IGZpeGVkU2NyaXB0V2FsbGV0LlJvb3RXYWxsZXRLZXlzLFxuICByZXBsYXlQcm90ZWN0aW9uOiBSZXBsYXlQcm90ZWN0aW9uS2V5cyxcbiAgeyB3cml0ZVNpZ25lZFdpdGggPSBmYWxzZSB9OiB7IHdyaXRlU2lnbmVkV2l0aD86IGJvb2xlYW4gfSA9IHt9XG4pOiBmaXhlZFNjcmlwdFdhbGxldC5CaXRHb1BzYnQge1xuICBjb25zdCB3YXNtU2lnbmVyID0gdG9XYXNtQklQMzIoc2lnbmVyS2V5Y2hhaW4pO1xuXG4gIC8vIEJ1bGsgc2lnbiBhbGwgd2FsbGV0IGlucHV0cyAoRUNEU0EgKyBNdVNpZzIpIC0gbXVjaCBmYXN0ZXIgdGhhbiBwZXItaW5wdXQgc2lnbmluZ1xuICB0cnkge1xuICAgIHR4LnNpZ24od2FzbVNpZ25lcik7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgQnVsa1NpZ25pbmdFcnJvcihlKTtcbiAgfVxuXG4gIHZlcmlmeVBzYnRTaWduYXR1cmVzV2FzbSh0eCwgd2FzbVNpZ25lciwgcm9vdFdhbGxldEtleXMsIHJlcGxheVByb3RlY3Rpb24pO1xuXG4gIGlmICh3cml0ZVNpZ25lZFdpdGgpIHtcbiAgICB3cml0ZVdhc21VdHhvU2lnbmVkV2l0aEt2KHR4KTtcbiAgfVxuXG4gIHJldHVybiB0eDtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNpZ25Qc2J0V2l0aE11c2lnMlBhcnRpY2lwYW50V2FzbShcbiAgY29pbjogTXVzaWcyUGFydGljaXBhbnQ8Zml4ZWRTY3JpcHRXYWxsZXQuQml0R29Qc2J0PixcbiAgdHg6IGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidCxcbiAgc2lnbmVyS2V5Y2hhaW46IGJpcDMyLkJJUDMySW50ZXJmYWNlIHwgdW5kZWZpbmVkLFxuICByb290V2FsbGV0S2V5czogZml4ZWRTY3JpcHRXYWxsZXQuUm9vdFdhbGxldEtleXMsXG4gIHBhcmFtczoge1xuICAgIHJlcGxheVByb3RlY3Rpb246IFJlcGxheVByb3RlY3Rpb25LZXlzO1xuICAgIHNpZ25pbmdTdGVwOiAnc2lnbmVyTm9uY2UnIHwgJ2Nvc2lnbmVyTm9uY2UnIHwgJ3NpZ25lclNpZ25hdHVyZScgfCB1bmRlZmluZWQ7XG4gICAgd2FsbGV0SWQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB3cml0ZVNpZ25lZFdpdGg/OiBib29sZWFuO1xuICB9XG4pOiBQcm9taXNlPGZpeGVkU2NyaXB0V2FsbGV0LkJpdEdvUHNidD4ge1xuICBjb25zdCB3YXNtU2lnbmVyID0gc2lnbmVyS2V5Y2hhaW4gPyB0b1dhc21CSVAzMihzaWduZXJLZXljaGFpbikgOiB1bmRlZmluZWQ7XG5cbiAgaWYgKGhhc0tleVBhdGhTcGVuZElucHV0KHR4LCByb290V2FsbGV0S2V5cywgcGFyYW1zLnJlcGxheVByb3RlY3Rpb24pKSB7XG4gICAgc3dpdGNoIChwYXJhbXMuc2lnbmluZ1N0ZXApIHtcbiAgICAgIGNhc2UgJ3NpZ25lck5vbmNlJzpcbiAgICAgICAgYXNzZXJ0KHdhc21TaWduZXIpO1xuICAgICAgICB0eC5nZW5lcmF0ZU11c2lnMk5vbmNlcyh3YXNtU2lnbmVyKTtcbiAgICAgICAgUFNCVF9DQUNIRV9XQVNNLnNldCh0eC51bnNpZ25lZFR4SWQoKSwgdHgpO1xuICAgICAgICByZXR1cm4gdHg7XG4gICAgICBjYXNlICdjb3NpZ25lck5vbmNlJzpcbiAgICAgICAgYXNzZXJ0KHBhcmFtcy53YWxsZXRJZCwgJ3dhbGxldElkIGlzIHJlcXVpcmVkIGZvciBNdVNpZzIgYml0Z28gbm9uY2UnKTtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGNvaW4uZ2V0TXVzaWcyTm9uY2VzKHR4LCBwYXJhbXMud2FsbGV0SWQpO1xuICAgICAgY2FzZSAnc2lnbmVyU2lnbmF0dXJlJzoge1xuICAgICAgICBjb25zdCB0eElkID0gdHgudW5zaWduZWRUeElkKCk7XG4gICAgICAgIGNvbnN0IGNhY2hlZFBzYnQgPSBQU0JUX0NBQ0hFX1dBU00uZ2V0KHR4SWQpO1xuICAgICAgICBhc3NlcnQoXG4gICAgICAgICAgY2FjaGVkUHNidCxcbiAgICAgICAgICBgUHNidCBpcyBtaXNzaW5nIGZyb20gdHhDYWNoZSAoY2FjaGUgc2l6ZSAke1BTQlRfQ0FDSEVfV0FTTS5zaXplfSkuXG4gICAgICAgICAgICBUaGlzIG1heSBiZSBkdWUgdG8gdGhlIHJlcXVlc3QgYmVpbmcgcm91dGVkIHRvIGEgZGlmZmVyZW50IEJpdEdvLUV4cHJlc3MgaW5zdGFuY2UgdGhhdCBmb3Igc2lnbmluZyBzdGVwICdzaWduZXJOb25jZScuYFxuICAgICAgICApO1xuICAgICAgICBQU0JUX0NBQ0hFX1dBU00uZGVsZXRlKHR4SWQpO1xuICAgICAgICBjYWNoZWRQc2J0LmNvbWJpbmVNdXNpZzJOb25jZXModHgpO1xuICAgICAgICB0eCA9IGNhY2hlZFBzYnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgLy8gdGhpcyBpbnN0YW5jZSBpcyBub3QgYW4gZXh0ZXJuYWwgc2lnbmVyXG4gICAgICAgIGFzc2VydChwYXJhbXMud2FsbGV0SWQsICd3YWxsZXRJZCBpcyByZXF1aXJlZCBmb3IgTXVTaWcyIGJpdGdvIG5vbmNlJyk7XG4gICAgICAgIGFzc2VydCh3YXNtU2lnbmVyKTtcbiAgICAgICAgdHguZ2VuZXJhdGVNdXNpZzJOb25jZXMod2FzbVNpZ25lcik7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY29pbi5nZXRNdXNpZzJOb25jZXModHgsIHBhcmFtcy53YWxsZXRJZCk7XG4gICAgICAgIHR4LmNvbWJpbmVNdXNpZzJOb25jZXMocmVzcG9uc2UpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc3dpdGNoIChwYXJhbXMuc2lnbmluZ1N0ZXApIHtcbiAgICAgIGNhc2UgJ3NpZ25lck5vbmNlJzpcbiAgICAgIGNhc2UgJ2Nvc2lnbmVyTm9uY2UnOlxuICAgICAgICAvKipcbiAgICAgICAgICogSW4gY2VydGFpbiBjYXNlcywgdGhlIGNhbGxlciBvZiB0aGlzIG1ldGhvZCBtYXkgbm90IGtub3cgd2hldGhlciB0aGUgdHhIZXggY29udGFpbnMgYSBwc2J0IHdpdGggdGFwcm9vdCBrZXkgcGF0aCBzcGVuZCBpbnB1dChzKS5cbiAgICAgICAgICogSW5zdGVhZCBvZiB0aHJvd2luZyBlcnJvciwgbm8tb3AgYW5kIHJldHVybiB0aGUgdHhIZXguIFNvIHRoYXQgdGhlIGNhbGxlciBjYW4gY2FsbCB0aGlzIG1ldGhvZCBpbiB0aGUgc2FtZSBzZXF1ZW5jZS5cbiAgICAgICAgICovXG4gICAgICAgIHJldHVybiB0eDtcbiAgICB9XG4gIH1cblxuICBhc3NlcnQoc2lnbmVyS2V5Y2hhaW4pO1xuICByZXR1cm4gc2lnbkFuZFZlcmlmeVBzYnRXYXNtKHR4LCBzaWduZXJLZXljaGFpbiwgcm9vdFdhbGxldEtleXMsIHBhcmFtcy5yZXBsYXlQcm90ZWN0aW9uLCB7XG4gICAgd3JpdGVTaWduZWRXaXRoOiBwYXJhbXMud3JpdGVTaWduZWRXaXRoLFxuICB9KTtcbn1cbiJdfQ==
|
|
@@ -6,6 +6,15 @@ import { ReplayProtectionKeys } from './signPsbtWasm';
|
|
|
6
6
|
export declare function signAndVerifyPsbt(psbt: fixedScriptWallet.BitGoPsbt, signerKeychain: bip32.BIP32Interface | BIP32, rootWalletKeys: fixedScriptWallet.RootWalletKeys, replayProtection: ReplayProtectionKeys, options?: {
|
|
7
7
|
writeSignedWith?: boolean;
|
|
8
8
|
}): fixedScriptWallet.BitGoPsbt;
|
|
9
|
+
/**
|
|
10
|
+
* Finalize a signed PSBT into its final form: the extracted transaction bytes on the last
|
|
11
|
+
* signature round (unless the caller asked to keep the PSBT), otherwise the signed PSBT itself.
|
|
12
|
+
* Shared by the generic signing path and Zec's Ironwood (v6) signing path.
|
|
13
|
+
*/
|
|
14
|
+
export declare function finalizeSignedPsbt(signedPsbt: fixedScriptWallet.BitGoPsbt, { isLastSignature, extractTransaction }: {
|
|
15
|
+
isLastSignature?: boolean;
|
|
16
|
+
extractTransaction?: boolean;
|
|
17
|
+
}): fixedScriptWallet.BitGoPsbt | Buffer;
|
|
9
18
|
export declare function signTransaction(coin: Musig2Participant<fixedScriptWallet.BitGoPsbt>, tx: fixedScriptWallet.BitGoPsbt, signerKeychain: bip32.BIP32Interface | undefined, coinName: UtxoCoinName | WasmUtxoCoinName, params: {
|
|
10
19
|
walletId: string | undefined;
|
|
11
20
|
txInfo: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAA4D,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGhH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,CAAC,SAAS,EACjC,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,iBAAiB,CAAC,SAAS,CAI7B;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EACpD,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EAChD,QAAQ,EAAE,YAAY,GAAG,gBAAgB,EACzC,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,mHAAmH;IACnH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CAAC,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"signTransaction.d.ts","sourceRoot":"","sources":["../../../../../src/transaction/fixedScript/signTransaction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAA4D,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGhH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,iBAAiB,CAAC,SAAS,EACjC,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,EAC5C,cAAc,EAAE,iBAAiB,CAAC,cAAc,EAChD,gBAAgB,EAAE,oBAAoB,EACtC,OAAO,GAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,iBAAiB,CAAC,SAAS,CAI7B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,iBAAiB,CAAC,SAAS,EACvC,EAAE,eAAuB,EAAE,kBAAyB,EAAE,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,GAClH,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAStC;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,SAAS,CAAC,EACpD,EAAE,EAAE,iBAAiB,CAAC,SAAS,EAC/B,cAAc,EAAE,KAAK,CAAC,cAAc,GAAG,SAAS,EAChD,QAAQ,EAAE,YAAY,GAAG,gBAAgB,EACzC,MAAM,EAAE;IACN,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAA;KAAE,GAAG,SAAS,CAAC;IAC9D,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,aAAa,GAAG,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAC7E,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,mHAAmH;IACnH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,GACA,OAAO,CAAC,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,CAqB/C"}
|