@bitgo-beta/sdk-lib-mpc 8.2.1-alpha.61 → 8.2.1-alpha.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/src/curves/ed25519.js +12 -12
  3. package/dist/src/curves/ed25519Bip32HdTree.js +14 -14
  4. package/dist/src/curves/index.js +6 -2
  5. package/dist/src/curves/secp256k1.js +18 -14
  6. package/dist/src/curves/secp256k1Bip32HdTree.js +10 -10
  7. package/dist/src/hashCommitment.js +5 -5
  8. package/dist/src/index.d.ts +1 -1
  9. package/dist/src/index.d.ts.map +1 -1
  10. package/dist/src/index.js +7 -3
  11. package/dist/src/safePrime.d.ts +3 -0
  12. package/dist/src/safePrime.d.ts.map +1 -0
  13. package/dist/src/safePrime.js +23 -0
  14. package/dist/src/schnorrProof.js +6 -6
  15. package/dist/src/shamir/index.js +6 -2
  16. package/dist/src/shamir/shamir.js +2 -2
  17. package/dist/src/tss/ecdsa/index.js +6 -2
  18. package/dist/src/tss/ecdsa/paillierproof.js +6 -6
  19. package/dist/src/tss/ecdsa/rangeproof.d.ts +0 -1
  20. package/dist/src/tss/ecdsa/rangeproof.d.ts.map +1 -1
  21. package/dist/src/tss/ecdsa/rangeproof.js +99 -108
  22. package/dist/src/tss/ecdsa/types.js +19 -19
  23. package/dist/src/tss/ecdsa/zkVProof.js +7 -7
  24. package/dist/src/tss/ecdsa-dkls/commsLayer.js +6 -2
  25. package/dist/src/tss/ecdsa-dkls/dkg.js +2 -2
  26. package/dist/src/tss/ecdsa-dkls/dsg.js +2 -2
  27. package/dist/src/tss/ecdsa-dkls/index.js +6 -2
  28. package/dist/src/tss/index.js +6 -2
  29. package/dist/src/util.js +6 -6
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +4 -4
  32. package/dist/src/openssl/index.d.ts +0 -2
  33. package/dist/src/openssl/index.d.ts.map +0 -1
  34. package/dist/src/openssl/index.js +0 -14
  35. package/dist/src/openssl/openssl.d.ts +0 -9
  36. package/dist/src/openssl/openssl.d.ts.map +0 -1
  37. package/dist/src/openssl/openssl.js +0 -45
  38. package/dist/src/openssl/opensslbytes.d.ts +0 -4
  39. package/dist/src/openssl/opensslbytes.d.ts.map +0 -1
  40. package/dist/src/openssl/opensslbytes.js +0 -20
@@ -9,9 +9,9 @@ const util_1 = require("../../util");
9
9
  */
10
10
  function deserializeNtilde(challenge) {
11
11
  return {
12
- ntilde: util_1.hexToBigInt(challenge.ntilde),
13
- h1: util_1.hexToBigInt(challenge.h1),
14
- h2: util_1.hexToBigInt(challenge.h2),
12
+ ntilde: (0, util_1.hexToBigInt)(challenge.ntilde),
13
+ h1: (0, util_1.hexToBigInt)(challenge.h1),
14
+ h2: (0, util_1.hexToBigInt)(challenge.h2),
15
15
  };
16
16
  }
17
17
  exports.deserializeNtilde = deserializeNtilde;
@@ -21,9 +21,9 @@ exports.deserializeNtilde = deserializeNtilde;
21
21
  */
22
22
  function serializeNtilde(challenge) {
23
23
  return {
24
- ntilde: util_1.bigIntToHex(challenge.ntilde),
25
- h1: util_1.bigIntToHex(challenge.h1),
26
- h2: util_1.bigIntToHex(challenge.h2),
24
+ ntilde: (0, util_1.bigIntToHex)(challenge.ntilde),
25
+ h1: (0, util_1.bigIntToHex)(challenge.h1),
26
+ h2: (0, util_1.bigIntToHex)(challenge.h2),
27
27
  };
28
28
  }
29
29
  exports.serializeNtilde = serializeNtilde;
@@ -36,12 +36,12 @@ function deserializeNtildeWithProofs(challenge) {
36
36
  ...deserializeNtilde(challenge),
37
37
  ntildeProof: {
38
38
  h1WrtH2: {
39
- alpha: util_1.convertHexArrToBigIntArr(challenge.ntildeProof.h1WrtH2.alpha),
40
- t: util_1.convertHexArrToBigIntArr(challenge.ntildeProof.h1WrtH2.t),
39
+ alpha: (0, util_1.convertHexArrToBigIntArr)(challenge.ntildeProof.h1WrtH2.alpha),
40
+ t: (0, util_1.convertHexArrToBigIntArr)(challenge.ntildeProof.h1WrtH2.t),
41
41
  },
42
42
  h2WrtH1: {
43
- alpha: util_1.convertHexArrToBigIntArr(challenge.ntildeProof.h2WrtH1.alpha),
44
- t: util_1.convertHexArrToBigIntArr(challenge.ntildeProof.h2WrtH1.t),
43
+ alpha: (0, util_1.convertHexArrToBigIntArr)(challenge.ntildeProof.h2WrtH1.alpha),
44
+ t: (0, util_1.convertHexArrToBigIntArr)(challenge.ntildeProof.h2WrtH1.t),
45
45
  },
46
46
  },
47
47
  };
@@ -56,12 +56,12 @@ function serializeNtildeWithProofs(challenge) {
56
56
  ...serializeNtilde(challenge),
57
57
  ntildeProof: {
58
58
  h1WrtH2: {
59
- alpha: util_1.convertBigIntArrToHexArr(challenge.ntildeProof.h1WrtH2.alpha),
60
- t: util_1.convertBigIntArrToHexArr(challenge.ntildeProof.h1WrtH2.t),
59
+ alpha: (0, util_1.convertBigIntArrToHexArr)(challenge.ntildeProof.h1WrtH2.alpha),
60
+ t: (0, util_1.convertBigIntArrToHexArr)(challenge.ntildeProof.h1WrtH2.t),
61
61
  },
62
62
  h2WrtH1: {
63
- alpha: util_1.convertBigIntArrToHexArr(challenge.ntildeProof.h2WrtH1.alpha),
64
- t: util_1.convertBigIntArrToHexArr(challenge.ntildeProof.h2WrtH1.t),
63
+ alpha: (0, util_1.convertBigIntArrToHexArr)(challenge.ntildeProof.h2WrtH1.alpha),
64
+ t: (0, util_1.convertBigIntArrToHexArr)(challenge.ntildeProof.h2WrtH1.t),
65
65
  },
66
66
  },
67
67
  };
@@ -73,7 +73,7 @@ exports.serializeNtildeWithProofs = serializeNtildeWithProofs;
73
73
  */
74
74
  function deserializePaillierChallenge(challenge) {
75
75
  return {
76
- p: util_1.convertHexArrToBigIntArr(challenge.p),
76
+ p: (0, util_1.convertHexArrToBigIntArr)(challenge.p),
77
77
  };
78
78
  }
79
79
  exports.deserializePaillierChallenge = deserializePaillierChallenge;
@@ -83,7 +83,7 @@ exports.deserializePaillierChallenge = deserializePaillierChallenge;
83
83
  */
84
84
  function deserializePaillierChallengeProofs(challenge) {
85
85
  return {
86
- sigma: util_1.convertHexArrToBigIntArr(challenge.sigma),
86
+ sigma: (0, util_1.convertHexArrToBigIntArr)(challenge.sigma),
87
87
  };
88
88
  }
89
89
  exports.deserializePaillierChallengeProofs = deserializePaillierChallengeProofs;
@@ -104,7 +104,7 @@ exports.deserializePaillierChallengeWithProofs = deserializePaillierChallengeWit
104
104
  */
105
105
  function serializePaillierChallenge(challenge) {
106
106
  return {
107
- p: util_1.convertBigIntArrToHexArr(challenge.p, 768),
107
+ p: (0, util_1.convertBigIntArrToHexArr)(challenge.p, 768),
108
108
  };
109
109
  }
110
110
  exports.serializePaillierChallenge = serializePaillierChallenge;
@@ -114,7 +114,7 @@ exports.serializePaillierChallenge = serializePaillierChallenge;
114
114
  */
115
115
  function serializePaillierChallengeProofs(challenge) {
116
116
  return {
117
- sigma: util_1.convertBigIntArrToHexArr(challenge.sigma, 768),
117
+ sigma: (0, util_1.convertBigIntArrToHexArr)(challenge.sigma, 768),
118
118
  };
119
119
  }
120
120
  exports.serializePaillierChallengeProofs = serializePaillierChallengeProofs;
@@ -129,4 +129,4 @@ function serializePaillierChallengeWithProofs(challengeWithProofs) {
129
129
  };
130
130
  }
131
131
  exports.serializePaillierChallengeWithProofs = serializePaillierChallengeWithProofs;
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9FQUFvRTtBQUNwRSxxQ0FBMEc7QUF5QzFHOzs7R0FHRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFNBQTJCO0lBQzNELE9BQU87UUFDTCxNQUFNLEVBQUUsa0JBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3JDLEVBQUUsRUFBRSxrQkFBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDN0IsRUFBRSxFQUFFLGtCQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQU5ELDhDQU1DO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFDLFNBQTZCO0lBQzNELE9BQU87UUFDTCxNQUFNLEVBQUUsa0JBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQ3JDLEVBQUUsRUFBRSxrQkFBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDN0IsRUFBRSxFQUFFLGtCQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQU5ELDBDQU1DO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsU0FBcUM7SUFDL0UsT0FBTztRQUNMLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDO1FBQy9CLFdBQVcsRUFBRTtZQUNYLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsK0JBQXdCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUNwRSxDQUFDLEVBQUUsK0JBQXdCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSwrQkFBd0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3BFLENBQUMsRUFBRSwrQkFBd0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDN0Q7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDO0FBZEQsa0VBY0M7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQix5QkFBeUIsQ0FBQyxTQUF1QztJQUMvRSxPQUFPO1FBQ0wsR0FBRyxlQUFlLENBQUMsU0FBUyxDQUFDO1FBQzdCLFdBQVcsRUFBRTtZQUNYLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsK0JBQXdCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2dCQUNwRSxDQUFDLEVBQUUsK0JBQXdCLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSwrQkFBd0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3BFLENBQUMsRUFBRSwrQkFBd0IsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDN0Q7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDO0FBZEQsOERBY0M7QUF1QkQ7OztHQUdHO0FBQ0gsU0FBZ0IsNEJBQTRCLENBQUMsU0FBc0M7SUFDakYsT0FBTztRQUNMLENBQUMsRUFBRSwrQkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0tBQ3pDLENBQUM7QUFDSixDQUFDO0FBSkQsb0VBSUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixrQ0FBa0MsQ0FDaEQsU0FBNEM7SUFFNUMsT0FBTztRQUNMLEtBQUssRUFBRSwrQkFBd0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO0tBQ2pELENBQUM7QUFDSixDQUFDO0FBTkQsZ0ZBTUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixzQ0FBc0MsQ0FDcEQsbUJBQTBEO0lBRTFELE9BQU87UUFDTCxHQUFHLDRCQUE0QixDQUFDLG1CQUFtQixDQUFDO1FBQ3BELEdBQUcsa0NBQWtDLENBQUMsbUJBQW1CLENBQUM7S0FDM0QsQ0FBQztBQUNKLENBQUM7QUFQRCx3RkFPQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLDBCQUEwQixDQUFDLFNBQXdDO0lBQ2pGLE9BQU87UUFDTCxDQUFDLEVBQUUsK0JBQXdCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7S0FDOUMsQ0FBQztBQUNKLENBQUM7QUFKRCxnRUFJQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGdDQUFnQyxDQUM5QyxTQUE4QztJQUU5QyxPQUFPO1FBQ0wsS0FBSyxFQUFFLCtCQUF3QixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO0tBQ3RELENBQUM7QUFDSixDQUFDO0FBTkQsNEVBTUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixvQ0FBb0MsQ0FDbEQsbUJBQTREO0lBRTVELE9BQU87UUFDTCxHQUFHLDBCQUEwQixDQUFDLG1CQUFtQixDQUFDO1FBQ2xELEdBQUcsZ0NBQWdDLENBQUMsbUJBQW1CLENBQUM7S0FDekQsQ0FBQztBQUNKLENBQUM7QUFQRCxvRkFPQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE50aWxkZSBQcm9vZiB3aGVyZSBib3RoIGFscGhhIGFuZCB0IGFyZSBhIHNldCBvZiAxMjggcHJvb2ZzIGVhY2guXG5pbXBvcnQgeyBiaWdJbnRUb0hleCwgY29udmVydEJpZ0ludEFyclRvSGV4QXJyLCBjb252ZXJ0SGV4QXJyVG9CaWdJbnRBcnIsIGhleFRvQmlnSW50IH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbmludGVyZmFjZSBOdGlsZGVQcm9vZjxUPiB7XG4gIGFscGhhOiBUW107XG4gIHQ6IFRbXTtcbn1cblxuLy8gTnRpbGRlIFByb29mXG5pbnRlcmZhY2UgTnRpbGRlUHJvb2ZzPFQ+IHtcbiAgaDFXcnRIMjogTnRpbGRlUHJvb2Y8VD47XG4gIGgyV3J0SDE6IE50aWxkZVByb29mPFQ+O1xufVxuXG4vLyBOdGlsZGUgY2hhbGxlbmdlIHZhbHVlc1xuaW50ZXJmYWNlIE50aWxkZTxUPiB7XG4gIG50aWxkZTogVDtcbiAgaDE6IFQ7XG4gIGgyOiBUO1xufVxuXG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWROdGlsZGUgPSBOdGlsZGU8YmlnaW50PjtcbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWROdGlsZGUgPSBOdGlsZGU8c3RyaW5nPjtcbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZE50aWxkZVByb29mID0gTnRpbGRlUHJvb2Y8YmlnaW50PjtcbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWROdGlsZGVQcm9vZiA9IE50aWxkZVByb29mPHN0cmluZz47XG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWROdGlsZGVQcm9vZnMgPSBOdGlsZGVQcm9vZnM8YmlnaW50PjtcbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWROdGlsZGVQcm9vZnMgPSBOdGlsZGVQcm9vZnM8c3RyaW5nPjtcblxuLyoqXG4gKiBUaGUgbnRpbGRlIHByb29mcyBhcmUgZG9uZSBub24taW50ZXJhY3RpdmVseSxcbiAqIHRoZXJlZm9yZSBhIHBhcnR5IGdlbmVyYXRlcyBib3RoIG50aWxkZSwgaDEsIGgyIGFuZCB0aGUgcHJvb2ZzIHdpdGhvdXRcbiAqIGludGVyYWN0aW9uIHdpdGggdGhlIG90aGVyIHBhcnR5LlxuICovXG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzID0gRGVzZXJpYWxpemVkTnRpbGRlICYge1xuICBudGlsZGVQcm9vZjogRGVzZXJpYWxpemVkTnRpbGRlUHJvb2ZzO1xufTtcbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzID0gU2VyaWFsaXplZE50aWxkZSAmIHtcbiAgbnRpbGRlUHJvb2Y6IFNlcmlhbGl6ZWROdGlsZGVQcm9vZnM7XG59O1xuXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkRWNkc2FDaGFsbGVuZ2VzID0gU2VyaWFsaXplZE50aWxkZSAmIFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZTtcblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYSBjaGFsbGVuZ2UgZnJvbSBoZXggc3RyaW5ncyB0byBiaWdpbnRcbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplTnRpbGRlKGNoYWxsZW5nZTogU2VyaWFsaXplZE50aWxkZSk6IERlc2VyaWFsaXplZE50aWxkZSB7XG4gIHJldHVybiB7XG4gICAgbnRpbGRlOiBoZXhUb0JpZ0ludChjaGFsbGVuZ2UubnRpbGRlKSxcbiAgICBoMTogaGV4VG9CaWdJbnQoY2hhbGxlbmdlLmgxKSxcbiAgICBoMjogaGV4VG9CaWdJbnQoY2hhbGxlbmdlLmgyKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemVzIGEgY2hhbGxlbmdlIGZyb20gYmlnIGludCB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZU50aWxkZShjaGFsbGVuZ2U6IERlc2VyaWFsaXplZE50aWxkZSk6IFNlcmlhbGl6ZWROdGlsZGUge1xuICByZXR1cm4ge1xuICAgIG50aWxkZTogYmlnSW50VG9IZXgoY2hhbGxlbmdlLm50aWxkZSksXG4gICAgaDE6IGJpZ0ludFRvSGV4KGNoYWxsZW5nZS5oMSksXG4gICAgaDI6IGJpZ0ludFRvSGV4KGNoYWxsZW5nZS5oMiksXG4gIH07XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGEgY2hhbGxlbmdlIGFuZCBpdCdzIHByb29mcyBmcm9tIGhleCBzdHJpbmdzIHRvIGJpZ2ludFxuICogQHBhcmFtIGNoYWxsZW5nZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVOdGlsZGVXaXRoUHJvb2ZzKGNoYWxsZW5nZTogU2VyaWFsaXplZE50aWxkZVdpdGhQcm9vZnMpOiBEZXNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5kZXNlcmlhbGl6ZU50aWxkZShjaGFsbGVuZ2UpLFxuICAgIG50aWxkZVByb29mOiB7XG4gICAgICBoMVdydEgyOiB7XG4gICAgICAgIGFscGhhOiBjb252ZXJ0SGV4QXJyVG9CaWdJbnRBcnIoY2hhbGxlbmdlLm50aWxkZVByb29mLmgxV3J0SDIuYWxwaGEpLFxuICAgICAgICB0OiBjb252ZXJ0SGV4QXJyVG9CaWdJbnRBcnIoY2hhbGxlbmdlLm50aWxkZVByb29mLmgxV3J0SDIudCksXG4gICAgICB9LFxuICAgICAgaDJXcnRIMToge1xuICAgICAgICBhbHBoYTogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMldydEgxLmFscGhhKSxcbiAgICAgICAgdDogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMldydEgxLnQpLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgYSBjaGFsbGVuZ2UgYW5kIGl0J3MgcHJvb2ZzIGZyb20gYmlnIGludCB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZU50aWxkZVdpdGhQcm9vZnMoY2hhbGxlbmdlOiBEZXNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzKTogU2VyaWFsaXplZE50aWxkZVdpdGhQcm9vZnMge1xuICByZXR1cm4ge1xuICAgIC4uLnNlcmlhbGl6ZU50aWxkZShjaGFsbGVuZ2UpLFxuICAgIG50aWxkZVByb29mOiB7XG4gICAgICBoMVdydEgyOiB7XG4gICAgICAgIGFscGhhOiBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIoY2hhbGxlbmdlLm50aWxkZVByb29mLmgxV3J0SDIuYWxwaGEpLFxuICAgICAgICB0OiBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIoY2hhbGxlbmdlLm50aWxkZVByb29mLmgxV3J0SDIudCksXG4gICAgICB9LFxuICAgICAgaDJXcnRIMToge1xuICAgICAgICBhbHBoYTogY29udmVydEJpZ0ludEFyclRvSGV4QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMldydEgxLmFscGhhKSxcbiAgICAgICAgdDogY29udmVydEJpZ0ludEFyclRvSGV4QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMldydEgxLnQpLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuXG50eXBlIFBhaWxsaWVyQ2hhbGxlbmdlPFQ+ID0ge1xuICBwOiBUW107XG59O1xuXG50eXBlIFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2Y8VD4gPSB7XG4gIHNpZ21hOiBUW107XG59O1xuXG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZSA9IFBhaWxsaWVyQ2hhbGxlbmdlPGJpZ2ludD47XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2UgPSBQYWlsbGllckNoYWxsZW5nZTxzdHJpbmc+O1xuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMgPSBQYWlsbGllckNoYWxsZW5nZVByb29mPGJpZ2ludD47XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMgPSBQYWlsbGllckNoYWxsZW5nZVByb29mPHN0cmluZz47XG4vKipcbiAqIFRoZSBwYWlsbGllciBwcm9vZnMgYXJlIGRvbmUgaW50ZXJhY3RpdmVseSBiZXR3ZWVuIHR3byBwYXJ0aWVzLlxuICogSWYgcGFydHkgQSBpcyBjb21wbGV0aW5nIGEgcGFpbGxpZXIgcHJvb2YgJHNpZ21hJCB3aXRoIHBhcnR5IEIsIHRoZW4gJHAkIHJlZmVycyB0b1xuICogYSBjaGFsbGVuZ2UgZ2l2ZW4gdG8gQSBieSBCLCBhbmQgJHNpZ21hJCByZXByZXNlbnRzIHRoZSBwcm9vZiB0byB0aGUgY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyA9IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlICZcbiAgRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnM7XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VXaXRoUHJvb2ZzID0gU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlICYgU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzO1xuXG4vKipcbiAqIERlc2VyaWFsaXplcyBhIHBhaWxsaWVyIGNoYWxsZW5nZSB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2UoY2hhbGxlbmdlOiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2UpOiBEZXNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZSB7XG4gIHJldHVybiB7XG4gICAgcDogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5wKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYSBwYWlsbGllciBjaGFsbGVuZ2UgcHJvb2YgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzKFxuICBjaGFsbGVuZ2U6IFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZVByb29mc1xuKTogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMge1xuICByZXR1cm4ge1xuICAgIHNpZ21hOiBjb252ZXJ0SGV4QXJyVG9CaWdJbnRBcnIoY2hhbGxlbmdlLnNpZ21hKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYSBwYWlsbGllciBjaGFsbGVuZ2UgYW5kIGl0cyBwcm9vZiB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VXaXRoUHJvb2ZzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyhcbiAgY2hhbGxlbmdlV2l0aFByb29mczogU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mc1xuKTogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VXaXRoUHJvb2ZzIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5kZXNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlKGNoYWxsZW5nZVdpdGhQcm9vZnMpLFxuICAgIC4uLmRlc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMoY2hhbGxlbmdlV2l0aFByb29mcyksXG4gIH07XG59XG5cbi8qKlxuICogU2VyaWFsaXplcyBhIHBhaWxsaWVyIGNoYWxsZW5nZSB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlKGNoYWxsZW5nZTogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2UpOiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2Uge1xuICByZXR1cm4ge1xuICAgIHA6IGNvbnZlcnRCaWdJbnRBcnJUb0hleEFycihjaGFsbGVuZ2UucCwgNzY4KSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemVzIGEgcGFpbGxpZXIgY2hhbGxlbmdlIHByb29mIHRvIGhleCBzdHJpbmdzLlxuICogQHBhcmFtIGNoYWxsZW5nZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMoXG4gIGNoYWxsZW5nZTogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnNcbik6IFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZVByb29mcyB7XG4gIHJldHVybiB7XG4gICAgc2lnbWE6IGNvbnZlcnRCaWdJbnRBcnJUb0hleEFycihjaGFsbGVuZ2Uuc2lnbWEsIDc2OCksXG4gIH07XG59XG5cbi8qKlxuICogU2VyaWFsaXplcyBhIHBhaWxsaWVyIGNoYWxsZW5nZSBhbmQgaXRzIHByb29mIHRvIGhleCBzdHJpbmdzLlxuICogQHBhcmFtIGNoYWxsZW5nZVdpdGhQcm9vZnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyhcbiAgY2hhbGxlbmdlV2l0aFByb29mczogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VXaXRoUHJvb2ZzXG4pOiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VXaXRoUHJvb2ZzIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5zZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZShjaGFsbGVuZ2VXaXRoUHJvb2ZzKSxcbiAgICAuLi5zZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZVByb29mcyhjaGFsbGVuZ2VXaXRoUHJvb2ZzKSxcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSU0FNb2R1bHVzIHtcbiAgbjogYmlnaW50O1xuICAvLyBTb3BoaWUgR2VybWFpbiBwcmltZXMuXG4gIHExOiBiaWdpbnQ7XG4gIHEyOiBiaWdpbnQ7XG59XG5cbi8vIFJhbmdlIHByb29mIHZhbHVlc1xuZXhwb3J0IGludGVyZmFjZSBSYW5nZVByb29mIHtcbiAgejogYmlnaW50O1xuICB1OiBiaWdpbnQ7XG4gIHc6IGJpZ2ludDtcbiAgczogYmlnaW50O1xuICBzMTogYmlnaW50O1xuICBzMjogYmlnaW50O1xufVxuXG4vLyBSYW5nZSBwcm9vZiB2YWx1ZXNcbmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2VQcm9vZldpdGhDaGVjayB7XG4gIHo6IGJpZ2ludDtcbiAgenBybTogYmlnaW50O1xuICB0OiBiaWdpbnQ7XG4gIHY6IGJpZ2ludDtcbiAgdzogYmlnaW50O1xuICBzOiBiaWdpbnQ7XG4gIHMxOiBiaWdpbnQ7XG4gIHMyOiBiaWdpbnQ7XG4gIHQxOiBiaWdpbnQ7XG4gIHQyOiBiaWdpbnQ7XG4gIHU6IGJpZ2ludDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBaa1ZQcm9vZiB7XG4gIEFscGhhOiBiaWdpbnQ7XG4gIHQ6IGJpZ2ludDtcbiAgdTogYmlnaW50O1xufVxuIl19
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9FQUFvRTtBQUNwRSxxQ0FBMEc7QUF5QzFHOzs7R0FHRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLFNBQTJCO0lBQzNELE9BQU87UUFDTCxNQUFNLEVBQUUsSUFBQSxrQkFBVyxFQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDckMsRUFBRSxFQUFFLElBQUEsa0JBQVcsRUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzdCLEVBQUUsRUFBRSxJQUFBLGtCQUFXLEVBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQU5ELDhDQU1DO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsZUFBZSxDQUFDLFNBQTZCO0lBQzNELE9BQU87UUFDTCxNQUFNLEVBQUUsSUFBQSxrQkFBVyxFQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDckMsRUFBRSxFQUFFLElBQUEsa0JBQVcsRUFBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzdCLEVBQUUsRUFBRSxJQUFBLGtCQUFXLEVBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztLQUM5QixDQUFDO0FBQ0osQ0FBQztBQU5ELDBDQU1DO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsU0FBcUM7SUFDL0UsT0FBTztRQUNMLEdBQUcsaUJBQWlCLENBQUMsU0FBUyxDQUFDO1FBQy9CLFdBQVcsRUFBRTtZQUNYLE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsSUFBQSwrQkFBd0IsRUFBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3BFLENBQUMsRUFBRSxJQUFBLCtCQUF3QixFQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUM3RDtZQUNELE9BQU8sRUFBRTtnQkFDUCxLQUFLLEVBQUUsSUFBQSwrQkFBd0IsRUFBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7Z0JBQ3BFLENBQUMsRUFBRSxJQUFBLCtCQUF3QixFQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQzthQUM3RDtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFkRCxrRUFjQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLFNBQXVDO0lBQy9FLE9BQU87UUFDTCxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFDN0IsV0FBVyxFQUFFO1lBQ1gsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxJQUFBLCtCQUF3QixFQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDcEUsQ0FBQyxFQUFFLElBQUEsK0JBQXdCLEVBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLEtBQUssRUFBRSxJQUFBLCtCQUF3QixFQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFDcEUsQ0FBQyxFQUFFLElBQUEsK0JBQXdCLEVBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQzdEO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQztBQWRELDhEQWNDO0FBdUJEOzs7R0FHRztBQUNILFNBQWdCLDRCQUE0QixDQUFDLFNBQXNDO0lBQ2pGLE9BQU87UUFDTCxDQUFDLEVBQUUsSUFBQSwrQkFBd0IsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0tBQ3pDLENBQUM7QUFDSixDQUFDO0FBSkQsb0VBSUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixrQ0FBa0MsQ0FDaEQsU0FBNEM7SUFFNUMsT0FBTztRQUNMLEtBQUssRUFBRSxJQUFBLCtCQUF3QixFQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7S0FDakQsQ0FBQztBQUNKLENBQUM7QUFORCxnRkFNQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLHNDQUFzQyxDQUNwRCxtQkFBMEQ7SUFFMUQsT0FBTztRQUNMLEdBQUcsNEJBQTRCLENBQUMsbUJBQW1CLENBQUM7UUFDcEQsR0FBRyxrQ0FBa0MsQ0FBQyxtQkFBbUIsQ0FBQztLQUMzRCxDQUFDO0FBQ0osQ0FBQztBQVBELHdGQU9DO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQUMsU0FBd0M7SUFDakYsT0FBTztRQUNMLENBQUMsRUFBRSxJQUFBLCtCQUF3QixFQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDO0tBQzlDLENBQUM7QUFDSixDQUFDO0FBSkQsZ0VBSUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixnQ0FBZ0MsQ0FDOUMsU0FBOEM7SUFFOUMsT0FBTztRQUNMLEtBQUssRUFBRSxJQUFBLCtCQUF3QixFQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO0tBQ3RELENBQUM7QUFDSixDQUFDO0FBTkQsNEVBTUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixvQ0FBb0MsQ0FDbEQsbUJBQTREO0lBRTVELE9BQU87UUFDTCxHQUFHLDBCQUEwQixDQUFDLG1CQUFtQixDQUFDO1FBQ2xELEdBQUcsZ0NBQWdDLENBQUMsbUJBQW1CLENBQUM7S0FDekQsQ0FBQztBQUNKLENBQUM7QUFQRCxvRkFPQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE50aWxkZSBQcm9vZiB3aGVyZSBib3RoIGFscGhhIGFuZCB0IGFyZSBhIHNldCBvZiAxMjggcHJvb2ZzIGVhY2guXG5pbXBvcnQgeyBiaWdJbnRUb0hleCwgY29udmVydEJpZ0ludEFyclRvSGV4QXJyLCBjb252ZXJ0SGV4QXJyVG9CaWdJbnRBcnIsIGhleFRvQmlnSW50IH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbmludGVyZmFjZSBOdGlsZGVQcm9vZjxUPiB7XG4gIGFscGhhOiBUW107XG4gIHQ6IFRbXTtcbn1cblxuLy8gTnRpbGRlIFByb29mXG5pbnRlcmZhY2UgTnRpbGRlUHJvb2ZzPFQ+IHtcbiAgaDFXcnRIMjogTnRpbGRlUHJvb2Y8VD47XG4gIGgyV3J0SDE6IE50aWxkZVByb29mPFQ+O1xufVxuXG4vLyBOdGlsZGUgY2hhbGxlbmdlIHZhbHVlc1xuaW50ZXJmYWNlIE50aWxkZTxUPiB7XG4gIG50aWxkZTogVDtcbiAgaDE6IFQ7XG4gIGgyOiBUO1xufVxuXG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWROdGlsZGUgPSBOdGlsZGU8YmlnaW50PjtcbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWROdGlsZGUgPSBOdGlsZGU8c3RyaW5nPjtcbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZE50aWxkZVByb29mID0gTnRpbGRlUHJvb2Y8YmlnaW50PjtcbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWROdGlsZGVQcm9vZiA9IE50aWxkZVByb29mPHN0cmluZz47XG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWROdGlsZGVQcm9vZnMgPSBOdGlsZGVQcm9vZnM8YmlnaW50PjtcbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWROdGlsZGVQcm9vZnMgPSBOdGlsZGVQcm9vZnM8c3RyaW5nPjtcblxuLyoqXG4gKiBUaGUgbnRpbGRlIHByb29mcyBhcmUgZG9uZSBub24taW50ZXJhY3RpdmVseSxcbiAqIHRoZXJlZm9yZSBhIHBhcnR5IGdlbmVyYXRlcyBib3RoIG50aWxkZSwgaDEsIGgyIGFuZCB0aGUgcHJvb2ZzIHdpdGhvdXRcbiAqIGludGVyYWN0aW9uIHdpdGggdGhlIG90aGVyIHBhcnR5LlxuICovXG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzID0gRGVzZXJpYWxpemVkTnRpbGRlICYge1xuICBudGlsZGVQcm9vZjogRGVzZXJpYWxpemVkTnRpbGRlUHJvb2ZzO1xufTtcbmV4cG9ydCB0eXBlIFNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzID0gU2VyaWFsaXplZE50aWxkZSAmIHtcbiAgbnRpbGRlUHJvb2Y6IFNlcmlhbGl6ZWROdGlsZGVQcm9vZnM7XG59O1xuXG5leHBvcnQgdHlwZSBTZXJpYWxpemVkRWNkc2FDaGFsbGVuZ2VzID0gU2VyaWFsaXplZE50aWxkZSAmIFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZTtcblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYSBjaGFsbGVuZ2UgZnJvbSBoZXggc3RyaW5ncyB0byBiaWdpbnRcbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplTnRpbGRlKGNoYWxsZW5nZTogU2VyaWFsaXplZE50aWxkZSk6IERlc2VyaWFsaXplZE50aWxkZSB7XG4gIHJldHVybiB7XG4gICAgbnRpbGRlOiBoZXhUb0JpZ0ludChjaGFsbGVuZ2UubnRpbGRlKSxcbiAgICBoMTogaGV4VG9CaWdJbnQoY2hhbGxlbmdlLmgxKSxcbiAgICBoMjogaGV4VG9CaWdJbnQoY2hhbGxlbmdlLmgyKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemVzIGEgY2hhbGxlbmdlIGZyb20gYmlnIGludCB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZU50aWxkZShjaGFsbGVuZ2U6IERlc2VyaWFsaXplZE50aWxkZSk6IFNlcmlhbGl6ZWROdGlsZGUge1xuICByZXR1cm4ge1xuICAgIG50aWxkZTogYmlnSW50VG9IZXgoY2hhbGxlbmdlLm50aWxkZSksXG4gICAgaDE6IGJpZ0ludFRvSGV4KGNoYWxsZW5nZS5oMSksXG4gICAgaDI6IGJpZ0ludFRvSGV4KGNoYWxsZW5nZS5oMiksXG4gIH07XG59XG5cbi8qKlxuICogRGVzZXJpYWxpemVzIGEgY2hhbGxlbmdlIGFuZCBpdCdzIHByb29mcyBmcm9tIGhleCBzdHJpbmdzIHRvIGJpZ2ludFxuICogQHBhcmFtIGNoYWxsZW5nZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVzZXJpYWxpemVOdGlsZGVXaXRoUHJvb2ZzKGNoYWxsZW5nZTogU2VyaWFsaXplZE50aWxkZVdpdGhQcm9vZnMpOiBEZXNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5kZXNlcmlhbGl6ZU50aWxkZShjaGFsbGVuZ2UpLFxuICAgIG50aWxkZVByb29mOiB7XG4gICAgICBoMVdydEgyOiB7XG4gICAgICAgIGFscGhhOiBjb252ZXJ0SGV4QXJyVG9CaWdJbnRBcnIoY2hhbGxlbmdlLm50aWxkZVByb29mLmgxV3J0SDIuYWxwaGEpLFxuICAgICAgICB0OiBjb252ZXJ0SGV4QXJyVG9CaWdJbnRBcnIoY2hhbGxlbmdlLm50aWxkZVByb29mLmgxV3J0SDIudCksXG4gICAgICB9LFxuICAgICAgaDJXcnRIMToge1xuICAgICAgICBhbHBoYTogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMldydEgxLmFscGhhKSxcbiAgICAgICAgdDogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMldydEgxLnQpLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuXG4vKipcbiAqIFNlcmlhbGl6ZXMgYSBjaGFsbGVuZ2UgYW5kIGl0J3MgcHJvb2ZzIGZyb20gYmlnIGludCB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZU50aWxkZVdpdGhQcm9vZnMoY2hhbGxlbmdlOiBEZXNlcmlhbGl6ZWROdGlsZGVXaXRoUHJvb2ZzKTogU2VyaWFsaXplZE50aWxkZVdpdGhQcm9vZnMge1xuICByZXR1cm4ge1xuICAgIC4uLnNlcmlhbGl6ZU50aWxkZShjaGFsbGVuZ2UpLFxuICAgIG50aWxkZVByb29mOiB7XG4gICAgICBoMVdydEgyOiB7XG4gICAgICAgIGFscGhhOiBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIoY2hhbGxlbmdlLm50aWxkZVByb29mLmgxV3J0SDIuYWxwaGEpLFxuICAgICAgICB0OiBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIoY2hhbGxlbmdlLm50aWxkZVByb29mLmgxV3J0SDIudCksXG4gICAgICB9LFxuICAgICAgaDJXcnRIMToge1xuICAgICAgICBhbHBoYTogY29udmVydEJpZ0ludEFyclRvSGV4QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMldydEgxLmFscGhhKSxcbiAgICAgICAgdDogY29udmVydEJpZ0ludEFyclRvSGV4QXJyKGNoYWxsZW5nZS5udGlsZGVQcm9vZi5oMldydEgxLnQpLFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuXG50eXBlIFBhaWxsaWVyQ2hhbGxlbmdlPFQ+ID0ge1xuICBwOiBUW107XG59O1xuXG50eXBlIFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2Y8VD4gPSB7XG4gIHNpZ21hOiBUW107XG59O1xuXG5leHBvcnQgdHlwZSBEZXNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZSA9IFBhaWxsaWVyQ2hhbGxlbmdlPGJpZ2ludD47XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2UgPSBQYWlsbGllckNoYWxsZW5nZTxzdHJpbmc+O1xuZXhwb3J0IHR5cGUgRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMgPSBQYWlsbGllckNoYWxsZW5nZVByb29mPGJpZ2ludD47XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMgPSBQYWlsbGllckNoYWxsZW5nZVByb29mPHN0cmluZz47XG4vKipcbiAqIFRoZSBwYWlsbGllciBwcm9vZnMgYXJlIGRvbmUgaW50ZXJhY3RpdmVseSBiZXR3ZWVuIHR3byBwYXJ0aWVzLlxuICogSWYgcGFydHkgQSBpcyBjb21wbGV0aW5nIGEgcGFpbGxpZXIgcHJvb2YgJHNpZ21hJCB3aXRoIHBhcnR5IEIsIHRoZW4gJHAkIHJlZmVycyB0b1xuICogYSBjaGFsbGVuZ2UgZ2l2ZW4gdG8gQSBieSBCLCBhbmQgJHNpZ21hJCByZXByZXNlbnRzIHRoZSBwcm9vZiB0byB0aGUgY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCB0eXBlIERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyA9IERlc2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlICZcbiAgRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnM7XG5leHBvcnQgdHlwZSBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VXaXRoUHJvb2ZzID0gU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlICYgU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzO1xuXG4vKipcbiAqIERlc2VyaWFsaXplcyBhIHBhaWxsaWVyIGNoYWxsZW5nZSB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2UoY2hhbGxlbmdlOiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2UpOiBEZXNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZSB7XG4gIHJldHVybiB7XG4gICAgcDogY29udmVydEhleEFyclRvQmlnSW50QXJyKGNoYWxsZW5nZS5wKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYSBwYWlsbGllciBjaGFsbGVuZ2UgcHJvb2YgdG8gaGV4IHN0cmluZ3MuXG4gKiBAcGFyYW0gY2hhbGxlbmdlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlUHJvb2ZzKFxuICBjaGFsbGVuZ2U6IFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZVByb29mc1xuKTogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMge1xuICByZXR1cm4ge1xuICAgIHNpZ21hOiBjb252ZXJ0SGV4QXJyVG9CaWdJbnRBcnIoY2hhbGxlbmdlLnNpZ21hKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBEZXNlcmlhbGl6ZXMgYSBwYWlsbGllciBjaGFsbGVuZ2UgYW5kIGl0cyBwcm9vZiB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VXaXRoUHJvb2ZzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyhcbiAgY2hhbGxlbmdlV2l0aFByb29mczogU2VyaWFsaXplZFBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mc1xuKTogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VXaXRoUHJvb2ZzIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5kZXNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlKGNoYWxsZW5nZVdpdGhQcm9vZnMpLFxuICAgIC4uLmRlc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMoY2hhbGxlbmdlV2l0aFByb29mcyksXG4gIH07XG59XG5cbi8qKlxuICogU2VyaWFsaXplcyBhIHBhaWxsaWVyIGNoYWxsZW5nZSB0byBoZXggc3RyaW5ncy5cbiAqIEBwYXJhbSBjaGFsbGVuZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlKGNoYWxsZW5nZTogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2UpOiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2Uge1xuICByZXR1cm4ge1xuICAgIHA6IGNvbnZlcnRCaWdJbnRBcnJUb0hleEFycihjaGFsbGVuZ2UucCwgNzY4KSxcbiAgfTtcbn1cblxuLyoqXG4gKiBTZXJpYWxpemVzIGEgcGFpbGxpZXIgY2hhbGxlbmdlIHByb29mIHRvIGhleCBzdHJpbmdzLlxuICogQHBhcmFtIGNoYWxsZW5nZVxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnMoXG4gIGNoYWxsZW5nZTogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VQcm9vZnNcbik6IFNlcmlhbGl6ZWRQYWlsbGllckNoYWxsZW5nZVByb29mcyB7XG4gIHJldHVybiB7XG4gICAgc2lnbWE6IGNvbnZlcnRCaWdJbnRBcnJUb0hleEFycihjaGFsbGVuZ2Uuc2lnbWEsIDc2OCksXG4gIH07XG59XG5cbi8qKlxuICogU2VyaWFsaXplcyBhIHBhaWxsaWVyIGNoYWxsZW5nZSBhbmQgaXRzIHByb29mIHRvIGhleCBzdHJpbmdzLlxuICogQHBhcmFtIGNoYWxsZW5nZVdpdGhQcm9vZnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVBhaWxsaWVyQ2hhbGxlbmdlV2l0aFByb29mcyhcbiAgY2hhbGxlbmdlV2l0aFByb29mczogRGVzZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VXaXRoUHJvb2ZzXG4pOiBTZXJpYWxpemVkUGFpbGxpZXJDaGFsbGVuZ2VXaXRoUHJvb2ZzIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5zZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZShjaGFsbGVuZ2VXaXRoUHJvb2ZzKSxcbiAgICAuLi5zZXJpYWxpemVQYWlsbGllckNoYWxsZW5nZVByb29mcyhjaGFsbGVuZ2VXaXRoUHJvb2ZzKSxcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSU0FNb2R1bHVzIHtcbiAgbjogYmlnaW50O1xuICAvLyBTb3BoaWUgR2VybWFpbiBwcmltZXMuXG4gIHExOiBiaWdpbnQ7XG4gIHEyOiBiaWdpbnQ7XG59XG5cbi8vIFJhbmdlIHByb29mIHZhbHVlc1xuZXhwb3J0IGludGVyZmFjZSBSYW5nZVByb29mIHtcbiAgejogYmlnaW50O1xuICB1OiBiaWdpbnQ7XG4gIHc6IGJpZ2ludDtcbiAgczogYmlnaW50O1xuICBzMTogYmlnaW50O1xuICBzMjogYmlnaW50O1xufVxuXG4vLyBSYW5nZSBwcm9vZiB2YWx1ZXNcbmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2VQcm9vZldpdGhDaGVjayB7XG4gIHo6IGJpZ2ludDtcbiAgenBybTogYmlnaW50O1xuICB0OiBiaWdpbnQ7XG4gIHY6IGJpZ2ludDtcbiAgdzogYmlnaW50O1xuICBzOiBiaWdpbnQ7XG4gIHMxOiBiaWdpbnQ7XG4gIHMyOiBiaWdpbnQ7XG4gIHQxOiBiaWdpbnQ7XG4gIHQyOiBiaWdpbnQ7XG4gIHU6IGJpZ2ludDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBaa1ZQcm9vZiB7XG4gIEFscGhhOiBiaWdpbnQ7XG4gIHQ6IGJpZ2ludDtcbiAgdTogYmlnaW50O1xufVxuIl19
@@ -44,13 +44,13 @@ exports.createZkVProof = createZkVProof;
44
44
  */
45
45
  function nonInteractiveChallenge(V, R, Alpha, curve, additionalCtx) {
46
46
  const G = curve.basePointMult(BigInt(1));
47
- const hash = crypto_1.createHash('sha256');
48
- hash.update(util_1.bigIntToBufferBE(G, curve.pointBytes));
49
- hash.update(util_1.bigIntToBufferBE(R, curve.pointBytes));
50
- hash.update(util_1.bigIntToBufferBE(V, curve.pointBytes));
51
- hash.update(util_1.bigIntToBufferBE(Alpha, curve.pointBytes));
47
+ const hash = (0, crypto_1.createHash)('sha256');
48
+ hash.update((0, util_1.bigIntToBufferBE)(G, curve.pointBytes));
49
+ hash.update((0, util_1.bigIntToBufferBE)(R, curve.pointBytes));
50
+ hash.update((0, util_1.bigIntToBufferBE)(V, curve.pointBytes));
51
+ hash.update((0, util_1.bigIntToBufferBE)(Alpha, curve.pointBytes));
52
52
  hash.update(additionalCtx);
53
- return util_1.bigIntFromBufferBE(hash.digest());
53
+ return (0, util_1.bigIntFromBufferBE)(hash.digest());
54
54
  }
55
55
  /**
56
56
  * Verify a ZK Proof of knowledge of the s and l that are behind the public value V = sR + lG.
@@ -68,4 +68,4 @@ function verifyZkVProof(V, proof, R, curve, additionalCtx = Buffer.from('')) {
68
68
  return lhs === rhs;
69
69
  }
70
70
  exports.verifyZkVProof = verifyZkVProof;
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemtWUHJvb2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhL3prVlByb29mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDSCxtQ0FBb0M7QUFHcEMscUNBQWtFO0FBRWxFOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsQ0FBUyxFQUNULENBQVMsRUFDVCxDQUFTLEVBQ1QsQ0FBUyxFQUNULEtBQVksRUFDWixnQkFBd0IsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFdkMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9CLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoRixNQUFNLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFckUsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXJELE9BQU87UUFDTCxLQUFLLEVBQUUsS0FBSztRQUNaLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7S0FDTCxDQUFDO0FBQ0osQ0FBQztBQXRCRCx3Q0FzQkM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHVCQUF1QixDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLEtBQVksRUFBRSxhQUFxQjtJQUN2RyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpDLE1BQU0sSUFBSSxHQUFHLG1CQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1QkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUUzQixPQUFPLHlCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsQ0FBUyxFQUNULEtBQWUsRUFDZixDQUFTLEVBQ1QsS0FBWSxFQUNaLGdCQUF3QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV2QyxNQUFNLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXZGLE9BQU8sR0FBRyxLQUFLLEdBQUcsQ0FBQztBQUNyQixDQUFDO0FBYkQsd0NBYUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFplcm8gS25vd2xlZGdlIFByb29mIG9mIGtub3dsZWRnZSBvZiB0aGUgcyBhbmQgbCB0aGF0IGFyZSBiZWhpbmQgdGhlIHB1YmxpYyB2YWx1ZSBWID0gc1IgKyBsRy5cbiAqIFRoZSBWIHZhbHVlIGlzIGNhbGN1bGF0ZWQgaW4gc3RlcCA1QSBhbmQgdGhlIHByb29mIGlzIGNyZWF0ZWQgaW4gc3RlcCA1QiBvZiB0aGUgR0cxOCBzaWduaW5nIHByb3RvY29sLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9lcHJpbnQuaWFjci5vcmcvMjAxOS8xMTQucGRmfSBzZWN0aW9uIDQuMyBmb3IgcmVmZXJlbmNlLlxuICovXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IEJhc2VDdXJ2ZSBhcyBDdXJ2ZSB9IGZyb20gJy4uLy4uL2N1cnZlcyc7XG5pbXBvcnQgeyBaa1ZQcm9vZiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYmlnSW50RnJvbUJ1ZmZlckJFLCBiaWdJbnRUb0J1ZmZlckJFIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbi8qKlxuICogQ3JlYXRlIGEgWksgUHJvb2Ygb2Yga25vd2xlZGdlIG9mIHRoZSBzIGFuZCBsIHRoYXQgYXJlIGJlaGluZCB0aGUgcHVibGljIHZhbHVlIFYgPSBzUiArIGxHLlxuICogQHBhcmFtIFYgVGhlIGN1cnZlIHBvaW50IFYuXG4gKiBAcGFyYW0gcyBUaGUgcyB0aGF0IG11bHRpcGxpZXMgUi5cbiAqIEBwYXJhbSBsIFRoZSBsIHRoYXQgbXVsdGlwbGllcyB0aGUgY3VydmUgZ2VucmVhdG9yIEcuXG4gKiBAcGFyYW0gUiBUaGUgY3VydmUgcG9pbnQgUiBzaGFyZWQgYnkgYWxsIHBhcnRpY2lwYW50cy5cbiAqIEBwYXJhbSBjdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUuXG4gKiBAcGFyYW0gYWRkaXRpb25hbEN0eCBBZGRpdGlvbmFsIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdG8gYXNzb2NpYXRlIHdpdGggdGhlIHByb29mLlxuICogQHJldHVybnMgVGhlIGNyZWF0ZWQgcHJvb2YuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVaa1ZQcm9vZihcbiAgVjogYmlnaW50LFxuICBzOiBiaWdpbnQsXG4gIGw6IGJpZ2ludCxcbiAgUjogYmlnaW50LFxuICBjdXJ2ZTogQ3VydmUsXG4gIGFkZGl0aW9uYWxDdHg6IEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKCcnKVxuKTogWmtWUHJvb2Yge1xuICBjb25zdCBhID0gY3VydmUuc2NhbGFyUmFuZG9tKCk7XG4gIGNvbnN0IGIgPSBjdXJ2ZS5zY2FsYXJSYW5kb20oKTtcbiAgY29uc3QgQWxwaGEgPSBjdXJ2ZS5wb2ludEFkZChjdXJ2ZS5wb2ludE11bHRpcGx5KFIsIGEpLCBjdXJ2ZS5iYXNlUG9pbnRNdWx0KGIpKTtcblxuICBjb25zdCBjID0gbm9uSW50ZXJhY3RpdmVDaGFsbGVuZ2UoViwgUiwgQWxwaGEsIGN1cnZlLCBhZGRpdGlvbmFsQ3R4KTtcblxuICBjb25zdCB0ID0gY3VydmUuc2NhbGFyQWRkKGEsIGN1cnZlLnNjYWxhck11bHQoYywgcykpO1xuICBjb25zdCB1ID0gY3VydmUuc2NhbGFyQWRkKGIsIGN1cnZlLnNjYWxhck11bHQoYywgbCkpO1xuXG4gIHJldHVybiB7XG4gICAgQWxwaGE6IEFscGhhLFxuICAgIHQ6IHQsXG4gICAgdTogdSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgY2hhbGxlbmdlIGZvciBOSVpLIHByb29mIG9mIFYgdXNpbmcgRmlhdC1TaGFtaXIgdHJhbnNmb3JtLlxuICpcbiAqIEBwYXJhbSBWIFRoZSBwb2ludCB0byBiZSBwcm92ZW4uXG4gKiBAcGFyYW0gUiBUaGUgcG9pbnQgUiBzaGFyZWQgYnkgYWxsIHBhcnRpY2lwYW50cyBpbiB0aGUgRUNEU0Egc2lnbmluZyBwcm90b2NvbC5cbiAqIEBwYXJhbSBBbHBoYSBUaGUgcG9pbnQvcHVibGljIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHJhbmRvbSBzY2FsYXIgdmFsdWVzIGEgYW5kIGIgY2hvc2VuIGJ5IHRoZSBwcm92ZXIuXG4gKiBAcGFyYW0gY3VydmUgVGhlIGVsbGlwdGljIGN1cnZlLlxuICogQHBhcmFtIGFkZGl0aW9uYWxDdHggQWRkaXRpb25hbCBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBwcm9vZi5cbiAqIEByZXR1cm5zIFRoZSBjYWxjdWxhdGVkIGNoYWxsZW5nZS5cbiAqL1xuZnVuY3Rpb24gbm9uSW50ZXJhY3RpdmVDaGFsbGVuZ2UoVjogYmlnaW50LCBSOiBiaWdpbnQsIEFscGhhOiBiaWdpbnQsIGN1cnZlOiBDdXJ2ZSwgYWRkaXRpb25hbEN0eDogQnVmZmVyKTogYmlnaW50IHtcbiAgY29uc3QgRyA9IGN1cnZlLmJhc2VQb2ludE11bHQoQmlnSW50KDEpKTtcblxuICBjb25zdCBoYXNoID0gY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG4gIGhhc2gudXBkYXRlKGJpZ0ludFRvQnVmZmVyQkUoRywgY3VydmUucG9pbnRCeXRlcykpO1xuICBoYXNoLnVwZGF0ZShiaWdJbnRUb0J1ZmZlckJFKFIsIGN1cnZlLnBvaW50Qnl0ZXMpKTtcbiAgaGFzaC51cGRhdGUoYmlnSW50VG9CdWZmZXJCRShWLCBjdXJ2ZS5wb2ludEJ5dGVzKSk7XG4gIGhhc2gudXBkYXRlKGJpZ0ludFRvQnVmZmVyQkUoQWxwaGEsIGN1cnZlLnBvaW50Qnl0ZXMpKTtcbiAgaGFzaC51cGRhdGUoYWRkaXRpb25hbEN0eCk7XG5cbiAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJCRShoYXNoLmRpZ2VzdCgpKTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgYSBaSyBQcm9vZiBvZiBrbm93bGVkZ2Ugb2YgdGhlIHMgYW5kIGwgdGhhdCBhcmUgYmVoaW5kIHRoZSBwdWJsaWMgdmFsdWUgViA9IHNSICsgbEcuXG4gKiBAcGFyYW0gViBUaGUgY3VydmUgcG9pbnQgVi5cbiAqIEBwYXJhbSBwcm9vZiBUaGUgWksgcHJvb2YuXG4gKiBAcGFyYW0gUiBUaGUgY3VydmUgcG9pbnQgUiBzaGFyZWQgYnkgYWxsIHBhcnRpY2lwYW50cy5cbiAqIEBwYXJhbSBjdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUuXG4gKiBAcGFyYW0gYWRkaXRpb25hbEN0eCBBZGRpdGlvbmFsIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdGhhdCBpcyBzdXBwb3NlZCB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcHJvb2YuXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBwcm9vZiBjaGVja3Mgb3V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5WmtWUHJvb2YoXG4gIFY6IGJpZ2ludCxcbiAgcHJvb2Y6IFprVlByb29mLFxuICBSOiBiaWdpbnQsXG4gIGN1cnZlOiBDdXJ2ZSxcbiAgYWRkaXRpb25hbEN0eDogQnVmZmVyID0gQnVmZmVyLmZyb20oJycpXG4pOiBib29sZWFuIHtcbiAgY29uc3QgYyA9IG5vbkludGVyYWN0aXZlQ2hhbGxlbmdlKFYsIFIsIHByb29mLkFscGhhLCBjdXJ2ZSwgYWRkaXRpb25hbEN0eCk7XG5cbiAgY29uc3QgbGhzID0gY3VydmUucG9pbnRBZGQoY3VydmUucG9pbnRNdWx0aXBseShSLCBwcm9vZi50KSwgY3VydmUuYmFzZVBvaW50TXVsdChwcm9vZi51KSk7XG4gIGNvbnN0IHJocyA9IGN1cnZlLnBvaW50QWRkKHByb29mLkFscGhhLCBjdXJ2ZS5wb2ludE11bHRpcGx5KFYsIGN1cnZlLnNjYWxhclJlZHVjZShjKSkpO1xuXG4gIHJldHVybiBsaHMgPT09IHJocztcbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemtWUHJvb2YuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhL3prVlByb29mLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOzs7O0dBSUc7QUFDSCxtQ0FBb0M7QUFHcEMscUNBQWtFO0FBRWxFOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsQ0FBUyxFQUNULENBQVMsRUFDVCxDQUFTLEVBQ1QsQ0FBUyxFQUNULEtBQVksRUFDWixnQkFBd0IsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFdkMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQy9CLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMvQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoRixNQUFNLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFFckUsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXJELE9BQU87UUFDTCxLQUFLLEVBQUUsS0FBSztRQUNaLENBQUMsRUFBRSxDQUFDO1FBQ0osQ0FBQyxFQUFFLENBQUM7S0FDTCxDQUFDO0FBQ0osQ0FBQztBQXRCRCx3Q0FzQkM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFTLHVCQUF1QixDQUFDLENBQVMsRUFBRSxDQUFTLEVBQUUsS0FBYSxFQUFFLEtBQVksRUFBRSxhQUFxQjtJQUN2RyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXpDLE1BQU0sSUFBSSxHQUFHLElBQUEsbUJBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUEsdUJBQWdCLEVBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ25ELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBQSx1QkFBZ0IsRUFBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFBLHVCQUFnQixFQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUEsdUJBQWdCLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFM0IsT0FBTyxJQUFBLHlCQUFrQixFQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsQ0FBUyxFQUNULEtBQWUsRUFDZixDQUFTLEVBQ1QsS0FBWSxFQUNaLGdCQUF3QixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUV2QyxNQUFNLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTNFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDMUYsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXZGLE9BQU8sR0FBRyxLQUFLLEdBQUcsQ0FBQztBQUNyQixDQUFDO0FBYkQsd0NBYUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFplcm8gS25vd2xlZGdlIFByb29mIG9mIGtub3dsZWRnZSBvZiB0aGUgcyBhbmQgbCB0aGF0IGFyZSBiZWhpbmQgdGhlIHB1YmxpYyB2YWx1ZSBWID0gc1IgKyBsRy5cbiAqIFRoZSBWIHZhbHVlIGlzIGNhbGN1bGF0ZWQgaW4gc3RlcCA1QSBhbmQgdGhlIHByb29mIGlzIGNyZWF0ZWQgaW4gc3RlcCA1QiBvZiB0aGUgR0cxOCBzaWduaW5nIHByb3RvY29sLlxuICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9lcHJpbnQuaWFjci5vcmcvMjAxOS8xMTQucGRmfSBzZWN0aW9uIDQuMyBmb3IgcmVmZXJlbmNlLlxuICovXG5pbXBvcnQgeyBjcmVhdGVIYXNoIH0gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IEJhc2VDdXJ2ZSBhcyBDdXJ2ZSB9IGZyb20gJy4uLy4uL2N1cnZlcyc7XG5pbXBvcnQgeyBaa1ZQcm9vZiB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgYmlnSW50RnJvbUJ1ZmZlckJFLCBiaWdJbnRUb0J1ZmZlckJFIH0gZnJvbSAnLi4vLi4vdXRpbCc7XG5cbi8qKlxuICogQ3JlYXRlIGEgWksgUHJvb2Ygb2Yga25vd2xlZGdlIG9mIHRoZSBzIGFuZCBsIHRoYXQgYXJlIGJlaGluZCB0aGUgcHVibGljIHZhbHVlIFYgPSBzUiArIGxHLlxuICogQHBhcmFtIFYgVGhlIGN1cnZlIHBvaW50IFYuXG4gKiBAcGFyYW0gcyBUaGUgcyB0aGF0IG11bHRpcGxpZXMgUi5cbiAqIEBwYXJhbSBsIFRoZSBsIHRoYXQgbXVsdGlwbGllcyB0aGUgY3VydmUgZ2VucmVhdG9yIEcuXG4gKiBAcGFyYW0gUiBUaGUgY3VydmUgcG9pbnQgUiBzaGFyZWQgYnkgYWxsIHBhcnRpY2lwYW50cy5cbiAqIEBwYXJhbSBjdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUuXG4gKiBAcGFyYW0gYWRkaXRpb25hbEN0eCBBZGRpdGlvbmFsIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdG8gYXNzb2NpYXRlIHdpdGggdGhlIHByb29mLlxuICogQHJldHVybnMgVGhlIGNyZWF0ZWQgcHJvb2YuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVaa1ZQcm9vZihcbiAgVjogYmlnaW50LFxuICBzOiBiaWdpbnQsXG4gIGw6IGJpZ2ludCxcbiAgUjogYmlnaW50LFxuICBjdXJ2ZTogQ3VydmUsXG4gIGFkZGl0aW9uYWxDdHg6IEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKCcnKVxuKTogWmtWUHJvb2Yge1xuICBjb25zdCBhID0gY3VydmUuc2NhbGFyUmFuZG9tKCk7XG4gIGNvbnN0IGIgPSBjdXJ2ZS5zY2FsYXJSYW5kb20oKTtcbiAgY29uc3QgQWxwaGEgPSBjdXJ2ZS5wb2ludEFkZChjdXJ2ZS5wb2ludE11bHRpcGx5KFIsIGEpLCBjdXJ2ZS5iYXNlUG9pbnRNdWx0KGIpKTtcblxuICBjb25zdCBjID0gbm9uSW50ZXJhY3RpdmVDaGFsbGVuZ2UoViwgUiwgQWxwaGEsIGN1cnZlLCBhZGRpdGlvbmFsQ3R4KTtcblxuICBjb25zdCB0ID0gY3VydmUuc2NhbGFyQWRkKGEsIGN1cnZlLnNjYWxhck11bHQoYywgcykpO1xuICBjb25zdCB1ID0gY3VydmUuc2NhbGFyQWRkKGIsIGN1cnZlLnNjYWxhck11bHQoYywgbCkpO1xuXG4gIHJldHVybiB7XG4gICAgQWxwaGE6IEFscGhhLFxuICAgIHQ6IHQsXG4gICAgdTogdSxcbiAgfTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgY2hhbGxlbmdlIGZvciBOSVpLIHByb29mIG9mIFYgdXNpbmcgRmlhdC1TaGFtaXIgdHJhbnNmb3JtLlxuICpcbiAqIEBwYXJhbSBWIFRoZSBwb2ludCB0byBiZSBwcm92ZW4uXG4gKiBAcGFyYW0gUiBUaGUgcG9pbnQgUiBzaGFyZWQgYnkgYWxsIHBhcnRpY2lwYW50cyBpbiB0aGUgRUNEU0Egc2lnbmluZyBwcm90b2NvbC5cbiAqIEBwYXJhbSBBbHBoYSBUaGUgcG9pbnQvcHVibGljIHZhbHVlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHJhbmRvbSBzY2FsYXIgdmFsdWVzIGEgYW5kIGIgY2hvc2VuIGJ5IHRoZSBwcm92ZXIuXG4gKiBAcGFyYW0gY3VydmUgVGhlIGVsbGlwdGljIGN1cnZlLlxuICogQHBhcmFtIGFkZGl0aW9uYWxDdHggQWRkaXRpb25hbCBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBwcm9vZi5cbiAqIEByZXR1cm5zIFRoZSBjYWxjdWxhdGVkIGNoYWxsZW5nZS5cbiAqL1xuZnVuY3Rpb24gbm9uSW50ZXJhY3RpdmVDaGFsbGVuZ2UoVjogYmlnaW50LCBSOiBiaWdpbnQsIEFscGhhOiBiaWdpbnQsIGN1cnZlOiBDdXJ2ZSwgYWRkaXRpb25hbEN0eDogQnVmZmVyKTogYmlnaW50IHtcbiAgY29uc3QgRyA9IGN1cnZlLmJhc2VQb2ludE11bHQoQmlnSW50KDEpKTtcblxuICBjb25zdCBoYXNoID0gY3JlYXRlSGFzaCgnc2hhMjU2Jyk7XG4gIGhhc2gudXBkYXRlKGJpZ0ludFRvQnVmZmVyQkUoRywgY3VydmUucG9pbnRCeXRlcykpO1xuICBoYXNoLnVwZGF0ZShiaWdJbnRUb0J1ZmZlckJFKFIsIGN1cnZlLnBvaW50Qnl0ZXMpKTtcbiAgaGFzaC51cGRhdGUoYmlnSW50VG9CdWZmZXJCRShWLCBjdXJ2ZS5wb2ludEJ5dGVzKSk7XG4gIGhhc2gudXBkYXRlKGJpZ0ludFRvQnVmZmVyQkUoQWxwaGEsIGN1cnZlLnBvaW50Qnl0ZXMpKTtcbiAgaGFzaC51cGRhdGUoYWRkaXRpb25hbEN0eCk7XG5cbiAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJCRShoYXNoLmRpZ2VzdCgpKTtcbn1cblxuLyoqXG4gKiBWZXJpZnkgYSBaSyBQcm9vZiBvZiBrbm93bGVkZ2Ugb2YgdGhlIHMgYW5kIGwgdGhhdCBhcmUgYmVoaW5kIHRoZSBwdWJsaWMgdmFsdWUgViA9IHNSICsgbEcuXG4gKiBAcGFyYW0gViBUaGUgY3VydmUgcG9pbnQgVi5cbiAqIEBwYXJhbSBwcm9vZiBUaGUgWksgcHJvb2YuXG4gKiBAcGFyYW0gUiBUaGUgY3VydmUgcG9pbnQgUiBzaGFyZWQgYnkgYWxsIHBhcnRpY2lwYW50cy5cbiAqIEBwYXJhbSBjdXJ2ZSBUaGUgZWxsaXB0aWMgY3VydmUuXG4gKiBAcGFyYW0gYWRkaXRpb25hbEN0eCBBZGRpdGlvbmFsIGNvbnRleHR1YWwgaW5mb3JtYXRpb24gdGhhdCBpcyBzdXBwb3NlZCB0byBhc3NvY2lhdGUgd2l0aCB0aGUgcHJvb2YuXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBwcm9vZiBjaGVja3Mgb3V0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmVyaWZ5WmtWUHJvb2YoXG4gIFY6IGJpZ2ludCxcbiAgcHJvb2Y6IFprVlByb29mLFxuICBSOiBiaWdpbnQsXG4gIGN1cnZlOiBDdXJ2ZSxcbiAgYWRkaXRpb25hbEN0eDogQnVmZmVyID0gQnVmZmVyLmZyb20oJycpXG4pOiBib29sZWFuIHtcbiAgY29uc3QgYyA9IG5vbkludGVyYWN0aXZlQ2hhbGxlbmdlKFYsIFIsIHByb29mLkFscGhhLCBjdXJ2ZSwgYWRkaXRpb25hbEN0eCk7XG5cbiAgY29uc3QgbGhzID0gY3VydmUucG9pbnRBZGQoY3VydmUucG9pbnRNdWx0aXBseShSLCBwcm9vZi50KSwgY3VydmUuYmFzZVBvaW50TXVsdChwcm9vZi51KSk7XG4gIGNvbnN0IHJocyA9IGN1cnZlLnBvaW50QWRkKHByb29mLkFscGhhLCBjdXJ2ZS5wb2ludE11bHRpcGx5KFYsIGN1cnZlLnNjYWxhclJlZHVjZShjKSkpO1xuXG4gIHJldHVybiBsaHMgPT09IHJocztcbn1cbiJdfQ==
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -209,4 +213,4 @@ async function encryptAndAuthOutgoingMessages(messages, pubEncryptionGpgKeys, pr
209
213
  };
210
214
  }
211
215
  exports.encryptAndAuthOutgoingMessages = encryptAndAuthOutgoingMessages;
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXNMYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90c3MvZWNkc2EtZGtscy9jb21tc0xheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSw2Q0FBK0I7QUFFL0I7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxjQUFjLENBQUMsSUFBWSxFQUFFLFlBQW9CO0lBQ3JFLE1BQU0sT0FBTyxHQUFHLE1BQU0sR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFELE1BQU0sVUFBVSxHQUFHLE1BQU0sR0FBRyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sU0FBUyxHQUFHLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQztRQUMvQixPQUFPO1FBQ1AsV0FBVyxFQUFFLFVBQVU7UUFDdkIsTUFBTSxFQUFFLFNBQVM7UUFDakIsUUFBUSxFQUFFLElBQUk7UUFDZCxNQUFNLEVBQUU7WUFDTixZQUFZLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDdkIsV0FBVyxFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFLEtBQUs7U0FDbkI7S0FDRixDQUFDLENBQUM7SUFDSCxPQUFPO1FBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ2hDLFNBQVMsRUFBRSxTQUFTO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBbEJELHdDQWtCQztBQUVEOzs7OztHQUtHO0FBQ0ksS0FBSyxVQUFVLHdCQUF3QixDQUM1QyxJQUFZLEVBQ1osV0FBbUIsRUFDbkIsWUFBb0I7SUFFcEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxH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LENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxNQUFNLFNBQVMsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdFLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2QsTUFBTSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ3RFO1lBQ0QsT0FBTztnQkFDTCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0JBQ1osT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDO2FBQ2xGLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSDtLQUNGLENBQUM7QUFDSixDQUFDO0FBckNELHdFQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcmlhbGl6ZWRNZXNzYWdlcywgQXV0aEVuY01lc3NhZ2UsIEF1dGhFbmNNZXNzYWdlcywgUGFydHlHcGdLZXksIEF1dGhNZXNzYWdlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgKiBhcyBwZ3AgZnJvbSAnb3BlbnBncCc7XG5cbi8qKlxuICogRGV0YWNoIHNpZ25zIGEgYmluYXJ5IGFuZCBlbmNvZGVzIGl0IGluIGJhc2U2NFxuICogQHBhcmFtIGRhdGEgYmluYXJ5IHRvIGVuY29kZSBpbiBiYXNlNjQgYW5kIHNpZ25cbiAqIEBwYXJhbSBwcml2YXRlQXJtb3IgcHJpdmF0ZSBrZXkgdG8gc2lnbiB3aXRoXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXRhY2hTaWduRGF0YShkYXRhOiBCdWZmZXIsIHByaXZhdGVBcm1vcjogc3RyaW5nKTogUHJvbWlzZTxBdXRoTWVzc2FnZT4ge1xuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgcGdwLmNyZWF0ZU1lc3NhZ2UoeyBiaW5hcnk6IGRhdGEgfSk7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCBwZ3AucmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiBwcml2YXRlQXJtb3IgfSk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHBncC5zaWduKHtcbiAgICBtZXNzYWdlLFxuICAgIHNpZ25pbmdLZXlzOiBwcml2YXRlS2V5LFxuICAgIGZvcm1hdDogJ2FybW9yZWQnLFxuICAgIGRldGFjaGVkOiB0cnVlLFxuICAgIGNvbmZpZzoge1xuICAgICAgcmVqZWN0Q3VydmVzOiBuZXcgU2V0KCksXG4gICAgICBzaG93VmVyc2lvbjogZmFsc2UsXG4gICAgICBzaG93Q29tbWVudDogZmFsc2UsXG4gICAgfSxcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgbWVzc2FnZTogZGF0YS50b1N0cmluZygnYmFzZTY0JyksXG4gICAgc2lnbmF0dXJlOiBzaWduYXR1cmUsXG4gIH07XG59XG5cbi8qKlxuICogRW5jcnlwdHMgYW5kIGRldGFjaCBzaWducyBhIGJpbmFyeVxuICogQHBhcmFtIGRhdGEgYmluYXJ5IHRvIGVuY3J5cHQgYW5kIHNpZ25cbiAqIEBwYXJhbSBwdWJsaWNBcm1vciBwdWJsaWMga2V5IHRvIGVuY3J5cHQgd2l0aFxuICogQHBhcmFtIHByaXZhdGVBcm1vciBwcml2YXRlIGtleSB0byBzaWduIHdpdGhcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuY3J5cHRBbmREZXRhY2hTaWduRGF0YShcbiAgZGF0YTogQnVmZmVyLFxuICBwdWJsaWNBcm1vcjogc3RyaW5nLFxuICBwcml2YXRlQXJtb3I6IHN0cmluZ1xuKTogUHJvbWlzZTxBdXRoRW5jTWVzc2FnZT4ge1xuICBjb25zdCBtZXNzYWdlID0gYXdhaXQgcGdwLmNyZWF0ZU1lc3NhZ2UoeyBiaW5hcnk6IGRhdGEgfSk7XG4gIGNvbnN0IHB1YmxpY0tleSA9IGF3YWl0IHBncC5yZWFkS2V5KHsgYXJtb3JlZEtleTogcHVibGljQXJtb3IgfSk7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCBwZ3AucmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiBwcml2YXRlQXJtb3IgfSk7XG4gIGNvbnN0IGVuY3J5cHRlZE1lc3NhZ2UgPSBhd2FpdCBwZ3AuZW5jcnlwdCh7XG4gICAgbWVzc2FnZSxcbiAgICBlbmNyeXB0aW9uS2V5czogcHVibGljS2V5LFxuICAgIGZvcm1hdDogJ2FybW9yZWQnLFxuICAgIGNvbmZpZzoge1xuICAgICAgcmVqZWN0Q3VydmVzOiBuZXcgU2V0KCksXG4gICAgICBzaG93VmVyc2lvbjogZmFsc2UsXG4gICAgICBzaG93Q29tbWVudDogZmFsc2UsXG4gICAgfSxcbiAgfSk7XG4gIGNvbnN0IHNpZ25hdHVyZSA9IGF3YWl0IHBncC5zaWduKHtcbiAgICBtZXNzYWdlLFxuICAgIHNpZ25pbmdLZXlzOiBwcml2YXRlS2V5LFxuICAgIGZvcm1hdDogJ2FybW9yZWQnLFxuICAgIGRldGFjaGVkOiB0cnVlLFxuICAgIGNvbmZpZzoge1xuICAgICAgcmVqZWN0Q3VydmVzOiBuZXcgU2V0KCksXG4gICAgICBzaG93VmVyc2lvbjogZmFsc2UsXG4gICAgICBzaG93Q29tbWVudDogZmFsc2UsXG4gICAgfSxcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgZW5jcnlwdGVkTWVzc2FnZTogZW5jcnlwdGVkTWVzc2FnZSxcbiAgICBzaWduYXR1cmU6IHNpZ25hdHVyZSxcbiAgfTtcbn1cblxuLyoqXG4gKiBEZWNyeXB0cyBhbmQgdmVyaWZpZXMgc2lnbmF0dXJlIG9uIGEgYmluYXJ5XG4gKiBAcGFyYW0gZW5jcnlwdGVkQW5kU2lnbmVkTWVzc2FnZSBtZXNzYWdlIHRvIGRlY3J5cHQgYW5kIHZlcmlmeVxuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdG8gdmVyaWZ5IHNpZ25hdHVyZSB3aXRoXG4gKiBAcGFyYW0gcHJpdmF0ZUFybW9yIHByaXZhdGUga2V5IHRvIGRlY3J5cHQgd2l0aFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVjcnlwdEFuZFZlcmlmeVNpZ25lZERhdGEoXG4gIGVuY3J5cHRlZEFuZFNpZ25lZE1lc3NhZ2U6IEF1dGhFbmNNZXNzYWdlLFxuICBwdWJsaWNBcm1vcjogc3RyaW5nLFxuICBwcml2YXRlQXJtb3I6IHN0cmluZ1xuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcHVibGljS2V5ID0gYXdhaXQgcGdwLnJlYWRLZXkoeyBhcm1vcmVkS2V5OiBwdWJsaWNBcm1vciB9KTtcbiAgY29uc3QgcHJpdmF0ZUtleSA9IGF3YWl0IHBncC5yZWFkUHJpdmF0ZUtleSh7IGFybW9yZWRLZXk6IHByaXZhdGVBcm1vciB9KTtcbiAgY29uc3QgZGVjcnlwdGVkTWVzc2FnZSA9IGF3YWl0IHBncC5kZWNyeXB0KHtcbiAgICBtZXNzYWdlOiBhd2FpdCBwZ3AucmVhZE1lc3NhZ2UoeyBhcm1vcmVkTWVzc2FnZTogZW5jcnlwdGVkQW5kU2lnbmVkTWVzc2FnZS5lbmNyeXB0ZWRNZXNzYWdlIH0pLFxuICAgIGRlY3J5cHRpb25LZXlzOiBbcHJpdmF0ZUtleV0sXG4gICAgY29uZmlnOiB7XG4gICAgICByZWplY3RDdXJ2ZXM6IG5ldyBTZXQoKSxcbiAgICAgIHNob3dWZXJzaW9uOiBmYWxzZSxcbiAgICAgIHNob3dDb21tZW50OiBmYWxzZSxcbiAgICB9LFxuICAgIGZvcm1hdDogJ2JpbmFyeScsXG4gIH0pO1xuICBjb25zdCB2ZXJpZmljYXRpb25SZXN1bHQgPSBhd2FpdCBwZ3AudmVyaWZ5KHtcbiAgICBtZXNzYWdlOiBhd2FpdCBwZ3AuY3JlYXRlTWVzc2FnZSh7IGJpbmFyeTogZGVjcnlwdGVkTWVzc2FnZS5kYXRhIH0pLFxuICAgIHNpZ25hdHVyZTogYXdhaXQgcGdwLnJlYWRTaWduYXR1cmUoeyBhcm1vcmVkU2lnbmF0dXJlOiBlbmNyeXB0ZWRBbmRTaWduZWRNZXNzYWdlLnNpZ25hdHVyZSB9KSxcbiAgICB2ZXJpZmljYXRpb25LZXlzOiBwdWJsaWNLZXksXG4gIH0pO1xuICBhd2FpdCB2ZXJpZmljYXRpb25SZXN1bHQuc2lnbmF0dXJlc1swXS52ZXJpZmllZDtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGRlY3J5cHRlZE1lc3NhZ2UuZGF0YSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xufVxuXG4vKipcbiAqIFZlcmlmaWVzIHNpZ25hdHVyZSBvbiBhIGJpbmFyeSAobWVzc2FnZSBwYXNzZWQgc2hvdWxkIGJlIGVuY29kZWQgaW4gYmFzZTY0KS5cbiAqIEBwYXJhbSBzaWduZWRNZXNzYWdlIG1lc3NhZ2UgdG8gdmVyaWZ5XG4gKiBAcGFyYW0gcHVibGljQXJtb3IgcHVibGljIGtleSB0byB2ZXJpZnkgc2lnbmF0dXJlIHdpdGhcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZlcmlmeVNpZ25lZERhdGEoc2lnbmVkTWVzc2FnZTogQXV0aE1lc3NhZ2UsIHB1YmxpY0FybW9yOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgY29uc3QgcHVibGljS2V5ID0gYXdhaXQgcGdwLnJlYWRLZXkoeyBhcm1vcmVkS2V5OiBwdWJsaWNBcm1vciB9KTtcbiAgY29uc3QgdmVyaWZpY2F0aW9uUmVzdWx0ID0gYXdhaXQgcGdwLnZlcmlmeSh7XG4gICAgbWVzc2FnZTogYXdhaXQgcGdwLmNyZWF0ZU1lc3NhZ2UoeyBiaW5hcnk6IEJ1ZmZlci5mcm9tKHNpZ25lZE1lc3NhZ2UubWVzc2FnZSwgJ2Jhc2U2NCcpIH0pLFxuICAgIHNpZ25hdHVyZTogYXdhaXQgcGdwLnJlYWRTaWduYXR1cmUoeyBhcm1vcmVkU2lnbmF0dXJlOiBzaWduZWRNZXNzYWdlLnNpZ25hdHVyZSB9KSxcbiAgICB2ZXJpZmljYXRpb25LZXlzOiBwdWJsaWNLZXksXG4gIH0pO1xuICB0cnkge1xuICAgIGF3YWl0IHZlcmlmaWNhdGlvblJlc3VsdC5zaWduYXR1cmVzWzBdLnZlcmlmaWVkO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogRGVjcnlwdHMgYW5kIHZlcmlmaWVzIHAycCBtZXNzYWdlcyArIHZlcmlmaWVzIGJyb2FkY2FzdCBtZXNzYWdlc1xuICogQHBhcmFtIG1lc3NhZ2VzIG1lc3NhZ2UgdG8gZGVjcnlwdCBhbmQgdmVyaWZ5XG4gKiBAcGFyYW0gcHViVmVyaWZpY2F0aW9uR3BnS2V5cyBwdWJsaWMga2V5cyB0byB2ZXJpZnkgc2lnbmF0dXJlcyB3aXRoXG4gKiBAcGFyYW0gcHJ2RGVjcnlwdGlvbkdwZ0tleXMgcHJpdmF0ZSBrZXlzIHRvIGRlY3J5cHQgd2l0aFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVjcnlwdEFuZFZlcmlmeUluY29taW5nTWVzc2FnZXMoXG4gIG1lc3NhZ2VzOiBBdXRoRW5jTWVzc2FnZXMsXG4gIHB1YlZlcmlmaWNhdGlvbkdwZ0tleXM6IFBhcnR5R3BnS2V5W10sXG4gIHBydkRlY3J5cHRpb25HcGdLZXlzOiBQYXJ0eUdwZ0tleVtdXG4pOiBQcm9taXNlPFNlcmlhbGl6ZWRNZXNzYWdlcz4ge1xuICByZXR1cm4ge1xuICAgIHAycE1lc3NhZ2VzOiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1lc3NhZ2VzLnAycE1lc3NhZ2VzLm1hcChhc3luYyAobSkgPT4ge1xuICAgICAgICBjb25zdCBwdWJHcGdLZXkgPSBwdWJWZXJpZmljYXRpb25HcGdLZXlzLmZpbmQoKGspID0+IGsucGFydHlJZCA9PT0gbS5mcm9tKTtcbiAgICAgICAgY29uc3QgcHJ2R3BnS2V5ID0gcHJ2RGVjcnlwdGlvbkdwZ0tleXMuZmluZCgoaykgPT4gay5wYXJ0eUlkID09PSBtLnRvKTtcbiAgICAgICAgaWYgKCFwdWJHcGdLZXkpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgTm8gcHVibGljIGtleSBwcm92aWRlZCBmb3Igc2VuZGVyIHdpdGggSUQ6ICR7bS5mcm9tfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcHJ2R3BnS2V5KSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoYE5vIHByaXZhdGUga2V5IHByb3ZpZGVkIGZvciByZWNlcGllbnQgd2l0aCBJRDogJHttLnRvfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdG86IG0udG8sXG4gICAgICAgICAgZnJvbTogbS5mcm9tLFxuICAgICAgICAgIHBheWxvYWQ6IGF3YWl0IGRlY3J5cHRBbmRWZXJpZnlTaWduZWREYXRhKG0ucGF5bG9hZCwgcHViR3BnS2V5LmdwZ0tleSwgcHJ2R3BnS2V5LmdwZ0tleSksXG4gICAgICAgICAgY29tbWl0bWVudDogbS5jb21taXRtZW50LFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICApLFxuICAgIGJyb2FkY2FzdE1lc3NhZ2VzOiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1lc3NhZ2VzLmJyb2FkY2FzdE1lc3NhZ2VzLm1hcChhc3luYyAobSkgPT4ge1xuICAgICAgICBjb25zdCBwdWJHcGdLZXkgPSBwdWJWZXJpZmljYXRpb25HcGdLZXlzLmZpbmQoKGspID0+IGsucGFydHlJZCA9PT0gbS5mcm9tKTtcbiAgICAgICAgaWYgKCFwdWJHcGdLZXkpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgTm8gcHVibGljIGtleSBwcm92aWRlZCBmb3Igc2VuZGVyIHdpdGggSUQ6ICR7bS5mcm9tfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghKGF3YWl0IHZlcmlmeVNpZ25lZERhdGEobS5wYXlsb2FkLCBwdWJHcGdLZXkuZ3BnS2V5KSkpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgRmFpbGVkIHRvIGF1dGhlbnRpY2F0ZSBicm9hZGNhc3QgbWVzc2FnZSBmcm9tIHBhcnR5OiAke20uZnJvbX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGZyb206IG0uZnJvbSxcbiAgICAgICAgICBwYXlsb2FkOiBtLnBheWxvYWQubWVzc2FnZSxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBFbmNyeXB0cyBhbmQgc2lnbnMgcDJwIG1lc3NhZ2VzICsgc2lnbnMgYnJvYWRjYXN0IG1lc3NhZ2VzXG4gKiBAcGFyYW0gbWVzc2FnZXMgbWVzc2FnZXMgdG8gZW5jcnlwdCBhbmQgc2lnblxuICogQHBhcmFtIHB1YkVuY3J5cHRpb25HcGdLZXkgcHVibGljIGtleXMgdG8gZW5jcnlwdCBkYXRhIHRvXG4gKiBAcGFyYW0gcHJ2QXV0aGVudGljYXRpb25HcGdLZXkgcHJpdmF0ZSBrZXlzIHRvIHNpZ24gd2l0aFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5jcnlwdEFuZEF1dGhPdXRnb2luZ01lc3NhZ2VzKFxuICBtZXNzYWdlczogU2VyaWFsaXplZE1lc3NhZ2VzLFxuICBwdWJFbmNyeXB0aW9uR3BnS2V5czogUGFydHlHcGdLZXlbXSxcbiAgcHJ2QXV0aGVudGljYXRpb25HcGdLZXlzOiBQYXJ0eUdwZ0tleVtdXG4pOiBQcm9taXNlPEF1dGhFbmNNZXNzYWdlcz4ge1xuICByZXR1cm4ge1xuICAgIHAycE1lc3NhZ2VzOiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1lc3NhZ2VzLnAycE1lc3NhZ2VzLm1hcChhc3luYyAobSkgPT4ge1xuICAgICAgICBjb25zdCBwdWJHcGdLZXkgPSBwdWJFbmNyeXB0aW9uR3BnS2V5cy5maW5kKChrKSA9PiBrLnBhcnR5SWQgPT09IG0udG8pO1xuICAgICAgICBjb25zdCBwcnZHcGdLZXkgPSBwcnZBdXRoZW50aWNhdGlvbkdwZ0tleXMuZmluZCgoaykgPT4gay5wYXJ0eUlkID09PSBtLmZyb20pO1xuICAgICAgICBpZiAoIXB1YkdwZ0tleSkge1xuICAgICAgICAgIHRocm93IEVycm9yKGBObyBwdWJsaWMga2V5IHByb3ZpZGVkIGZvciByZWNpcGllbnQgd2l0aCBJRDogJHttLnRvfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcHJ2R3BnS2V5KSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoYE5vIHByaXZhdGUga2V5IHByb3ZpZGVkIGZvciBzZW5kZXIgd2l0aCBJRDogJHttLmZyb219YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0bzogbS50byxcbiAgICAgICAgICBmcm9tOiBtLmZyb20sXG4gICAgICAgICAgcGF5bG9hZDogYXdhaXQgZW5jcnlwdEFuZERldGFjaFNpZ25EYXRhKEJ1ZmZlci5mcm9tKG0ucGF5bG9hZCwgJ2Jhc2U2NCcpLCBwdWJHcGdLZXkuZ3BnS2V5LCBwcnZHcGdLZXkuZ3BnS2V5KSxcbiAgICAgICAgICBjb21taXRtZW50OiBtLmNvbW1pdG1lbnQsXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICksXG4gICAgYnJvYWRjYXN0TWVzc2FnZXM6IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbWVzc2FnZXMuYnJvYWRjYXN0TWVzc2FnZXMubWFwKGFzeW5jIChtKSA9PiB7XG4gICAgICAgIGNvbnN0IHBydkdwZ0tleSA9IHBydkF1dGhlbnRpY2F0aW9uR3BnS2V5cy5maW5kKChrKSA9PiBrLnBhcnR5SWQgPT09IG0uZnJvbSk7XG4gICAgICAgIGlmICghcHJ2R3BnS2V5KSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoYE5vIHByaXZhdGUga2V5IHByb3ZpZGVkIGZvciBzZW5kZXIgd2l0aCBJRDogJHttLmZyb219YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBmcm9tOiBtLmZyb20sXG4gICAgICAgICAgcGF5bG9hZDogYXdhaXQgZGV0YWNoU2lnbkRhdGEoQnVmZmVyLmZyb20obS5wYXlsb2FkLCAnYmFzZTY0JyksIHBydkdwZ0tleS5ncGdLZXkpLFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICApLFxuICB9O1xufVxuIl19
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXNMYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90c3MvZWNkc2EtZGtscy9jb21tc0xheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNkNBQStCO0FBRS9COzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsY0FBYyxDQUFDLElBQVksRUFBRSxZQUFvQjtJQUNyRSxNQUFNLE9BQU8sR0FBRyxNQUFNLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxRCxNQUFNLFVBQVUsR0FBRyxNQUFNLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUMxRSxNQUFNLFNBQVMsR0FBRyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDL0IsT0FBTztRQUNQLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsTUFBTSxFQUFFO1lBQ04sWUFBWSxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFdBQVcsRUFBRSxLQUFLO1NBQ25CO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsT0FBTztRQUNMLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUNoQyxTQUFTLEVBQUUsU0FBUztLQUNyQixDQUFDO0FBQ0osQ0FBQztBQWxCRCx3Q0FrQkM7QUFFRDs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSx3QkFBd0IsQ0FDNUMsSUFBWSxFQUNaLFdBQW1CLEVBQ25CLFlBQW9CO0lBRXBCLE1BQU0sT0FBTyxHQUFHLE1BQU0sR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFELE1BQU0sU0FBUyxHQUFHLE1B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UUFBUSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekMsTUFBTSxTQUFTLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3RSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNkLE1BQU0sS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUN0RTtZQUNELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dCQUNaLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQzthQUNsRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQ0g7S0FDRixDQUFDO0FBQ0osQ0FBQztBQXJDRCx3RUFxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJpYWxpemVkTWVzc2FnZXMsIEF1dGhFbmNNZXNzYWdlLCBBdXRoRW5jTWVzc2FnZXMsIFBhcnR5R3BnS2V5LCBBdXRoTWVzc2FnZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0ICogYXMgcGdwIGZyb20gJ29wZW5wZ3AnO1xuXG4vKipcbiAqIERldGFjaCBzaWducyBhIGJpbmFyeSBhbmQgZW5jb2RlcyBpdCBpbiBiYXNlNjRcbiAqIEBwYXJhbSBkYXRhIGJpbmFyeSB0byBlbmNvZGUgaW4gYmFzZTY0IGFuZCBzaWduXG4gKiBAcGFyYW0gcHJpdmF0ZUFybW9yIHByaXZhdGUga2V5IHRvIHNpZ24gd2l0aFxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZGV0YWNoU2lnbkRhdGEoZGF0YTogQnVmZmVyLCBwcml2YXRlQXJtb3I6IHN0cmluZyk6IFByb21pc2U8QXV0aE1lc3NhZ2U+IHtcbiAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHBncC5jcmVhdGVNZXNzYWdlKHsgYmluYXJ5OiBkYXRhIH0pO1xuICBjb25zdCBwcml2YXRlS2V5ID0gYXdhaXQgcGdwLnJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuICBjb25zdCBzaWduYXR1cmUgPSBhd2FpdCBwZ3Auc2lnbih7XG4gICAgbWVzc2FnZSxcbiAgICBzaWduaW5nS2V5czogcHJpdmF0ZUtleSxcbiAgICBmb3JtYXQ6ICdhcm1vcmVkJyxcbiAgICBkZXRhY2hlZDogdHJ1ZSxcbiAgICBjb25maWc6IHtcbiAgICAgIHJlamVjdEN1cnZlczogbmV3IFNldCgpLFxuICAgICAgc2hvd1ZlcnNpb246IGZhbHNlLFxuICAgICAgc2hvd0NvbW1lbnQ6IGZhbHNlLFxuICAgIH0sXG4gIH0pO1xuICByZXR1cm4ge1xuICAgIG1lc3NhZ2U6IGRhdGEudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgIHNpZ25hdHVyZTogc2lnbmF0dXJlLFxuICB9O1xufVxuXG4vKipcbiAqIEVuY3J5cHRzIGFuZCBkZXRhY2ggc2lnbnMgYSBiaW5hcnlcbiAqIEBwYXJhbSBkYXRhIGJpbmFyeSB0byBlbmNyeXB0IGFuZCBzaWduXG4gKiBAcGFyYW0gcHVibGljQXJtb3IgcHVibGljIGtleSB0byBlbmNyeXB0IHdpdGhcbiAqIEBwYXJhbSBwcml2YXRlQXJtb3IgcHJpdmF0ZSBrZXkgdG8gc2lnbiB3aXRoXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbmNyeXB0QW5kRGV0YWNoU2lnbkRhdGEoXG4gIGRhdGE6IEJ1ZmZlcixcbiAgcHVibGljQXJtb3I6IHN0cmluZyxcbiAgcHJpdmF0ZUFybW9yOiBzdHJpbmdcbik6IFByb21pc2U8QXV0aEVuY01lc3NhZ2U+IHtcbiAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHBncC5jcmVhdGVNZXNzYWdlKHsgYmluYXJ5OiBkYXRhIH0pO1xuICBjb25zdCBwdWJsaWNLZXkgPSBhd2FpdCBwZ3AucmVhZEtleSh7IGFybW9yZWRLZXk6IHB1YmxpY0FybW9yIH0pO1xuICBjb25zdCBwcml2YXRlS2V5ID0gYXdhaXQgcGdwLnJlYWRQcml2YXRlS2V5KHsgYXJtb3JlZEtleTogcHJpdmF0ZUFybW9yIH0pO1xuICBjb25zdCBlbmNyeXB0ZWRNZXNzYWdlID0gYXdhaXQgcGdwLmVuY3J5cHQoe1xuICAgIG1lc3NhZ2UsXG4gICAgZW5jcnlwdGlvbktleXM6IHB1YmxpY0tleSxcbiAgICBmb3JtYXQ6ICdhcm1vcmVkJyxcbiAgICBjb25maWc6IHtcbiAgICAgIHJlamVjdEN1cnZlczogbmV3IFNldCgpLFxuICAgICAgc2hvd1ZlcnNpb246IGZhbHNlLFxuICAgICAgc2hvd0NvbW1lbnQ6IGZhbHNlLFxuICAgIH0sXG4gIH0pO1xuICBjb25zdCBzaWduYXR1cmUgPSBhd2FpdCBwZ3Auc2lnbih7XG4gICAgbWVzc2FnZSxcbiAgICBzaWduaW5nS2V5czogcHJpdmF0ZUtleSxcbiAgICBmb3JtYXQ6ICdhcm1vcmVkJyxcbiAgICBkZXRhY2hlZDogdHJ1ZSxcbiAgICBjb25maWc6IHtcbiAgICAgIHJlamVjdEN1cnZlczogbmV3IFNldCgpLFxuICAgICAgc2hvd1ZlcnNpb246IGZhbHNlLFxuICAgICAgc2hvd0NvbW1lbnQ6IGZhbHNlLFxuICAgIH0sXG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGVuY3J5cHRlZE1lc3NhZ2U6IGVuY3J5cHRlZE1lc3NhZ2UsXG4gICAgc2lnbmF0dXJlOiBzaWduYXR1cmUsXG4gIH07XG59XG5cbi8qKlxuICogRGVjcnlwdHMgYW5kIHZlcmlmaWVzIHNpZ25hdHVyZSBvbiBhIGJpbmFyeVxuICogQHBhcmFtIGVuY3J5cHRlZEFuZFNpZ25lZE1lc3NhZ2UgbWVzc2FnZSB0byBkZWNyeXB0IGFuZCB2ZXJpZnlcbiAqIEBwYXJhbSBwdWJsaWNBcm1vciBwdWJsaWMga2V5IHRvIHZlcmlmeSBzaWduYXR1cmUgd2l0aFxuICogQHBhcmFtIHByaXZhdGVBcm1vciBwcml2YXRlIGtleSB0byBkZWNyeXB0IHdpdGhcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlY3J5cHRBbmRWZXJpZnlTaWduZWREYXRhKFxuICBlbmNyeXB0ZWRBbmRTaWduZWRNZXNzYWdlOiBBdXRoRW5jTWVzc2FnZSxcbiAgcHVibGljQXJtb3I6IHN0cmluZyxcbiAgcHJpdmF0ZUFybW9yOiBzdHJpbmdcbik6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHB1YmxpY0tleSA9IGF3YWl0IHBncC5yZWFkS2V5KHsgYXJtb3JlZEtleTogcHVibGljQXJtb3IgfSk7XG4gIGNvbnN0IHByaXZhdGVLZXkgPSBhd2FpdCBwZ3AucmVhZFByaXZhdGVLZXkoeyBhcm1vcmVkS2V5OiBwcml2YXRlQXJtb3IgfSk7XG4gIGNvbnN0IGRlY3J5cHRlZE1lc3NhZ2UgPSBhd2FpdCBwZ3AuZGVjcnlwdCh7XG4gICAgbWVzc2FnZTogYXdhaXQgcGdwLnJlYWRNZXNzYWdlKHsgYXJtb3JlZE1lc3NhZ2U6IGVuY3J5cHRlZEFuZFNpZ25lZE1lc3NhZ2UuZW5jcnlwdGVkTWVzc2FnZSB9KSxcbiAgICBkZWNyeXB0aW9uS2V5czogW3ByaXZhdGVLZXldLFxuICAgIGNvbmZpZzoge1xuICAgICAgcmVqZWN0Q3VydmVzOiBuZXcgU2V0KCksXG4gICAgICBzaG93VmVyc2lvbjogZmFsc2UsXG4gICAgICBzaG93Q29tbWVudDogZmFsc2UsXG4gICAgfSxcbiAgICBmb3JtYXQ6ICdiaW5hcnknLFxuICB9KTtcbiAgY29uc3QgdmVyaWZpY2F0aW9uUmVzdWx0ID0gYXdhaXQgcGdwLnZlcmlmeSh7XG4gICAgbWVzc2FnZTogYXdhaXQgcGdwLmNyZWF0ZU1lc3NhZ2UoeyBiaW5hcnk6IGRlY3J5cHRlZE1lc3NhZ2UuZGF0YSB9KSxcbiAgICBzaWduYXR1cmU6IGF3YWl0IHBncC5yZWFkU2lnbmF0dXJlKHsgYXJtb3JlZFNpZ25hdHVyZTogZW5jcnlwdGVkQW5kU2lnbmVkTWVzc2FnZS5zaWduYXR1cmUgfSksXG4gICAgdmVyaWZpY2F0aW9uS2V5czogcHVibGljS2V5LFxuICB9KTtcbiAgYXdhaXQgdmVyaWZpY2F0aW9uUmVzdWx0LnNpZ25hdHVyZXNbMF0udmVyaWZpZWQ7XG4gIHJldHVybiBCdWZmZXIuZnJvbShkZWNyeXB0ZWRNZXNzYWdlLmRhdGEpLnRvU3RyaW5nKCdiYXNlNjQnKTtcbn1cblxuLyoqXG4gKiBWZXJpZmllcyBzaWduYXR1cmUgb24gYSBiaW5hcnkgKG1lc3NhZ2UgcGFzc2VkIHNob3VsZCBiZSBlbmNvZGVkIGluIGJhc2U2NCkuXG4gKiBAcGFyYW0gc2lnbmVkTWVzc2FnZSBtZXNzYWdlIHRvIHZlcmlmeVxuICogQHBhcmFtIHB1YmxpY0FybW9yIHB1YmxpYyBrZXkgdG8gdmVyaWZ5IHNpZ25hdHVyZSB3aXRoXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB2ZXJpZnlTaWduZWREYXRhKHNpZ25lZE1lc3NhZ2U6IEF1dGhNZXNzYWdlLCBwdWJsaWNBcm1vcjogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHB1YmxpY0tleSA9IGF3YWl0IHBncC5yZWFkS2V5KHsgYXJtb3JlZEtleTogcHVibGljQXJtb3IgfSk7XG4gIGNvbnN0IHZlcmlmaWNhdGlvblJlc3VsdCA9IGF3YWl0IHBncC52ZXJpZnkoe1xuICAgIG1lc3NhZ2U6IGF3YWl0IHBncC5jcmVhdGVNZXNzYWdlKHsgYmluYXJ5OiBCdWZmZXIuZnJvbShzaWduZWRNZXNzYWdlLm1lc3NhZ2UsICdiYXNlNjQnKSB9KSxcbiAgICBzaWduYXR1cmU6IGF3YWl0IHBncC5yZWFkU2lnbmF0dXJlKHsgYXJtb3JlZFNpZ25hdHVyZTogc2lnbmVkTWVzc2FnZS5zaWduYXR1cmUgfSksXG4gICAgdmVyaWZpY2F0aW9uS2V5czogcHVibGljS2V5LFxuICB9KTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB2ZXJpZmljYXRpb25SZXN1bHQuc2lnbmF0dXJlc1swXS52ZXJpZmllZDtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIERlY3J5cHRzIGFuZCB2ZXJpZmllcyBwMnAgbWVzc2FnZXMgKyB2ZXJpZmllcyBicm9hZGNhc3QgbWVzc2FnZXNcbiAqIEBwYXJhbSBtZXNzYWdlcyBtZXNzYWdlIHRvIGRlY3J5cHQgYW5kIHZlcmlmeVxuICogQHBhcmFtIHB1YlZlcmlmaWNhdGlvbkdwZ0tleXMgcHVibGljIGtleXMgdG8gdmVyaWZ5IHNpZ25hdHVyZXMgd2l0aFxuICogQHBhcmFtIHBydkRlY3J5cHRpb25HcGdLZXlzIHByaXZhdGUga2V5cyB0byBkZWNyeXB0IHdpdGhcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRlY3J5cHRBbmRWZXJpZnlJbmNvbWluZ01lc3NhZ2VzKFxuICBtZXNzYWdlczogQXV0aEVuY01lc3NhZ2VzLFxuICBwdWJWZXJpZmljYXRpb25HcGdLZXlzOiBQYXJ0eUdwZ0tleVtdLFxuICBwcnZEZWNyeXB0aW9uR3BnS2V5czogUGFydHlHcGdLZXlbXVxuKTogUHJvbWlzZTxTZXJpYWxpemVkTWVzc2FnZXM+IHtcbiAgcmV0dXJuIHtcbiAgICBwMnBNZXNzYWdlczogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtZXNzYWdlcy5wMnBNZXNzYWdlcy5tYXAoYXN5bmMgKG0pID0+IHtcbiAgICAgICAgY29uc3QgcHViR3BnS2V5ID0gcHViVmVyaWZpY2F0aW9uR3BnS2V5cy5maW5kKChrKSA9PiBrLnBhcnR5SWQgPT09IG0uZnJvbSk7XG4gICAgICAgIGNvbnN0IHBydkdwZ0tleSA9IHBydkRlY3J5cHRpb25HcGdLZXlzLmZpbmQoKGspID0+IGsucGFydHlJZCA9PT0gbS50byk7XG4gICAgICAgIGlmICghcHViR3BnS2V5KSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoYE5vIHB1YmxpYyBrZXkgcHJvdmlkZWQgZm9yIHNlbmRlciB3aXRoIElEOiAke20uZnJvbX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBydkdwZ0tleSkge1xuICAgICAgICAgIHRocm93IEVycm9yKGBObyBwcml2YXRlIGtleSBwcm92aWRlZCBmb3IgcmVjZXBpZW50IHdpdGggSUQ6ICR7bS50b31gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHRvOiBtLnRvLFxuICAgICAgICAgIGZyb206IG0uZnJvbSxcbiAgICAgICAgICBwYXlsb2FkOiBhd2FpdCBkZWNyeXB0QW5kVmVyaWZ5U2lnbmVkRGF0YShtLnBheWxvYWQsIHB1YkdwZ0tleS5ncGdLZXksIHBydkdwZ0tleS5ncGdLZXkpLFxuICAgICAgICAgIGNvbW1pdG1lbnQ6IG0uY29tbWl0bWVudCxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKSxcbiAgICBicm9hZGNhc3RNZXNzYWdlczogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtZXNzYWdlcy5icm9hZGNhc3RNZXNzYWdlcy5tYXAoYXN5bmMgKG0pID0+IHtcbiAgICAgICAgY29uc3QgcHViR3BnS2V5ID0gcHViVmVyaWZpY2F0aW9uR3BnS2V5cy5maW5kKChrKSA9PiBrLnBhcnR5SWQgPT09IG0uZnJvbSk7XG4gICAgICAgIGlmICghcHViR3BnS2V5KSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoYE5vIHB1YmxpYyBrZXkgcHJvdmlkZWQgZm9yIHNlbmRlciB3aXRoIElEOiAke20uZnJvbX1gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIShhd2FpdCB2ZXJpZnlTaWduZWREYXRhKG0ucGF5bG9hZCwgcHViR3BnS2V5LmdwZ0tleSkpKSB7XG4gICAgICAgICAgdGhyb3cgRXJyb3IoYEZhaWxlZCB0byBhdXRoZW50aWNhdGUgYnJvYWRjYXN0IG1lc3NhZ2UgZnJvbSBwYXJ0eTogJHttLmZyb219YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBmcm9tOiBtLmZyb20sXG4gICAgICAgICAgcGF5bG9hZDogbS5wYXlsb2FkLm1lc3NhZ2UsXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICksXG4gIH07XG59XG5cbi8qKlxuICogRW5jcnlwdHMgYW5kIHNpZ25zIHAycCBtZXNzYWdlcyArIHNpZ25zIGJyb2FkY2FzdCBtZXNzYWdlc1xuICogQHBhcmFtIG1lc3NhZ2VzIG1lc3NhZ2VzIHRvIGVuY3J5cHQgYW5kIHNpZ25cbiAqIEBwYXJhbSBwdWJFbmNyeXB0aW9uR3BnS2V5IHB1YmxpYyBrZXlzIHRvIGVuY3J5cHQgZGF0YSB0b1xuICogQHBhcmFtIHBydkF1dGhlbnRpY2F0aW9uR3BnS2V5IHByaXZhdGUga2V5cyB0byBzaWduIHdpdGhcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuY3J5cHRBbmRBdXRoT3V0Z29pbmdNZXNzYWdlcyhcbiAgbWVzc2FnZXM6IFNlcmlhbGl6ZWRNZXNzYWdlcyxcbiAgcHViRW5jcnlwdGlvbkdwZ0tleXM6IFBhcnR5R3BnS2V5W10sXG4gIHBydkF1dGhlbnRpY2F0aW9uR3BnS2V5czogUGFydHlHcGdLZXlbXVxuKTogUHJvbWlzZTxBdXRoRW5jTWVzc2FnZXM+IHtcbiAgcmV0dXJuIHtcbiAgICBwMnBNZXNzYWdlczogYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtZXNzYWdlcy5wMnBNZXNzYWdlcy5tYXAoYXN5bmMgKG0pID0+IHtcbiAgICAgICAgY29uc3QgcHViR3BnS2V5ID0gcHViRW5jcnlwdGlvbkdwZ0tleXMuZmluZCgoaykgPT4gay5wYXJ0eUlkID09PSBtLnRvKTtcbiAgICAgICAgY29uc3QgcHJ2R3BnS2V5ID0gcHJ2QXV0aGVudGljYXRpb25HcGdLZXlzLmZpbmQoKGspID0+IGsucGFydHlJZCA9PT0gbS5mcm9tKTtcbiAgICAgICAgaWYgKCFwdWJHcGdLZXkpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgTm8gcHVibGljIGtleSBwcm92aWRlZCBmb3IgcmVjaXBpZW50IHdpdGggSUQ6ICR7bS50b31gKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBydkdwZ0tleSkge1xuICAgICAgICAgIHRocm93IEVycm9yKGBObyBwcml2YXRlIGtleSBwcm92aWRlZCBmb3Igc2VuZGVyIHdpdGggSUQ6ICR7bS5mcm9tfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgdG86IG0udG8sXG4gICAgICAgICAgZnJvbTogbS5mcm9tLFxuICAgICAgICAgIHBheWxvYWQ6IGF3YWl0IGVuY3J5cHRBbmREZXRhY2hTaWduRGF0YShCdWZmZXIuZnJvbShtLnBheWxvYWQsICdiYXNlNjQnKSwgcHViR3BnS2V5LmdwZ0tleSwgcHJ2R3BnS2V5LmdwZ0tleSksXG4gICAgICAgICAgY29tbWl0bWVudDogbS5jb21taXRtZW50LFxuICAgICAgICB9O1xuICAgICAgfSlcbiAgICApLFxuICAgIGJyb2FkY2FzdE1lc3NhZ2VzOiBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIG1lc3NhZ2VzLmJyb2FkY2FzdE1lc3NhZ2VzLm1hcChhc3luYyAobSkgPT4ge1xuICAgICAgICBjb25zdCBwcnZHcGdLZXkgPSBwcnZBdXRoZW50aWNhdGlvbkdwZ0tleXMuZmluZCgoaykgPT4gay5wYXJ0eUlkID09PSBtLmZyb20pO1xuICAgICAgICBpZiAoIXBydkdwZ0tleSkge1xuICAgICAgICAgIHRocm93IEVycm9yKGBObyBwcml2YXRlIGtleSBwcm92aWRlZCBmb3Igc2VuZGVyIHdpdGggSUQ6ICR7bS5mcm9tfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgZnJvbTogbS5mcm9tLFxuICAgICAgICAgIHBheWxvYWQ6IGF3YWl0IGRldGFjaFNpZ25EYXRhKEJ1ZmZlci5mcm9tKG0ucGF5bG9hZCwgJ2Jhc2U2NCcpLCBwcnZHcGdLZXkuZ3BnS2V5KSxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgKSxcbiAgfTtcbn1cbiJdfQ==
@@ -21,7 +21,7 @@ class Dkg {
21
21
  if (!this.dkgSession) {
22
22
  throw Error('Session not intialized');
23
23
  }
24
- const round = cbor_1.decode(this.dkgSession.toBytes()).round;
24
+ const round = (0, cbor_1.decode)(this.dkgSession.toBytes()).round;
25
25
  switch (round) {
26
26
  case 'WaitMsg1':
27
27
  this.dkgState = types_1.DkgState.Round1;
@@ -150,4 +150,4 @@ class Dkg {
150
150
  }
151
151
  }
152
152
  exports.Dkg = Dkg;
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGtnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rzcy9lY2RzYS1ka2xzL2RrZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4RUFBMEY7QUFDMUYsbUNBQXVGO0FBQ3ZGLCtCQUE4QjtBQUU5QixNQUFhLEdBQUc7SUFVZCxZQUFZLENBQVMsRUFBRSxDQUFTLEVBQUUsUUFBZ0I7UUFGeEMsYUFBUSxHQUFhLGdCQUFRLENBQUMsYUFBYSxDQUFDO1FBR3BELElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsaUNBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixNQUFNLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsYUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEQsUUFBUSxLQUFLLEVBQUU7WUFDYixLQUFLLFVBQVU7Z0JBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxnQkFBUSxDQUFDLE1BQU0sQ0FBQztnQkFDaEMsTUFBTTtZQUNSLEtBQUssVUFBVTtnQkFDYixJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFRLENBQUMsTUFBTSxDQUFDO2dCQUNoQyxNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNi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QyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNULE1BQU0sZUFBZSxHQUFHO3dCQUN0QixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87d0JBQ2xCLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTztxQkFDaEIsQ0FBQztvQkFDRixPQUFPLGVBQWUsQ0FBQztnQkFDekIsQ0FBQyxDQUFDO2FBQ0wsQ0FBQztTQUNIO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLDRDQUE0QyxJQUFJLENBQUMsUUFBUSxXQUFXLElBQUksQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7U0FDakc7Z0JBQVM7WUFDUixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLDRDQUE0QztZQUM1QyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssZ0JBQVEsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7YUFDN0I7U0FDRjtRQUNELE9BQU8sNkJBQTZCLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBOUpELGtCQThKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEtleWdlblNlc3Npb24sIEtleXNoYXJlLCBNZXNzYWdlIH0gZnJvbSAnQHNpbGVuY2VsYWJvcmF0b3JpZXMvZGtscy13YXNtLWxsLW5vZGUnO1xuaW1wb3J0IHsgRGVzZXJpYWxpemVkQnJvYWRjYXN0TWVzc2FnZSwgRGVzZXJpYWxpemVkTWVzc2FnZXMsIERrZ1N0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdjYm9yJztcblxuZXhwb3J0IGNsYXNzIERrZyB7XG4gIHByb3RlY3RlZCBka2dTZXNzaW9uOiBLZXlnZW5TZXNzaW9uIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgZGtnU2Vzc2lvbkJ5dGVzOiBVaW50OEFycmF5O1xuICBwcm90ZWN0ZWQgZGtnS2V5U2hhcmU6IEtleXNoYXJlO1xuICBwcm90ZWN0ZWQgbjogbnVtYmVyO1xuICBwcm90ZWN0ZWQgdDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgY2hhaW5Db2RlQ29tbWl0bWVudDogVWludDhBcnJheSB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIHBhcnR5SWR4OiBudW1iZXI7XG4gIHByb3RlY3RlZCBka2dTdGF0ZTogRGtnU3RhdGUgPSBEa2dTdGF0ZS5VbmluaXRpYWxpemVkO1xuXG4gIGNvbnN0cnVjdG9yKG46IG51bWJlciwgdDogbnVtYmVyLCBwYXJ0eUlkeDogbnVtYmVyKSB7XG4gICAgdGhpcy5uID0gbjtcbiAgICB0aGlzLnQgPSB0O1xuICAgIHRoaXMucGFydHlJZHggPSBwYXJ0eUlkeDtcbiAgICB0aGlzLmNoYWluQ29kZUNvbW1pdG1lbnQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIF9yZXN0b3JlU2Vzc2lvbigpIHtcbiAgICBpZiAoIXRoaXMuZGtnU2Vzc2lvbikge1xuICAgICAgdGhpcy5ka2dTZXNzaW9uID0gS2V5Z2VuU2Vzc2lvbi5mcm9tQnl0ZXModGhpcy5ka2dTZXNzaW9uQnl0ZXMpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Rlc2VyaWFsaXplU3RhdGUoKSB7XG4gICAgaWYgKCF0aGlzLmRrZ1Nlc3Npb24pIHtcbiAgICAgIHRocm93IEVycm9yKCdTZXNzaW9uIG5vdCBpbnRpYWxpemVkJyk7XG4gICAgfVxuICAgIGNvbnN0IHJvdW5kID0gZGVjb2RlKHRoaXMuZGtnU2Vzc2lvbi50b0J5dGVzKCkpLnJvdW5kO1xuICAgIHN3aXRjaCAocm91bmQpIHtcbiAgICAgIGNhc2UgJ1dhaXRNc2cxJzpcbiAgICAgICAgdGhpcy5ka2dTdGF0ZSA9IERrZ1N0YXRlLlJvdW5kMTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdXYWl0TXNnMic6XG4gICAgICAgIHRoaXMuZGtnU3RhdGUgPSBEa2dTdGF0ZS5Sb3VuZDI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnV2FpdE1zZzMnOlxuICAgICAgICB0aGlzLmRrZ1N0YXRlID0gRGtnU3RhdGUuUm91bmQzO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1dhaXRNc2c0JzpcbiAgICAgICAgdGhpcy5ka2dTdGF0ZSA9IERrZ1N0YXRlLlJvdW5kNDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbmRlZCc6XG4gICAgICAgIHRoaXMuZGtnU3RhdGUgPSBEa2dTdGF0ZS5Db21wbGV0ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmRrZ1N0YXRlID0gRGtnU3RhdGUuSW52YWxpZFN0YXRlO1xuICAgICAgICB0aHJvdyBgSW52YWxpZCBTdGF0ZTogJHtyb3VuZH1gO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGluaXREa2coKTogUHJvbWlzZTxEZXNlcmlhbGl6ZWRCcm9hZGNhc3RNZXNzYWdlPiB7XG4gICAgaWYgKHRoaXMudCA+IHRoaXMubiB8fCB0aGlzLnBhcnR5SWR4ID49IHRoaXMubikge1xuICAgICAgdGhyb3cgJ0ludmFsaWQgcGFyYW1ldGVycyBmb3IgREtHJztcbiAgICB9XG4gICAgaWYgKHRoaXMuZGtnU3RhdGUgIT0gRGtnU3RhdGUuVW5pbml0aWFsaXplZCkge1xuICAgICAgdGhyb3cgJ0RLRyBzZXNzaW9uIGFscmVhZHkgaW5pdGlhbGl6ZWQnO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnN0IGluaXREa2xzID0gcmVxdWlyZSgnQHNpbGVuY2VsYWJvcmF0b3JpZXMvZGtscy13YXNtLWxsLXdlYicpO1xuICAgICAgYXdhaXQgaW5pdERrbHMoKTtcbiAgICB9XG4gICAgdGhpcy5ka2dTZXNzaW9uID0gbmV3IEtleWdlblNlc3Npb24odGhpcy5uLCB0aGlzLnQsIHRoaXMucGFydHlJZHgpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5ka2dTZXNzaW9uLmNyZWF0ZUZpcnN0TWVzc2FnZSgpLnBheWxvYWQ7XG4gICAgICB0aGlzLl9kZXNlcmlhbGl6ZVN0YXRlKCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXlsb2FkOiBwYXlsb2FkLFxuICAgICAgICBmcm9tOiB0aGlzLnBhcnR5SWR4LFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBgRXJyb3Igd2hpbGUgY3JlYXRpbmcgdGhlIGZpcnN0IG1lc3NhZ2UgZnJvbSBwYXJ0eSAke3RoaXMucGFydHlJZHh9OiAke2V9YDtcbiAgICB9XG4gIH1cblxuICBnZXRLZXlTaGFyZSgpOiBCdWZmZXIge1xuICAgIGNvbnN0IGtleVNoYXJlQnVmZiA9IEJ1ZmZlci5mcm9tKHRoaXMuZGtnS2V5U2hhcmUudG9CeXRlcygpKTtcbiAgICB0aGlzLmRrZ0tleVNoYXJlLmZyZWUoKTtcbiAgICByZXR1cm4ga2V5U2hhcmVCdWZmO1xuICB9XG5cbiAgaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhtZXNzYWdlc0Zvckl0aFJvdW5kOiBEZXNlcmlhbGl6ZWRNZXNzYWdlcyk6IERlc2VyaWFsaXplZE1lc3NhZ2VzIHtcbiAgICBsZXQgbmV4dFJvdW5kTWVzc2FnZXM6IE1lc3NhZ2VbXSA9IFtdO1xuICAgIGxldCBuZXh0Um91bmREZXNlcmlhbGl6ZWRNZXNzYWdlczogRGVzZXJpYWxpemVkTWVzc2FnZXMgPSB7IGJyb2FkY2FzdE1lc3NhZ2VzOiBbXSwgcDJwTWVzc2FnZXM6IFtdIH07XG4gICAgdGhpcy5fcmVzdG9yZVNlc3Npb24oKTtcbiAgICBpZiAoIXRoaXMuZGtnU2Vzc2lvbikge1xuICAgICAgdGhyb3cgRXJyb3IoJ1Nlc3Npb24gbm90IGluaXRpYWxpemVkJyk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5ka2dTdGF0ZSA9PSBEa2dTdGF0ZS5Sb3VuZDMpIHtcbiAgICAgICAgY29uc3QgY29tbWl0bWVudHNVbnNvcnRlZCA9IG1lc3NhZ2VzRm9ySXRoUm91bmQucDJwTWVzc2FnZXNcbiAgICAgICAgICAubWFwKChtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBmcm9tOiBtLmZyb20sIGNvbW1pdG1lbnQ6IG0uY29tbWl0bWVudCB9O1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNvbmNhdChbeyBmcm9tOiB0aGlzLnBhcnR5SWR4LCBjb21taXRtZW50OiB0aGlzLmNoYWluQ29kZUNvbW1pdG1lbnQgfV0pO1xuICAgICAgICBjb25zdCBjb21taXRtZW50c1NvcnRlZCA9IGNvbW1pdG1lbnRzVW5zb3J0ZWRcbiAgICAgICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGEuZnJvbSAtIGIuZnJvbTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5tYXAoKGMpID0+IGMuY29tbWl0bWVudCk7XG4gICAgICAgIG5leHRSb3VuZE1lc3NhZ2VzID0gdGhpcy5ka2dTZXNzaW9uLmhhbmRsZU1lc3NhZ2VzKFxuICAgICAgICAgIG1lc3NhZ2VzRm9ySXRoUm91bmQuYnJvYWRjYXN0TWVzc2FnZXNcbiAgICAgICAgICAgIC5tYXAoKG0pID0+IG5ldyBNZXNzYWdlKG0ucGF5bG9hZCwgbS5mcm9tLCB1bmRlZmluZWQpKVxuICAgICAgICAgICAgLmNvbmNhdChtZXNzYWdlc0Zvckl0aFJvdW5kLnAycE1lc3NhZ2VzLm1hcCgobSkgPT4gbmV3IE1lc3NhZ2UobS5wYXlsb2FkLCBtLmZyb20sIG0udG8pKSksXG4gICAgICAgICAgY29tbWl0bWVudHNTb3J0ZWRcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRSb3VuZE1lc3NhZ2VzID0gdGhpcy5ka2dTZXNzaW9uLmhhbmRsZU1lc3NhZ2VzKFxuICAgICAgICAgIG1lc3NhZ2VzRm9ySXRoUm91bmQuYnJvYWRjYXN0TWVzc2FnZXNcbiAgICAgICAgICAgIC5tYXAoKG0pID0+IG5ldyBNZXNzYWdlKG0ucGF5bG9hZCwgbS5mcm9tLCB1bmRlZmluZWQpKVxuICAgICAgICAgICAgLmNvbmNhdChtZXNzYWdlc0Zvckl0aFJvdW5kLnAycE1lc3NhZ2VzLm1hcCgobSkgPT4gbmV3IE1lc3NhZ2UobS5wYXlsb2FkLCBtLmZyb20sIG0udG8pKSksXG4gICAgICAgICAgdW5kZWZpbmVkXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ka2dTdGF0ZSA9PSBEa2dTdGF0ZS5Sb3VuZDQpIHtcbiAgICAgICAgdGhpcy5ka2dLZXlTaGFyZSA9IHRoaXMuZGtnU2Vzc2lvbi5rZXlzaGFyZSgpO1xuICAgICAgICB0aGlzLmRrZ1N0YXRlID0gRGtnU3RhdGUuQ29tcGxldGU7XG4gICAgICAgIHJldHVybiB7IGJyb2FkY2FzdE1lc3NhZ2VzOiBbXSwgcDJwTWVzc2FnZXM6IFtdIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVcGRhdGUgcm9udWQgZGF0YS5cbiAgICAgICAgdGhpcy5fZGVzZXJpYWxpemVTdGF0ZSgpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuZGtnU3RhdGUgPT0gRGtnU3RhdGUuUm91bmQyKSB7XG4gICAgICAgIHRoaXMuY2hhaW5Db2RlQ29tbWl0bWVudCA9IHRoaXMuZGtnU2Vzc2lvbi5jYWxjdWxhdGVDaGFpbkNvZGVDb21taXRtZW50KCk7XG4gICAgICB9XG4gICAgICBuZXh0Um91bmREZXNlcmlhbGl6ZWRNZXNzYWdlcyA9IHtcbiAgICAgICAgcDJwTWVzc2FnZXM6IG5leHRSb3VuZE1lc3NhZ2VzXG4gICAgICAgICAgLmZpbHRlcigobSkgPT4gbS50b19pZCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKG0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHAycFJldHVybiA9IHtcbiAgICAgICAgICAgICAgcGF5bG9hZDogbS5wYXlsb2FkLFxuICAgICAgICAgICAgICBmcm9tOiBtLmZyb21faWQsXG4gICAgICAgICAgICAgIHRvOiBtLnRvX2lkISxcbiAgICAgICAgICAgICAgY29tbWl0bWVudDogdGhpcy5jaGFpbkNvZGVDb21taXRtZW50LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBwMnBSZXR1cm47XG4gICAgICAgICAgfSksXG4gICAgICAgIGJyb2FkY2FzdE1lc3NhZ2VzOiBuZXh0Um91bmRNZXNzYWdlc1xuICAgICAgICAgIC5maWx0ZXIoKG0pID0+IG0udG9faWQgPT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubWFwKChtKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBicm9hZGNhc3RSZXR1cm4gPSB7XG4gICAgICAgICAgICAgIHBheWxvYWQ6IG0ucGF5bG9hZCxcbiAgICAgICAgICAgICAgZnJvbTogbS5mcm9tX2lkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiBicm9hZGNhc3RSZXR1cm47XG4gICAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGBFcnJvciB3aGlsZSBjcmVhdGluZyBtZXNzYWdlcyBmcm9tIHBhcnR5ICR7dGhpcy5wYXJ0eUlkeH0sIHJvdW5kICR7dGhpcy5ka2dTdGF0ZX06ICR7ZX1gO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBuZXh0Um91bmRNZXNzYWdlcy5mb3JFYWNoKChtKSA9PiBtLmZyZWUoKSk7XG4gICAgICAvLyBTZXNzaW9uIGlzIGZyZWVkIHdoZW4ga2V5c2hhcmUgaXMgY2FsbGVkLlxuICAgICAgaWYgKHRoaXMuZGtnU3RhdGUgIT09IERrZ1N0YXRlLkNvbXBsZXRlKSB7XG4gICAgICAgIHRoaXMuZGtnU2Vzc2lvbkJ5dGVzID0gdGhpcy5ka2dTZXNzaW9uLnRvQnl0ZXMoKTtcbiAgICAgICAgdGhpcy5ka2dTZXNzaW9uID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dFJvdW5kRGVzZXJpYWxpemVkTWVzc2FnZXM7XG4gIH1cbn1cbiJdfQ==
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGtnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rzcy9lY2RzYS1ka2xzL2RrZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4RUFBMEY7QUFDMUYsbUNBQXVGO0FBQ3ZGLCtCQUE4QjtBQUU5QixNQUFhLEdBQUc7SUFVZCxZQUFZLENBQVMsRUFBRSxDQUFTLEVBQUUsUUFBZ0I7UUFGeEMsYUFBUSxHQUFhLGdCQUFRLENBQUMsYUFBYSxDQUFDO1FBR3BELElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ1gsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDWCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsU0FBUyxDQUFDO0lBQ3ZDLENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsaUNBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ2pFO0lBQ0gsQ0FBQztJQUVPLGlCQUFpQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixNQUFNLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1NBQ3ZDO1FBQ0QsTUFBTSxLQUFLLEdBQUcsSUFBQSxhQUFNLEVBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUN0RCxRQUFRLEtBQUssRUFBRTtZQUNiLEtBQUssVUFBVTtnQkFDYixJQUFJLENBQUMsUUFBUSxHQUFHLGdCQUFRLENBQUMsTUFBTSxDQUFDO2dCQUNoQyxNQUFNO1lBQ1IsS0FBSyxVQUFVO2dCQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsZ0JBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ2hDLE1BQU07WUFDUixLQUFLLFVBQVU7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RyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ1QsTUFBTSxlQUFlLEdBQUc7d0JBQ3RCLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTzt3QkFDbEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPO3FCQUNoQixDQUFDO29CQUNGLE9BQU8sZUFBZSxDQUFDO2dCQUN6QixDQUFDLENBQUM7YUFDTCxDQUFDO1NBQ0g7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE1BQU0sNENBQTRDLElBQUksQ0FBQyxRQUFRLFdBQVcsSUFBSSxDQUFDLFFBQVEsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUNqRztnQkFBUztZQUNSLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDM0MsNENBQTRDO1lBQzVDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxnQkFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQzthQUM3QjtTQUNGO1FBQ0QsT0FBTyw2QkFBNkIsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUE5SkQsa0JBOEpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5Z2VuU2Vzc2lvbiwgS2V5c2hhcmUsIE1lc3NhZ2UgfSBmcm9tICdAc2lsZW5jZWxhYm9yYXRvcmllcy9ka2xzLXdhc20tbGwtbm9kZSc7XG5pbXBvcnQgeyBEZXNlcmlhbGl6ZWRCcm9hZGNhc3RNZXNzYWdlLCBEZXNlcmlhbGl6ZWRNZXNzYWdlcywgRGtnU3RhdGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IGRlY29kZSB9IGZyb20gJ2Nib3InO1xuXG5leHBvcnQgY2xhc3MgRGtnIHtcbiAgcHJvdGVjdGVkIGRrZ1Nlc3Npb246IEtleWdlblNlc3Npb24gfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBka2dTZXNzaW9uQnl0ZXM6IFVpbnQ4QXJyYXk7XG4gIHByb3RlY3RlZCBka2dLZXlTaGFyZTogS2V5c2hhcmU7XG4gIHByb3RlY3RlZCBuOiBudW1iZXI7XG4gIHByb3RlY3RlZCB0OiBudW1iZXI7XG4gIHByb3RlY3RlZCBjaGFpbkNvZGVDb21taXRtZW50OiBVaW50OEFycmF5IHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQgcGFydHlJZHg6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGRrZ1N0YXRlOiBEa2dTdGF0ZSA9IERrZ1N0YXRlLlVuaW5pdGlhbGl6ZWQ7XG5cbiAgY29uc3RydWN0b3IobjogbnVtYmVyLCB0OiBudW1iZXIsIHBhcnR5SWR4OiBudW1iZXIpIHtcbiAgICB0aGlzLm4gPSBuO1xuICAgIHRoaXMudCA9IHQ7XG4gICAgdGhpcy5wYXJ0eUlkeCA9IHBhcnR5SWR4O1xuICAgIHRoaXMuY2hhaW5Db2RlQ29tbWl0bWVudCA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc3RvcmVTZXNzaW9uKCkge1xuICAgIGlmICghdGhpcy5ka2dTZXNzaW9uKSB7XG4gICAgICB0aGlzLmRrZ1Nlc3Npb24gPSBLZXlnZW5TZXNzaW9uLmZyb21CeXRlcyh0aGlzLmRrZ1Nlc3Npb25CeXRlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVzZXJpYWxpemVTdGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuZGtnU2Vzc2lvbikge1xuICAgICAgdGhyb3cgRXJyb3IoJ1Nlc3Npb24gbm90IGludGlhbGl6ZWQnKTtcbiAgICB9XG4gICAgY29uc3Qgcm91bmQgPSBkZWNvZGUodGhpcy5ka2dTZXNzaW9uLnRvQnl0ZXMoKSkucm91bmQ7XG4gICAgc3dpdGNoIChyb3VuZCkge1xuICAgICAgY2FzZSAnV2FpdE1zZzEnOlxuICAgICAgICB0aGlzLmRrZ1N0YXRlID0gRGtnU3RhdGUuUm91bmQxO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1dhaXRNc2cyJzpcbiAgICAgICAgdGhpcy5ka2dTdGF0ZSA9IERrZ1N0YXRlLlJvdW5kMjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdXYWl0TXNnMyc6XG4gICAgICAgIHRoaXMuZGtnU3RhdGUgPSBEa2dTdGF0ZS5Sb3VuZDM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnV2FpdE1zZzQnOlxuICAgICAgICB0aGlzLmRrZ1N0YXRlID0gRGtnU3RhdGUuUm91bmQ0O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VuZGVkJzpcbiAgICAgICAgdGhpcy5ka2dTdGF0ZSA9IERrZ1N0YXRlLkNvbXBsZXRlO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuZGtnU3RhdGUgPSBEa2dTdGF0ZS5JbnZhbGlkU3RhdGU7XG4gICAgICAgIHRocm93IGBJbnZhbGlkIFN0YXRlOiAke3JvdW5kfWA7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgaW5pdERrZygpOiBQcm9taXNlPERlc2VyaWFsaXplZEJyb2FkY2FzdE1lc3NhZ2U+IHtcbiAgICBpZiAodGhpcy50ID4gdGhpcy5uIHx8IHRoaXMucGFydHlJZHggPj0gdGhpcy5uKSB7XG4gICAgICB0aHJvdyAnSW52YWxpZCBwYXJhbWV0ZXJzIGZvciBES0cnO1xuICAgIH1cbiAgICBpZiAodGhpcy5ka2dTdGF0ZSAhPSBEa2dTdGF0ZS5VbmluaXRpYWxpemVkKSB7XG4gICAgICB0aHJvdyAnREtHIHNlc3Npb24gYWxyZWFkeSBpbml0aWFsaXplZCc7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3QgaW5pdERrbHMgPSByZXF1aXJlKCdAc2lsZW5jZWxhYm9yYXRvcmllcy9ka2xzLXdhc20tbGwtd2ViJyk7XG4gICAgICBhd2FpdCBpbml0RGtscygpO1xuICAgIH1cbiAgICB0aGlzLmRrZ1Nlc3Npb24gPSBuZXcgS2V5Z2VuU2Vzc2lvbih0aGlzLm4sIHRoaXMudCwgdGhpcy5wYXJ0eUlkeCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLmRrZ1Nlc3Npb24uY3JlYXRlRmlyc3RNZXNzYWdlKCkucGF5bG9hZDtcbiAgICAgIHRoaXMuX2Rlc2VyaWFsaXplU3RhdGUoKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBheWxvYWQ6IHBheWxvYWQsXG4gICAgICAgIGZyb206IHRoaXMucGFydHlJZHgsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGBFcnJvciB3aGlsZSBjcmVhdGluZyB0aGUgZmlyc3QgbWVzc2FnZSBmcm9tIHBhcnR5ICR7dGhpcy5wYXJ0eUlkeH06ICR7ZX1gO1xuICAgIH1cbiAgfVxuXG4gIGdldEtleVNoYXJlKCk6IEJ1ZmZlciB7XG4gICAgY29uc3Qga2V5U2hhcmVCdWZmID0gQnVmZmVyLmZyb20odGhpcy5ka2dLZXlTaGFyZS50b0J5dGVzKCkpO1xuICAgIHRoaXMuZGtnS2V5U2hhcmUuZnJlZSgpO1xuICAgIHJldHVybiBrZXlTaGFyZUJ1ZmY7XG4gIH1cblxuICBoYW5kbGVJbmNvbWluZ01lc3NhZ2VzKG1lc3NhZ2VzRm9ySXRoUm91bmQ6IERlc2VyaWFsaXplZE1lc3NhZ2VzKTogRGVzZXJpYWxpemVkTWVzc2FnZXMge1xuICAgIGxldCBuZXh0Um91bmRNZXNzYWdlczogTWVzc2FnZVtdID0gW107XG4gICAgbGV0IG5leHRSb3VuZERlc2VyaWFsaXplZE1lc3NhZ2VzOiBEZXNlcmlhbGl6ZWRNZXNzYWdlcyA9IHsgYnJvYWRjYXN0TWVzc2FnZXM6IFtdLCBwMnBNZXNzYWdlczogW10gfTtcbiAgICB0aGlzLl9yZXN0b3JlU2Vzc2lvbigpO1xuICAgIGlmICghdGhpcy5ka2dTZXNzaW9uKSB7XG4gICAgICB0aHJvdyBFcnJvcignU2Vzc2lvbiBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmRrZ1N0YXRlID09IERrZ1N0YXRlLlJvdW5kMykge1xuICAgICAgICBjb25zdCBjb21taXRtZW50c1Vuc29ydGVkID0gbWVzc2FnZXNGb3JJdGhSb3VuZC5wMnBNZXNzYWdlc1xuICAgICAgICAgIC5tYXAoKG0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7IGZyb206IG0uZnJvbSwgY29tbWl0bWVudDogbS5jb21taXRtZW50IH07XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY29uY2F0KFt7IGZyb206IHRoaXMucGFydHlJZHgsIGNvbW1pdG1lbnQ6IHRoaXMuY2hhaW5Db2RlQ29tbWl0bWVudCB9XSk7XG4gICAgICAgIGNvbnN0IGNvbW1pdG1lbnRzU29ydGVkID0gY29tbWl0bWVudHNVbnNvcnRlZFxuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYS5mcm9tIC0gYi5mcm9tO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLm1hcCgoYykgPT4gYy5jb21taXRtZW50KTtcbiAgICAgICAgbmV4dFJvdW5kTWVzc2FnZXMgPSB0aGlzLmRrZ1Nlc3Npb24uaGFuZGxlTWVzc2FnZXMoXG4gICAgICAgICAgbWVzc2FnZXNGb3JJdGhSb3VuZC5icm9hZGNhc3RNZXNzYWdlc1xuICAgICAgICAgICAgLm1hcCgobSkgPT4gbmV3IE1lc3NhZ2UobS5wYXlsb2FkLCBtLmZyb20sIHVuZGVmaW5lZCkpXG4gICAgICAgICAgICAuY29uY2F0KG1lc3NhZ2VzRm9ySXRoUm91bmQucDJwTWVzc2FnZXMubWFwKChtKSA9PiBuZXcgTWVzc2FnZShtLnBheWxvYWQsIG0uZnJvbSwgbS50bykpKSxcbiAgICAgICAgICBjb21taXRtZW50c1NvcnRlZFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV4dFJvdW5kTWVzc2FnZXMgPSB0aGlzLmRrZ1Nlc3Npb24uaGFuZGxlTWVzc2FnZXMoXG4gICAgICAgICAgbWVzc2FnZXNGb3JJdGhSb3VuZC5icm9hZGNhc3RNZXNzYWdlc1xuICAgICAgICAgICAgLm1hcCgobSkgPT4gbmV3IE1lc3NhZ2UobS5wYXlsb2FkLCBtLmZyb20sIHVuZGVmaW5lZCkpXG4gICAgICAgICAgICAuY29uY2F0KG1lc3NhZ2VzRm9ySXRoUm91bmQucDJwTWVzc2FnZXMubWFwKChtKSA9PiBuZXcgTWVzc2FnZShtLnBheWxvYWQsIG0uZnJvbSwgbS50bykpKSxcbiAgICAgICAgICB1bmRlZmluZWRcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRrZ1N0YXRlID09IERrZ1N0YXRlLlJvdW5kNCkge1xuICAgICAgICB0aGlzLmRrZ0tleVNoYXJlID0gdGhpcy5ka2dTZXNzaW9uLmtleXNoYXJlKCk7XG4gICAgICAgIHRoaXMuZGtnU3RhdGUgPSBEa2dTdGF0ZS5Db21wbGV0ZTtcbiAgICAgICAgcmV0dXJuIHsgYnJvYWRjYXN0TWVzc2FnZXM6IFtdLCBwMnBNZXNzYWdlczogW10gfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFVwZGF0ZSByb251ZCBkYXRhLlxuICAgICAgICB0aGlzLl9kZXNlcmlhbGl6ZVN0YXRlKCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5ka2dTdGF0ZSA9PSBEa2dTdGF0ZS5Sb3VuZDIpIHtcbiAgICAgICAgdGhpcy5jaGFpbkNvZGVDb21taXRtZW50ID0gdGhpcy5ka2dTZXNzaW9uLmNhbGN1bGF0ZUNoYWluQ29kZUNvbW1pdG1lbnQoKTtcbiAgICAgIH1cbiAgICAgIG5leHRSb3VuZERlc2VyaWFsaXplZE1lc3NhZ2VzID0ge1xuICAgICAgICBwMnBNZXNzYWdlczogbmV4dFJvdW5kTWVzc2FnZXNcbiAgICAgICAgICAuZmlsdGVyKChtKSA9PiBtLnRvX2lkICE9PSB1bmRlZmluZWQpXG4gICAgICAgICAgLm1hcCgobSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcDJwUmV0dXJuID0ge1xuICAgICAgICAgICAgICBwYXlsb2FkOiBtLnBheWxvYWQsXG4gICAgICAgICAgICAgIGZyb206IG0uZnJvbV9pZCxcbiAgICAgICAgICAgICAgdG86IG0udG9faWQhLFxuICAgICAgICAgICAgICBjb21taXRtZW50OiB0aGlzLmNoYWluQ29kZUNvbW1pdG1lbnQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHAycFJldHVybjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgYnJvYWRjYXN0TWVzc2FnZXM6IG5leHRSb3VuZE1lc3NhZ2VzXG4gICAgICAgICAgLmZpbHRlcigobSkgPT4gbS50b19pZCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKG0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJyb2FkY2FzdFJldHVybiA9IHtcbiAgICAgICAgICAgICAgcGF5bG9hZDogbS5wYXlsb2FkLFxuICAgICAgICAgICAgICBmcm9tOiBtLmZyb21faWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGJyb2FkY2FzdFJldHVybjtcbiAgICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgYEVycm9yIHdoaWxlIGNyZWF0aW5nIG1lc3NhZ2VzIGZyb20gcGFydHkgJHt0aGlzLnBhcnR5SWR4fSwgcm91bmQgJHt0aGlzLmRrZ1N0YXRlfTogJHtlfWA7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIG5leHRSb3VuZE1lc3NhZ2VzLmZvckVhY2goKG0pID0+IG0uZnJlZSgpKTtcbiAgICAgIC8vIFNlc3Npb24gaXMgZnJlZWQgd2hlbiBrZXlzaGFyZSBpcyBjYWxsZWQuXG4gICAgICBpZiAodGhpcy5ka2dTdGF0ZSAhPT0gRGtnU3RhdGUuQ29tcGxldGUpIHtcbiAgICAgICAgdGhpcy5ka2dTZXNzaW9uQnl0ZXMgPSB0aGlzLmRrZ1Nlc3Npb24udG9CeXRlcygpO1xuICAgICAgICB0aGlzLmRrZ1Nlc3Npb24gPSB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXh0Um91bmREZXNlcmlhbGl6ZWRNZXNzYWdlcztcbiAgfVxufVxuIl19
@@ -24,7 +24,7 @@ class Dsg {
24
24
  if (!this.dsgSession) {
25
25
  throw Error('Session not intialized');
26
26
  }
27
- const round = cbor_1.decode(this.dsgSession.toBytes()).round;
27
+ const round = (0, cbor_1.decode)(this.dsgSession.toBytes()).round;
28
28
  switch (round) {
29
29
  case 'WaitMsg1':
30
30
  this.dsgState = types_1.DsgState.Round1;
@@ -166,4 +166,4 @@ class Dsg {
166
166
  }
167
167
  }
168
168
  exports.Dsg = Dsg;
169
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rzcy9lY2RzYS1ka2xzL2RzZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4RUFBd0Y7QUFDeEYsbUNBQXNHO0FBQ3RHLCtCQUE4QjtBQUU5QixNQUFhLEdBQUc7SUFVZCxZQUFZLFFBQWdCLEVBQUUsUUFBZ0IsRUFBRSxjQUFzQixFQUFFLFdBQW1CO1FBRmpGLGFBQVEsR0FBYSxnQkFBUSxDQUFDLGFBQWEsQ0FBQztRQUdwRCxJQUFJLENBQUMsUUFBUSxHQUFHLDRCQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQ3RDLE1BQU0sS0FBSyxDQUFDLGdCQUFnQixRQUFRLHNDQUFzQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7U0FDckc7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLCtCQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsTUFBTSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUN2QztRQUNELE1BQU0sS0FBSyxHQUFHLGFBQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ3RELFFBQVEsS0FB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QyxFQUFFLENBQUM7U0FDakc7Z0JBQVM7WUFDUixpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLDJDQUEyQztZQUMzQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssZ0JBQVEsQ0FBQyxRQUFRLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDakQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7YUFDN0I7U0FDRjtRQUNELE9BQU8sNkJBQTZCLENBQUM7SUFDdkMsQ0FBQztDQUNGO0FBN0tELGtCQTZLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25TZXNzaW9uLCBLZXlzaGFyZSwgTWVzc2FnZSB9IGZyb20gJ0BzaWxlbmNlbGFib3JhdG9yaWVzL2RrbHMtd2FzbS1sbC1ub2RlJztcbmltcG9ydCB7IERlc2VyaWFsaXplZEJyb2FkY2FzdE1lc3NhZ2UsIERlc2VyaWFsaXplZE1lc3NhZ2VzLCBEa2xzU2lnbmF0dXJlLCBEc2dTdGF0ZSB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgZGVjb2RlIH0gZnJvbSAnY2Jvcic7XG5cbmV4cG9ydCBjbGFzcyBEc2cge1xuICBwcm90ZWN0ZWQgZHNnU2Vzc2lvbjogU2lnblNlc3Npb24gfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBkc2dTZXNzaW9uQnl0ZXM6IFVpbnQ4QXJyYXk7XG4gIHByaXZhdGUgX3NpZ25hdHVyZTogRGtsc1NpZ25hdHVyZSB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGtleVNoYXJlOiBLZXlzaGFyZTtcbiAgcHJvdGVjdGVkIG1lc3NhZ2VIYXNoOiBCdWZmZXI7XG4gIHByb3RlY3RlZCBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcGFydHlJZHg6IG51bWJlcjtcbiAgcHJvdGVjdGVkIGRzZ1N0YXRlOiBEc2dTdGF0ZSA9IERzZ1N0YXRlLlVuaW5pdGlhbGl6ZWQ7XG5cbiAgY29uc3RydWN0b3Ioa2V5U2hhcmU6IEJ1ZmZlciwgcGFydHlJZHg6IG51bWJlciwgZGVyaXZhdGlvblBhdGg6IHN0cmluZywgbWVzc2FnZUhhc2g6IEJ1ZmZlcikge1xuICAgIHRoaXMua2V5U2hhcmUgPSBLZXlzaGFyZS5mcm9tQnl0ZXMoa2V5U2hhcmUpO1xuICAgIHRoaXMucGFydHlJZHggPSBwYXJ0eUlkeDtcbiAgICBpZiAodGhpcy5rZXlTaGFyZS5wYXJ0eUlkICE9PSBwYXJ0eUlkeCkge1xuICAgICAgdGhyb3cgRXJyb3IoYFBhcnR5IGluZGV4OiAke3BhcnR5SWR4fSBkb2VzIG5vdCBtYXRjaCBrZXkgc2hhcmUgcGFydHlJZDogJHt0aGlzLmtleVNoYXJlLnBhcnR5SWR9IGApO1xuICAgIH1cbiAgICB0aGlzLmRlcml2YXRpb25QYXRoID0gZGVyaXZhdGlvblBhdGg7XG4gICAgdGhpcy5tZXNzYWdlSGFzaCA9IG1lc3NhZ2VIYXNoO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzdG9yZVNlc3Npb24oKSB7XG4gICAgaWYgKCF0aGlzLmRzZ1Nlc3Npb24pIHtcbiAgICAgIHRoaXMuZHNnU2Vzc2lvbiA9IFNpZ25TZXNzaW9uLmZyb21CeXRlcyh0aGlzLmRzZ1Nlc3Npb25CeXRlcyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZGVzZXJpYWxpemVTdGF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuZHNnU2Vzc2lvbikge1xuICAgICAgdGhyb3cgRXJyb3IoJ1Nlc3Npb24gbm90IGludGlhbGl6ZWQnKTtcbiAgICB9XG4gICAgY29uc3Qgcm91bmQgPSBkZWNvZGUodGhpcy5kc2dTZXNzaW9uLnRvQnl0ZXMoKSkucm91bmQ7XG4gICAgc3dpdGNoIChyb3VuZCkge1xuICAgICAgY2FzZSAnV2FpdE1zZzEnOlxuICAgICAgICB0aGlzLmRzZ1N0YXRlID0gRHNnU3RhdGUuUm91bmQxO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1dhaXRNc2cyJzpcbiAgICAgICAgdGhpcy5kc2dTdGF0ZSA9IERzZ1N0YXRlLlJvdW5kMjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdXYWl0TXNnMyc6XG4gICAgICAgIHRoaXMuZHNnU3RhdGUgPSBEc2dTdGF0ZS5Sb3VuZDM7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW5kZWQnOlxuICAgICAgICB0aGlzLmRzZ1N0YXRlID0gRHNnU3RhdGUuQ29tcGxldGU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5kc2dTdGF0ZSA9IERzZ1N0YXRlLkludmFsaWRTdGF0ZTtcbiAgICAgICAgdGhyb3cgYEludmFsaWQgU3RhdGU6ICR7cm91bmR9YDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBpbml0KCk6IFByb21pc2U8RGVzZXJpYWxpemVkQnJvYWRjYXN0TWVzc2FnZT4ge1xuICAgIGlmICh0aGlzLmRzZ1N0YXRlICE9PSBEc2dTdGF0ZS5VbmluaXRpYWxpemVkKSB7XG4gICAgICB0aHJvdyAnRFNHIHNlc3Npb24gYWxyZWFkeSBpbml0aWFsaXplZCc7XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgY29uc3QgaW5pdERrbHMgPSByZXF1aXJlKCdAc2lsZW5jZWxhYm9yYXRvcmllcy9ka2xzLXdhc20tbGwtd2ViJyk7XG4gICAgICBhd2FpdCBpbml0RGtscygpO1xuICAgIH1cbiAgICB0aGlzLmRzZ1Nlc3Npb24gPSBuZXcgU2lnblNlc3Npb24odGhpcy5rZXlTaGFyZSwgdGhpcy5kZXJpdmF0aW9uUGF0aCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSB0aGlzLmRzZ1Nlc3Npb24uY3JlYXRlRmlyc3RNZXNzYWdlKCkucGF5bG9hZDtcbiAgICAgIHRoaXMuX2Rlc2VyaWFsaXplU3RhdGUoKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBheWxvYWQ6IHBheWxvYWQsXG4gICAgICAgIGZyb206IHRoaXMucGFydHlJZHgsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGBFcnJvciB3aGlsZSBjcmVhdGluZyB0aGUgZmlyc3QgbWVzc2FnZSBmcm9tIHBhcnR5ICR7dGhpcy5wYXJ0eUlkeH06ICR7ZX1gO1xuICAgIH1cbiAgfVxuXG4gIGdldCBzaWduYXR1cmUoKTogRGtsc1NpZ25hdHVyZSB7XG4gICAgaWYgKCF0aGlzLl9zaWduYXR1cmUpIHtcbiAgICAgIHRocm93IEVycm9yKCdDYW4gbm90IHJlcXVlc3Qgc2lnbmF0dXJlLiBTaWduYXR1cmUgbm90IHByb2R1Y2VkIHlldC4nKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmRzIHRoZSBEU0cgc2Vzc2lvbiBieSBmcmVlaW5nIGFueSBoZWFwIGFsbG9jYXRpb25zIGZyb20gd2FzbS4gTm90ZSB0aGF0IHRoZSBzZXNzaW9uIGlzIGZyZWVkIGlmIGEgc2lnbmF0dXJlIGlzIHByb2R1Y2VkLlxuICAgKi9cbiAgZW5kU2Vzc2lvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaWduYXR1cmUpIHtcbiAgICAgIG5ldyBFcnJvcignU2Vzc2lvbiBhbHJlYWR5IGVuZGVkIGJlY2F1c2UgY29tYmluZWQgc2lnbmF0dXJlIHdhcyBwcm9kdWNlZC4nKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZHNnU2Vzc2lvbikge1xuICAgICAgdGhpcy5kc2dTZXNzaW9uLmZyZWUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2Nlc3NlcyBpbmNvbWluZyBtZXNzYWdlcyB0byB0aGlzIHBhcnR5IGluIHRoZSBES0xzIERTRyBwcm90b2NvbCBhbmRcbiAgICogcHJvZHVjZXMgbWVzc2FnZXMgZnJvbSB0aGlzIHBhcnR5IHRvIG90aGVyIHBhcnRpZXMgZm9yIHRoZSBuZXh0IHJvdW5kLlxuICAgKiBAcGFyYW0gbWVzc2FnZXNGb3JJdGhSb3VuZCAtIG1lc3NhZ2VzIHRvIHByb2Nlc3MgdGhlIGN1cnJlbnQgcm91bmRcbiAgICogQHJldHVybnMge0Rlc2VyaWFsaXplZE1lc3NhZ2VzfSAtIG1lc3NhZ2VzIHRvIHNlbmQgdG8gb3RoZXIgcGFydGllcyBmb3IgdGhlIG5leHQgcm91bmRcbiAgICovXG4gIGhhbmRsZUluY29taW5nTWVzc2FnZXMobWVzc2FnZXNGb3JJdGhSb3VuZDogRGVzZXJpYWxpemVkTWVzc2FnZXMpOiBEZXNlcmlhbGl6ZWRNZXNzYWdlcyB7XG4gICAgbGV0IG5leHRSb3VuZE1lc3NhZ2VzOiBNZXNzYWdlW10gPSBbXTtcbiAgICBsZXQgbmV4dFJvdW5kRGVzZXJpYWxpemVkTWVzc2FnZXM6IERlc2VyaWFsaXplZE1lc3NhZ2VzID0geyBicm9hZGNhc3RNZXNzYWdlczogW10sIHAycE1lc3NhZ2VzOiBbXSB9O1xuICAgIHRoaXMuX3Jlc3RvcmVTZXNzaW9uKCk7XG4gICAgaWYgKCF0aGlzLmRzZ1Nlc3Npb24pIHtcbiAgICAgIHRocm93IEVycm9yKCdTZXNzaW9uIG5vdCBpbml0aWFsaXplZCcpO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgaWYgKHRoaXMuZHNnU3RhdGUgPT09IERzZ1N0YXRlLlJvdW5kNCkge1xuICAgICAgICB0aGlzLmRzZ1N0YXRlID0gRHNnU3RhdGUuQ29tcGxldGU7XG4gICAgICAgIGNvbnN0IGNvbWJpbmVSZXN1bHQgPSB0aGlzLmRzZ1Nlc3Npb24uY29tYmluZShcbiAgICAgICAgICBtZXNzYWdlc0Zvckl0aFJvdW5kLmJyb2FkY2FzdE1lc3NhZ2VzLm1hcCgobSkgPT4gbmV3IE1lc3NhZ2UobS5wYXlsb2FkLCBtLmZyb20sIHVuZGVmaW5lZCkpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX3NpZ25hdHVyZSA9IHtcbiAgICAgICAgICBSOiBjb21iaW5lUmVzdWx0WzBdLFxuICAgICAgICAgIFM6IGNvbWJpbmVSZXN1bHRbMV0sXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiB7IGJyb2FkY2FzdE1lc3NhZ2VzOiBbXSwgcDJwTWVzc2FnZXM6IFtdIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXh0Um91bmRNZXNzYWdlcyA9IHRoaXMuZHNnU2Vzc2lvbi5oYW5kbGVNZXNzYWdlcyhcbiAgICAgICAgICBtZXNzYWdlc0Zvckl0aFJvdW5kLmJyb2FkY2FzdE1lc3NhZ2VzXG4gICAgICAgICAgICAubWFwKChtKSA9PiBuZXcgTWVzc2FnZShtLnBheWxvYWQsIG0uZnJvbSwgdW5kZWZpbmVkKSlcbiAgICAgICAgICAgIC5jb25jYXQobWVzc2FnZXNGb3JJdGhSb3VuZC5wMnBNZXNzYWdlcy5tYXAoKG0pID0+IG5ldyBNZXNzYWdlKG0ucGF5bG9hZCwgbS5mcm9tLCBtLnRvKSkpXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5kc2dTdGF0ZSA9PT0gRHNnU3RhdGUuUm91bmQzKSB7XG4gICAgICAgIG5leHRSb3VuZE1lc3NhZ2VzID0gW3RoaXMuZHNnU2Vzc2lvbi5sYXN0TWVzc2FnZSh0aGlzLm1lc3NhZ2VIYXNoKV07XG4gICAgICAgIHRoaXMuZHNnU3RhdGUgPSBEc2dTdGF0ZS5Sb3VuZDQ7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgYnJvYWRjYXN0TWVzc2FnZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcGF5bG9hZDogbmV4dFJvdW5kTWVzc2FnZXNbMF0ucGF5bG9hZCxcbiAgICAgICAgICAgICAgZnJvbTogbmV4dFJvdW5kTWVzc2FnZXNbMF0uZnJvbV9pZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwMnBNZXNzYWdlczogW10sXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBVcGRhdGUgcm91bmQgZGF0YS5cbiAgICAgICAgdGhpcy5fZGVzZXJpYWxpemVTdGF0ZSgpO1xuICAgICAgfVxuICAgICAgbmV4dFJvdW5kRGVzZXJpYWxpemVkTWVzc2FnZXMgPSB7XG4gICAgICAgIHAycE1lc3NhZ2VzOiBuZXh0Um91bmRNZXNzYWdlc1xuICAgICAgICAgIC5maWx0ZXIoKG0pID0+IG0udG9faWQgIT09IHVuZGVmaW5lZClcbiAgICAgICAgICAubWFwKChtKSA9PiB7XG4gICAgICAgICAgICBpZiAobS50b19pZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgIHRocm93IEVycm9yKCdJbnZhbGlkIFAyUCBtZXNzYWdlLCBtaXNzaW5nIHRvX2lkLicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgcDJwUmV0dXJuID0ge1xuICAgICAgICAgICAgICBwYXlsb2FkOiBtLnBheWxvYWQsXG4gICAgICAgICAgICAgIGZyb206IG0uZnJvbV9pZCxcbiAgICAgICAgICAgICAgdG86IG0udG9faWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHAycFJldHVybjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgYnJvYWRjYXN0TWVzc2FnZXM6IG5leHRSb3VuZE1lc3NhZ2VzXG4gICAgICAgICAgLmZpbHRlcigobSkgPT4gbS50b19pZCA9PT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKG0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJyb2FkY2FzdFJldHVybiA9IHtcbiAgICAgICAgICAgICAgcGF5bG9hZDogbS5wYXlsb2FkLFxuICAgICAgICAgICAgICBmcm9tOiBtLmZyb21faWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIGJyb2FkY2FzdFJldHVybjtcbiAgICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgYEVycm9yIHdoaWxlIGNyZWF0aW5nIG1lc3NhZ2VzIGZyb20gcGFydHkgJHt0aGlzLnBhcnR5SWR4fSwgcm91bmQgJHt0aGlzLmRzZ1N0YXRlfTogJHtlfWA7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIG5leHRSb3VuZE1lc3NhZ2VzLmZvckVhY2goKG0pID0+IG0uZnJlZSgpKTtcbiAgICAgIC8vIFNlc3Npb24gaXMgZnJlZWQgd2hlbiBjb21iaW5lIGlzIGNhbGxlZC5cbiAgICAgIGlmICh0aGlzLmRzZ1N0YXRlICE9PSBEc2dTdGF0ZS5Db21wbGV0ZSkge1xuICAgICAgICB0aGlzLmRzZ1Nlc3Npb25CeXRlcyA9IHRoaXMuZHNnU2Vzc2lvbi50b0J5dGVzKCk7XG4gICAgICAgIHRoaXMuZHNnU2Vzc2lvbiA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5leHRSb3VuZERlc2VyaWFsaXplZE1lc3NhZ2VzO1xuICB9XG59XG4iXX0=
169
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Rzcy9lY2RzYS1ka2xzL2RzZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4RUFBd0Y7QUFDeEYsbUNBQXNHO0FBQ3RHLCtCQUE4QjtBQUU5QixNQUFhLEdBQUc7SUFVZCxZQUFZLFFBQWdCLEVBQUUsUUFBZ0IsRUFBRSxjQUFzQixFQUFFLFdBQW1CO1FBRmpGLGFBQVEsR0FBYSxnQkFBUSxDQUFDLGFBQWEsQ0FBQztRQUdwRCxJQUFJLENBQUMsUUFBUSxHQUFHLDRCQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQ3RDLE1BQU0sS0FBSyxDQUFDLGdCQUFnQixRQUFRLHNDQUFzQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7U0FDckc7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxHQUFHLCtCQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUMvRDtJQUNILENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsTUFBTSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUN2QztRQUNELE1BQU0sS0FBSyxHQUFHLElBQUEsYUFBTSxFQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEQsUUFB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SyxDQUFDLEVBQUUsQ0FBQztTQUNqRztnQkFBUztZQUNSLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDM0MsMkNBQTJDO1lBQzNDLElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxnQkFBUSxDQUFDLFFBQVEsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQzthQUM3QjtTQUNGO1FBQ0QsT0FBTyw2QkFBNkIsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUE3S0Qsa0JBNktDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnblNlc3Npb24sIEtleXNoYXJlLCBNZXNzYWdlIH0gZnJvbSAnQHNpbGVuY2VsYWJvcmF0b3JpZXMvZGtscy13YXNtLWxsLW5vZGUnO1xuaW1wb3J0IHsgRGVzZXJpYWxpemVkQnJvYWRjYXN0TWVzc2FnZSwgRGVzZXJpYWxpemVkTWVzc2FnZXMsIERrbHNTaWduYXR1cmUsIERzZ1N0YXRlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBkZWNvZGUgfSBmcm9tICdjYm9yJztcblxuZXhwb3J0IGNsYXNzIERzZyB7XG4gIHByb3RlY3RlZCBkc2dTZXNzaW9uOiBTaWduU2Vzc2lvbiB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGRzZ1Nlc3Npb25CeXRlczogVWludDhBcnJheTtcbiAgcHJpdmF0ZSBfc2lnbmF0dXJlOiBEa2xzU2lnbmF0dXJlIHwgdW5kZWZpbmVkO1xuICBwcm90ZWN0ZWQga2V5U2hhcmU6IEtleXNoYXJlO1xuICBwcm90ZWN0ZWQgbWVzc2FnZUhhc2g6IEJ1ZmZlcjtcbiAgcHJvdGVjdGVkIGRlcml2YXRpb25QYXRoOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBwYXJ0eUlkeDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgZHNnU3RhdGU6IERzZ1N0YXRlID0gRHNnU3RhdGUuVW5pbml0aWFsaXplZDtcblxuICBjb25zdHJ1Y3RvcihrZXlTaGFyZTogQnVmZmVyLCBwYXJ0eUlkeDogbnVtYmVyLCBkZXJpdmF0aW9uUGF0aDogc3RyaW5nLCBtZXNzYWdlSGFzaDogQnVmZmVyKSB7XG4gICAgdGhpcy5rZXlTaGFyZSA9IEtleXNoYXJlLmZyb21CeXRlcyhrZXlTaGFyZSk7XG4gICAgdGhpcy5wYXJ0eUlkeCA9IHBhcnR5SWR4O1xuICAgIGlmICh0aGlzLmtleVNoYXJlLnBhcnR5SWQgIT09IHBhcnR5SWR4KSB7XG4gICAgICB0aHJvdyBFcnJvcihgUGFydHkgaW5kZXg6ICR7cGFydHlJZHh9IGRvZXMgbm90IG1hdGNoIGtleSBzaGFyZSBwYXJ0eUlkOiAke3RoaXMua2V5U2hhcmUucGFydHlJZH0gYCk7XG4gICAgfVxuICAgIHRoaXMuZGVyaXZhdGlvblBhdGggPSBkZXJpdmF0aW9uUGF0aDtcbiAgICB0aGlzLm1lc3NhZ2VIYXNoID0gbWVzc2FnZUhhc2g7XG4gIH1cblxuICBwcml2YXRlIF9yZXN0b3JlU2Vzc2lvbigpIHtcbiAgICBpZiAoIXRoaXMuZHNnU2Vzc2lvbikge1xuICAgICAgdGhpcy5kc2dTZXNzaW9uID0gU2lnblNlc3Npb24uZnJvbUJ5dGVzKHRoaXMuZHNnU2Vzc2lvbkJ5dGVzKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kZXNlcmlhbGl6ZVN0YXRlKCkge1xuICAgIGlmICghdGhpcy5kc2dTZXNzaW9uKSB7XG4gICAgICB0aHJvdyBFcnJvcignU2Vzc2lvbiBub3QgaW50aWFsaXplZCcpO1xuICAgIH1cbiAgICBjb25zdCByb3VuZCA9IGRlY29kZSh0aGlzLmRzZ1Nlc3Npb24udG9CeXRlcygpKS5yb3VuZDtcbiAgICBzd2l0Y2ggKHJvdW5kKSB7XG4gICAgICBjYXNlICdXYWl0TXNnMSc6XG4gICAgICAgIHRoaXMuZHNnU3RhdGUgPSBEc2dTdGF0ZS5Sb3VuZDE7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnV2FpdE1zZzInOlxuICAgICAgICB0aGlzLmRzZ1N0YXRlID0gRHNnU3RhdGUuUm91bmQyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1dhaXRNc2czJzpcbiAgICAgICAgdGhpcy5kc2dTdGF0ZSA9IERzZ1N0YXRlLlJvdW5kMztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbmRlZCc6XG4gICAgICAgIHRoaXMuZHNnU3RhdGUgPSBEc2dTdGF0ZS5Db21wbGV0ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmRzZ1N0YXRlID0gRHNnU3RhdGUuSW52YWxpZFN0YXRlO1xuICAgICAgICB0aHJvdyBgSW52YWxpZCBTdGF0ZTogJHtyb3VuZH1gO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGluaXQoKTogUHJvbWlzZTxEZXNlcmlhbGl6ZWRCcm9hZGNhc3RNZXNzYWdlPiB7XG4gICAgaWYgKHRoaXMuZHNnU3RhdGUgIT09IERzZ1N0YXRlLlVuaW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRocm93ICdEU0cgc2Vzc2lvbiBhbHJlYWR5IGluaXRpYWxpemVkJztcbiAgICB9XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICBjb25zdCBpbml0RGtscyA9IHJlcXVpcmUoJ0BzaWxlbmNlbGFib3JhdG9yaWVzL2RrbHMtd2FzbS1sbC13ZWInKTtcbiAgICAgIGF3YWl0IGluaXREa2xzKCk7XG4gICAgfVxuICAgIHRoaXMuZHNnU2Vzc2lvbiA9IG5ldyBTaWduU2Vzc2lvbih0aGlzLmtleVNoYXJlLCB0aGlzLmRlcml2YXRpb25QYXRoKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGF5bG9hZCA9IHRoaXMuZHNnU2Vzc2lvbi5jcmVhdGVGaXJzdE1lc3NhZ2UoKS5wYXlsb2FkO1xuICAgICAgdGhpcy5fZGVzZXJpYWxpemVTdGF0ZSgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGF5bG9hZDogcGF5bG9hZCxcbiAgICAgICAgZnJvbTogdGhpcy5wYXJ0eUlkeCxcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgYEVycm9yIHdoaWxlIGNyZWF0aW5nIHRoZSBmaXJzdCBtZXNzYWdlIGZyb20gcGFydHkgJHt0aGlzLnBhcnR5SWR4fTogJHtlfWA7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNpZ25hdHVyZSgpOiBEa2xzU2lnbmF0dXJlIHtcbiAgICBpZiAoIXRoaXMuX3NpZ25hdHVyZSkge1xuICAgICAgdGhyb3cgRXJyb3IoJ0NhbiBub3QgcmVxdWVzdCBzaWduYXR1cmUuIFNpZ25hdHVyZSBub3QgcHJvZHVjZWQgeWV0LicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fc2lnbmF0dXJlO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuZHMgdGhlIERTRyBzZXNzaW9uIGJ5IGZyZWVpbmcgYW55IGhlYXAgYWxsb2NhdGlvbnMgZnJvbSB3YXNtLiBOb3RlIHRoYXQgdGhlIHNlc3Npb24gaXMgZnJlZWQgaWYgYSBzaWduYXR1cmUgaXMgcHJvZHVjZWQuXG4gICAqL1xuICBlbmRTZXNzaW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNpZ25hdHVyZSkge1xuICAgICAgbmV3IEVycm9yKCdTZXNzaW9uIGFscmVhZHkgZW5kZWQgYmVjYXVzZSBjb21iaW5lZCBzaWduYXR1cmUgd2FzIHByb2R1Y2VkLicpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kc2dTZXNzaW9uKSB7XG4gICAgICB0aGlzLmRzZ1Nlc3Npb24uZnJlZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jY2Vzc2VzIGluY29taW5nIG1lc3NhZ2VzIHRvIHRoaXMgcGFydHkgaW4gdGhlIERLTHMgRFNHIHByb3RvY29sIGFuZFxuICAgKiBwcm9kdWNlcyBtZXNzYWdlcyBmcm9tIHRoaXMgcGFydHkgdG8gb3RoZXIgcGFydGllcyBmb3IgdGhlIG5leHQgcm91bmQuXG4gICAqIEBwYXJhbSBtZXNzYWdlc0Zvckl0aFJvdW5kIC0gbWVzc2FnZXMgdG8gcHJvY2VzcyB0aGUgY3VycmVudCByb3VuZFxuICAgKiBAcmV0dXJucyB7RGVzZXJpYWxpemVkTWVzc2FnZXN9IC0gbWVzc2FnZXMgdG8gc2VuZCB0byBvdGhlciBwYXJ0aWVzIGZvciB0aGUgbmV4dCByb3VuZFxuICAgKi9cbiAgaGFuZGxlSW5jb21pbmdNZXNzYWdlcyhtZXNzYWdlc0Zvckl0aFJvdW5kOiBEZXNlcmlhbGl6ZWRNZXNzYWdlcyk6IERlc2VyaWFsaXplZE1lc3NhZ2VzIHtcbiAgICBsZXQgbmV4dFJvdW5kTWVzc2FnZXM6IE1lc3NhZ2VbXSA9IFtdO1xuICAgIGxldCBuZXh0Um91bmREZXNlcmlhbGl6ZWRNZXNzYWdlczogRGVzZXJpYWxpemVkTWVzc2FnZXMgPSB7IGJyb2FkY2FzdE1lc3NhZ2VzOiBbXSwgcDJwTWVzc2FnZXM6IFtdIH07XG4gICAgdGhpcy5fcmVzdG9yZVNlc3Npb24oKTtcbiAgICBpZiAoIXRoaXMuZHNnU2Vzc2lvbikge1xuICAgICAgdGhyb3cgRXJyb3IoJ1Nlc3Npb24gbm90IGluaXRpYWxpemVkJyk7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5kc2dTdGF0ZSA9PT0gRHNnU3RhdGUuUm91bmQ0KSB7XG4gICAgICAgIHRoaXMuZHNnU3RhdGUgPSBEc2dTdGF0ZS5Db21wbGV0ZTtcbiAgICAgICAgY29uc3QgY29tYmluZVJlc3VsdCA9IHRoaXMuZHNnU2Vzc2lvbi5jb21iaW5lKFxuICAgICAgICAgIG1lc3NhZ2VzRm9ySXRoUm91bmQuYnJvYWRjYXN0TWVzc2FnZXMubWFwKChtKSA9PiBuZXcgTWVzc2FnZShtLnBheWxvYWQsIG0uZnJvbSwgdW5kZWZpbmVkKSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fc2lnbmF0dXJlID0ge1xuICAgICAgICAgIFI6IGNvbWJpbmVSZXN1bHRbMF0sXG4gICAgICAgICAgUzogY29tYmluZVJlc3VsdFsxXSxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHsgYnJvYWRjYXN0TWVzc2FnZXM6IFtdLCBwMnBNZXNzYWdlczogW10gfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5leHRSb3VuZE1lc3NhZ2VzID0gdGhpcy5kc2dTZXNzaW9uLmhhbmRsZU1lc3NhZ2VzKFxuICAgICAgICAgIG1lc3NhZ2VzRm9ySXRoUm91bmQuYnJvYWRjYXN0TWVzc2FnZXNcbiAgICAgICAgICAgIC5tYXAoKG0pID0+IG5ldyBNZXNzYWdlKG0ucGF5bG9hZCwgbS5mcm9tLCB1bmRlZmluZWQpKVxuICAgICAgICAgICAgLmNvbmNhdChtZXNzYWdlc0Zvckl0aFJvdW5kLnAycE1lc3NhZ2VzLm1hcCgobSkgPT4gbmV3IE1lc3NhZ2UobS5wYXlsb2FkLCBtLmZyb20sIG0udG8pKSlcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmRzZ1N0YXRlID09PSBEc2dTdGF0ZS5Sb3VuZDMpIHtcbiAgICAgICAgbmV4dFJvdW5kTWVzc2FnZXMgPSBbdGhpcy5kc2dTZXNzaW9uLmxhc3RNZXNzYWdlKHRoaXMubWVzc2FnZUhhc2gpXTtcbiAgICAgICAgdGhpcy5kc2dTdGF0ZSA9IERzZ1N0YXRlLlJvdW5kNDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBicm9hZGNhc3RNZXNzYWdlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwYXlsb2FkOiBuZXh0Um91bmRNZXNzYWdlc1swXS5wYXlsb2FkLFxuICAgICAgICAgICAgICBmcm9tOiBuZXh0Um91bmRNZXNzYWdlc1swXS5mcm9tX2lkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHAycE1lc3NhZ2VzOiBbXSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFVwZGF0ZSByb3VuZCBkYXRhLlxuICAgICAgICB0aGlzLl9kZXNlcmlhbGl6ZVN0YXRlKCk7XG4gICAgICB9XG4gICAgICBuZXh0Um91bmREZXNlcmlhbGl6ZWRNZXNzYWdlcyA9IHtcbiAgICAgICAgcDJwTWVzc2FnZXM6IG5leHRSb3VuZE1lc3NhZ2VzXG4gICAgICAgICAgLmZpbHRlcigobSkgPT4gbS50b19pZCAhPT0gdW5kZWZpbmVkKVxuICAgICAgICAgIC5tYXAoKG0pID0+IHtcbiAgICAgICAgICAgIGlmIChtLnRvX2lkID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0ludmFsaWQgUDJQIG1lc3NhZ2UsIG1pc3NpbmcgdG9faWQuJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwMnBSZXR1cm4gPSB7XG4gICAgICAgICAgICAgIHBheWxvYWQ6IG0ucGF5bG9hZCxcbiAgICAgICAgICAgICAgZnJvbTogbS5mcm9tX2lkLFxuICAgICAgICAgICAgICB0bzogbS50b19pZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gcDJwUmV0dXJuO1xuICAgICAgICAgIH0pLFxuICAgICAgICBicm9hZGNhc3RNZXNzYWdlczogbmV4dFJvdW5kTWVzc2FnZXNcbiAgICAgICAgICAuZmlsdGVyKChtKSA9PiBtLnRvX2lkID09PSB1bmRlZmluZWQpXG4gICAgICAgICAgLm1hcCgobSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYnJvYWRjYXN0UmV0dXJuID0ge1xuICAgICAgICAgICAgICBwYXlsb2FkOiBtLnBheWxvYWQsXG4gICAgICAgICAgICAgIGZyb206IG0uZnJvbV9pZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gYnJvYWRjYXN0UmV0dXJuO1xuICAgICAgICAgIH0pLFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBgRXJyb3Igd2hpbGUgY3JlYXRpbmcgbWVzc2FnZXMgZnJvbSBwYXJ0eSAke3RoaXMucGFydHlJZHh9LCByb3VuZCAke3RoaXMuZHNnU3RhdGV9OiAke2V9YDtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgbmV4dFJvdW5kTWVzc2FnZXMuZm9yRWFjaCgobSkgPT4gbS5mcmVlKCkpO1xuICAgICAgLy8gU2Vzc2lvbiBpcyBmcmVlZCB3aGVuIGNvbWJpbmUgaXMgY2FsbGVkLlxuICAgICAgaWYgKHRoaXMuZHNnU3RhdGUgIT09IERzZ1N0YXRlLkNvbXBsZXRlKSB7XG4gICAgICAgIHRoaXMuZHNnU2Vzc2lvbkJ5dGVzID0gdGhpcy5kc2dTZXNzaW9uLnRvQnl0ZXMoKTtcbiAgICAgICAgdGhpcy5kc2dTZXNzaW9uID0gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbmV4dFJvdW5kRGVzZXJpYWxpemVkTWVzc2FnZXM7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -23,4 +27,4 @@ exports.DklsTypes = exports.DklsDsg = exports.DklsDkg = void 0;
23
27
  exports.DklsDkg = __importStar(require("./dkg"));
24
28
  exports.DklsDsg = __importStar(require("./dsg"));
25
29
  exports.DklsTypes = __importStar(require("./types"));
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhLWRrbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGlEQUFpQztBQUNqQyxpREFBaUM7QUFDakMscURBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogYXMgRGtsc0RrZyBmcm9tICcuL2RrZyc7XG5leHBvcnQgKiBhcyBEa2xzRHNnIGZyb20gJy4vZHNnJztcbmV4cG9ydCAqIGFzIERrbHNUeXBlcyBmcm9tICcuL3R5cGVzJztcbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdHNzL2VjZHNhLWRrbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxpREFBaUM7QUFDakMsaURBQWlDO0FBQ2pDLHFEQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIERrbHNEa2cgZnJvbSAnLi9ka2cnO1xuZXhwb3J0ICogYXMgRGtsc0RzZyBmcm9tICcuL2RzZyc7XG5leHBvcnQgKiBhcyBEa2xzVHlwZXMgZnJvbSAnLi90eXBlcyc7XG4iXX0=
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
3
  if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
5
9
  }) : (function(o, m, k, k2) {
6
10
  if (k2 === undefined) k2 = k;
7
11
  o[k2] = m[k];
@@ -12,4 +16,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
12
16
  Object.defineProperty(exports, "__esModule", { value: true });
13
17
  __exportStar(require("./ecdsa"), exports);
14
18
  __exportStar(require("./ecdsa-dkls"), exports);
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDBDQUF3QjtBQUN4QiwrQ0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2VjZHNhJztcbmV4cG9ydCAqIGZyb20gJy4vZWNkc2EtZGtscyc7XG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsK0NBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lY2RzYSc7XG5leHBvcnQgKiBmcm9tICcuL2VjZHNhLWRrbHMnO1xuIl19
package/dist/src/util.js CHANGED
@@ -111,8 +111,8 @@ exports.getPaillierPublicKey = getPaillierPublicKey;
111
111
  */
112
112
  async function randomPositiveCoPrimeTo(x) {
113
113
  while (true) {
114
- const y = await randomBigInt(bigint_crypto_utils_1.bitLength(x));
115
- if (y > BigInt(0) && bigint_mod_arith_1.gcd(x, y) === BigInt(1)) {
114
+ const y = await randomBigInt((0, bigint_crypto_utils_1.bitLength)(x));
115
+ if (y > BigInt(0) && (0, bigint_mod_arith_1.gcd)(x, y) === BigInt(1)) {
116
116
  return y;
117
117
  }
118
118
  }
@@ -128,8 +128,8 @@ async function randomPositiveCoPrimeLessThan(x) {
128
128
  throw new Error('x must be larger than 2');
129
129
  }
130
130
  while (true) {
131
- const y = await randomBigInt(bigint_crypto_utils_1.bitLength(x));
132
- if (y > BigInt(0) && y < x && bigint_mod_arith_1.gcd(x, y) === BigInt(1)) {
131
+ const y = await randomBigInt((0, bigint_crypto_utils_1.bitLength)(x));
132
+ if (y > BigInt(0) && y < x && (0, bigint_mod_arith_1.gcd)(x, y) === BigInt(1)) {
133
133
  return y;
134
134
  }
135
135
  }
@@ -141,7 +141,7 @@ exports.randomPositiveCoPrimeLessThan = randomPositiveCoPrimeLessThan;
141
141
  * @returns {Promise<bigint>}
142
142
  */
143
143
  async function randomBigInt(bitlength) {
144
- return bigIntFromBufferBE(Buffer.from(await bigint_crypto_utils_1.randBits(bitlength, true)));
144
+ return bigIntFromBufferBE(Buffer.from(await (0, bigint_crypto_utils_1.randBits)(bitlength, true)));
145
145
  }
146
146
  exports.randomBigInt = randomBigInt;
147
147
  /**
@@ -162,4 +162,4 @@ exports.getDerivationPath = getDerivationPath;
162
162
  function sha256(input) {
163
163
  return crypto_1.default.createHash('sha256').update(input).digest();
164
164
  }
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFEQUE0QztBQUM1Qyw2REFBMEQ7QUFDMUQsdURBQXVDO0FBQ3ZDLG9EQUE0QjtBQUU1Qjs7O0dBR0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxNQUFnQjtJQUN2RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUMxQixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFKRCw0REFJQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxNQUFnQixFQUFFLFNBQWtCO0lBQzNFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzFCLE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFKRCw0REFJQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxHQUFXO0lBQ3JDLCtEQUErRDtJQUMvRCw0REFBNEQ7SUFDNUQsOERBQThEO0lBQzlELG1EQUFtRDtJQUNuRCxtQkFBbUI7SUFDbkIsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDNUIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDcEI7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQVZELGtDQVVDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLE1BQWMsRUFBRSxTQUFrQjtJQUM1RCxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlC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OztHQUlHO0FBQ0gsU0FBZ0IsaUJBQWlCLENBQUMsSUFBWSxFQUFFLFFBQVEsR0FBRyxJQUFJO0lBQzdELE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEUsTUFBTSxtQkFBbUIsR0FBRztRQUMxQixRQUFRLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDN0MsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO0tBQy9DLENBQUM7SUFDRixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BDLE9BQU8sTUFBTSxHQUFHLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQVJELDhDQVFDO0FBRUQsU0FBUyxNQUFNLENBQUMsS0FBd0I7SUFDdEMsT0FBTyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFB1YmxpY0tleSB9IGZyb20gJ3BhaWxsaWVyLWJpZ2ludCc7XG5pbXBvcnQgeyBiaXRMZW5ndGgsIHJhbmRCaXRzIH0gZnJvbSAnYmlnaW50LWNyeXB0by11dGlscyc7XG5pbXBvcnQgeyBnY2QgfSBmcm9tICdiaWdpbnQtbW9kLWFyaXRoJztcbmltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcblxuLyoqXG4gKiBSZXR1cm5zIGEgYmlnaW50IGFycmF5IGZyb20gYSBoZXggc3RyaW5nIGFycmF5XG4gKiBAcGFyYW0gdmFsdWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0SGV4QXJyVG9CaWdJbnRBcnIodmFsdWVzOiBzdHJpbmdbXSk6IGJpZ2ludFtdIHtcbiAgcmV0dXJuIHZhbHVlcy5tYXAoKHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIGhleFRvQmlnSW50KHZhbHVlKTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGhleCBzdHJpbmcgYXJyYXkgZnJvbSBhIGJpZ2ludCBhcnJheVxuICogQHBhcmFtIHZhbHVlc1xuICogQHBhcmFtIGhleExlbmd0aCAtIGxlbmd0aCB0byBwYWQgZWFjaCBiaWcgaW50IG51bWJlciB0b29cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRCaWdJbnRBcnJUb0hleEFycih2YWx1ZXM6IGJpZ2ludFtdLCBoZXhMZW5ndGg/OiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gIHJldHVybiB2YWx1ZXMubWFwKCh2YWx1ZSkgPT4ge1xuICAgIHJldHVybiBiaWdJbnRUb0hleCh2YWx1ZSwgaGV4TGVuZ3RoKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoZXhUb0JpZ0ludChoZXg6IHN0cmluZyk6IGJpZ2ludCB7XG4gIC8vIFN0cmFuZ2VseSBiaWdpbnQudG9TdHJpbmcoMTYpIGdpdmVzIGEgaGV4IHN0cmluZyB3aXRob3V0IDB4LFxuICAvLyBidXQgaXQgd29uJ3QgYWNjZXB0IHRoZSBzYW1lIHN0cmluZyB3aXRob3V0IDB4IHRvIGNvbnZlcnRcbiAgLy8gdG8gYSBiaWdpbnQgKEJpZ0ludChoZXggc3RyaW5nKSkuIFNvIGhhdmUgdG8gaW50cm9kdWNlIHRoaXNcbiAgLy8gY2hlY2sgdG8gY29udmVydCB0byBhZGQgMHggaW4gY2FzZSBpZiBoZXggc3RyaW5nXG4gIC8vIGRvZXNuJ3QgaGF2ZSBpdC5cbiAgaWYgKGhleC5zbGljZSgwLCAyKSA9PT0gJzB4Jykge1xuICAgIHJldHVybiBCaWdJbnQoaGV4KTtcbiAgfVxuICByZXR1cm4gQmlnSW50KCcweCcgKyBoZXgpO1xufVxuXG4vKipcbiAqIFJldHVybnMgYW4gaGV4IHN0cmluZyBvZiB0aGUgZ2l2ZW4gYmlnaW50XG4gKlxuICogQHBhcmFtIHtiaWdpbnR9IGJpZ2ludCAtIHRoZSBiaWdpbnQgdG8gYmUgY29udmVydGVkIHRvIGhleFxuICogQHBhcmFtIGhleExlbmd0aFxuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgaGV4IHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBiaWdJbnRUb0hleChiaWdpbnQ6IGJpZ2ludCwgaGV4TGVuZ3RoPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgbGV0IGhleCA9IGJpZ2ludC50b1N0cmluZygxNik7XG4gIGhleCA9ICcwJy5zbGljZSgwLCBoZXgubGVuZ3RoICUgMikgKyBoZXg7XG4gIGlmIChoZXhMZW5ndGgpIHtcbiAgICBoZXggPSBoZXgucGFkU3RhcnQoaGV4TGVuZ3RoLCAnMCcpO1xuICB9XG4gIHJldHVybiBoZXg7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiaWdJbnRUb0J1ZmZlckxFKG46IGJpZ2ludCwgbWluQnl0ZXM/OiBudW1iZXIpOiBCdWZmZXIge1xuICBsZXQgdiA9IG4udG9TdHJpbmcoMTYpO1xuICB2ID0gJzAnLnNsaWNlKDAsIHYubGVuZ3RoICUgMikgKyB2O1xuICBjb25zdCBidWYgPSBCdWZmZXIuZnJvbSh2LCAnaGV4JykucmV2ZXJzZSgpO1xuICBpZiAobWluQnl0ZXMgJiYgYnVmLmxlbmd0aCA8IG1pbkJ5dGVzKSB7XG4gICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoW2J1ZiwgQnVmZmVyLmFsbG9jKG1pbkJ5dGVzIC0gYnVmLmxlbmd0aCldKTtcbiAgfVxuICByZXR1cm4gYnVmO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmlnSW50RnJvbUJ1ZmZlckxFKGJ1ZjogQnVmZmVyKTogYmlnaW50IHtcbiAgcmV0dXJuIEJpZ0ludCgnMHgnICsgQnVmZmVyLmZyb20oYnVmKS5yZXZlcnNlKCkudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJpZ0ludFRvQnVmZmVyQkUobjogYmlnaW50LCBtaW5CeXRlcz86IG51bWJlcik6IEJ1ZmZlciB7XG4gIGxldCB2ID0gbi50b1N0cmluZygxNik7XG4gIHYgPSAnMCcuc2xpY2UoMCwgdi5sZW5ndGggJSAyKSArIHY7XG4gIGNvbnN0IGJ1ZiA9IEJ1ZmZlci5mcm9tKHYsICdoZXgnKTtcbiAgaWYgKG1pbkJ5dGVzICYmIGJ1Zi5sZW5ndGggPCBtaW5CeXRlcykge1xuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFtCdWZmZXIuYWxsb2MobWluQnl0ZXMgLSBidWYubGVuZ3RoKSwgYnVmXSk7XG4gIH1cbiAgcmV0dXJuIGJ1Zjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJpZ0ludEZyb21CdWZmZXJCRShidWY6IEJ1ZmZlcik6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoJzB4JyArIGJ1Zi50b1N0cmluZygnaGV4JykpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmlnSW50RnJvbVU4QUJFKGJ1ZjogVWludDhBcnJheSk6IGJpZ2ludCB7XG4gIHJldHVybiBiaWdJbnRGcm9tQnVmZmVyQkUoQnVmZmVyLmZyb20oYnVmKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGFtcCh1OiBiaWdpbnQpOiBiaWdpbnQge1xuICB1ICY9IEJpZ0ludCgnMHg3ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmY4Jyk7XG4gIHUgfD0gQmlnSW50KCcweDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnKTtcbiAgcmV0dXJuIHU7XG59XG5cbi8qKlxuICogRnVuY3Rpb24gZ2V0IHBhaWxsaWVyIHB1YmxpYyBrZXkgc2ltcGxlIHZhcmllbnRcbiAqIEBwYXJhbSB7YmlnaW50fSBuXG4gKiBAcmV0dXJucyB7YmlnaW50fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFpbGxpZXJQdWJsaWNLZXkobjogYmlnaW50KTogUHVibGljS2V5IHtcbiAgcmV0dXJuIG5ldyBQdWJsaWNLZXkobiwgbiArIEJpZ0ludCgxKSk7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSByYW5kb20gcG9zaXRpdmUgaW50ZWdlciBjby1wcmltZSB0byB4XG4gKiBAcGFyYW0geFxuICogQHJldHVybnMge1Byb21pc2U8YmlnaW50Pn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJhbmRvbVBvc2l0aXZlQ29QcmltZVRvKHg6IGJpZ2ludCk6IFByb21pc2U8YmlnaW50PiB7XG4gIHdoaWxlICh0cnVlKSB7XG4gICAgY29uc3QgeSA9IGF3YWl0IHJhbmRvbUJpZ0ludChiaXRMZW5ndGgoeCkpO1xuICAgIGlmICh5ID4gQmlnSW50KDApICYmIGdjZCh4LCB5KSA9PT0gQmlnSW50KDEpKSB7XG4gICAgICByZXR1cm4geTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBHZW5lcmF0ZSBhIHJhbmRvbSBwb3NpdGl2ZSBpbnRlZ2VyIGNvcHJpbWUgbGVzcyB0aGFuIHggd2l0aCB0aGUgc2FtZSBiaXQgZGVwdGguXG4gKiBAcGFyYW0geFxuICogQHJldHVybnMge1Byb21pc2U8YmlnaW50Pn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJhbmRvbVBvc2l0aXZlQ29QcmltZUxlc3NUaGFuKHg6IGJpZ2ludCk6IFByb21pc2U8YmlnaW50PiB7XG4gIGlmICh4IDw9IEJpZ0ludCgyKSkge1xuICAgIHRocm93IG5ldyBFcnJvcigneCBtdXN0IGJlIGxhcmdlciB0aGFuIDInKTtcbiAgfVxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IHkgPSBhd2FpdCByYW5kb21CaWdJbnQoYml0TGVuZ3RoKHgpKTtcbiAgICBpZiAoeSA+IEJpZ0ludCgwKSAmJiB5IDwgeCAmJiBnY2QoeCwgeSkgPT09IEJpZ0ludCgxKSkge1xuICAgICAgcmV0dXJuIHk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSByYW5kb20gbnVtYmVyIG9mIGEgZ2l2ZW4gYml0bGVuZ3RoXG4gKiBAcGFyYW0gYml0bGVuZ3RoXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxiaWdpbnQ+fVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmFuZG9tQmlnSW50KGJpdGxlbmd0aDogbnVtYmVyKTogUHJvbWlzZTxiaWdpbnQ+IHtcbiAgcmV0dXJuIGJpZ0ludEZyb21CdWZmZXJCRShCdWZmZXIuZnJvbShhd2FpdCByYW5kQml0cyhiaXRsZW5ndGgsIHRydWUpKSk7XG59XG5cbi8qKlxuICogQHBhcmFtIHNlZWQgLSB1c2VkIHRvIGNvbnN0cnVjdCBkZXJpdmF0aW9uIHBhdGggZGV0ZXJtaW5pc3RpY2FsbHlcbiAqIEBwYXJhbSBpc01hc3RlciAtIGlmIHNldCwgcGF0aCBzdGFydHMgd2l0aCBwcmVmaXggYG0vYFxuICogQHJldHVybiBwYXRoIGAobS8pLzk5OTk5OS9hL2JgIHdoZXJlIGBhYCBhbmQgYGJgIGFyZSA3LWJ5dGUgcHNldWRvcmFuZG9tIG51bWJlcnMgYmFzZWQgb24gc2VlZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVyaXZhdGlvblBhdGgoc2VlZDogc3RyaW5nLCBpc01hc3RlciA9IHRydWUpOiBzdHJpbmcge1xuICBjb25zdCBkZXJpdmF0aW9uUGF0aElucHV0ID0gc2hhMjU2KHNoYTI1NihgJHtzZWVkfWApKS50b1N0cmluZygnaGV4Jyk7XG4gIGNvbnN0IGRlcml2YXRpb25QYXRoUGFydHMgPSBbXG4gICAgcGFyc2VJbnQoZGVyaXZhdGlvblBhdGhJbnB1dC5zbGljZSgwLCA3KSwgMTYpLFxuICAgIHBhcnNlSW50KGRlcml2YXRpb25QYXRoSW5wdXQuc2xpY2UoNywgMTQpLCAxNiksXG4gIF07XG4gIGNvbnN0IHByZWZpeCA9IGlzTWFzdGVyID8gJ20vJyA6ICcnO1xuICByZXR1cm4gcHJlZml4ICsgJzk5OTk5OS8nICsgZGVyaXZhdGlvblBhdGhQYXJ0cy5qb2luKCcvJyk7XG59XG5cbmZ1bmN0aW9uIHNoYTI1NihpbnB1dDogY3J5cHRvLkJpbmFyeUxpa2UpOiBCdWZmZXIge1xuICByZXR1cm4gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShpbnB1dCkuZGlnZXN0KCk7XG59XG4iXX0=
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFEQUE0QztBQUM1Qyw2REFBMEQ7QUFDMUQsdURBQXVDO0FBQ3ZDLG9EQUE0QjtBQUU1Qjs7O0dBR0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxNQUFnQjtJQUN2RCxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUMxQixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFKRCw0REFJQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxNQUFnQixFQUFFLFNBQWtCO0lBQzNFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQzFCLE9BQU8sV0FBVyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFKRCw0REFJQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxHQUFXO0lBQ3JDLCtEQUErRDtJQUMvRCw0REFBNEQ7SUFDNUQsOERBQThEO0lBQzlELG1EQUFtRDtJQUNuRCxtQkFBbUI7SUFDbkIsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDNUIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDcEI7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQVZELGtDQVVDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLE1BQWMsRUFBRSxTQUFrQjtJQUM1RCxJQUFJLEdBQUcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlC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MUUsQ0FBQztBQUZELG9DQUVDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLGlCQUFpQixDQUFDLElBQVksRUFBRSxRQUFRLEdBQUcsSUFBSTtJQUM3RCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sbUJBQW1CLEdBQUc7UUFDMUIsUUFBUSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzdDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztLQUMvQyxDQUFDO0lBQ0YsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNwQyxPQUFPLE1BQU0sR0FBRyxTQUFTLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFSRCw4Q0FRQztBQUVELFNBQVMsTUFBTSxDQUFDLEtBQXdCO0lBQ3RDLE9BQU8sZ0JBQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQzVELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQdWJsaWNLZXkgfSBmcm9tICdwYWlsbGllci1iaWdpbnQnO1xuaW1wb3J0IHsgYml0TGVuZ3RoLCByYW5kQml0cyB9IGZyb20gJ2JpZ2ludC1jcnlwdG8tdXRpbHMnO1xuaW1wb3J0IHsgZ2NkIH0gZnJvbSAnYmlnaW50LW1vZC1hcml0aCc7XG5pbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5cbi8qKlxuICogUmV0dXJucyBhIGJpZ2ludCBhcnJheSBmcm9tIGEgaGV4IHN0cmluZyBhcnJheVxuICogQHBhcmFtIHZhbHVlc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY29udmVydEhleEFyclRvQmlnSW50QXJyKHZhbHVlczogc3RyaW5nW10pOiBiaWdpbnRbXSB7XG4gIHJldHVybiB2YWx1ZXMubWFwKCh2YWx1ZSkgPT4ge1xuICAgIHJldHVybiBoZXhUb0JpZ0ludCh2YWx1ZSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBoZXggc3RyaW5nIGFycmF5IGZyb20gYSBiaWdpbnQgYXJyYXlcbiAqIEBwYXJhbSB2YWx1ZXNcbiAqIEBwYXJhbSBoZXhMZW5ndGggLSBsZW5ndGggdG8gcGFkIGVhY2ggYmlnIGludCBudW1iZXIgdG9vXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0QmlnSW50QXJyVG9IZXhBcnIodmFsdWVzOiBiaWdpbnRbXSwgaGV4TGVuZ3RoPzogbnVtYmVyKTogc3RyaW5nW10ge1xuICByZXR1cm4gdmFsdWVzLm1hcCgodmFsdWUpID0+IHtcbiAgICByZXR1cm4gYmlnSW50VG9IZXgodmFsdWUsIGhleExlbmd0aCk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGV4VG9CaWdJbnQoaGV4OiBzdHJpbmcpOiBiaWdpbnQge1xuICAvLyBTdHJhbmdlbHkgYmlnaW50LnRvU3RyaW5nKDE2KSBnaXZlcyBhIGhleCBzdHJpbmcgd2l0aG91dCAweCxcbiAgLy8gYnV0IGl0IHdvbid0IGFjY2VwdCB0aGUgc2FtZSBzdHJpbmcgd2l0aG91dCAweCB0byBjb252ZXJ0XG4gIC8vIHRvIGEgYmlnaW50IChCaWdJbnQoaGV4IHN0cmluZykpLiBTbyBoYXZlIHRvIGludHJvZHVjZSB0aGlzXG4gIC8vIGNoZWNrIHRvIGNvbnZlcnQgdG8gYWRkIDB4IGluIGNhc2UgaWYgaGV4IHN0cmluZ1xuICAvLyBkb2Vzbid0IGhhdmUgaXQuXG4gIGlmIChoZXguc2xpY2UoMCwgMikgPT09ICcweCcpIHtcbiAgICByZXR1cm4gQmlnSW50KGhleCk7XG4gIH1cbiAgcmV0dXJuIEJpZ0ludCgnMHgnICsgaGV4KTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGhleCBzdHJpbmcgb2YgdGhlIGdpdmVuIGJpZ2ludFxuICpcbiAqIEBwYXJhbSB7YmlnaW50fSBiaWdpbnQgLSB0aGUgYmlnaW50IHRvIGJlIGNvbnZlcnRlZCB0byBoZXhcbiAqIEBwYXJhbSBoZXhMZW5ndGhcbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gdGhlIGhleCB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYmlnSW50VG9IZXgoYmlnaW50OiBiaWdpbnQsIGhleExlbmd0aD86IG51bWJlcik6IHN0cmluZyB7XG4gIGxldCBoZXggPSBiaWdpbnQudG9TdHJpbmcoMTYpO1xuICBoZXggPSAnMCcuc2xpY2UoMCwgaGV4Lmxlbmd0aCAlIDIpICsgaGV4O1xuICBpZiAoaGV4TGVuZ3RoKSB7XG4gICAgaGV4ID0gaGV4LnBhZFN0YXJ0KGhleExlbmd0aCwgJzAnKTtcbiAgfVxuICByZXR1cm4gaGV4O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYmlnSW50VG9CdWZmZXJMRShuOiBiaWdpbnQsIG1pbkJ5dGVzPzogbnVtYmVyKTogQnVmZmVyIHtcbiAgbGV0IHYgPSBuLnRvU3RyaW5nKDE2KTtcbiAgdiA9ICcwJy5zbGljZSgwLCB2Lmxlbmd0aCAlIDIpICsgdjtcbiAgY29uc3QgYnVmID0gQnVmZmVyLmZyb20odiwgJ2hleCcpLnJldmVyc2UoKTtcbiAgaWYgKG1pbkJ5dGVzICYmIGJ1Zi5sZW5ndGggPCBtaW5CeXRlcykge1xuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFtidWYsIEJ1ZmZlci5hbGxvYyhtaW5CeXRlcyAtIGJ1Zi5sZW5ndGgpXSk7XG4gIH1cbiAgcmV0dXJuIGJ1Zjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJpZ0ludEZyb21CdWZmZXJMRShidWY6IEJ1ZmZlcik6IGJpZ2ludCB7XG4gIHJldHVybiBCaWdJbnQoJzB4JyArIEJ1ZmZlci5mcm9tKGJ1ZikucmV2ZXJzZSgpLnRvU3RyaW5nKCdoZXgnKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiaWdJbnRUb0J1ZmZlckJFKG46IGJpZ2ludCwgbWluQnl0ZXM/OiBudW1iZXIpOiBCdWZmZXIge1xuICBsZXQgdiA9IG4udG9TdHJpbmcoMTYpO1xuICB2ID0gJzAnLnNsaWNlKDAsIHYubGVuZ3RoICUgMikgKyB2O1xuICBjb25zdCBidWYgPSBCdWZmZXIuZnJvbSh2LCAnaGV4Jyk7XG4gIGlmIChtaW5CeXRlcyAmJiBidWYubGVuZ3RoIDwgbWluQnl0ZXMpIHtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChbQnVmZmVyLmFsbG9jKG1pbkJ5dGVzIC0gYnVmLmxlbmd0aCksIGJ1Zl0pO1xuICB9XG4gIHJldHVybiBidWY7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBiaWdJbnRGcm9tQnVmZmVyQkUoYnVmOiBCdWZmZXIpOiBiaWdpbnQge1xuICByZXR1cm4gQmlnSW50KCcweCcgKyBidWYudG9TdHJpbmcoJ2hleCcpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJpZ0ludEZyb21VOEFCRShidWY6IFVpbnQ4QXJyYXkpOiBiaWdpbnQge1xuICByZXR1cm4gYmlnSW50RnJvbUJ1ZmZlckJFKEJ1ZmZlci5mcm9tKGJ1ZikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhbXAodTogYmlnaW50KTogYmlnaW50IHtcbiAgdSAmPSBCaWdJbnQoJzB4N2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmOCcpO1xuICB1IHw9IEJpZ0ludCgnMHg0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJyk7XG4gIHJldHVybiB1O1xufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGdldCBwYWlsbGllciBwdWJsaWMga2V5IHNpbXBsZSB2YXJpZW50XG4gKiBAcGFyYW0ge2JpZ2ludH0gblxuICogQHJldHVybnMge2JpZ2ludH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBhaWxsaWVyUHVibGljS2V5KG46IGJpZ2ludCk6IFB1YmxpY0tleSB7XG4gIHJldHVybiBuZXcgUHVibGljS2V5KG4sIG4gKyBCaWdJbnQoMSkpO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgcmFuZG9tIHBvc2l0aXZlIGludGVnZXIgY28tcHJpbWUgdG8geFxuICogQHBhcmFtIHhcbiAqIEByZXR1cm5zIHtQcm9taXNlPGJpZ2ludD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByYW5kb21Qb3NpdGl2ZUNvUHJpbWVUbyh4OiBiaWdpbnQpOiBQcm9taXNlPGJpZ2ludD4ge1xuICB3aGlsZSAodHJ1ZSkge1xuICAgIGNvbnN0IHkgPSBhd2FpdCByYW5kb21CaWdJbnQoYml0TGVuZ3RoKHgpKTtcbiAgICBpZiAoeSA+IEJpZ0ludCgwKSAmJiBnY2QoeCwgeSkgPT09IEJpZ0ludCgxKSkge1xuICAgICAgcmV0dXJuIHk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogR2VuZXJhdGUgYSByYW5kb20gcG9zaXRpdmUgaW50ZWdlciBjb3ByaW1lIGxlc3MgdGhhbiB4IHdpdGggdGhlIHNhbWUgYml0IGRlcHRoLlxuICogQHBhcmFtIHhcbiAqIEByZXR1cm5zIHtQcm9taXNlPGJpZ2ludD59XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByYW5kb21Qb3NpdGl2ZUNvUHJpbWVMZXNzVGhhbih4OiBiaWdpbnQpOiBQcm9taXNlPGJpZ2ludD4ge1xuICBpZiAoeCA8PSBCaWdJbnQoMikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3ggbXVzdCBiZSBsYXJnZXIgdGhhbiAyJyk7XG4gIH1cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBjb25zdCB5ID0gYXdhaXQgcmFuZG9tQmlnSW50KGJpdExlbmd0aCh4KSk7XG4gICAgaWYgKHkgPiBCaWdJbnQoMCkgJiYgeSA8IHggJiYgZ2NkKHgsIHkpID09PSBCaWdJbnQoMSkpIHtcbiAgICAgIHJldHVybiB5O1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEdlbmVyYXRlIGEgcmFuZG9tIG51bWJlciBvZiBhIGdpdmVuIGJpdGxlbmd0aFxuICogQHBhcmFtIGJpdGxlbmd0aFxuICogQHJldHVybnMge1Byb21pc2U8YmlnaW50Pn1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJhbmRvbUJpZ0ludChiaXRsZW5ndGg6IG51bWJlcik6IFByb21pc2U8YmlnaW50PiB7XG4gIHJldHVybiBiaWdJbnRGcm9tQnVmZmVyQkUoQnVmZmVyLmZyb20oYXdhaXQgcmFuZEJpdHMoYml0bGVuZ3RoLCB0cnVlKSkpO1xufVxuXG4vKipcbiAqIEBwYXJhbSBzZWVkIC0gdXNlZCB0byBjb25zdHJ1Y3QgZGVyaXZhdGlvbiBwYXRoIGRldGVybWluaXN0aWNhbGx5XG4gKiBAcGFyYW0gaXNNYXN0ZXIgLSBpZiBzZXQsIHBhdGggc3RhcnRzIHdpdGggcHJlZml4IGBtL2BcbiAqIEByZXR1cm4gcGF0aCBgKG0vKS85OTk5OTkvYS9iYCB3aGVyZSBgYWAgYW5kIGBiYCBhcmUgNy1ieXRlIHBzZXVkb3JhbmRvbSBudW1iZXJzIGJhc2VkIG9uIHNlZWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldERlcml2YXRpb25QYXRoKHNlZWQ6IHN0cmluZywgaXNNYXN0ZXIgPSB0cnVlKTogc3RyaW5nIHtcbiAgY29uc3QgZGVyaXZhdGlvblBhdGhJbnB1dCA9IHNoYTI1NihzaGEyNTYoYCR7c2VlZH1gKSkudG9TdHJpbmcoJ2hleCcpO1xuICBjb25zdCBkZXJpdmF0aW9uUGF0aFBhcnRzID0gW1xuICAgIHBhcnNlSW50KGRlcml2YXRpb25QYXRoSW5wdXQuc2xpY2UoMCwgNyksIDE2KSxcbiAgICBwYXJzZUludChkZXJpdmF0aW9uUGF0aElucHV0LnNsaWNlKDcsIDE0KSwgMTYpLFxuICBdO1xuICBjb25zdCBwcmVmaXggPSBpc01hc3RlciA/ICdtLycgOiAnJztcbiAgcmV0dXJuIHByZWZpeCArICc5OTk5OTkvJyArIGRlcml2YXRpb25QYXRoUGFydHMuam9pbignLycpO1xufVxuXG5mdW5jdGlvbiBzaGEyNTYoaW5wdXQ6IGNyeXB0by5CaW5hcnlMaWtlKTogQnVmZmVyIHtcbiAgcmV0dXJuIGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoaW5wdXQpLmRpZ2VzdCgpO1xufVxuIl19