@bitgo/sdk-core 1.2.0-rc.2 → 2.0.0-hotfix.1

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 (57) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts +2 -0
  3. package/dist/src/account-lib/baseCoin/blsKeyPair.d.ts.map +1 -1
  4. package/dist/src/account-lib/baseCoin/blsKeyPair.js +49 -19
  5. package/dist/src/account-lib/baseCoin/enum.d.ts +3 -2
  6. package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
  7. package/dist/src/account-lib/baseCoin/enum.js +3 -1
  8. package/dist/src/account-lib/baseCoin/errors.d.ts +3 -0
  9. package/dist/src/account-lib/baseCoin/errors.d.ts.map +1 -1
  10. package/dist/src/account-lib/baseCoin/errors.js +8 -2
  11. package/dist/src/account-lib/baseCoin/iface.d.ts +2 -0
  12. package/dist/src/account-lib/baseCoin/iface.d.ts.map +1 -1
  13. package/dist/src/account-lib/baseCoin/iface.js +1 -1
  14. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts +2 -1
  15. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.d.ts.map +1 -1
  16. package/dist/src/account-lib/mpc/tss/ecdsa/ecdsa.js +9 -4
  17. package/dist/src/account-lib/util/crypto.d.ts +1 -1
  18. package/dist/src/account-lib/util/crypto.d.ts.map +1 -1
  19. package/dist/src/account-lib/util/crypto.js +9 -5
  20. package/dist/src/bitgo/baseCoin/baseCoin.d.ts +5 -0
  21. package/dist/src/bitgo/baseCoin/baseCoin.d.ts.map +1 -1
  22. package/dist/src/bitgo/baseCoin/baseCoin.js +8 -1
  23. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +3 -0
  24. package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
  25. package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
  26. package/dist/src/bitgo/config.d.ts +6 -0
  27. package/dist/src/bitgo/config.d.ts.map +1 -1
  28. package/dist/src/bitgo/lightning/iLightning.d.ts +120 -0
  29. package/dist/src/bitgo/lightning/iLightning.d.ts.map +1 -0
  30. package/dist/src/bitgo/lightning/iLightning.js +67 -0
  31. package/dist/src/bitgo/lightning/index.d.ts +3 -0
  32. package/dist/src/bitgo/lightning/index.d.ts.map +1 -0
  33. package/dist/src/bitgo/lightning/index.js +15 -0
  34. package/dist/src/bitgo/lightning/lightning.d.ts +14 -0
  35. package/dist/src/bitgo/lightning/lightning.d.ts.map +1 -0
  36. package/dist/src/bitgo/lightning/lightning.js +43 -0
  37. package/dist/src/bitgo/tss/ecdsa/types.d.ts +5 -0
  38. package/dist/src/bitgo/tss/ecdsa/types.d.ts.map +1 -1
  39. package/dist/src/bitgo/tss/ecdsa/types.js +8 -2
  40. package/dist/src/bitgo/utils/blsUtils.d.ts.map +1 -1
  41. package/dist/src/bitgo/utils/blsUtils.js +93 -32
  42. package/dist/src/bitgo/utils/decode.d.ts +15 -0
  43. package/dist/src/bitgo/utils/decode.d.ts.map +1 -0
  44. package/dist/src/bitgo/utils/decode.js +56 -0
  45. package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
  46. package/dist/src/bitgo/utils/mpcUtils.js +2 -1
  47. package/dist/src/bitgo/utils/tss/baseTypes.d.ts +5 -0
  48. package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
  49. package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
  50. package/dist/src/bitgo/wallet/iWallet.d.ts +6 -5
  51. package/dist/src/bitgo/wallet/iWallet.d.ts.map +1 -1
  52. package/dist/src/bitgo/wallet/iWallet.js +1 -1
  53. package/dist/src/bitgo/wallet/wallet.d.ts +7 -2
  54. package/dist/src/bitgo/wallet/wallet.d.ts.map +1 -1
  55. package/dist/src/bitgo/wallet/wallet.js +44 -16
  56. package/dist/tsconfig.tsbuildinfo +1919 -652
  57. package/package.json +6 -5
@@ -38,18 +38,23 @@ class Ecdsa {
38
38
  * @param {number} index participant index
39
39
  * @param {number} threshold Signing threshold
40
40
  * @param {number} numShares Number of shares
41
+ * @param {Buffer} seed optional seed to use for key generation
41
42
  * @returns {Promise<KeyShare>} Returns the private p-share
42
43
  * and n-shares to be distributed to participants at their corresponding index.
43
44
  */
44
- async keyShare(index, threshold, numShares) {
45
+ async keyShare(index, threshold, numShares, seed) {
46
+ var _a, _b;
45
47
  if (!(index > 0 && index <= numShares && threshold <= numShares && threshold === 2)) {
46
48
  throw 'Invalid KeyShare Config';
47
49
  }
50
+ if (seed && seed.length !== 72) {
51
+ throw new Error('Seed must have length 72');
52
+ }
48
53
  // Generate additively homomorphic encryption key.
49
54
  const { publicKey, privateKey } = await paillierBigint.generateRandomKeys(3072, true);
50
- const u = Ecdsa.curve.scalarRandom();
55
+ const u = (_a = (seed && util_1.bigIntFromU8ABE(secp.utils.hashToPrivateKey(seed.slice(0, 40))))) !== null && _a !== void 0 ? _a : Ecdsa.curve.scalarRandom();
51
56
  const y = Ecdsa.curve.basePointMult(u);
52
- const chaincode = crypto_1.randomBytes(32);
57
+ const chaincode = (_b = seed === null || seed === void 0 ? void 0 : seed.slice(40)) !== null && _b !== void 0 ? _b : crypto_1.randomBytes(32);
53
58
  // Compute secret shares of the private key
54
59
  const uShares = Ecdsa.shamir.split(u, threshold, numShares);
55
60
  const currentParticipant = {
@@ -329,4 +334,4 @@ class Ecdsa {
329
334
  exports.default = Ecdsa;
330
335
  Ecdsa.curve = new curves_1.Secp256k1Curve();
331
336
  Ecdsa.shamir = new shamir_1.default(Ecdsa.curve);
332
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS9lY2RzYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRUFBa0Q7QUFDbEQsdURBQXlDO0FBQ3pDLG1DQUFpRDtBQUNqRCxpREFBbUQ7QUFDbkQscUNBQXlHO0FBQ3pHLHlDQUE4QztBQUM5QywwREFBa0M7QUF5QmxDOztHQUVHO0FBQ0gsTUFBcUIsS0FBSztJQUd4Qjs7Ozs7OztPQU9HO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFhLEVBQUUsU0FBaUIsRUFBRSxTQUFpQjtRQUNoRSxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksU0FBUyxJQUFJLFNBQVMsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbkYsTUFBTSx5QkFBeUIsQ0FBQztTQUNqQztRQUNELGtEQUFrRDtRQUNsRCxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sY0FBYyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3JDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sU0FBUyxHQUFHLG9CQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbEMsMkNBQTJDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDNUQsTUFBTSxrQkFBa0IsR0FBVztZQUNqQyxDQUFDLEVBQUUsS0FBSztZQUNSLENBQUMsRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDakMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUM3QixDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzNCLENBQUMsRUFBRSx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUMxQyxDQUFDLEVBQUUsdUJBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDdkQsU0FBUyxFQUFFLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQ3JDLENBQUM7UUFDRixNQUFNLFFBQVEsR0FBYTtZQUN6QixNQUFNLEVBQUUsa0JBQWtCO1lBQzFCLE9BQU8sRUFBRSxFQUFFO1NBQ1osQ0FBQztRQUVGLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxFQUFFO1lBQzNCLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxJQUFJLGdCQUFnQixLQUFLLEtBQUssRUFBRTtnQkFDOUIsUUFBUSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHO29CQUNuQyxDQUFDLEVBQUUsZ0JBQWdCO29CQUNuQixDQUFDLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDO29CQUMxQixDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUMzQixDQUFDLEVBQUUsdUJBQWdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7b0JBQzFDLENBQUMsRUFBRSx1QkFBZ0IsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO29CQUNsRSxTQUFTLEVBQUUsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7aUJBQzNCLENBQUM7YUFDYjtTQUNGO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFVBQVUsQ0FBQyxNQUFjLEVBQUUsT0FBaUI7UUFDMUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN2QywwQkFBMEI7UUFDMUIsTUFBTSxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsb0JBQVcsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JHLG9CQUFvQjtRQUNwQixNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQyxvQkFBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdEcsb0ZBQW9GO1FBQ3BGLE1BQU0sVUFBVSxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMseUJBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xILE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQ2pDLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQ2pCLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDLFFBQVE7U0FDOUcsQ0FBQztRQUVGLE1BQU0sWUFBWSxHQUFnQjtZQUNoQyxNQUFNLEVBQUU7Z0JBQ04sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNYLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDWCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNYLENBQUMsRUFBRSx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDMUMsQ0FBQyxFQUFFLHVCQUFnQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUMxQyxTQUFTLEVBQUUsdUJBQWdCLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDM0Q7WUFDRCxPQUFPLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFFRixLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRTtZQUMzQixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxZQUFZLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEdBQUc7Z0JBQ3ZDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDWCxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDdEIsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7YUFDdkIsQ0FBQztTQUNIO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILFNBQVMsQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUN0QyxNQUFNLEVBQUUsR0FBRywyQkFBb0IsQ0FBQyxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXZELE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6QyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUcsTUFBTSxDQUFDLEdBQUc7WUFDUixLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUQsb0JBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1NBQzVCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakMsTUFBTSxPQUFPLEdBQWdCO1lBQzNCLE1BQU0sRUFBRTtnQkFDTixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNYLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDWCxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNYLENBQUMsRUFBRSx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDMUMsQ0FBQyxFQUFFLHVCQUFnQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUMxQyxLQUFLLEVBQUUsdUJBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDbkQ7WUFDRCxNQUFNLEVBQUUsRUFBWTtTQUNyQixDQUFDO1FBRUYsT0FBTyxDQUFDLE1BQU0sR0FBRztZQUNmLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNYLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNYLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDcEIsQ0FBQyxFQUFFLHVCQUFnQixDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUN2RCxDQUFDO1FBRUYsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsV0FBVyxDQUFDLE1BQW1CO1FBQzdCLElBQUksZ0JBQWlDLEVBQUUsYUFBK0IsQ0FBQztRQUN2RSxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtZQUNuRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsbUNBQW1DO1lBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakQsYUFBYSxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBWSxDQUFDO1lBQ2xFLGdCQUFnQixHQUFHLEVBQUUsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBWSxDQUFDO1NBQ3hFO2FBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDaEYsWUFBWSxHQUFHLElBQUksQ0FBQztZQUNwQixhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQWMsQ0FBQyxDQUFDLENBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQWMsQ0FBQztZQUN2RyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBYSxDQUFDLENBQUMsQ0FBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBYSxDQUFDO1NBQ3hHO2FBQU07WUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7U0FDcEQ7UUFDRCxJQUFJLGdCQUFnQixDQUFDLENBQUMsS0FBSyxhQUFhLENBQUMsQ0FBQyxFQUFFO1lBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztTQUNqRDtRQUNELElBQUksYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQzFCLE1BQU0sRUFBRSxHQUFHLDJCQUFvQixDQUFDLG9CQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNqRSxNQUFNLEVBQUUsR0FBRyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQ3RDLG9CQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBVyxDQUFDLEVBQ3pDLG9CQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBVyxDQUFDLEVBQ3pDLEVBQUUsQ0FDSCxDQUFDO1lBQ0YsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxvQkFBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzNELGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLHVCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLG9CQUFXLENBQUMsYUFBYSxDQUFDLEVBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQywyQkFBMkI7WUFDM0YsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsdUJBQWdCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVGLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDN0IsT0FBTyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixPQUFPLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QixPQUFPLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1QjtRQUNELElBQUksYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sQ0FBQyxHQUFHLG9CQUFXLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUM7WUFDNUUsSUFBSSxFQUFFLEdBQUcsMkJBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDakMsTUFBTSxDQUFDLEdBQUcsb0JBQVcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUUxQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3pDLGdCQUFnQixDQUFDLElBQUksR0FBRyx1QkFBZ0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FDOUcsS0FBSyxDQUNOLENBQUM7WUFDRixNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLG9CQUFXLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEcsYUFBYSxDQUFDLEtBQUssR0FBRyx1QkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWxFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLHVCQUFnQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxRixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLG9CQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekYsYUFBYSxDQUFDLEVBQUUsR0FBRyx1QkFBZ0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzVELElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzdCLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQixPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMzQjtpQkFBTTtnQkFDTCxFQUFFLEdBQUcsMkJBQW9CLENBQUMsb0JBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzRCxhQUFhLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyx1QkFBZ0IsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLG9CQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDeEc7U0FDRjtRQUNELElBQUksQ0FBQyxDQUFDLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFFO1lBQzFELGFBQWEsR0FBRztnQkFDZCxDQUFDLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQztnQkFDckIsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxHQUFHLENBQUM7YUFDdEIsQ0FBQztTQUNIO1FBQ0QsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEYsSUFBSSxZQUFZLEVBQUU7WUFDaEIsT0FBTztnQkFDTCxPQUFPLEVBQUUsYUFBd0I7Z0JBQ2pDLE1BQU0sRUFBRSxnQkFBMEI7YUFDbkMsQ0FBQztTQUNIO1FBQ0QsT0FBTztZQUNMLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLE1BQU0sRUFBRSxnQkFBMEI7U0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsV0FBVyxDQUFDLE1BQW1CO1FBQzdCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDN0IsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQztRQUMzQixNQUFNLEtBQUssR0FBRyxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxNQUFNLEtBQUssR0FBRyxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxNQUFNLElBQUksR0FBRyxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QyxNQUFNLEVBQUUsR0FBRyxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQyxNQUFNLEVBQUUsR0FBRyxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQyxNQUFNLENBQUMsR0FBRyxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxNQUFNLENBQUMsR0FBRyxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVoQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUcsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9DLE9BQU87WUFDTCxNQUFNLEVBQUU7Z0JBQ04sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUNYLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDWCxDQUFDLEVBQUUsdUJBQWdCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQzFDLE9BQU8sRUFBRSx1QkFBZ0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFDdEQsS0FBSyxFQUFFLHVCQUFnQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUNsRCxLQUFLLEVBQUUsdUJBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7YUFDbkQ7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNOLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDWCxLQUFLLEVBQUUsdUJBQWdCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQ2xELEtBQUssRUFBRSx1QkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUNuRDtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBSSxDQUFDLENBQVMsRUFBRSxNQUFjLEVBQUUsTUFBYztRQUM1QyxNQUFNLENBQUMsR0FBRyxtQkFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVsRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRTFGLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUNqQyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxvQkFBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUMxRSxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FDaEMsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHVCQUFnQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFFbkIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQzdCLEtBQUssQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLHNCQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsb0JBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDakUsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLG9CQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQ3ZELENBQUM7UUFDRixPQUFPO1lBQ0wsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxFQUFFLHVCQUFnQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQzFDLENBQUMsRUFBRSx1QkFBZ0IsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUMzQyxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxrQkFBa0IsQ0FBQyxNQUFnQjtRQUNqQyxzQkFBc0I7UUFDdEIsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckYsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7U0FDbkU7UUFFRCxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxvQkFBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFckYsZUFBZTtRQUNmLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsT0FBTztZQUNMLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ2pCLENBQUMsRUFBRSxDQUFDO1lBQ0osQ0FBQyxFQUFFLHVCQUFnQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1NBQzNDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsT0FBZSxFQUFFLFNBQW9CO1FBQzFDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3ZCLG1CQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUM3QyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ1osdUJBQWdCLENBQUMsb0JBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakQsdUJBQWdCLENBQUMsb0JBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDbEQsQ0FBQyxFQUNGLG9CQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzVCLENBQUM7SUFDSixDQUFDOztBQS9VSCx3QkFnVkM7QUEvVVEsV0FBSyxHQUFtQixJQUFJLHVCQUFjLEVBQUUsQ0FBQztBQUM3QyxZQUFNLEdBQVcsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhaWxsaWVyQmlnaW50IGZyb20gJ3BhaWxsaWVyLWJpZ2ludCc7XG5pbXBvcnQgKiBhcyBzZWNwIGZyb20gJ0Bub2JsZS9zZWNwMjU2azEnO1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMsIGNyZWF0ZUhhc2ggfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgaGV4VG9CaWdJbnQgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NyeXB0byc7XG5pbXBvcnQgeyBiaWdJbnRGcm9tQnVmZmVyQkUsIGJpZ0ludFRvQnVmZmVyQkUsIGJpZ0ludEZyb21VOEFCRSwgZ2V0UGFpbGxpZXJQdWJsaWNLZXkgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB7IFNlY3AyNTZrMUN1cnZlIH0gZnJvbSAnLi4vLi4vY3VydmVzJztcbmltcG9ydCBTaGFtaXIgZnJvbSAnLi4vLi4vc2hhbWlyJztcbmltcG9ydCB7XG4gIE5TaGFyZSxcbiAgUFNoYXJlLFxuICBLZXlTaGFyZSxcbiAgS2V5Q29tYmluZWQsXG4gIEJTaGFyZSxcbiAgQVNoYXJlLFxuICBTaWduYXR1cmUsXG4gIFNpZ25Db252ZXJ0UlQsXG4gIFNpZ25Db252ZXJ0LFxuICBHU2hhcmUsXG4gIE1VU2hhcmUsXG4gIFNpZ25Db21iaW5lLFxuICBTaWduQ29tYmluZVJULFxuICBEU2hhcmUsXG4gIE9TaGFyZSxcbiAgU2lnblJULFxuICBTU2hhcmUsXG4gIFNpZ25TaGFyZVJULFxuICBLU2hhcmUsXG4gIFhTaGFyZSxcbiAgWVNoYXJlLFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBFQ0RTQSBUU1MgaW1wbGVtZW50YXRpb24gc3VwcG9ydGluZyAyOm4gVGhyZXNob2xkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVjZHNhIHtcbiAgc3RhdGljIGN1cnZlOiBTZWNwMjU2azFDdXJ2ZSA9IG5ldyBTZWNwMjU2azFDdXJ2ZSgpO1xuICBzdGF0aWMgc2hhbWlyOiBTaGFtaXIgPSBuZXcgU2hhbWlyKEVjZHNhLmN1cnZlKTtcbiAgLyoqXG4gICAqIEdlbmVyYXRlIHNoYXJlcyBmb3IgcGFydGljaXBhbnQgYXQgaW5kZXggYW5kIHNwbGl0IGtleXMgYCh0aHJlc2hvbGQsbnVtU2hhcmVzKWAgd2F5cy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IHBhcnRpY2lwYW50IGluZGV4XG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aHJlc2hvbGQgU2lnbmluZyB0aHJlc2hvbGRcbiAgICogQHBhcmFtIHtudW1iZXJ9IG51bVNoYXJlcyAgTnVtYmVyIG9mIHNoYXJlc1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxLZXlTaGFyZT59IFJldHVybnMgdGhlIHByaXZhdGUgcC1zaGFyZVxuICAgKiBhbmQgbi1zaGFyZXMgdG8gYmUgZGlzdHJpYnV0ZWQgdG8gcGFydGljaXBhbnRzIGF0IHRoZWlyIGNvcnJlc3BvbmRpbmcgaW5kZXguXG4gICAqL1xuICBhc3luYyBrZXlTaGFyZShpbmRleDogbnVtYmVyLCB0aHJlc2hvbGQ6IG51bWJlciwgbnVtU2hhcmVzOiBudW1iZXIpOiBQcm9taXNlPEtleVNoYXJlPiB7XG4gICAgaWYgKCEoaW5kZXggPiAwICYmIGluZGV4IDw9IG51bVNoYXJlcyAmJiB0aHJlc2hvbGQgPD0gbnVtU2hhcmVzICYmIHRocmVzaG9sZCA9PT0gMikpIHtcbiAgICAgIHRocm93ICdJbnZhbGlkIEtleVNoYXJlIENvbmZpZyc7XG4gICAgfVxuICAgIC8vIEdlbmVyYXRlIGFkZGl0aXZlbHkgaG9tb21vcnBoaWMgZW5jcnlwdGlvbiBrZXkuXG4gICAgY29uc3QgeyBwdWJsaWNLZXksIHByaXZhdGVLZXkgfSA9IGF3YWl0IHBhaWxsaWVyQmlnaW50LmdlbmVyYXRlUmFuZG9tS2V5cygzMDcyLCB0cnVlKTtcbiAgICBjb25zdCB1ID0gRWNkc2EuY3VydmUuc2NhbGFyUmFuZG9tKCk7XG4gICAgY29uc3QgeSA9IEVjZHNhLmN1cnZlLmJhc2VQb2ludE11bHQodSk7XG4gICAgY29uc3QgY2hhaW5jb2RlID0gcmFuZG9tQnl0ZXMoMzIpO1xuICAgIC8vIENvbXB1dGUgc2VjcmV0IHNoYXJlcyBvZiB0aGUgcHJpdmF0ZSBrZXlcbiAgICBjb25zdCB1U2hhcmVzID0gRWNkc2Euc2hhbWlyLnNwbGl0KHUsIHRocmVzaG9sZCwgbnVtU2hhcmVzKTtcbiAgICBjb25zdCBjdXJyZW50UGFydGljaXBhbnQ6IFBTaGFyZSA9IHtcbiAgICAgIGk6IGluZGV4LFxuICAgICAgbDogcHJpdmF0ZUtleS5sYW1iZGEudG9TdHJpbmcoMTYpLFxuICAgICAgbTogcHJpdmF0ZUtleS5tdS50b1N0cmluZygxNiksXG4gICAgICBuOiBwdWJsaWNLZXkubi50b1N0cmluZygxNiksXG4gICAgICB5OiBiaWdJbnRUb0J1ZmZlckJFKHksIDMzKS50b1N0cmluZygnaGV4JyksXG4gICAgICB1OiBiaWdJbnRUb0J1ZmZlckJFKHVTaGFyZXNbaW5kZXhdLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgY2hhaW5jb2RlOiBjaGFpbmNvZGUudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gICAgY29uc3Qga2V5U2hhcmU6IEtleVNoYXJlID0ge1xuICAgICAgcFNoYXJlOiBjdXJyZW50UGFydGljaXBhbnQsXG4gICAgICBuU2hhcmVzOiB7fSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBzaGFyZSBpbiB1U2hhcmVzKSB7XG4gICAgICBjb25zdCBwYXJ0aWNpcGFudEluZGV4ID0gcGFyc2VJbnQoc2hhcmUsIDEwKTtcbiAgICAgIGlmIChwYXJ0aWNpcGFudEluZGV4ICE9PSBpbmRleCkge1xuICAgICAgICBrZXlTaGFyZS5uU2hhcmVzW3BhcnRpY2lwYW50SW5kZXhdID0ge1xuICAgICAgICAgIGk6IHBhcnRpY2lwYW50SW5kZXgsXG4gICAgICAgICAgajogY3VycmVudFBhcnRpY2lwYW50WydpJ10sXG4gICAgICAgICAgbjogcHVibGljS2V5Lm4udG9TdHJpbmcoMTYpLFxuICAgICAgICAgIHk6IGJpZ0ludFRvQnVmZmVyQkUoeSwgMzMpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgICB1OiBiaWdJbnRUb0J1ZmZlckJFKHVTaGFyZXNbcGFydGljaXBhbnRJbmRleF0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgICAgY2hhaW5jb2RlOiBjaGFpbmNvZGUudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB9IGFzIE5TaGFyZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGtleVNoYXJlO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbWJpbmUgZGF0YSBzaGFyZWQgZHVyaW5nIHRoZSBrZXkgZ2VuZXJhdGlvbiBwcm90b2NvbC5cbiAgICogQHBhcmFtIHtLZXlTaGFyZX0gcGFydGljaXBhbnRTaGFyZXMgcHJpdmF0ZSBwLXNoYXJlIGFuZFxuICAgKiBuLXNoYXJlcyByZWNlaXZlZCBmcm9tIGFsbCBvdGhlciBwYXJ0aWNpcGFudHMuXG4gICAqIEByZXR1cm5zIHtLZXlDb21iaW5lZH0gUmV0dXJucyB0aGUgcGFydGljaXBhbnQgcHJpdmF0ZSB4LXNoYXJlXG4gICAqIGFuZCB5LXNoYXJlcyB0byBiZSB1c2VkIHdoZW4gZ2VuZXJhdGluZyBzaWduaW5nIHNoYXJlcy5cbiAgICovXG4gIGtleUNvbWJpbmUocFNoYXJlOiBQU2hhcmUsIG5TaGFyZXM6IE5TaGFyZVtdKTogS2V5Q29tYmluZWQge1xuICAgIGNvbnN0IGFsbFNoYXJlcyA9IFtwU2hhcmUsIC4uLm5TaGFyZXNdO1xuICAgIC8vIENvbXB1dGUgdGhlIHB1YmxpYyBrZXkuXG4gICAgY29uc3QgeSA9IGFsbFNoYXJlcy5tYXAoKHBhcnRpY2lwYW50KSA9PiBoZXhUb0JpZ0ludChwYXJ0aWNpcGFudFsneSddKSkucmVkdWNlKEVjZHNhLmN1cnZlLnBvaW50QWRkKTtcbiAgICAvLyBBZGQgc2VjcmV0IHNoYXJlc1xuICAgIGNvbnN0IHggPSBhbGxTaGFyZXMubWFwKChwYXJ0aWNpcGFudCkgPT4gaGV4VG9CaWdJbnQocGFydGljaXBhbnRbJ3UnXSkpLnJlZHVjZShFY2RzYS5jdXJ2ZS5zY2FsYXJBZGQpO1xuXG4gICAgLy8gQ2hhaW5jb2RlIHdpbGwgYmUgdXNlZCBpbiBmdXR1cmUgd2hlbiB3ZSBhZGQgc3VwcG9ydCBmb3Iga2V5IGRlcml2YXRpb24gZm9yIGVjZHNhXG4gICAgY29uc3QgY2hhaW5jb2RlcyA9IFtwU2hhcmUsIC4uLm5TaGFyZXNdLm1hcCgoeyBjaGFpbmNvZGUgfSkgPT4gYmlnSW50RnJvbUJ1ZmZlckJFKEJ1ZmZlci5mcm9tKGNoYWluY29kZSwgJ2hleCcpKSk7XG4gICAgY29uc3QgY2hhaW5jb2RlID0gY2hhaW5jb2Rlcy5yZWR1Y2UoXG4gICAgICAoYWNjLCBjaGFpbmNvZGUpID0+XG4gICAgICAgIChhY2MgKyBjaGFpbmNvZGUpICUgQmlnSW50KCcweDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCcpIC8vIDJeMjU2XG4gICAgKTtcblxuICAgIGNvbnN0IHBhcnRpY2lwYW50czogS2V5Q29tYmluZWQgPSB7XG4gICAgICB4U2hhcmU6IHtcbiAgICAgICAgaTogcFNoYXJlLmksXG4gICAgICAgIGw6IHBTaGFyZS5sLFxuICAgICAgICBtOiBwU2hhcmUubSxcbiAgICAgICAgbjogcFNoYXJlLm4sXG4gICAgICAgIHk6IGJpZ0ludFRvQnVmZmVyQkUoeSwgMzMpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgeDogYmlnSW50VG9CdWZmZXJCRSh4LCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBjaGFpbmNvZGU6IGJpZ0ludFRvQnVmZmVyQkUoY2hhaW5jb2RlLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfSxcbiAgICAgIHlTaGFyZXM6IHt9LFxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IHNoYXJlIGluIG5TaGFyZXMpIHtcbiAgICAgIGNvbnN0IHBhcnRpY2lwYW50SW5kZXggPSBuU2hhcmVzW3NoYXJlXVsnaiddO1xuICAgICAgcGFydGljaXBhbnRzLnlTaGFyZXNbcGFydGljaXBhbnRJbmRleF0gPSB7XG4gICAgICAgIGk6IHBTaGFyZS5pLFxuICAgICAgICBqOiBuU2hhcmVzW3NoYXJlXVsnaiddLFxuICAgICAgICBuOiBuU2hhcmVzW3NoYXJlXVsnbiddLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcnRpY2lwYW50cztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgc2lnbmluZyBzaGFyZXMuXG4gICAqIEBwYXJhbSB7eFNoYXJlfSB4U2hhcmUgUHJpdmF0ZSB4U2hhcmUgb2YgY3VycmVudCBwYXJ0aWNpcGFudCBzaWduZXJcbiAgICogQHBhcmFtIHtZU2hhcmV9IHlTaGFyZSB5U2hhcmUgY29ycmVzcG9uZGluZyB0byB0aGUgb3RoZXIgcGFydGljaXBhbnQgc2lnbmVyXG4gICAqIEByZXR1cm5zIHtTaWduU2hhcmVSVH0gUmV0dXJucyB0aGUgcGFydGljaXBhbnQgcHJpdmF0ZSB3LXNoYXJlXG4gICAqIGFuZCBrLXNoYXJlIHRvIGJlIGRpc3RyaWJ1dGVkIHRvIG90aGVyIHBhcnRpY2lwYW50IHNpZ25lclxuICAgKi9cbiAgc2lnblNoYXJlKHhTaGFyZTogWFNoYXJlLCB5U2hhcmU6IFlTaGFyZSk6IFNpZ25TaGFyZVJUIHtcbiAgICBjb25zdCBwayA9IGdldFBhaWxsaWVyUHVibGljS2V5KGhleFRvQmlnSW50KHhTaGFyZS5uKSk7XG5cbiAgICBjb25zdCBrID0gRWNkc2EuY3VydmUuc2NhbGFyUmFuZG9tKCk7XG4gICAgY29uc3QgZ2FtbWEgPSBFY2RzYS5jdXJ2ZS5zY2FsYXJSYW5kb20oKTtcblxuICAgIGNvbnN0IGQgPSBFY2RzYS5jdXJ2ZS5zY2FsYXJNdWx0KEVjZHNhLmN1cnZlLnNjYWxhclN1YihCaWdJbnQoeVNoYXJlLmopLCBCaWdJbnQoeFNoYXJlLmkpKSwgQmlnSW50KHhTaGFyZS5pKSk7XG5cbiAgICBjb25zdCB3ID0gW1xuICAgICAgRWNkc2EuY3VydmUuc2NhbGFyTXVsdChCaWdJbnQoeVNoYXJlLmopLCBCaWdJbnQoeFNoYXJlLmkpKSxcbiAgICAgIGhleFRvQmlnSW50KHhTaGFyZVsneCddKSxcbiAgICAgIEVjZHNhLmN1cnZlLnNjYWxhckludmVydChkKSxcbiAgICBdLnJlZHVjZShFY2RzYS5jdXJ2ZS5zY2FsYXJNdWx0KTtcblxuICAgIGNvbnN0IHNpZ25lcnM6IFNpZ25TaGFyZVJUID0ge1xuICAgICAgd1NoYXJlOiB7XG4gICAgICAgIGk6IHhTaGFyZS5pLFxuICAgICAgICBsOiB4U2hhcmUubCxcbiAgICAgICAgbTogeFNoYXJlLm0sXG4gICAgICAgIG46IHhTaGFyZS5uLFxuICAgICAgICB5OiB4U2hhcmUueSxcbiAgICAgICAgazogYmlnSW50VG9CdWZmZXJCRShrLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB3OiBiaWdJbnRUb0J1ZmZlckJFKHcsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIGdhbW1hOiBiaWdJbnRUb0J1ZmZlckJFKGdhbW1hLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfSxcbiAgICAgIGtTaGFyZToge30gYXMgS1NoYXJlLFxuICAgIH07XG5cbiAgICBzaWduZXJzLmtTaGFyZSA9IHtcbiAgICAgIGk6IHlTaGFyZS5qLFxuICAgICAgajogeFNoYXJlLmksXG4gICAgICBuOiBway5uLnRvU3RyaW5nKDE2KSxcbiAgICAgIGs6IGJpZ0ludFRvQnVmZmVyQkUocGsuZW5jcnlwdChrKSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHNpZ25lcnM7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybSBtdWx0aXBsaWNpdGl2ZS10by1hZGRpdGl2ZSAoTXRBKSBzaGFyZSBjb252ZXJzaW9uIHdpdGggYW5vdGhlclxuICAgKiBzaWduZXIuXG4gICAqIEBwYXJhbSB7U2lnbkNvbnZlcnR9XG4gICAqIEByZXR1cm5zIHtTaWduQ29udmVydFJUfVxuICAgKi9cbiAgc2lnbkNvbnZlcnQoc2hhcmVzOiBTaWduQ29udmVydCk6IFNpZ25Db252ZXJ0UlQge1xuICAgIGxldCBzaGFyZVBhcnRpY2lwYW50OiBCU2hhcmUgfCBHU2hhcmUsIHNoYXJlVG9CZVNlbmQ6IEFTaGFyZSB8IE1VU2hhcmU7XG4gICAgbGV0IGlzR2FtbWFTaGFyZSA9IGZhbHNlO1xuICAgIGlmIChzaGFyZXMueFNoYXJlICYmIHNoYXJlcy55U2hhcmUgJiYgc2hhcmVzLmtTaGFyZSkge1xuICAgICAgY29uc3QgeFNoYXJlID0gc2hhcmVzLnhTaGFyZTsgLy8gY3VycmVudFBhcnRpY2lwYW50IHNlY3JldCB4U2hhcmVcbiAgICAgIGNvbnN0IHlTaGFyZSA9IHNoYXJlcy55U2hhcmU7XG4gICAgICBjb25zdCBzaWduU2hhcmUgPSB0aGlzLnNpZ25TaGFyZSh4U2hhcmUsIHlTaGFyZSk7XG4gICAgICBzaGFyZVRvQmVTZW5kID0geyAuLi5zaGFyZXMua1NoYXJlLCBhbHBoYTogJycsIG11OiAnJyB9IGFzIEFTaGFyZTtcbiAgICAgIHNoYXJlUGFydGljaXBhbnQgPSB7IC4uLnNpZ25TaGFyZS53U2hhcmUsIGJldGE6ICcnLCBudTogJycgfSBhcyBCU2hhcmU7XG4gICAgfSBlbHNlIGlmICgoc2hhcmVzLmJTaGFyZSAmJiBzaGFyZXMubXVTaGFyZSkgfHwgKHNoYXJlcy5hU2hhcmUgJiYgc2hhcmVzLndTaGFyZSkpIHtcbiAgICAgIGlzR2FtbWFTaGFyZSA9IHRydWU7XG4gICAgICBzaGFyZVRvQmVTZW5kID0gc2hhcmVzLmFTaGFyZSA/ICh7IC4uLnNoYXJlcy5hU2hhcmUgfSBhcyBNVVNoYXJlKSA6ICh7IC4uLnNoYXJlcy5tdVNoYXJlIH0gYXMgTVVTaGFyZSk7XG4gICAgICBzaGFyZVBhcnRpY2lwYW50ID0gc2hhcmVzLndTaGFyZSA/ICh7IC4uLnNoYXJlcy53U2hhcmUgfSBhcyBHU2hhcmUpIDogKHsgLi4uc2hhcmVzLmJTaGFyZSB9IGFzIEdTaGFyZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjb25maWcgZm9yIFNpZ24gQ29udmVydCcpO1xuICAgIH1cbiAgICBpZiAoc2hhcmVQYXJ0aWNpcGFudC5pICE9PSBzaGFyZVRvQmVTZW5kLmkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignU2hhcmVzIGZyb20gc2FtZSBwYXJ0aWNpcGFudCcpO1xuICAgIH1cbiAgICBpZiAoc2hhcmVUb0JlU2VuZFsnYWxwaGEnXSkge1xuICAgICAgY29uc3QgcGsgPSBnZXRQYWlsbGllclB1YmxpY0tleShoZXhUb0JpZ0ludChzaGFyZVBhcnRpY2lwYW50Lm4pKTtcbiAgICAgIGNvbnN0IHNrID0gbmV3IHBhaWxsaWVyQmlnaW50LlByaXZhdGVLZXkoXG4gICAgICAgIGhleFRvQmlnSW50KHNoYXJlUGFydGljaXBhbnQubCBhcyBzdHJpbmcpLFxuICAgICAgICBoZXhUb0JpZ0ludChzaGFyZVBhcnRpY2lwYW50Lm0gYXMgc3RyaW5nKSxcbiAgICAgICAgcGtcbiAgICAgICk7XG4gICAgICBjb25zdCBhbHBoYSA9IHNrLmRlY3J5cHQoaGV4VG9CaWdJbnQoc2hhcmVUb0JlU2VuZC5hbHBoYSkpO1xuICAgICAgc2hhcmVQYXJ0aWNpcGFudFsnYWxwaGEnXSA9IGJpZ0ludFRvQnVmZmVyQkUoRWNkc2EuY3VydmUuc2NhbGFyUmVkdWNlKGFscGhhKSwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGNvbnN0IG11ID0gc2suZGVjcnlwdChoZXhUb0JpZ0ludChzaGFyZVRvQmVTZW5kLm11IGFzIHN0cmluZykpOyAvLyByZWNoZWNrIGVuY3J5cHRlZCBudW1iZXJcbiAgICAgIHNoYXJlUGFydGljaXBhbnRbJ211J10gPSBiaWdJbnRUb0J1ZmZlckJFKEVjZHNhLmN1cnZlLnNjYWxhclJlZHVjZShtdSksIDMyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICBkZWxldGUgc2hhcmVQYXJ0aWNpcGFudFsnbCddO1xuICAgICAgZGVsZXRlIHNoYXJlUGFydGljaXBhbnRbJ20nXTtcbiAgICAgIGRlbGV0ZSBzaGFyZVRvQmVTZW5kWydhbHBoYSddO1xuICAgICAgZGVsZXRlIHNoYXJlVG9CZVNlbmRbJ211J107XG4gICAgfVxuICAgIGlmIChzaGFyZVRvQmVTZW5kWydrJ10pIHtcbiAgICAgIGNvbnN0IG4gPSBoZXhUb0JpZ0ludChzaGFyZVRvQmVTZW5kWyduJ10pOyAvLyBQYWlsbGllciBwdWIgZnJvbSBvdGhlciBzaWduZXJcbiAgICAgIGxldCBwayA9IGdldFBhaWxsaWVyUHVibGljS2V5KG4pO1xuICAgICAgY29uc3QgayA9IGhleFRvQmlnSW50KHNoYXJlVG9CZVNlbmRbJ2snXSk7XG5cbiAgICAgIGNvbnN0IGJldGEwID0gRWNkc2EuY3VydmUuc2NhbGFyUmFuZG9tKCk7XG4gICAgICBzaGFyZVBhcnRpY2lwYW50LmJldGEgPSBiaWdJbnRUb0J1ZmZlckJFKEVjZHNhLmN1cnZlLnNjYWxhclJlZHVjZShFY2RzYS5jdXJ2ZS5zY2FsYXJOZWdhdGUoYmV0YTApKSwgMzIpLnRvU3RyaW5nKFxuICAgICAgICAnaGV4J1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGFscGhhID0gcGsuYWRkaXRpb24ocGsubXVsdGlwbHkoaywgaGV4VG9CaWdJbnQoc2hhcmVQYXJ0aWNpcGFudC5nYW1tYSkpLCBway5lbmNyeXB0KGJldGEwKSk7XG4gICAgICBzaGFyZVRvQmVTZW5kLmFscGhhID0gYmlnSW50VG9CdWZmZXJCRShhbHBoYSwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgICAgY29uc3QgbnUwID0gRWNkc2EuY3VydmUuc2NhbGFyUmFuZG9tKCk7XG4gICAgICBzaGFyZVBhcnRpY2lwYW50Lm51ID0gYmlnSW50VG9CdWZmZXJCRShFY2RzYS5jdXJ2ZS5zY2FsYXJOZWdhdGUobnUwKSwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGNvbnN0IG11ID0gcGsuYWRkaXRpb24ocGsubXVsdGlwbHkoaywgaGV4VG9CaWdJbnQoc2hhcmVQYXJ0aWNpcGFudC53KSksIHBrLmVuY3J5cHQobnUwKSk7XG4gICAgICBzaGFyZVRvQmVTZW5kLm11ID0gYmlnSW50VG9CdWZmZXJCRShtdSwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGlmIChzaGFyZVBhcnRpY2lwYW50WydhbHBoYSddKSB7XG4gICAgICAgIGRlbGV0ZSBzaGFyZVRvQmVTZW5kWyduJ107XG4gICAgICAgIGRlbGV0ZSBzaGFyZVRvQmVTZW5kWydrJ107XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwayA9IGdldFBhaWxsaWVyUHVibGljS2V5KGhleFRvQmlnSW50KHNoYXJlUGFydGljaXBhbnQubikpO1xuICAgICAgICBzaGFyZVRvQmVTZW5kWyduJ10gPSBway5uLnRvU3RyaW5nKDE2KTtcbiAgICAgICAgc2hhcmVUb0JlU2VuZFsnayddID0gYmlnSW50VG9CdWZmZXJCRShway5lbmNyeXB0KGhleFRvQmlnSW50KHNoYXJlUGFydGljaXBhbnQuaykpLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoISgnYWxwaGEnIGluIHNoYXJlVG9CZVNlbmQpICYmICEoJ2snIGluIHNoYXJlVG9CZVNlbmQpKSB7XG4gICAgICBzaGFyZVRvQmVTZW5kID0ge1xuICAgICAgICBpOiBzaGFyZVRvQmVTZW5kWydpJ10sXG4gICAgICAgIGo6IHNoYXJlVG9CZVNlbmRbJ2onXSxcbiAgICAgIH07XG4gICAgfVxuICAgIFtzaGFyZVRvQmVTZW5kWydpJ10sIHNoYXJlVG9CZVNlbmRbJ2onXV0gPSBbc2hhcmVUb0JlU2VuZFsnaiddLCBzaGFyZVRvQmVTZW5kWydpJ11dO1xuICAgIGlmIChpc0dhbW1hU2hhcmUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG11U2hhcmU6IHNoYXJlVG9CZVNlbmQgYXMgTVVTaGFyZSxcbiAgICAgICAgZ1NoYXJlOiBzaGFyZVBhcnRpY2lwYW50IGFzIEdTaGFyZSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBhU2hhcmU6IHNoYXJlVG9CZVNlbmQsXG4gICAgICBiU2hhcmU6IHNoYXJlUGFydGljaXBhbnQgYXMgQlNoYXJlLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29tYmluZSBnYW1tYSBzaGFyZXMgdG8gZ2V0IHRoZSBwcml2YXRlIG9taWNyb24gLyBkZWx0YSBzaGFyZXNcbiAgICogQHBhcmFtIHtTaWduQ29tYmluZX0gc2hhcmVzXG4gICAqIEByZXR1cm5zIHtTaWduQ29tYmluZVJUfVxuICAgKi9cbiAgc2lnbkNvbWJpbmUoc2hhcmVzOiBTaWduQ29tYmluZSk6IFNpZ25Db21iaW5lUlQge1xuICAgIGNvbnN0IGdTaGFyZSA9IHNoYXJlcy5nU2hhcmU7XG4gICAgY29uc3QgUyA9IHNoYXJlcy5zaWduSW5kZXg7XG4gICAgY29uc3QgZ2FtbWEgPSBoZXhUb0JpZ0ludChnU2hhcmUuZ2FtbWEpO1xuICAgIGNvbnN0IGFscGhhID0gaGV4VG9CaWdJbnQoZ1NoYXJlLmFscGhhKTtcbiAgICBjb25zdCBiZXRhID0gaGV4VG9CaWdJbnQoZ1NoYXJlLmJldGEpO1xuICAgIGNvbnN0IG11ID0gaGV4VG9CaWdJbnQoZ1NoYXJlLm11KTtcbiAgICBjb25zdCBudSA9IGhleFRvQmlnSW50KGdTaGFyZS5udSk7XG4gICAgY29uc3QgayA9IGhleFRvQmlnSW50KGdTaGFyZS5rKTtcbiAgICBjb25zdCB3ID0gaGV4VG9CaWdJbnQoZ1NoYXJlLncpO1xuXG4gICAgY29uc3QgZGVsdGEgPSBFY2RzYS5jdXJ2ZS5zY2FsYXJBZGQoRWNkc2EuY3VydmUuc2NhbGFyTXVsdChrLCBnYW1tYSksIEVjZHNhLmN1cnZlLnNjYWxhckFkZChhbHBoYSwgYmV0YSkpO1xuICAgIGNvbnN0IG9taWNyb24gPSBFY2RzYS5jdXJ2ZS5zY2FsYXJBZGQoRWNkc2EuY3VydmUuc2NhbGFyTXVsdChrLCB3KSwgRWNkc2EuY3VydmUuc2NhbGFyQWRkKG11LCBudSkpO1xuICAgIGNvbnN0IEdhbW1hID0gRWNkc2EuY3VydmUuYmFzZVBvaW50TXVsdChnYW1tYSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgb1NoYXJlOiB7XG4gICAgICAgIGk6IGdTaGFyZS5pLFxuICAgICAgICB5OiBnU2hhcmUueSxcbiAgICAgICAgazogYmlnSW50VG9CdWZmZXJCRShrLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBvbWljcm9uOiBiaWdJbnRUb0J1ZmZlckJFKG9taWNyb24sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIGRlbHRhOiBiaWdJbnRUb0J1ZmZlckJFKGRlbHRhLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICBHYW1tYTogYmlnSW50VG9CdWZmZXJCRShHYW1tYSwgMzMpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIH0sXG4gICAgICBkU2hhcmU6IHtcbiAgICAgICAgaTogUy5pLFxuICAgICAgICBqOiBnU2hhcmUuaSxcbiAgICAgICAgZGVsdGE6IGJpZ0ludFRvQnVmZmVyQkUoZGVsdGEsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIEdhbW1hOiBiaWdJbnRUb0J1ZmZlckJFKEdhbW1hLCAzMykudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ24gYSBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gTSBNZXNzYWdlIHRvIGJlIHNpZ25lZFxuICAgKiBAcGFyYW0ge09TaGFyZX0gb1NoYXJlIHByaXZhdGUgb21pY3JvbiBzaGFyZSBvZiBjdXJyZW50IHBhcnRpY2lwYW50XG4gICAqIEBwYXJhbSB7RFNoYXJlfSBkU2hhcmUgZGVsdGEgc2hhcmUgcmVjZWl2ZWQgZnJvbSB0aGUgb3RoZXIgcGFydGljaXBhbnRcbiAgICogQHJldHVybnMge1NpZ25SVH1cbiAgICovXG4gIHNpZ24oTTogQnVmZmVyLCBvU2hhcmU6IE9TaGFyZSwgZFNoYXJlOiBEU2hhcmUpOiBTaWduUlQge1xuICAgIGNvbnN0IG0gPSBjcmVhdGVIYXNoKCdzaGEyNTYnKS51cGRhdGUoTSkuZGlnZXN0KCk7XG5cbiAgICBjb25zdCBkZWx0YSA9IEVjZHNhLmN1cnZlLnNjYWxhckFkZChoZXhUb0JpZ0ludChvU2hhcmUuZGVsdGEpLCBoZXhUb0JpZ0ludChkU2hhcmUuZGVsdGEpKTtcblxuICAgIGNvbnN0IFIgPSBFY2RzYS5jdXJ2ZS5wb2ludE11bHRpcGx5KFxuICAgICAgRWNkc2EuY3VydmUucG9pbnRBZGQoaGV4VG9CaWdJbnQob1NoYXJlLkdhbW1hKSwgaGV4VG9CaWdJbnQoZFNoYXJlLkdhbW1hKSksXG4gICAgICBFY2RzYS5jdXJ2ZS5zY2FsYXJJbnZlcnQoZGVsdGEpXG4gICAgKTtcbiAgICBjb25zdCBwb2ludFIgPSBzZWNwLlBvaW50LmZyb21IZXgoYmlnSW50VG9CdWZmZXJCRShSLCAzMikpO1xuICAgIGNvbnN0IHIgPSBwb2ludFIueDtcblxuICAgIGNvbnN0IHMgPSBFY2RzYS5jdXJ2ZS5zY2FsYXJBZGQoXG4gICAgICBFY2RzYS5jdXJ2ZS5zY2FsYXJNdWx0KGJpZ0ludEZyb21VOEFCRShtKSwgaGV4VG9CaWdJbnQob1NoYXJlLmspKSxcbiAgICAgIEVjZHNhLmN1cnZlLnNjYWxhck11bHQociwgaGV4VG9CaWdJbnQob1NoYXJlLm9taWNyb24pKVxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGk6IG9TaGFyZS5pLFxuICAgICAgeTogb1NoYXJlLnksXG4gICAgICByOiBiaWdJbnRUb0J1ZmZlckJFKHIsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICBzOiBiaWdJbnRUb0J1ZmZlckJFKHMsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgZnVsbCBzaWduYXR1cmUgYnkgY29tYmluaW5nIFNpZ24gU2hhcmVzXG4gICAqIEBwYXJhbSB7U1NoYXJlW119IHNoYXJlc1xuICAgKiBAcmV0dXJucyB7U2lnbmF0dXJlfVxuICAgKi9cbiAgY29uc3RydWN0U2lnbmF0dXJlKHNoYXJlczogU1NoYXJlW10pOiBTaWduYXR1cmUge1xuICAgIC8vIEV2ZXJ5IHIgbXVzdCBtYXRjaC5cbiAgICBjb25zdCByID0gc2hhcmVzWzBdWydyJ107XG4gICAgY29uc3QgaXNSTWF0Y2hpbmcgPSBzaGFyZXMubWFwKChzaGFyZSkgPT4gc2hhcmVbJ3InXSA9PT0gcikucmVkdWNlKChhLCBiKSA9PiBhICYmIGIpO1xuICAgIGlmICghaXNSTWF0Y2hpbmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignciB2YWx1ZSBzaG91bGQgYmUgY29uc2lzdGVudCBhY3Jvc3MgYWxsIHNoYXJlcycpO1xuICAgIH1cblxuICAgIGxldCBzID0gc2hhcmVzLm1hcCgoc2hhcmUpID0+IGhleFRvQmlnSW50KHNoYXJlWydzJ10pKS5yZWR1Y2UoRWNkc2EuY3VydmUuc2NhbGFyQWRkKTtcblxuICAgIC8vIE5vcm1hbGl6ZSBzLlxuICAgIHMgPSBzID4gRWNkc2EuY3VydmUub3JkZXIoKSAvIEJpZ0ludCgyKSA/IEVjZHNhLmN1cnZlLm9yZGVyKCkgLSBzIDogcztcbiAgICByZXR1cm4ge1xuICAgICAgeTogc2hhcmVzWzBdWyd5J10sXG4gICAgICByOiByLFxuICAgICAgczogYmlnSW50VG9CdWZmZXJCRShzLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IGVjZHNhIHNpZ25hdHVyZXNcbiAgICogQHBhcmFtIHtCdWZmZXJ9IG1lc3NhZ2VcbiAgICogQHBhcmFtIHtTaWduYXR1cmUgfSBzaWduYXR1cmVcbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgc2lnbmF0dXJlIGlzIHZhbGlkOyBGYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHZlcmlmeShtZXNzYWdlOiBCdWZmZXIsIHNpZ25hdHVyZTogU2lnbmF0dXJlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEVjZHNhLmN1cnZlLnZlcmlmeShcbiAgICAgIGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShtZXNzYWdlKS5kaWdlc3QoKSxcbiAgICAgIEJ1ZmZlci5jb25jYXQoW1xuICAgICAgICBiaWdJbnRUb0J1ZmZlckJFKGhleFRvQmlnSW50KHNpZ25hdHVyZVsnciddKSwgMzIpLFxuICAgICAgICBiaWdJbnRUb0J1ZmZlckJFKGhleFRvQmlnSW50KHNpZ25hdHVyZVsncyddKSwgMzIpLFxuICAgICAgXSksXG4gICAgICBoZXhUb0JpZ0ludChzaWduYXR1cmVbJ3knXSlcbiAgICApO1xuICB9XG59XG4iXX0=
337
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNkc2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS9lY2RzYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnRUFBa0Q7QUFDbEQsdURBQXlDO0FBQ3pDLG1DQUFpRDtBQUNqRCxpREFBbUQ7QUFDbkQscUNBQXlHO0FBQ3pHLHlDQUE4QztBQUM5QywwREFBa0M7QUF5QmxDOztHQUVHO0FBQ0gsTUFBcUIsS0FBSztJQUd4Qjs7Ozs7Ozs7T0FRRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBYSxFQUFFLFNBQWlCLEVBQUUsU0FBaUIsRUFBRSxJQUFhOztRQUMvRSxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxTQUFTLElBQUksU0FBUyxJQUFJLFNBQVMsSUFBSSxTQUFTLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDbkYsTUFBTSx5QkFBeUIsQ0FBQztTQUNqQztRQUVELElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLENBQUMsQ0FBQztTQUM3QztRQUNELGtEQUFrRDtRQUNsRCxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLE1BQU0sY0FBYyxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0RixNQUFNLENBQUMsR0FBRyxNQUFBLENBQUMsSUFBSSxJQUFJLHNCQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsbUNBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsSCxNQUFNLENBQUMs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QUFNLENBQUMsT0FBZSxFQUFFLFNBQW9CO1FBQzFDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQ3ZCLG1CQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUM3QyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ1osdUJBQWdCLENBQUMsb0JBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDakQsdUJBQWdCLENBQUMsb0JBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDbEQsQ0FBQyxFQUNGLG9CQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQzVCLENBQUM7SUFDSixDQUFDOztBQXBWSCx3QkFxVkM7QUFwVlEsV0FBSyxHQUFtQixJQUFJLHVCQUFjLEVBQUUsQ0FBQztBQUM3QyxZQUFNLEdBQVcsSUFBSSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhaWxsaWVyQmlnaW50IGZyb20gJ3BhaWxsaWVyLWJpZ2ludCc7XG5pbXBvcnQgKiBhcyBzZWNwIGZyb20gJ0Bub2JsZS9zZWNwMjU2azEnO1xuaW1wb3J0IHsgcmFuZG9tQnl0ZXMsIGNyZWF0ZUhhc2ggfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgaGV4VG9CaWdJbnQgfSBmcm9tICcuLi8uLi8uLi91dGlsL2NyeXB0byc7XG5pbXBvcnQgeyBiaWdJbnRGcm9tQnVmZmVyQkUsIGJpZ0ludFRvQnVmZmVyQkUsIGJpZ0ludEZyb21VOEFCRSwgZ2V0UGFpbGxpZXJQdWJsaWNLZXkgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB7IFNlY3AyNTZrMUN1cnZlIH0gZnJvbSAnLi4vLi4vY3VydmVzJztcbmltcG9ydCBTaGFtaXIgZnJvbSAnLi4vLi4vc2hhbWlyJztcbmltcG9ydCB7XG4gIE5TaGFyZSxcbiAgUFNoYXJlLFxuICBLZXlTaGFyZSxcbiAgS2V5Q29tYmluZWQsXG4gIEJTaGFyZSxcbiAgQVNoYXJlLFxuICBTaWduYXR1cmUsXG4gIFNpZ25Db252ZXJ0UlQsXG4gIFNpZ25Db252ZXJ0LFxuICBHU2hhcmUsXG4gIE1VU2hhcmUsXG4gIFNpZ25Db21iaW5lLFxuICBTaWduQ29tYmluZVJULFxuICBEU2hhcmUsXG4gIE9TaGFyZSxcbiAgU2lnblJULFxuICBTU2hhcmUsXG4gIFNpZ25TaGFyZVJULFxuICBLU2hhcmUsXG4gIFhTaGFyZSxcbiAgWVNoYXJlLFxufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBFQ0RTQSBUU1MgaW1wbGVtZW50YXRpb24gc3VwcG9ydGluZyAyOm4gVGhyZXNob2xkXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEVjZHNhIHtcbiAgc3RhdGljIGN1cnZlOiBTZWNwMjU2azFDdXJ2ZSA9IG5ldyBTZWNwMjU2azFDdXJ2ZSgpO1xuICBzdGF0aWMgc2hhbWlyOiBTaGFtaXIgPSBuZXcgU2hhbWlyKEVjZHNhLmN1cnZlKTtcbiAgLyoqXG4gICAqIEdlbmVyYXRlIHNoYXJlcyBmb3IgcGFydGljaXBhbnQgYXQgaW5kZXggYW5kIHNwbGl0IGtleXMgYCh0aHJlc2hvbGQsbnVtU2hhcmVzKWAgd2F5cy5cbiAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4IHBhcnRpY2lwYW50IGluZGV4XG4gICAqIEBwYXJhbSB7bnVtYmVyfSB0aHJlc2hvbGQgU2lnbmluZyB0aHJlc2hvbGRcbiAgICogQHBhcmFtIHtudW1iZXJ9IG51bVNoYXJlcyAgTnVtYmVyIG9mIHNoYXJlc1xuICAgKiBAcGFyYW0ge0J1ZmZlcn0gc2VlZCBvcHRpb25hbCBzZWVkIHRvIHVzZSBmb3Iga2V5IGdlbmVyYXRpb25cbiAgICogQHJldHVybnMge1Byb21pc2U8S2V5U2hhcmU+fSBSZXR1cm5zIHRoZSBwcml2YXRlIHAtc2hhcmVcbiAgICogYW5kIG4tc2hhcmVzIHRvIGJlIGRpc3RyaWJ1dGVkIHRvIHBhcnRpY2lwYW50cyBhdCB0aGVpciBjb3JyZXNwb25kaW5nIGluZGV4LlxuICAgKi9cbiAgYXN5bmMga2V5U2hhcmUoaW5kZXg6IG51bWJlciwgdGhyZXNob2xkOiBudW1iZXIsIG51bVNoYXJlczogbnVtYmVyLCBzZWVkPzogQnVmZmVyKTogUHJvbWlzZTxLZXlTaGFyZT4ge1xuICAgIGlmICghKGluZGV4ID4gMCAmJiBpbmRleCA8PSBudW1TaGFyZXMgJiYgdGhyZXNob2xkIDw9IG51bVNoYXJlcyAmJiB0aHJlc2hvbGQgPT09IDIpKSB7XG4gICAgICB0aHJvdyAnSW52YWxpZCBLZXlTaGFyZSBDb25maWcnO1xuICAgIH1cblxuICAgIGlmIChzZWVkICYmIHNlZWQubGVuZ3RoICE9PSA3Mikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZWVkIG11c3QgaGF2ZSBsZW5ndGggNzInKTtcbiAgICB9XG4gICAgLy8gR2VuZXJhdGUgYWRkaXRpdmVseSBob21vbW9ycGhpYyBlbmNyeXB0aW9uIGtleS5cbiAgICBjb25zdCB7IHB1YmxpY0tleSwgcHJpdmF0ZUtleSB9ID0gYXdhaXQgcGFpbGxpZXJCaWdpbnQuZ2VuZXJhdGVSYW5kb21LZXlzKDMwNzIsIHRydWUpO1xuICAgIGNvbnN0IHUgPSAoc2VlZCAmJiBiaWdJbnRGcm9tVThBQkUoc2VjcC51dGlscy5oYXNoVG9Qcml2YXRlS2V5KHNlZWQuc2xpY2UoMCwgNDApKSkpID8/IEVjZHNhLmN1cnZlLnNjYWxhclJhbmRvbSgpO1xuICAgIGNvbnN0IHkgPSBFY2RzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KHUpO1xuICAgIGNvbnN0IGNoYWluY29kZSA9IHNlZWQ/LnNsaWNlKDQwKSA/PyByYW5kb21CeXRlcygzMik7XG4gICAgLy8gQ29tcHV0ZSBzZWNyZXQgc2hhcmVzIG9mIHRoZSBwcml2YXRlIGtleVxuICAgIGNvbnN0IHVTaGFyZXMgPSBFY2RzYS5zaGFtaXIuc3BsaXQodSwgdGhyZXNob2xkLCBudW1TaGFyZXMpO1xuICAgIGNvbnN0IGN1cnJlbnRQYXJ0aWNpcGFudDogUFNoYXJlID0ge1xuICAgICAgaTogaW5kZXgsXG4gICAgICBsOiBwcml2YXRlS2V5LmxhbWJkYS50b1N0cmluZygxNiksXG4gICAgICBtOiBwcml2YXRlS2V5Lm11LnRvU3RyaW5nKDE2KSxcbiAgICAgIG46IHB1YmxpY0tleS5uLnRvU3RyaW5nKDE2KSxcbiAgICAgIHk6IGJpZ0ludFRvQnVmZmVyQkUoeSwgMzMpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHU6IGJpZ0ludFRvQnVmZmVyQkUodVNoYXJlc1tpbmRleF0sIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICBjaGFpbmNvZGU6IGNoYWluY29kZS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgICBjb25zdCBrZXlTaGFyZTogS2V5U2hhcmUgPSB7XG4gICAgICBwU2hhcmU6IGN1cnJlbnRQYXJ0aWNpcGFudCxcbiAgICAgIG5TaGFyZXM6IHt9LFxuICAgIH07XG5cbiAgICBmb3IgKGNvbnN0IHNoYXJlIGluIHVTaGFyZXMpIHtcbiAgICAgIGNvbnN0IHBhcnRpY2lwYW50SW5kZXggPSBwYXJzZUludChzaGFyZSwgMTApO1xuICAgICAgaWYgKHBhcnRpY2lwYW50SW5kZXggIT09IGluZGV4KSB7XG4gICAgICAgIGtleVNoYXJlLm5TaGFyZXNbcGFydGljaXBhbnRJbmRleF0gPSB7XG4gICAgICAgICAgaTogcGFydGljaXBhbnRJbmRleCxcbiAgICAgICAgICBqOiBjdXJyZW50UGFydGljaXBhbnRbJ2knXSxcbiAgICAgICAgICBuOiBwdWJsaWNLZXkubi50b1N0cmluZygxNiksXG4gICAgICAgICAgeTogYmlnSW50VG9CdWZmZXJCRSh5LCAzMykudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICAgIHU6IGJpZ0ludFRvQnVmZmVyQkUodVNoYXJlc1twYXJ0aWNpcGFudEluZGV4XSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgICBjaGFpbmNvZGU6IGNoYWluY29kZS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIH0gYXMgTlNoYXJlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ga2V5U2hhcmU7XG4gIH1cblxuICAvKipcbiAgICogQ29tYmluZSBkYXRhIHNoYXJlZCBkdXJpbmcgdGhlIGtleSBnZW5lcmF0aW9uIHByb3RvY29sLlxuICAgKiBAcGFyYW0ge0tleVNoYXJlfSBwYXJ0aWNpcGFudFNoYXJlcyBwcml2YXRlIHAtc2hhcmUgYW5kXG4gICAqIG4tc2hhcmVzIHJlY2VpdmVkIGZyb20gYWxsIG90aGVyIHBhcnRpY2lwYW50cy5cbiAgICogQHJldHVybnMge0tleUNvbWJpbmVkfSBSZXR1cm5zIHRoZSBwYXJ0aWNpcGFudCBwcml2YXRlIHgtc2hhcmVcbiAgICogYW5kIHktc2hhcmVzIHRvIGJlIHVzZWQgd2hlbiBnZW5lcmF0aW5nIHNpZ25pbmcgc2hhcmVzLlxuICAgKi9cbiAga2V5Q29tYmluZShwU2hhcmU6IFBTaGFyZSwgblNoYXJlczogTlNoYXJlW10pOiBLZXlDb21iaW5lZCB7XG4gICAgY29uc3QgYWxsU2hhcmVzID0gW3BTaGFyZSwgLi4ublNoYXJlc107XG4gICAgLy8gQ29tcHV0ZSB0aGUgcHVibGljIGtleS5cbiAgICBjb25zdCB5ID0gYWxsU2hhcmVzLm1hcCgocGFydGljaXBhbnQpID0+IGhleFRvQmlnSW50KHBhcnRpY2lwYW50Wyd5J10pKS5yZWR1Y2UoRWNkc2EuY3VydmUucG9pbnRBZGQpO1xuICAgIC8vIEFkZCBzZWNyZXQgc2hhcmVzXG4gICAgY29uc3QgeCA9IGFsbFNoYXJlcy5tYXAoKHBhcnRpY2lwYW50KSA9PiBoZXhUb0JpZ0ludChwYXJ0aWNpcGFudFsndSddKSkucmVkdWNlKEVjZHNhLmN1cnZlLnNjYWxhckFkZCk7XG5cbiAgICAvLyBDaGFpbmNvZGUgd2lsbCBiZSB1c2VkIGluIGZ1dHVyZSB3aGVuIHdlIGFkZCBzdXBwb3J0IGZvciBrZXkgZGVyaXZhdGlvbiBmb3IgZWNkc2FcbiAgICBjb25zdCBjaGFpbmNvZGVzID0gW3BTaGFyZSwgLi4ublNoYXJlc10ubWFwKCh7IGNoYWluY29kZSB9KSA9PiBiaWdJbnRGcm9tQnVmZmVyQkUoQnVmZmVyLmZyb20oY2hhaW5jb2RlLCAnaGV4JykpKTtcbiAgICBjb25zdCBjaGFpbmNvZGUgPSBjaGFpbmNvZGVzLnJlZHVjZShcbiAgICAgIChhY2MsIGNoYWluY29kZSkgPT5cbiAgICAgICAgKGFjYyArIGNoYWluY29kZSkgJSBCaWdJbnQoJzB4MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJykgLy8gMl4yNTZcbiAgICApO1xuXG4gICAgY29uc3QgcGFydGljaXBhbnRzOiBLZXlDb21iaW5lZCA9IHtcbiAgICAgIHhTaGFyZToge1xuICAgICAgICBpOiBwU2hhcmUuaSxcbiAgICAgICAgbDogcFNoYXJlLmwsXG4gICAgICAgIG06IHBTaGFyZS5tLFxuICAgICAgICBuOiBwU2hhcmUubixcbiAgICAgICAgeTogYmlnSW50VG9CdWZmZXJCRSh5LCAzMykudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgICB4OiBiaWdJbnRUb0J1ZmZlckJFKHgsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIGNoYWluY29kZTogYmlnSW50VG9CdWZmZXJCRShjaGFpbmNvZGUsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICB9LFxuICAgICAgeVNoYXJlczoge30sXG4gICAgfTtcblxuICAgIGZvciAoY29uc3Qgc2hhcmUgaW4gblNoYXJlcykge1xuICAgICAgY29uc3QgcGFydGljaXBhbnRJbmRleCA9IG5TaGFyZXNbc2hhcmVdWydqJ107XG4gICAgICBwYXJ0aWNpcGFudHMueVNoYXJlc1twYXJ0aWNpcGFudEluZGV4XSA9IHtcbiAgICAgICAgaTogcFNoYXJlLmksXG4gICAgICAgIGo6IG5TaGFyZXNbc2hhcmVdWydqJ10sXG4gICAgICAgIG46IG5TaGFyZXNbc2hhcmVdWyduJ10sXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gcGFydGljaXBhbnRzO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBzaWduaW5nIHNoYXJlcy5cbiAgICogQHBhcmFtIHt4U2hhcmV9IHhTaGFyZSBQcml2YXRlIHhTaGFyZSBvZiBjdXJyZW50IHBhcnRpY2lwYW50IHNpZ25lclxuICAgKiBAcGFyYW0ge1lTaGFyZX0geVNoYXJlIHlTaGFyZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBvdGhlciBwYXJ0aWNpcGFudCBzaWduZXJcbiAgICogQHJldHVybnMge1NpZ25TaGFyZVJUfSBSZXR1cm5zIHRoZSBwYXJ0aWNpcGFudCBwcml2YXRlIHctc2hhcmVcbiAgICogYW5kIGstc2hhcmUgdG8gYmUgZGlzdHJpYnV0ZWQgdG8gb3RoZXIgcGFydGljaXBhbnQgc2lnbmVyXG4gICAqL1xuICBzaWduU2hhcmUoeFNoYXJlOiBYU2hhcmUsIHlTaGFyZTogWVNoYXJlKTogU2lnblNoYXJlUlQge1xuICAgIGNvbnN0IHBrID0gZ2V0UGFpbGxpZXJQdWJsaWNLZXkoaGV4VG9CaWdJbnQoeFNoYXJlLm4pKTtcblxuICAgIGNvbnN0IGsgPSBFY2RzYS5jdXJ2ZS5zY2FsYXJSYW5kb20oKTtcbiAgICBjb25zdCBnYW1tYSA9IEVjZHNhLmN1cnZlLnNjYWxhclJhbmRvbSgpO1xuXG4gICAgY29uc3QgZCA9IEVjZHNhLmN1cnZlLnNjYWxhck11bHQoRWNkc2EuY3VydmUuc2NhbGFyU3ViKEJpZ0ludCh5U2hhcmUuaiksIEJpZ0ludCh4U2hhcmUuaSkpLCBCaWdJbnQoeFNoYXJlLmkpKTtcblxuICAgIGNvbnN0IHcgPSBbXG4gICAgICBFY2RzYS5jdXJ2ZS5zY2FsYXJNdWx0KEJpZ0ludCh5U2hhcmUuaiksIEJpZ0ludCh4U2hhcmUuaSkpLFxuICAgICAgaGV4VG9CaWdJbnQoeFNoYXJlWyd4J10pLFxuICAgICAgRWNkc2EuY3VydmUuc2NhbGFySW52ZXJ0KGQpLFxuICAgIF0ucmVkdWNlKEVjZHNhLmN1cnZlLnNjYWxhck11bHQpO1xuXG4gICAgY29uc3Qgc2lnbmVyczogU2lnblNoYXJlUlQgPSB7XG4gICAgICB3U2hhcmU6IHtcbiAgICAgICAgaTogeFNoYXJlLmksXG4gICAgICAgIGw6IHhTaGFyZS5sLFxuICAgICAgICBtOiB4U2hhcmUubSxcbiAgICAgICAgbjogeFNoYXJlLm4sXG4gICAgICAgIHk6IHhTaGFyZS55LFxuICAgICAgICBrOiBiaWdJbnRUb0J1ZmZlckJFKGssIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIHc6IGJpZ0ludFRvQnVmZmVyQkUodywgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgZ2FtbWE6IGJpZ0ludFRvQnVmZmVyQkUoZ2FtbWEsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICB9LFxuICAgICAga1NoYXJlOiB7fSBhcyBLU2hhcmUsXG4gICAgfTtcblxuICAgIHNpZ25lcnMua1NoYXJlID0ge1xuICAgICAgaTogeVNoYXJlLmosXG4gICAgICBqOiB4U2hhcmUuaSxcbiAgICAgIG46IHBrLm4udG9TdHJpbmcoMTYpLFxuICAgICAgazogYmlnSW50VG9CdWZmZXJCRShway5lbmNyeXB0KGspLCAzMikudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG5cbiAgICByZXR1cm4gc2lnbmVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtIG11bHRpcGxpY2l0aXZlLXRvLWFkZGl0aXZlIChNdEEpIHNoYXJlIGNvbnZlcnNpb24gd2l0aCBhbm90aGVyXG4gICAqIHNpZ25lci5cbiAgICogQHBhcmFtIHtTaWduQ29udmVydH1cbiAgICogQHJldHVybnMge1NpZ25Db252ZXJ0UlR9XG4gICAqL1xuICBzaWduQ29udmVydChzaGFyZXM6IFNpZ25Db252ZXJ0KTogU2lnbkNvbnZlcnRSVCB7XG4gICAgbGV0IHNoYXJlUGFydGljaXBhbnQ6IEJTaGFyZSB8IEdTaGFyZSwgc2hhcmVUb0JlU2VuZDogQVNoYXJlIHwgTVVTaGFyZTtcbiAgICBsZXQgaXNHYW1tYVNoYXJlID0gZmFsc2U7XG4gICAgaWYgKHNoYXJlcy54U2hhcmUgJiYgc2hhcmVzLnlTaGFyZSAmJiBzaGFyZXMua1NoYXJlKSB7XG4gICAgICBjb25zdCB4U2hhcmUgPSBzaGFyZXMueFNoYXJlOyAvLyBjdXJyZW50UGFydGljaXBhbnQgc2VjcmV0IHhTaGFyZVxuICAgICAgY29uc3QgeVNoYXJlID0gc2hhcmVzLnlTaGFyZTtcbiAgICAgIGNvbnN0IHNpZ25TaGFyZSA9IHRoaXMuc2lnblNoYXJlKHhTaGFyZSwgeVNoYXJlKTtcbiAgICAgIHNoYXJlVG9CZVNlbmQgPSB7IC4uLnNoYXJlcy5rU2hhcmUsIGFscGhhOiAnJywgbXU6ICcnIH0gYXMgQVNoYXJlO1xuICAgICAgc2hhcmVQYXJ0aWNpcGFudCA9IHsgLi4uc2lnblNoYXJlLndTaGFyZSwgYmV0YTogJycsIG51OiAnJyB9IGFzIEJTaGFyZTtcbiAgICB9IGVsc2UgaWYgKChzaGFyZXMuYlNoYXJlICYmIHNoYXJlcy5tdVNoYXJlKSB8fCAoc2hhcmVzLmFTaGFyZSAmJiBzaGFyZXMud1NoYXJlKSkge1xuICAgICAgaXNHYW1tYVNoYXJlID0gdHJ1ZTtcbiAgICAgIHNoYXJlVG9CZVNlbmQgPSBzaGFyZXMuYVNoYXJlID8gKHsgLi4uc2hhcmVzLmFTaGFyZSB9IGFzIE1VU2hhcmUpIDogKHsgLi4uc2hhcmVzLm11U2hhcmUgfSBhcyBNVVNoYXJlKTtcbiAgICAgIHNoYXJlUGFydGljaXBhbnQgPSBzaGFyZXMud1NoYXJlID8gKHsgLi4uc2hhcmVzLndTaGFyZSB9IGFzIEdTaGFyZSkgOiAoeyAuLi5zaGFyZXMuYlNoYXJlIH0gYXMgR1NoYXJlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNvbmZpZyBmb3IgU2lnbiBDb252ZXJ0Jyk7XG4gICAgfVxuICAgIGlmIChzaGFyZVBhcnRpY2lwYW50LmkgIT09IHNoYXJlVG9CZVNlbmQuaSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTaGFyZXMgZnJvbSBzYW1lIHBhcnRpY2lwYW50Jyk7XG4gICAgfVxuICAgIGlmIChzaGFyZVRvQmVTZW5kWydhbHBoYSddKSB7XG4gICAgICBjb25zdCBwayA9IGdldFBhaWxsaWVyUHVibGljS2V5KGhleFRvQmlnSW50KHNoYXJlUGFydGljaXBhbnQubikpO1xuICAgICAgY29uc3Qgc2sgPSBuZXcgcGFpbGxpZXJCaWdpbnQuUHJpdmF0ZUtleShcbiAgICAgICAgaGV4VG9CaWdJbnQoc2hhcmVQYXJ0aWNpcGFudC5sIGFzIHN0cmluZyksXG4gICAgICAgIGhleFRvQmlnSW50KHNoYXJlUGFydGljaXBhbnQubSBhcyBzdHJpbmcpLFxuICAgICAgICBwa1xuICAgICAgKTtcbiAgICAgIGNvbnN0IGFscGhhID0gc2suZGVjcnlwdChoZXhUb0JpZ0ludChzaGFyZVRvQmVTZW5kLmFscGhhKSk7XG4gICAgICBzaGFyZVBhcnRpY2lwYW50WydhbHBoYSddID0gYmlnSW50VG9CdWZmZXJCRShFY2RzYS5jdXJ2ZS5zY2FsYXJSZWR1Y2UoYWxwaGEpLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgY29uc3QgbXUgPSBzay5kZWNyeXB0KGhleFRvQmlnSW50KHNoYXJlVG9CZVNlbmQubXUgYXMgc3RyaW5nKSk7IC8vIHJlY2hlY2sgZW5jcnlwdGVkIG51bWJlclxuICAgICAgc2hhcmVQYXJ0aWNpcGFudFsnbXUnXSA9IGJpZ0ludFRvQnVmZmVyQkUoRWNkc2EuY3VydmUuc2NhbGFyUmVkdWNlKG11KSwgMzIpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgIGRlbGV0ZSBzaGFyZVBhcnRpY2lwYW50WydsJ107XG4gICAgICBkZWxldGUgc2hhcmVQYXJ0aWNpcGFudFsnbSddO1xuICAgICAgZGVsZXRlIHNoYXJlVG9CZVNlbmRbJ2FscGhhJ107XG4gICAgICBkZWxldGUgc2hhcmVUb0JlU2VuZFsnbXUnXTtcbiAgICB9XG4gICAgaWYgKHNoYXJlVG9CZVNlbmRbJ2snXSkge1xuICAgICAgY29uc3QgbiA9IGhleFRvQmlnSW50KHNoYXJlVG9CZVNlbmRbJ24nXSk7IC8vIFBhaWxsaWVyIHB1YiBmcm9tIG90aGVyIHNpZ25lclxuICAgICAgbGV0IHBrID0gZ2V0UGFpbGxpZXJQdWJsaWNLZXkobik7XG4gICAgICBjb25zdCBrID0gaGV4VG9CaWdJbnQoc2hhcmVUb0JlU2VuZFsnayddKTtcblxuICAgICAgY29uc3QgYmV0YTAgPSBFY2RzYS5jdXJ2ZS5zY2FsYXJSYW5kb20oKTtcbiAgICAgIHNoYXJlUGFydGljaXBhbnQuYmV0YSA9IGJpZ0ludFRvQnVmZmVyQkUoRWNkc2EuY3VydmUuc2NhbGFyUmVkdWNlKEVjZHNhLmN1cnZlLnNjYWxhck5lZ2F0ZShiZXRhMCkpLCAzMikudG9TdHJpbmcoXG4gICAgICAgICdoZXgnXG4gICAgICApO1xuICAgICAgY29uc3QgYWxwaGEgPSBway5hZGRpdGlvbihway5tdWx0aXBseShrLCBoZXhUb0JpZ0ludChzaGFyZVBhcnRpY2lwYW50LmdhbW1hKSksIHBrLmVuY3J5cHQoYmV0YTApKTtcbiAgICAgIHNoYXJlVG9CZVNlbmQuYWxwaGEgPSBiaWdJbnRUb0J1ZmZlckJFKGFscGhhLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgICBjb25zdCBudTAgPSBFY2RzYS5jdXJ2ZS5zY2FsYXJSYW5kb20oKTtcbiAgICAgIHNoYXJlUGFydGljaXBhbnQubnUgPSBiaWdJbnRUb0J1ZmZlckJFKEVjZHNhLmN1cnZlLnNjYWxhck5lZ2F0ZShudTApLCAzMikudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgY29uc3QgbXUgPSBway5hZGRpdGlvbihway5tdWx0aXBseShrLCBoZXhUb0JpZ0ludChzaGFyZVBhcnRpY2lwYW50LncpKSwgcGsuZW5jcnlwdChudTApKTtcbiAgICAgIHNoYXJlVG9CZVNlbmQubXUgPSBiaWdJbnRUb0J1ZmZlckJFKG11LCAzMikudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgaWYgKHNoYXJlUGFydGljaXBhbnRbJ2FscGhhJ10pIHtcbiAgICAgICAgZGVsZXRlIHNoYXJlVG9CZVNlbmRbJ24nXTtcbiAgICAgICAgZGVsZXRlIHNoYXJlVG9CZVNlbmRbJ2snXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBrID0gZ2V0UGFpbGxpZXJQdWJsaWNLZXkoaGV4VG9CaWdJbnQoc2hhcmVQYXJ0aWNpcGFudC5uKSk7XG4gICAgICAgIHNoYXJlVG9CZVNlbmRbJ24nXSA9IHBrLm4udG9TdHJpbmcoMTYpO1xuICAgICAgICBzaGFyZVRvQmVTZW5kWydrJ10gPSBiaWdJbnRUb0J1ZmZlckJFKHBrLmVuY3J5cHQoaGV4VG9CaWdJbnQoc2hhcmVQYXJ0aWNpcGFudC5rKSksIDMyKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghKCdhbHBoYScgaW4gc2hhcmVUb0JlU2VuZCkgJiYgISgnaycgaW4gc2hhcmVUb0JlU2VuZCkpIHtcbiAgICAgIHNoYXJlVG9CZVNlbmQgPSB7XG4gICAgICAgIGk6IHNoYXJlVG9CZVNlbmRbJ2knXSxcbiAgICAgICAgajogc2hhcmVUb0JlU2VuZFsnaiddLFxuICAgICAgfTtcbiAgICB9XG4gICAgW3NoYXJlVG9CZVNlbmRbJ2knXSwgc2hhcmVUb0JlU2VuZFsnaiddXSA9IFtzaGFyZVRvQmVTZW5kWydqJ10sIHNoYXJlVG9CZVNlbmRbJ2knXV07XG4gICAgaWYgKGlzR2FtbWFTaGFyZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbXVTaGFyZTogc2hhcmVUb0JlU2VuZCBhcyBNVVNoYXJlLFxuICAgICAgICBnU2hhcmU6IHNoYXJlUGFydGljaXBhbnQgYXMgR1NoYXJlLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGFTaGFyZTogc2hhcmVUb0JlU2VuZCxcbiAgICAgIGJTaGFyZTogc2hhcmVQYXJ0aWNpcGFudCBhcyBCU2hhcmUsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21iaW5lIGdhbW1hIHNoYXJlcyB0byBnZXQgdGhlIHByaXZhdGUgb21pY3JvbiAvIGRlbHRhIHNoYXJlc1xuICAgKiBAcGFyYW0ge1NpZ25Db21iaW5lfSBzaGFyZXNcbiAgICogQHJldHVybnMge1NpZ25Db21iaW5lUlR9XG4gICAqL1xuICBzaWduQ29tYmluZShzaGFyZXM6IFNpZ25Db21iaW5lKTogU2lnbkNvbWJpbmVSVCB7XG4gICAgY29uc3QgZ1NoYXJlID0gc2hhcmVzLmdTaGFyZTtcbiAgICBjb25zdCBTID0gc2hhcmVzLnNpZ25JbmRleDtcbiAgICBjb25zdCBnYW1tYSA9IGhleFRvQmlnSW50KGdTaGFyZS5nYW1tYSk7XG4gICAgY29uc3QgYWxwaGEgPSBoZXhUb0JpZ0ludChnU2hhcmUuYWxwaGEpO1xuICAgIGNvbnN0IGJldGEgPSBoZXhUb0JpZ0ludChnU2hhcmUuYmV0YSk7XG4gICAgY29uc3QgbXUgPSBoZXhUb0JpZ0ludChnU2hhcmUubXUpO1xuICAgIGNvbnN0IG51ID0gaGV4VG9CaWdJbnQoZ1NoYXJlLm51KTtcbiAgICBjb25zdCBrID0gaGV4VG9CaWdJbnQoZ1NoYXJlLmspO1xuICAgIGNvbnN0IHcgPSBoZXhUb0JpZ0ludChnU2hhcmUudyk7XG5cbiAgICBjb25zdCBkZWx0YSA9IEVjZHNhLmN1cnZlLnNjYWxhckFkZChFY2RzYS5jdXJ2ZS5zY2FsYXJNdWx0KGssIGdhbW1hKSwgRWNkc2EuY3VydmUuc2NhbGFyQWRkKGFscGhhLCBiZXRhKSk7XG4gICAgY29uc3Qgb21pY3JvbiA9IEVjZHNhLmN1cnZlLnNjYWxhckFkZChFY2RzYS5jdXJ2ZS5zY2FsYXJNdWx0KGssIHcpLCBFY2RzYS5jdXJ2ZS5zY2FsYXJBZGQobXUsIG51KSk7XG4gICAgY29uc3QgR2FtbWEgPSBFY2RzYS5jdXJ2ZS5iYXNlUG9pbnRNdWx0KGdhbW1hKTtcblxuICAgIHJldHVybiB7XG4gICAgICBvU2hhcmU6IHtcbiAgICAgICAgaTogZ1NoYXJlLmksXG4gICAgICAgIHk6IGdTaGFyZS55LFxuICAgICAgICBrOiBiaWdJbnRUb0J1ZmZlckJFKGssIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIG9taWNyb246IGJpZ0ludFRvQnVmZmVyQkUob21pY3JvbiwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgZGVsdGE6IGJpZ0ludFRvQnVmZmVyQkUoZGVsdGEsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgICAgIEdhbW1hOiBiaWdJbnRUb0J1ZmZlckJFKEdhbW1hLCAzMykudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgfSxcbiAgICAgIGRTaGFyZToge1xuICAgICAgICBpOiBTLmksXG4gICAgICAgIGo6IGdTaGFyZS5pLFxuICAgICAgICBkZWx0YTogYmlnSW50VG9CdWZmZXJCRShkZWx0YSwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgICAgR2FtbWE6IGJpZ0ludFRvQnVmZmVyQkUoR2FtbWEsIDMzKS50b1N0cmluZygnaGV4JyksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU2lnbiBhIG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7QnVmZmVyfSBNIE1lc3NhZ2UgdG8gYmUgc2lnbmVkXG4gICAqIEBwYXJhbSB7T1NoYXJlfSBvU2hhcmUgcHJpdmF0ZSBvbWljcm9uIHNoYXJlIG9mIGN1cnJlbnQgcGFydGljaXBhbnRcbiAgICogQHBhcmFtIHtEU2hhcmV9IGRTaGFyZSBkZWx0YSBzaGFyZSByZWNlaXZlZCBmcm9tIHRoZSBvdGhlciBwYXJ0aWNpcGFudFxuICAgKiBAcmV0dXJucyB7U2lnblJUfVxuICAgKi9cbiAgc2lnbihNOiBCdWZmZXIsIG9TaGFyZTogT1NoYXJlLCBkU2hhcmU6IERTaGFyZSk6IFNpZ25SVCB7XG4gICAgY29uc3QgbSA9IGNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShNKS5kaWdlc3QoKTtcblxuICAgIGNvbnN0IGRlbHRhID0gRWNkc2EuY3VydmUuc2NhbGFyQWRkKGhleFRvQmlnSW50KG9TaGFyZS5kZWx0YSksIGhleFRvQmlnSW50KGRTaGFyZS5kZWx0YSkpO1xuXG4gICAgY29uc3QgUiA9IEVjZHNhLmN1cnZlLnBvaW50TXVsdGlwbHkoXG4gICAgICBFY2RzYS5jdXJ2ZS5wb2ludEFkZChoZXhUb0JpZ0ludChvU2hhcmUuR2FtbWEpLCBoZXhUb0JpZ0ludChkU2hhcmUuR2FtbWEpKSxcbiAgICAgIEVjZHNhLmN1cnZlLnNjYWxhckludmVydChkZWx0YSlcbiAgICApO1xuICAgIGNvbnN0IHBvaW50UiA9IHNlY3AuUG9pbnQuZnJvbUhleChiaWdJbnRUb0J1ZmZlckJFKFIsIDMyKSk7XG4gICAgY29uc3QgciA9IHBvaW50Ui54O1xuXG4gICAgY29uc3QgcyA9IEVjZHNhLmN1cnZlLnNjYWxhckFkZChcbiAgICAgIEVjZHNhLmN1cnZlLnNjYWxhck11bHQoYmlnSW50RnJvbVU4QUJFKG0pLCBoZXhUb0JpZ0ludChvU2hhcmUuaykpLFxuICAgICAgRWNkc2EuY3VydmUuc2NhbGFyTXVsdChyLCBoZXhUb0JpZ0ludChvU2hhcmUub21pY3JvbikpXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgaTogb1NoYXJlLmksXG4gICAgICB5OiBvU2hhcmUueSxcbiAgICAgIHI6IGJpZ0ludFRvQnVmZmVyQkUociwgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHM6IGJpZ0ludFRvQnVmZmVyQkUocywgMzIpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBmdWxsIHNpZ25hdHVyZSBieSBjb21iaW5pbmcgU2lnbiBTaGFyZXNcbiAgICogQHBhcmFtIHtTU2hhcmVbXX0gc2hhcmVzXG4gICAqIEByZXR1cm5zIHtTaWduYXR1cmV9XG4gICAqL1xuICBjb25zdHJ1Y3RTaWduYXR1cmUoc2hhcmVzOiBTU2hhcmVbXSk6IFNpZ25hdHVyZSB7XG4gICAgLy8gRXZlcnkgciBtdXN0IG1hdGNoLlxuICAgIGNvbnN0IHIgPSBzaGFyZXNbMF1bJ3InXTtcbiAgICBjb25zdCBpc1JNYXRjaGluZyA9IHNoYXJlcy5tYXAoKHNoYXJlKSA9PiBzaGFyZVsnciddID09PSByKS5yZWR1Y2UoKGEsIGIpID0+IGEgJiYgYik7XG4gICAgaWYgKCFpc1JNYXRjaGluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdyIHZhbHVlIHNob3VsZCBiZSBjb25zaXN0ZW50IGFjcm9zcyBhbGwgc2hhcmVzJyk7XG4gICAgfVxuXG4gICAgbGV0IHMgPSBzaGFyZXMubWFwKChzaGFyZSkgPT4gaGV4VG9CaWdJbnQoc2hhcmVbJ3MnXSkpLnJlZHVjZShFY2RzYS5jdXJ2ZS5zY2FsYXJBZGQpO1xuXG4gICAgLy8gTm9ybWFsaXplIHMuXG4gICAgcyA9IHMgPiBFY2RzYS5jdXJ2ZS5vcmRlcigpIC8gQmlnSW50KDIpID8gRWNkc2EuY3VydmUub3JkZXIoKSAtIHMgOiBzO1xuICAgIHJldHVybiB7XG4gICAgICB5OiBzaGFyZXNbMF1bJ3knXSxcbiAgICAgIHI6IHIsXG4gICAgICBzOiBiaWdJbnRUb0J1ZmZlckJFKHMsIDMyKS50b1N0cmluZygnaGV4JyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZnkgZWNkc2Egc2lnbmF0dXJlc1xuICAgKiBAcGFyYW0ge0J1ZmZlcn0gbWVzc2FnZVxuICAgKiBAcGFyYW0ge1NpZ25hdHVyZSB9IHNpZ25hdHVyZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBzaWduYXR1cmUgaXMgdmFsaWQ7IEZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgdmVyaWZ5KG1lc3NhZ2U6IEJ1ZmZlciwgc2lnbmF0dXJlOiBTaWduYXR1cmUpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRWNkc2EuY3VydmUudmVyaWZ5KFxuICAgICAgY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKG1lc3NhZ2UpLmRpZ2VzdCgpLFxuICAgICAgQnVmZmVyLmNvbmNhdChbXG4gICAgICAgIGJpZ0ludFRvQnVmZmVyQkUoaGV4VG9CaWdJbnQoc2lnbmF0dXJlWydyJ10pLCAzMiksXG4gICAgICAgIGJpZ0ludFRvQnVmZmVyQkUoaGV4VG9CaWdJbnQoc2lnbmF0dXJlWydzJ10pLCAzMiksXG4gICAgICBdKSxcbiAgICAgIGhleFRvQmlnSW50KHNpZ25hdHVyZVsneSddKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -87,7 +87,7 @@ export declare function toHex(buffer: Buffer | Uint8Array): string;
87
87
  * @param {bigint} bigint - the bigint to be converted to hex
88
88
  * @returns {string} - the hex value
89
89
  */
90
- export declare function bigIntToHex(bigint: bigint): string;
90
+ export declare function bigIntToHex(bigint: bigint, hexLength?: number): string;
91
91
  /**
92
92
  * Returns a BigInt value from hex
93
93
  *
@@ -1 +1 @@
1
- {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/util/crypto.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUjD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAM9D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMzD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGlD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU/C;AAED;;;;;;GAMG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAM/D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAEpD"}
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../../../../src/account-lib/util/crypto.ts"],"names":[],"mappings":";AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO1D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUjD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAM9D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAYjD;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO/C;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOvD;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO5D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAMzD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAOtE;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAU/C;AAED;;;;;;GAMG;AAEH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAM/D;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAEpD"}
@@ -196,7 +196,7 @@ exports.isValidEd25519PublicKey = isValidEd25519PublicKey;
196
196
  */
197
197
  function isValidBLSPrivateKey(prv) {
198
198
  try {
199
- return bls.Fr.isValid(BigInt(prv));
199
+ return bls.Fr.isValid(BigInt('0x' + prv));
200
200
  }
201
201
  catch (e) {
202
202
  return false;
@@ -235,9 +235,13 @@ exports.toHex = toHex;
235
235
  * @param {bigint} bigint - the bigint to be converted to hex
236
236
  * @returns {string} - the hex value
237
237
  */
238
- function bigIntToHex(bigint) {
239
- const hex = bigint.toString(16);
240
- return '0x' + '0'.slice(0, hex.length % 2) + hex;
238
+ function bigIntToHex(bigint, hexLength) {
239
+ let hex = bigint.toString(16);
240
+ hex = '0'.slice(0, hex.length % 2) + hex;
241
+ if (hexLength) {
242
+ hex = hex.padStart(hexLength, '0');
243
+ }
244
+ return hex;
241
245
  }
242
246
  exports.bigIntToHex = bigIntToHex;
243
247
  /**
@@ -284,4 +288,4 @@ function toUint8Array(str) {
284
288
  return hex.decode(str);
285
289
  }
286
290
  exports.toUint8Array = toUint8Array;
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL3V0aWwvY3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBK0I7QUFDL0IsaURBQWlEO0FBQ2pELGdEQUFrQztBQUNsQyxvREFBc0M7QUFDdEMscURBQXVDO0FBQ3ZDLHdFQUE4QztBQUU5QyxnREFBd0I7QUFFeEI7OztHQUdHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsSUFBWTtJQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDakM7SUFDRCxPQUFPLHNCQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLHdCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFO1FBQzlFLFVBQVUsRUFBRSxLQUFLO0tBQ2xCLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFQRCxzREFPQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FBQyxJQUFZO0lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUNqQztJQUVELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSx3QkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBQ2pDO0lBQ0QsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLENB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SUFDeEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQyxPQUFPLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUNuRCxDQUFDO0FBSEQsa0NBR0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxHQUFXO0lBQ3JDLDhEQUE4RDtJQUM5RCw0REFBNEQ7SUFDNUQsOERBQThEO0lBQzlELG1EQUFtRDtJQUNuRCxtQkFBbUI7SUFDbkIsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDNUIsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDcEI7SUFDRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDNUIsQ0FBQztBQVZELGtDQVVDO0FBRUQ7Ozs7OztHQU1HO0FBRUgsU0FBZ0IsUUFBUSxDQUFDLEtBQWEsRUFBRSxNQUFjO0lBQ3BELElBQUk7UUFDRixPQUFPLENBQUMsQ0FBQyxLQUFLLElBQUksY0FBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDO0tBQ3hEO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQU5ELDRCQU1DO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixZQUFZLENBQUMsR0FBVztJQUN0QyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekIsQ0FBQztBQUZELG9DQUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgYmlwMzIgZnJvbSAnYmlwMzInO1xuaW1wb3J0IHsgRUNQYWlyLCBuZXR3b3JrcyB9IGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0ICogYXMgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuaW1wb3J0ICogYXMgaGV4IGZyb20gJ0BzdGFibGVsaWIvaGV4JztcbmltcG9ydCAqIGFzIGJscyBmcm9tICdub2JsZS1ibHMxMi0zODEnO1xuaW1wb3J0IHN0cmlwSGV4UHJlZml4IGZyb20gJ3N0cmlwLWhleC1wcmVmaXgnO1xuaW1wb3J0IHsgRXh0ZW5kZWRLZXlzIH0gZnJvbSAnLi4vYmFzZUNvaW4vaWZhY2UnO1xuaW1wb3J0IGJzNTggZnJvbSAnYnM1OCc7XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHhwdWIgLSBhIGJhc2UtNTggZW5jb2RlZCBleHRlbmRlZCBwdWJsaWMga2V5IChCSVAzMilcbiAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSB1bmNvbXByZXNzZWQgcHVibGljIGtleSBpbiBoZXhhZGVjaW1hbFxuICovXG5leHBvcnQgZnVuY3Rpb24geHB1YlRvVW5jb21wcmVzc2VkUHViKHhwdWI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghaXNWYWxpZFhwdWIoeHB1YikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgeHB1YicpO1xuICB9XG4gIHJldHVybiBFQ1BhaXIuZnJvbVB1YmxpY0tleShiaXAzMi5mcm9tQmFzZTU4KHhwdWIsIG5ldHdvcmtzLmJpdGNvaW4pLnB1YmxpY0tleSwge1xuICAgIGNvbXByZXNzZWQ6IGZhbHNlLFxuICB9KS5wdWJsaWNLZXkudG9TdHJpbmcoJ2hleCcpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSB4cHJ2IC0gYmFzZTU4LWVuY29kZWQgZXh0ZW5kZWQgcHJpdmF0ZSBrZXkgKEJJUDMyKVxuICogQHJldHVybnMge3N0cmluZ30gdGhlIGhleC1lbmNvZGVkIHJhdyBwcml2YXRlIGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24geHBydlRvUmF3UHJ2KHhwcnY6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghaXNWYWxpZFhwcnYoeHBydikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgeHBydicpO1xuICB9XG5cbiAgY29uc3QgeyBwcml2YXRlS2V5IH0gPSBiaXAzMi5mcm9tQmFzZTU4KHhwcnYsIG5ldHdvcmtzLmJpdGNvaW4pO1xuICBpZiAoIXByaXZhdGVLZXkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgeHBydicpO1xuICB9XG4gIHJldHVybiBwcml2YXRlS2V5LnRvU3RyaW5nKCdoZXgnKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJ2IC0gUHJpdmF0ZSBrZXkgaW4gaGV4IGZvcm1hdCB0byBnZXQgdGhlIGV4dGVuZGVkIGtleXMgZm9yXG4gKiBAcmV0dXJucyB7RXh0ZW5kZWRLZXlzfSB4cHJ2IGFuZCB4cHViIGluIHN0cmluZyBmb3JtYXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJhd1BydlRvRXh0ZW5kZWRLZXlzKHBydjogc3RyaW5nKTogRXh0ZW5kZWRLZXlzIHtcbiAgY29uc3QgaGQgPSBiaXAzMi5mcm9tUHJpdmF0ZUtleShCdWZmZXIuZnJvbShwcnYsICdoZXgnKSwgQnVmZmVyLmFsbG9jKDMyKSk7XG4gIHJldHVybiB7XG4gICAgeHBydjogaGQudG9CYXNlNTgoKSxcbiAgICB4cHViOiBoZC5uZXV0ZXJlZCgpLnRvQmFzZTU4KCksXG4gIH07XG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgaW5wdXQgaXMgYSB2YWxpZCBCSVAzMiB4cHViIG9yIG5vdFxuICpcbiAqIEBwYXJhbSB4cHViXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkWHB1Yih4cHViOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHhwdWIuc3Vic3RyKDAsIDQpICE9PSAneHB1YicpIHtcbiAgICAvLyBjaGVjayBmb3IgeHB1YiBmb3JtYXRzIHdlIGRvbid0IHN1cHBvcnQsIHN1Y2ggYXMgdHB1YlxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGJpcDMyLmZyb21CYXNlNTgoeHB1YiwgbmV0d29ya3MuYml0Y29pbik7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICAvLyBpZiBIRCBnZW5lcmF0aW9uIGRpZG4ndCB0aHJvdywgaXQgaXMgYSB2YWxpZCB4cHViXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdGhlIGlucHV0IGlzIGEgdmFsaWQgQklQMzIgeHBydiBvciBub3RcbiAqXG4gKiBAcGFyYW0geHBydlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFhwcnYoeHBydjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmICh4cHJ2LnN1YnN0cigwLCA0KSAhPT0gJ3hwcnYnKSB7XG4gICAgLy8gY2hlY2sgZm9yIHhwcnYgZm9ybWF0cyB3ZSBkb24ndCBzdXBwb3J0XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgYmlwMzIuZnJvbUJhc2U1OCh4cHJ2LCBuZXR3b3Jrcy5iaXRjb2luKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIGlmIEhEIGdlbmVyYXRpb24gZGlkbid0IHRocm93LCBpdCBpcyBhIHZhbGlkIHhwcnZcbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgaW5wdXQgaXMgYSB2YWxpZCBzZWNwMjU2azEgcHVibGljIGtleVxuICpcbiAqIEBwYXJhbSBwdWJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQdWIocHViOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBFQ1BhaXIuZnJvbVB1YmxpY0tleShCdWZmZXIuZnJvbShwdWIsICdoZXgnKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgaW5wdXQgaXMgYSB2YWxpZCBzZWNwMjU2azEgcHJpdmF0ZSBrZXlcbiAqXG4gKiBAcGFyYW0gcHJ2XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkUHJ2KHBydjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgRUNQYWlyLmZyb21Qcml2YXRlS2V5KEJ1ZmZlci5mcm9tKHBydiwgJ2hleCcpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyBhIHZhbGlkIGVkMjU1MTkgcHJpdmF0ZSBrZXlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJ2IEEgaGV4YWRlY2ltYWwgcHJpdmF0ZSBrZXkgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRoZSBpbnB1dCBpcyBhIHZhbGlkIHB1YmxpYyBrZXkgb3Igbm90XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRWQyNTUxOVNlZWQocHJ2OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkZWNvZGVkUHJ2ID0gdG9VaW50OEFycmF5KHBydik7XG4gICAgcmV0dXJuIGRlY29kZWRQcnYubGVuZ3RoID09PSBuYWNsLnNpZ24uc2VlZExlbmd0aDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdGhlIGlucHV0IGlzIGEgdmFsaWQgZWQyNTUxOSBwcml2YXRlIGtleVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcnYgQSBoZXhhZGVjaW1hbCBwcml2YXRlIGtleSB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIGlucHV0IGlzIGEgdmFsaWQgcHVibGljIGtleSBvciBub3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFZDI1NTE5U2VjcmV0S2V5KHBydjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGVjb2RlZFBydiA9IHRvVWludDhBcnJheShwcnYpO1xuICAgIHJldHVybiBkZWNvZGVkUHJ2Lmxlbmd0aCA9PT0gbmFjbC5zaWduLnNlY3JldEtleUxlbmd0aDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFdoZXRoZXIgdGhlIGlucHV0IGlzIGEgdmFsaWQgZWQyNTUxOSBwdWJsaWMga2V5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHB1YiBBIGhleGFkZWNpbWFsIHB1YmxpYyBrZXkgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRoZSBpbnB1dCBpcyBhIHZhbGlkIHB1YmxpYyBrZXkgb3Igbm90XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleShwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IGRlY29kZWRQdWIgPSBuZXcgVWludDhBcnJheShCdWZmZXIuZnJvbShwdWIsICdoZXgnKSk7XG4gICAgcmV0dXJuIGRlY29kZWRQdWIubGVuZ3RoID09PSBuYWNsLnNpZ24ucHVibGljS2V5TGVuZ3RoO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgaW5wdXQgaXMgYSB2YWxpZCBCTFMgcHJpdmF0ZSBrZXlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHJ2IGEgcHJpdmF0ZSBrZXkgdG8gdmFsaWRhdGVcbiAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRoZSBpbnB1dCBpcyBhIHZhbGlkIHByaXZhdGUga2V5IG9yIG5vdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEJMU1ByaXZhdGVLZXkocHJ2OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYmxzLkZyLmlzVmFsaWQoQmlnSW50KHBydikpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogV2hldGhlciBpbnB1dCBpcyBhIHZhbGlkIEJMUyBwdWJsaWMga2V5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHB1YiB0aGUgcHVibGljIGtleSB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgaW5wdXQgaXMgYSB2YWxpZCBwdWJsaWMga2V5IG9yIG5vdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEJMU1B1YmxpY0tleShwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGJscy5Qb2ludEcxLmZyb21Db21wcmVzc2VkSGV4KHN0cmlwSGV4UHJlZml4KHB1YikpLmFzc2VydFZhbGlkaXR5KCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGhleCBzdHJpbmcgb2YgdGhlIGdpdmVuIGJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7QnVmZmVyIHwgVWludDhBcnJheX0gYnVmZmVyIC0gdGhlIGJ1ZmZlciB0byBiZSBjb252ZXJ0ZWQgdG8gaGV4XG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBoZXggdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSGV4KGJ1ZmZlcjogQnVmZmVyIHwgVWludDhBcnJheSk6IHN0cmluZyB7XG4gIHJldHVybiBoZXguZW5jb2RlKGJ1ZmZlciwgdHJ1ZSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBoZXggc3RyaW5nIG9mIHRoZSBnaXZlbiBiaWdpbnRcbiAqXG4gKiBAcGFyYW0ge2JpZ2ludH0gYmlnaW50IC0gdGhlIGJpZ2ludCB0byBiZSBjb252ZXJ0ZWQgdG8gaGV4XG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBoZXggdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJpZ0ludFRvSGV4KGJpZ2ludDogYmlnaW50KTogc3RyaW5nIHtcbiAgY29uc3QgaGV4ID0gYmlnaW50LnRvU3RyaW5nKDE2KTtcbiAgcmV0dXJuICcweCcgKyAnMCcuc2xpY2UoMCwgaGV4Lmxlbmd0aCAlIDIpICsgaGV4O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBCaWdJbnQgdmFsdWUgZnJvbSBoZXhcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gaGV4IC0gaGV4IHZhbHVlIHRvIGJlIGNvbnZlcnRlZCB0byBiaWdpbnRcbiAqIEByZXR1cm5zIHtiaWdpbnR9IC0gYmlnaW50IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBoZXggdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhleFRvQmlnSW50KGhleDogc3RyaW5nKTogYmlnaW50IHtcbiAgLy8gU3RyYW5nZWx5IGJpZ2ludC50b1N0cmluZygxNikgZ2l2ZXMgYSBoZXggc3RyaW5nIHdpdGhvdXQgMHhcbiAgLy8gYnV0IGl0IHdvbid0IGFjY2VwdCB0aGUgc2FtZSBzdHJpbmcgd2l0aG91dCAweCB0byBjb252ZXJ0XG4gIC8vIHRvIGEgYmlnaW50IChCaWdJbnQoaGV4IHN0cmluZykpLiBTbyBoYXZlIHRvIGludHJvZHVjZSB0aGlzXG4gIC8vIGNoZWNrIHRvIGNvbnZlcnQgdG8gYWRkIDB4IGluIGNhc2UgaWYgaGV4IHN0cmluZ1xuICAvLyBkb2Vzbid0IGhhdmUgaXQuXG4gIGlmIChoZXguc2xpY2UoMCwgMikgPT09ICcweCcpIHtcbiAgICByZXR1cm4gQmlnSW50KGhleCk7XG4gIH1cbiAgcmV0dXJuIEJpZ0ludCgnMHgnICsgaGV4KTtcbn1cblxuLyoqXG4gKiBDaGVjayBpZiBiYXNlNTggZGVjb2RlZCBzdHJpbmcgaXMgZXF1YWxlIHRvIGxlbmd0aFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIHN0cmluZyB0byBiZSBjaGVja2VkXG4gKiBAcGFyYW0ge251bWJlcn0gbGVuZ3RoIC0gZXhwZWN0ZWQgZGVjb2RlZCBsZW5ndGhcbiAqIEByZXR1cm4ge2Jvb2xlYW59IGlmIHRoZSBzdHJpbmcgY2FuIGRlY29kZWQgYXMgYmFzZTU4IGFuZCBtYXRjaCB0aGUgZXhwZWN0ZWQgbGVuZ3RoXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQmFzZTU4KHZhbHVlOiBzdHJpbmcsIGxlbmd0aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuICEhdmFsdWUgJiYgYnM1OC5kZWNvZGUodmFsdWUpLmxlbmd0aCA9PT0gbGVuZ3RoO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyBhIFVpbnQ4QXJyYXkgb2YgdGhlIGdpdmVuIGhleCBzdHJpbmdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyIC0gdGhlIGhleCBzdHJpbmcgdG8gYmUgY29udmVydGVkXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBVaW50OEFycmF5IHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1VpbnQ4QXJyYXkoc3RyOiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgcmV0dXJuIGhleC5kZWNvZGUoc3RyKTtcbn1cbiJdfQ==
291
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FjY291bnQtbGliL3V0aWwvY3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBK0I7QUFDL0IsaURBQWlEO0FBQ2pELGdEQUFrQztBQUNsQyxvREFBc0M7QUFDdEMscURBQXVDO0FBQ3ZDLHdFQUE4QztBQUU5QyxnREFBd0I7QUFFeEI7OztHQUdHO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsSUFBWTtJQUNoRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDakM7SUFDRCxPQUFPLHNCQUFNLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLHdCQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFO1FBQzlFLFVBQVUsRUFBRSxLQUFLO0tBQ2xCLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFQRCxzREFPQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLFlBQVksQ0FBQyxJQUFZO0lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztLQUNqQztJQUVELE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSx3QkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBQ2pDO0lBQ0QsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLENBQUM7QUFWRCxvQ0FVQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLEdBQVc7SUFDOUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0UsT0FBTztRQUNMLElBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFO1FBQ25CLElBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0tBQy9CLENBQUM7QUFDSixDQUFDO0FBTkQsb0RBTUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLElBQVk7SUFDdEMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLEVBQUU7UUFDaEMsd0RBQXdEO1FBQ3hELE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxJQUFJO1FBQ0YsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsd0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUMxQztJQUFDLE9BQU8sR0FBRyxFQUFFO1FBQ1osT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELG9EQUFvRDtJQUNwRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFaRCxrQ0FZQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixXQUFXLENBQUMsSUFBWTtJQUN0QyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLE1BQU0sRUFBRTtRQUNoQywwQ0FBMEM7UUFDMUMsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUk7UUFDRixLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSx3QkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzFDO0lBQUMsT0FBTyxHQUFHLEVBQUU7UUFDWixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0Qsb0RBQW9EO0lBQ3BELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQVpELGtDQVlDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQWdCLFVBQVUsQ0FBQyxHQUFXO0lBQ3BDLElBQUk7UUFDRixzQkFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0tBQy9DO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBUEQsZ0NBT0M7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsVUFBVSxDQUFDLEdBQVc7SUFDcEMsSUFBSTtRQUNGLHNCQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7S0FDaEQ7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFQRCxnQ0FPQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsR0FBVztJQUM1QyxJQUFJO1FBQ0YsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sVUFBVSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztLQUNuRDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFQRCxnREFPQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsR0FBVztJQUNqRCxJQUFJO1FBQ0YsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sVUFBVSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztLQUN4RDtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUM7QUFQRCwwREFPQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsR0FBVztJQUNqRCxJQUFJO1FBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUMzRCxPQUFPLFVBQVUsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7S0FDeEQ7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBUEQsMERBT0M7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLG9CQUFvQixDQUFDLEdBQVc7SUFDOUMsSUFBSTtRQUNGLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQzNDO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQU5ELG9EQU1DO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixtQkFBbUIsQ0FBQyxHQUFXO0lBQzdDLElBQUk7UUFDRixHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLDBCQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwRSxPQUFPLElBQUksQ0FBQztLQUNiO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQVBELGtEQU9DO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixLQUFLLENBQUMsTUFBMkI7SUFDL0MsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRkQsc0JBRUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxNQUFjLEVBQUUsU0FBa0I7SUFDNUQsSUFBSSxHQUFHLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5QixHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDekMsSUFBSSxTQUFTLEVBQUU7UUFDYixHQUFHLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDcEM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFQRCxrQ0FPQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLEdBQVc7SUFDckMsOERBQThEO0lBQzlELDREQUE0RDtJQUM1RCw4REFBOEQ7SUFDOUQsbURBQW1EO0lBQ25ELG1CQUFtQjtJQUNuQixJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM1QixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNwQjtJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBVkQsa0NBVUM7QUFFRDs7Ozs7O0dBTUc7QUFFSCxTQUFnQixRQUFRLENBQUMsS0FBYSxFQUFFLE1BQWM7SUFDcEQsSUFBSTtRQUNGLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxjQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUM7S0FDeEQ7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sS0FBSyxDQUFDO0tBQ2Q7QUFDSCxDQUFDO0FBTkQsNEJBTUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUN6QixDQUFDO0FBRkQsb0NBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBiaXAzMiBmcm9tICdiaXAzMic7XG5pbXBvcnQgeyBFQ1BhaXIsIG5ldHdvcmtzIH0gZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgKiBhcyBuYWNsIGZyb20gJ3R3ZWV0bmFjbCc7XG5pbXBvcnQgKiBhcyBoZXggZnJvbSAnQHN0YWJsZWxpYi9oZXgnO1xuaW1wb3J0ICogYXMgYmxzIGZyb20gJ25vYmxlLWJsczEyLTM4MSc7XG5pbXBvcnQgc3RyaXBIZXhQcmVmaXggZnJvbSAnc3RyaXAtaGV4LXByZWZpeCc7XG5pbXBvcnQgeyBFeHRlbmRlZEtleXMgfSBmcm9tICcuLi9iYXNlQ29pbi9pZmFjZSc7XG5pbXBvcnQgYnM1OCBmcm9tICdiczU4JztcblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZ30geHB1YiAtIGEgYmFzZS01OCBlbmNvZGVkIGV4dGVuZGVkIHB1YmxpYyBrZXkgKEJJUDMyKVxuICogQHJldHVybnMge3N0cmluZ30gdGhlIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5IGluIGhleGFkZWNpbWFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB4cHViVG9VbmNvbXByZXNzZWRQdWIoeHB1Yjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFpc1ZhbGlkWHB1Yih4cHViKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCB4cHViJyk7XG4gIH1cbiAgcmV0dXJuIEVDUGFpci5mcm9tUHVibGljS2V5KGJpcDMyLmZyb21CYXNlNTgoeHB1YiwgbmV0d29ya3MuYml0Y29pbikucHVibGljS2V5LCB7XG4gICAgY29tcHJlc3NlZDogZmFsc2UsXG4gIH0pLnB1YmxpY0tleS50b1N0cmluZygnaGV4Jyk7XG59XG5cbi8qKlxuICogQHBhcmFtIHtzdHJpbmd9IHhwcnYgLSBiYXNlNTgtZW5jb2RlZCBleHRlbmRlZCBwcml2YXRlIGtleSAoQklQMzIpXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgaGV4LWVuY29kZWQgcmF3IHByaXZhdGUga2V5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB4cHJ2VG9SYXdQcnYoeHBydjogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFpc1ZhbGlkWHBydih4cHJ2KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCB4cHJ2Jyk7XG4gIH1cblxuICBjb25zdCB7IHByaXZhdGVLZXkgfSA9IGJpcDMyLmZyb21CYXNlNTgoeHBydiwgbmV0d29ya3MuYml0Y29pbik7XG4gIGlmICghcHJpdmF0ZUtleSkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZCB4cHJ2Jyk7XG4gIH1cbiAgcmV0dXJuIHByaXZhdGVLZXkudG9TdHJpbmcoJ2hleCcpO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcnYgLSBQcml2YXRlIGtleSBpbiBoZXggZm9ybWF0IHRvIGdldCB0aGUgZXh0ZW5kZWQga2V5cyBmb3JcbiAqIEByZXR1cm5zIHtFeHRlbmRlZEtleXN9IHhwcnYgYW5kIHhwdWIgaW4gc3RyaW5nIGZvcm1hdFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmF3UHJ2VG9FeHRlbmRlZEtleXMocHJ2OiBzdHJpbmcpOiBFeHRlbmRlZEtleXMge1xuICBjb25zdCBoZCA9IGJpcDMyLmZyb21Qcml2YXRlS2V5KEJ1ZmZlci5mcm9tKHBydiwgJ2hleCcpLCBCdWZmZXIuYWxsb2MoMzIpKTtcbiAgcmV0dXJuIHtcbiAgICB4cHJ2OiBoZC50b0Jhc2U1OCgpLFxuICAgIHhwdWI6IGhkLm5ldXRlcmVkKCkudG9CYXNlNTgoKSxcbiAgfTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyBhIHZhbGlkIEJJUDMyIHhwdWIgb3Igbm90XG4gKlxuICogQHBhcmFtIHhwdWJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRYcHViKHhwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBpZiAoeHB1Yi5zdWJzdHIoMCwgNCkgIT09ICd4cHViJykge1xuICAgIC8vIGNoZWNrIGZvciB4cHViIGZvcm1hdHMgd2UgZG9uJ3Qgc3VwcG9ydCwgc3VjaCBhcyB0cHViXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHRyeSB7XG4gICAgYmlwMzIuZnJvbUJhc2U1OCh4cHViLCBuZXR3b3Jrcy5iaXRjb2luKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIGlmIEhEIGdlbmVyYXRpb24gZGlkbid0IHRocm93LCBpdCBpcyBhIHZhbGlkIHhwdWJcbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgaW5wdXQgaXMgYSB2YWxpZCBCSVAzMiB4cHJ2IG9yIG5vdFxuICpcbiAqIEBwYXJhbSB4cHJ2XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkWHBydih4cHJ2OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKHhwcnYuc3Vic3RyKDAsIDQpICE9PSAneHBydicpIHtcbiAgICAvLyBjaGVjayBmb3IgeHBydiBmb3JtYXRzIHdlIGRvbid0IHN1cHBvcnRcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgdHJ5IHtcbiAgICBiaXAzMi5mcm9tQmFzZTU4KHhwcnYsIG5ldHdvcmtzLmJpdGNvaW4pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gaWYgSEQgZ2VuZXJhdGlvbiBkaWRuJ3QgdGhyb3csIGl0IGlzIGEgdmFsaWQgeHBydlxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyBhIHZhbGlkIHNlY3AyNTZrMSBwdWJsaWMga2V5XG4gKlxuICogQHBhcmFtIHB1YlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZFB1YihwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIEVDUGFpci5mcm9tUHVibGljS2V5KEJ1ZmZlci5mcm9tKHB1YiwgJ2hleCcpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyBhIHZhbGlkIHNlY3AyNTZrMSBwcml2YXRlIGtleVxuICpcbiAqIEBwYXJhbSBwcnZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRQcnYocHJ2OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBFQ1BhaXIuZnJvbVByaXZhdGVLZXkoQnVmZmVyLmZyb20ocHJ2LCAnaGV4JykpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIFdoZXRoZXIgdGhlIGlucHV0IGlzIGEgdmFsaWQgZWQyNTUxOSBwcml2YXRlIGtleVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcnYgQSBoZXhhZGVjaW1hbCBwcml2YXRlIGtleSB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIGlucHV0IGlzIGEgdmFsaWQgcHVibGljIGtleSBvciBub3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFZDI1NTE5U2VlZChwcnY6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGNvbnN0IGRlY29kZWRQcnYgPSB0b1VpbnQ4QXJyYXkocHJ2KTtcbiAgICByZXR1cm4gZGVjb2RlZFBydi5sZW5ndGggPT09IG5hY2wuc2lnbi5zZWVkTGVuZ3RoO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgaW5wdXQgaXMgYSB2YWxpZCBlZDI1NTE5IHByaXZhdGUga2V5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBydiBBIGhleGFkZWNpbWFsIHByaXZhdGUga2V5IHRvIHZhbGlkYXRlXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgaW5wdXQgaXMgYSB2YWxpZCBwdWJsaWMga2V5IG9yIG5vdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEVkMjU1MTlTZWNyZXRLZXkocHJ2OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkZWNvZGVkUHJ2ID0gdG9VaW50OEFycmF5KHBydik7XG4gICAgcmV0dXJuIGRlY29kZWRQcnYubGVuZ3RoID09PSBuYWNsLnNpZ24uc2VjcmV0S2V5TGVuZ3RoO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogV2hldGhlciB0aGUgaW5wdXQgaXMgYSB2YWxpZCBlZDI1NTE5IHB1YmxpYyBrZXlcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcHViIEEgaGV4YWRlY2ltYWwgcHVibGljIGtleSB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIGlucHV0IGlzIGEgdmFsaWQgcHVibGljIGtleSBvciBub3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5KHB1Yjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGVjb2RlZFB1YiA9IG5ldyBVaW50OEFycmF5KEJ1ZmZlci5mcm9tKHB1YiwgJ2hleCcpKTtcbiAgICByZXR1cm4gZGVjb2RlZFB1Yi5sZW5ndGggPT09IG5hY2wuc2lnbi5wdWJsaWNLZXlMZW5ndGg7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBpbnB1dCBpcyBhIHZhbGlkIEJMUyBwcml2YXRlIGtleVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwcnYgYSBwcml2YXRlIGtleSB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIGlucHV0IGlzIGEgdmFsaWQgcHJpdmF0ZSBrZXkgb3Igbm90XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkQkxTUHJpdmF0ZUtleShwcnY6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIHJldHVybiBibHMuRnIuaXNWYWxpZChCaWdJbnQoJzB4JyArIHBydikpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogV2hldGhlciBpbnB1dCBpcyBhIHZhbGlkIEJMUyBwdWJsaWMga2V5XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHB1YiB0aGUgcHVibGljIGtleSB0byB2YWxpZGF0ZVxuICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgaW5wdXQgaXMgYSB2YWxpZCBwdWJsaWMga2V5IG9yIG5vdFxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNWYWxpZEJMU1B1YmxpY0tleShwdWI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIGJscy5Qb2ludEcxLmZyb21Db21wcmVzc2VkSGV4KHN0cmlwSGV4UHJlZml4KHB1YikpLmFzc2VydFZhbGlkaXR5KCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGhleCBzdHJpbmcgb2YgdGhlIGdpdmVuIGJ1ZmZlclxuICpcbiAqIEBwYXJhbSB7QnVmZmVyIHwgVWludDhBcnJheX0gYnVmZmVyIC0gdGhlIGJ1ZmZlciB0byBiZSBjb252ZXJ0ZWQgdG8gaGV4XG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBoZXggdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSGV4KGJ1ZmZlcjogQnVmZmVyIHwgVWludDhBcnJheSk6IHN0cmluZyB7XG4gIHJldHVybiBoZXguZW5jb2RlKGJ1ZmZlciwgdHJ1ZSk7XG59XG5cbi8qKlxuICogUmV0dXJucyBhbiBoZXggc3RyaW5nIG9mIHRoZSBnaXZlbiBiaWdpbnRcbiAqXG4gKiBAcGFyYW0ge2JpZ2ludH0gYmlnaW50IC0gdGhlIGJpZ2ludCB0byBiZSBjb252ZXJ0ZWQgdG8gaGV4XG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIHRoZSBoZXggdmFsdWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJpZ0ludFRvSGV4KGJpZ2ludDogYmlnaW50LCBoZXhMZW5ndGg/OiBudW1iZXIpOiBzdHJpbmcge1xuICBsZXQgaGV4ID0gYmlnaW50LnRvU3RyaW5nKDE2KTtcbiAgaGV4ID0gJzAnLnNsaWNlKDAsIGhleC5sZW5ndGggJSAyKSArIGhleDtcbiAgaWYgKGhleExlbmd0aCkge1xuICAgIGhleCA9IGhleC5wYWRTdGFydChoZXhMZW5ndGgsICcwJyk7XG4gIH1cbiAgcmV0dXJuIGhleDtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgQmlnSW50IHZhbHVlIGZyb20gaGV4XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGhleCAtIGhleCB2YWx1ZSB0byBiZSBjb252ZXJ0ZWQgdG8gYmlnaW50XG4gKiBAcmV0dXJucyB7YmlnaW50fSAtIGJpZ2ludCByZXByZXNlbnRhdGlvbiBvZiB0aGUgaGV4IHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoZXhUb0JpZ0ludChoZXg6IHN0cmluZyk6IGJpZ2ludCB7XG4gIC8vIFN0cmFuZ2VseSBiaWdpbnQudG9TdHJpbmcoMTYpIGdpdmVzIGEgaGV4IHN0cmluZyB3aXRob3V0IDB4XG4gIC8vIGJ1dCBpdCB3b24ndCBhY2NlcHQgdGhlIHNhbWUgc3RyaW5nIHdpdGhvdXQgMHggdG8gY29udmVydFxuICAvLyB0byBhIGJpZ2ludCAoQmlnSW50KGhleCBzdHJpbmcpKS4gU28gaGF2ZSB0byBpbnRyb2R1Y2UgdGhpc1xuICAvLyBjaGVjayB0byBjb252ZXJ0IHRvIGFkZCAweCBpbiBjYXNlIGlmIGhleCBzdHJpbmdcbiAgLy8gZG9lc24ndCBoYXZlIGl0LlxuICBpZiAoaGV4LnNsaWNlKDAsIDIpID09PSAnMHgnKSB7XG4gICAgcmV0dXJuIEJpZ0ludChoZXgpO1xuICB9XG4gIHJldHVybiBCaWdJbnQoJzB4JyArIGhleCk7XG59XG5cbi8qKlxuICogQ2hlY2sgaWYgYmFzZTU4IGRlY29kZWQgc3RyaW5nIGlzIGVxdWFsZSB0byBsZW5ndGhcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgLSBzdHJpbmcgdG8gYmUgY2hlY2tlZFxuICogQHBhcmFtIHtudW1iZXJ9IGxlbmd0aCAtIGV4cGVjdGVkIGRlY29kZWQgbGVuZ3RoXG4gKiBAcmV0dXJuIHtib29sZWFufSBpZiB0aGUgc3RyaW5nIGNhbiBkZWNvZGVkIGFzIGJhc2U1OCBhbmQgbWF0Y2ggdGhlIGV4cGVjdGVkIGxlbmd0aFxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Jhc2U1OCh2YWx1ZTogc3RyaW5nLCBsZW5ndGg6IG51bWJlcik6IGJvb2xlYW4ge1xuICB0cnkge1xuICAgIHJldHVybiAhIXZhbHVlICYmIGJzNTguZGVjb2RlKHZhbHVlKS5sZW5ndGggPT09IGxlbmd0aDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgYSBVaW50OEFycmF5IG9mIHRoZSBnaXZlbiBoZXggc3RyaW5nXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHN0ciAtIHRoZSBoZXggc3RyaW5nIHRvIGJlIGNvbnZlcnRlZFxuICogQHJldHVybnMge3N0cmluZ30gLSB0aGUgVWludDhBcnJheSB2YWx1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gdG9VaW50OEFycmF5KHN0cjogc3RyaW5nKTogVWludDhBcnJheSB7XG4gIHJldHVybiBoZXguZGVjb2RlKHN0cik7XG59XG4iXX0=
@@ -137,6 +137,11 @@ export declare abstract class BaseCoin implements IBaseCoin {
137
137
  * @returns {boolean}
138
138
  */
139
139
  supportsBlockTarget(): boolean;
140
+ /**
141
+ * Check whether a coin supports lightning transactions
142
+ * @returns {boolean}
143
+ */
144
+ supportsLightning(): boolean;
140
145
  /**
141
146
  * Hook to add additional parameters to the wallet generation
142
147
  * @param walletParams
@@ -1 +1 @@
1
- {"version":3,"file":"baseCoin.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/baseCoin/baseCoin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseCoin.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/baseCoin/baseCoin.ts"],"names":[],"mappings":"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"}
@@ -196,6 +196,13 @@ class BaseCoin {
196
196
  supportsBlockTarget() {
197
197
  return false;
198
198
  }
199
+ /**
200
+ * Check whether a coin supports lightning transactions
201
+ * @returns {boolean}
202
+ */
203
+ supportsLightning() {
204
+ return false;
205
+ }
199
206
  /**
200
207
  * Hook to add additional parameters to the wallet generation
201
208
  * @param walletParams
@@ -309,4 +316,4 @@ class BaseCoin {
309
316
  }
310
317
  exports.BaseCoin = BaseCoin;
311
318
  BaseCoin._coinTokenPatternSeparator = ':';
312
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZUNvaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vYmFzZUNvaW4vYmFzZUNvaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsK0NBQWlDO0FBQ2pDLDZDQUErQjtBQUMvQiwrQ0FBeUM7QUFFekMseURBQTJDO0FBRzNDLDRDQUEyQztBQUMzQyxtREFBd0Q7QUFFeEQsOENBQTRDO0FBQzVDLDBDQUFvRDtBQUNwRCxzQ0FBb0M7QUFDcEMsd0RBQXNEO0FBQ3RELHNDQUFxRDtBQUNyRCx3Q0FBc0M7QUF1QnRDLE1BQXNCLFFBQVE7SUFXNUIsWUFBc0IsS0FBZ0I7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdCQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksb0JBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxrQkFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksa0NBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksd0JBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxnQkFBTyxDQUFD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Q0FBQztRQUN0QyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFELE9BQU87WUFDTCxHQUFHLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtZQUM5QixjQUFjLEVBQUUsY0FBYztTQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQjtRQUNkLE9BQU8sQ0FBQyxxQkFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLE1BQTZCO1FBQzFDLE9BQU87SUFDVCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxNQUErQjtRQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQW1CRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBOEI7UUFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQWdCRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsWUFBb0I7UUFDM0MsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQWlDO1FBQ2xELE1BQU0sSUFBSSxpQ0FBbUIsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7O0FBN1hILDRCQThYQztBQXJYMkIsbUNBQTBCLEdBQUcsR0FBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgKiBhcyBiaXAzMiBmcm9tICdiaXAzMic7XG5pbXBvcnQgeyBCaWdOdW1iZXIgfSBmcm9tICdiaWdudW1iZXIuanMnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmltcG9ydCB7IEluaXRpYXRlUmVjb3ZlcnlPcHRpb25zIH0gZnJvbSAnLi4vcmVjb3ZlcnknO1xuaW1wb3J0IHsgc2lnbk1lc3NhZ2UgfSBmcm9tICcuLi9iaXAzMnV0aWwnO1xuaW1wb3J0IHsgTm90SW1wbGVtZW50ZWRFcnJvciB9IGZyb20gJy4uLy4uL2FjY291bnQtbGliJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBFbnRlcnByaXNlcyB9IGZyb20gJy4uL2VudGVycHJpc2UnO1xuaW1wb3J0IHsgS2V5Y2hhaW5zLCBLZXlJbmRpY2VzIH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgTWFya2V0cyB9IGZyb20gJy4uL21hcmtldCc7XG5pbXBvcnQgeyBQZW5kaW5nQXBwcm92YWxzIH0gZnJvbSAnLi4vcGVuZGluZ0FwcHJvdmFsJztcbmltcG9ydCB7IFdhbGxldHMsIElXYWxsZXQsIFdhbGxldCB9IGZyb20gJy4uL3dhbGxldCc7XG5pbXBvcnQgeyBXZWJob29rcyB9IGZyb20gJy4uL3dlYmhvb2snO1xuaW1wb3J0IHtcbiAgRXh0cmFQcmVidWlsZFBhcmFtc09wdGlvbnMsXG4gIEZlZUVzdGltYXRlT3B0aW9ucyxcbiAgSUJhc2VDb2luLFxuICBQYXJzZWRUcmFuc2FjdGlvbixcbiAgSVRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIEtleWNoYWluc1RyaXBsZXQsXG4gIEtleVBhaXIsXG4gIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zLFxuICBQcmVjcmVhdGVCaXRHb09wdGlvbnMsXG4gIFByZXNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFJlY292ZXJUb2tlblRyYW5zYWN0aW9uLFxuICBSZWNvdmVyV2FsbGV0VG9rZW5PcHRpb25zLFxuICBTaWduZWRUcmFuc2FjdGlvbixcbiAgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgU3VwcGxlbWVudEdlbmVyYXRlV2FsbGV0T3B0aW9ucyxcbiAgVG9rZW5FbmFibGVtZW50Q29uZmlnLFxuICBUcmFuc2FjdGlvblByZWJ1aWxkLFxuICBWZXJpZnlBZGRyZXNzT3B0aW9ucyxcbiAgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zLFxufSBmcm9tICcuL2lCYXNlQ29pbic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29pbiBpbXBsZW1lbnRzIElCYXNlQ29pbiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBiaXRnbzogQml0R29CYXNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3VybDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2VudGVycHJpc2VzOiBFbnRlcnByaXNlcztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF93YWxsZXRzOiBXYWxsZXRzO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2tleWNoYWluczogS2V5Y2hhaW5zO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3dlYmhvb2tzOiBXZWJob29rcztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9wZW5kaW5nQXBwcm92YWxzOiBQZW5kaW5nQXBwcm92YWxzO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX21hcmtldHM6IE1hcmtldHM7XG4gIHByb3RlY3RlZCBzdGF0aWMgcmVhZG9ubHkgX2NvaW5Ub2tlblBhdHRlcm5TZXBhcmF0b3IgPSAnOic7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UpIHtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gICAgdGhpcy5fdXJsID0gdGhpcy5iaXRnby51cmwoJy8nLCAyKTtcbiAgICB0aGlzLl93YWxsZXRzID0gbmV3IFdhbGxldHModGhpcy5iaXRnbywgdGhpcyk7XG4gICAgdGhpcy5fa2V5Y2hhaW5zID0gbmV3IEtleWNoYWlucyh0aGlzLmJpdGdvLCB0aGlzKTtcbiAgICB0aGlzLl93ZWJob29rcyA9IG5ldyBXZWJob29rcyh0aGlzLmJpdGdvLCB0aGlzKTtcbiAgICB0aGlzLl9wZW5kaW5nQXBwcm92YWxzID0gbmV3IFBlbmRpbmdBcHByb3ZhbHModGhpcy5iaXRnbywgdGhpcyk7XG4gICAgdGhpcy5fZW50ZXJwcmlzZXMgPSBuZXcgRW50ZXJwcmlzZXModGhpcy5iaXRnbywgdGhpcyk7XG4gICAgdGhpcy5fbWFya2V0cyA9IG5ldyBNYXJrZXRzKHRoaXMuYml0Z28sIHRoaXMpO1xuICB9XG5cbiAgcHVibGljIHVybChzdWZmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3VybCArIHRoaXMuZ2V0Q2hhaW4oKSArIHN1ZmZpeDtcbiAgfVxuXG4gIHB1YmxpYyB3YWxsZXRzKCk6IFdhbGxldHMge1xuICAgIHJldHVybiB0aGlzLl93YWxsZXRzO1xuICB9XG5cbiAgcHVibGljIGVudGVycHJpc2VzKCk6IEVudGVycHJpc2VzIHtcbiAgICByZXR1cm4gdGhpcy5fZW50ZXJwcmlzZXM7XG4gIH1cblxuICBwdWJsaWMga2V5Y2hhaW5zKCk6IEtleWNoYWlucyB7XG4gICAgcmV0dXJuIHRoaXMuX2tleWNoYWlucztcbiAgfVxuXG4gIHB1YmxpYyB3ZWJob29rcygpOiBXZWJob29rcyB7XG4gICAgcmV0dXJuIHRoaXMuX3dlYmhvb2tzO1xuICB9XG5cbiAgcHVibGljIHBlbmRpbmdBcHByb3ZhbHMoKTogUGVuZGluZ0FwcHJvdmFscyB7XG4gICAgcmV0dXJuIHRoaXMuX3BlbmRpbmdBcHByb3ZhbHM7XG4gIH1cblxuICBwdWJsaWMgbWFya2V0cygpOiBNYXJrZXRzIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2V0cztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGNvaW5Ub2tlblBhdHRlcm5TZXBhcmF0b3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY29pblRva2VuUGF0dGVyblNlcGFyYXRvcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldENoYWluKCk7XG4gIH1cblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgY2hhaW4gd2hpY2ggc3VwcG9ydHMgdGhpcyBjb2luIChlZywgJ2J0YycsICdldGgnKVxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0Q2hhaW4oKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBjb2luIGZhbWlseSAoZWcuIGZvciB0YnRjLCB0aGlzIHdvdWxkIGJlIGJ0YylcbiAgICovXG4gIGFic3RyYWN0IGdldEZhbWlseSgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuIHJlYWRhYmxlIGZ1bGwgbmFtZSBmb3IgdGhlIGNvaW5cbiAgICovXG4gIGFic3RyYWN0IGdldEZ1bGxOYW1lKCk6IHN0cmluZztcblxuICAvKipcbiAgICogRmxhZyBmb3Igc2VuZGluZyB2YWx1ZSBvZiAwLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBva2F5IHRvIHNlbmQgMCB2YWx1ZSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICB2YWx1ZWxlc3NUcmFuc2ZlckFsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBgc2VuZE1hbnkoKWAgdG8gcGVyZm9ybSB3YWxsZXQgc3dlZXAuXG4gICAqIEZJWE1FKEJHLTM5NzM4KTogYWRkIGNvaW4uc3dlZXBXYWxsZXQoKSBpbnN0ZWFkXG4gICAqL1xuICBzd2VlcFdpdGhTZW5kTWFueSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyBmb3Igc2VuZGluZyBkYXRhIGFsb25nIHdpdGggdHJhbnNhY3Rpb25zXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIG9rYXkgdG8gc2VuZCB0eCBkYXRhIChFVEgpLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHRyYW5zYWN0aW9uRGF0YUFsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgdGhpcyBjb2luIHN1cHBvcnRzIGFjY291bnQgY29uc29saWRhdGlvbnNcbiAgICogZnJvbSBpdHMgcmVjZWl2ZSBhZGRyZXNzZXMgdG8gdGhlIHJvb3QgYWRkcmVzcy5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgb2theSB0byBjb25zb2xpZGF0ZSBvdmVyIHRoaXMgY29pbjsgZmFsc2UsIG90aGVyd2lzZVxuICAgKi9cbiAgYWxsb3dzQWNjb3VudENvbnNvbGlkYXRpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNvbmZpZyBmb3IgaG93IHRva2VuIGVuYWJsZW1lbnRzIHdvcmsgZm9yIHRoaXMgY29pblxuICAgKiBAcmV0dXJuc1xuICAgKiAgICByZXF1aXJlc1Rva2VuRW5hYmxlbWVudDogVHJ1ZSBpZiB0b2tlbnMgbmVlZCB0byBiZSBlbmFibGVkIGZvciB0aGlzIGNvaW5cbiAgICogICAgc3VwcG9ydHNNdWx0aXBsZVRva2VuRW5hYmxlbWVudHM6IFRydWUgaWYgbXVsdGlwbGUgdG9rZW5zIGNhbiBiZSBlbmFibGVkIGluIG9uZSB0cmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0VG9rZW5FbmFibGVtZW50Q29uZmlnKCk6IFRva2VuRW5hYmxlbWVudENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcXVpcmVzVG9rZW5FbmFibGVtZW50OiBmYWxzZSxcbiAgICAgIHN1cHBvcnRzTXVsdGlwbGVUb2tlbkVuYWJsZW1lbnRzOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyBpZiB0aGlzIGNvaW4gc3VwcG9ydHMgVFNTIHdhbGxldHMuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIFRTUyBXYWxsZXRzIGNhbiBiZSBjcmVhdGVkIGZvciB0aGlzIGNvaW5cbiAgICovXG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgaWYgdGhpcyBjb2luIHN1cHBvcnRzIHN0YWtpbmcuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHN0YWtpbmcgaXMgc3VwcG9ydGVkIGZvciB0aGlzIGNvaW4sIEZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgc3VwcG9ydHNTdGFraW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgaWYgdGhpcyBjb2luIHN1cHBvcnRzIEJMUy1ES0cgd2FsbGV0cy5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgQkxTLURLRyBXYWxsZXRzIGNhbiBiZSBjcmVhdGVkIGZvciB0aGlzIGNvaW5cbiAgICovXG4gIHN1cHBvcnRzQmxzRGtnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBmYWN0b3IgYmV0d2VlbiB0aGUgYmFzZSB1bml0IGFuZCBpdHMgc21hbGxlc3Qgc3ViZGl2aXNvblxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBhYnN0cmFjdCBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB8IHN0cmluZztcblxuICAvKipcbiAgICogQ29udmVydCBhIGN1cnJlbmN5IGFtb3VudCByZXByZXNlbnRlZCBpbiBiYXNlIHVuaXRzIChzYXRvc2hpLCB3ZWksIGF0b21zLCBkcm9wcywgc3Ryb29wcylcbiAgICogdG8gYmlnIHVuaXRzIChidGMsIGV0aCwgeHJwLCB4bG0pXG4gICAqL1xuICBiYXNlVW5pdHNUb0JpZ1VuaXRzKGJhc2VVbml0czogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgICBCaWdOdW1iZXIuc2V0KHsgREVDSU1BTF9QTEFDRVM6IDI0IH0pO1xuICAgIGNvbnN0IGRpdmlkZW5kID0gdGhpcy5nZXRCYXNlRmFjdG9yKCk7XG4gICAgY29uc3QgYmlnTnVtYmVyID0gbmV3IEJpZ051bWJlcihiYXNlVW5pdHMpLmRpdmlkZWRCeShkaXZpZGVuZCk7XG4gICAgLy8gc2V0IHRoZSBmb3JtYXQgc28gY29tbWFzIGFyZW4ndCBhZGRlZCB0byBsYXJnZSBjb2luIGFtb3VudHNcbiAgICByZXR1cm4gYmlnTnVtYmVyLnRvRm9ybWF0KG51bGwgYXMgYW55LCBudWxsIGFzIGFueSwgeyBncm91cFNlcGFyYXRvcjogJycsIGRlY2ltYWxTZXBhcmF0b3I6ICcuJyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgY3VycmVuY3kgYW1vdW50IHJlcHJlc2VudGVkIGluIGJpZyB1bml0cyAoYnRjLCBldGgsIHhycCwgeGxtKVxuICAgKiB0byBiYXNlIHVuaXRzIChzYXRvc2hpLCB3ZWksIGF0b21zLCBkcm9wcywgc3Ryb29wcylcbiAgICogQHBhcmFtIGJpZ1VuaXRzXG4gICAqL1xuICBiaWdVbml0c1RvQmFzZVVuaXRzKGJpZ1VuaXRzOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IG11bHRpcGxpZXIgPSB0aGlzLmdldEJhc2VGYWN0b3IoKTtcbiAgICBjb25zdCBiaWdOdW1iZXIgPSBuZXcgQmlnTnVtYmVyKGJpZ1VuaXRzKS50aW1lcyhtdWx0aXBsaWVyKTtcbiAgICBpZiAoIWJpZ051bWJlci5pc0ludGVnZXIoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBub24taW50ZWdlciBvdXRwdXQgcmVzdWx0ZWQgZnJvbSBtdWx0aXBseWluZyAke2JpZ1VuaXRzfSBieSAke211bHRpcGxpZXJ9YCk7XG4gICAgfVxuICAgIHJldHVybiBiaWdOdW1iZXIudG9GaXhlZCgwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIG1lc3NhZ2Ugd2l0aCBwcml2YXRlIGtleVxuICAgKlxuICAgKiBAcGFyYW0ga2V5XG4gICAqIEBwYXJhbSBtZXNzYWdlXG4gICAqL1xuICBhc3luYyBzaWduTWVzc2FnZShrZXk6IHsgcHJ2OiBzdHJpbmcgfSwgbWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXI+IHtcbiAgICByZXR1cm4gc2lnbk1lc3NhZ2UobWVzc2FnZSwgYmlwMzIuZnJvbUJhc2U1OChrZXkucHJ2KSwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvbXBvc2UgYSByYXcgdHJhbnNhY3Rpb24gaW50byB1c2VmdWwgaW5mb3JtYXRpb24uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gY29pbi1zcGVjaWZpY1xuICAgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKG9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPElUcmFuc2FjdGlvbkV4cGxhbmF0aW9uPGFueSwgc3RyaW5nIHwgbnVtYmVyPiB8IHVuZGVmaW5lZD4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm90IGltcGxlbWVudGVkYCk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgYSB0cmFuc2FjdGlvbiBwcmVidWlsZCBjb21wbGllcyB3aXRoIHRoZSBvcmlnaW5hbCBpbnRlbnRpb25cbiAgICovXG4gIGFic3RyYWN0IHZlcmlmeVRyYW5zYWN0aW9uKHBhcmFtczogVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxib29sZWFuPjtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHtAc2VlIGlzV2FsbGV0QWRkcmVzc30gaW5zdGVhZFxuICAgKi9cbiAgdmVyaWZ5QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNXYWxsZXRBZGRyZXNzKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcmV0dXJuIHRydWUgaWZmIGFkZHJlc3MgaXMgYSB3YWxsZXQgYWRkcmVzcy4gTXVzdCByZXR1cm4gZmFsc2UgaWYgYWRkcmVzcyBpcyBvdXRzaWRlIHdhbGxldC5cbiAgICovXG4gIGFic3RyYWN0IGlzV2FsbGV0QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogY29udmVydCBhZGRyZXNzIGludG8gZGVzaXJlZCBhZGRyZXNzIGZvcm1hdC5cbiAgICogQHBhcmFtIGFkZHJlc3NcbiAgICogQHBhcmFtIGZvcm1hdFxuICAgKi9cbiAgY2Fub25pY2FsQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIGZvcm1hdD86IHVua25vd24pOiBzdHJpbmcge1xuICAgIHJldHVybiBhZGRyZXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgYSBjb2luIHN1cHBvcnRzIGJsb2NrVGFyZ2V0IGZvciB0cmFuc2FjdGlvbnMgdG8gYmUgaW5jbHVkZWQgaW5cbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBzdXBwb3J0c0Jsb2NrVGFyZ2V0KCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIb29rIHRvIGFkZCBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgdG8gdGhlIHdhbGxldCBnZW5lcmF0aW9uXG4gICAqIEBwYXJhbSB3YWxsZXRQYXJhbXNcbiAgICogQHBhcmFtIGtleWNoYWluc1xuICAgKiBAcmV0dXJuIHsqfVxuICAgKi9cbiAgc3VwcGxlbWVudEdlbmVyYXRlV2FsbGV0KHdhbGxldFBhcmFtczogU3VwcGxlbWVudEdlbmVyYXRlV2FsbGV0T3B0aW9ucywga2V5Y2hhaW5zOiBLZXljaGFpbnNUcmlwbGV0KTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHdhbGxldFBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGV4dHJhIHBhcmFtZXRlcnMgZm9yIHByZWJ1aWxkaW5nIGEgdHguIEFkZCB0aGluZ3MgbGlrZSBob3AgdHJhbnNhY3Rpb24gcGFyYW1zXG4gICAqL1xuICBnZXRFeHRyYVByZWJ1aWxkUGFyYW1zKGJ1aWxkUGFyYW1zOiBFeHRyYVByZWJ1aWxkUGFyYW1zT3B0aW9ucyk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNb2RpZnkgcHJlYnVpbGQgYWZ0ZXIgcmVjZWl2aW5nIGl0IGZyb20gdGhlIHNlcnZlci4gQWRkIHRoaW5ncyBsaWtlIG5sb2NrdGltZVxuICAgKi9cbiAgcG9zdFByb2Nlc3NQcmVidWlsZChwcmVidWlsZFJlc3BvbnNlOiBUcmFuc2FjdGlvblByZWJ1aWxkKTogUHJvbWlzZTxUcmFuc2FjdGlvblByZWJ1aWxkPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwcmVidWlsZFJlc3BvbnNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb2luLXNwZWNpZmljIHRoaW5ncyBkb25lIGJlZm9yZSBzaWduaW5nIGEgdHJhbnNhY3Rpb24sIGkuZS4gdmVyaWZpY2F0aW9uXG4gICAqL1xuICBwcmVzaWduVHJhbnNhY3Rpb24ocGFyYW1zOiBQcmVzaWduVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxQcmVzaWduVHJhbnNhY3Rpb25PcHRpb25zPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShwYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyB3YWxsZXQgb2JqZWN0IGZyb20gYSB3YWxsZXQgZGF0YSBvYmplY3RcbiAgICogQHBhcmFtIHdhbGxldFBhcmFtc1xuICAgKi9cbiAgbmV3V2FsbGV0T2JqZWN0KHdhbGxldFBhcmFtczogYW55KTogSVdhbGxldCB7XG4gICAgcmV0dXJuIG5ldyBXYWxsZXQodGhpcy5iaXRnbywgdGhpcywgd2FsbGV0UGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCBmZWUgZXN0aW1hdGUgaW5mb3JtYXRpb24gZnJvbSB0aGUgc2VydmVyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgVGhlIHBhcmFtcyBwYXNzZWQgaW50byB0aGUgZnVuY3Rpb25cbiAgICogQHBhcmFtIHtJbnRlZ2VyfSBwYXJhbXMubnVtQmxvY2tzIFRoZSBudW1iZXIgb2YgYmxvY2tzIHRvIHRhcmdldCBmb3IgY29uZm9ybWF0aW9uIChPbmx5IHdvcmtzIGZvciBidGMpXG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBpbmZvIHJldHVybmVkIGZyb20gdGhlIG1lcmNoYW50IHNlcnZlclxuICAgKi9cbiAgYXN5bmMgZmVlRXN0aW1hdGUocGFyYW1zOiBGZWVFc3RpbWF0ZU9wdGlvbnMpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHF1ZXJ5OiBhbnkgPSB7fTtcbiAgICBpZiAocGFyYW1zICYmIHBhcmFtcy5udW1CbG9ja3MpIHtcbiAgICAgIHF1ZXJ5Lm51bUJsb2NrcyA9IHBhcmFtcy5udW1CbG9ja3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYml0Z28uZ2V0KHRoaXMudXJsKCcvdHgvZmVlJykpLnF1ZXJ5KHF1ZXJ5KS5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgY29sZCB3YWxsZXQgdG9vbCB1c2VzIHRoaXMgZnVuY3Rpb24gdG8gZGVyaXZlIGFuIGV4dGVuZGVkIGtleSB0aGF0IGlzIGJhc2VkIG9uIHRoZSBwYXNzZWQga2V5IGFuZCBzZWVkXG4gICAqIEBwYXJhbSBrZXlcbiAgICogQHBhcmFtIHNlZWRcbiAgICogQHJldHVybnMge3trZXk6IHN0cmluZywgZGVyaXZhdGlvblBhdGg6IHN0cmluZ319XG4gICAqL1xuICBkZXJpdmVLZXlXaXRoU2VlZCh7IGtleSwgc2VlZCB9OiB7IGtleTogc3RyaW5nOyBzZWVkOiBzdHJpbmcgfSk6IHsga2V5OiBzdHJpbmc7IGRlcml2YXRpb25QYXRoOiBzdHJpbmcgfSB7XG4gICAgZnVuY3Rpb24gc2hhMjU2KGlucHV0KSB7XG4gICAgICByZXR1cm4gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShpbnB1dCkuZGlnZXN0KCk7XG4gICAgfVxuICAgIGNvbnN0IGRlcml2YXRpb25QYXRoSW5wdXQgPSBzaGEyNTYoc2hhMjU2KGAke3NlZWR9YCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCBkZXJpdmF0aW9uUGF0aFBhcnRzID0gW1xuICAgICAgcGFyc2VJbnQoZGVyaXZhdGlvblBhdGhJbnB1dC5zbGljZSgwLCA3KSwgMTYpLFxuICAgICAgcGFyc2VJbnQoZGVyaXZhdGlvblBhdGhJbnB1dC5zbGljZSg3LCAxNCksIDE2KSxcbiAgICBdO1xuICAgIGNvbnN0IGRlcml2YXRpb25QYXRoID0gJ20vOTk5OTk5LycgKyBkZXJpdmF0aW9uUGF0aFBhcnRzLmpvaW4oJy8nKTtcbiAgICBjb25zdCBrZXlOb2RlID0gYmlwMzIuZnJvbUJhc2U1OChrZXkpO1xuICAgIGNvbnN0IGRlcml2ZWRLZXlOb2RlID0ga2V5Tm9kZS5kZXJpdmVQYXRoKGRlcml2YXRpb25QYXRoKTtcbiAgICByZXR1cm4ge1xuICAgICAga2V5OiBkZXJpdmVkS2V5Tm9kZS50b0Jhc2U1OCgpLFxuICAgICAgZGVyaXZhdGlvblBhdGg6IGRlcml2YXRpb25QYXRoLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoYXQga2V5IHdlIHdpbGwgbmVlZCBmb3Igc2lnbmluZyAtIHJpZ2h0IG5vdyB3ZSBqdXN0IG5lZWQgdGhlXG4gICAqIHVzZXIga2V5LlxuICAgKi9cbiAga2V5SWRzRm9yU2lnbmluZygpOiBudW1iZXJbXSB7XG4gICAgcmV0dXJuIFtLZXlJbmRpY2VzLlVTRVJdO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gYWRkaXRpb25hbCBjaGVja3MgYmVmb3JlIGFkZGluZyBhIGJpdGdvIGtleS4gQmFzZSBjb250cm9sbGVyXG4gICAqIGlzIGEgbm8tb3AsIGJ1dCBjb2luLXNwZWNpZmljIGNvbnRyb2xsZXIgbWF5IGRvIHNvbWV0aGluZ1xuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqL1xuICBwcmVDcmVhdGVCaXRHbyhwYXJhbXM6IFByZWNyZWF0ZUJpdEdvT3B0aW9ucyk6IHZvaWQge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCAtIHVzZSBnZXRCaXAzMktleXMoKSBpbiBjb25qdW5jdGlvbiB3aXRoIGlzVmFsaWRBZGRyZXNzIGluc3RlYWRcbiAgICovXG4gIGluaXRpYXRlUmVjb3ZlcnkocGFyYW1zOiBJbml0aWF0ZVJlY292ZXJ5T3B0aW9ucyk6IG5ldmVyIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2RlcHJlY2F0ZWQgbWV0aG9kJyk7XG4gIH1cblxuICBhYnN0cmFjdCBwYXJzZVRyYW5zYWN0aW9uKHBhcmFtczogUGFyc2VUcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFBhcnNlZFRyYW5zYWN0aW9uPjtcblxuICAvKipcbiAgICogR2VuZXJhdGUgYSBrZXkgcGFpciBvbiB0aGUgY3VydmUgdXNlZCBieSB0aGUgY29pblxuICAgKlxuICAgKiBAcGFyYW0gc2VlZFxuICAgKi9cbiAgYWJzdHJhY3QgZ2VuZXJhdGVLZXlQYWlyKHNlZWQ/OiBCdWZmZXIpOiBLZXlQYWlyO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgaW5wdXQgaXMgdmFsaWQgcHVibGljIGtleSBmb3IgdGhlIGNvaW4uXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBwdWIgdGhlIHB1YiB0byBiZSBjaGVja2VkXG4gICAqIEByZXR1cm5zIHtCb29sZWFufSBpcyBpdCB2YWxpZD9cbiAgICovXG4gIGFic3RyYWN0IGlzVmFsaWRQdWIocHViOiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gd2V0aGVyIHRoZSBnaXZlbiBtIG9mIG4gd2FsbGV0IHNpZ25lcnMvIGtleSBhbW91bnRzIGFyZSB2YWxpZCBmb3IgdGhlIGNvaW5cbiAgICovXG4gIGlzVmFsaWRNb2ZOU2V0dXAoeyBtLCBuIH06IHsgbT86IG51bWJlcjsgbj86IG51bWJlciB9KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG0gPT09IDIgJiYgbiA9PT0gMztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBgYWRkcmVzc2AgaXMgYSBwbGF1c2libHkgdmFsaWQgYWRkcmVzcyBmb3IgdGhlIGdpdmVuIGNvaW4uXG4gICAqXG4gICAqIERvZXMgbm90IHZlcmlmeSB0aGF0IHRoZSBhZGRyZXNzIGJlbG9uZ3MgdG8gYSB3YWxsZXQuIEZvciB0aGF0LFxuICAgKiB1c2UgW1t2ZXJpZnlBZGRyZXNzXV1cbiAgICogQHBhcmFtIGFkZHJlc3NcbiAgICovXG4gIGFic3RyYWN0IGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNpZ24gYSB0cmFuc2FjdGlvblxuICAgKi9cbiAgYWJzdHJhY3Qgc2lnblRyYW5zYWN0aW9uKHBhcmFtczogU2lnblRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8U2lnbmVkVHJhbnNhY3Rpb24+O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBwb3J0aW9uIG9mIHRoZSB0cmFuc2FjdGlvbiB0aGF0IG5lZWRzIHRvIGJlIHNpZ25lZCBpbiBCdWZmZXIgZm9ybWF0LlxuICAgKiBPbmx5IG5lZWRlZCBmb3IgY29pbnMgdGhhdCBzdXBwb3J0IGFkZGluZyBzaWduYXR1cmVzIGRpcmVjdGx5IChlLmcuIFRTUykuXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBzZXJpYWxpemVkVHggLSB0aGUgdW5zaWduZWQgdHJhbnNhY3Rpb24gaW4gYnJvYWRjYXN0IGZvcm1hdFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxCdWZmZXI+fSAtIHRoZSBwb3J0aW9uIG9mIHRoZSB0cmFuc2FjdGlvbiB0aGF0IG5lZWRzIHRvIGJlIHNpZ25lZFxuICAgKi9cbiAgYXN5bmMgZ2V0U2lnbmFibGVQYXlsb2FkKHNlcmlhbGl6ZWRUeDogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXI+IHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oc2VyaWFsaXplZFR4KTtcbiAgfVxuXG4gIGFzeW5jIHJlY292ZXJUb2tlbihwYXJhbXM6IFJlY292ZXJXYWxsZXRUb2tlbk9wdGlvbnMpOiBQcm9taXNlPFJlY292ZXJUb2tlblRyYW5zYWN0aW9uPiB7XG4gICAgdGhyb3cgbmV3IE5vdEltcGxlbWVudGVkRXJyb3IoJ3JlY292ZXJUb2tlbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIGNvaW4nKTtcbiAgfVxufVxuIl19
319
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZUNvaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYml0Z28vYmFzZUNvaW4vYmFzZUNvaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztHQUVHO0FBQ0gsK0NBQWlDO0FBQ2pDLDZDQUErQjtBQUMvQiwrQ0FBeUM7QUFFekMseURBQTJDO0FBRzNDLDRDQUEyQztBQUMzQyxtREFBd0Q7QUFFeEQsOENBQTRDO0FBQzVDLDBDQUFvRDtBQUNwRCxzQ0FBb0M7QUFDcEMsd0RBQXNEO0FBQ3RELHNDQUFxRDtBQUNyRCx3Q0FBc0M7QUF1QnRDLE1BQXNCLFFBQVE7SUFXNUIsWUFBc0IsS0FBZ0I7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdCQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksb0JBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxrQkFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksa0NBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksd0JBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxnQkFBTyxDQUFD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QUM7UUFDbkUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFELE9BQU87WUFDTCxHQUFHLEVBQUUsY0FBYyxDQUFDLFFBQVEsRUFBRTtZQUM5QixjQUFjLEVBQUUsY0FBYztTQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILGdCQUFnQjtRQUNkLE9BQU8sQ0FBQyxxQkFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLE1BQTZCO1FBQzFDLE9BQU87SUFDVCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxnQkFBZ0IsQ0FBQyxNQUErQjtRQUM5QyxNQUFNLElBQUksS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQW1CRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBOEI7UUFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQWdCRDs7Ozs7O09BTUc7SUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsWUFBb0I7UUFDM0MsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQWlDO1FBQ2xELE1BQU0sSUFBSSxpQ0FBbUIsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7O0FBcllILDRCQXNZQztBQTdYMkIsbUNBQTBCLEdBQUcsR0FBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgKiBhcyBiaXAzMiBmcm9tICdiaXAzMic7XG5pbXBvcnQgeyBCaWdOdW1iZXIgfSBmcm9tICdiaWdudW1iZXIuanMnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmltcG9ydCB7IEluaXRpYXRlUmVjb3ZlcnlPcHRpb25zIH0gZnJvbSAnLi4vcmVjb3ZlcnknO1xuaW1wb3J0IHsgc2lnbk1lc3NhZ2UgfSBmcm9tICcuLi9iaXAzMnV0aWwnO1xuaW1wb3J0IHsgTm90SW1wbGVtZW50ZWRFcnJvciB9IGZyb20gJy4uLy4uL2FjY291bnQtbGliJztcbmltcG9ydCB7IEJpdEdvQmFzZSB9IGZyb20gJy4uL2JpdGdvQmFzZSc7XG5pbXBvcnQgeyBFbnRlcnByaXNlcyB9IGZyb20gJy4uL2VudGVycHJpc2UnO1xuaW1wb3J0IHsgS2V5Y2hhaW5zLCBLZXlJbmRpY2VzIH0gZnJvbSAnLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgTWFya2V0cyB9IGZyb20gJy4uL21hcmtldCc7XG5pbXBvcnQgeyBQZW5kaW5nQXBwcm92YWxzIH0gZnJvbSAnLi4vcGVuZGluZ0FwcHJvdmFsJztcbmltcG9ydCB7IFdhbGxldHMsIElXYWxsZXQsIFdhbGxldCB9IGZyb20gJy4uL3dhbGxldCc7XG5pbXBvcnQgeyBXZWJob29rcyB9IGZyb20gJy4uL3dlYmhvb2snO1xuaW1wb3J0IHtcbiAgRXh0cmFQcmVidWlsZFBhcmFtc09wdGlvbnMsXG4gIEZlZUVzdGltYXRlT3B0aW9ucyxcbiAgSUJhc2VDb2luLFxuICBQYXJzZWRUcmFuc2FjdGlvbixcbiAgSVRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIEtleWNoYWluc1RyaXBsZXQsXG4gIEtleVBhaXIsXG4gIFBhcnNlVHJhbnNhY3Rpb25PcHRpb25zLFxuICBQcmVjcmVhdGVCaXRHb09wdGlvbnMsXG4gIFByZXNpZ25UcmFuc2FjdGlvbk9wdGlvbnMsXG4gIFJlY292ZXJUb2tlblRyYW5zYWN0aW9uLFxuICBSZWNvdmVyV2FsbGV0VG9rZW5PcHRpb25zLFxuICBTaWduZWRUcmFuc2FjdGlvbixcbiAgU2lnblRyYW5zYWN0aW9uT3B0aW9ucyxcbiAgU3VwcGxlbWVudEdlbmVyYXRlV2FsbGV0T3B0aW9ucyxcbiAgVG9rZW5FbmFibGVtZW50Q29uZmlnLFxuICBUcmFuc2FjdGlvblByZWJ1aWxkLFxuICBWZXJpZnlBZGRyZXNzT3B0aW9ucyxcbiAgVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zLFxufSBmcm9tICcuL2lCYXNlQ29pbic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29pbiBpbXBsZW1lbnRzIElCYXNlQ29pbiB7XG4gIHByb3RlY3RlZCByZWFkb25seSBiaXRnbzogQml0R29CYXNlO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3VybDogc3RyaW5nO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2VudGVycHJpc2VzOiBFbnRlcnByaXNlcztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF93YWxsZXRzOiBXYWxsZXRzO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2tleWNoYWluczogS2V5Y2hhaW5zO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3dlYmhvb2tzOiBXZWJob29rcztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IF9wZW5kaW5nQXBwcm92YWxzOiBQZW5kaW5nQXBwcm92YWxzO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgX21hcmtldHM6IE1hcmtldHM7XG4gIHByb3RlY3RlZCBzdGF0aWMgcmVhZG9ubHkgX2NvaW5Ub2tlblBhdHRlcm5TZXBhcmF0b3IgPSAnOic7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UpIHtcbiAgICB0aGlzLmJpdGdvID0gYml0Z287XG4gICAgdGhpcy5fdXJsID0gdGhpcy5iaXRnby51cmwoJy8nLCAyKTtcbiAgICB0aGlzLl93YWxsZXRzID0gbmV3IFdhbGxldHModGhpcy5iaXRnbywgdGhpcyk7XG4gICAgdGhpcy5fa2V5Y2hhaW5zID0gbmV3IEtleWNoYWlucyh0aGlzLmJpdGdvLCB0aGlzKTtcbiAgICB0aGlzLl93ZWJob29rcyA9IG5ldyBXZWJob29rcyh0aGlzLmJpdGdvLCB0aGlzKTtcbiAgICB0aGlzLl9wZW5kaW5nQXBwcm92YWxzID0gbmV3IFBlbmRpbmdBcHByb3ZhbHModGhpcy5iaXRnbywgdGhpcyk7XG4gICAgdGhpcy5fZW50ZXJwcmlzZXMgPSBuZXcgRW50ZXJwcmlzZXModGhpcy5iaXRnbywgdGhpcyk7XG4gICAgdGhpcy5fbWFya2V0cyA9IG5ldyBNYXJrZXRzKHRoaXMuYml0Z28sIHRoaXMpO1xuICB9XG5cbiAgcHVibGljIHVybChzdWZmaXg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3VybCArIHRoaXMuZ2V0Q2hhaW4oKSArIHN1ZmZpeDtcbiAgfVxuXG4gIHB1YmxpYyB3YWxsZXRzKCk6IFdhbGxldHMge1xuICAgIHJldHVybiB0aGlzLl93YWxsZXRzO1xuICB9XG5cbiAgcHVibGljIGVudGVycHJpc2VzKCk6IEVudGVycHJpc2VzIHtcbiAgICByZXR1cm4gdGhpcy5fZW50ZXJwcmlzZXM7XG4gIH1cblxuICBwdWJsaWMga2V5Y2hhaW5zKCk6IEtleWNoYWlucyB7XG4gICAgcmV0dXJuIHRoaXMuX2tleWNoYWlucztcbiAgfVxuXG4gIHB1YmxpYyB3ZWJob29rcygpOiBXZWJob29rcyB7XG4gICAgcmV0dXJuIHRoaXMuX3dlYmhvb2tzO1xuICB9XG5cbiAgcHVibGljIHBlbmRpbmdBcHByb3ZhbHMoKTogUGVuZGluZ0FwcHJvdmFscyB7XG4gICAgcmV0dXJuIHRoaXMuX3BlbmRpbmdBcHByb3ZhbHM7XG4gIH1cblxuICBwdWJsaWMgbWFya2V0cygpOiBNYXJrZXRzIHtcbiAgICByZXR1cm4gdGhpcy5fbWFya2V0cztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IGNvaW5Ub2tlblBhdHRlcm5TZXBhcmF0b3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY29pblRva2VuUGF0dGVyblNlcGFyYXRvcjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldENoYWluKCk7XG4gIH1cblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgY2hhaW4gd2hpY2ggc3VwcG9ydHMgdGhpcyBjb2luIChlZywgJ2J0YycsICdldGgnKVxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0Q2hhaW4oKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBjb2luIGZhbWlseSAoZWcuIGZvciB0YnRjLCB0aGlzIHdvdWxkIGJlIGJ0YylcbiAgICovXG4gIGFic3RyYWN0IGdldEZhbWlseSgpOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEh1bWFuIHJlYWRhYmxlIGZ1bGwgbmFtZSBmb3IgdGhlIGNvaW5cbiAgICovXG4gIGFic3RyYWN0IGdldEZ1bGxOYW1lKCk6IHN0cmluZztcblxuICAvKipcbiAgICogRmxhZyBmb3Igc2VuZGluZyB2YWx1ZSBvZiAwLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBva2F5IHRvIHNlbmQgMCB2YWx1ZSwgZmFsc2Ugb3RoZXJ3aXNlXG4gICAqL1xuICB2YWx1ZWxlc3NUcmFuc2ZlckFsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBgc2VuZE1hbnkoKWAgdG8gcGVyZm9ybSB3YWxsZXQgc3dlZXAuXG4gICAqIEZJWE1FKEJHLTM5NzM4KTogYWRkIGNvaW4uc3dlZXBXYWxsZXQoKSBpbnN0ZWFkXG4gICAqL1xuICBzd2VlcFdpdGhTZW5kTWFueSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRmxhZyBmb3Igc2VuZGluZyBkYXRhIGFsb25nIHdpdGggdHJhbnNhY3Rpb25zXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIG9rYXkgdG8gc2VuZCB0eCBkYXRhIChFVEgpLCBmYWxzZSBvdGhlcndpc2VcbiAgICovXG4gIHRyYW5zYWN0aW9uRGF0YUFsbG93ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgZm9yIGRldGVybWluaW5nIHdoZXRoZXIgdGhpcyBjb2luIHN1cHBvcnRzIGFjY291bnQgY29uc29saWRhdGlvbnNcbiAgICogZnJvbSBpdHMgcmVjZWl2ZSBhZGRyZXNzZXMgdG8gdGhlIHJvb3QgYWRkcmVzcy5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgb2theSB0byBjb25zb2xpZGF0ZSBvdmVyIHRoaXMgY29pbjsgZmFsc2UsIG90aGVyd2lzZVxuICAgKi9cbiAgYWxsb3dzQWNjb3VudENvbnNvbGlkYXRpb25zKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGNvbmZpZyBmb3IgaG93IHRva2VuIGVuYWJsZW1lbnRzIHdvcmsgZm9yIHRoaXMgY29pblxuICAgKiBAcmV0dXJuc1xuICAgKiAgICByZXF1aXJlc1Rva2VuRW5hYmxlbWVudDogVHJ1ZSBpZiB0b2tlbnMgbmVlZCB0byBiZSBlbmFibGVkIGZvciB0aGlzIGNvaW5cbiAgICogICAgc3VwcG9ydHNNdWx0aXBsZVRva2VuRW5hYmxlbWVudHM6IFRydWUgaWYgbXVsdGlwbGUgdG9rZW5zIGNhbiBiZSBlbmFibGVkIGluIG9uZSB0cmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0VG9rZW5FbmFibGVtZW50Q29uZmlnKCk6IFRva2VuRW5hYmxlbWVudENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcXVpcmVzVG9rZW5FbmFibGVtZW50OiBmYWxzZSxcbiAgICAgIHN1cHBvcnRzTXVsdGlwbGVUb2tlbkVuYWJsZW1lbnRzOiBmYWxzZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyBpZiB0aGlzIGNvaW4gc3VwcG9ydHMgVFNTIHdhbGxldHMuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIFRTUyBXYWxsZXRzIGNhbiBiZSBjcmVhdGVkIGZvciB0aGlzIGNvaW5cbiAgICovXG4gIHN1cHBvcnRzVHNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgaWYgdGhpcyBjb2luIHN1cHBvcnRzIHN0YWtpbmcuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIHN0YWtpbmcgaXMgc3VwcG9ydGVkIGZvciB0aGlzIGNvaW4sIEZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgc3VwcG9ydHNTdGFraW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgaWYgdGhpcyBjb2luIHN1cHBvcnRzIEJMUy1ES0cgd2FsbGV0cy5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgQkxTLURLRyBXYWxsZXRzIGNhbiBiZSBjcmVhdGVkIGZvciB0aGlzIGNvaW5cbiAgICovXG4gIHN1cHBvcnRzQmxzRGtnKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBmYWN0b3IgYmV0d2VlbiB0aGUgYmFzZSB1bml0IGFuZCBpdHMgc21hbGxlc3Qgc3ViZGl2aXNvblxuICAgKiBAcmV0dXJuIHtudW1iZXJ9XG4gICAqL1xuICBhYnN0cmFjdCBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB8IHN0cmluZztcblxuICAvKipcbiAgICogQ29udmVydCBhIGN1cnJlbmN5IGFtb3VudCByZXByZXNlbnRlZCBpbiBiYXNlIHVuaXRzIChzYXRvc2hpLCB3ZWksIGF0b21zLCBkcm9wcywgc3Ryb29wcylcbiAgICogdG8gYmlnIHVuaXRzIChidGMsIGV0aCwgeHJwLCB4bG0pXG4gICAqL1xuICBiYXNlVW5pdHNUb0JpZ1VuaXRzKGJhc2VVbml0czogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgICBCaWdOdW1iZXIuc2V0KHsgREVDSU1BTF9QTEFDRVM6IDI0IH0pO1xuICAgIGNvbnN0IGRpdmlkZW5kID0gdGhpcy5nZXRCYXNlRmFjdG9yKCk7XG4gICAgY29uc3QgYmlnTnVtYmVyID0gbmV3IEJpZ051bWJlcihiYXNlVW5pdHMpLmRpdmlkZWRCeShkaXZpZGVuZCk7XG4gICAgLy8gc2V0IHRoZSBmb3JtYXQgc28gY29tbWFzIGFyZW4ndCBhZGRlZCB0byBsYXJnZSBjb2luIGFtb3VudHNcbiAgICByZXR1cm4gYmlnTnVtYmVyLnRvRm9ybWF0KG51bGwgYXMgYW55LCBudWxsIGFzIGFueSwgeyBncm91cFNlcGFyYXRvcjogJycsIGRlY2ltYWxTZXBhcmF0b3I6ICcuJyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgY3VycmVuY3kgYW1vdW50IHJlcHJlc2VudGVkIGluIGJpZyB1bml0cyAoYnRjLCBldGgsIHhycCwgeGxtKVxuICAgKiB0byBiYXNlIHVuaXRzIChzYXRvc2hpLCB3ZWksIGF0b21zLCBkcm9wcywgc3Ryb29wcylcbiAgICogQHBhcmFtIGJpZ1VuaXRzXG4gICAqL1xuICBiaWdVbml0c1RvQmFzZVVuaXRzKGJpZ1VuaXRzOiBzdHJpbmcgfCBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IG11bHRpcGxpZXIgPSB0aGlzLmdldEJhc2VGYWN0b3IoKTtcbiAgICBjb25zdCBiaWdOdW1iZXIgPSBuZXcgQmlnTnVtYmVyKGJpZ1VuaXRzKS50aW1lcyhtdWx0aXBsaWVyKTtcbiAgICBpZiAoIWJpZ051bWJlci5pc0ludGVnZXIoKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBub24taW50ZWdlciBvdXRwdXQgcmVzdWx0ZWQgZnJvbSBtdWx0aXBseWluZyAke2JpZ1VuaXRzfSBieSAke211bHRpcGxpZXJ9YCk7XG4gICAgfVxuICAgIHJldHVybiBiaWdOdW1iZXIudG9GaXhlZCgwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWduIG1lc3NhZ2Ugd2l0aCBwcml2YXRlIGtleVxuICAgKlxuICAgKiBAcGFyYW0ga2V5XG4gICAqIEBwYXJhbSBtZXNzYWdlXG4gICAqL1xuICBhc3luYyBzaWduTWVzc2FnZShrZXk6IHsgcHJ2OiBzdHJpbmcgfSwgbWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXI+IHtcbiAgICByZXR1cm4gc2lnbk1lc3NhZ2UobWVzc2FnZSwgYmlwMzIuZnJvbUJhc2U1OChrZXkucHJ2KSwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvbXBvc2UgYSByYXcgdHJhbnNhY3Rpb24gaW50byB1c2VmdWwgaW5mb3JtYXRpb24uXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gY29pbi1zcGVjaWZpY1xuICAgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKG9wdGlvbnM6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBQcm9taXNlPElUcmFuc2FjdGlvbkV4cGxhbmF0aW9uPGFueSwgc3RyaW5nIHwgbnVtYmVyPiB8IHVuZGVmaW5lZD4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgbm90IGltcGxlbWVudGVkYCk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgYSB0cmFuc2FjdGlvbiBwcmVidWlsZCBjb21wbGllcyB3aXRoIHRoZSBvcmlnaW5hbCBpbnRlbnRpb25cbiAgICovXG4gIGFic3RyYWN0IHZlcmlmeVRyYW5zYWN0aW9uKHBhcmFtczogVmVyaWZ5VHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxib29sZWFuPjtcblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHtAc2VlIGlzV2FsbGV0QWRkcmVzc30gaW5zdGVhZFxuICAgKi9cbiAgdmVyaWZ5QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNXYWxsZXRBZGRyZXNzKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcmV0dXJuIHRydWUgaWZmIGFkZHJlc3MgaXMgYSB3YWxsZXQgYWRkcmVzcy4gTXVzdCByZXR1cm4gZmFsc2UgaWYgYWRkcmVzcyBpcyBvdXRzaWRlIHdhbGxldC5cbiAgICovXG4gIGFic3RyYWN0IGlzV2FsbGV0QWRkcmVzcyhwYXJhbXM6IFZlcmlmeUFkZHJlc3NPcHRpb25zKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogY29udmVydCBhZGRyZXNzIGludG8gZGVzaXJlZCBhZGRyZXNzIGZvcm1hdC5cbiAgICogQHBhcmFtIGFkZHJlc3NcbiAgICogQHBhcmFtIGZvcm1hdFxuICAgKi9cbiAgY2Fub25pY2FsQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIGZvcm1hdD86IHVua25vd24pOiBzdHJpbmcge1xuICAgIHJldHVybiBhZGRyZXNzO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIHdoZXRoZXIgYSBjb2luIHN1cHBvcnRzIGJsb2NrVGFyZ2V0IGZvciB0cmFuc2FjdGlvbnMgdG8gYmUgaW5jbHVkZWQgaW5cbiAgICogQHJldHVybnMge2Jvb2xlYW59XG4gICAqL1xuICBzdXBwb3J0c0Jsb2NrVGFyZ2V0KCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayB3aGV0aGVyIGEgY29pbiBzdXBwb3J0cyBsaWdodG5pbmcgdHJhbnNhY3Rpb25zXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgc3VwcG9ydHNMaWdodG5pbmcoKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEhvb2sgdG8gYWRkIGFkZGl0aW9uYWwgcGFyYW1ldGVycyB0byB0aGUgd2FsbGV0IGdlbmVyYXRpb25cbiAgICogQHBhcmFtIHdhbGxldFBhcmFtc1xuICAgKiBAcGFyYW0ga2V5Y2hhaW5zXG4gICAqIEByZXR1cm4geyp9XG4gICAqL1xuICBzdXBwbGVtZW50R2VuZXJhdGVXYWxsZXQod2FsbGV0UGFyYW1zOiBTdXBwbGVtZW50R2VuZXJhdGVXYWxsZXRPcHRpb25zLCBrZXljaGFpbnM6IEtleWNoYWluc1RyaXBsZXQpOiBQcm9taXNlPGFueT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUod2FsbGV0UGFyYW1zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgZXh0cmEgcGFyYW1ldGVycyBmb3IgcHJlYnVpbGRpbmcgYSB0eC4gQWRkIHRoaW5ncyBsaWtlIGhvcCB0cmFuc2FjdGlvbiBwYXJhbXNcbiAgICovXG4gIGdldEV4dHJhUHJlYnVpbGRQYXJhbXMoYnVpbGRQYXJhbXM6IEV4dHJhUHJlYnVpbGRQYXJhbXNPcHRpb25zKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1vZGlmeSBwcmVidWlsZCBhZnRlciByZWNlaXZpbmcgaXQgZnJvbSB0aGUgc2VydmVyLiBBZGQgdGhpbmdzIGxpa2UgbmxvY2t0aW1lXG4gICAqL1xuICBwb3N0UHJvY2Vzc1ByZWJ1aWxkKHByZWJ1aWxkUmVzcG9uc2U6IFRyYW5zYWN0aW9uUHJlYnVpbGQpOiBQcm9taXNlPFRyYW5zYWN0aW9uUHJlYnVpbGQ+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHByZWJ1aWxkUmVzcG9uc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvaW4tc3BlY2lmaWMgdGhpbmdzIGRvbmUgYmVmb3JlIHNpZ25pbmcgYSB0cmFuc2FjdGlvbiwgaS5lLiB2ZXJpZmljYXRpb25cbiAgICovXG4gIHByZXNpZ25UcmFuc2FjdGlvbihwYXJhbXM6IFByZXNpZ25UcmFuc2FjdGlvbk9wdGlvbnMpOiBQcm9taXNlPFByZXNpZ25UcmFuc2FjdGlvbk9wdGlvbnM+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHBhcmFtcyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHdhbGxldCBvYmplY3QgZnJvbSBhIHdhbGxldCBkYXRhIG9iamVjdFxuICAgKiBAcGFyYW0gd2FsbGV0UGFyYW1zXG4gICAqL1xuICBuZXdXYWxsZXRPYmplY3Qod2FsbGV0UGFyYW1zOiBhbnkpOiBJV2FsbGV0IHtcbiAgICByZXR1cm4gbmV3IFdhbGxldCh0aGlzLmJpdGdvLCB0aGlzLCB3YWxsZXRQYXJhbXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZldGNoIGZlZSBlc3RpbWF0ZSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBzZXJ2ZXJcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyBUaGUgcGFyYW1zIHBhc3NlZCBpbnRvIHRoZSBmdW5jdGlvblxuICAgKiBAcGFyYW0ge0ludGVnZXJ9IHBhcmFtcy5udW1CbG9ja3MgVGhlIG51bWJlciBvZiBibG9ja3MgdG8gdGFyZ2V0IGZvciBjb25mb3JtYXRpb24gKE9ubHkgd29ya3MgZm9yIGJ0YylcbiAgICogQHJldHVybnMge09iamVjdH0gVGhlIGluZm8gcmV0dXJuZWQgZnJvbSB0aGUgbWVyY2hhbnQgc2VydmVyXG4gICAqL1xuICBhc3luYyBmZWVFc3RpbWF0ZShwYXJhbXM6IEZlZUVzdGltYXRlT3B0aW9ucyk6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcXVlcnk6IGFueSA9IHt9O1xuICAgIGlmIChwYXJhbXMgJiYgcGFyYW1zLm51bUJsb2Nrcykge1xuICAgICAgcXVlcnkubnVtQmxvY2tzID0gcGFyYW1zLm51bUJsb2NrcztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5iaXRnby5nZXQodGhpcy51cmwoJy90eC9mZWUnKSkucXVlcnkocXVlcnkpLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBjb2xkIHdhbGxldCB0b29sIHVzZXMgdGhpcyBmdW5jdGlvbiB0byBkZXJpdmUgYW4gZXh0ZW5kZWQga2V5IHRoYXQgaXMgYmFzZWQgb24gdGhlIHBhc3NlZCBrZXkgYW5kIHNlZWRcbiAgICogQHBhcmFtIGtleVxuICAgKiBAcGFyYW0gc2VlZFxuICAgKiBAcmV0dXJucyB7e2tleTogc3RyaW5nLCBkZXJpdmF0aW9uUGF0aDogc3RyaW5nfX1cbiAgICovXG4gIGRlcml2ZUtleVdpdGhTZWVkKHsga2V5LCBzZWVkIH06IHsga2V5OiBzdHJpbmc7IHNlZWQ6IHN0cmluZyB9KTogeyBrZXk6IHN0cmluZzsgZGVyaXZhdGlvblBhdGg6IHN0cmluZyB9IHtcbiAgICBmdW5jdGlvbiBzaGEyNTYoaW5wdXQpIHtcbiAgICAgIHJldHVybiBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKGlucHV0KS5kaWdlc3QoKTtcbiAgICB9XG4gICAgY29uc3QgZGVyaXZhdGlvblBhdGhJbnB1dCA9IHNoYTI1NihzaGEyNTYoYCR7c2VlZH1gKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IGRlcml2YXRpb25QYXRoUGFydHMgPSBbXG4gICAgICBwYXJzZUludChkZXJpdmF0aW9uUGF0aElucHV0LnNsaWNlKDAsIDcpLCAxNiksXG4gICAgICBwYXJzZUludChkZXJpdmF0aW9uUGF0aElucHV0LnNsaWNlKDcsIDE0KSwgMTYpLFxuICAgIF07XG4gICAgY29uc3QgZGVyaXZhdGlvblBhdGggPSAnbS85OTk5OTkvJyArIGRlcml2YXRpb25QYXRoUGFydHMuam9pbignLycpO1xuICAgIGNvbnN0IGtleU5vZGUgPSBiaXAzMi5mcm9tQmFzZTU4KGtleSk7XG4gICAgY29uc3QgZGVyaXZlZEtleU5vZGUgPSBrZXlOb2RlLmRlcml2ZVBhdGgoZGVyaXZhdGlvblBhdGgpO1xuICAgIHJldHVybiB7XG4gICAgICBrZXk6IGRlcml2ZWRLZXlOb2RlLnRvQmFzZTU4KCksXG4gICAgICBkZXJpdmF0aW9uUGF0aDogZGVyaXZhdGlvblBhdGgsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hhdCBrZXkgd2Ugd2lsbCBuZWVkIGZvciBzaWduaW5nIC0gcmlnaHQgbm93IHdlIGp1c3QgbmVlZCB0aGVcbiAgICogdXNlciBrZXkuXG4gICAqL1xuICBrZXlJZHNGb3JTaWduaW5nKCk6IG51bWJlcltdIHtcbiAgICByZXR1cm4gW0tleUluZGljZXMuVVNFUl07XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybSBhZGRpdGlvbmFsIGNoZWNrcyBiZWZvcmUgYWRkaW5nIGEgYml0Z28ga2V5LiBCYXNlIGNvbnRyb2xsZXJcbiAgICogaXMgYSBuby1vcCwgYnV0IGNvaW4tc3BlY2lmaWMgY29udHJvbGxlciBtYXkgZG8gc29tZXRoaW5nXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICovXG4gIHByZUNyZWF0ZUJpdEdvKHBhcmFtczogUHJlY3JlYXRlQml0R29PcHRpb25zKTogdm9pZCB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIC0gdXNlIGdldEJpcDMyS2V5cygpIGluIGNvbmp1bmN0aW9uIHdpdGggaXNWYWxpZEFkZHJlc3MgaW5zdGVhZFxuICAgKi9cbiAgaW5pdGlhdGVSZWNvdmVyeShwYXJhbXM6IEluaXRpYXRlUmVjb3ZlcnlPcHRpb25zKTogbmV2ZXIge1xuICAgIHRocm93IG5ldyBFcnJvcignZGVwcmVjYXRlZCBtZXRob2QnKTtcbiAgfVxuXG4gIGFic3RyYWN0IHBhcnNlVHJhbnNhY3Rpb24ocGFyYW1zOiBQYXJzZVRyYW5zYWN0aW9uT3B0aW9ucyk6IFByb21pc2U8UGFyc2VkVHJhbnNhY3Rpb24+O1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSBhIGtleSBwYWlyIG9uIHRoZSBjdXJ2ZSB1c2VkIGJ5IHRoZSBjb2luXG4gICAqXG4gICAqIEBwYXJhbSBzZWVkXG4gICAqL1xuICBhYnN0cmFjdCBnZW5lcmF0ZUtleVBhaXIoc2VlZD86IEJ1ZmZlcik6IEtleVBhaXI7XG5cbiAgLyoqXG4gICAqIFJldHVybiBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBpbnB1dCBpcyB2YWxpZCBwdWJsaWMga2V5IGZvciB0aGUgY29pbi5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHB1YiB0aGUgcHViIHRvIGJlIGNoZWNrZWRcbiAgICogQHJldHVybnMge0Jvb2xlYW59IGlzIGl0IHZhbGlkP1xuICAgKi9cbiAgYWJzdHJhY3QgaXNWYWxpZFB1YihwdWI6IHN0cmluZyk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFJldHVybiB3ZXRoZXIgdGhlIGdpdmVuIG0gb2YgbiB3YWxsZXQgc2lnbmVycy8ga2V5IGFtb3VudHMgYXJlIHZhbGlkIGZvciB0aGUgY29pblxuICAgKi9cbiAgaXNWYWxpZE1vZk5TZXR1cCh7IG0sIG4gfTogeyBtPzogbnVtYmVyOyBuPzogbnVtYmVyIH0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gbSA9PT0gMiAmJiBuID09PSAzO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIGBhZGRyZXNzYCBpcyBhIHBsYXVzaWJseSB2YWxpZCBhZGRyZXNzIGZvciB0aGUgZ2l2ZW4gY29pbi5cbiAgICpcbiAgICogRG9lcyBub3QgdmVyaWZ5IHRoYXQgdGhlIGFkZHJlc3MgYmVsb25ncyB0byBhIHdhbGxldC4gRm9yIHRoYXQsXG4gICAqIHVzZSBbW3ZlcmlmeUFkZHJlc3NdXVxuICAgKiBAcGFyYW0gYWRkcmVzc1xuICAgKi9cbiAgYWJzdHJhY3QgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2lnbiBhIHRyYW5zYWN0aW9uXG4gICAqL1xuICBhYnN0cmFjdCBzaWduVHJhbnNhY3Rpb24ocGFyYW1zOiBTaWduVHJhbnNhY3Rpb25PcHRpb25zKTogUHJvbWlzZTxTaWduZWRUcmFuc2FjdGlvbj47XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHBvcnRpb24gb2YgdGhlIHRyYW5zYWN0aW9uIHRoYXQgbmVlZHMgdG8gYmUgc2lnbmVkIGluIEJ1ZmZlciBmb3JtYXQuXG4gICAqIE9ubHkgbmVlZGVkIGZvciBjb2lucyB0aGF0IHN1cHBvcnQgYWRkaW5nIHNpZ25hdHVyZXMgZGlyZWN0bHkgKGUuZy4gVFNTKS5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHNlcmlhbGl6ZWRUeCAtIHRoZSB1bnNpZ25lZCB0cmFuc2FjdGlvbiBpbiBicm9hZGNhc3QgZm9ybWF0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEJ1ZmZlcj59IC0gdGhlIHBvcnRpb24gb2YgdGhlIHRyYW5zYWN0aW9uIHRoYXQgbmVlZHMgdG8gYmUgc2lnbmVkXG4gICAqL1xuICBhc3luYyBnZXRTaWduYWJsZVBheWxvYWQoc2VyaWFsaXplZFR4OiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShzZXJpYWxpemVkVHgpO1xuICB9XG5cbiAgYXN5bmMgcmVjb3ZlclRva2VuKHBhcmFtczogUmVjb3ZlcldhbGxldFRva2VuT3B0aW9ucyk6IFByb21pc2U8UmVjb3ZlclRva2VuVHJhbnNhY3Rpb24+IHtcbiAgICB0aHJvdyBuZXcgTm90SW1wbGVtZW50ZWRFcnJvcigncmVjb3ZlclRva2VuIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHRoaXMgY29pbicpO1xuICB9XG59XG4iXX0=
@@ -76,6 +76,8 @@ export interface KeyPair {
76
76
  }
77
77
  export interface IBlsKeyPair extends KeyPair {
78
78
  secretShares?: string[];
79
+ chaincode: string;
80
+ seed?: string;
79
81
  }
80
82
  export interface VerifyAddressOptions {
81
83
  address: string;
@@ -299,6 +301,7 @@ export interface IBaseCoin {
299
301
  isWalletAddress(params: VerifyAddressOptions): boolean;
300
302
  canonicalAddress(address: string, format: unknown): string;
301
303
  supportsBlockTarget(): boolean;
304
+ supportsLightning(): boolean;
302
305
  supplementGenerateWallet(walletParams: SupplementGenerateWalletOptions, keychains: KeychainsTriplet): Promise<any>;
303
306
  getExtraPrebuildParams(buildParams: ExtraPrebuildParamsOptions): Promise<Record<string, unknown>>;
304
307
  postProcessPrebuild(prebuildResponse: TransactionPrebuild): Promise<TransactionPrebuild>;
@@ -1 +1 @@
1
- {"version":3,"file":"iBaseCoin.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/baseCoin/iBaseCoin.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE1D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,WAAW,MAAO,SAAQ,qBAAqB;IACnD,OAAO,EAAE,MAAM,CAAC;IAEhB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,oBAAY,KAAK,GAAG;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IAGpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,mBAAmB,GAAG;IAEhC,eAAe,EAAE,MAAM,CAAC;IAExB,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,EAAE;QACR,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,WAAW,EAAE,GAAG,CAAC;IACjB,QAAQ,EAAE,yBAAyB,CAAC;CACrC,CAAC;AAEF,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe,CAAC,OAAO,GAAG,MAAM;IAC/C,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB,CAAC,IAAI,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAChE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,MAAM,CAAC,EAAE,QAAQ,CAAC;QAClB,KAAK,CAAC,EAAE,QAAQ,CAAC;KAClB,CAAC;IACF,SAAS,CAAC,EAAE;QAAE,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,CAAA;KAAE,CAAC;IAC3D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,KAAK,CAAC,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,+BAA+B;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE;QACR,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;QAC9B,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KACxC,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;CAC7C;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,0BAA0B;IACzC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,yBAAyB;IACxC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,qBAAqB;IACpC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,gCAAgC;IAC/C,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,uBAAuB;IACtC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,MAAM,WAAW,iBAAiB;IAChC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAGD,oBAAY,yBAAyB,GAAG;IACtC,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAGF,MAAM,WAAW,sBAAsB;IACrC,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,QAAQ,CAAC;IACvB,cAAc,EAAE,QAAQ,CAAC;IACzB,aAAa,EAAE,QAAQ,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,qBAAsB,SAAQ,4BAA4B;IACzE,UAAU,EAAE;QACV,UAAU,EAAE,SAAS,EAAE,CAAC;QACxB,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,KAAK,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,oBAAY,iBAAiB,GACzB,4BAA4B,GAC5B,yBAAyB,GACzB,sBAAsB,GACtB,wBAAwB,CAAC;AAE7B,MAAM,WAAW,yBAAyB;IACxC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE;QACV,SAAS,EAAE,SAAS,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,uBAAuB,EAAE,OAAO,CAAC;IACjC,gCAAgC,EAAE,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,OAAO,IAAI,QAAQ,CAAC;IACpB,WAAW,IAAI,YAAY,CAAC;IAC5B,SAAS,IAAI,UAAU,CAAC;IACxB,QAAQ,IAAI,SAAS,CAAC;IACtB,gBAAgB,IAAI,iBAAiB,CAAC;IACtC,OAAO,IAAI,QAAQ,CAAC;IACpB,QAAQ,IAAI,MAAM,CAAC;IACnB,SAAS,IAAI,MAAM,CAAC;IACpB,WAAW,IAAI,MAAM,CAAC;IACtB,wBAAwB,IAAI,OAAO,CAAC;IACpC,iBAAiB,IAAI,OAAO,CAAC;IAC7B,sBAAsB,IAAI,OAAO,CAAC;IAClC,2BAA2B,IAAI,OAAO,CAAC;IACvC,wBAAwB,IAAI,qBAAqB,CAAC;IAClD,WAAW,IAAI,OAAO,CAAC;IACvB,eAAe,IAAI,OAAO,CAAC;IAC3B,cAAc,IAAI,OAAO,CAAC;IAC1B,aAAa,IAAI,MAAM,GAAG,MAAM,CAAC;IACjC,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACxD,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACvD,WAAW,CAAC,GAAG,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpE,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC;IACrH,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,aAAa,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC;IACrD,eAAe,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC;IACvD,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3D,mBAAmB,IAAI,OAAO,CAAC;IAC/B,wBAAwB,CAAC,YAAY,EAAE,+BAA+B,EAAE,SAAS,EAAE,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACnH,sBAAsB,CAAC,WAAW,EAAE,0BAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClG,mBAAmB,CAAC,gBAAgB,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzF,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC1F,eAAe,CAAC,YAAY,EAAE,GAAG,GAAG,OAAO,CAAC;IAC5C,WAAW,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACtD,iBAAiB,CAAC,MAAM,EAAE,wBAAwB,GAAG;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7F,gBAAgB,IAAI,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACpD,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,KAAK,CAAC;IACzD,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9E,eAAe,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;IACpD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACzC,eAAe,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC5E,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE1D,YAAY,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACnF"}
1
+ {"version":3,"file":"iBaseCoin.d.ts","sourceRoot":"","sources":["../../../../src/bitgo/baseCoin/iBaseCoin.ts"],"names":[],"mappings":"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"}