@bitgo-beta/sdk-core 8.2.1-beta.617 → 8.2.1-beta.618

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.
@@ -59,7 +59,7 @@ class Eddsa {
59
59
  if (seed && seed.length !== 64) {
60
60
  throw new Error('Seed must have length 64');
61
61
  }
62
- const seedchain = seed !== null && seed !== void 0 ? seed : (0, crypto_1.randomBytes)(64);
62
+ const seedchain = seed ?? (0, crypto_1.randomBytes)(64);
63
63
  const actualSeed = seedchain.slice(0, 32);
64
64
  const chaincode = seedchain.slice(32);
65
65
  const h = (0, crypto_1.createHash)('sha512').update(actualSeed).digest();
@@ -213,7 +213,7 @@ class Eddsa {
213
213
  const { shares: split_u, v } = Eddsa.shamir.split((0, util_1.bigIntFromBufferLE)(Buffer.from(pShare.u, 'hex')), pShare.t, pShare.n);
214
214
  // Generate nonce contribution.
215
215
  const prefix = Buffer.from(pShare.prefix, 'hex');
216
- const randomBuffer = seed !== null && seed !== void 0 ? seed : (0, crypto_1.randomBytes)(64);
216
+ const randomBuffer = seed ?? (0, crypto_1.randomBytes)(64);
217
217
  const digest = (0, crypto_1.createHash)('sha512')
218
218
  .update(Buffer.concat([prefix, message, randomBuffer]))
219
219
  .digest();
@@ -302,4 +302,4 @@ Eddsa.curve = new curves_1.Ed25519Curve();
302
302
  Eddsa.shamir = new shamir_1.default(Eddsa.curve);
303
303
  Eddsa.initialized = false;
304
304
  exports.default = Eddsa;
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lZGRzYS9lZGRzYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxtQ0FBaUQ7QUFDakQseUNBQTRDO0FBQzVDLDBEQUFrQztBQUNsQyxxQ0FBK0c7QUFlL0csb0RBQTRCO0FBRzVCLFFBQVE7QUFDUixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsc0VBQXNFLENBQUMsQ0FBQztBQUU1RixNQUFxQixLQUFLO0lBS3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQWU7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixNQUFNLHFCQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQztRQUVELE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUlELFlBQVksTUFBZTtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWEsRUFBRSxTQUFpQixFQUFFLFNBQWlCLEVBQUUsSUFBYTtRQUN6RSxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE1BQU0s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R0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBQSx5QkFBa0IsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEgsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXBFLE1BQU0sT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBQSx5QkFBa0IsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEcsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRW5GLE1BQU0sT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBQSx5QkFBa0IsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEcsTUFBTSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXBGLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FB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QUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUEseUJBQWtCLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RixNQUFNLHFCQUFxQixHQUFHLElBQUEseUJBQWtCLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztZQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDekQsQ0FBQztJQUNILENBQUM7O0FBdlRNLFdBQUssR0FBaUIsSUFBSSxxQkFBWSxFQUFFLENBQUM7QUFDekMsWUFBTSxHQUFXLElBQUksZ0JBQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDekMsaUJBQVcsR0FBRyxLQUFLLENBQUM7a0JBSFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTW9kdWxlIHByb3ZpZGVzIGZ1bmN0aW9ucyBmb3IgTVBDIHVzaW5nIHRocmVzaG9sZCBzaWduYXR1cmUgc2NoZW1lIChUU1MpLiBJdCBjb250YWluc1xuICogZnVuY3Rpb25zIGZvciBrZXkgZ2VuZXJhdGlvbiBhbmQgbWVzc2FnZSBzaWduaW5nIHdpdGggRWREU0EuXG4gKlxuICpcbiAqID09PT09PT09PT09PT09PT09PT09PT1cbiAqIEVkRFNBIEtleSBHZW5lcmF0aW9uXG4gKiA9PT09PT09PT09PT09PT09PT09PT09XG4gKiAxLiBFYWNoIHNpZ25lciBnZW5lcmF0ZXMgdGhlaXIgb3duIGtleSBzaGFyZSwgd2hpY2ggaW52b2x2ZXMgYSBwcml2YXRlIHUtc2hhcmUgYW5kIGEgcHVibGljIHktc2hhcmUuXG4gKiAyLiBTaWduZXJzIGRpc3RyaWJ1dGUgdGhlaXIgeS1zaGFyZSB0byBvdGhlciBzaWduZXJzLlxuICogMy4gQWZ0ZXIgZXhjaGFuZ2luZyB5LXNoYXJlcyB0aGUgbmV4dCBwaGFzZSBpcyB0byBjb21iaW5lIGtleSBzaGFyZXMuIEVhY2ggc2lnbmVyIGNvbWJpbmVzIHRoZWlyIHUtc2hhcmVcbiAqICAgIHdpdGggdGhlIHktc2hhcmVzIHJlY2VpdmVkIGZyb20gb3RoZXIgc2lnbmVycyBpbiBvcmRlciB0byBnZW5lcmF0ZSBhIHAtc2hhcmUgZm9yIHRoZW1zZWx2ZXMuIFdlXG4gKiAgICBhbHNvIHNhdmUgai1zaGFyZXMgZm9yIG90aGVyIHNpZ25lcnMuXG4gKiA0LiBBdCB0aGlzIHBvaW50IHRoZSBwbGF5ZXJzIGRvIG5vdCBkaXN0cmlidXRlIGFueSBzaGFyZXMgYW5kIHRoZSBmaXJzdCBwaGFzZSBvZiB0aGVcbiAqICAgIHNpZ25pbmcgcHJvdG9jb2wgaXMgY29tcGxldGUuXG4gKlxuICogPT09PT09PT09PT09PT09PT09PT09PVxuICogRWREU0EgU2lnbmluZ1xuICogPT09PT09PT09PT09PT09PT09PT09PVxuICogMS4gVGhlIHBhcnRpZXMgZnJvbSBrZXkgZ2VuZXJhdGlvbiBkZWNpZGUgdGhleSB3YW50IHRvIHNpZ24gc29tZXRoaW5nLiBUaGV5IGJlZ2luIHRoZSBzaWduaW5nIHByb3RvY29sXG4gKiAgICBieSBnZW5lcmF0aW5nIHNoYXJlcyBvZiBhbiBlcGhlbWVyYWwga2V5LlxuICpcbiAqICAgIGEpIEVhY2ggc2lnbmVyIHVzZXMgaGlzIHAtc2hhcmUgYW5kIHRoZSBqLXNoYXJlcyBzdG9yZWQgZm9yIG90aGVyIHBsYXllcnMgdG8gZ2VuZXJhdGUgaGlzIHNpZ25pbmcgc2hhcmUuXG4gKiAgICBiKSBUaGlzIHJlc3VsdHMgaW4gZWFjaCBzaWduZXIgaGF2aW5nIGEgcHJpdmF0ZSB4LXNoYXJlIGFuZCBwdWJsaWMgci1zaGFyZXMuXG4gKlxuICogMi4gU2lnbmVycyBkaXN0cmlidXRlIHRoZWlyIHItc2hhcmVzIHRvIG90aGVyIHNpZ25lcnMuXG4gKiAzLiBBZnRlciBleGNoYW5naW5nIHItc2hhcmVzLCBlYWNoIHNpZ25lciBzaWducyB0aGVpciBzaGFyZSBvZiB0aGUgZXBoZW1lcmFsIGtleSB1c2luZyB0aGVpciBwcml2YXRlXG4gKiAgICB4LXNoYXJlIHdpdGggdGhlIHItc2hhcmVzIGZyb20gb3RoZXIgc2lnbmVycy5cbiAqIDQuIFRoaXMgcmVzdWx0cyBpbiBlYWNoIHNpZ25lciBoYXZpbmcgYSBwdWJsaWMgZy1zaGFyZSB3aGljaCB0aGV5IHNlbmQgdG8gdGhlIG90aGVyIHNpZ25lcnMuXG4gKiA1LiBBZnRlciB0aGUgc2lnbmVycyBicm9hZGNhc3QgdGhlaXIgZy1zaGFyZXMsIHRoZSBmaW5hbCBzaWduYXR1cmUgY2FuIGJlIHJlLWNvbnN0cnVjdGVkIGluZGVwZW5kZW50bHkuXG4gKi9cbmltcG9ydCB7IHJhbmRvbUJ5dGVzLCBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IEVkMjU1MTlDdXJ2ZSB9IGZyb20gJy4uLy4uL2N1cnZlcyc7XG5pbXBvcnQgU2hhbWlyIGZyb20gJy4uLy4uL3NoYW1pcic7XG5pbXBvcnQgeyBiaWdJbnRGcm9tQnVmZmVyTEUsIGJpZ0ludFRvQnVmZmVyTEUsIGJpZ0ludEZyb21CdWZmZXJCRSwgYmlnSW50VG9CdWZmZXJCRSwgY2xhbXAgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB7XG4gIEtleVNoYXJlLFxuICBVU2hhcmUsXG4gIFlTaGFyZSxcbiAgS2V5Q29tYmluZSxcbiAgUFNoYXJlLFxuICBTdWJrZXlTaGFyZSxcbiAgSlNoYXJlLFxuICBTaWduU2hhcmUsXG4gIFNpZ25hdHVyZSxcbiAgWFNoYXJlLFxuICBSU2hhcmUsXG4gIEdTaGFyZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBIRFRyZWUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5cbi8vIDJeMjU2XG5jb25zdCBiYXNlID0gQmlnSW50KCcweDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcpO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFZGRzYSB7XG4gIHN0YXRpYyBjdXJ2ZTogRWQyNTUxOUN1cnZlID0gbmV3IEVkMjU1MTlDdXJ2ZSgpO1xuICBzdGF0aWMgc2hhbWlyOiBTaGFtaXIgPSBuZXcgU2hhbWlyKEVkZHNhLmN1cnZlKTtcbiAgc3RhdGljIGluaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgc3RhdGljIGFzeW5jIGluaXRpYWxpemUoaGRUcmVlPzogSERUcmVlKTogUHJvbWlzZTxFZGRzYT4ge1xuICAgIGlmICghRWRkc2EuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIGF3YWl0IEVkMjU1MTlDdXJ2ZS5pbml0aWFsaXplKCk7XG4gICAgICBFZGRzYS5pbml0aWFsaXplZCA9IHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBFZGRzYShoZFRyZWUpO1xuICB9XG5cbiAgaGRUcmVlPzogSERUcmVlO1xuXG4gIGNvbnN0cnVjdG9yKGhkVHJlZT86IEhEVHJlZSkge1xuICAgIHRoaXMuaGRUcmVlID0gaGRUcmVlO1xuICB9XG5cbiAga2V5U2hhcmUoaW5kZXg6IG51bWJlciwgdGhyZXNob2xkOiBudW1iZXIsIG51bVNoYXJlczogbnVtYmVyLCBzZWVkPzogQnVmZmVyKTogS2V5U2hhcmUge1xuICAgIGlmICghKGluZGV4ID4gMCAmJiBpbmRleCA8PSBudW1TaGFyZXMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgS2V5U2hhcmUgY29uZmlnJyk7XG4gICAgfVxuICAgIGlmIChzZWVkICYmIHNlZWQubGVuZ3RoICE9PSA2NCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZWVkIG11c3QgaGF2ZSBsZW5ndGggNjQnKTtcbiAgICB9XG4gICAgY29uc3Qgc2VlZGNoYWluID0gc2VlZCA/PyByYW5kb21CeXRlcyg2NCk7XG4gICAgY29uc3QgYWN0dWFsU2VlZCA9IHNlZWRjaGFpbi5zbGljZSgwLCAzMik7XG4gICAgY29uc3QgY2hhaW5jb2RlID0gc2VlZGNoYWluLnNsaWNlKDMyKTtcbiAgICBjb25zdCBoID0gY3JlYXRlSGFzaCgnc2hhNTEyJykudXBkYXRlKGFjdHVhbFNlZWQpLmRpZ2VzdCgpO1xuICAgIGNvbnN0IHUgPSBjbGFtcChiaWdJbnRGcm9tQnVmZmVyTEUoaC5zbGljZSgwLCAzMikpKTtcbiAgICBjb25zdCB5ID0gRWRkc2EuY3VydmUuYmFzZVBvaW50TXVsdCh1KTtcbiAgICBjb25zdCB7IHNoYXJlczogc3BsaXRfdSwgdiB9ID0gRWRkc2Euc2hhbWlyLnNwbGl0KHUsIHRocmVzaG9sZCwgbnVtU2hhcmVzKTtcblxuICAgIGNvbnN0IFBfaTogVVNoYXJlID0ge1xuICAgICAgaTogaW5kZXgsXG4gICAgICB0OiB0aHJlc2hvbGQsXG4gICAgICBuOiBudW1TaGFyZXMsXG4gICAgICB5OiBiaWdJbnRUb0J1ZmZlckxFKHksIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICBzZWVkOiBhY3R1YWxTZWVkLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIGNoYWluY29kZTogY2hhaW5jb2RlLnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICAgIGNvbnN0IHNoYXJlczogS2V5U2hhcmUgPSB7XG4gICAgICB1U2hhcmU6IFBfaSxcbiAgICAgIHlTaGFyZXM6IHt9LFxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IGluZCBpbiBzcGxpdF91KSB7XG4gICAgICBjb25zdCBpID0gcGFyc2VJbnQoaW5kLCAxMCk7XG4gICAgICBpZiAoaSA9PT0gaW5kZXgpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBzaGFyZXMueVNoYXJlc1tpXSA9IHtcbiAgICAgICAgaSxcbiAgICAgICAgajogUF9pLmksXG4gICAgICAgIHk6IGJpZ0ludFRvQnVmZmVyTEUoeSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgdjogYmlnSW50VG9CdWZmZXJMRSh2WzBdLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB1OiBiaWdJbnRUb0J1ZmZlckxFKHNwbGl0X3VbaW5kXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgY2hhaW5jb2RlOiBjaGFpbmNvZGUudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHNoYXJlcztcbiAgfVxuXG4gIGtleUNvbWJpbmUodVNoYXJlOiBVU2hhcmUsIHlTaGFyZXM6IFlTaGFyZVtdKTogS2V5Q29tYmluZSB7XG4gICAgY29uc3QgaCA9IGNyZWF0ZUhhc2goJ3NoYTUxMicpLnVwZGF0ZShCdWZmZXIuZnJvbSh1U2hhcmUuc2VlZCwgJ2hleCcpKS5kaWdlc3QoKTtcbiAgICBjb25zdCB1ID0gY2xhbXAoYmlnSW50RnJvbUJ1ZmZlckxFKGguc2xpY2UoMCwgMzIpKSk7XG4gICAgY29uc3QgeVZhbHVlcyA9IFt1U2hhcmUsIC4uLnlTaGFyZXNdLm1hcCgoc2hhcmUpID0+IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShzaGFyZS55LCAnaGV4JykpKTtcbiAgICBjb25zdCB5ID0geVZhbHVlcy5yZWR1Y2UoKHBhcnRpYWwsIHNoYXJlKSA9PiBFZGRzYS5jdXJ2ZS5wb2ludEFkZChwYXJ0aWFsLCBzaGFyZSkpO1xuICAgIGNvbnN0IGNoYWluY29kZXMgPSBbdVNoYXJlLCAuLi55U2hhcmVzXS5tYXAoKHsgY2hhaW5jb2RlIH0pID0+IGJpZ0ludEZyb21CdWZmZXJCRShCdWZmZXIuZnJvbShjaGFpbmNvZGUsICdoZXgnKSkpO1xuICAgIGNvbnN0IGNoYWluY29kZSA9IGNoYWluY29kZXMucmVkdWNlKChhY2MsIGNoYWluY29kZSkgPT4gKGFjYyArIGNoYWluY29kZSkgJSBiYXNlKTtcblxuICAgIC8vIFZlcmlmeSBzaGFyZXMuXG4gICAgZm9yIChjb25zdCBzaGFyZSBvZiB5U2hhcmVzKSB7XG4gICAgICBpZiAoJ3YnIGluIHNoYXJlKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgRWRkc2Euc2hhbWlyLnZlcmlmeShcbiAgICAgICAgICAgIGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShzaGFyZS51LCAnaGV4JykpLFxuICAgICAgICAgICAgW2JpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShzaGFyZS55LCAnaGV4JykpLCBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2hhcmUudiEsICdoZXgnKSldLFxuICAgICAgICAgICAgdVNoYXJlLmlcbiAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAvLyBUT0RPKEJHLTYxMDM2KTogRml4IFZlcmlmaWNhdGlvblxuICAgICAgICAgIC8vIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHZlcmlmeSBzaGFyZSBmcm9tIHBhcnRpY2lwYW50ICR7c2hhcmUuan0uIFZlcmlmaWNhdGlvbiBlcnJvcjogJHtlcnJ9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBQX2k6IFBTaGFyZSA9IHtcbiAgICAgIGk6IHVTaGFyZS5pLFxuICAgICAgdDogdVNoYXJlLnQsXG4gICAgICBuOiB1U2hhcmUubixcbiAgICAgIHk6IGJpZ0ludFRvQnVmZmVyTEUoeSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUodSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHByZWZpeDogaC5zbGljZSgzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgY2hhaW5jb2RlOiBiaWdJbnRUb0J1ZmZlckJFKGNoYWluY29kZSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICAgIGNvbnN0IHBsYXllcnM6IEtleUNvbWJpbmUgPSB7XG4gICAgICBwU2hhcmU6IFBfaSxcbiAgICAgIGpTaGFyZXM6IHt9LFxuICAgIH07XG5cbiAgICBmb3IgKGxldCBpbmQgPSAwOyBpbmQgPCB5U2hhcmVzLmxlbmd0aDsgaW5kKyspIHtcbiAgICAgIGNvbnN0IFBfaiA9IHlTaGFyZXNbaW5kXTtcbiAgICAgIHBsYXllcnMualNoYXJlc1tQX2oual0gPSB7XG4gICAgICAgIGk6IFBfai5qLFxuICAgICAgICBqOiBQX2kuaSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBwbGF5ZXJzO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcml2ZXMgYSBjaGlsZCBjb21tb24ga2V5Y2hhaW4gZnJvbSBjb21tb24ga2V5Y2hhaW5cbiAgICpcbiAgICogQHBhcmFtIGNvbW1vbktleWNoYWluIC0gY29tbW9uIGtleWNoYWluIGFzIGEgaGV4IHN0cmluZ1xuICAgKiBAcGFyYW0gcGF0aCAtIGJpcDMyIHBhdGhcbiAgICogQHJldHVybiB7c3RyaW5nfSBkZXJpdmVkIGNvbW1vbiBrZXljaGFpbiBhcyBhIGhleCBzdHJpbmdcbiAgICovXG4gIGRlcml2ZVVuaGFyZGVuZWQoY29tbW9uS2V5Y2hhaW46IHN0cmluZywgcGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5oZFRyZWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3QgZGVyaXZlIGtleSB3aXRob3V0IEhEVHJlZSBpbXBsZW1lbnRhdGlvblwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXljaGFpbiA9IEJ1ZmZlci5mcm9tKGNvbW1vbktleWNoYWluLCAnaGV4Jyk7XG5cbiAgICBjb25zdCBkZXJpdmVkUHVibGljS2V5Y2hhaW4gPSB0aGlzLmhkVHJlZS5wdWJsaWNEZXJpdmUoXG4gICAgICB7XG4gICAgICAgIHBrOiBiaWdJbnRGcm9tQnVmZmVyTEUoa2V5Y2hhaW4uc2xpY2UoMCwgMzIpKSxcbiAgICAgICAgY2hhaW5jb2RlOiBiaWdJbnRGcm9tQnVmZmVyQkUoa2V5Y2hhaW4uc2xpY2UoMzIpKSxcbiAgICAgIH0sXG4gICAgICBwYXRoXG4gICAgKTtcblxuICAgIGNvbnN0IGRlcml2ZWRQayA9IGJpZ0ludFRvQnVmZmVyTEUoZGVyaXZlZFB1YmxpY0tleWNoYWluLnBrLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IGRlcml2ZWRDaGFpbmNvZGUgPSBiaWdJbnRUb0J1ZmZlckJFKGRlcml2ZWRQdWJsaWNLZXljaGFpbi5jaGFpbmNvZGUsIDMyKS50b1N0cmluZygnaGV4Jyk7XG5cbiAgICByZXR1cm4gZGVyaXZlZFBrICsgZGVyaXZlZENoYWluY29kZTtcbiAgfVxuXG4gIGtleURlcml2ZSh1U2hhcmU6IFVTaGFyZSwgeVNoYXJlczogWVNoYXJlW10sIHBhdGg6IHN0cmluZyk6IFN1YmtleVNoYXJlIHtcbiAgICBpZiAodGhpcy5oZFRyZWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3QgZGVyaXZlIGtleSB3aXRob3V0IEhEVHJlZSBpbXBsZW1lbnRhdGlvblwiKTtcbiAgICB9XG4gICAgY29uc3QgaCA9IGNyZWF0ZUhhc2goJ3NoYTUxMicpLnVwZGF0ZShCdWZmZXIuZnJvbSh1U2hhcmUuc2VlZCwgJ2hleCcpKS5kaWdlc3QoKTtcbiAgICBjb25zdCB5VmFsdWVzID0gW3VTaGFyZSwgLi4ueVNoYXJlc10ubWFwKChzaGFyZSkgPT4gYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHNoYXJlLnksICdoZXgnKSkpO1xuICAgIGNvbnN0IHkgPSB5VmFsdWVzLnJlZHVjZSgocGFydGlhbCwgc2hhcmUpID0+IEVkZHNhLmN1cnZlLnBvaW50QWRkKHBhcnRpYWwsIHNoYXJlKSk7XG4gICAgY29uc3QgdSA9IGNsYW1wKGJpZ0ludEZyb21CdWZmZXJMRShoLnNsaWNlKDAsIDMyKSkpO1xuICAgIGNvbnN0IHByZWZpeCA9IGJpZ0ludEZyb21CdWZmZXJCRShoLnNsaWNlKDMyKSk7XG4gICAgbGV0IGNvbnRyaWJDaGFpbmNvZGUgPSBiaWdJbnRGcm9tQnVmZmVyQkUoQnVmZmVyLmZyb20odVNoYXJlLmNoYWluY29kZSwgJ2hleCcpKTtcbiAgICBjb25zdCBjaGFpbmNvZGVzID0gW1xuICAgICAgY29udHJpYkNoYWluY29kZSxcbiAgICAgIC4uLnlTaGFyZXMubWFwKCh7IGNoYWluY29kZSB9KSA9PiBiaWdJbnRGcm9tQnVmZmVyQkUoQnVmZmVyLmZyb20oY2hhaW5jb2RlLCAnaGV4JykpKSxcbiAgICBdO1xuICAgIGNvbnN0IGNoYWluY29kZSA9IGNoYWluY29kZXMucmVkdWNlKChhY2MsIGNoYWluY29kZSkgPT4gKGFjYyArIGNoYWluY29kZSkgJSBiYXNlKTtcblxuICAgIC8vIERlcml2ZSBzdWJrZXkuXG4gICAgY29uc3Qgc3Via2V5ID0gdGhpcy5oZFRyZWUucHJpdmF0ZURlcml2ZSh7IHBrOiB5LCBzazogdSwgcHJlZml4LCBjaGFpbmNvZGUgfSwgcGF0aCk7XG5cbiAgICAvLyBDYWxjdWxhdGUgbmV3IHB1YmxpYyBrZXkgY29udHJpYnV0aW9uLlxuICAgIGNvbnN0IGNvbnRyaWJZID0gRWRkc2EuY3VydmUuYmFzZVBvaW50TXVsdChzdWJrZXkuc2spO1xuXG4gICAgLy8gQ2FsY3VsYXRlIG5ldyBjaGFpbmNvZGUgY29udHJpYnV0aW9uLlxuICAgIGNvbnN0IGNoYWluY29kZURlbHRhID0gKGJhc2UgKyBzdWJrZXkuY2hhaW5jb2RlIC0gY2hhaW5jb2RlKSAlIGJhc2U7XG4gICAgY29udHJpYkNoYWluY29kZSA9IChjb250cmliQ2hhaW5jb2RlICsgY2hhaW5jb2RlRGVsdGEpICUgYmFzZTtcblxuICAgIC8vIENhbGN1bGF0ZSBuZXcgdSB2YWx1ZXMuXG4gICAgY29uc3QgeyBzaGFyZXM6IHNwbGl0X3UsIHYgfSA9IEVkZHNhLnNoYW1pci5zcGxpdChzdWJrZXkuc2ssIHVTaGFyZS50LCB1U2hhcmUubik7XG5cbiAgICBjb25zdCBQX2k6IFBTaGFyZSA9IHtcbiAgICAgIGk6IHVTaGFyZS5pLFxuICAgICAgdDogdVNoYXJlLnQsXG4gICAgICBuOiB1U2hhcmUubixcbiAgICAgIHk6IGJpZ0ludFRvQnVmZmVyTEUoc3Via2V5LnBrLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgdTogYmlnSW50VG9CdWZmZXJMRShzdWJrZXkuc2ssIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICBwcmVmaXg6IGJpZ0ludFRvQnVmZmVyQkUoc3Via2V5LnByZWZpeCEsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICBjaGFpbmNvZGU6IGJpZ0ludFRvQnVmZmVyQkUoc3Via2V5LmNoYWluY29kZSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2hhcmVzOiBTdWJrZXlTaGFyZSA9IHtcbiAgICAgIHBTaGFyZTogUF9pLFxuICAgICAgeVNoYXJlczoge30sXG4gICAgfTtcblxuICAgIGZvciAobGV0IGluZCA9IDA7IGluZCA8IHlTaGFyZXMubGVuZ3RoOyBpbmQrKykge1xuICAgICAgY29uc3QgUF9qID0geVNoYXJlc1tpbmRdO1xuICAgICAgc2hhcmVzLnlTaGFyZXNbUF9qLmpdID0ge1xuICAgICAgICBpOiBQX2ouaixcbiAgICAgICAgajogUF9pLmksXG4gICAgICAgIHk6IGJpZ0ludFRvQnVmZmVyTEUoY29udHJpYlksIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHY6IGJpZ0ludFRvQnVmZmVyTEUodlswXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgdTogYmlnSW50VG9CdWZmZXJMRShzcGxpdF91W1Bfai5qXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgY2hhaW5jb2RlOiBiaWdJbnRUb0J1ZmZlckJFKGNvbnRyaWJDaGFpbmNvZGUsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBzaGFyZXM7XG4gIH1cblxuICBzaWduU2hhcmUobWVzc2FnZTogQnVmZmVyLCBwU2hhcmU6IFBTaGFyZSwgalNoYXJlczogSlNoYXJlW10sIHNlZWQ/OiBCdWZmZXIpOiBTaWduU2hhcmUge1xuICAgIGlmIChzZWVkICYmIHNlZWQubGVuZ3RoICE9PSA2NCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZWVkIG11c3QgaGF2ZSBsZW5ndGggNjQnKTtcbiAgICB9XG4gICAgY29uc3QgaW5kaWNlcyA9IFtwU2hhcmUsIC4uLmpTaGFyZXNdLm1hcCgoeyBpIH0pID0+IGkpO1xuICAgIGNvbnN0IHsgc2hhcmVzOiBzcGxpdF91LCB2IH0gPSBFZGRzYS5zaGFtaXIuc3BsaXQoXG4gICAgICBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20ocFNoYXJlLnUsICdoZXgnKSksXG4gICAgICBwU2hhcmUudCxcbiAgICAgIHBTaGFyZS5uXG4gICAgKTtcblxuICAgIC8vIEdlbmVyYXRlIG5vbmNlIGNvbnRyaWJ1dGlvbi5cbiAgICBjb25zdCBwcmVmaXggPSBCdWZmZXIuZnJvbShwU2hhcmUucHJlZml4LCAnaGV4Jyk7XG4gICAgY29uc3QgcmFuZG9tQnVmZmVyID0gc2VlZCA/PyByYW5kb21CeXRlcyg2NCk7XG5cbiAgICBjb25zdCBkaWdlc3QgPSBjcmVhdGVIYXNoKCdzaGE1MTInKVxuICAgICAgLnVwZGF0ZShCdWZmZXIuY29uY2F0KFtwcmVmaXgsIG1lc3NhZ2UsIHJhbmRvbUJ1ZmZlcl0pKVxuICAgICAgLmRpZ2VzdCgpO1xuXG4gICAgY29uc3QgciA9IEVkZHNhLmN1cnZlLnNjYWxhclJlZHVjZShiaWdJbnRGcm9tQnVmZmVyTEUoZGlnZXN0KSk7XG4gICAgY29uc3QgUiA9IEVkZHNhLmN1cnZlLmJhc2VQb2ludE11bHQocik7XG4gICAgY29uc3QgeyBzaGFyZXM6IHNwbGl0X3IgfSA9IEVkZHNhLnNoYW1pci5zcGxpdChyLCBpbmRpY2VzLmxlbmd0aCwgaW5kaWNlcy5sZW5ndGgsIGluZGljZXMpO1xuXG4gICAgY29uc3QgUF9pOiBYU2hhcmUgPSB7XG4gICAgICBpOiBwU2hhcmUuaSxcbiAgICAgIHk6IHBTaGFyZS55LFxuICAgICAgdTogYmlnSW50VG9CdWZmZXJMRShzcGxpdF91W3BTaGFyZS5pXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHI6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfcltwU2hhcmUuaV0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICBSOiBiaWdJbnRUb0J1ZmZlckxFKFIsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcblxuICAgIGNvbnN0IHJlc3VsdFNoYXJlczogU2lnblNoYXJlID0ge1xuICAgICAgeFNoYXJlOiBQX2ksXG4gICAgICByU2hhcmVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgaW5kID0gMDsgaW5kIDwgalNoYXJlcy5sZW5ndGg7IGluZCsrKSB7XG4gICAgICBjb25zdCBTX2ogPSBqU2hhcmVzW2luZF07XG4gICAgICByZXN1bHRTaGFyZXMuclNoYXJlc1tTX2ouaV0gPSB7XG4gICAgICAgIGk6IFNfai5pLFxuICAgICAgICBqOiBwU2hhcmUuaSxcbiAgICAgICAgdTogYmlnSW50VG9CdWZmZXJMRShzcGxpdF91W1Nfai5pXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgdjogYmlnSW50VG9CdWZmZXJMRSh2WzBdLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICByOiBiaWdJbnRUb0J1ZmZlckxFKHNwbGl0X3JbU19qLmldLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBSOiBiaWdJbnRUb0J1ZmZlckxFKFIsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIGNvbW1pdG1lbnQ6IGJpZ0ludFRvQnVmZmVyTEUoRWRkc2EuY3VydmUuYmFzZVBvaW50TXVsdChzcGxpdF9yW1Nfai5pXSksIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0U2hhcmVzO1xuICB9XG5cbiAgc2lnbihtZXNzYWdlOiBCdWZmZXIsIHBsYXllclNoYXJlOiBYU2hhcmUsIHJTaGFyZXM6IFJTaGFyZVtdLCB5U2hhcmVzOiBZU2hhcmVbXSA9IFtdKTogR1NoYXJlIHtcbiAgICBmb3IgKGNvbnN0IHJTaGFyZSBvZiByU2hhcmVzKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlQ29tbWl0bWVudChyU2hhcmUpO1xuICAgIH1cblxuICAgIGNvbnN0IFNfaSA9IHBsYXllclNoYXJlO1xuXG4gICAgY29uc3QgdVZhbHVlcyA9IFtwbGF5ZXJTaGFyZSwgLi4uclNoYXJlcywgLi4ueVNoYXJlc10ubWFwKCh7IHUgfSkgPT4gYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHUsICdoZXgnKSkpO1xuICAgIGNvbnN0IHggPSB1VmFsdWVzLnJlZHVjZSgoYWNjLCB1KSA9PiBFZGRzYS5jdXJ2ZS5zY2FsYXJBZGQoYWNjLCB1KSk7XG5cbiAgICBjb25zdCBSVmFsdWVzID0gW3BsYXllclNoYXJlLCAuLi5yU2hhcmVzXS5tYXAoKHsgUiB9KSA9PiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oUiwgJ2hleCcpKSk7XG4gICAgY29uc3QgUiA9IFJWYWx1ZXMucmVkdWNlKChwYXJ0aWFsLCBzaGFyZSkgPT4gRWRkc2EuY3VydmUucG9pbnRBZGQocGFydGlhbCwgc2hhcmUpKTtcblxuICAgIGNvbnN0IHJWYWx1ZXMgPSBbcGxheWVyU2hhcmUsIC4uLnJTaGFyZXNdLm1hcCgoeyByIH0pID0+IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShyLCAnaGV4JykpKTtcbiAgICBjb25zdCByID0gclZhbHVlcy5yZWR1Y2UoKHBhcnRpYWwsIHNoYXJlKSA9PiBFZGRzYS5jdXJ2ZS5zY2FsYXJBZGQocGFydGlhbCwgc2hhcmUpKTtcblxuICAgIGNvbnN0IGNvbWJpbmVkQnVmZmVyID0gQnVmZmVyLmNvbmNhdChbYmlnSW50VG9CdWZmZXJMRShSLCAzMiksIEJ1ZmZlci5mcm9tKFNfaS55LCAnaGV4JyksIG1lc3NhZ2VdKTtcbiAgICBjb25zdCBkaWdlc3QgPSBjcmVhdGVIYXNoKCdzaGE1MTInKS51cGRhdGUoY29tYmluZWRCdWZmZXIpLmRpZ2VzdCgpO1xuICAgIGNvbnN0IGsgPSBFZGRzYS5jdXJ2ZS5zY2FsYXJSZWR1Y2UoYmlnSW50RnJvbUJ1ZmZlckxFKGRpZ2VzdCkpO1xuXG4gICAgY29uc3QgZ2FtbWEgPSBFZGRzYS5jdXJ2ZS5zY2FsYXJBZGQociwgRWRkc2EuY3VydmUuc2NhbGFyTXVsdChrLCB4KSk7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgaTogcGxheWVyU2hhcmUuaSxcbiAgICAgIHk6IHBsYXllclNoYXJlLnksXG4gICAgICBnYW1tYTogYmlnSW50VG9CdWZmZXJMRShnYW1tYSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIFI6IGJpZ0ludFRvQnVmZmVyTEUoUiwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzaWduQ29tYmluZShzaGFyZXM6IEdTaGFyZVtdKTogU2lnbmF0dXJlIHtcbiAgICBjb25zdCB5ID0gc2hhcmVzWzBdLnk7XG4gICAgY29uc3QgUiA9IHNoYXJlc1swXS5SO1xuXG4gICAgY29uc3QgcmVzdWx0U2hhcmVzID0ge307XG4gICAgZm9yIChjb25zdCBpbmQgaW4gc2hhcmVzKSB7XG4gICAgICBjb25zdCBTX2kgPSBzaGFyZXNbaW5kXTtcbiAgICAgIHJlc3VsdFNoYXJlc1tTX2kuaV0gPSBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oU19pLmdhbW1hLCAnaGV4JykpO1xuICAgIH1cbiAgICBjb25zdCBzaWdtYTogYmlnaW50ID0gRWRkc2Euc2hhbWlyLmNvbWJpbmUocmVzdWx0U2hhcmVzKTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICB5LFxuICAgICAgUixcbiAgICAgIHNpZ21hOiBiaWdJbnRUb0J1ZmZlckxFKHNpZ21hLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHZlcmlmeShtZXNzYWdlOiBCdWZmZXIsIHNpZ25hdHVyZTogU2lnbmF0dXJlKTogYm9vbGVhbiB7XG4gICAgY29uc3QgcHVibGljS2V5ID0gYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHNpZ25hdHVyZS55LCAnaGV4JykpO1xuICAgIGNvbnN0IHNpZ25lZE1lc3NhZ2UgPSBCdWZmZXIuY29uY2F0KFtCdWZmZXIuZnJvbShzaWduYXR1cmUuUiwgJ2hleCcpLCBCdWZmZXIuZnJvbShzaWduYXR1cmUuc2lnbWEsICdoZXgnKV0pO1xuICAgIHJldHVybiBFZGRzYS5jdXJ2ZS52ZXJpZnkobWVzc2FnZSwgc2lnbmVkTWVzc2FnZSwgcHVibGljS2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVDb21taXRtZW50KFJTaGFyZTogUlNoYXJlKTogdm9pZCB7XG4gICAgYXNzZXJ0KFJTaGFyZS5jb21taXRtZW50LCAnQ29tbWl0bWVudCBpcyBtaXNzaW5nJyk7XG4gICAgY29uc3QgYyA9IEVkZHNhLmN1cnZlLmJhc2VQb2ludE11bHQoYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKFJTaGFyZS5yLCAnaGV4JykpKTtcbiAgICBjb25zdCBvdGhlclBsYXllckNvbW1pdG1lbnQgPSBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oUlNoYXJlLmNvbW1pdG1lbnQsICdoZXgnKSk7XG4gICAgaWYgKGMgIT09IG90aGVyUGxheWVyQ29tbWl0bWVudCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgdmVyaWZ5IG90aGVyIHBsYXllciBzaGFyZScpO1xuICAgIH1cbiAgfVxufVxuIl19
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lZGRzYS9lZGRzYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Qkc7QUFDSCxtQ0FBaUQ7QUFDakQseUNBQTRDO0FBQzVDLDBEQUFrQztBQUNsQyxxQ0FBK0c7QUFlL0csb0RBQTRCO0FBRzVCLFFBQVE7QUFDUixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsc0VBQXNFLENBQUMsQ0FBQztBQUU1RixNQUFxQixLQUFLO0lBS3hCLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQWU7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixNQUFNLHFCQUFZLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDM0IsQ0FBQztRQUVELE9BQU8sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUlELFlBQVksTUFBZTtRQUN6QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWEsRUFBRSxTQUFpQixFQUFFLFNBQWlCLEVBQUUsSUFBYTtRQUN6RSxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELE1BQU0s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Q0FBQyxJQUFBLHlCQUFrQixFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoSCxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFBLHlCQUFrQixFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFbkYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFBLHlCQUFrQixFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNwRyxNQUFNLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFcEYsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUEsdUJBQWdCLEVBQUMsQ0FBQyxF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QkFBa0IsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLE1BQU0scUJBQXFCLEdBQUcsSUFBQSx5QkFBa0IsRUFBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsS0FBSyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0gsQ0FBQzs7QUF2VE0sV0FBSyxHQUFpQixJQUFJLHFCQUFZLEVBQUUsQ0FBQztBQUN6QyxZQUFNLEdBQVcsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUN6QyxpQkFBVyxHQUFHLEtBQUssQ0FBQztrQkFIUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBNb2R1bGUgcHJvdmlkZXMgZnVuY3Rpb25zIGZvciBNUEMgdXNpbmcgdGhyZXNob2xkIHNpZ25hdHVyZSBzY2hlbWUgKFRTUykuIEl0IGNvbnRhaW5zXG4gKiBmdW5jdGlvbnMgZm9yIGtleSBnZW5lcmF0aW9uIGFuZCBtZXNzYWdlIHNpZ25pbmcgd2l0aCBFZERTQS5cbiAqXG4gKlxuICogPT09PT09PT09PT09PT09PT09PT09PVxuICogRWREU0EgS2V5IEdlbmVyYXRpb25cbiAqID09PT09PT09PT09PT09PT09PT09PT1cbiAqIDEuIEVhY2ggc2lnbmVyIGdlbmVyYXRlcyB0aGVpciBvd24ga2V5IHNoYXJlLCB3aGljaCBpbnZvbHZlcyBhIHByaXZhdGUgdS1zaGFyZSBhbmQgYSBwdWJsaWMgeS1zaGFyZS5cbiAqIDIuIFNpZ25lcnMgZGlzdHJpYnV0ZSB0aGVpciB5LXNoYXJlIHRvIG90aGVyIHNpZ25lcnMuXG4gKiAzLiBBZnRlciBleGNoYW5naW5nIHktc2hhcmVzIHRoZSBuZXh0IHBoYXNlIGlzIHRvIGNvbWJpbmUga2V5IHNoYXJlcy4gRWFjaCBzaWduZXIgY29tYmluZXMgdGhlaXIgdS1zaGFyZVxuICogICAgd2l0aCB0aGUgeS1zaGFyZXMgcmVjZWl2ZWQgZnJvbSBvdGhlciBzaWduZXJzIGluIG9yZGVyIHRvIGdlbmVyYXRlIGEgcC1zaGFyZSBmb3IgdGhlbXNlbHZlcy4gV2VcbiAqICAgIGFsc28gc2F2ZSBqLXNoYXJlcyBmb3Igb3RoZXIgc2lnbmVycy5cbiAqIDQuIEF0IHRoaXMgcG9pbnQgdGhlIHBsYXllcnMgZG8gbm90IGRpc3RyaWJ1dGUgYW55IHNoYXJlcyBhbmQgdGhlIGZpcnN0IHBoYXNlIG9mIHRoZVxuICogICAgc2lnbmluZyBwcm90b2NvbCBpcyBjb21wbGV0ZS5cbiAqXG4gKiA9PT09PT09PT09PT09PT09PT09PT09XG4gKiBFZERTQSBTaWduaW5nXG4gKiA9PT09PT09PT09PT09PT09PT09PT09XG4gKiAxLiBUaGUgcGFydGllcyBmcm9tIGtleSBnZW5lcmF0aW9uIGRlY2lkZSB0aGV5IHdhbnQgdG8gc2lnbiBzb21ldGhpbmcuIFRoZXkgYmVnaW4gdGhlIHNpZ25pbmcgcHJvdG9jb2xcbiAqICAgIGJ5IGdlbmVyYXRpbmcgc2hhcmVzIG9mIGFuIGVwaGVtZXJhbCBrZXkuXG4gKlxuICogICAgYSkgRWFjaCBzaWduZXIgdXNlcyBoaXMgcC1zaGFyZSBhbmQgdGhlIGotc2hhcmVzIHN0b3JlZCBmb3Igb3RoZXIgcGxheWVycyB0byBnZW5lcmF0ZSBoaXMgc2lnbmluZyBzaGFyZS5cbiAqICAgIGIpIFRoaXMgcmVzdWx0cyBpbiBlYWNoIHNpZ25lciBoYXZpbmcgYSBwcml2YXRlIHgtc2hhcmUgYW5kIHB1YmxpYyByLXNoYXJlcy5cbiAqXG4gKiAyLiBTaWduZXJzIGRpc3RyaWJ1dGUgdGhlaXIgci1zaGFyZXMgdG8gb3RoZXIgc2lnbmVycy5cbiAqIDMuIEFmdGVyIGV4Y2hhbmdpbmcgci1zaGFyZXMsIGVhY2ggc2lnbmVyIHNpZ25zIHRoZWlyIHNoYXJlIG9mIHRoZSBlcGhlbWVyYWwga2V5IHVzaW5nIHRoZWlyIHByaXZhdGVcbiAqICAgIHgtc2hhcmUgd2l0aCB0aGUgci1zaGFyZXMgZnJvbSBvdGhlciBzaWduZXJzLlxuICogNC4gVGhpcyByZXN1bHRzIGluIGVhY2ggc2lnbmVyIGhhdmluZyBhIHB1YmxpYyBnLXNoYXJlIHdoaWNoIHRoZXkgc2VuZCB0byB0aGUgb3RoZXIgc2lnbmVycy5cbiAqIDUuIEFmdGVyIHRoZSBzaWduZXJzIGJyb2FkY2FzdCB0aGVpciBnLXNoYXJlcywgdGhlIGZpbmFsIHNpZ25hdHVyZSBjYW4gYmUgcmUtY29uc3RydWN0ZWQgaW5kZXBlbmRlbnRseS5cbiAqL1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMsIGNyZWF0ZUhhc2ggfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgRWQyNTUxOUN1cnZlIH0gZnJvbSAnLi4vLi4vY3VydmVzJztcbmltcG9ydCBTaGFtaXIgZnJvbSAnLi4vLi4vc2hhbWlyJztcbmltcG9ydCB7IGJpZ0ludEZyb21CdWZmZXJMRSwgYmlnSW50VG9CdWZmZXJMRSwgYmlnSW50RnJvbUJ1ZmZlckJFLCBiaWdJbnRUb0J1ZmZlckJFLCBjbGFtcCB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHtcbiAgS2V5U2hhcmUsXG4gIFVTaGFyZSxcbiAgWVNoYXJlLFxuICBLZXlDb21iaW5lLFxuICBQU2hhcmUsXG4gIFN1YmtleVNoYXJlLFxuICBKU2hhcmUsXG4gIFNpZ25TaGFyZSxcbiAgU2lnbmF0dXJlLFxuICBYU2hhcmUsXG4gIFJTaGFyZSxcbiAgR1NoYXJlLFxufSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEhEVHJlZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcblxuLy8gMl4yNTZcbmNvbnN0IGJhc2UgPSBCaWdJbnQoJzB4MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVkZHNhIHtcbiAgc3RhdGljIGN1cnZlOiBFZDI1NTE5Q3VydmUgPSBuZXcgRWQyNTUxOUN1cnZlKCk7XG4gIHN0YXRpYyBzaGFtaXI6IFNoYW1pciA9IG5ldyBTaGFtaXIoRWRkc2EuY3VydmUpO1xuICBzdGF0aWMgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBzdGF0aWMgYXN5bmMgaW5pdGlhbGl6ZShoZFRyZWU/OiBIRFRyZWUpOiBQcm9taXNlPEVkZHNhPiB7XG4gICAgaWYgKCFFZGRzYS5pbml0aWFsaXplZCkge1xuICAgICAgYXdhaXQgRWQyNTUxOUN1cnZlLmluaXRpYWxpemUoKTtcbiAgICAgIEVkZHNhLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEVkZHNhKGhkVHJlZSk7XG4gIH1cblxuICBoZFRyZWU/OiBIRFRyZWU7XG5cbiAgY29uc3RydWN0b3IoaGRUcmVlPzogSERUcmVlKSB7XG4gICAgdGhpcy5oZFRyZWUgPSBoZFRyZWU7XG4gIH1cblxuICBrZXlTaGFyZShpbmRleDogbnVtYmVyLCB0aHJlc2hvbGQ6IG51bWJlciwgbnVtU2hhcmVzOiBudW1iZXIsIHNlZWQ/OiBCdWZmZXIpOiBLZXlTaGFyZSB7XG4gICAgaWYgKCEoaW5kZXggPiAwICYmIGluZGV4IDw9IG51bVNoYXJlcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBLZXlTaGFyZSBjb25maWcnKTtcbiAgICB9XG4gICAgaWYgKHNlZWQgJiYgc2VlZC5sZW5ndGggIT09IDY0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlZWQgbXVzdCBoYXZlIGxlbmd0aCA2NCcpO1xuICAgIH1cbiAgICBjb25zdCBzZWVkY2hhaW4gPSBzZWVkID8/IHJhbmRvbUJ5dGVzKDY0KTtcbiAgICBjb25zdCBhY3R1YWxTZWVkID0gc2VlZGNoYWluLnNsaWNlKDAsIDMyKTtcbiAgICBjb25zdCBjaGFpbmNvZGUgPSBzZWVkY2hhaW4uc2xpY2UoMzIpO1xuICAgIGNvbnN0IGggPSBjcmVhdGVIYXNoKCdzaGE1MTInKS51cGRhdGUoYWN0dWFsU2VlZCkuZGlnZXN0KCk7XG4gICAgY29uc3QgdSA9IGNsYW1wKGJpZ0ludEZyb21CdWZmZXJMRShoLnNsaWNlKDAsIDMyKSkpO1xuICAgIGNvbnN0IHkgPSBFZGRzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHUpO1xuICAgIGNvbnN0IHsgc2hhcmVzOiBzcGxpdF91LCB2IH0gPSBFZGRzYS5zaGFtaXIuc3BsaXQodSwgdGhyZXNob2xkLCBudW1TaGFyZXMpO1xuXG4gICAgY29uc3QgUF9pOiBVU2hhcmUgPSB7XG4gICAgICBpOiBpbmRleCxcbiAgICAgIHQ6IHRocmVzaG9sZCxcbiAgICAgIG46IG51bVNoYXJlcyxcbiAgICAgIHk6IGJpZ0ludFRvQnVmZmVyTEUoeSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHNlZWQ6IGFjdHVhbFNlZWQudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgY2hhaW5jb2RlOiBjaGFpbmNvZGUudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gICAgY29uc3Qgc2hhcmVzOiBLZXlTaGFyZSA9IHtcbiAgICAgIHVTaGFyZTogUF9pLFxuICAgICAgeVNoYXJlczoge30sXG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgaW5kIGluIHNwbGl0X3UpIHtcbiAgICAgIGNvbnN0IGkgPSBwYXJzZUludChpbmQsIDEwKTtcbiAgICAgIGlmIChpID09PSBpbmRleCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHNoYXJlcy55U2hhcmVzW2ldID0ge1xuICAgICAgICBpLFxuICAgICAgICBqOiBQX2kuaSxcbiAgICAgICAgeTogYmlnSW50VG9CdWZmZXJMRSh5LCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB2OiBiaWdJbnRUb0J1ZmZlckxFKHZbMF0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHU6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfdVtpbmRdLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBjaGFpbmNvZGU6IGNoYWluY29kZS50b1N0cmluZygnaGV4JyksXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gc2hhcmVzO1xuICB9XG5cbiAga2V5Q29tYmluZSh1U2hhcmU6IFVTaGFyZSwgeVNoYXJlczogWVNoYXJlW10pOiBLZXlDb21iaW5lIHtcbiAgICBjb25zdCBoID0gY3JlYXRlSGFzaCgnc2hhNTEyJykudXBkYXRlKEJ1ZmZlci5mcm9tKHVTaGFyZS5zZWVkLCAnaGV4JykpLmRpZ2VzdCgpO1xuICAgIGNvbnN0IHUgPSBjbGFtcChiaWdJbnRGcm9tQnVmZmVyTEUoaC5zbGljZSgwLCAzMikpKTtcbiAgICBjb25zdCB5VmFsdWVzID0gW3VTaGFyZSwgLi4ueVNoYXJlc10ubWFwKChzaGFyZSkgPT4gYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHNoYXJlLnksICdoZXgnKSkpO1xuICAgIGNvbnN0IHkgPSB5VmFsdWVzLnJlZHVjZSgocGFydGlhbCwgc2hhcmUpID0+IEVkZHNhLmN1cnZlLnBvaW50QWRkKHBhcnRpYWwsIHNoYXJlKSk7XG4gICAgY29uc3QgY2hhaW5jb2RlcyA9IFt1U2hhcmUsIC4uLnlTaGFyZXNdLm1hcCgoeyBjaGFpbmNvZGUgfSkgPT4gYmlnSW50RnJvbUJ1ZmZlckJFKEJ1ZmZlci5mcm9tKGNoYWluY29kZSwgJ2hleCcpKSk7XG4gICAgY29uc3QgY2hhaW5jb2RlID0gY2hhaW5jb2Rlcy5yZWR1Y2UoKGFjYywgY2hhaW5jb2RlKSA9PiAoYWNjICsgY2hhaW5jb2RlKSAlIGJhc2UpO1xuXG4gICAgLy8gVmVyaWZ5IHNoYXJlcy5cbiAgICBmb3IgKGNvbnN0IHNoYXJlIG9mIHlTaGFyZXMpIHtcbiAgICAgIGlmICgndicgaW4gc2hhcmUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBFZGRzYS5zaGFtaXIudmVyaWZ5KFxuICAgICAgICAgICAgYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHNoYXJlLnUsICdoZXgnKSksXG4gICAgICAgICAgICBbYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHNoYXJlLnksICdoZXgnKSksIGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShzaGFyZS52ISwgJ2hleCcpKV0sXG4gICAgICAgICAgICB1U2hhcmUuaVxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIC8vIFRPRE8oQkctNjEwMzYpOiBGaXggVmVyaWZpY2F0aW9uXG4gICAgICAgICAgLy8gdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgdmVyaWZ5IHNoYXJlIGZyb20gcGFydGljaXBhbnQgJHtzaGFyZS5qfS4gVmVyaWZpY2F0aW9uIGVycm9yOiAke2Vycn1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IFBfaTogUFNoYXJlID0ge1xuICAgICAgaTogdVNoYXJlLmksXG4gICAgICB0OiB1U2hhcmUudCxcbiAgICAgIG46IHVTaGFyZS5uLFxuICAgICAgeTogYmlnSW50VG9CdWZmZXJMRSh5LCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgdTogYmlnSW50VG9CdWZmZXJMRSh1LCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgcHJlZml4OiBoLnNsaWNlKDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICBjaGFpbmNvZGU6IGJpZ0ludFRvQnVmZmVyQkUoY2hhaW5jb2RlLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gICAgY29uc3QgcGxheWVyczogS2V5Q29tYmluZSA9IHtcbiAgICAgIHBTaGFyZTogUF9pLFxuICAgICAgalNoYXJlczoge30sXG4gICAgfTtcblxuICAgIGZvciAobGV0IGluZCA9IDA7IGluZCA8IHlTaGFyZXMubGVuZ3RoOyBpbmQrKykge1xuICAgICAgY29uc3QgUF9qID0geVNoYXJlc1tpbmRdO1xuICAgICAgcGxheWVycy5qU2hhcmVzW1Bfai5qXSA9IHtcbiAgICAgICAgaTogUF9qLmosXG4gICAgICAgIGo6IFBfaS5pLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHBsYXllcnM7XG4gIH1cblxuICAvKipcbiAgICogRGVyaXZlcyBhIGNoaWxkIGNvbW1vbiBrZXljaGFpbiBmcm9tIGNvbW1vbiBrZXljaGFpblxuICAgKlxuICAgKiBAcGFyYW0gY29tbW9uS2V5Y2hhaW4gLSBjb21tb24ga2V5Y2hhaW4gYXMgYSBoZXggc3RyaW5nXG4gICAqIEBwYXJhbSBwYXRoIC0gYmlwMzIgcGF0aFxuICAgKiBAcmV0dXJuIHtzdHJpbmd9IGRlcml2ZWQgY29tbW9uIGtleWNoYWluIGFzIGEgaGV4IHN0cmluZ1xuICAgKi9cbiAgZGVyaXZlVW5oYXJkZW5lZChjb21tb25LZXljaGFpbjogc3RyaW5nLCBwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmhkVHJlZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBkZXJpdmUga2V5IHdpdGhvdXQgSERUcmVlIGltcGxlbWVudGF0aW9uXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGtleWNoYWluID0gQnVmZmVyLmZyb20oY29tbW9uS2V5Y2hhaW4sICdoZXgnKTtcblxuICAgIGNvbnN0IGRlcml2ZWRQdWJsaWNLZXljaGFpbiA9IHRoaXMuaGRUcmVlLnB1YmxpY0Rlcml2ZShcbiAgICAgIHtcbiAgICAgICAgcGs6IGJpZ0ludEZyb21CdWZmZXJMRShrZXljaGFpbi5zbGljZSgwLCAzMikpLFxuICAgICAgICBjaGFpbmNvZGU6IGJpZ0ludEZyb21CdWZmZXJCRShrZXljaGFpbi5zbGljZSgzMikpLFxuICAgICAgfSxcbiAgICAgIHBhdGhcbiAgICApO1xuXG4gICAgY29uc3QgZGVyaXZlZFBrID0gYmlnSW50VG9CdWZmZXJMRShkZXJpdmVkUHVibGljS2V5Y2hhaW4ucGssIDMyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgZGVyaXZlZENoYWluY29kZSA9IGJpZ0ludFRvQnVmZmVyQkUoZGVyaXZlZFB1YmxpY0tleWNoYWluLmNoYWluY29kZSwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgIHJldHVybiBkZXJpdmVkUGsgKyBkZXJpdmVkQ2hhaW5jb2RlO1xuICB9XG5cbiAga2V5RGVyaXZlKHVTaGFyZTogVVNoYXJlLCB5U2hhcmVzOiBZU2hhcmVbXSwgcGF0aDogc3RyaW5nKTogU3Via2V5U2hhcmUge1xuICAgIGlmICh0aGlzLmhkVHJlZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBkZXJpdmUga2V5IHdpdGhvdXQgSERUcmVlIGltcGxlbWVudGF0aW9uXCIpO1xuICAgIH1cbiAgICBjb25zdCBoID0gY3JlYXRlSGFzaCgnc2hhNTEyJykudXBkYXRlKEJ1ZmZlci5mcm9tKHVTaGFyZS5zZWVkLCAnaGV4JykpLmRpZ2VzdCgpO1xuICAgIGNvbnN0IHlWYWx1ZXMgPSBbdVNoYXJlLCAuLi55U2hhcmVzXS5tYXAoKHNoYXJlKSA9PiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2hhcmUueSwgJ2hleCcpKSk7XG4gICAgY29uc3QgeSA9IHlWYWx1ZXMucmVkdWNlKChwYXJ0aWFsLCBzaGFyZSkgPT4gRWRkc2EuY3VydmUucG9pbnRBZGQocGFydGlhbCwgc2hhcmUpKTtcbiAgICBjb25zdCB1ID0gY2xhbXAoYmlnSW50RnJvbUJ1ZmZlckxFKGguc2xpY2UoMCwgMzIpKSk7XG4gICAgY29uc3QgcHJlZml4ID0gYmlnSW50RnJvbUJ1ZmZlckJFKGguc2xpY2UoMzIpKTtcbiAgICBsZXQgY29udHJpYkNoYWluY29kZSA9IGJpZ0ludEZyb21CdWZmZXJCRShCdWZmZXIuZnJvbSh1U2hhcmUuY2hhaW5jb2RlLCAnaGV4JykpO1xuICAgIGNvbnN0IGNoYWluY29kZXMgPSBbXG4gICAgICBjb250cmliQ2hhaW5jb2RlLFxuICAgICAgLi4ueVNoYXJlcy5tYXAoKHsgY2hhaW5jb2RlIH0pID0+IGJpZ0ludEZyb21CdWZmZXJCRShCdWZmZXIuZnJvbShjaGFpbmNvZGUsICdoZXgnKSkpLFxuICAgIF07XG4gICAgY29uc3QgY2hhaW5jb2RlID0gY2hhaW5jb2Rlcy5yZWR1Y2UoKGFjYywgY2hhaW5jb2RlKSA9PiAoYWNjICsgY2hhaW5jb2RlKSAlIGJhc2UpO1xuXG4gICAgLy8gRGVyaXZlIHN1YmtleS5cbiAgICBjb25zdCBzdWJrZXkgPSB0aGlzLmhkVHJlZS5wcml2YXRlRGVyaXZlKHsgcGs6IHksIHNrOiB1LCBwcmVmaXgsIGNoYWluY29kZSB9LCBwYXRoKTtcblxuICAgIC8vIENhbGN1bGF0ZSBuZXcgcHVibGljIGtleSBjb250cmlidXRpb24uXG4gICAgY29uc3QgY29udHJpYlkgPSBFZGRzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHN1YmtleS5zayk7XG5cbiAgICAvLyBDYWxjdWxhdGUgbmV3IGNoYWluY29kZSBjb250cmlidXRpb24uXG4gICAgY29uc3QgY2hhaW5jb2RlRGVsdGEgPSAoYmFzZSArIHN1YmtleS5jaGFpbmNvZGUgLSBjaGFpbmNvZGUpICUgYmFzZTtcbiAgICBjb250cmliQ2hhaW5jb2RlID0gKGNvbnRyaWJDaGFpbmNvZGUgKyBjaGFpbmNvZGVEZWx0YSkgJSBiYXNlO1xuXG4gICAgLy8gQ2FsY3VsYXRlIG5ldyB1IHZhbHVlcy5cbiAgICBjb25zdCB7IHNoYXJlczogc3BsaXRfdSwgdiB9ID0gRWRkc2Euc2hhbWlyLnNwbGl0KHN1YmtleS5zaywgdVNoYXJlLnQsIHVTaGFyZS5uKTtcblxuICAgIGNvbnN0IFBfaTogUFNoYXJlID0ge1xuICAgICAgaTogdVNoYXJlLmksXG4gICAgICB0OiB1U2hhcmUudCxcbiAgICAgIG46IHVTaGFyZS5uLFxuICAgICAgeTogYmlnSW50VG9CdWZmZXJMRShzdWJrZXkucGssIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICB1OiBiaWdJbnRUb0J1ZmZlckxFKHN1YmtleS5zaywgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHByZWZpeDogYmlnSW50VG9CdWZmZXJCRShzdWJrZXkucHJlZml4ISwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIGNoYWluY29kZTogYmlnSW50VG9CdWZmZXJCRShzdWJrZXkuY2hhaW5jb2RlLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG5cbiAgICBjb25zdCBzaGFyZXM6IFN1YmtleVNoYXJlID0ge1xuICAgICAgcFNoYXJlOiBQX2ksXG4gICAgICB5U2hhcmVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChsZXQgaW5kID0gMDsgaW5kIDwgeVNoYXJlcy5sZW5ndGg7IGluZCsrKSB7XG4gICAgICBjb25zdCBQX2ogPSB5U2hhcmVzW2luZF07XG4gICAgICBzaGFyZXMueVNoYXJlc1tQX2oual0gPSB7XG4gICAgICAgIGk6IFBfai5qLFxuICAgICAgICBqOiBQX2kuaSxcbiAgICAgICAgeTogYmlnSW50VG9CdWZmZXJMRShjb250cmliWSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgdjogYmlnSW50VG9CdWZmZXJMRSh2WzBdLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB1OiBiaWdJbnRUb0J1ZmZlckxFKHNwbGl0X3VbUF9qLmpdLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBjaGFpbmNvZGU6IGJpZ0ludFRvQnVmZmVyQkUoY29udHJpYkNoYWluY29kZSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHNoYXJlcztcbiAgfVxuXG4gIHNpZ25TaGFyZShtZXNzYWdlOiBCdWZmZXIsIHBTaGFyZTogUFNoYXJlLCBqU2hhcmVzOiBKU2hhcmVbXSwgc2VlZD86IEJ1ZmZlcik6IFNpZ25TaGFyZSB7XG4gICAgaWYgKHNlZWQgJiYgc2VlZC5sZW5ndGggIT09IDY0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1NlZWQgbXVzdCBoYXZlIGxlbmd0aCA2NCcpO1xuICAgIH1cbiAgICBjb25zdCBpbmRpY2VzID0gW3BTaGFyZSwgLi4ualNoYXJlc10ubWFwKCh7IGkgfSkgPT4gaSk7XG4gICAgY29uc3QgeyBzaGFyZXM6IHNwbGl0X3UsIHYgfSA9IEVkZHNhLnNoYW1pci5zcGxpdChcbiAgICAgIGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShwU2hhcmUudSwgJ2hleCcpKSxcbiAgICAgIHBTaGFyZS50LFxuICAgICAgcFNoYXJlLm5cbiAgICApO1xuXG4gICAgLy8gR2VuZXJhdGUgbm9uY2UgY29udHJpYnV0aW9uLlxuICAgIGNvbnN0IHByZWZpeCA9IEJ1ZmZlci5mcm9tKHBTaGFyZS5wcmVmaXgsICdoZXgnKTtcbiAgICBjb25zdCByYW5kb21CdWZmZXIgPSBzZWVkID8/IHJhbmRvbUJ5dGVzKDY0KTtcblxuICAgIGNvbnN0IGRpZ2VzdCA9IGNyZWF0ZUhhc2goJ3NoYTUxMicpXG4gICAgICAudXBkYXRlKEJ1ZmZlci5jb25jYXQoW3ByZWZpeCwgbWVzc2FnZSwgcmFuZG9tQnVmZmVyXSkpXG4gICAgICAuZGlnZXN0KCk7XG5cbiAgICBjb25zdCByID0gRWRkc2EuY3VydmUuc2NhbGFyUmVkdWNlKGJpZ0ludEZyb21CdWZmZXJMRShkaWdlc3QpKTtcbiAgICBjb25zdCBSID0gRWRkc2EuY3VydmUuYmFzZVBvaW50TXVsdChyKTtcbiAgICBjb25zdCB7IHNoYXJlczogc3BsaXRfciB9ID0gRWRkc2Euc2hhbWlyLnNwbGl0KHIsIGluZGljZXMubGVuZ3RoLCBpbmRpY2VzLmxlbmd0aCwgaW5kaWNlcyk7XG5cbiAgICBjb25zdCBQX2k6IFhTaGFyZSA9IHtcbiAgICAgIGk6IHBTaGFyZS5pLFxuICAgICAgeTogcFNoYXJlLnksXG4gICAgICB1OiBiaWdJbnRUb0J1ZmZlckxFKHNwbGl0X3VbcFNoYXJlLmldLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgcjogYmlnSW50VG9CdWZmZXJMRShzcGxpdF9yW3BTaGFyZS5pXSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIFI6IGJpZ0ludFRvQnVmZmVyTEUoUiwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVzdWx0U2hhcmVzOiBTaWduU2hhcmUgPSB7XG4gICAgICB4U2hhcmU6IFBfaSxcbiAgICAgIHJTaGFyZXM6IHt9LFxuICAgIH07XG5cbiAgICBmb3IgKGxldCBpbmQgPSAwOyBpbmQgPCBqU2hhcmVzLmxlbmd0aDsgaW5kKyspIHtcbiAgICAgIGNvbnN0IFNfaiA9IGpTaGFyZXNbaW5kXTtcbiAgICAgIHJlc3VsdFNoYXJlcy5yU2hhcmVzW1Nfai5pXSA9IHtcbiAgICAgICAgaTogU19qLmksXG4gICAgICAgIGo6IHBTaGFyZS5pLFxuICAgICAgICB1OiBiaWdJbnRUb0J1ZmZlckxFKHNwbGl0X3VbU19qLmldLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB2OiBiaWdJbnRUb0J1ZmZlckxFKHZbMF0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHI6IGJpZ0ludFRvQnVmZmVyTEUoc3BsaXRfcltTX2ouaV0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIFI6IGJpZ0ludFRvQnVmZmVyTEUoUiwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgY29tbWl0bWVudDogYmlnSW50VG9CdWZmZXJMRShFZGRzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHNwbGl0X3JbU19qLmldKSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRTaGFyZXM7XG4gIH1cblxuICBzaWduKG1lc3NhZ2U6IEJ1ZmZlciwgcGxheWVyU2hhcmU6IFhTaGFyZSwgclNoYXJlczogUlNoYXJlW10sIHlTaGFyZXM6IFlTaGFyZVtdID0gW10pOiBHU2hhcmUge1xuICAgIGZvciAoY29uc3QgclNoYXJlIG9mIHJTaGFyZXMpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVDb21taXRtZW50KHJTaGFyZSk7XG4gICAgfVxuXG4gICAgY29uc3QgU19pID0gcGxheWVyU2hhcmU7XG5cbiAgICBjb25zdCB1VmFsdWVzID0gW3BsYXllclNoYXJlLCAuLi5yU2hhcmVzLCAuLi55U2hhcmVzXS5tYXAoKHsgdSB9KSA9PiBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20odSwgJ2hleCcpKSk7XG4gICAgY29uc3QgeCA9IHVWYWx1ZXMucmVkdWNlKChhY2MsIHUpID0+IEVkZHNhLmN1cnZlLnNjYWxhckFkZChhY2MsIHUpKTtcblxuICAgIGNvbnN0IFJWYWx1ZXMgPSBbcGxheWVyU2hhcmUsIC4uLnJTaGFyZXNdLm1hcCgoeyBSIH0pID0+IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShSLCAnaGV4JykpKTtcbiAgICBjb25zdCBSID0gUlZhbHVlcy5yZWR1Y2UoKHBhcnRpYWwsIHNoYXJlKSA9PiBFZGRzYS5jdXJ2ZS5wb2ludEFkZChwYXJ0aWFsLCBzaGFyZSkpO1xuXG4gICAgY29uc3QgclZhbHVlcyA9IFtwbGF5ZXJTaGFyZSwgLi4uclNoYXJlc10ubWFwKCh7IHIgfSkgPT4gYmlnSW50RnJvbUJ1ZmZlckxFKEJ1ZmZlci5mcm9tKHIsICdoZXgnKSkpO1xuICAgIGNvbnN0IHIgPSByVmFsdWVzLnJlZHVjZSgocGFydGlhbCwgc2hhcmUpID0+IEVkZHNhLmN1cnZlLnNjYWxhckFkZChwYXJ0aWFsLCBzaGFyZSkpO1xuXG4gICAgY29uc3QgY29tYmluZWRCdWZmZXIgPSBCdWZmZXIuY29uY2F0KFtiaWdJbnRUb0J1ZmZlckxFKFIsIDMyKSwgQnVmZmVyLmZyb20oU19pLnksICdoZXgnKSwgbWVzc2FnZV0pO1xuICAgIGNvbnN0IGRpZ2VzdCA9IGNyZWF0ZUhhc2goJ3NoYTUxMicpLnVwZGF0ZShjb21iaW5lZEJ1ZmZlcikuZGlnZXN0KCk7XG4gICAgY29uc3QgayA9IEVkZHNhLmN1cnZlLnNjYWxhclJlZHVjZShiaWdJbnRGcm9tQnVmZmVyTEUoZGlnZXN0KSk7XG5cbiAgICBjb25zdCBnYW1tYSA9IEVkZHNhLmN1cnZlLnNjYWxhckFkZChyLCBFZGRzYS5jdXJ2ZS5zY2FsYXJNdWx0KGssIHgpKTtcbiAgICBjb25zdCByZXN1bHQgPSB7XG4gICAgICBpOiBwbGF5ZXJTaGFyZS5pLFxuICAgICAgeTogcGxheWVyU2hhcmUueSxcbiAgICAgIGdhbW1hOiBiaWdJbnRUb0J1ZmZlckxFKGdhbW1hLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgUjogYmlnSW50VG9CdWZmZXJMRShSLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHNpZ25Db21iaW5lKHNoYXJlczogR1NoYXJlW10pOiBTaWduYXR1cmUge1xuICAgIGNvbnN0IHkgPSBzaGFyZXNbMF0ueTtcbiAgICBjb25zdCBSID0gc2hhcmVzWzBdLlI7XG5cbiAgICBjb25zdCByZXN1bHRTaGFyZXMgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGluZCBpbiBzaGFyZXMpIHtcbiAgICAgIGNvbnN0IFNfaSA9IHNoYXJlc1tpbmRdO1xuICAgICAgcmVzdWx0U2hhcmVzW1NfaS5pXSA9IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShTX2kuZ2FtbWEsICdoZXgnKSk7XG4gICAgfVxuICAgIGNvbnN0IHNpZ21hOiBiaWdpbnQgPSBFZGRzYS5zaGFtaXIuY29tYmluZShyZXN1bHRTaGFyZXMpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAgIHksXG4gICAgICBSLFxuICAgICAgc2lnbWE6IGJpZ0ludFRvQnVmZmVyTEUoc2lnbWEsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgdmVyaWZ5KG1lc3NhZ2U6IEJ1ZmZlciwgc2lnbmF0dXJlOiBTaWduYXR1cmUpOiBib29sZWFuIHtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oc2lnbmF0dXJlLnksICdoZXgnKSk7XG4gICAgY29uc3Qgc2lnbmVkTWVzc2FnZSA9IEJ1ZmZlci5jb25jYXQoW0J1ZmZlci5mcm9tKHNpZ25hdHVyZS5SLCAnaGV4JyksIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZS5zaWdtYSwgJ2hleCcpXSk7XG4gICAgcmV0dXJuIEVkZHNhLmN1cnZlLnZlcmlmeShtZXNzYWdlLCBzaWduZWRNZXNzYWdlLCBwdWJsaWNLZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZUNvbW1pdG1lbnQoUlNoYXJlOiBSU2hhcmUpOiB2b2lkIHtcbiAgICBhc3NlcnQoUlNoYXJlLmNvbW1pdG1lbnQsICdDb21taXRtZW50IGlzIG1pc3NpbmcnKTtcbiAgICBjb25zdCBjID0gRWRkc2EuY3VydmUuYmFzZVBvaW50TXVsdChiaWdJbnRGcm9tQnVmZmVyTEUoQnVmZmVyLmZyb20oUlNoYXJlLnIsICdoZXgnKSkpO1xuICAgIGNvbnN0IG90aGVyUGxheWVyQ29tbWl0bWVudCA9IGJpZ0ludEZyb21CdWZmZXJMRShCdWZmZXIuZnJvbShSU2hhcmUuY29tbWl0bWVudCwgJ2hleCcpKTtcbiAgICBpZiAoYyAhPT0gb3RoZXJQbGF5ZXJDb21taXRtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCB2ZXJpZnkgb3RoZXIgcGxheWVyIHNoYXJlJyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -16,9 +16,8 @@ Object.defineProperty(exports, "getPaillierPublicKey", { enumerable: true, get:
16
16
  * @returns {DklsTypes.SerializedDklsSignature} - serialized final signature
17
17
  */
18
18
  function combineRound4DklsDsgMessages(round4DsgMessages) {
19
- var _a;
20
19
  const round4DsgMessagesDeser = round4DsgMessages.map(sdk_lib_mpc_1.DklsTypes.deserializeBroadcastMessage);
21
- const signatureR = (_a = round4DsgMessagesDeser.find((m) => m.signatureR !== undefined)) === null || _a === void 0 ? void 0 : _a.signatureR;
20
+ const signatureR = round4DsgMessagesDeser.find((m) => m.signatureR !== undefined)?.signatureR;
22
21
  if (!signatureR) {
23
22
  throw Error('None of the round 4 Dkls messages contain a Signature.R value.');
24
23
  }
@@ -28,4 +27,4 @@ function combineRound4DklsDsgMessages(round4DsgMessages) {
28
27
  S: Buffer.from(signatureDeser.S).toString('hex'),
29
28
  };
30
29
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9tcGMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpQkEsb0VBZ0JDO0FBakNELHlEQVVpQztBQTZCL0IsbUdBdENBLGdDQUFrQixPQXNDQTtBQUNsQixpR0F0Q0EsOEJBQWdCLE9Bc0NBO0FBQ2hCLGdHQXRDQSw2QkFBZSxPQXNDQTtBQUNmLG1HQXRDQSxnQ0FBa0IsT0FzQ0E7QUFDbEIsaUdBdENBLDhCQUFnQixPQXNDQTtBQUNoQixzRkF0Q0EsbUJBQUssT0FzQ0E7QUFDTCxxR0F0Q0Esa0NBQW9CLE9Bc0NBO0FBakN0Qjs7OztHQUlHO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQzFDLGlCQUF5RDs7SUFFekQsTUFBTSxzQkFBc0IsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsdUJBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQzVGLE1BQU0sVUFBVSxHQUFHLE1BQUEsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQywwQ0FBRSxVQUFVLENBQUM7SUFDOUYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUNELE1BQU0sY0FBYyxHQUFHLHVCQUFTLENBQUMsd0JBQXdCLENBQ3ZELHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FDeEMsQ0FBQztJQUNGLE9BQU87UUFDTCxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUNoRCxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztLQUNqRCxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJpZ0ludEZyb21CdWZmZXJMRSxcbiAgYmlnSW50VG9CdWZmZXJMRSxcbiAgYmlnSW50RnJvbVU4QUJFLFxuICBiaWdJbnRGcm9tQnVmZmVyQkUsXG4gIGJpZ0ludFRvQnVmZmVyQkUsXG4gIGNsYW1wLFxuICBnZXRQYWlsbGllclB1YmxpY0tleSxcbiAgRGtsc1V0aWxzLFxuICBEa2xzVHlwZXMsXG59IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcblxuLyoqXG4gKiBDb21iaW5lcyBzZXJpYWxpemVkIHBhcnRpYWwgc2lnbmF0dXJlcyBmcm9tIHBhcnRpZXMgcGFydGljaXBhdGluZyBpbiBEU0cuXG4gKiBAcGFyYW0gcm91bmQ0RHNnTWVzc2FnZXMgLSByb3VuZCA0IHNlcmlhbGl6ZWQgYnJvYWRjYXN0IG1lc3NhZ2VzIHBheWxvYWRzIGZyb20gcGFydGljaXBhdGluZyBwYXJ0aWVzXG4gKiBAcmV0dXJucyB7RGtsc1R5cGVzLlNlcmlhbGl6ZWREa2xzU2lnbmF0dXJlfSAtIHNlcmlhbGl6ZWQgZmluYWwgc2lnbmF0dXJlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lUm91bmQ0RGtsc0RzZ01lc3NhZ2VzKFxuICByb3VuZDREc2dNZXNzYWdlczogRGtsc1R5cGVzLlNlcmlhbGl6ZWRCcm9hZGNhc3RNZXNzYWdlW11cbik6IERrbHNUeXBlcy5TZXJpYWxpemVkRGtsc1NpZ25hdHVyZSB7XG4gIGNvbnN0IHJvdW5kNERzZ01lc3NhZ2VzRGVzZXIgPSByb3VuZDREc2dNZXNzYWdlcy5tYXAoRGtsc1R5cGVzLmRlc2VyaWFsaXplQnJvYWRjYXN0TWVzc2FnZSk7XG4gIGNvbnN0IHNpZ25hdHVyZVIgPSByb3VuZDREc2dNZXNzYWdlc0Rlc2VyLmZpbmQoKG0pID0+IG0uc2lnbmF0dXJlUiAhPT0gdW5kZWZpbmVkKT8uc2lnbmF0dXJlUjtcbiAgaWYgKCFzaWduYXR1cmVSKSB7XG4gICAgdGhyb3cgRXJyb3IoJ05vbmUgb2YgdGhlIHJvdW5kIDQgRGtscyBtZXNzYWdlcyBjb250YWluIGEgU2lnbmF0dXJlLlIgdmFsdWUuJyk7XG4gIH1cbiAgY29uc3Qgc2lnbmF0dXJlRGVzZXIgPSBEa2xzVXRpbHMuY29tYmluZVBhcnRpYWxTaWduYXR1cmVzKFxuICAgIHJvdW5kNERzZ01lc3NhZ2VzRGVzZXIubWFwKChtKSA9PiBtLnBheWxvYWQpLFxuICAgIEJ1ZmZlci5mcm9tKHNpZ25hdHVyZVIpLnRvU3RyaW5nKCdoZXgnKVxuICApO1xuICByZXR1cm4ge1xuICAgIFI6IEJ1ZmZlci5mcm9tKHNpZ25hdHVyZURlc2VyLlIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBTOiBCdWZmZXIuZnJvbShzaWduYXR1cmVEZXNlci5TKS50b1N0cmluZygnaGV4JyksXG4gIH07XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgLSB1c2UgZXhwb3J0ZWQgbWV0aG9kcyBmcm9tIEBiaXRnby1iZXRhL3Nkay1saWItbXBjIGluc3RlYWRcbiAqL1xuZXhwb3J0IHtcbiAgYmlnSW50RnJvbUJ1ZmZlckxFLFxuICBiaWdJbnRUb0J1ZmZlckxFLFxuICBiaWdJbnRGcm9tVThBQkUsXG4gIGJpZ0ludEZyb21CdWZmZXJCRSxcbiAgYmlnSW50VG9CdWZmZXJCRSxcbiAgY2xhbXAsXG4gIGdldFBhaWxsaWVyUHVibGljS2V5LFxufTtcbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hY2NvdW50LWxpYi9tcGMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFpQkEsb0VBZ0JDO0FBakNELHlEQVVpQztBQTZCL0IsbUdBdENBLGdDQUFrQixPQXNDQTtBQUNsQixpR0F0Q0EsOEJBQWdCLE9Bc0NBO0FBQ2hCLGdHQXRDQSw2QkFBZSxPQXNDQTtBQUNmLG1HQXRDQSxnQ0FBa0IsT0FzQ0E7QUFDbEIsaUdBdENBLDhCQUFnQixPQXNDQTtBQUNoQixzRkF0Q0EsbUJBQUssT0FzQ0E7QUFDTCxxR0F0Q0Esa0NBQW9CLE9Bc0NBO0FBakN0Qjs7OztHQUlHO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQzFDLGlCQUF5RDtJQUV6RCxNQUFNLHNCQUFzQixHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyx1QkFBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDNUYsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxFQUFFLFVBQVUsQ0FBQztJQUM5RixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLENBQUMsZ0VBQWdFLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBQ0QsTUFBTSxjQUFjLEdBQUcsdUJBQVMsQ0FBQyx3QkFBd0IsQ0FDdkQsc0JBQXNCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUN4QyxDQUFDO0lBQ0YsT0FBTztRQUNMLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ2hELENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0tBQ2pELENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYmlnSW50RnJvbUJ1ZmZlckxFLFxuICBiaWdJbnRUb0J1ZmZlckxFLFxuICBiaWdJbnRGcm9tVThBQkUsXG4gIGJpZ0ludEZyb21CdWZmZXJCRSxcbiAgYmlnSW50VG9CdWZmZXJCRSxcbiAgY2xhbXAsXG4gIGdldFBhaWxsaWVyUHVibGljS2V5LFxuICBEa2xzVXRpbHMsXG4gIERrbHNUeXBlcyxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWxpYi1tcGMnO1xuXG4vKipcbiAqIENvbWJpbmVzIHNlcmlhbGl6ZWQgcGFydGlhbCBzaWduYXR1cmVzIGZyb20gcGFydGllcyBwYXJ0aWNpcGF0aW5nIGluIERTRy5cbiAqIEBwYXJhbSByb3VuZDREc2dNZXNzYWdlcyAtIHJvdW5kIDQgc2VyaWFsaXplZCBicm9hZGNhc3QgbWVzc2FnZXMgcGF5bG9hZHMgZnJvbSBwYXJ0aWNpcGF0aW5nIHBhcnRpZXNcbiAqIEByZXR1cm5zIHtEa2xzVHlwZXMuU2VyaWFsaXplZERrbHNTaWduYXR1cmV9IC0gc2VyaWFsaXplZCBmaW5hbCBzaWduYXR1cmVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVSb3VuZDREa2xzRHNnTWVzc2FnZXMoXG4gIHJvdW5kNERzZ01lc3NhZ2VzOiBEa2xzVHlwZXMuU2VyaWFsaXplZEJyb2FkY2FzdE1lc3NhZ2VbXVxuKTogRGtsc1R5cGVzLlNlcmlhbGl6ZWREa2xzU2lnbmF0dXJlIHtcbiAgY29uc3Qgcm91bmQ0RHNnTWVzc2FnZXNEZXNlciA9IHJvdW5kNERzZ01lc3NhZ2VzLm1hcChEa2xzVHlwZXMuZGVzZXJpYWxpemVCcm9hZGNhc3RNZXNzYWdlKTtcbiAgY29uc3Qgc2lnbmF0dXJlUiA9IHJvdW5kNERzZ01lc3NhZ2VzRGVzZXIuZmluZCgobSkgPT4gbS5zaWduYXR1cmVSICE9PSB1bmRlZmluZWQpPy5zaWduYXR1cmVSO1xuICBpZiAoIXNpZ25hdHVyZVIpIHtcbiAgICB0aHJvdyBFcnJvcignTm9uZSBvZiB0aGUgcm91bmQgNCBEa2xzIG1lc3NhZ2VzIGNvbnRhaW4gYSBTaWduYXR1cmUuUiB2YWx1ZS4nKTtcbiAgfVxuICBjb25zdCBzaWduYXR1cmVEZXNlciA9IERrbHNVdGlscy5jb21iaW5lUGFydGlhbFNpZ25hdHVyZXMoXG4gICAgcm91bmQ0RHNnTWVzc2FnZXNEZXNlci5tYXAoKG0pID0+IG0ucGF5bG9hZCksXG4gICAgQnVmZmVyLmZyb20oc2lnbmF0dXJlUikudG9TdHJpbmcoJ2hleCcpXG4gICk7XG4gIHJldHVybiB7XG4gICAgUjogQnVmZmVyLmZyb20oc2lnbmF0dXJlRGVzZXIuUikudG9TdHJpbmcoJ2hleCcpLFxuICAgIFM6IEJ1ZmZlci5mcm9tKHNpZ25hdHVyZURlc2VyLlMpLnRvU3RyaW5nKCdoZXgnKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCAtIHVzZSBleHBvcnRlZCBtZXRob2RzIGZyb20gQGJpdGdvLWJldGEvc2RrLWxpYi1tcGMgaW5zdGVhZFxuICovXG5leHBvcnQge1xuICBiaWdJbnRGcm9tQnVmZmVyTEUsXG4gIGJpZ0ludFRvQnVmZmVyTEUsXG4gIGJpZ0ludEZyb21VOEFCRSxcbiAgYmlnSW50RnJvbUJ1ZmZlckJFLFxuICBiaWdJbnRUb0J1ZmZlckJFLFxuICBjbGFtcCxcbiAgZ2V0UGFpbGxpZXJQdWJsaWNLZXksXG59O1xuIl19
@@ -72,14 +72,13 @@ class AddressBook {
72
72
  * Update the name and description of the listing
73
73
  */
74
74
  async updateListing({ listingId, ...params }) {
75
- var _a;
76
75
  const url = this.bitgo.microservicesUrl(`/api/address-book/v1/listing/${listingId}`);
77
76
  const response = await this.bitgo
78
77
  .put(url)
79
78
  .set('enterprise-id', this.enterpriseId)
80
79
  .send(params)
81
80
  .result();
82
- this._listing = { ...response, listingEntries: ((_a = this._listing) === null || _a === void 0 ? void 0 : _a.listingEntries) ? this._listing.listingEntries : [] };
81
+ this._listing = { ...response, listingEntries: this._listing?.listingEntries ? this._listing.listingEntries : [] };
83
82
  return this.listing();
84
83
  }
85
84
  /**
@@ -100,7 +99,6 @@ class AddressBook {
100
99
  * Create a listing entry for use in the public directory or keep private and share the listing entry id with others.
101
100
  */
102
101
  async createListingEntry(params) {
103
- var _a;
104
102
  if (!params.walletId && this.wallet) {
105
103
  params.walletId = this.wallet.id();
106
104
  }
@@ -111,7 +109,7 @@ class AddressBook {
111
109
  .send(params)
112
110
  .result();
113
111
  if (this._listing) {
114
- (_a = this._listing.listingEntries) === null || _a === void 0 ? void 0 : _a.push({ ...response });
112
+ this._listing.listingEntries?.push({ ...response });
115
113
  }
116
114
  return response;
117
115
  }
@@ -119,7 +117,6 @@ class AddressBook {
119
117
  * Update a listing entry (wallet)
120
118
  */
121
119
  async updateListingEntry({ listingEntryId, ...params }) {
122
- var _a, _b, _c, _d;
123
120
  const url = this.bitgo.microservicesUrl(`/api/address-book/v1/listing/entry/${listingEntryId}`);
124
121
  const response = await this.bitgo
125
122
  .put(url)
@@ -127,16 +124,16 @@ class AddressBook {
127
124
  .send(params)
128
125
  .result();
129
126
  if (this._listing) {
130
- const index = (_c = (_b = (_a = this._listing) === null || _a === void 0 ? void 0 : _a.listingEntries) === null || _b === void 0 ? void 0 : _b.findIndex((x) => x.id === response.id)) !== null && _c !== void 0 ? _c : -1;
127
+ const index = this._listing?.listingEntries?.findIndex((x) => x.id === response.id) ?? -1;
131
128
  if (index > -1 && this._listing.listingEntries) {
132
129
  this._listing.listingEntries[index] = { ...response };
133
130
  }
134
131
  else {
135
- (_d = this._listing.listingEntries) === null || _d === void 0 ? void 0 : _d.push({ ...response });
132
+ this._listing.listingEntries?.push({ ...response });
136
133
  }
137
134
  }
138
135
  return response;
139
136
  }
140
137
  }
141
138
  exports.AddressBook = AddressBook;
142
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1ib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2FkZHJlc3MtYm9vay9hZGRyZXNzLWJvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEJBLE1BQWEsV0FBVztJQU90QixZQUFZLFlBQW9CLEVBQUUsS0FBZ0IsRUFBRSxNQUFnQjtRQUNsRSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTztRQUNMOzs7V0FHRztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxNQUF3QztRQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0YsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILGdCQUFnQixDQUFDLE1BQXlDO1FBQ3hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElB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TSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxzQ0FBc0MsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUNoRyxNQUFNLFFBQVEsR0FBMEMsTUFBTSxJQUFJLENBQUMsS0FBSzthQUNyRSxHQUFHLENBQUMsR0FBRyxDQUFDO2FBQ1IsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDO2FBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDWixNQUFNLEVBQUUsQ0FBQztRQUNaLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sS0FBSyxHQUFHLE1BQUEsTUFBQSxNQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLGNBQWMsMENBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxFQUFFLENBQUMsbUNBQUksQ0FBQyxDQUFDLENBQUM7WUFDMUYsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQ3hELENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYywwQ0FBRSxJQUFJLENBQUMsRUFBRSxHQUFHLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDdEQsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0NBQ0Y7QUFoS0Qsa0NBZ0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IElXYWxsZXQgfSBmcm9tICcuLi93YWxsZXQnO1xuaW1wb3J0IHtcbiAgQWRkcmVzc0Jvb2tMaXN0aW5nLFxuICBDcmVhdGVBZGRyZXNzQm9va0Nvbm5lY3Rpb25QYXJhbXMsXG4gIENyZWF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblJlc3BvbnNlLFxuICBDcmVhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVBhcmFtcyxcbiAgQ3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlSZXNwb25zZSxcbiAgQ3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUGFyYW1zLFxuICBDcmVhdGVBZGRyZXNzQm9va0xpc3RpbmdSZXNwb25zZSxcbiAgR2V0QWRkcmVzc0Jvb2tDb25uZWN0aW9uc1BhcmFtcyxcbiAgR2V0QWRkcmVzc0Jvb2tDb25uZWN0aW9uc1Jlc3BvbnNlLFxuICBHZXRBZGRyZXNzQm9va0xpc3RpbmdFbnRyeUNvbnRhY3RzUGFyYW1zLFxuICBHZXRBZGRyZXNzQm9va0xpc3RpbmdFbnRyeUNvbnRhY3RzUmVzcG9uc2UsXG4gIEdldEFkZHJlc3NCb29rTGlzdGluZ0VudHJ5RGlyZWN0b3J5UGFyYW1zLFxuICBHZXRBZGRyZXNzQm9va0xpc3RpbmdFbnRyeURpcmVjdG9yeVJlc3BvbnNlLFxuICBHZXRBZGRyZXNzQm9va0xpc3RpbmdSZXNwb25zZSxcbiAgSUFkZHJlc3NCb29rLFxuICBVcGRhdGVBZGRyZXNzQm9va0Nvbm5lY3Rpb25QYXJhbXMsXG4gIFVwZGF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblJlc3BvbnNlLFxuICBVcGRhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVBhcmFtcyxcbiAgVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlSZXNwb25zZSxcbiAgVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUGFyYW1zLFxuICBVcGRhdGVBZGRyZXNzQm9va0xpc3RpbmdSZXNwb25zZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBBZGRyZXNzQm9vayBpbXBsZW1lbnRzIElBZGRyZXNzQm9vayB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYml0Z286IEJpdEdvQmFzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBlbnRlcnByaXNlSWQ6IHN0cmluZztcblxuICBwdWJsaWMgd2FsbGV0PzogSVdhbGxldDtcbiAgcHJpdmF0ZSBfbGlzdGluZz86IEFkZHJlc3NCb29rTGlzdGluZztcblxuICBjb25zdHJ1Y3RvcihlbnRlcnByaXNlSWQ6IHN0cmluZywgYml0Z286IEJpdEdvQmFzZSwgd2FsbGV0PzogSVdhbGxldCkge1xuICAgIHRoaXMuZW50ZXJwcmlzZUlkID0gZW50ZXJwcmlzZUlkO1xuICAgIHRoaXMud2FsbGV0ID0gd2FsbGV0O1xuICAgIHRoaXMuYml0Z28gPSBiaXRnbztcbiAgfVxuXG4gIGxpc3RpbmcoKTogQWRkcmVzc0Jvb2tMaXN0aW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvKipcbiAgICAgKiBUT0RPKFBYLTI3OTQpOiBNb3ZlIHRvIHN0cnVjdHVyZWRDbG9uZVxuICAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9CaXRHby9CaXRHb0pTL3B1bGwvNDExOVxuICAgICAqL1xuICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuX2xpc3RpbmcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYSBsaXN0IG9mIGNvbm5lY3Rpb25zIHRoZSB3YWxsZXQgaGFzIG1hZGUgdG8gb3RoZXIgZGlyZWN0b3J5IG9yIG1hbnVhbGx5IGFkZGVkIGNvbnRhY3RzLlxuICAgKi9cbiAgZ2V0Q29ubmVjdGlvbnMocGFyYW1zPzogR2V0QWRkcmVzc0Jvb2tDb25uZWN0aW9uc1BhcmFtcyk6IFByb21pc2U8R2V0QWRkcmVzc0Jvb2tDb25uZWN0aW9uc1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9jb25uZWN0aW9ucycpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY29ubmVjdGlvbiBiZXR3ZWVuIGFuIGVudGVycHJpc2UgbGlzdGluZyBlbnRyeSAod2FsbGV0KSB0byBhbm90aGVyIGxpc3RpbmcgZW50cnlcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0ge3N0cmluZ30gbGlzdGluZ0VudHJ5SWQgWW91ciBlbnRlcnByaXNlIGxpc3RpbmcgZW50cnkgaWQuIFJlcXVpcmVzIHRoZSBjcmVhdGlvbiBvZiBhIGxpc3RpbmcgZW50cnkgYmVmb3JlIHVzZS5cbiAgICogQHBhcmFtIHtzdHJpbmc9fSBsb2NhbExpc3RpbmdFbnRyeURlc2NyaXB0aW9uIE9wdGlvbmFsIG5hbWUgdG8gb3ZlcnJpZGUgdGhlIG5hbWUgb2YgdGhlIGNvdW50ZXJwYXJ0aWVzIGxpc3RpbmcgZW50cnkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0YXJnZXRMaXN0aW5nRW50cnlJZCBJZiB5b3Uga25vdyB0aGUgb3RoZXIgcGFydGllcyBsaXN0aW5nIGVudHJ5IGlkXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB3YWxsZXRJZCBJZiB5b3UgZG9uJ3Qga25vdyB0aGUgdGFyZ2V0TGlzdGluZ0VudHJ5SWQgYW5kIGFyZSBhZGRpbmcgbWFudWFsbHlcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxvY2FsTGlzdGluZ05hbWUgUmVxdWlyZWQgaWYgdXNpbmcgd2FsbGV0SWRcbiAgICogQHJldHVybnMge1Byb21pc2U8Q3JlYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUmVzcG9uc2U+fVxuICAgKi9cbiAgY3JlYXRlQ29ubmVjdGlvbihwYXJhbXM6IENyZWF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblBhcmFtcyk6IFByb21pc2U8Q3JlYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoJy9hcGkvYWRkcmVzcy1ib29rL3YxL2Nvbm5lY3Rpb25zJyk7XG4gICAgcmV0dXJuIHRoaXMuYml0Z28ucG9zdCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIG9uZSBvciBtYW55IGNvbm5lY3Rpb25zIHRvIGEgbmV3IHN0YXR1c1xuICAgKi9cbiAgdXBkYXRlQ29ubmVjdGlvbihwYXJhbXM6IFVwZGF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblBhcmFtcyk6IFByb21pc2U8VXBkYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoJy9hcGkvYWRkcmVzcy1ib29rL3YxL2Nvbm5lY3Rpb25zJyk7XG4gICAgcmV0dXJuIHRoaXMuYml0Z28ucHV0KHVybCkuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpLnNlbmQocGFyYW1zKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGFkZHJlc3MgYm9vayBsaXN0aW5nIGZvciB0aGUgZW50ZXJwcmlzZVxuICAgKi9cbiAgYXN5bmMgZ2V0TGlzdGluZygpOiBQcm9taXNlPEFkZHJlc3NCb29rTGlzdGluZz4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCgnL2FwaS9hZGRyZXNzLWJvb2svdjEvbGlzdGluZy9nbG9iYWwnKTtcbiAgICBjb25zdCByZXNwb25zZTogR2V0QWRkcmVzc0Jvb2tMaXN0aW5nUmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAuZ2V0KHVybClcbiAgICAgIC5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZClcbiAgICAgIC5zZW5kKClcbiAgICAgIC5yZXN1bHQoKTtcbiAgICB0aGlzLl9saXN0aW5nID0gcmVzcG9uc2U7XG4gICAgcmV0dXJuIHRoaXMubGlzdGluZygpIGFzIEFkZHJlc3NCb29rTGlzdGluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgdGhlIGxpc3RpbmcgdXNlZCBmb3IgZWFjaCB3YWxsZXQncyBsaXN0aW5nIGVudHJ5XG4gICAqL1xuICBhc3luYyBjcmVhdGVMaXN0aW5nKHBhcmFtczogQ3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUGFyYW1zKTogUHJvbWlzZTxBZGRyZXNzQm9va0xpc3Rpbmc+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoJy9hcGkvYWRkcmVzcy1ib29rL3YxL2xpc3RpbmcvZ2xvYmFsJyk7XG4gICAgY29uc3QgcmVzcG9uc2U6IENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodXJsKVxuICAgICAgLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKVxuICAgICAgLnNlbmQocGFyYW1zKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIHRoaXMuX2xpc3RpbmcgPSB7IC4uLnJlc3BvbnNlLCBsaXN0aW5nRW50cmllczogW10gfTtcbiAgICByZXR1cm4gdGhpcy5saXN0aW5nKCkgYXMgQWRkcmVzc0Jvb2tMaXN0aW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSB0aGUgbmFtZSBhbmQgZGVzY3JpcHRpb24gb2YgdGhlIGxpc3RpbmdcbiAgICovXG4gIGFzeW5jIHVwZGF0ZUxpc3RpbmcoeyBsaXN0aW5nSWQsIC4uLnBhcmFtcyB9OiBVcGRhdGVBZGRyZXNzQm9va0xpc3RpbmdQYXJhbXMpOiBQcm9taXNlPEFkZHJlc3NCb29rTGlzdGluZz4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybChgL2FwaS9hZGRyZXNzLWJvb2svdjEvbGlzdGluZy8ke2xpc3RpbmdJZH1gKTtcbiAgICBjb25zdCByZXNwb25zZTogVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUmVzcG9uc2UgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAucHV0KHVybClcbiAgICAgIC5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZClcbiAgICAgIC5zZW5kKHBhcmFtcylcbiAgICAgIC5yZXN1bHQoKTtcbiAgICB0aGlzLl9saXN0aW5nID0geyAuLi5yZXNwb25zZSwgbGlzdGluZ0VudHJpZXM6IHRoaXMuX2xpc3Rpbmc/Lmxpc3RpbmdFbnRyaWVzID8gdGhpcy5fbGlzdGluZy5saXN0aW5nRW50cmllcyA6IFtdIH07XG4gICAgcmV0dXJuIHRoaXMubGlzdGluZygpIGFzIEFkZHJlc3NCb29rTGlzdGluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBsaXN0IG9mIGxpc3RpbmcgZW50cnkgY29udGFjdHMgdGhhdCBhcmUgY29ubmVjdGVkIHRvIHlvdXIgZW50ZXJwcmlzZSBsaXN0aW5nIGVudHJpZXMgKHdhbGxldHMpXG4gICAqL1xuICBnZXRMaXN0aW5nRW50cnlDb250YWN0cyhcbiAgICBwYXJhbXM/OiBHZXRBZGRyZXNzQm9va0xpc3RpbmdFbnRyeUNvbnRhY3RzUGFyYW1zXG4gICk6IFByb21pc2U8R2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlDb250YWN0c1Jlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9saXN0aW5nL2VudHJ5L2NvbnRhY3RzJyk7XG4gICAgcmV0dXJuIHRoaXMuYml0Z28uZ2V0KHVybCkuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpLnNlbmQocGFyYW1zKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBwdWJsaWMgbGlzdCBvZiBvdGhlciBsaXN0aW5nIGVudHJpZXMgdGhhdCB5b3UgY2FuIGNvbm5lY3Qgd2l0aC5cbiAgICovXG4gIGdldExpc3RpbmdFbnRyeURpcmVjdG9yeShcbiAgICBwYXJhbXM/OiBHZXRBZGRyZXNzQm9va0xpc3RpbmdFbnRyeURpcmVjdG9yeVBhcmFtc1xuICApOiBQcm9taXNlPEdldEFkZHJlc3NCb29rTGlzdGluZ0VudHJ5RGlyZWN0b3J5UmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoJy9hcGkvYWRkcmVzcy1ib29rL3YxL2xpc3RpbmcvZW50cnkvZGlyZWN0b3J5Jyk7XG4gICAgcmV0dXJuIHRoaXMuYml0Z28uZ2V0KHVybCkuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpLnNlbmQocGFyYW1zKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBsaXN0aW5nIGVudHJ5IGZvciB1c2UgaW4gdGhlIHB1YmxpYyBkaXJlY3Rvcnkgb3Iga2VlcCBwcml2YXRlIGFuZCBzaGFyZSB0aGUgbGlzdGluZyBlbnRyeSBpZCB3aXRoIG90aGVycy5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZUxpc3RpbmdFbnRyeShcbiAgICBwYXJhbXM6IE9taXQ8Q3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlQYXJhbXMsICd3YWxsZXRJZCc+ICYge1xuICAgICAgd2FsbGV0SWQ/OiBzdHJpbmc7XG4gICAgfVxuICApOiBQcm9taXNlPENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UmVzcG9uc2U+IHtcbiAgICBpZiAoIXBhcmFtcy53YWxsZXRJZCAmJiB0aGlzLndhbGxldCkge1xuICAgICAgcGFyYW1zLndhbGxldElkID0gdGhpcy53YWxsZXQuaWQoKTtcbiAgICB9XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9saXN0aW5nL2VudHJ5L2dsb2JhbCcpO1xuICAgIGNvbnN0IHJlc3BvbnNlOiBDcmVhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodXJsKVxuICAgICAgLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKVxuICAgICAgLnNlbmQocGFyYW1zKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIGlmICh0aGlzLl9saXN0aW5nKSB7XG4gICAgICB0aGlzLl9saXN0aW5nLmxpc3RpbmdFbnRyaWVzPy5wdXNoKHsgLi4ucmVzcG9uc2UgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgYSBsaXN0aW5nIGVudHJ5ICh3YWxsZXQpXG4gICAqL1xuICBhc3luYyB1cGRhdGVMaXN0aW5nRW50cnkoe1xuICAgIGxpc3RpbmdFbnRyeUlkLFxuICAgIC4uLnBhcmFtc1xuICB9OiBVcGRhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVBhcmFtcyk6IFByb21pc2U8VXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybChgL2FwaS9hZGRyZXNzLWJvb2svdjEvbGlzdGluZy9lbnRyeS8ke2xpc3RpbmdFbnRyeUlkfWApO1xuICAgIGNvbnN0IHJlc3BvbnNlOiBVcGRhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnB1dCh1cmwpXG4gICAgICAuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpXG4gICAgICAuc2VuZChwYXJhbXMpXG4gICAgICAucmVzdWx0KCk7XG4gICAgaWYgKHRoaXMuX2xpc3RpbmcpIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5fbGlzdGluZz8ubGlzdGluZ0VudHJpZXM/LmZpbmRJbmRleCgoeCkgPT4geC5pZCA9PT0gcmVzcG9uc2UuaWQpID8/IC0xO1xuICAgICAgaWYgKGluZGV4ID4gLTEgJiYgdGhpcy5fbGlzdGluZy5saXN0aW5nRW50cmllcykge1xuICAgICAgICB0aGlzLl9saXN0aW5nLmxpc3RpbmdFbnRyaWVzW2luZGV4XSA9IHsgLi4ucmVzcG9uc2UgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2xpc3RpbmcubGlzdGluZ0VudHJpZXM/LnB1c2goeyAuLi5yZXNwb25zZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG59XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzcy1ib29rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2FkZHJlc3MtYm9vay9hZGRyZXNzLWJvb2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEJBLE1BQWEsV0FBVztJQU90QixZQUFZLFlBQW9CLEVBQUUsS0FBZ0IsRUFBRSxNQUFnQjtRQUNsRSxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsT0FBTztRQUNMOzs7V0FHRztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxNQUF3QztRQUNyRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDM0YsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILGdCQUFnQixDQUFDLE1BQXlDO1FBQ3hELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUM1RSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElB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QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsc0NBQXNDLGNBQWMsRUFBRSxDQUFDLENBQUM7UUFDaEcsTUFBTSxRQUFRLEdBQTBDLE1BQU0sSUFBSSxDQUFDLEtBQUs7YUFDckUsR0FBRyxDQUFDLEdBQUcsQ0FBQzthQUNSLEdBQUcsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQzthQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDO2FBQ1osTUFBTSxFQUFFLENBQUM7UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzFGLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQztZQUN4RCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGO0FBaEtELGtDQWdLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBJV2FsbGV0IH0gZnJvbSAnLi4vd2FsbGV0JztcbmltcG9ydCB7XG4gIEFkZHJlc3NCb29rTGlzdGluZyxcbiAgQ3JlYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUGFyYW1zLFxuICBDcmVhdGVBZGRyZXNzQm9va0Nvbm5lY3Rpb25SZXNwb25zZSxcbiAgQ3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlQYXJhbXMsXG4gIENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UmVzcG9uc2UsXG4gIENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ1BhcmFtcyxcbiAgQ3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUmVzcG9uc2UsXG4gIEdldEFkZHJlc3NCb29rQ29ubmVjdGlvbnNQYXJhbXMsXG4gIEdldEFkZHJlc3NCb29rQ29ubmVjdGlvbnNSZXNwb25zZSxcbiAgR2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlDb250YWN0c1BhcmFtcyxcbiAgR2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlDb250YWN0c1Jlc3BvbnNlLFxuICBHZXRBZGRyZXNzQm9va0xpc3RpbmdFbnRyeURpcmVjdG9yeVBhcmFtcyxcbiAgR2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlEaXJlY3RvcnlSZXNwb25zZSxcbiAgR2V0QWRkcmVzc0Jvb2tMaXN0aW5nUmVzcG9uc2UsXG4gIElBZGRyZXNzQm9vayxcbiAgVXBkYXRlQWRkcmVzc0Jvb2tDb25uZWN0aW9uUGFyYW1zLFxuICBVcGRhdGVBZGRyZXNzQm9va0Nvbm5lY3Rpb25SZXNwb25zZSxcbiAgVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlQYXJhbXMsXG4gIFVwZGF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UmVzcG9uc2UsXG4gIFVwZGF0ZUFkZHJlc3NCb29rTGlzdGluZ1BhcmFtcyxcbiAgVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUmVzcG9uc2UsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY2xhc3MgQWRkcmVzc0Jvb2sgaW1wbGVtZW50cyBJQWRkcmVzc0Jvb2sge1xuICBwcml2YXRlIHJlYWRvbmx5IGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgZW50ZXJwcmlzZUlkOiBzdHJpbmc7XG5cbiAgcHVibGljIHdhbGxldD86IElXYWxsZXQ7XG4gIHByaXZhdGUgX2xpc3Rpbmc/OiBBZGRyZXNzQm9va0xpc3Rpbmc7XG5cbiAgY29uc3RydWN0b3IoZW50ZXJwcmlzZUlkOiBzdHJpbmcsIGJpdGdvOiBCaXRHb0Jhc2UsIHdhbGxldD86IElXYWxsZXQpIHtcbiAgICB0aGlzLmVudGVycHJpc2VJZCA9IGVudGVycHJpc2VJZDtcbiAgICB0aGlzLndhbGxldCA9IHdhbGxldDtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gIH1cblxuICBsaXN0aW5nKCk6IEFkZHJlc3NCb29rTGlzdGluZyB8IHVuZGVmaW5lZCB7XG4gICAgLyoqXG4gICAgICogVE9ETyhQWC0yNzk0KTogTW92ZSB0byBzdHJ1Y3R1cmVkQ2xvbmVcbiAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vQml0R28vQml0R29KUy9wdWxsLzQxMTlcbiAgICAgKi9cbiAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLl9saXN0aW5nKSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGEgbGlzdCBvZiBjb25uZWN0aW9ucyB0aGUgd2FsbGV0IGhhcyBtYWRlIHRvIG90aGVyIGRpcmVjdG9yeSBvciBtYW51YWxseSBhZGRlZCBjb250YWN0cy5cbiAgICovXG4gIGdldENvbm5lY3Rpb25zKHBhcmFtcz86IEdldEFkZHJlc3NCb29rQ29ubmVjdGlvbnNQYXJhbXMpOiBQcm9taXNlPEdldEFkZHJlc3NCb29rQ29ubmVjdGlvbnNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCgnL2FwaS9hZGRyZXNzLWJvb2svdjEvY29ubmVjdGlvbnMnKTtcbiAgICByZXR1cm4gdGhpcy5iaXRnby5nZXQodXJsKS5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZCkuc2VuZChwYXJhbXMpLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIGNvbm5lY3Rpb24gYmV0d2VlbiBhbiBlbnRlcnByaXNlIGxpc3RpbmcgZW50cnkgKHdhbGxldCkgdG8gYW5vdGhlciBsaXN0aW5nIGVudHJ5XG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHBhcmFtIHtzdHJpbmd9IGxpc3RpbmdFbnRyeUlkIFlvdXIgZW50ZXJwcmlzZSBsaXN0aW5nIGVudHJ5IGlkLiBSZXF1aXJlcyB0aGUgY3JlYXRpb24gb2YgYSBsaXN0aW5nIGVudHJ5IGJlZm9yZSB1c2UuXG4gICAqIEBwYXJhbSB7c3RyaW5nPX0gbG9jYWxMaXN0aW5nRW50cnlEZXNjcmlwdGlvbiBPcHRpb25hbCBuYW1lIHRvIG92ZXJyaWRlIHRoZSBuYW1lIG9mIHRoZSBjb3VudGVycGFydGllcyBsaXN0aW5nIGVudHJ5LlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdGFyZ2V0TGlzdGluZ0VudHJ5SWQgSWYgeW91IGtub3cgdGhlIG90aGVyIHBhcnRpZXMgbGlzdGluZyBlbnRyeSBpZFxuICAgKiBAcGFyYW0ge3N0cmluZ30gd2FsbGV0SWQgSWYgeW91IGRvbid0IGtub3cgdGhlIHRhcmdldExpc3RpbmdFbnRyeUlkIGFuZCBhcmUgYWRkaW5nIG1hbnVhbGx5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhbExpc3RpbmdOYW1lIFJlcXVpcmVkIGlmIHVzaW5nIHdhbGxldElkXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPENyZWF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblJlc3BvbnNlPn1cbiAgICovXG4gIGNyZWF0ZUNvbm5lY3Rpb24ocGFyYW1zOiBDcmVhdGVBZGRyZXNzQm9va0Nvbm5lY3Rpb25QYXJhbXMpOiBQcm9taXNlPENyZWF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9jb25uZWN0aW9ucycpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLnBvc3QodXJsKS5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZCkuc2VuZChwYXJhbXMpLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBvbmUgb3IgbWFueSBjb25uZWN0aW9ucyB0byBhIG5ldyBzdGF0dXNcbiAgICovXG4gIHVwZGF0ZUNvbm5lY3Rpb24ocGFyYW1zOiBVcGRhdGVBZGRyZXNzQm9va0Nvbm5lY3Rpb25QYXJhbXMpOiBQcm9taXNlPFVwZGF0ZUFkZHJlc3NCb29rQ29ubmVjdGlvblJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9jb25uZWN0aW9ucycpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLnB1dCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBhZGRyZXNzIGJvb2sgbGlzdGluZyBmb3IgdGhlIGVudGVycHJpc2VcbiAgICovXG4gIGFzeW5jIGdldExpc3RpbmcoKTogUHJvbWlzZTxBZGRyZXNzQm9va0xpc3Rpbmc+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoJy9hcGkvYWRkcmVzcy1ib29rL3YxL2xpc3RpbmcvZ2xvYmFsJyk7XG4gICAgY29uc3QgcmVzcG9uc2U6IEdldEFkZHJlc3NCb29rTGlzdGluZ1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh1cmwpXG4gICAgICAuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpXG4gICAgICAuc2VuZCgpXG4gICAgICAucmVzdWx0KCk7XG4gICAgdGhpcy5fbGlzdGluZyA9IHJlc3BvbnNlO1xuICAgIHJldHVybiB0aGlzLmxpc3RpbmcoKSBhcyBBZGRyZXNzQm9va0xpc3Rpbmc7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRoZSBsaXN0aW5nIHVzZWQgZm9yIGVhY2ggd2FsbGV0J3MgbGlzdGluZyBlbnRyeVxuICAgKi9cbiAgYXN5bmMgY3JlYXRlTGlzdGluZyhwYXJhbXM6IENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ1BhcmFtcyk6IFByb21pc2U8QWRkcmVzc0Jvb2tMaXN0aW5nPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9saXN0aW5nL2dsb2JhbCcpO1xuICAgIGNvbnN0IHJlc3BvbnNlOiBDcmVhdGVBZGRyZXNzQm9va0xpc3RpbmdSZXNwb25zZSA9IGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5wb3N0KHVybClcbiAgICAgIC5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZClcbiAgICAgIC5zZW5kKHBhcmFtcylcbiAgICAgIC5yZXN1bHQoKTtcbiAgICB0aGlzLl9saXN0aW5nID0geyAuLi5yZXNwb25zZSwgbGlzdGluZ0VudHJpZXM6IFtdIH07XG4gICAgcmV0dXJuIHRoaXMubGlzdGluZygpIGFzIEFkZHJlc3NCb29rTGlzdGluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgdGhlIG5hbWUgYW5kIGRlc2NyaXB0aW9uIG9mIHRoZSBsaXN0aW5nXG4gICAqL1xuICBhc3luYyB1cGRhdGVMaXN0aW5nKHsgbGlzdGluZ0lkLCAuLi5wYXJhbXMgfTogVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nUGFyYW1zKTogUHJvbWlzZTxBZGRyZXNzQm9va0xpc3Rpbmc+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoYC9hcGkvYWRkcmVzcy1ib29rL3YxL2xpc3RpbmcvJHtsaXN0aW5nSWR9YCk7XG4gICAgY29uc3QgcmVzcG9uc2U6IFVwZGF0ZUFkZHJlc3NCb29rTGlzdGluZ1Jlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnB1dCh1cmwpXG4gICAgICAuc2V0KCdlbnRlcnByaXNlLWlkJywgdGhpcy5lbnRlcnByaXNlSWQpXG4gICAgICAuc2VuZChwYXJhbXMpXG4gICAgICAucmVzdWx0KCk7XG4gICAgdGhpcy5fbGlzdGluZyA9IHsgLi4ucmVzcG9uc2UsIGxpc3RpbmdFbnRyaWVzOiB0aGlzLl9saXN0aW5nPy5saXN0aW5nRW50cmllcyA/IHRoaXMuX2xpc3RpbmcubGlzdGluZ0VudHJpZXMgOiBbXSB9O1xuICAgIHJldHVybiB0aGlzLmxpc3RpbmcoKSBhcyBBZGRyZXNzQm9va0xpc3Rpbmc7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgbGlzdCBvZiBsaXN0aW5nIGVudHJ5IGNvbnRhY3RzIHRoYXQgYXJlIGNvbm5lY3RlZCB0byB5b3VyIGVudGVycHJpc2UgbGlzdGluZyBlbnRyaWVzICh3YWxsZXRzKVxuICAgKi9cbiAgZ2V0TGlzdGluZ0VudHJ5Q29udGFjdHMoXG4gICAgcGFyYW1zPzogR2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlDb250YWN0c1BhcmFtc1xuICApOiBQcm9taXNlPEdldEFkZHJlc3NCb29rTGlzdGluZ0VudHJ5Q29udGFjdHNSZXNwb25zZT4ge1xuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCgnL2FwaS9hZGRyZXNzLWJvb2svdjEvbGlzdGluZy9lbnRyeS9jb250YWN0cycpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGEgcHVibGljIGxpc3Qgb2Ygb3RoZXIgbGlzdGluZyBlbnRyaWVzIHRoYXQgeW91IGNhbiBjb25uZWN0IHdpdGguXG4gICAqL1xuICBnZXRMaXN0aW5nRW50cnlEaXJlY3RvcnkoXG4gICAgcGFyYW1zPzogR2V0QWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlEaXJlY3RvcnlQYXJhbXNcbiAgKTogUHJvbWlzZTxHZXRBZGRyZXNzQm9va0xpc3RpbmdFbnRyeURpcmVjdG9yeVJlc3BvbnNlPiB7XG4gICAgY29uc3QgdXJsID0gdGhpcy5iaXRnby5taWNyb3NlcnZpY2VzVXJsKCcvYXBpL2FkZHJlc3MtYm9vay92MS9saXN0aW5nL2VudHJ5L2RpcmVjdG9yeScpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvLmdldCh1cmwpLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbGlzdGluZyBlbnRyeSBmb3IgdXNlIGluIHRoZSBwdWJsaWMgZGlyZWN0b3J5IG9yIGtlZXAgcHJpdmF0ZSBhbmQgc2hhcmUgdGhlIGxpc3RpbmcgZW50cnkgaWQgd2l0aCBvdGhlcnMuXG4gICAqL1xuICBhc3luYyBjcmVhdGVMaXN0aW5nRW50cnkoXG4gICAgcGFyYW1zOiBPbWl0PENyZWF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UGFyYW1zLCAnd2FsbGV0SWQnPiAmIHtcbiAgICAgIHdhbGxldElkPzogc3RyaW5nO1xuICAgIH1cbiAgKTogUHJvbWlzZTxDcmVhdGVBZGRyZXNzQm9va0xpc3RpbmdFbnRyeVJlc3BvbnNlPiB7XG4gICAgaWYgKCFwYXJhbXMud2FsbGV0SWQgJiYgdGhpcy53YWxsZXQpIHtcbiAgICAgIHBhcmFtcy53YWxsZXRJZCA9IHRoaXMud2FsbGV0LmlkKCk7XG4gICAgfVxuICAgIGNvbnN0IHVybCA9IHRoaXMuYml0Z28ubWljcm9zZXJ2aWNlc1VybCgnL2FwaS9hZGRyZXNzLWJvb2svdjEvbGlzdGluZy9lbnRyeS9nbG9iYWwnKTtcbiAgICBjb25zdCByZXNwb25zZTogQ3JlYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlSZXNwb25zZSA9IGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5wb3N0KHVybClcbiAgICAgIC5zZXQoJ2VudGVycHJpc2UtaWQnLCB0aGlzLmVudGVycHJpc2VJZClcbiAgICAgIC5zZW5kKHBhcmFtcylcbiAgICAgIC5yZXN1bHQoKTtcbiAgICBpZiAodGhpcy5fbGlzdGluZykge1xuICAgICAgdGhpcy5fbGlzdGluZy5saXN0aW5nRW50cmllcz8ucHVzaCh7IC4uLnJlc3BvbnNlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzcG9uc2U7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIGEgbGlzdGluZyBlbnRyeSAod2FsbGV0KVxuICAgKi9cbiAgYXN5bmMgdXBkYXRlTGlzdGluZ0VudHJ5KHtcbiAgICBsaXN0aW5nRW50cnlJZCxcbiAgICAuLi5wYXJhbXNcbiAgfTogVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlQYXJhbXMpOiBQcm9taXNlPFVwZGF0ZUFkZHJlc3NCb29rTGlzdGluZ0VudHJ5UmVzcG9uc2U+IHtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJpdGdvLm1pY3Jvc2VydmljZXNVcmwoYC9hcGkvYWRkcmVzcy1ib29rL3YxL2xpc3RpbmcvZW50cnkvJHtsaXN0aW5nRW50cnlJZH1gKTtcbiAgICBjb25zdCByZXNwb25zZTogVXBkYXRlQWRkcmVzc0Jvb2tMaXN0aW5nRW50cnlSZXNwb25zZSA9IGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5wdXQodXJsKVxuICAgICAgLnNldCgnZW50ZXJwcmlzZS1pZCcsIHRoaXMuZW50ZXJwcmlzZUlkKVxuICAgICAgLnNlbmQocGFyYW1zKVxuICAgICAgLnJlc3VsdCgpO1xuICAgIGlmICh0aGlzLl9saXN0aW5nKSB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuX2xpc3Rpbmc/Lmxpc3RpbmdFbnRyaWVzPy5maW5kSW5kZXgoKHgpID0+IHguaWQgPT09IHJlc3BvbnNlLmlkKSA/PyAtMTtcbiAgICAgIGlmIChpbmRleCA+IC0xICYmIHRoaXMuX2xpc3RpbmcubGlzdGluZ0VudHJpZXMpIHtcbiAgICAgICAgdGhpcy5fbGlzdGluZy5saXN0aW5nRW50cmllc1tpbmRleF0gPSB7IC4uLnJlc3BvbnNlIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9saXN0aW5nLmxpc3RpbmdFbnRyaWVzPy5wdXNoKHsgLi4ucmVzcG9uc2UgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxufVxuIl19
@@ -151,10 +151,9 @@ class Enterprise {
151
151
  * enterprise challenge with new signatures.
152
152
  */
153
153
  async getExistingTssEcdsaChallenge() {
154
- var _a;
155
154
  const urlPath = `/enterprise/${this.id}/tssconfig`;
156
155
  const tssConfig = await this.bitgo.get(this.bitgo.url(urlPath, 2)).send().result();
157
- const enterpriseChallenge = (_a = tssConfig === null || tssConfig === void 0 ? void 0 : tssConfig.ecdsa.challenge) === null || _a === void 0 ? void 0 : _a.enterprise;
156
+ const enterpriseChallenge = tssConfig?.ecdsa.challenge?.enterprise;
158
157
  if (!enterpriseChallenge) {
159
158
  throw new Error('No existing ECDSA challenge on the enterprise.');
160
159
  }
@@ -199,8 +198,8 @@ class Enterprise {
199
198
  * @param flags
200
199
  */
201
200
  hasFeatureFlags(flags) {
202
- return flags.every((targetFlag) => { var _a; return (_a = this._enterprise.featureFlags) === null || _a === void 0 ? void 0 : _a.includes(targetFlag); });
201
+ return flags.every((targetFlag) => this._enterprise.featureFlags?.includes(targetFlag));
203
202
  }
204
203
  }
205
204
  exports.Enterprise = Enterprise;
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50ZXJwcmlzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9lbnRlcnByaXNlL2VudGVycHJpc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCwwQ0FBNEI7QUFJNUIsMENBQXlEO0FBQ3pELHNDQUFzRDtBQUN0RCw4Q0FBcUc7QUFDckcseURBQXFEO0FBQ3JELGtDQUE4QztBQUM5QyxtQ0FBZ0M7QUFHaEMsTUFBYSxVQUFVO0lBT3JCLFlBQVksS0FBZ0IsRUFBRSxRQUFtQixFQUFFLGNBQThCO1FBQy9FLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFDbEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lB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QUNuQixjQUFjLENBQUMsY0FBYyxDQUM5QixDQUFDO1FBQ0YsTUFBTSx3QkFBd0IsR0FBRyxrQkFBVSxDQUFDLGFBQWEsQ0FDdkQsa0JBQWtCLEVBQ2xCLGNBQWMsQ0FBQyxJQUFJLEVBQ25CLGNBQWMsQ0FBQyxjQUFjLENBQzlCLENBQUM7UUFDRixNQUFNLHlCQUF5QixHQUFHLGtCQUFVLENBQUMsYUFBYSxDQUN4RCxtQkFBbUIsRUFDbkIsY0FBYyxDQUFDLElBQUksRUFDbkIsY0FBYyxDQUFDLGNBQWMsQ0FDOUIsQ0FBQztRQUNGLE1BQU0sa0JBQVUsQ0FBQyw0QkFBNEIsQ0FDM0MsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsRUFBRSxFQUNQLFlBQVksRUFDWixrQkFBa0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQ2xDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFDeEMseUJBQXlCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGVBQWUsQ0FBQyxLQUE4QjtRQUM1QyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxXQUFDLE9BQUEsTUFBQSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksMENBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBLEVBQUEsQ0FBQyxDQUFDO0lBQzFGLENBQUM7Q0FDRjtBQTVPRCxnQ0E0T0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJQmFzZUNvaW4gfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgRW50ZXJwcmlzZURhdGEsIEVudGVycHJpc2VGZWF0dXJlRmxhZywgSUVudGVycHJpc2UgfSBmcm9tICcuLi9lbnRlcnByaXNlJztcbmltcG9ydCB7IGdldEZpcnN0UGVuZGluZ1RyYW5zYWN0aW9uIH0gZnJvbSAnLi4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgTGlzdFdhbGxldE9wdGlvbnMsIFdhbGxldCB9IGZyb20gJy4uL3dhbGxldCc7XG5pbXBvcnQgeyBCaXRHb1Byb29mU2lnbmF0dXJlcywgRWNkc2FVdGlscywgU2VyaWFsaXplZE50aWxkZVdpdGhWZXJpZmllcnMgfSBmcm9tICcuLi91dGlscy90c3MvZWNkc2EnO1xuaW1wb3J0IHsgRWNkc2FUeXBlcyB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1saWItbXBjJztcbmltcG9ydCB7IHZlcmlmeUVjZGhTaWduYXR1cmUgfSBmcm9tICcuLi9lY2RoJztcbmltcG9ydCB7IEJ1ZmZlciB9IGZyb20gJ2J1ZmZlcic7XG5pbXBvcnQgeyBFY2RoRGVyaXZlZEtleXBhaXIgfSBmcm9tICcuLi9rZXljaGFpbic7XG5cbmV4cG9ydCBjbGFzcyBFbnRlcnByaXNlIGltcGxlbWVudHMgSUVudGVycHJpc2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZUNvaW46IElCYXNlQ29pbjtcbiAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBfZW50ZXJwcmlzZTogRW50ZXJwcmlzZURhdGE7XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgYmFzZUNvaW46IElCYXNlQ29pbiwgZW50ZXJwcmlzZURhdGE6IEVudGVycHJpc2VEYXRhKSB7XG4gICAgdGhpcy5iaXRnbyA9IGJpdGdvO1xuICAgIHRoaXMuYmFzZUNvaW4gPSBiYXNlQ29pbjtcbiAgICBpZiAoIV8uaXNPYmplY3QoZW50ZXJwcmlzZURhdGEpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2VudGVycHJpc2VEYXRhIGhhcyB0byBiZSBhbiBvYmplY3QnKTtcbiAgICB9XG4gICAgaWYgKCFfLmlzU3RyaW5nKGVudGVycHJpc2VEYXRhLmlkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdlbnRlcnByaXNlIGlkIGhhcyB0byBiZSBhIHN0cmluZycpO1xuICAgIH1cbiAgICBpZiAoIV8uaXNTdHJpbmcoZW50ZXJwcmlzZURhdGEubmFtZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZW50ZXJwcmlzZSBuYW1lIGhhcyB0byBiZSBhIHN0cmluZycpO1xuICAgIH1cbiAgICB0aGlzLl9lbnRlcnByaXNlID0gZW50ZXJwcmlzZURhdGE7XG4gICAgdGhpcy5pZCA9IGVudGVycHJpc2VEYXRhLmlkO1xuICAgIHRoaXMubmFtZSA9IGVudGVycHJpc2VEYXRhLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogRW50ZXJwcmlzZSBVUkwgZm9yIHYxIG1ldGhvZHMsIHN1Y2ggYXMgZ2V0dGluZyB1c2Vyc1xuICAgKiBAcGFyYW0gcXVlcnlcbiAgICovXG4gIHVybChxdWVyeSA9ICcnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5iaXRnby51cmwoYC9lbnRlcnByaXNlLyR7dGhpcy5pZH0ke3F1ZXJ5fWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEVudGVycHJpc2UgVVJMIGZvciB2MiBtZXRob2RzLCBzdWNoIGFzIGdldHRpbmcgZmVlIGFkZHJlc3MgYmFsYW5jZXNcbiAgICogQHBhcmFtIHF1ZXJ5XG4gICAqL1xuICBjb2luVXJsKHF1ZXJ5ID0gJycpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJhc2VDb2luLnVybChgL2VudGVycHJpc2UvJHt0aGlzLmlkfSR7cXVlcnl9YCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB3YWxsZXRzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEVudGVycHJpc2VcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgYXN5bmMgY29pbldhbGxldHMocGFyYW1zOiBMaXN0V2FsbGV0T3B0aW9ucyA9IHt9KTogUHJvbWlzZTxXYWxsZXRbXT4ge1xuICAgIGlmIChwYXJhbXMuc2tpcCAmJiBwYXJhbXMucHJldklkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2Nhbm5vdCBzcGVjaWZ5IGJvdGggc2tpcCBhbmQgcHJldklkJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgd2FsbGV0RGF0YSA9IChhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAuZ2V0KHRoaXMuYmFzZUNvaW4udXJsKCcvd2FsbGV0L2VudGVycHJpc2UvJyArIHRoaXMuaWQpKVxuICAgICAgLnF1ZXJ5KHBhcmFtcylcbiAgICAgIC5yZXN1bHQoKSkgYXMgYW55O1xuICAgIHJldHVybiB3YWxsZXREYXRhLndhbGxldHMubWFwKCh3KSA9PiB7XG4gICAgICByZXR1cm4gbmV3IFdhbGxldCh0aGlzLmJpdGdvLCB0aGlzLmJhc2VDb2luLCB3KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHVzZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEVudGVycHJpc2VcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgYXN5bmMgdXNlcnMocGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4gPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMudXJsKCcvdXNlcicpKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZlZSBhZGRyZXNzIGJhbGFuY2UgZm9yIHRoaXMgRW50ZXJwcmlzZVxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBhc3luYyBnZXRGZWVBZGRyZXNzQmFsYW5jZShwYXJhbXM6IFJlY29yZDxzdHJpbmcsIG5ldmVyPiA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnby5nZXQodGhpcy5jb2luVXJsKCcvZmVlQWRkcmVzc0JhbGFuY2UnKSkucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdXNlciB0byB0aGlzIEVudGVycHJpc2VcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgYXN5bmMgYWRkVXNlcihwYXJhbXM6IGFueSA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnby5wb3N0KHRoaXMudXJsKCcvdXNlcicpKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgdXNlciBmcm9tIHRoaXMgRW50ZXJwcmlzZVxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBhc3luYyByZW1vdmVVc2VyKHBhcmFtczogYW55ID0ge30pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmRlbCh0aGlzLnVybCgnL3VzZXInKSkuc2VuZChwYXJhbXMpLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZmlyc3QgcGVuZGluZyB0cmFuc2FjdGlvbiBmb3IgdGhpcyBFbnRlcnByaXNlXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIGdldEZpcnN0UGVuZGluZ1RyYW5zYWN0aW9uKHBhcmFtczogUmVjb3JkPHN0cmluZywgbmV2ZXI+ID0ge30pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBnZXRGaXJzdFBlbmRpbmdUcmFuc2FjdGlvbih7IGVudGVycHJpc2VJZDogdGhpcy5pZCB9LCB0aGlzLmJhc2VDb2luLCB0aGlzLmJpdGdvKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmllcyBhbmQgc2lnbnMgYml0Z28gcHJvb2ZzIGZvciB0aGUgZW50ZXJwcmlzZVxuICAgKiBAcGFyYW0gdXNlclBhc3N3b3JkIC0gZW50ZXJwcmlzZSBhZG1pbidzIGxvZ2luIHBhc3N3b3JkXG4gICAqL1xuICBhc3luYyB2ZXJpZnlFY2RzYUJpdEdvQ2hhbGxlbmdlUHJvb2ZzKHVzZXJQYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxCaXRHb1Byb29mU2lnbmF0dXJlcz4ge1xuICAgIHJldHVybiBFY2RzYVV0aWxzLmdldFZlcmlmeUFuZFNpZ25CaXRHb0NoYWxsZW5nZXModGhpcy5iaXRnbywgdGhpcy5pZCwgdXNlclBhc3N3b3JkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYW5hZ2VzIGFsbCB0aGUgY2hhbGxlbmdlcyBhbmQgc2lnbmF0dXJlcyBhbmQgdXBsb2FkcyB0aGVtIHRvIGVuYWJsZVxuICAgKiBFQ0RTQSBzaWduaW5nIG9uIGVudGVycHJpc2UuIEFsc28gZ2VuZXJhdGVzIGEgY2xpZW50IHNpZGUgTnRpbGRlIGNoYWxsZW5nZVxuICAgKiBpZiBub3QgcHJvdmlkZWQsIGJ1dCBub3RlIHRoYXQgY2FuIHRha2UgYXBwcm94LiBhIG1pbnV0ZS5cbiAgICogQHBhcmFtIHVzZXJQYXNzd29yZFxuICAgKiBAcGFyYW0gYml0Z29JbnN0Q2hhbGxlbmdlUHJvb2ZTaWduYXR1cmVcbiAgICogQHBhcmFtIGJpdGdvTml0cm9DaGFsbGVuZ2VQcm9vZlNpZ25hdHVyZVxuICAgKiBAcGFyYW0gY2hhbGxlbmdlXG4gICAqL1xuICBhc3luYyB1cGxvYWRBbmRFbmFibGVUc3NFY2RzYVNpZ25pbmcoXG4gICAgdXNlclBhc3N3b3JkOiBzdHJpbmcsXG4gICAgYml0Z29JbnN0Q2hhbGxlbmdlUHJvb2ZTaWduYXR1cmU6IEJ1ZmZlcixcbiAgICBiaXRnb05pdHJvQ2hhbGxlbmdlUHJvb2ZTaWduYXR1cmU6IEJ1ZmZlcixcbiAgICBvcGVuU1NMQnl0ZXM6IFVpbnQ4QXJyYXksXG4gICAgY2hhbGxlbmdlPzogRWNkc2FUeXBlcy5EZXNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IEVjZHNhVXRpbHMuaW5pdGlhdGVDaGFsbGVuZ2VzRm9yRW50ZXJwcmlzZShcbiAgICAgIHRoaXMuYml0Z28sXG4gICAgICB0aGlzLmlkLFxuICAgICAgdXNlclBhc3N3b3JkLFxuICAgICAgYml0Z29JbnN0Q2hhbGxlbmdlUHJvb2ZTaWduYXR1cmUsXG4gICAgICBiaXRnb05pdHJvQ2hhbGxlbmdlUHJvb2ZTaWduYXR1cmUsXG4gICAgICBvcGVuU1NMQnl0ZXMsXG4gICAgICBjaGFsbGVuZ2VcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoZXMgdGhlIGV4aXN0aW5nIFRTUyBFQ0RTQSBlbnRlcnByaXNlIGNoYWxsZW5nZSBpZiBvbmUgZXhpc3RzLlxuICAgKiBDYW4gYmUgdXNlZCB3aXRoIHVwbG9hZEFuZEVuYWJsZVRzc0VjZHNhU2lnbmluZyB0byByZS1zaWduIHRoZVxuICAgKiBlbnRlcnByaXNlIGNoYWxsZW5nZSB3aXRoIG5ldyBzaWduYXR1cmVzLlxuICAgKi9cbiAgYXN5bmMgZ2V0RXhpc3RpbmdUc3NFY2RzYUNoYWxsZW5nZSgpOiBQcm9taXNlPEVjZHNhVHlwZXMuRGVzZXJpYWxpemVkTnRpbGRlV2l0aFByb29mcz4ge1xuICAgIGNvbnN0IHVybFBhdGggPSBgL2VudGVycHJpc2UvJHt0aGlzLmlkfS90c3Njb25maWdgO1xuICAgIGNvbnN0IHRzc0NvbmZpZyA9IGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYml0Z28udXJsKHVybFBhdGgsIDIpKS5zZW5kKCkucmVzdWx0KCk7XG4gICAgY29uc3QgZW50ZXJwcmlzZUNoYWxsZW5nZSA9IHRzc0NvbmZpZz8uZWNkc2EuY2hhbGxlbmdlPy5lbnRlcnByaXNlO1xuICAgIGlmICghZW50ZXJwcmlzZUNoYWxsZW5nZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBleGlzdGluZyBFQ0RTQSBjaGFsbGVuZ2Ugb24gdGhlIGVudGVycHJpc2UuJyk7XG4gICAgfVxuICAgIGlmICghZW50ZXJwcmlzZUNoYWxsZW5nZS5udGlsZGVQcm9vZikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRXhpc3RpbmcgRUNEU0EgY2hhbGxlbmdlIGRvZXMgbm90IGhhdmUgYSBwcm9vZi4gUGxlYXNlIGNvbnRhY3QgeW91ciBlbnRlcnByaXNlIGFkbWluIHRvIHNldCB0aGlzIHVwLidcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBFY2RzYVR5cGVzLmRlc2VyaWFsaXplTnRpbGRlV2l0aFByb29mcyh7XG4gICAgICBudGlsZGU6IGVudGVycHJpc2VDaGFsbGVuZ2UubnRpbGRlLFxuICAgICAgaDE6IGVudGVycHJpc2VDaGFsbGVuZ2UuaDEsXG4gICAgICBoMjogZW50ZXJwcmlzZUNoYWxsZW5nZS5oMixcbiAgICAgIG50aWxkZVByb29mOiBlbnRlcnByaXNlQ2hhbGxlbmdlLm50aWxkZVByb29mLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2lnbnMgdGhlIGVudGVycHJpc2UgYW5kIGJpdGdvIGNoYWxsZW5nZXMgd2l0aCBhIG5ldyBFQ0RIIGtleWNoYWluLlxuICAgKiBWZXJpZmllcyB0aGF0IHRoZSBvbGQga2V5Y2hhaW4gc2lnbmVkIHRoZSBjaGFsbGVuZ2VzIHByZXZpb3VzbHkuXG4gICAqIEBwYXJhbSBvbGRFY2RoS2V5cGFpciAtIHRoZSBvbGQga2V5Y2hhaW4gdGhhdCBzaWduZWQgdGhlIGNoYWxsZW5nZXNcbiAgICogQHBhcmFtIG5ld0VjZGhLZXlwYWlyIC0gdGhlIG5ldyBrZXljaGFpbiB0aGF0IHdpbGwgc2lnbiB0aGUgY2hhbGxlbmdlc1xuICAgKiBAcGFyYW0gZW50Q2hhbGxlbmdlIC0gZXhpc3Rpbmcgc2lnbmVkIGVudGVycHJpc2UgY2hhbGxlbmdlXG4gICAqIEBwYXJhbSBiaXRnb0luc3RDaGFsbGVuZ2UgLSBleGlzdGluZyBzaWduZWQgYml0Z28gaW5zdGl0dXRpb25hbCBjaGFsbGVuZ2VcbiAgICogQHBhcmFtIGJpdGdvTml0cm9DaGFsbGVuZ2UgLSBleGlzdGluZyBzaWduZWQgYml0Z28gbml0cm8gY2hhbGxlbmdlXG4gICAqL1xuICBhc3luYyByZXNpZ25FbnRlcnByaXNlQ2hhbGxlbmdlcyhcbiAgICBvbGRFY2RoS2V5cGFpcjogRWNkaERlcml2ZWRLZXlwYWlyLFxuICAgIG5ld0VjZGhLZXlwYWlyOiBFY2RoRGVyaXZlZEtleXBhaXIsXG4gICAgZW50Q2hhbGxlbmdlOiBTZXJpYWxpemVkTnRpbGRlV2l0aFZlcmlmaWVycyxcbiAgICBiaXRnb0luc3RDaGFsbGVuZ2U6IFNlcmlhbGl6ZWROdGlsZGVXaXRoVmVyaWZpZXJzLFxuICAgIGJpdGdvTml0cm9DaGFsbGVuZ2U6IFNlcmlhbGl6ZWROdGlsZGVXaXRoVmVyaWZpZXJzXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFZlcmlmeSBhbGwgdGhlIGNoYWxsZW5nZXMgd2VyZSBzaWduZWQgYnkgdGhlIG9sZCBrZXlwYWlyXG4gICAgaWYgKFxuICAgICAgIXZlcmlmeUVjZGhTaWduYXR1cmUoXG4gICAgICAgIEVjZHNhVXRpbHMuZ2V0TWVzc2FnZVRvU2lnbkZyb21DaGFsbGVuZ2UoZW50Q2hhbGxlbmdlKSxcbiAgICAgICAgZW50Q2hhbGxlbmdlLnZlcmlmaWVycy5hZG1pblNpZ25hdHVyZSxcbiAgICAgICAgQnVmZmVyLmZyb20ob2xkRWNkaEtleXBhaXIuZGVyaXZlZFB1YktleSwgJ2hleCcpXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZS1zaWduLiBUaGUgRW50ZXJwcmlzZSBUU1MgY29uZmlnIHdhcyBzaWduZWQgYnkgYW5vdGhlciB1c2VyLmApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICAhdmVyaWZ5RWNkaFNpZ25hdHVyZShcbiAgICAgICAgRWNkc2FVdGlscy5nZXRNZXNzYWdlVG9TaWduRnJvbUNoYWxsZW5nZShiaXRnb0luc3RDaGFsbGVuZ2UpLFxuICAgICAgICBiaXRnb0luc3RDaGFsbGVuZ2UudmVyaWZpZXJzLmFkbWluU2lnbmF0dXJlLFxuICAgICAgICBCdWZmZXIuZnJvbShvbGRFY2RoS2V5cGFpci5kZXJpdmVkUHViS2V5LCAnaGV4JylcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlLXNpZ24uIFRoZSBCaXRHbyBJbnN0aXR1dGlvbmFsIFRTUyBjb25maWcgd2FzIHNpZ25lZCBieSBhbm90aGVyIHVzZXIuYCk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICF2ZXJpZnlFY2RoU2lnbmF0dXJlKFxuICAgICAgICBFY2RzYVV0aWxzLmdldE1lc3NhZ2VUb1NpZ25Gcm9tQ2hhbGxlbmdlKGJpdGdvTml0cm9DaGFsbGVuZ2UpLFxuICAgICAgICBiaXRnb05pdHJvQ2hhbGxlbmdlLnZlcmlmaWVycy5hZG1pblNpZ25hdHVyZSxcbiAgICAgICAgQnVmZmVyLmZyb20ob2xkRWNkaEtleXBhaXIuZGVyaXZlZFB1YktleSwgJ2hleCcpXG4gICAgICApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCByZS1zaWduLiBUaGUgQml0R28gTml0cm8gVFNTIGNvbmZpZyB3YXMgc2lnbmVkIGJ5IGFub3RoZXIgdXNlci5gKTtcbiAgICB9XG5cbiAgICAvLyBPbmNlIGFsbCB0aGUgY2hhbGxlbmdlcyBhcmUgdmVyaWZpZWQsIHdlIGNhbiByZS1zaWduIHRoZW0gd2l0aCB0aGUgbmV3IGtleXBhaXIuXG4gICAgY29uc3Qgc2lnbmVkRW50Q2hhbGxlbmdlID0gRWNkc2FVdGlscy5zaWduQ2hhbGxlbmdlKFxuICAgICAgZW50Q2hhbGxlbmdlLFxuICAgICAgbmV3RWNkaEtleXBhaXIueHBydixcbiAgICAgIG5ld0VjZGhLZXlwYWlyLmRlcml2YXRpb25QYXRoXG4gICAgKTtcbiAgICBjb25zdCBzaWduZWRCaXRHb0luc3RDaGFsbGVuZ2UgPSBFY2RzYVV0aWxzLnNpZ25DaGFsbGVuZ2UoXG4gICAgICBiaXRnb0luc3RDaGFsbGVuZ2UsXG4gICAgICBuZXdFY2RoS2V5cGFpci54cHJ2LFxuICAgICAgbmV3RWNkaEtleXBhaXIuZGVyaXZhdGlvblBhdGhcbiAgICApO1xuICAgIGNvbnN0IHNpZ25lZEJpdEdvTml0cm9DaGFsbGVuZ2UgPSBFY2RzYVV0aWxzLnNpZ25DaGFsbGVuZ2UoXG4gICAgICBiaXRnb05pdHJvQ2hhbGxlbmdlLFxuICAgICAgbmV3RWNkaEtleXBhaXIueHBydixcbiAgICAgIG5ld0VjZGhLZXlwYWlyLmRlcml2YXRpb25QYXRoXG4gICAgKTtcbiAgICBhd2FpdCBFY2RzYVV0aWxzLnVwbG9hZENoYWxsZW5nZXNUb0VudGVycHJpc2UoXG4gICAgICB0aGlzLmJpdGdvLFxuICAgICAgdGhpcy5pZCxcbiAgICAgIGVudENoYWxsZW5nZSxcbiAgICAgIHNpZ25lZEVudENoYWxsZW5nZS50b1N0cmluZygnaGV4JyksXG4gICAgICBzaWduZWRCaXRHb0luc3RDaGFsbGVuZ2UudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgc2lnbmVkQml0R29OaXRyb0NoYWxsZW5nZS50b1N0cmluZygnaGV4JylcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqICBDaGVjayBpZiB0aGUgZW50ZXJwcmlzZSBoYXMgYSBzZXQgb2YgZmVhdHVyZUZsYWdzXG4gICAqIEBwYXJhbSBmbGFnc1xuICAgKi9cbiAgaGFzRmVhdHVyZUZsYWdzKGZsYWdzOiBFbnRlcnByaXNlRmVhdHVyZUZsYWdbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmbGFncy5ldmVyeSgodGFyZ2V0RmxhZykgPT4gdGhpcy5fZW50ZXJwcmlzZS5mZWF0dXJlRmxhZ3M/LmluY2x1ZGVzKHRhcmdldEZsYWcpKTtcbiAgfVxufVxuIl19
205
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50ZXJwcmlzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iaXRnby9lbnRlcnByaXNlL2VudGVycHJpc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0dBRUc7QUFDSCwwQ0FBNEI7QUFJNUIsMENBQXlEO0FBQ3pELHNDQUFzRDtBQUN0RCw4Q0FBcUc7QUFDckcseURBQXFEO0FBQ3JELGtDQUE4QztBQUM5QyxtQ0FBZ0M7QUFHaEMsTUFBYSxVQUFVO0lBT3JCLFlBQVksS0FBZ0IsRUFBRSxRQUFtQixFQUFFLGNBQThCO1FBQy9FLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1FBQ3hELENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLENBQUM7UUFDbEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lB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QUM7UUFDRixNQUFNLHdCQUF3QixHQUFHLGtCQUFVLENBQUMsYUFBYSxDQUN2RCxrQkFBa0IsRUFDbEIsY0FBYyxDQUFDLElBQUksRUFDbkIsY0FBYyxDQUFDLGNBQWMsQ0FDOUIsQ0FBQztRQUNGLE1BQU0seUJBQXlCLEdBQUcsa0JBQVUsQ0FBQyxhQUFhLENBQ3hELG1CQUFtQixFQUNuQixjQUFjLENBQUMsSUFBSSxFQUNuQixjQUFjLENBQUMsY0FBYyxDQUM5QixDQUFDO1FBQ0YsTUFBTSxrQkFBVSxDQUFDLDRCQUE0QixDQUMzQyxJQUFJLENBQUMsS0FBSyxFQUNWLElBQUksQ0FBQyxFQUFFLEVBQ1AsWUFBWSxFQUNaLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFDbEMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUN4Qyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQzFDLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLEtBQThCO1FBQzVDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGO0FBNU9ELGdDQTRPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElCYXNlQ29pbiB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBFbnRlcnByaXNlRGF0YSwgRW50ZXJwcmlzZUZlYXR1cmVGbGFnLCBJRW50ZXJwcmlzZSB9IGZyb20gJy4uL2VudGVycHJpc2UnO1xuaW1wb3J0IHsgZ2V0Rmlyc3RQZW5kaW5nVHJhbnNhY3Rpb24gfSBmcm9tICcuLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBMaXN0V2FsbGV0T3B0aW9ucywgV2FsbGV0IH0gZnJvbSAnLi4vd2FsbGV0JztcbmltcG9ydCB7IEJpdEdvUHJvb2ZTaWduYXR1cmVzLCBFY2RzYVV0aWxzLCBTZXJpYWxpemVkTnRpbGRlV2l0aFZlcmlmaWVycyB9IGZyb20gJy4uL3V0aWxzL3Rzcy9lY2RzYSc7XG5pbXBvcnQgeyBFY2RzYVR5cGVzIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWxpYi1tcGMnO1xuaW1wb3J0IHsgdmVyaWZ5RWNkaFNpZ25hdHVyZSB9IGZyb20gJy4uL2VjZGgnO1xuaW1wb3J0IHsgQnVmZmVyIH0gZnJvbSAnYnVmZmVyJztcbmltcG9ydCB7IEVjZGhEZXJpdmVkS2V5cGFpciB9IGZyb20gJy4uL2tleWNoYWluJztcblxuZXhwb3J0IGNsYXNzIEVudGVycHJpc2UgaW1wbGVtZW50cyBJRW50ZXJwcmlzZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYml0Z286IEJpdEdvQmFzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlQ29pbjogSUJhc2VDb2luO1xuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IF9lbnRlcnByaXNlOiBFbnRlcnByaXNlRGF0YTtcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luLCBlbnRlcnByaXNlRGF0YTogRW50ZXJwcmlzZURhdGEpIHtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gICAgdGhpcy5iYXNlQ29pbiA9IGJhc2VDb2luO1xuICAgIGlmICghXy5pc09iamVjdChlbnRlcnByaXNlRGF0YSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZW50ZXJwcmlzZURhdGEgaGFzIHRvIGJlIGFuIG9iamVjdCcpO1xuICAgIH1cbiAgICBpZiAoIV8uaXNTdHJpbmcoZW50ZXJwcmlzZURhdGEuaWQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2VudGVycHJpc2UgaWQgaGFzIHRvIGJlIGEgc3RyaW5nJyk7XG4gICAgfVxuICAgIGlmICghXy5pc1N0cmluZyhlbnRlcnByaXNlRGF0YS5uYW1lKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdlbnRlcnByaXNlIG5hbWUgaGFzIHRvIGJlIGEgc3RyaW5nJyk7XG4gICAgfVxuICAgIHRoaXMuX2VudGVycHJpc2UgPSBlbnRlcnByaXNlRGF0YTtcbiAgICB0aGlzLmlkID0gZW50ZXJwcmlzZURhdGEuaWQ7XG4gICAgdGhpcy5uYW1lID0gZW50ZXJwcmlzZURhdGEubmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbnRlcnByaXNlIFVSTCBmb3IgdjEgbWV0aG9kcywgc3VjaCBhcyBnZXR0aW5nIHVzZXJzXG4gICAqIEBwYXJhbSBxdWVyeVxuICAgKi9cbiAgdXJsKHF1ZXJ5ID0gJycpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmJpdGdvLnVybChgL2VudGVycHJpc2UvJHt0aGlzLmlkfSR7cXVlcnl9YCk7XG4gIH1cblxuICAvKipcbiAgICogRW50ZXJwcmlzZSBVUkwgZm9yIHYyIG1ldGhvZHMsIHN1Y2ggYXMgZ2V0dGluZyBmZWUgYWRkcmVzcyBiYWxhbmNlc1xuICAgKiBAcGFyYW0gcXVlcnlcbiAgICovXG4gIGNvaW5VcmwocXVlcnkgPSAnJyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUNvaW4udXJsKGAvZW50ZXJwcmlzZS8ke3RoaXMuaWR9JHtxdWVyeX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHdhbGxldHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRW50ZXJwcmlzZVxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBhc3luYyBjb2luV2FsbGV0cyhwYXJhbXM6IExpc3RXYWxsZXRPcHRpb25zID0ge30pOiBQcm9taXNlPFdhbGxldFtdPiB7XG4gICAgaWYgKHBhcmFtcy5za2lwICYmIHBhcmFtcy5wcmV2SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignY2Fubm90IHNwZWNpZnkgYm90aCBza2lwIGFuZCBwcmV2SWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB3YWxsZXREYXRhID0gKGF3YWl0IHRoaXMuYml0Z29cbiAgICAgIC5nZXQodGhpcy5iYXNlQ29pbi51cmwoJy93YWxsZXQvZW50ZXJwcmlzZS8nICsgdGhpcy5pZCkpXG4gICAgICAucXVlcnkocGFyYW1zKVxuICAgICAgLnJlc3VsdCgpKSBhcyBhbnk7XG4gICAgcmV0dXJuIHdhbGxldERhdGEud2FsbGV0cy5tYXAoKHcpID0+IHtcbiAgICAgIHJldHVybiBuZXcgV2FsbGV0KHRoaXMuYml0Z28sIHRoaXMuYmFzZUNvaW4sIHcpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdXNlcnMgYXNzb2NpYXRlZCB3aXRoIHRoaXMgRW50ZXJwcmlzZVxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBhc3luYyB1c2VycyhwYXJhbXM6IFJlY29yZDxzdHJpbmcsIG5ldmVyPiA9IHt9KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5iaXRnby5nZXQodGhpcy51cmwoJy91c2VyJykpLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZmVlIGFkZHJlc3MgYmFsYW5jZSBmb3IgdGhpcyBFbnRlcnByaXNlXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIGdldEZlZUFkZHJlc3NCYWxhbmNlKHBhcmFtczogUmVjb3JkPHN0cmluZywgbmV2ZXI+ID0ge30pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmNvaW5VcmwoJy9mZWVBZGRyZXNzQmFsYW5jZScpKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB1c2VyIHRvIHRoaXMgRW50ZXJwcmlzZVxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBhc3luYyBhZGRVc2VyKHBhcmFtczogYW55ID0ge30pOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmJpdGdvLnBvc3QodGhpcy51cmwoJy91c2VyJykpLnNlbmQocGFyYW1zKS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSB1c2VyIGZyb20gdGhpcyBFbnRlcnByaXNlXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIGFzeW5jIHJlbW92ZVVzZXIocGFyYW1zOiBhbnkgPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYml0Z28uZGVsKHRoaXMudXJsKCcvdXNlcicpKS5zZW5kKHBhcmFtcykucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmaXJzdCBwZW5kaW5nIHRyYW5zYWN0aW9uIGZvciB0aGlzIEVudGVycHJpc2VcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgYXN5bmMgZ2V0Rmlyc3RQZW5kaW5nVHJhbnNhY3Rpb24ocGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4gPSB7fSk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIGdldEZpcnN0UGVuZGluZ1RyYW5zYWN0aW9uKHsgZW50ZXJwcmlzZUlkOiB0aGlzLmlkIH0sIHRoaXMuYmFzZUNvaW4sIHRoaXMuYml0Z28pO1xuICB9XG5cbiAgLyoqXG4gICAqIFZlcmlmaWVzIGFuZCBzaWducyBiaXRnbyBwcm9vZnMgZm9yIHRoZSBlbnRlcnByaXNlXG4gICAqIEBwYXJhbSB1c2VyUGFzc3dvcmQgLSBlbnRlcnByaXNlIGFkbWluJ3MgbG9naW4gcGFzc3dvcmRcbiAgICovXG4gIGFzeW5jIHZlcmlmeUVjZHNhQml0R29DaGFsbGVuZ2VQcm9vZnModXNlclBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPEJpdEdvUHJvb2ZTaWduYXR1cmVzPiB7XG4gICAgcmV0dXJuIEVjZHNhVXRpbHMuZ2V0VmVyaWZ5QW5kU2lnbkJpdEdvQ2hhbGxlbmdlcyh0aGlzLmJpdGdvLCB0aGlzLmlkLCB1c2VyUGFzc3dvcmQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hbmFnZXMgYWxsIHRoZSBjaGFsbGVuZ2VzIGFuZCBzaWduYXR1cmVzIGFuZCB1cGxvYWRzIHRoZW0gdG8gZW5hYmxlXG4gICAqIEVDRFNBIHNpZ25pbmcgb24gZW50ZXJwcmlzZS4gQWxzbyBnZW5lcmF0ZXMgYSBjbGllbnQgc2lkZSBOdGlsZGUgY2hhbGxlbmdlXG4gICAqIGlmIG5vdCBwcm92aWRlZCwgYnV0IG5vdGUgdGhhdCBjYW4gdGFrZSBhcHByb3guIGEgbWludXRlLlxuICAgKiBAcGFyYW0gdXNlclBhc3N3b3JkXG4gICAqIEBwYXJhbSBiaXRnb0luc3RDaGFsbGVuZ2VQcm9vZlNpZ25hdHVyZVxuICAgKiBAcGFyYW0gYml0Z29OaXRyb0NoYWxsZW5nZVByb29mU2lnbmF0dXJlXG4gICAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAgICovXG4gIGFzeW5jIHVwbG9hZEFuZEVuYWJsZVRzc0VjZHNhU2lnbmluZyhcbiAgICB1c2VyUGFzc3dvcmQ6IHN0cmluZyxcbiAgICBiaXRnb0luc3RDaGFsbGVuZ2VQcm9vZlNpZ25hdHVyZTogQnVmZmVyLFxuICAgIGJpdGdvTml0cm9DaGFsbGVuZ2VQcm9vZlNpZ25hdHVyZTogQnVmZmVyLFxuICAgIG9wZW5TU0xCeXRlczogVWludDhBcnJheSxcbiAgICBjaGFsbGVuZ2U/OiBFY2RzYVR5cGVzLkRlc2VyaWFsaXplZE50aWxkZVdpdGhQcm9vZnNcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgRWNkc2FVdGlscy5pbml0aWF0ZUNoYWxsZW5nZXNGb3JFbnRlcnByaXNlKFxuICAgICAgdGhpcy5iaXRnbyxcbiAgICAgIHRoaXMuaWQsXG4gICAgICB1c2VyUGFzc3dvcmQsXG4gICAgICBiaXRnb0luc3RDaGFsbGVuZ2VQcm9vZlNpZ25hdHVyZSxcbiAgICAgIGJpdGdvTml0cm9DaGFsbGVuZ2VQcm9vZlNpZ25hdHVyZSxcbiAgICAgIG9wZW5TU0xCeXRlcyxcbiAgICAgIGNoYWxsZW5nZVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRmV0Y2hlcyB0aGUgZXhpc3RpbmcgVFNTIEVDRFNBIGVudGVycHJpc2UgY2hhbGxlbmdlIGlmIG9uZSBleGlzdHMuXG4gICAqIENhbiBiZSB1c2VkIHdpdGggdXBsb2FkQW5kRW5hYmxlVHNzRWNkc2FTaWduaW5nIHRvIHJlLXNpZ24gdGhlXG4gICAqIGVudGVycHJpc2UgY2hhbGxlbmdlIHdpdGggbmV3IHNpZ25hdHVyZXMuXG4gICAqL1xuICBhc3luYyBnZXRFeGlzdGluZ1Rzc0VjZHNhQ2hhbGxlbmdlKCk6IFByb21pc2U8RWNkc2FUeXBlcy5EZXNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzPiB7XG4gICAgY29uc3QgdXJsUGF0aCA9IGAvZW50ZXJwcmlzZS8ke3RoaXMuaWR9L3Rzc2NvbmZpZ2A7XG4gICAgY29uc3QgdHNzQ29uZmlnID0gYXdhaXQgdGhpcy5iaXRnby5nZXQodGhpcy5iaXRnby51cmwodXJsUGF0aCwgMikpLnNlbmQoKS5yZXN1bHQoKTtcbiAgICBjb25zdCBlbnRlcnByaXNlQ2hhbGxlbmdlID0gdHNzQ29uZmlnPy5lY2RzYS5jaGFsbGVuZ2U/LmVudGVycHJpc2U7XG4gICAgaWYgKCFlbnRlcnByaXNlQ2hhbGxlbmdlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGV4aXN0aW5nIEVDRFNBIGNoYWxsZW5nZSBvbiB0aGUgZW50ZXJwcmlzZS4nKTtcbiAgICB9XG4gICAgaWYgKCFlbnRlcnByaXNlQ2hhbGxlbmdlLm50aWxkZVByb29mKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdFeGlzdGluZyBFQ0RTQSBjaGFsbGVuZ2UgZG9lcyBub3QgaGF2ZSBhIHByb29mLiBQbGVhc2UgY29udGFjdCB5b3VyIGVudGVycHJpc2UgYWRtaW4gdG8gc2V0IHRoaXMgdXAuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIEVjZHNhVHlwZXMuZGVzZXJpYWxpemVOdGlsZGVXaXRoUHJvb2ZzKHtcbiAgICAgIG50aWxkZTogZW50ZXJwcmlzZUNoYWxsZW5nZS5udGlsZGUsXG4gICAgICBoMTogZW50ZXJwcmlzZUNoYWxsZW5nZS5oMSxcbiAgICAgIGgyOiBlbnRlcnByaXNlQ2hhbGxlbmdlLmgyLFxuICAgICAgbnRpbGRlUHJvb2Y6IGVudGVycHJpc2VDaGFsbGVuZ2UubnRpbGRlUHJvb2YsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzaWducyB0aGUgZW50ZXJwcmlzZSBhbmQgYml0Z28gY2hhbGxlbmdlcyB3aXRoIGEgbmV3IEVDREgga2V5Y2hhaW4uXG4gICAqIFZlcmlmaWVzIHRoYXQgdGhlIG9sZCBrZXljaGFpbiBzaWduZWQgdGhlIGNoYWxsZW5nZXMgcHJldmlvdXNseS5cbiAgICogQHBhcmFtIG9sZEVjZGhLZXlwYWlyIC0gdGhlIG9sZCBrZXljaGFpbiB0aGF0IHNpZ25lZCB0aGUgY2hhbGxlbmdlc1xuICAgKiBAcGFyYW0gbmV3RWNkaEtleXBhaXIgLSB0aGUgbmV3IGtleWNoYWluIHRoYXQgd2lsbCBzaWduIHRoZSBjaGFsbGVuZ2VzXG4gICAqIEBwYXJhbSBlbnRDaGFsbGVuZ2UgLSBleGlzdGluZyBzaWduZWQgZW50ZXJwcmlzZSBjaGFsbGVuZ2VcbiAgICogQHBhcmFtIGJpdGdvSW5zdENoYWxsZW5nZSAtIGV4aXN0aW5nIHNpZ25lZCBiaXRnbyBpbnN0aXR1dGlvbmFsIGNoYWxsZW5nZVxuICAgKiBAcGFyYW0gYml0Z29OaXRyb0NoYWxsZW5nZSAtIGV4aXN0aW5nIHNpZ25lZCBiaXRnbyBuaXRybyBjaGFsbGVuZ2VcbiAgICovXG4gIGFzeW5jIHJlc2lnbkVudGVycHJpc2VDaGFsbGVuZ2VzKFxuICAgIG9sZEVjZGhLZXlwYWlyOiBFY2RoRGVyaXZlZEtleXBhaXIsXG4gICAgbmV3RWNkaEtleXBhaXI6IEVjZGhEZXJpdmVkS2V5cGFpcixcbiAgICBlbnRDaGFsbGVuZ2U6IFNlcmlhbGl6ZWROdGlsZGVXaXRoVmVyaWZpZXJzLFxuICAgIGJpdGdvSW5zdENoYWxsZW5nZTogU2VyaWFsaXplZE50aWxkZVdpdGhWZXJpZmllcnMsXG4gICAgYml0Z29OaXRyb0NoYWxsZW5nZTogU2VyaWFsaXplZE50aWxkZVdpdGhWZXJpZmllcnNcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVmVyaWZ5IGFsbCB0aGUgY2hhbGxlbmdlcyB3ZXJlIHNpZ25lZCBieSB0aGUgb2xkIGtleXBhaXJcbiAgICBpZiAoXG4gICAgICAhdmVyaWZ5RWNkaFNpZ25hdHVyZShcbiAgICAgICAgRWNkc2FVdGlscy5nZXRNZXNzYWdlVG9TaWduRnJvbUNoYWxsZW5nZShlbnRDaGFsbGVuZ2UpLFxuICAgICAgICBlbnRDaGFsbGVuZ2UudmVyaWZpZXJzLmFkbWluU2lnbmF0dXJlLFxuICAgICAgICBCdWZmZXIuZnJvbShvbGRFY2RoS2V5cGFpci5kZXJpdmVkUHViS2V5LCAnaGV4JylcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlLXNpZ24uIFRoZSBFbnRlcnByaXNlIFRTUyBjb25maWcgd2FzIHNpZ25lZCBieSBhbm90aGVyIHVzZXIuYCk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgICF2ZXJpZnlFY2RoU2lnbmF0dXJlKFxuICAgICAgICBFY2RzYVV0aWxzLmdldE1lc3NhZ2VUb1NpZ25Gcm9tQ2hhbGxlbmdlKGJpdGdvSW5zdENoYWxsZW5nZSksXG4gICAgICAgIGJpdGdvSW5zdENoYWxsZW5nZS52ZXJpZmllcnMuYWRtaW5TaWduYXR1cmUsXG4gICAgICAgIEJ1ZmZlci5mcm9tKG9sZEVjZGhLZXlwYWlyLmRlcml2ZWRQdWJLZXksICdoZXgnKVxuICAgICAgKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcmUtc2lnbi4gVGhlIEJpdEdvIEluc3RpdHV0aW9uYWwgVFNTIGNvbmZpZyB3YXMgc2lnbmVkIGJ5IGFub3RoZXIgdXNlci5gKTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgIXZlcmlmeUVjZGhTaWduYXR1cmUoXG4gICAgICAgIEVjZHNhVXRpbHMuZ2V0TWVzc2FnZVRvU2lnbkZyb21DaGFsbGVuZ2UoYml0Z29OaXRyb0NoYWxsZW5nZSksXG4gICAgICAgIGJpdGdvTml0cm9DaGFsbGVuZ2UudmVyaWZpZXJzLmFkbWluU2lnbmF0dXJlLFxuICAgICAgICBCdWZmZXIuZnJvbShvbGRFY2RoS2V5cGFpci5kZXJpdmVkUHViS2V5LCAnaGV4JylcbiAgICAgIClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHJlLXNpZ24uIFRoZSBCaXRHbyBOaXRybyBUU1MgY29uZmlnIHdhcyBzaWduZWQgYnkgYW5vdGhlciB1c2VyLmApO1xuICAgIH1cblxuICAgIC8vIE9uY2UgYWxsIHRoZSBjaGFsbGVuZ2VzIGFyZSB2ZXJpZmllZCwgd2UgY2FuIHJlLXNpZ24gdGhlbSB3aXRoIHRoZSBuZXcga2V5cGFpci5cbiAgICBjb25zdCBzaWduZWRFbnRDaGFsbGVuZ2UgPSBFY2RzYVV0aWxzLnNpZ25DaGFsbGVuZ2UoXG4gICAgICBlbnRDaGFsbGVuZ2UsXG4gICAgICBuZXdFY2RoS2V5cGFpci54cHJ2LFxuICAgICAgbmV3RWNkaEtleXBhaXIuZGVyaXZhdGlvblBhdGhcbiAgICApO1xuICAgIGNvbnN0IHNpZ25lZEJpdEdvSW5zdENoYWxsZW5nZSA9IEVjZHNhVXRpbHMuc2lnbkNoYWxsZW5nZShcbiAgICAgIGJpdGdvSW5zdENoYWxsZW5nZSxcbiAgICAgIG5ld0VjZGhLZXlwYWlyLnhwcnYsXG4gICAgICBuZXdFY2RoS2V5cGFpci5kZXJpdmF0aW9uUGF0aFxuICAgICk7XG4gICAgY29uc3Qgc2lnbmVkQml0R29OaXRyb0NoYWxsZW5nZSA9IEVjZHNhVXRpbHMuc2lnbkNoYWxsZW5nZShcbiAgICAgIGJpdGdvTml0cm9DaGFsbGVuZ2UsXG4gICAgICBuZXdFY2RoS2V5cGFpci54cHJ2LFxuICAgICAgbmV3RWNkaEtleXBhaXIuZGVyaXZhdGlvblBhdGhcbiAgICApO1xuICAgIGF3YWl0IEVjZHNhVXRpbHMudXBsb2FkQ2hhbGxlbmdlc1RvRW50ZXJwcmlzZShcbiAgICAgIHRoaXMuYml0Z28sXG4gICAgICB0aGlzLmlkLFxuICAgICAgZW50Q2hhbGxlbmdlLFxuICAgICAgc2lnbmVkRW50Q2hhbGxlbmdlLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHNpZ25lZEJpdEdvSW5zdENoYWxsZW5nZS50b1N0cmluZygnaGV4JyksXG4gICAgICBzaWduZWRCaXRHb05pdHJvQ2hhbGxlbmdlLnRvU3RyaW5nKCdoZXgnKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogIENoZWNrIGlmIHRoZSBlbnRlcnByaXNlIGhhcyBhIHNldCBvZiBmZWF0dXJlRmxhZ3NcbiAgICogQHBhcmFtIGZsYWdzXG4gICAqL1xuICBoYXNGZWF0dXJlRmxhZ3MoZmxhZ3M6IEVudGVycHJpc2VGZWF0dXJlRmxhZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZsYWdzLmV2ZXJ5KCh0YXJnZXRGbGFnKSA9PiB0aGlzLl9lbnRlcnByaXNlLmZlYXR1cmVGbGFncz8uaW5jbHVkZXModGFyZ2V0RmxhZykpO1xuICB9XG59XG4iXX0=
@@ -92,18 +92,18 @@ class Enterprises {
92
92
  .send()
93
93
  .result();
94
94
  const resigningPromises = enterpriseTssConfigsForUser.map(async (enterpriseTssConfig) => {
95
- var _a, _b, _c;
96
95
  const enterprise = new enterprise_1.Enterprise(this.bitgo, this.bitgo.coin('tbtc'), {
97
96
  id: enterpriseTssConfig.enterpriseId,
98
97
  name: '',
99
98
  });
100
- const enterpriseChallenge = (_a = enterpriseTssConfig.ecdsa.challenge) === null || _a === void 0 ? void 0 : _a.enterprise;
101
- const bitgoNitroChallenge = (_b = enterpriseTssConfig.ecdsa.challenge) === null || _b === void 0 ? void 0 : _b.bitgoNitroHsm;
102
- const bitgoInstChallenge = (_c = enterpriseTssConfig.ecdsa.challenge) === null || _c === void 0 ? void 0 : _c.bitgoInstitutionalHsm;
99
+ const enterpriseChallenge = enterpriseTssConfig.ecdsa.challenge?.enterprise;
100
+ const bitgoNitroChallenge = enterpriseTssConfig.ecdsa.challenge?.bitgoNitroHsm;
101
+ const bitgoInstChallenge = enterpriseTssConfig.ecdsa.challenge
102
+ ?.bitgoInstitutionalHsm;
103
103
  await enterprise.resignEnterpriseChallenges(oldEcdhKeypair, newEcdhKeypair, enterpriseChallenge, bitgoInstChallenge, bitgoNitroChallenge);
104
104
  });
105
105
  await Promise.all(resigningPromises);
106
106
  }
107
107
  }
108
108
  exports.Enterprises = Enterprises;
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50ZXJwcmlzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vZW50ZXJwcmlzZS9lbnRlcnByaXNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7R0FFRztBQUNILDBDQUE0QjtBQUc1Qiw2Q0FBMEM7QUFLMUMsTUFBYSxXQUFXO0lBSXRCLFlBQVksS0FBZ0IsRUFBRSxRQUFtQjtRQUMvQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFnQyxFQUFFO1FBQ2xELE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFRLENBQUM7UUFDdkYsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3BDLCtDQUErQztZQUMvQyxPQUFPLElBQUksdUJBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUErQixFQUFFO1FBQ2hELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFRLENBQUM7UUFDN0csT0FBTyxJQUFJLHVCQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtRkFBbUY7SUFDNUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFjLEVBQUU7UUFDbEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFRLENBQUM7UUFDM0csT0FBTyxJQUFJLHVCQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsOEJBQThCLENBQ3pDLGNBQWtDLEVBQ2xDLGNBQWtDO1FBRWxDLE1BQU0sMkJBQTJCLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSzthQUNqRCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDM0MsS0FBSyxDQUFDO1lBQ0wsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQzthQUNELElBQUksRUFBRTthQUNOLE1BQU0sRUFBRSxDQUFDO1FBRVosTUFBTSxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLEVBQUU7O1lBQ3RGLE1BQU0sVUFBVSxHQUFHLElBQUksdUJBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNyRSxFQUFFLEVBQUUsbUJBQW1CLENBQUMsWUFBWTtnQkFDcEMsSUFBSSxFQUFFLEVBQUU7YUFDVCxDQUFDLENBQUM7WUFDSCxNQUFNLG1CQUFtQixHQUFHLE1BQUEsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFNBQVMsMENBQUUsVUFBMkMsQ0FBQztZQUM3RyxNQUFNLG1CQUFtQixHQUFHLE1BQUEsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFNBQVMsMENBQUUsYUFBOEMsQ0FBQztZQUNoSCxNQUFNLGtCQUFrQixHQUFHLE1BQUEsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFNBQVMsMENBQzFELHFCQUFzRCxDQUFDO1lBQzNELE1BQU0sVUFBVSxDQUFDLDBCQUEwQixDQUN6QyxjQUFjLEVBQ2QsY0FBYyxFQUNkLG1CQUFtQixFQUNuQixrQkFBa0IsRUFDbEIsbUJBQW1CLENBQ3BCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQXBGRCxrQ0FvRkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJQmFzZUNvaW4gfSBmcm9tICcuLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgRW50ZXJwcmlzZSB9IGZyb20gJy4vZW50ZXJwcmlzZSc7XG5pbXBvcnQgeyBHZXRFbnRlcnByaXNlT3B0aW9ucywgSUVudGVycHJpc2VzIH0gZnJvbSAnLi9pRW50ZXJwcmlzZXMnO1xuaW1wb3J0IHsgRWNkaERlcml2ZWRLZXlwYWlyIH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgU2VyaWFsaXplZE50aWxkZVdpdGhWZXJpZmllcnMgfSBmcm9tICcuLi91dGlscy90c3MvZWNkc2EnO1xuXG5leHBvcnQgY2xhc3MgRW50ZXJwcmlzZXMgaW1wbGVtZW50cyBJRW50ZXJwcmlzZXMge1xuICBwcml2YXRlIHJlYWRvbmx5IGJpdGdvOiBCaXRHb0Jhc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFzZUNvaW46IElCYXNlQ29pbjtcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCBiYXNlQ29pbjogSUJhc2VDb2luKSB7XG4gICAgdGhpcy5iaXRnbyA9IGJpdGdvO1xuICAgIHRoaXMuYmFzZUNvaW4gPSBiYXNlQ29pbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IGFsbCBlbnRlcnByaXNlcyBhdmFpbGFibGUgdG8gdGhlIGN1cnJlbnQgdXNlclxuICAgKiBAcGFyYW0gcGFyYW1zIHVudXNlZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIGxpc3QocGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBuZXZlcj4gPSB7fSk6IFByb21pc2U8RW50ZXJwcmlzZVtdPiB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSAoYXdhaXQgdGhpcy5iaXRnby5nZXQodGhpcy5iaXRnby51cmwoJy9lbnRlcnByaXNlJykpLnJlc3VsdCgpKSBhcyBhbnk7XG4gICAgcmV0dXJuIHJlc3BvbnNlLmVudGVycHJpc2VzLm1hcCgoZSkgPT4ge1xuICAgICAgLy8gaW5zdGFudGlhdGUgYSBuZXcgb2JqZWN0IGZvciBlYWNoIGVudGVycHJpc2VcbiAgICAgIHJldHVybiBuZXcgRW50ZXJwcmlzZSh0aGlzLmJpdGdvLCB0aGlzLmJhc2VDb2luLCBlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBhbiBlbnRlcnByaXNlIGZyb20gQml0R29cbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldChwYXJhbXM6IEdldEVudGVycHJpc2VPcHRpb25zID0ge30pOiBQcm9taXNlPEVudGVycHJpc2U+IHtcbiAgICBjb25zdCBlbnRlcnByaXNlSWQgPSBwYXJhbXMuaWQ7XG4gICAgaWYgKF8uaXNVbmRlZmluZWQoZW50ZXJwcmlzZUlkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpZCBtdXN0IG5vdCBiZSBlbXB0eScpO1xuICAgIH1cbiAgICBpZiAoIV8uaXNTdHJpbmcoZW50ZXJwcmlzZUlkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpZCBtdXN0IGJlIGhleGFkZWNpbWFsIGVudGVycHJpc2UgSUQnKTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRlcnByaXNlRGF0YSA9IChhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJpdGdvLnVybChgL2VudGVycHJpc2UvJHtlbnRlcnByaXNlSWR9YCkpLnJlc3VsdCgpKSBhcyBhbnk7XG4gICAgcmV0dXJuIG5ldyBFbnRlcnByaXNlKHRoaXMuYml0Z28sIHRoaXMuYmFzZUNvaW4sIGVudGVycHJpc2VEYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgZW50ZXJwcmlzZVxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICAvLyBUT0RPOiAoQ1QtNjg2KSBGbGVzaCBvdXQgcGFyYW1zIG9iamVjdCB3aXRoIHZhbGlkIGVudGVycHJpc2UgY3JlYXRpb24gcGFyYW1ldGVyc1xuICBwdWJsaWMgYXN5bmMgY3JlYXRlKHBhcmFtczogYW55ID0ge30pOiBQcm9taXNlPEVudGVycHJpc2U+IHtcbiAgICBjb25zdCBlbnRlcnByaXNlRGF0YSA9IChhd2FpdCB0aGlzLmJpdGdvLnBvc3QodGhpcy5iaXRnby51cmwoYC9lbnRlcnByaXNlYCkpLnNlbmQocGFyYW1zKS5yZXN1bHQoKSkgYXMgYW55O1xuICAgIHJldHVybiBuZXcgRW50ZXJwcmlzZSh0aGlzLmJpdGdvLCB0aGlzLmJhc2VDb2luLCBlbnRlcnByaXNlRGF0YSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzaWduIFRTUyBjb25maWdzIG9mIGFsbCBlbnRlcnByaXNlcyBiZWxvbmdpbmcgdG8gdGhlIHVzZXIgd2l0aCBhXG4gICAqIG5ldyB1c2VyIHBhc3N3b3JkIC8gZWNkaCBrZXljaGFpblxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlc2lnblRzc0NvbmZpZ3NGb3JFbnRlcnByaXNlcyhcbiAgICBvbGRFY2RoS2V5cGFpcjogRWNkaERlcml2ZWRLZXlwYWlyLFxuICAgIG5ld0VjZGhLZXlwYWlyOiBFY2RoRGVyaXZlZEtleXBhaXJcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZW50ZXJwcmlzZVRzc0NvbmZpZ3NGb3JVc2VyID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh0aGlzLmJpdGdvLnVybCgnL3Rzc2NvbmZpZ3MvZWNkc2EnLCAyKSlcbiAgICAgIC5xdWVyeSh7XG4gICAgICAgIGNyZWF0ZWRCeTogJ21lJyxcbiAgICAgIH0pXG4gICAgICAuc2VuZCgpXG4gICAgICAucmVzdWx0KCk7XG5cbiAgICBjb25zdCByZXNpZ25pbmdQcm9taXNlcyA9IGVudGVycHJpc2VUc3NDb25maWdzRm9yVXNlci5tYXAoYXN5bmMgKGVudGVycHJpc2VUc3NDb25maWcpID0+IHtcbiAgICAgIGNvbnN0IGVudGVycHJpc2UgPSBuZXcgRW50ZXJwcmlzZSh0aGlzLmJpdGdvLCB0aGlzLmJpdGdvLmNvaW4oJ3RidGMnKSwge1xuICAgICAgICBpZDogZW50ZXJwcmlzZVRzc0NvbmZpZy5lbnRlcnByaXNlSWQsXG4gICAgICAgIG5hbWU6ICcnLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBlbnRlcnByaXNlQ2hhbGxlbmdlID0gZW50ZXJwcmlzZVRzc0NvbmZpZy5lY2RzYS5jaGFsbGVuZ2U/LmVudGVycHJpc2UgYXMgU2VyaWFsaXplZE50aWxkZVdpdGhWZXJpZmllcnM7XG4gICAgICBjb25zdCBiaXRnb05pdHJvQ2hhbGxlbmdlID0gZW50ZXJwcmlzZVRzc0NvbmZpZy5lY2RzYS5jaGFsbGVuZ2U/LmJpdGdvTml0cm9Ic20gYXMgU2VyaWFsaXplZE50aWxkZVdpdGhWZXJpZmllcnM7XG4gICAgICBjb25zdCBiaXRnb0luc3RDaGFsbGVuZ2UgPSBlbnRlcnByaXNlVHNzQ29uZmlnLmVjZHNhLmNoYWxsZW5nZVxuICAgICAgICA/LmJpdGdvSW5zdGl0dXRpb25hbEhzbSBhcyBTZXJpYWxpemVkTnRpbGRlV2l0aFZlcmlmaWVycztcbiAgICAgIGF3YWl0IGVudGVycHJpc2UucmVzaWduRW50ZXJwcmlzZUNoYWxsZW5nZXMoXG4gICAgICAgIG9sZEVjZGhLZXlwYWlyLFxuICAgICAgICBuZXdFY2RoS2V5cGFpcixcbiAgICAgICAgZW50ZXJwcmlzZUNoYWxsZW5nZSxcbiAgICAgICAgYml0Z29JbnN0Q2hhbGxlbmdlLFxuICAgICAgICBiaXRnb05pdHJvQ2hhbGxlbmdlXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocmVzaWduaW5nUHJvbWlzZXMpO1xuICB9XG59XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50ZXJwcmlzZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vZW50ZXJwcmlzZS9lbnRlcnByaXNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7R0FFRztBQUNILDBDQUE0QjtBQUc1Qiw2Q0FBMEM7QUFLMUMsTUFBYSxXQUFXO0lBSXRCLFlBQVksS0FBZ0IsRUFBRSxRQUFtQjtRQUMvQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFnQyxFQUFFO1FBQ2xELE1BQU0sUUFBUSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFRLENBQUM7UUFDdkYsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3BDLCtDQUErQztZQUMvQyxPQUFPLElBQUksdUJBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUErQixFQUFFO1FBQ2hELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBRUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGVBQWUsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFRLENBQUM7UUFDN0csT0FBTyxJQUFJLHVCQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7O09BR0c7SUFDSCxtRkFBbUY7SUFDNUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFjLEVBQUU7UUFDbEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFRLENBQUM7UUFDM0csT0FBTyxJQUFJLHVCQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7O09BR0c7SUFDSSxLQUFLLENBQUMsOEJBQThCLENBQ3pDLGNBQWtDLEVBQ2xDLGNBQWtDO1FBRWxDLE1BQU0sMkJBQTJCLEdBQUcsTUFBTSxJQUFJLENBQUMsS0FBSzthQUNqRCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDM0MsS0FBSyxDQUFDO1lBQ0wsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FBQzthQUNELElBQUksRUFBRTthQUNOLE1BQU0sRUFBRSxDQUFDO1FBRVosTUFBTSxpQkFBaUIsR0FBRywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLG1CQUFtQixFQUFFLEVBQUU7WUFDdEYsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3JFLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQyxZQUFZO2dCQUNwQyxJQUFJLEVBQUUsRUFBRTthQUNULENBQUMsQ0FBQztZQUNILE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxVQUEyQyxDQUFDO1lBQzdHLE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxhQUE4QyxDQUFDO1lBQ2hILE1BQU0sa0JBQWtCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFNBQVM7Z0JBQzVELEVBQUUscUJBQXNELENBQUM7WUFDM0QsTUFBTSxVQUFVLENBQUMsMEJBQTBCLENBQ3pDLGNBQWMsRUFDZCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGtCQUFrQixFQUNsQixtQkFBbUIsQ0FDcEIsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBcEZELGtDQW9GQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHByZXR0aWVyXG4gKi9cbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElCYXNlQ29pbiB9IGZyb20gJy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBFbnRlcnByaXNlIH0gZnJvbSAnLi9lbnRlcnByaXNlJztcbmltcG9ydCB7IEdldEVudGVycHJpc2VPcHRpb25zLCBJRW50ZXJwcmlzZXMgfSBmcm9tICcuL2lFbnRlcnByaXNlcyc7XG5pbXBvcnQgeyBFY2RoRGVyaXZlZEtleXBhaXIgfSBmcm9tICcuLi9rZXljaGFpbic7XG5pbXBvcnQgeyBTZXJpYWxpemVkTnRpbGRlV2l0aFZlcmlmaWVycyB9IGZyb20gJy4uL3V0aWxzL3Rzcy9lY2RzYSc7XG5cbmV4cG9ydCBjbGFzcyBFbnRlcnByaXNlcyBpbXBsZW1lbnRzIElFbnRlcnByaXNlcyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYml0Z286IEJpdEdvQmFzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlQ29pbjogSUJhc2VDb2luO1xuXG4gIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIGJhc2VDb2luOiBJQmFzZUNvaW4pIHtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gICAgdGhpcy5iYXNlQ29pbiA9IGJhc2VDb2luO1xuICB9XG5cbiAgLyoqXG4gICAqIExpc3QgYWxsIGVudGVycHJpc2VzIGF2YWlsYWJsZSB0byB0aGUgY3VycmVudCB1c2VyXG4gICAqIEBwYXJhbSBwYXJhbXMgdW51c2VkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgbGlzdChwYXJhbXM6IFJlY29yZDxzdHJpbmcsIG5ldmVyPiA9IHt9KTogUHJvbWlzZTxFbnRlcnByaXNlW10+IHtcbiAgICBjb25zdCByZXNwb25zZSA9IChhd2FpdCB0aGlzLmJpdGdvLmdldCh0aGlzLmJpdGdvLnVybCgnL2VudGVycHJpc2UnKSkucmVzdWx0KCkpIGFzIGFueTtcbiAgICByZXR1cm4gcmVzcG9uc2UuZW50ZXJwcmlzZXMubWFwKChlKSA9PiB7XG4gICAgICAvLyBpbnN0YW50aWF0ZSBhIG5ldyBvYmplY3QgZm9yIGVhY2ggZW50ZXJwcmlzZVxuICAgICAgcmV0dXJuIG5ldyBFbnRlcnByaXNlKHRoaXMuYml0Z28sIHRoaXMuYmFzZUNvaW4sIGUpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIGFuIGVudGVycHJpc2UgZnJvbSBCaXRHb1xuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0KHBhcmFtczogR2V0RW50ZXJwcmlzZU9wdGlvbnMgPSB7fSk6IFByb21pc2U8RW50ZXJwcmlzZT4ge1xuICAgIGNvbnN0IGVudGVycHJpc2VJZCA9IHBhcmFtcy5pZDtcbiAgICBpZiAoXy5pc1VuZGVmaW5lZChlbnRlcnByaXNlSWQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2lkIG11c3Qgbm90IGJlIGVtcHR5Jyk7XG4gICAgfVxuICAgIGlmICghXy5pc1N0cmluZyhlbnRlcnByaXNlSWQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2lkIG11c3QgYmUgaGV4YWRlY2ltYWwgZW50ZXJwcmlzZSBJRCcpO1xuICAgIH1cblxuICAgIGNvbnN0IGVudGVycHJpc2VEYXRhID0gKGF3YWl0IHRoaXMuYml0Z28uZ2V0KHRoaXMuYml0Z28udXJsKGAvZW50ZXJwcmlzZS8ke2VudGVycHJpc2VJZH1gKSkucmVzdWx0KCkpIGFzIGFueTtcbiAgICByZXR1cm4gbmV3IEVudGVycHJpc2UodGhpcy5iaXRnbywgdGhpcy5iYXNlQ29pbiwgZW50ZXJwcmlzZURhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBlbnRlcnByaXNlXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIC8vIFRPRE86IChDVC02ODYpIEZsZXNoIG91dCBwYXJhbXMgb2JqZWN0IHdpdGggdmFsaWQgZW50ZXJwcmlzZSBjcmVhdGlvbiBwYXJhbWV0ZXJzXG4gIHB1YmxpYyBhc3luYyBjcmVhdGUocGFyYW1zOiBhbnkgPSB7fSk6IFByb21pc2U8RW50ZXJwcmlzZT4ge1xuICAgIGNvbnN0IGVudGVycHJpc2VEYXRhID0gKGF3YWl0IHRoaXMuYml0Z28ucG9zdCh0aGlzLmJpdGdvLnVybChgL2VudGVycHJpc2VgKSkuc2VuZChwYXJhbXMpLnJlc3VsdCgpKSBhcyBhbnk7XG4gICAgcmV0dXJuIG5ldyBFbnRlcnByaXNlKHRoaXMuYml0Z28sIHRoaXMuYmFzZUNvaW4sIGVudGVycHJpc2VEYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNpZ24gVFNTIGNvbmZpZ3Mgb2YgYWxsIGVudGVycHJpc2VzIGJlbG9uZ2luZyB0byB0aGUgdXNlciB3aXRoIGFcbiAgICogbmV3IHVzZXIgcGFzc3dvcmQgLyBlY2RoIGtleWNoYWluXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVzaWduVHNzQ29uZmlnc0ZvckVudGVycHJpc2VzKFxuICAgIG9sZEVjZGhLZXlwYWlyOiBFY2RoRGVyaXZlZEtleXBhaXIsXG4gICAgbmV3RWNkaEtleXBhaXI6IEVjZGhEZXJpdmVkS2V5cGFpclxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBlbnRlcnByaXNlVHNzQ29uZmlnc0ZvclVzZXIgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAuZ2V0KHRoaXMuYml0Z28udXJsKCcvdHNzY29uZmlncy9lY2RzYScsIDIpKVxuICAgICAgLnF1ZXJ5KHtcbiAgICAgICAgY3JlYXRlZEJ5OiAnbWUnLFxuICAgICAgfSlcbiAgICAgIC5zZW5kKClcbiAgICAgIC5yZXN1bHQoKTtcblxuICAgIGNvbnN0IHJlc2lnbmluZ1Byb21pc2VzID0gZW50ZXJwcmlzZVRzc0NvbmZpZ3NGb3JVc2VyLm1hcChhc3luYyAoZW50ZXJwcmlzZVRzc0NvbmZpZykgPT4ge1xuICAgICAgY29uc3QgZW50ZXJwcmlzZSA9IG5ldyBFbnRlcnByaXNlKHRoaXMuYml0Z28sIHRoaXMuYml0Z28uY29pbigndGJ0YycpLCB7XG4gICAgICAgIGlkOiBlbnRlcnByaXNlVHNzQ29uZmlnLmVudGVycHJpc2VJZCxcbiAgICAgICAgbmFtZTogJycsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGVudGVycHJpc2VDaGFsbGVuZ2UgPSBlbnRlcnByaXNlVHNzQ29uZmlnLmVjZHNhLmNoYWxsZW5nZT8uZW50ZXJwcmlzZSBhcyBTZXJpYWxpemVkTnRpbGRlV2l0aFZlcmlmaWVycztcbiAgICAgIGNvbnN0IGJpdGdvTml0cm9DaGFsbGVuZ2UgPSBlbnRlcnByaXNlVHNzQ29uZmlnLmVjZHNhLmNoYWxsZW5nZT8uYml0Z29OaXRyb0hzbSBhcyBTZXJpYWxpemVkTnRpbGRlV2l0aFZlcmlmaWVycztcbiAgICAgIGNvbnN0IGJpdGdvSW5zdENoYWxsZW5nZSA9IGVudGVycHJpc2VUc3NDb25maWcuZWNkc2EuY2hhbGxlbmdlXG4gICAgICAgID8uYml0Z29JbnN0aXR1dGlvbmFsSHNtIGFzIFNlcmlhbGl6ZWROdGlsZGVXaXRoVmVyaWZpZXJzO1xuICAgICAgYXdhaXQgZW50ZXJwcmlzZS5yZXNpZ25FbnRlcnByaXNlQ2hhbGxlbmdlcyhcbiAgICAgICAgb2xkRWNkaEtleXBhaXIsXG4gICAgICAgIG5ld0VjZGhLZXlwYWlyLFxuICAgICAgICBlbnRlcnByaXNlQ2hhbGxlbmdlLFxuICAgICAgICBiaXRnb0luc3RDaGFsbGVuZ2UsXG4gICAgICAgIGJpdGdvTml0cm9DaGFsbGVuZ2VcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChyZXNpZ25pbmdQcm9taXNlcyk7XG4gIH1cbn1cbiJdfQ==
@@ -23,8 +23,7 @@ function maybeDecrypt(bitgo, input, password) {
23
23
  * @param password
24
24
  */
25
25
  function decryptKeychainPrivateKey(bitgo, keychain, password) {
26
- var _a;
27
- const prvs = [keychain.encryptedPrv, ...((_a = keychain.webauthnDevices) !== null && _a !== void 0 ? _a : []).map((d) => d.encryptedPrv)].filter(utils_1.notEmpty);
26
+ const prvs = [keychain.encryptedPrv, ...(keychain.webauthnDevices ?? []).map((d) => d.encryptedPrv)].filter(utils_1.notEmpty);
28
27
  for (const prv of prvs) {
29
28
  const decrypted = maybeDecrypt(bitgo, prv, password);
30
29
  if (decrypted) {
@@ -33,4 +32,4 @@ function decryptKeychainPrivateKey(bitgo, keychain, password) {
33
32
  }
34
33
  return undefined;
35
34
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdEtleWNoYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2tleWNoYWluL2RlY3J5cHRLZXljaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXdCQSw4REFhQztBQW5DRCxvQ0FBb0M7QUFFcEMsU0FBUyxZQUFZLENBQUMsS0FBZ0IsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7SUFDckUsSUFBSSxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ25CLEtBQUs7WUFDTCxRQUFRO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDWixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQ3ZDLEtBQWdCLEVBQ2hCLFFBQXNDLEVBQ3RDLFFBQWdCOztJQUVoQixNQUFNLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDLE1BQUEsUUFBUSxDQUFDLGVBQWUsbUNBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQVEsQ0FBQyxDQUFDO0lBQ3RILEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDckQsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBPcHRpb25hbEtleWNoYWluRW5jcnlwdGVkS2V5IH0gZnJvbSAnLi9pS2V5Y2hhaW5zJztcbmltcG9ydCB7IG5vdEVtcHR5IH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5mdW5jdGlvbiBtYXliZURlY3J5cHQoYml0Z286IEJpdEdvQmFzZSwgaW5wdXQ6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGJpdGdvLmRlY3J5cHQoe1xuICAgICAgaW5wdXQsXG4gICAgICBwYXNzd29yZCxcbiAgICB9KTtcbiAgfSBjYXRjaCAoX2UpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogRGVjcnlwdHMgdGhlIHByaXZhdGUga2V5IG9mIGEga2V5Y2hhaW4uXG4gKiBUaGlzIG1ldGhvZCB3aWxsIHRyeSB0aGUgcGFzc3dvcmQgYWdhaW5zdCB0aGUgdHJhZGl0aW9uYWwgZW5jcnlwdGVkUHJ2LFxuICogYW5kIGFueSB3ZWJhdXRobiBkZXZpY2UgZW5jcnlwdGVkUHJ2cy5cbiAqXG4gKiBAcGFyYW0gYml0Z29cbiAqIEBwYXJhbSBrZXljaGFpblxuICogQHBhcmFtIHBhc3N3b3JkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNyeXB0S2V5Y2hhaW5Qcml2YXRlS2V5KFxuICBiaXRnbzogQml0R29CYXNlLFxuICBrZXljaGFpbjogT3B0aW9uYWxLZXljaGFpbkVuY3J5cHRlZEtleSxcbiAgcGFzc3dvcmQ6IHN0cmluZ1xuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcHJ2cyA9IFtrZXljaGFpbi5lbmNyeXB0ZWRQcnYsIC4uLihrZXljaGFpbi53ZWJhdXRobkRldmljZXMgPz8gW10pLm1hcCgoZCkgPT4gZC5lbmNyeXB0ZWRQcnYpXS5maWx0ZXIobm90RW1wdHkpO1xuICBmb3IgKGNvbnN0IHBydiBvZiBwcnZzKSB7XG4gICAgY29uc3QgZGVjcnlwdGVkID0gbWF5YmVEZWNyeXB0KGJpdGdvLCBwcnYsIHBhc3N3b3JkKTtcbiAgICBpZiAoZGVjcnlwdGVkKSB7XG4gICAgICByZXR1cm4gZGVjcnlwdGVkO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjcnlwdEtleWNoYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JpdGdvL2tleWNoYWluL2RlY3J5cHRLZXljaGFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXdCQSw4REFhQztBQW5DRCxvQ0FBb0M7QUFFcEMsU0FBUyxZQUFZLENBQUMsS0FBZ0IsRUFBRSxLQUFhLEVBQUUsUUFBZ0I7SUFDckUsSUFBSSxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ25CLEtBQUs7WUFDTCxRQUFRO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDWixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IseUJBQXlCLENBQ3ZDLEtBQWdCLEVBQ2hCLFFBQXNDLEVBQ3RDLFFBQWdCO0lBRWhCLE1BQU0sSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBUSxDQUFDLENBQUM7SUFDdEgsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnLi4vYml0Z29CYXNlJztcbmltcG9ydCB7IE9wdGlvbmFsS2V5Y2hhaW5FbmNyeXB0ZWRLZXkgfSBmcm9tICcuL2lLZXljaGFpbnMnO1xuaW1wb3J0IHsgbm90RW1wdHkgfSBmcm9tICcuLi91dGlscyc7XG5cbmZ1bmN0aW9uIG1heWJlRGVjcnlwdChiaXRnbzogQml0R29CYXNlLCBpbnB1dDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYml0Z28uZGVjcnlwdCh7XG4gICAgICBpbnB1dCxcbiAgICAgIHBhc3N3b3JkLFxuICAgIH0pO1xuICB9IGNhdGNoIChfZSkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBEZWNyeXB0cyB0aGUgcHJpdmF0ZSBrZXkgb2YgYSBrZXljaGFpbi5cbiAqIFRoaXMgbWV0aG9kIHdpbGwgdHJ5IHRoZSBwYXNzd29yZCBhZ2FpbnN0IHRoZSB0cmFkaXRpb25hbCBlbmNyeXB0ZWRQcnYsXG4gKiBhbmQgYW55IHdlYmF1dGhuIGRldmljZSBlbmNyeXB0ZWRQcnZzLlxuICpcbiAqIEBwYXJhbSBiaXRnb1xuICogQHBhcmFtIGtleWNoYWluXG4gKiBAcGFyYW0gcGFzc3dvcmRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY3J5cHRLZXljaGFpblByaXZhdGVLZXkoXG4gIGJpdGdvOiBCaXRHb0Jhc2UsXG4gIGtleWNoYWluOiBPcHRpb25hbEtleWNoYWluRW5jcnlwdGVkS2V5LFxuICBwYXNzd29yZDogc3RyaW5nXG4pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBwcnZzID0gW2tleWNoYWluLmVuY3J5cHRlZFBydiwgLi4uKGtleWNoYWluLndlYmF1dGhuRGV2aWNlcyA/PyBbXSkubWFwKChkKSA9PiBkLmVuY3J5cHRlZFBydildLmZpbHRlcihub3RFbXB0eSk7XG4gIGZvciAoY29uc3QgcHJ2IG9mIHBydnMpIHtcbiAgICBjb25zdCBkZWNyeXB0ZWQgPSBtYXliZURlY3J5cHQoYml0Z28sIHBydiwgcGFzc3dvcmQpO1xuICAgIGlmIChkZWNyeXB0ZWQpIHtcbiAgICAgIHJldHVybiBkZWNyeXB0ZWQ7XG4gICAgfVxuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG4iXX0=