@bitgo/sdk-coin-icp 1.24.0 → 1.25.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/src/icp.d.ts +1 -0
- package/dist/src/icp.d.ts.map +1 -1
- package/dist/src/icp.js +4 -1
- package/dist/test/unit/icp.js +44 -2
- package/dist/test/unit/transaction.js +15 -1
- package/dist/test/unit/transactionBuilder/transactionBuilder.js +2 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
|
@@ -216,6 +216,7 @@ describe('ICP Transaction Builder with default memo as 0', async () => {
|
|
|
216
216
|
should_1.default.equal(icpTransaction.metadata.memo, iface_1.DEFAULT_MEMO);
|
|
217
217
|
should_1.default.equal(icpTransaction.operations[0].account.address, testData.Accounts.account1.address);
|
|
218
218
|
should_1.default.equal(icpTransaction.operations[1].account.address, testData.Accounts.account2.address);
|
|
219
|
+
should_1.default.equal(icpTransaction.operations[2].account.address, testData.Accounts.account1.address);
|
|
219
220
|
should_1.default.equal(icpTransaction.operations[0].amount.value, '-10');
|
|
220
221
|
should_1.default.equal(icpTransaction.operations[1].amount.value, '10');
|
|
221
222
|
should_1.default.equal(icpTransaction.operations[2].amount.value, '-10000');
|
|
@@ -271,4 +272,4 @@ describe('ICP Transaction Builder with default memo as 0', async () => {
|
|
|
271
272
|
signedTxn.should.be.a.String();
|
|
272
273
|
});
|
|
273
274
|
});
|
|
274
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBaUU7QUFDakUsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUM1QixrREFBMEI7QUFDMUIsa0RBQXVFO0FBQ3ZFLDhEQUFnRDtBQUNoRCw0REFBeUQ7QUFDekQsbUVBQTJDO0FBRTNDLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLElBQUksRUFBRTtJQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFBLHFDQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLElBQUksU0FBYyxDQUFDO0lBQ25CLElBQUksR0FBUSxDQUFDO0lBRWIsVUFBVSxDQUFDLEtBQUs7UUFDZCxlQUFLLENBQUMsSUFBSSxDQUFDLGVBQUssRUFBRSxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDdkMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0I7WUFDbkMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLElBQUksQ0FBQztTQUMzRCxDQUFDLENBQUM7UUFDSCxlQUFLLENBQUMsSUFBSSxDQUFDLGVBQUssRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RCxTQUFTLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDekMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0YsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFB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IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IHsgREVGQVVMVF9NRU1PLCBNQVhfSU5HUkVTU19UVEwgfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliL2lmYWNlJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uLy4uL3Jlc291cmNlcy9pY3AnO1xuaW1wb3J0IHsgZ2V0QnVpbGRlckZhY3RvcnkgfSBmcm9tICcuLi9nZXRCdWlsZGVyRmFjdG9yeSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi91dGlscyc7XG5cbmRlc2NyaWJlKCdJQ1AgVHJhbnNhY3Rpb24gQnVpbGRlcicsIGFzeW5jICgpID0+IHtcbiAgY29uc3QgZmFjdG9yeSA9IGdldEJ1aWxkZXJGYWN0b3J5KCd0aWNwJyk7XG4gIGxldCB0eEJ1aWxkZXI6IGFueTtcbiAgbGV0IHR4bjogYW55O1xuXG4gIGJlZm9yZUVhY2goYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIHNpbm9uLnN0dWIodXRpbHMsICdnZXRNZXRhRGF0YScpLnJldHVybnMoe1xuICAgICAgbWV0YURhdGE6IHRlc3REYXRhLk1ldGFEYXRhV2l0aE1lbW8sXG4gICAgICBpbmdyZXNzRW5kVGltZTogdGVzdERhdGEuTWV0YURhdGFXaXRoTWVtby5pbmdyZXNzX2VuZCA/PyAwLFxuICAgIH0pO1xuICAgIHNpbm9uLnN0dWIodXRpbHMsICd2YWxpZGF0ZUV4cGlyZVRpbWUnKS5yZXR1cm5zKHRydWUpO1xuXG4gICAgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuc2VuZGVyKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLmFkZHJlc3MsIHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSk7XG4gICAgdHhCdWlsZGVyLnJlY2VpdmVySWQodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcyk7XG4gICAgdHhCdWlsZGVyLmFtb3VudCgnMTAnKTtcbiAgICB0eEJ1aWxkZXIubWVtbyh0ZXN0RGF0YS5NZXRhRGF0YVdpdGhNZW1vLm1lbW8pO1xuXG4gICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgdHhuID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXJzZSBhbiB1bnNpZ25lZCB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXJzZWRVbnNpZ25lZFR4biA9IGF3YWl0IGZhY3RvcnkucGFyc2VUcmFuc2FjdGlvbih0ZXN0RGF0YS5QYXlsb2Fkc0RhdGEudW5zaWduZWRfdHJhbnNhY3Rpb24sIGZhbHNlKTtcbiAgICB0eG4uc2hvdWxkLmJlLmFuLk9iamVjdCgpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwocGFyc2VkVW5zaWduZWRUeG4sIHRlc3REYXRhLlBhcnNlZFVuc2lnbmVkVHJhbnNhY3Rpb24pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHBhcnNlIGFuIHNpZ25lZCB0cmFuc2FjdGlvbicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXJzZWRTaWduZWRUeG4gPSBhd2FpdCBmYWN0b3J5LnBhcnNlVHJhbnNhY3Rpb24odGVzdERhdGEuU2lnbmVkVHJhbnNhY3Rpb24sIHRydWUpO1xuICAgIHR4bi5zaG91bGQuYmUuYW4uT2JqZWN0KCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChwYXJzZWRTaWduZWRUeG4sIHRlc3REYXRhLlBhcnNlZFNpZ25lZFRyYW5zYWN0aW9uKTtcbiAgfSk7XG5cbiAgaXQoJ3N0YXJ0IGFuZCBidWlsZCBhIHRyYW5zZmVyIHR4JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGljcFRyYW5zYWN0aW9uID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uLmljcFRyYW5zYWN0aW9uO1xuICAgIGNvbnN0IHBheWxvYWRzRGF0YSA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5wYXlsb2Fkc0RhdGE7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLm1ldGFkYXRhLm1lbW8sIHRlc3REYXRhLk1ldGFEYXRhV2l0aE1lbW8ubWVtbyk7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLm9wZXJhdGlvbnNbMF0uYWNjb3VudC5hZGRyZXNzLCB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICBzaG91bGQuZXF1YWwoaWNwVHJhbnNhY3Rpb24ub3BlcmF0aW9uc1sxXS5hY2NvdW50LmFkZHJlc3MsIHRlc3REYXRhLkFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5vcGVyYXRpb25zWzBdLmFtb3VudC52YWx1ZSwgJy0xMCcpO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5vcGVyYXRpb25zWzFdLmFtb3VudC52YWx1ZSwgJzEwJyk7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLm9wZXJhdGlvbnNbMl0uYW1vdW50LnZhbHVlLCAnLTEwMDAwJyk7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLnB1YmxpY19rZXlzWzBdLmhleF9ieXRlcywgdGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KTtcbiAgICBwYXlsb2Fkc0RhdGEucGF5bG9hZHMuc2hvdWxkLmJlLmFuLkFycmF5KCk7XG4gICAgcGF5bG9hZHNEYXRhLnBheWxvYWRzLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbCh0eEJ1aWxkZXIucGF5bG9hZERhdGEoKSwgdGVzdERhdGEuUGF5bG9hZHNEYXRhKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKHBheWxvYWRzRGF0YS5wYXlsb2FkcywgdGVzdERhdGEuUGF5bG9hZHNEYXRhLnBheWxvYWRzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBmYWlsIHRvIGJ1aWxkIGEgdHhuIHdpdGhvdXQgc2VuZGVyJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyLnJlY2VpdmVySWQodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcyk7XG4gICAgdHhCdWlsZGVyLmFtb3VudCgnMTAnKTtcbiAgICB0eEJ1aWxkZXIubWVtbygxMjM0NTYpO1xuICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpLnNob3VsZC5yZWplY3RlZFdpdGgoJ3NlbmRlciBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBmYWlsIHRvIGJ1aWxkIGEgdHhuIHdpdGggaW5jb3JyZWN0IG1lbW8nLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuc2VuZGVyKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLmFkZHJlc3MsIHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSk7XG4gICAgdHhCdWlsZGVyLnJlY2VpdmVySWQodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcyk7XG4gICAgdHhCdWlsZGVyLmFtb3VudCgnMTAnKTtcbiAgICBjb25zdCBpbmNvcnJlY3RNZW1vcyA9IFsnYWJjZCcsIHVuZGVmaW5lZF07XG4gICAgZm9yIChjb25zdCBtZW1vIG9mIGluY29ycmVjdE1lbW9zKSB7XG4gICAgICBhc3NlcnQudGhyb3dzKCgpID0+IHR4QnVpbGRlci5tZW1vKE51bWJlcihtZW1vKSksIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgYEludmFsaWQgbWVtbzogJHtOdW1iZXIobWVtbyl9YCk7XG4gICAgfVxuICB9KTtcblxuICBpdCgnc2hvdWxkIGZhaWwgdG8gYnVpbGQgYSB0eG4gd2l0aG91dCBhbW91bnQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuc2VuZGVyKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLmFkZHJlc3MsIHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSk7XG4gICAgdHhCdWlsZGVyLnJlY2VpdmVySWQodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcyk7XG4gICAgdHhCdWlsZGVyLm1lbW8oMTIzNDU2KTtcbiAgICBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKS5zaG91bGQucmVqZWN0ZWRXaXRoKCdhbW91bnQgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgYnVpbGQgYSBzaWduZWQgdHhuIGFuZCBnaXZlIHR4biBpbiBicm9hZGNhc3QgZm9ybWF0JywgYXN5bmMgKCkgPT4ge1xuICAgIHR4bi5hZGRTaWduYXR1cmUodGVzdERhdGEuU2lnbmF0dXJlcyk7XG4gICAgdHhCdWlsZGVyLmNvbWJpbmUoKTtcbiAgICBjb25zdCBzaWduZWRUeG4gPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24uc2lnbmVkVHJhbnNhY3Rpb247XG4gICAgc2lnbmVkVHhuLnNob3VsZC5iZS5hLlN0cmluZygpO1xuICAgIHNob3VsZC5lcXVhbChzaWduZWRUeG4sIHRlc3REYXRhLlNpZ25lZFRyYW5zYWN0aW9uKTtcbiAgICBjb25zdCBicm9hZGNhc3RUeG4gPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24udG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICBicm9hZGNhc3RUeG4uc2hvdWxkLmJlLmEuU3RyaW5nKCk7XG4gICAgc2hvdWxkLmVxdWFsKGJyb2FkY2FzdFR4biwgc2lnbmVkVHhuKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBzaWduIGEgdHhuIGFuZCB0aGVuIGdpdmUgdHhuIGluIGJyb2FkY2FzdCBmb3JtYXQnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgYmFzZUtleTogQmFzZUtleSA9IHsga2V5OiB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5zZWNyZXRLZXkgfTtcbiAgICB0eEJ1aWxkZXIuc2lnbihiYXNlS2V5KTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKHR4QnVpbGRlci5zaWduYXR1cmVQYXlsb2FkKCksIHRlc3REYXRhLlNpZ25hdHVyZXMpO1xuICAgIHR4QnVpbGRlci5jb21iaW5lKCk7XG4gICAgY29uc3Qgc2lnbmVkVHhuID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uLnNpZ25lZFRyYW5zYWN0aW9uO1xuICAgIHNpZ25lZFR4bi5zaG91bGQuYmUuYS5TdHJpbmcoKTtcbiAgICBzaG91bGQuZXF1YWwoc2lnbmVkVHhuLCB0ZXN0RGF0YS5TaWduZWRUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25IYXNoID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uLmlkO1xuICAgIHNob3VsZC5lcXVhbCh0cmFuc2FjdGlvbkhhc2gsIHRlc3REYXRhLk9uQ2hhaW5UcmFuc2FjdGlvbkhhc2gpO1xuICAgIGNvbnN0IGJyb2FkY2FzdFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIGJyb2FkY2FzdFR4bi5zaG91bGQuYmUuYS5TdHJpbmcoKTtcbiAgICBzaG91bGQuZXF1YWwoYnJvYWRjYXN0VHhuLCBzaWduZWRUeG4pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGdlbmVyYXRlIGEgY29ycmVjdCB0eG4gaGFzaCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB1bnNpZ25lZFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi51bnNpZ25lZFRyYW5zYWN0aW9uO1xuICAgIHVuc2lnbmVkVHhuLnNob3VsZC5iZS5hLlN0cmluZygpO1xuICAgIGNvbnN0IHBheWxvYWRzRGF0YSA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5wYXlsb2Fkc0RhdGE7XG4gICAgY29uc3Qgc2VyaWFsaXplZFR4Rm9ybWF0ID0ge1xuICAgICAgc2VyaWFsaXplZFR4SGV4OiBwYXlsb2Fkc0RhdGEsXG4gICAgICBwdWJsaWNLZXk6IHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSxcbiAgICB9O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRUeEhleCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHNlcmlhbGl6ZWRUeEZvcm1hdCksICd1dGYtOCcpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBhd2FpdCB0eG4uZnJvbVJhd1RyYW5zYWN0aW9uKHNlcmlhbGl6ZWRUeEhleCk7XG4gICAgY29uc3QgdHJhbnNhY3Rpb25IYXNoID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uLmlkO1xuICAgIHNob3VsZC5lcXVhbCh0cmFuc2FjdGlvbkhhc2gsIHRlc3REYXRhLk9uQ2hhaW5UcmFuc2FjdGlvbkhhc2gpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIGEgdHhuIHRoZW4gcGFyc2UgaXQgYW5kIHRoZW4gYWdhaW4gYnVpbGQnLCBhc3luYyAoKSA9PiB7XG4gICAgc2lub24ucmVzdG9yZSgpOyAvLyBkbyBub3Qgc3R1YiBnZXRNZXRhRGF0YVxuICAgIHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyLnNlbmRlcih0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzLCB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpO1xuICAgIHR4QnVpbGRlci5yZWNlaXZlcklkKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpO1xuICAgIHR4QnVpbGRlci5hbW91bnQoJzEwJyk7XG4gICAgdHhCdWlsZGVyLm1lbW8odGVzdERhdGEuTWV0YURhdGFXaXRoTWVtby5tZW1vKTtcbiAgICB0eEJ1aWxkZXIuaW5ncmVzc0VuZCgxOTA0Mzg0NTY0MDAwMDAwMDAwbik7XG4gICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgdHhuID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uO1xuICAgIGNvbnN0IHVuc2lnbmVkVHhuID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uLnVuc2lnbmVkVHJhbnNhY3Rpb247XG4gICAgdW5zaWduZWRUeG4uc2hvdWxkLmJlLmEuU3RyaW5nKCk7XG4gICAgY29uc3QgcGF5bG9hZHNEYXRhID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uLnBheWxvYWRzRGF0YTtcbiAgICBjb25zdCBzZXJpYWxpemVkVHhGb3JtYXQgPSB7XG4gICAgICBzZXJpYWxpemVkVHhIZXg6IHBheWxvYWRzRGF0YSxcbiAgICAgIHB1YmxpY0tleTogdGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5LFxuICAgIH07XG4gICAgY29uc3Qgc2VyaWFsaXplZFR4SGV4ID0gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoc2VyaWFsaXplZFR4Rm9ybWF0KSwgJ3V0Zi04JykudG9TdHJpbmcoJ2hleCcpO1xuICAgIGF3YWl0IHR4bi5mcm9tUmF3VHJhbnNhY3Rpb24oc2VyaWFsaXplZFR4SGV4KTtcbiAgICBjb25zdCBiYXNlS2V5OiBCYXNlS2V5ID0geyBrZXk6IHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnNlY3JldEtleSB9O1xuICAgIHR4QnVpbGRlci5zaWduKGJhc2VLZXkpO1xuICAgIHR4QnVpbGRlci5jb21iaW5lKCk7XG4gICAgY29uc3Qgc2lnbmVkVHhuID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uLnNpZ25lZFRyYW5zYWN0aW9uO1xuICAgIHNpZ25lZFR4bi5zaG91bGQuYmUuYS5TdHJpbmcoKTtcbiAgICB0eEJ1aWxkZXIudHJhbnNhY3Rpb24uaWNwVHJhbnNhY3Rpb24ubWV0YWRhdGEuaW5ncmVzc19zdGFydC5zaG91bGQuZXF1YWwoXG4gICAgICBOdW1iZXIoMTkwNDM4NDU2NDAwMDAwMDAwMG4pIC0gTUFYX0lOR1JFU1NfVFRMXG4gICAgKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ0lDUCBUcmFuc2FjdGlvbiBCdWlsZGVyIHdpdGggZGVmYXVsdCBtZW1vIGFzIDAnLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndGljcCcpO1xuICBsZXQgdHhCdWlsZGVyOiBhbnk7XG4gIGxldCB0eG46IGFueTtcblxuICBiZWZvcmVFYWNoKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBzaW5vbi5zdHViKHV0aWxzLCAnZ2V0TWV0YURhdGEnKS5yZXR1cm5zKHtcbiAgICAgIG1ldGFEYXRhOiB0ZXN0RGF0YS5NZXRhRGF0YVdpdGhEZWZhdWx0TWVtbyxcbiAgICAgIGluZ3Jlc3NFbmRUaW1lOiB0ZXN0RGF0YS5NZXRhRGF0YVdpdGhEZWZhdWx0TWVtby5pbmdyZXNzX2VuZCA/PyAwLFxuICAgIH0pO1xuXG4gICAgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB0ZXN0RGF0YS5QYXJzZWRVbnNpZ25lZFRyYW5zYWN0aW9uLm1ldGFkYXRhLm1lbW8gPSBERUZBVUxUX01FTU87XG4gICAgdGVzdERhdGEuUGFyc2VkU2lnbmVkVHJhbnNhY3Rpb24ubWV0YWRhdGEubWVtbyA9IERFRkFVTFRfTUVNTztcblxuICAgIHR4QnVpbGRlci5yZWNlaXZlcklkKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpO1xuICAgIHR4QnVpbGRlci5zZW5kZXIodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcywgdGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KTtcbiAgICB0eEJ1aWxkZXIucmVjZWl2ZXJJZCh0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKTtcbiAgICB0eEJ1aWxkZXIuYW1vdW50KCcxMCcpO1xuXG4gICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCk7XG4gICAgdHhuID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uO1xuICB9KTtcblxuICBhZnRlckVhY2goZnVuY3Rpb24gKCkge1xuICAgIHNpbm9uLnJlc3RvcmUoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXJzZSBhbiB1bnNpZ25lZCB0cmFuc2FjdGlvbiB3aXRoIGRlZmF1bHQgbWVtbycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXJzZWRVbnNpZ25lZFR4biA9IGF3YWl0IGZhY3RvcnkucGFyc2VUcmFuc2FjdGlvbihcbiAgICAgIHRlc3REYXRhLlBheWxvYWRzRGF0YVdpdGhEZWZhdWx0TWVtby51bnNpZ25lZF90cmFuc2FjdGlvbixcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgICB0eG4uc2hvdWxkLmJlLmFuLk9iamVjdCgpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwocGFyc2VkVW5zaWduZWRUeG4sIHRlc3REYXRhLlBhcnNlZFVuc2lnbmVkVHJhbnNhY3Rpb24pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHBhcnNlIGFuIHNpZ25lZCB0cmFuc2FjdGlvbiB3aXRoIGRlZmF1bHQgbWVtbycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBwYXJzZWRTaWduZWRUeG4gPSBhd2FpdCBmYWN0b3J5LnBhcnNlVHJhbnNhY3Rpb24odGVzdERhdGEuU2lnbmVkVHJhbnNhY3Rpb25XaXRoRGVmYXVsdE1lbW8sIHRydWUpO1xuICAgIHR4bi5zaG91bGQuYmUuYW4uT2JqZWN0KCk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChwYXJzZWRTaWduZWRUeG4sIHRlc3REYXRhLlBhcnNlZFNpZ25lZFRyYW5zYWN0aW9uKTtcbiAgfSk7XG5cbiAgaXQoJ3N0YXJ0IGFuZCBidWlsZCBhIHRyYW5zZmVyIHR4IHdpdGggZGVmYXVsdCBtZW1vJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGljcFRyYW5zYWN0aW9uID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uLmljcFRyYW5zYWN0aW9uO1xuICAgIGNvbnN0IHBheWxvYWRzRGF0YSA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5wYXlsb2Fkc0RhdGE7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLm1ldGFkYXRhLm1lbW8sIERFRkFVTFRfTUVNTyk7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLm9wZXJhdGlvbnNbMF0uYWNjb3VudC5hZGRyZXNzLCB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzKTtcbiAgICBzaG91bGQuZXF1YWwoaWNwVHJhbnNhY3Rpb24ub3BlcmF0aW9uc1sxXS5hY2NvdW50LmFkZHJlc3MsIHRlc3REYXRhLkFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5vcGVyYXRpb25zWzBdLmFtb3VudC52YWx1ZSwgJy0xMCcpO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5vcGVyYXRpb25zWzFdLmFtb3VudC52YWx1ZSwgJzEwJyk7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLm9wZXJhdGlvbnNbMl0uYW1vdW50LnZhbHVlLCAnLTEwMDAwJyk7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLnB1YmxpY19rZXlzWzBdLmhleF9ieXRlcywgdGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KTtcbiAgICBwYXlsb2Fkc0RhdGEucGF5bG9hZHMuc2hvdWxkLmJlLmFuLkFycmF5KCk7XG4gICAgcGF5bG9hZHNEYXRhLnBheWxvYWRzLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbCh0eEJ1aWxkZXIucGF5bG9hZERhdGEoKSwgdGVzdERhdGEuUGF5bG9hZHNEYXRhV2l0aERlZmF1bHRNZW1vKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKHBheWxvYWRzRGF0YS5wYXlsb2FkcywgdGVzdERhdGEuUGF5bG9hZHNEYXRhV2l0aERlZmF1bHRNZW1vLnBheWxvYWRzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIHNpZ25lZCB0eG4gd2l0aCBkZWZhdWx0IG1lbW8gYW5kIGdpdmUgdHhuIGluIGJyb2FkY2FzdCBmb3JtYXQnLCBhc3luYyAoKSA9PiB7XG4gICAgdHhuLmFkZFNpZ25hdHVyZSh0ZXN0RGF0YS5TaWduYXR1cmVzV2l0aERlZmF1bHRNZW1vKTtcbiAgICB0eEJ1aWxkZXIuY29tYmluZSgpO1xuICAgIGNvbnN0IHNpZ25lZFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5zaWduZWRUcmFuc2FjdGlvbjtcbiAgICBzaWduZWRUeG4uc2hvdWxkLmJlLmEuU3RyaW5nKCk7XG4gICAgc2hvdWxkLmVxdWFsKHNpZ25lZFR4biwgdGVzdERhdGEuU2lnbmVkVHJhbnNhY3Rpb25XaXRoRGVmYXVsdE1lbW8pO1xuICAgIGNvbnN0IGJyb2FkY2FzdFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIGJyb2FkY2FzdFR4bi5zaG91bGQuYmUuYS5TdHJpbmcoKTtcbiAgICBzaG91bGQuZXF1YWwoYnJvYWRjYXN0VHhuLCBzaWduZWRUeG4pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHNpZ24gYSB0eG4gd2l0aCBkZWZhdWx0IG1lbW8gYW5kIHRoZW4gZ2l2ZSB0eG4gaW4gYnJvYWRjYXN0IGZvcm1hdCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBiYXNlS2V5OiBCYXNlS2V5ID0geyBrZXk6IHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnNlY3JldEtleSB9O1xuICAgIHR4QnVpbGRlci5zaWduKGJhc2VLZXkpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwodHhCdWlsZGVyLnNpZ25hdHVyZVBheWxvYWQoKSwgdGVzdERhdGEuU2lnbmF0dXJlc1dpdGhEZWZhdWx0TWVtbyk7XG4gICAgdHhCdWlsZGVyLmNvbWJpbmUoKTtcbiAgICBjb25zdCBzaWduZWRUeG4gPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24uc2lnbmVkVHJhbnNhY3Rpb247XG4gICAgc2lnbmVkVHhuLnNob3VsZC5iZS5hLlN0cmluZygpO1xuICAgIHNob3VsZC5lcXVhbChzaWduZWRUeG4sIHRlc3REYXRhLlNpZ25lZFRyYW5zYWN0aW9uV2l0aERlZmF1bHRNZW1vKTtcbiAgICBjb25zdCBicm9hZGNhc3RUeG4gPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24udG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICBicm9hZGNhc3RUeG4uc2hvdWxkLmJlLmEuU3RyaW5nKCk7XG4gICAgc2hvdWxkLmVxdWFsKGJyb2FkY2FzdFR4biwgc2lnbmVkVHhuKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIHR4biB3aXRob3V0IG1lbW8gdGhlbiBwYXJzZSBpdCBhbmQgdGhlbiBhZ2FpbiBidWlsZCcsIGFzeW5jICgpID0+IHtcbiAgICBzaW5vbi5yZXN0b3JlKCk7IC8vIGRvIG5vdCBzdHViIGdldE1ldGFEYXRhXG4gICAgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuc2VuZGVyKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLmFkZHJlc3MsIHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSk7XG4gICAgdHhCdWlsZGVyLnJlY2VpdmVySWQodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcyk7XG4gICAgdHhCdWlsZGVyLmFtb3VudCgnMTAnKTtcblxuICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIHR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbjtcbiAgICBjb25zdCB1bnNpZ25lZFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi51bnNpZ25lZFRyYW5zYWN0aW9uO1xuICAgIHVuc2lnbmVkVHhuLnNob3VsZC5iZS5hLlN0cmluZygpO1xuICAgIGNvbnN0IHBheWxvYWRzRGF0YSA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5wYXlsb2Fkc0RhdGE7XG4gICAgY29uc3Qgc2VyaWFsaXplZFR4Rm9ybWF0ID0ge1xuICAgICAgc2VyaWFsaXplZFR4SGV4OiBwYXlsb2Fkc0RhdGEsXG4gICAgICBwdWJsaWNLZXk6IHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSxcbiAgICB9O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRUeEhleCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHNlcmlhbGl6ZWRUeEZvcm1hdCksICd1dGYtOCcpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBhd2FpdCB0eG4uZnJvbVJhd1RyYW5zYWN0aW9uKHNlcmlhbGl6ZWRUeEhleCk7XG4gICAgY29uc3QgYmFzZUtleTogQmFzZUtleSA9IHsga2V5OiB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5zZWNyZXRLZXkgfTtcbiAgICB0eEJ1aWxkZXIuc2lnbihiYXNlS2V5KTtcbiAgICB0eEJ1aWxkZXIuY29tYmluZSgpO1xuICAgIGNvbnN0IHNpZ25lZFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5zaWduZWRUcmFuc2FjdGlvbjtcbiAgICBzaWduZWRUeG4uc2hvdWxkLmJlLmEuU3RyaW5nKCk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
275
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L3RyYW5zYWN0aW9uQnVpbGRlci90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBaUU7QUFDakUsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUM1QixrREFBMEI7QUFDMUIsa0RBQXVFO0FBQ3ZFLDhEQUFnRDtBQUNoRCw0REFBeUQ7QUFDekQsbUVBQTJDO0FBRTNDLFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLElBQUksRUFBRTtJQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFBLHFDQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFDLElBQUksU0FBYyxDQUFDO0lBQ25CLElBQUksR0FBUSxDQUFDO0lBRWIsVUFBVSxDQUFDLEtBQUs7UUFDZCxlQUFLLENBQUMsSUFBSSxDQUFDLGVBQUssRUFBRSxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDdkMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0I7WUFDbkMsY0FBYyxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLElBQUksQ0FBQztTQUMzRCxDQUFDLENBQUM7UUFDSCxlQUFLLENBQUMsSUFBSSxDQUFDLGVBQUssRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0RCxTQUFTLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDekMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0YsU0FBUyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFB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QUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlS2V5LCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHNob3VsZCBmcm9tICdzaG91bGQnO1xuaW1wb3J0IHNpbm9uIGZyb20gJ3Npbm9uJztcbmltcG9ydCB7IERFRkFVTFRfTUVNTywgTUFYX0lOR1JFU1NfVFRMIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi9pZmFjZSc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvaWNwJztcbmltcG9ydCB7IGdldEJ1aWxkZXJGYWN0b3J5IH0gZnJvbSAnLi4vZ2V0QnVpbGRlckZhY3RvcnknO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4uLy4uLy4uL3NyYy9saWIvdXRpbHMnO1xuXG5kZXNjcmliZSgnSUNQIFRyYW5zYWN0aW9uIEJ1aWxkZXInLCBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGZhY3RvcnkgPSBnZXRCdWlsZGVyRmFjdG9yeSgndGljcCcpO1xuICBsZXQgdHhCdWlsZGVyOiBhbnk7XG4gIGxldCB0eG46IGFueTtcblxuICBiZWZvcmVFYWNoKGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBzaW5vbi5zdHViKHV0aWxzLCAnZ2V0TWV0YURhdGEnKS5yZXR1cm5zKHtcbiAgICAgIG1ldGFEYXRhOiB0ZXN0RGF0YS5NZXRhRGF0YVdpdGhNZW1vLFxuICAgICAgaW5ncmVzc0VuZFRpbWU6IHRlc3REYXRhLk1ldGFEYXRhV2l0aE1lbW8uaW5ncmVzc19lbmQgPz8gMCxcbiAgICB9KTtcbiAgICBzaW5vbi5zdHViKHV0aWxzLCAndmFsaWRhdGVFeHBpcmVUaW1lJykucmV0dXJucyh0cnVlKTtcblxuICAgIHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyLnNlbmRlcih0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzLCB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpO1xuICAgIHR4QnVpbGRlci5yZWNlaXZlcklkKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpO1xuICAgIHR4QnVpbGRlci5hbW91bnQoJzEwJyk7XG4gICAgdHhCdWlsZGVyLm1lbW8odGVzdERhdGEuTWV0YURhdGFXaXRoTWVtby5tZW1vKTtcblxuICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIHR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbjtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzaW5vbi5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcGFyc2UgYW4gdW5zaWduZWQgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkVW5zaWduZWRUeG4gPSBhd2FpdCBmYWN0b3J5LnBhcnNlVHJhbnNhY3Rpb24odGVzdERhdGEuUGF5bG9hZHNEYXRhLnVuc2lnbmVkX3RyYW5zYWN0aW9uLCBmYWxzZSk7XG4gICAgdHhuLnNob3VsZC5iZS5hbi5PYmplY3QoKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKHBhcnNlZFVuc2lnbmVkVHhuLCB0ZXN0RGF0YS5QYXJzZWRVbnNpZ25lZFRyYW5zYWN0aW9uKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXJzZSBhbiBzaWduZWQgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkU2lnbmVkVHhuID0gYXdhaXQgZmFjdG9yeS5wYXJzZVRyYW5zYWN0aW9uKHRlc3REYXRhLlNpZ25lZFRyYW5zYWN0aW9uLCB0cnVlKTtcbiAgICB0eG4uc2hvdWxkLmJlLmFuLk9iamVjdCgpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwocGFyc2VkU2lnbmVkVHhuLCB0ZXN0RGF0YS5QYXJzZWRTaWduZWRUcmFuc2FjdGlvbik7XG4gIH0pO1xuXG4gIGl0KCdzdGFydCBhbmQgYnVpbGQgYSB0cmFuc2ZlciB0eCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpY3BUcmFuc2FjdGlvbiA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5pY3BUcmFuc2FjdGlvbjtcbiAgICBjb25zdCBwYXlsb2Fkc0RhdGEgPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24ucGF5bG9hZHNEYXRhO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5tZXRhZGF0YS5tZW1vLCB0ZXN0RGF0YS5NZXRhRGF0YVdpdGhNZW1vLm1lbW8pO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5vcGVyYXRpb25zWzBdLmFjY291bnQuYWRkcmVzcywgdGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyk7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLm9wZXJhdGlvbnNbMV0uYWNjb3VudC5hZGRyZXNzLCB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKTtcbiAgICBzaG91bGQuZXF1YWwoaWNwVHJhbnNhY3Rpb24ub3BlcmF0aW9uc1swXS5hbW91bnQudmFsdWUsICctMTAnKTtcbiAgICBzaG91bGQuZXF1YWwoaWNwVHJhbnNhY3Rpb24ub3BlcmF0aW9uc1sxXS5hbW91bnQudmFsdWUsICcxMCcpO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5vcGVyYXRpb25zWzJdLmFtb3VudC52YWx1ZSwgJy0xMDAwMCcpO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5wdWJsaWNfa2V5c1swXS5oZXhfYnl0ZXMsIHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSk7XG4gICAgcGF5bG9hZHNEYXRhLnBheWxvYWRzLnNob3VsZC5iZS5hbi5BcnJheSgpO1xuICAgIHBheWxvYWRzRGF0YS5wYXlsb2Fkcy5sZW5ndGguc2hvdWxkLmVxdWFsKDEpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwodHhCdWlsZGVyLnBheWxvYWREYXRhKCksIHRlc3REYXRhLlBheWxvYWRzRGF0YSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbChwYXlsb2Fkc0RhdGEucGF5bG9hZHMsIHRlc3REYXRhLlBheWxvYWRzRGF0YS5wYXlsb2Fkcyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZmFpbCB0byBidWlsZCBhIHR4biB3aXRob3V0IHNlbmRlcicsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldFRyYW5zZmVyQnVpbGRlcigpO1xuICAgIHR4QnVpbGRlci5yZWNlaXZlcklkKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpO1xuICAgIHR4QnVpbGRlci5hbW91bnQoJzEwJyk7XG4gICAgdHhCdWlsZGVyLm1lbW8oMTIzNDU2KTtcbiAgICBhd2FpdCB0eEJ1aWxkZXIuYnVpbGQoKS5zaG91bGQucmVqZWN0ZWRXaXRoKCdzZW5kZXIgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJyk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgZmFpbCB0byBidWlsZCBhIHR4biB3aXRoIGluY29ycmVjdCBtZW1vJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyLnNlbmRlcih0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzLCB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpO1xuICAgIHR4QnVpbGRlci5yZWNlaXZlcklkKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpO1xuICAgIHR4QnVpbGRlci5hbW91bnQoJzEwJyk7XG4gICAgY29uc3QgaW5jb3JyZWN0TWVtb3MgPSBbJ2FiY2QnLCB1bmRlZmluZWRdO1xuICAgIGZvciAoY29uc3QgbWVtbyBvZiBpbmNvcnJlY3RNZW1vcykge1xuICAgICAgYXNzZXJ0LnRocm93cygoKSA9PiB0eEJ1aWxkZXIubWVtbyhOdW1iZXIobWVtbykpLCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIGBJbnZhbGlkIG1lbW86ICR7TnVtYmVyKG1lbW8pfWApO1xuICAgIH1cbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBmYWlsIHRvIGJ1aWxkIGEgdHhuIHdpdGhvdXQgYW1vdW50JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgdHhCdWlsZGVyLnNlbmRlcih0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5hZGRyZXNzLCB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXkpO1xuICAgIHR4QnVpbGRlci5yZWNlaXZlcklkKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQyLmFkZHJlc3MpO1xuICAgIHR4QnVpbGRlci5tZW1vKDEyMzQ1Nik7XG4gICAgYXdhaXQgdHhCdWlsZGVyLmJ1aWxkKCkuc2hvdWxkLnJlamVjdGVkV2l0aCgnYW1vdW50IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIGJ1aWxkIGEgc2lnbmVkIHR4biBhbmQgZ2l2ZSB0eG4gaW4gYnJvYWRjYXN0IGZvcm1hdCcsIGFzeW5jICgpID0+IHtcbiAgICB0eG4uYWRkU2lnbmF0dXJlKHRlc3REYXRhLlNpZ25hdHVyZXMpO1xuICAgIHR4QnVpbGRlci5jb21iaW5lKCk7XG4gICAgY29uc3Qgc2lnbmVkVHhuID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uLnNpZ25lZFRyYW5zYWN0aW9uO1xuICAgIHNpZ25lZFR4bi5zaG91bGQuYmUuYS5TdHJpbmcoKTtcbiAgICBzaG91bGQuZXF1YWwoc2lnbmVkVHhuLCB0ZXN0RGF0YS5TaWduZWRUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgYnJvYWRjYXN0VHhuID0gdHhCdWlsZGVyLnRyYW5zYWN0aW9uLnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgYnJvYWRjYXN0VHhuLnNob3VsZC5iZS5hLlN0cmluZygpO1xuICAgIHNob3VsZC5lcXVhbChicm9hZGNhc3RUeG4sIHNpZ25lZFR4bik7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgc2lnbiBhIHR4biBhbmQgdGhlbiBnaXZlIHR4biBpbiBicm9hZGNhc3QgZm9ybWF0JywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGJhc2VLZXk6IEJhc2VLZXkgPSB7IGtleTogdGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEuc2VjcmV0S2V5IH07XG4gICAgdHhCdWlsZGVyLnNpZ24oYmFzZUtleSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbCh0eEJ1aWxkZXIuc2lnbmF0dXJlUGF5bG9hZCgpLCB0ZXN0RGF0YS5TaWduYXR1cmVzKTtcbiAgICB0eEJ1aWxkZXIuY29tYmluZSgpO1xuICAgIGNvbnN0IHNpZ25lZFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5zaWduZWRUcmFuc2FjdGlvbjtcbiAgICBzaWduZWRUeG4uc2hvdWxkLmJlLmEuU3RyaW5nKCk7XG4gICAgc2hvdWxkLmVxdWFsKHNpZ25lZFR4biwgdGVzdERhdGEuU2lnbmVkVHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uSGFzaCA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5pZDtcbiAgICBzaG91bGQuZXF1YWwodHJhbnNhY3Rpb25IYXNoLCB0ZXN0RGF0YS5PbkNoYWluVHJhbnNhY3Rpb25IYXNoKTtcbiAgICBjb25zdCBicm9hZGNhc3RUeG4gPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24udG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICBicm9hZGNhc3RUeG4uc2hvdWxkLmJlLmEuU3RyaW5nKCk7XG4gICAgc2hvdWxkLmVxdWFsKGJyb2FkY2FzdFR4biwgc2lnbmVkVHhuKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBnZW5lcmF0ZSBhIGNvcnJlY3QgdHhuIGhhc2gnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgdW5zaWduZWRUeG4gPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24udW5zaWduZWRUcmFuc2FjdGlvbjtcbiAgICB1bnNpZ25lZFR4bi5zaG91bGQuYmUuYS5TdHJpbmcoKTtcbiAgICBjb25zdCBwYXlsb2Fkc0RhdGEgPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24ucGF5bG9hZHNEYXRhO1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRUeEZvcm1hdCA9IHtcbiAgICAgIHNlcmlhbGl6ZWRUeEhleDogcGF5bG9hZHNEYXRhLFxuICAgICAgcHVibGljS2V5OiB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5wdWJsaWNLZXksXG4gICAgfTtcbiAgICBjb25zdCBzZXJpYWxpemVkVHhIZXggPSBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShzZXJpYWxpemVkVHhGb3JtYXQpLCAndXRmLTgnKS50b1N0cmluZygnaGV4Jyk7XG4gICAgYXdhaXQgdHhuLmZyb21SYXdUcmFuc2FjdGlvbihzZXJpYWxpemVkVHhIZXgpO1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uSGFzaCA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5pZDtcbiAgICBzaG91bGQuZXF1YWwodHJhbnNhY3Rpb25IYXNoLCB0ZXN0RGF0YS5PbkNoYWluVHJhbnNhY3Rpb25IYXNoKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIHR4biB0aGVuIHBhcnNlIGl0IGFuZCB0aGVuIGFnYWluIGJ1aWxkJywgYXN5bmMgKCkgPT4ge1xuICAgIHNpbm9uLnJlc3RvcmUoKTsgLy8gZG8gbm90IHN0dWIgZ2V0TWV0YURhdGFcbiAgICB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldFRyYW5zZmVyQnVpbGRlcigpO1xuICAgIHR4QnVpbGRlci5zZW5kZXIodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcywgdGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KTtcbiAgICB0eEJ1aWxkZXIucmVjZWl2ZXJJZCh0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKTtcbiAgICB0eEJ1aWxkZXIuYW1vdW50KCcxMCcpO1xuICAgIHR4QnVpbGRlci5tZW1vKHRlc3REYXRhLk1ldGFEYXRhV2l0aE1lbW8ubWVtbyk7XG4gICAgdHhCdWlsZGVyLmluZ3Jlc3NFbmQoMTkwNDM4NDU2NDAwMDAwMDAwMG4pO1xuICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIHR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbjtcbiAgICBjb25zdCB1bnNpZ25lZFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi51bnNpZ25lZFRyYW5zYWN0aW9uO1xuICAgIHVuc2lnbmVkVHhuLnNob3VsZC5iZS5hLlN0cmluZygpO1xuICAgIGNvbnN0IHBheWxvYWRzRGF0YSA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5wYXlsb2Fkc0RhdGE7XG4gICAgY29uc3Qgc2VyaWFsaXplZFR4Rm9ybWF0ID0ge1xuICAgICAgc2VyaWFsaXplZFR4SGV4OiBwYXlsb2Fkc0RhdGEsXG4gICAgICBwdWJsaWNLZXk6IHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSxcbiAgICB9O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRUeEhleCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHNlcmlhbGl6ZWRUeEZvcm1hdCksICd1dGYtOCcpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBhd2FpdCB0eG4uZnJvbVJhd1RyYW5zYWN0aW9uKHNlcmlhbGl6ZWRUeEhleCk7XG4gICAgY29uc3QgYmFzZUtleTogQmFzZUtleSA9IHsga2V5OiB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5zZWNyZXRLZXkgfTtcbiAgICB0eEJ1aWxkZXIuc2lnbihiYXNlS2V5KTtcbiAgICB0eEJ1aWxkZXIuY29tYmluZSgpO1xuICAgIGNvbnN0IHNpZ25lZFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5zaWduZWRUcmFuc2FjdGlvbjtcbiAgICBzaWduZWRUeG4uc2hvdWxkLmJlLmEuU3RyaW5nKCk7XG4gICAgdHhCdWlsZGVyLnRyYW5zYWN0aW9uLmljcFRyYW5zYWN0aW9uLm1ldGFkYXRhLmluZ3Jlc3Nfc3RhcnQuc2hvdWxkLmVxdWFsKFxuICAgICAgTnVtYmVyKDE5MDQzODQ1NjQwMDAwMDAwMDBuKSAtIE1BWF9JTkdSRVNTX1RUTFxuICAgICk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdJQ1AgVHJhbnNhY3Rpb24gQnVpbGRlciB3aXRoIGRlZmF1bHQgbWVtbyBhcyAwJywgYXN5bmMgKCkgPT4ge1xuICBjb25zdCBmYWN0b3J5ID0gZ2V0QnVpbGRlckZhY3RvcnkoJ3RpY3AnKTtcbiAgbGV0IHR4QnVpbGRlcjogYW55O1xuICBsZXQgdHhuOiBhbnk7XG5cbiAgYmVmb3JlRWFjaChhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgc2lub24uc3R1Yih1dGlscywgJ2dldE1ldGFEYXRhJykucmV0dXJucyh7XG4gICAgICBtZXRhRGF0YTogdGVzdERhdGEuTWV0YURhdGFXaXRoRGVmYXVsdE1lbW8sXG4gICAgICBpbmdyZXNzRW5kVGltZTogdGVzdERhdGEuTWV0YURhdGFXaXRoRGVmYXVsdE1lbW8uaW5ncmVzc19lbmQgPz8gMCxcbiAgICB9KTtcblxuICAgIHR4QnVpbGRlciA9IGZhY3RvcnkuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgdGVzdERhdGEuUGFyc2VkVW5zaWduZWRUcmFuc2FjdGlvbi5tZXRhZGF0YS5tZW1vID0gREVGQVVMVF9NRU1PO1xuICAgIHRlc3REYXRhLlBhcnNlZFNpZ25lZFRyYW5zYWN0aW9uLm1ldGFkYXRhLm1lbW8gPSBERUZBVUxUX01FTU87XG5cbiAgICB0eEJ1aWxkZXIucmVjZWl2ZXJJZCh0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKTtcbiAgICB0eEJ1aWxkZXIuc2VuZGVyKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLmFkZHJlc3MsIHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSk7XG4gICAgdHhCdWlsZGVyLnJlY2VpdmVySWQodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcyk7XG4gICAgdHhCdWlsZGVyLmFtb3VudCgnMTAnKTtcblxuICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIHR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbjtcbiAgfSk7XG5cbiAgYWZ0ZXJFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBzaW5vbi5yZXN0b3JlKCk7XG4gIH0pO1xuXG4gIGl0KCdzaG91bGQgcGFyc2UgYW4gdW5zaWduZWQgdHJhbnNhY3Rpb24gd2l0aCBkZWZhdWx0IG1lbW8nLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkVW5zaWduZWRUeG4gPSBhd2FpdCBmYWN0b3J5LnBhcnNlVHJhbnNhY3Rpb24oXG4gICAgICB0ZXN0RGF0YS5QYXlsb2Fkc0RhdGFXaXRoRGVmYXVsdE1lbW8udW5zaWduZWRfdHJhbnNhY3Rpb24sXG4gICAgICBmYWxzZVxuICAgICk7XG4gICAgdHhuLnNob3VsZC5iZS5hbi5PYmplY3QoKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKHBhcnNlZFVuc2lnbmVkVHhuLCB0ZXN0RGF0YS5QYXJzZWRVbnNpZ25lZFRyYW5zYWN0aW9uKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBwYXJzZSBhbiBzaWduZWQgdHJhbnNhY3Rpb24gd2l0aCBkZWZhdWx0IG1lbW8nLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgcGFyc2VkU2lnbmVkVHhuID0gYXdhaXQgZmFjdG9yeS5wYXJzZVRyYW5zYWN0aW9uKHRlc3REYXRhLlNpZ25lZFRyYW5zYWN0aW9uV2l0aERlZmF1bHRNZW1vLCB0cnVlKTtcbiAgICB0eG4uc2hvdWxkLmJlLmFuLk9iamVjdCgpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwocGFyc2VkU2lnbmVkVHhuLCB0ZXN0RGF0YS5QYXJzZWRTaWduZWRUcmFuc2FjdGlvbik7XG4gIH0pO1xuXG4gIGl0KCdzdGFydCBhbmQgYnVpbGQgYSB0cmFuc2ZlciB0eCB3aXRoIGRlZmF1bHQgbWVtbycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBpY3BUcmFuc2FjdGlvbiA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5pY3BUcmFuc2FjdGlvbjtcbiAgICBjb25zdCBwYXlsb2Fkc0RhdGEgPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24ucGF5bG9hZHNEYXRhO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5tZXRhZGF0YS5tZW1vLCBERUZBVUxUX01FTU8pO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5vcGVyYXRpb25zWzBdLmFjY291bnQuYWRkcmVzcywgdGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEuYWRkcmVzcyk7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLm9wZXJhdGlvbnNbMV0uYWNjb3VudC5hZGRyZXNzLCB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50Mi5hZGRyZXNzKTtcbiAgICBzaG91bGQuZXF1YWwoaWNwVHJhbnNhY3Rpb24ub3BlcmF0aW9uc1syXS5hY2NvdW50LmFkZHJlc3MsIHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLmFkZHJlc3MpO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5vcGVyYXRpb25zWzBdLmFtb3VudC52YWx1ZSwgJy0xMCcpO1xuICAgIHNob3VsZC5lcXVhbChpY3BUcmFuc2FjdGlvbi5vcGVyYXRpb25zWzFdLmFtb3VudC52YWx1ZSwgJzEwJyk7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLm9wZXJhdGlvbnNbMl0uYW1vdW50LnZhbHVlLCAnLTEwMDAwJyk7XG4gICAgc2hvdWxkLmVxdWFsKGljcFRyYW5zYWN0aW9uLnB1YmxpY19rZXlzWzBdLmhleF9ieXRlcywgdGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDEucHVibGljS2V5KTtcbiAgICBwYXlsb2Fkc0RhdGEucGF5bG9hZHMuc2hvdWxkLmJlLmFuLkFycmF5KCk7XG4gICAgcGF5bG9hZHNEYXRhLnBheWxvYWRzLmxlbmd0aC5zaG91bGQuZXF1YWwoMSk7XG4gICAgc2hvdWxkLmRlZXBFcXVhbCh0eEJ1aWxkZXIucGF5bG9hZERhdGEoKSwgdGVzdERhdGEuUGF5bG9hZHNEYXRhV2l0aERlZmF1bHRNZW1vKTtcbiAgICBzaG91bGQuZGVlcEVxdWFsKHBheWxvYWRzRGF0YS5wYXlsb2FkcywgdGVzdERhdGEuUGF5bG9hZHNEYXRhV2l0aERlZmF1bHRNZW1vLnBheWxvYWRzKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIHNpZ25lZCB0eG4gd2l0aCBkZWZhdWx0IG1lbW8gYW5kIGdpdmUgdHhuIGluIGJyb2FkY2FzdCBmb3JtYXQnLCBhc3luYyAoKSA9PiB7XG4gICAgdHhuLmFkZFNpZ25hdHVyZSh0ZXN0RGF0YS5TaWduYXR1cmVzV2l0aERlZmF1bHRNZW1vKTtcbiAgICB0eEJ1aWxkZXIuY29tYmluZSgpO1xuICAgIGNvbnN0IHNpZ25lZFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5zaWduZWRUcmFuc2FjdGlvbjtcbiAgICBzaWduZWRUeG4uc2hvdWxkLmJlLmEuU3RyaW5nKCk7XG4gICAgc2hvdWxkLmVxdWFsKHNpZ25lZFR4biwgdGVzdERhdGEuU2lnbmVkVHJhbnNhY3Rpb25XaXRoRGVmYXVsdE1lbW8pO1xuICAgIGNvbnN0IGJyb2FkY2FzdFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi50b0Jyb2FkY2FzdEZvcm1hdCgpO1xuICAgIGJyb2FkY2FzdFR4bi5zaG91bGQuYmUuYS5TdHJpbmcoKTtcbiAgICBzaG91bGQuZXF1YWwoYnJvYWRjYXN0VHhuLCBzaWduZWRUeG4pO1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHNpZ24gYSB0eG4gd2l0aCBkZWZhdWx0IG1lbW8gYW5kIHRoZW4gZ2l2ZSB0eG4gaW4gYnJvYWRjYXN0IGZvcm1hdCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBiYXNlS2V5OiBCYXNlS2V5ID0geyBrZXk6IHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnNlY3JldEtleSB9O1xuICAgIHR4QnVpbGRlci5zaWduKGJhc2VLZXkpO1xuICAgIHNob3VsZC5kZWVwRXF1YWwodHhCdWlsZGVyLnNpZ25hdHVyZVBheWxvYWQoKSwgdGVzdERhdGEuU2lnbmF0dXJlc1dpdGhEZWZhdWx0TWVtbyk7XG4gICAgdHhCdWlsZGVyLmNvbWJpbmUoKTtcbiAgICBjb25zdCBzaWduZWRUeG4gPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24uc2lnbmVkVHJhbnNhY3Rpb247XG4gICAgc2lnbmVkVHhuLnNob3VsZC5iZS5hLlN0cmluZygpO1xuICAgIHNob3VsZC5lcXVhbChzaWduZWRUeG4sIHRlc3REYXRhLlNpZ25lZFRyYW5zYWN0aW9uV2l0aERlZmF1bHRNZW1vKTtcbiAgICBjb25zdCBicm9hZGNhc3RUeG4gPSB0eEJ1aWxkZXIudHJhbnNhY3Rpb24udG9Ccm9hZGNhc3RGb3JtYXQoKTtcbiAgICBicm9hZGNhc3RUeG4uc2hvdWxkLmJlLmEuU3RyaW5nKCk7XG4gICAgc2hvdWxkLmVxdWFsKGJyb2FkY2FzdFR4biwgc2lnbmVkVHhuKTtcbiAgfSk7XG5cbiAgaXQoJ3Nob3VsZCBidWlsZCBhIHR4biB3aXRob3V0IG1lbW8gdGhlbiBwYXJzZSBpdCBhbmQgdGhlbiBhZ2FpbiBidWlsZCcsIGFzeW5jICgpID0+IHtcbiAgICBzaW5vbi5yZXN0b3JlKCk7IC8vIGRvIG5vdCBzdHViIGdldE1ldGFEYXRhXG4gICAgdHhCdWlsZGVyID0gZmFjdG9yeS5nZXRUcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICB0eEJ1aWxkZXIuc2VuZGVyKHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLmFkZHJlc3MsIHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSk7XG4gICAgdHhCdWlsZGVyLnJlY2VpdmVySWQodGVzdERhdGEuQWNjb3VudHMuYWNjb3VudDIuYWRkcmVzcyk7XG4gICAgdHhCdWlsZGVyLmFtb3VudCgnMTAnKTtcblxuICAgIGF3YWl0IHR4QnVpbGRlci5idWlsZCgpO1xuICAgIHR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbjtcbiAgICBjb25zdCB1bnNpZ25lZFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi51bnNpZ25lZFRyYW5zYWN0aW9uO1xuICAgIHVuc2lnbmVkVHhuLnNob3VsZC5iZS5hLlN0cmluZygpO1xuICAgIGNvbnN0IHBheWxvYWRzRGF0YSA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5wYXlsb2Fkc0RhdGE7XG4gICAgY29uc3Qgc2VyaWFsaXplZFR4Rm9ybWF0ID0ge1xuICAgICAgc2VyaWFsaXplZFR4SGV4OiBwYXlsb2Fkc0RhdGEsXG4gICAgICBwdWJsaWNLZXk6IHRlc3REYXRhLkFjY291bnRzLmFjY291bnQxLnB1YmxpY0tleSxcbiAgICB9O1xuICAgIGNvbnN0IHNlcmlhbGl6ZWRUeEhleCA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHNlcmlhbGl6ZWRUeEZvcm1hdCksICd1dGYtOCcpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBhd2FpdCB0eG4uZnJvbVJhd1RyYW5zYWN0aW9uKHNlcmlhbGl6ZWRUeEhleCk7XG4gICAgY29uc3QgYmFzZUtleTogQmFzZUtleSA9IHsga2V5OiB0ZXN0RGF0YS5BY2NvdW50cy5hY2NvdW50MS5zZWNyZXRLZXkgfTtcbiAgICB0eEJ1aWxkZXIuc2lnbihiYXNlS2V5KTtcbiAgICB0eEJ1aWxkZXIuY29tYmluZSgpO1xuICAgIGNvbnN0IHNpZ25lZFR4biA9IHR4QnVpbGRlci50cmFuc2FjdGlvbi5zaWduZWRUcmFuc2FjdGlvbjtcbiAgICBzaWduZWRUeG4uc2hvdWxkLmJlLmEuU3RyaW5nKCk7XG4gIH0pO1xufSk7XG4iXX0=
|