@bitgo/sdk-coin-stx 4.4.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/src/lib/abstractContractBuilder.d.ts +2 -2
  2. package/dist/src/lib/abstractContractBuilder.d.ts.map +1 -1
  3. package/dist/src/lib/abstractContractBuilder.js +11 -7
  4. package/dist/src/lib/constants.d.ts +0 -1
  5. package/dist/src/lib/constants.d.ts.map +1 -1
  6. package/dist/src/lib/constants.js +2 -4
  7. package/dist/src/lib/contractBuilder.d.ts +14 -0
  8. package/dist/src/lib/contractBuilder.d.ts.map +1 -1
  9. package/dist/src/lib/contractBuilder.js +29 -5
  10. package/dist/src/lib/fungibleTokenTransferBuilder.d.ts.map +1 -1
  11. package/dist/src/lib/fungibleTokenTransferBuilder.js +10 -5
  12. package/dist/src/lib/index.d.ts +1 -0
  13. package/dist/src/lib/index.d.ts.map +1 -1
  14. package/dist/src/lib/index.js +2 -1
  15. package/dist/src/lib/keyPair.d.ts +1 -1
  16. package/dist/src/lib/keyPair.d.ts.map +1 -1
  17. package/dist/src/lib/keyPair.js +8 -4
  18. package/dist/src/lib/network.d.ts.map +1 -1
  19. package/dist/src/lib/network.js +4 -3
  20. package/dist/src/lib/postConditions.d.ts +31 -0
  21. package/dist/src/lib/postConditions.d.ts.map +1 -0
  22. package/dist/src/lib/postConditions.js +61 -0
  23. package/dist/src/lib/sbtcWithdrawBuilder.d.ts +1 -1
  24. package/dist/src/lib/sbtcWithdrawBuilder.d.ts.map +1 -1
  25. package/dist/src/lib/sbtcWithdrawBuilder.js +11 -9
  26. package/dist/src/lib/sendmanyBuilder.d.ts +1 -1
  27. package/dist/src/lib/sendmanyBuilder.d.ts.map +1 -1
  28. package/dist/src/lib/sendmanyBuilder.js +5 -3
  29. package/dist/src/lib/transaction.d.ts +3 -3
  30. package/dist/src/lib/transaction.d.ts.map +1 -1
  31. package/dist/src/lib/transaction.js +22 -20
  32. package/dist/src/lib/transactionBuilder.d.ts +0 -1
  33. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  34. package/dist/src/lib/transactionBuilder.js +20 -10
  35. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  36. package/dist/src/lib/transactionBuilderFactory.js +2 -2
  37. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  38. package/dist/src/lib/transferBuilder.js +1 -2
  39. package/dist/src/lib/utils.d.ts +2 -2
  40. package/dist/src/lib/utils.d.ts.map +1 -1
  41. package/dist/src/lib/utils.js +30 -21
  42. package/dist/src/stx.d.ts.map +1 -1
  43. package/dist/src/stx.js +13 -13
  44. package/dist/test/fixtures.d.ts +3 -18
  45. package/dist/test/fixtures.d.ts.map +1 -1
  46. package/dist/test/fixtures.js +7 -20
  47. package/dist/test/unit/btcAddressUtils.js +54 -1
  48. package/dist/test/unit/keyPair.js +9 -4
  49. package/dist/test/unit/network.js +5 -5
  50. package/dist/test/unit/postConditions.d.ts +2 -0
  51. package/dist/test/unit/postConditions.d.ts.map +1 -0
  52. package/dist/test/unit/postConditions.js +56 -0
  53. package/dist/test/unit/register.d.ts +2 -0
  54. package/dist/test/unit/register.d.ts.map +1 -0
  55. package/dist/test/unit/register.js +94 -0
  56. package/dist/test/unit/resources.d.ts +2 -0
  57. package/dist/test/unit/resources.d.ts.map +1 -1
  58. package/dist/test/unit/resources.js +7 -4
  59. package/dist/test/unit/sip10Token.js +47 -1
  60. package/dist/test/unit/stx.js +71 -2
  61. package/dist/test/unit/stxNodeErrors.d.ts +2 -0
  62. package/dist/test/unit/stxNodeErrors.d.ts.map +1 -0
  63. package/dist/test/unit/stxNodeErrors.js +118 -0
  64. package/dist/test/unit/transaction.js +24 -1
  65. package/dist/test/unit/transactionBuilder/builderValidators.d.ts +2 -0
  66. package/dist/test/unit/transactionBuilder/builderValidators.d.ts.map +1 -0
  67. package/dist/test/unit/transactionBuilder/builderValidators.js +119 -0
  68. package/dist/test/unit/transactionBuilder/contractBuilder.js +37 -3
  69. package/dist/test/unit/transactionBuilder/fungibleTokenTransferBuilder.js +86 -3
  70. package/dist/test/unit/transactionBuilder/pox5Builder.js +51 -2
  71. package/dist/test/unit/transactionBuilder/sbtcWithdrawBuilder.js +94 -27
  72. package/dist/test/unit/transactionBuilder/sendmanyBuilder.js +31 -8
  73. package/dist/test/unit/transactionBuilder/transferBuilder.js +69 -3
  74. package/dist/test/unit/transactionBuilderFactory.d.ts +2 -0
  75. package/dist/test/unit/transactionBuilderFactory.d.ts.map +1 -0
  76. package/dist/test/unit/transactionBuilderFactory.js +63 -0
  77. package/dist/test/unit/tstxsignet.js +14 -3
  78. package/dist/test/unit/util.js +94 -14
  79. package/dist/tsconfig.tsbuildinfo +1 -1
  80. package/package.json +8 -8
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UNSIGNED_CONTRACT_CALL = exports.SIGNED_SELF_STACK_CONTRACT_CALL = exports.UNSIGNED_SELF_STACK_CONTRACT_CALL = exports.CONTRACT_FUNCTION_NAME = exports.CONTRACT_NAME = exports.CONTRACT_ADDRESS = exports.MULTI_SIG_SIGNED_TRANSACTION = exports.pub3 = exports.pub2 = exports.pub1 = exports.prv3 = exports.prv2 = exports.prv1 = exports.invalidPubKey2 = exports.invalidPubKey1 = exports.SIGNED_TRANSACTION_PK_2_3 = exports.SIGNED_TRANSACTION_PK_1_3 = exports.SIGNED_TRANSACTION = exports.RAW_TX_UNSIGNED = exports.TX_RECIEVER = exports.TX_SENDER = exports.INVALID_KEYPAIR_PRV = exports.defaultSeedAddressCompressedTestnet = exports.defaultSeedAddressCompressedMainnet = exports.defaultSeedAddressUncompressedTestnet = exports.defaultSeedAddressUncompressedMainnet = exports.defaultSeedPubKey = exports.defaultSeedSecretKey = exports.expectedSignature2 = exports.message2 = exports.expectedSignature1 = exports.message1 = exports.defaultKeyPairFromPub = exports.defaultKeyPairFromPrv = exports.RECIPIENT_1 = exports.SENDER_1 = exports.ACCOUNT_2 = exports.ACCOUNT_1 = exports.xpub1ProtocolCompressed = exports.xpub1Protocol = exports.xprv1Protocol = exports.xpub1 = exports.xprv1 = exports.address2 = exports.pubKey2Compressed = exports.pubKey2 = exports.secretKey2 = exports.address1 = exports.pubKey1 = exports.secretKey1 = void 0;
4
- exports.FUNGIBLE_TOKEN_TRANSFER_CONSTANTS = exports.MEMO = exports.sendManyRecipients = exports.prvKeysString = exports.SIGNED_SEND_MANY_WITH_MEMO = exports.UNSIGNED_SEND_MANY_WITH_MEMO = exports.SEND_MANY_CONTRACT_FUNCTION_NAME_WITH_MEMO = exports.SEND_MANY_CONTRACT_NAME_WITH_MEMO = exports.SEND_MANY_CONTRACT_ADDRESS_WITH_MEMO = exports.MULTI_SIG_CONTRACT_CALL = exports.SIGNED_CONTRACT_CALL = exports.SIGNED_CONTRACT_WITH_ARGS = void 0;
3
+ exports.UNSIGNED_SELF_STACK_CONTRACT_CALL = exports.CONTRACT_FUNCTION_NAME = exports.CONTRACT_NAME = exports.CONTRACT_ADDRESS = exports.UNCOMPRESSED_MULTISIG_SIGNED_TRANSFER = exports.UNCOMPRESSED_MULTISIG_UNSIGNED_TRANSFER = exports.MULTI_SIG_SIGNED_TRANSACTION = exports.pub3 = exports.pub2 = exports.pub1 = exports.prv3 = exports.prv2 = exports.prv1 = exports.invalidPubKey2 = exports.invalidPubKey1 = exports.SIGNED_TRANSACTION_PK_2_3 = exports.SIGNED_TRANSACTION_PK_1_3 = exports.SIGNED_TRANSACTION = exports.RAW_TX_UNSIGNED = exports.TX_RECIEVER = exports.TX_SENDER = exports.INVALID_KEYPAIR_PRV = exports.defaultSeedAddressCompressedTestnet = exports.defaultSeedAddressCompressedMainnet = exports.defaultSeedAddressUncompressedTestnet = exports.defaultSeedAddressUncompressedMainnet = exports.defaultSeedPubKey = exports.defaultSeedSecretKey = exports.expectedSignature2 = exports.message2 = exports.expectedSignature1 = exports.message1 = exports.defaultKeyPairFromPub = exports.defaultKeyPairFromPrv = exports.RECIPIENT_1 = exports.SENDER_1 = exports.ACCOUNT_2 = exports.ACCOUNT_1 = exports.xpub1ProtocolCompressed = exports.xpub1Protocol = exports.xprv1Protocol = exports.xpub1 = exports.xprv1 = exports.address2 = exports.pubKey2Compressed = exports.pubKey2 = exports.secretKey2 = exports.address1 = exports.pubKey1 = exports.secretKey1 = void 0;
4
+ exports.FUNGIBLE_TOKEN_TRANSFER_CONSTANTS = exports.MEMO = exports.sendManyRecipients = exports.prvKeysString = exports.SIGNED_SEND_MANY_WITH_MEMO = exports.UNSIGNED_SEND_MANY_WITH_MEMO = exports.SEND_MANY_CONTRACT_FUNCTION_NAME_WITH_MEMO = exports.SEND_MANY_CONTRACT_NAME_WITH_MEMO = exports.SEND_MANY_CONTRACT_ADDRESS_WITH_MEMO = exports.MULTI_SIG_CONTRACT_CALL = exports.SIGNED_CONTRACT_CALL = exports.SIGNED_CONTRACT_WITH_ARGS = exports.UNSIGNED_CONTRACT_CALL = exports.SIGNED_SELF_STACK_CONTRACT_CALL = void 0;
5
5
  const src_1 = require("../../src");
6
6
  /*
7
7
  * keys and addresses are from:
@@ -9,7 +9,7 @@ const src_1 = require("../../src");
9
9
  * import * as st from '@stacks/transactions';
10
10
  *
11
11
  * const secretKey1 = st.privateKeyToString(st.makeRandomPrivKey());
12
- * const publicKey1 = st.publicKeyToString(st.pubKeyfromPrivKey(secretKey1.data);
12
+ * const publicKey1 = st.publicKeyToHex(st.privateKeyToPublic(secretKey1.data);
13
13
  * const address1 = st.getAddressFromPrivateKey(secretKey1);
14
14
  * etc.
15
15
  */
@@ -90,6 +90,9 @@ exports.pub1 = '02b087ca52f40fdfdf4b16a0bbf7e91e4db2e183ac5c6491a5f60a5450e25de7
90
90
  exports.pub2 = '024abddd63b56c55cd1ed0803c26c473f5f0b9d8473b37b65bd812f035365f154b';
91
91
  exports.pub3 = '038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d';
92
92
  exports.MULTI_SIG_SIGNED_TRANSACTION = '808000000004012fe507c09dbb23c3b7e5d166c81fc4b87692510b000000000000000000000000000000b400000003020123d6d3d22d2ca1b7310f5c45314d1e783c03193e1bb5e08685fc1a48f8bdac7c0d93a463efee18b9b41fffe38d4b4c7475809a37c0fd53f52cef456a8d9280db020010b311f82b1b111eb5efa16c4790687b16dc92b7b4d07a1f0f1fe65baee43eb02ede226f807a097237e7d0ee3aa4fdf9b6287dd23d819ec560df180875f4019a00038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d000203020000000000051a1ae3f911d8f1d46d7416bfbe4b593fd41eac19cb00000000000003e874657374206d656d6f00000000000000000000000000000000000000000000000000';
93
+ // v2-generated (@stacks/transactions 2.0.1) 2-of-3 multisig transfer from UNCOMPRESSED pubkeys.
94
+ exports.UNCOMPRESSED_MULTISIG_UNSIGNED_TRANSFER = '80800000000401cb97b1dfe00ed612c19b8131cd8678e51f144e96000000000000000000000000000000b4000000030102b087ca52f40fdfdf4b16a0bbf7e91e4db2e183ac5c6491a5f60a5450e25de7d001024abddd63b56c55cd1ed0803c26c473f5f0b9d8473b37b65bd812f035365f154b01038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d000203020000000000051a1ae3f911d8f1d46d7416bfbe4b593fd41eac19cb00000000000003e800000000000000000000000000000000000000000000000000000000000000000000';
95
+ exports.UNCOMPRESSED_MULTISIG_SIGNED_TRANSFER = '80800000000401cb97b1dfe00ed612c19b8131cd8678e51f144e96000000000000000000000000000000b4000000030201dfbb6fb2e6d2d7388259104ab9f62b65157efef7a68cede38ad5c25908e493a50aafd52622dbcacb8eb91c54f7983fef94430d8799ba614b1ce6cd916764e0ad0201130f0e5d2dfd80b0b83126ff46a6a3f0cbc83cd83de00b075b3572e676fa6efc23faf02a11b4014c2c0de6b2ada5b591243e2a0ab11923af2e64bd72242f02a401038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d000203020000000000051a1ae3f911d8f1d46d7416bfbe4b593fd41eac19cb00000000000003e800000000000000000000000000000000000000000000000000000000000000000000';
93
96
  // contract call
94
97
  exports.CONTRACT_ADDRESS = 'ST000000000000000000002AMW42H';
95
98
  exports.CONTRACT_NAME = 'pox-4';
@@ -141,4 +144,4 @@ exports.FUNGIBLE_TOKEN_TRANSFER_CONSTANTS = {
141
144
  SIGNED_MULTI_SIG_TX: '808000000004012fe507c09dbb23c3b7e5d166c81fc4b87692510b000000000000000000000000000000b4000000030201e4c98d7687eab5f11d03febc96951301eede336088b06c5a676cc6093f70e16b3f3533ccd8e6f92390a17dcc917f4e828657f17605574a5fcbb3da59f25483dc02019095c2f5217e0f168f27b605b47e9eac2da3c5ea309c42a2677addfb67c1fd471ef20187ce6b85b5b541d4b4f00d2f8ea8f7d42be84327968cb9411730b5217a00038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d00020302000000010102152fe507c09dbb23c3b7e5d166c81fc4b87692510b1a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e0d747369703664702d746f6b656e010000000000002710021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000040100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece0a020000000131',
142
145
  SIGNED_MULTI_SIG_TX_WITHOUT_MEMO: '808000000004012fe507c09dbb23c3b7e5d166c81fc4b87692510b000000000000000000000000000000b4000000030200d12a80f67cdac72ad116075e86846986a015a60bf541855ea17ddc79620b679b0d75e523cbc7638969addeb047e73ed11b398a894b2fd4459623afb2fc10461b02007e01f28f9ac5b9bc32f3de826f69aabcc6b357faa50d98087ff12714eb3d351e515482aff784b54ab572ce6f86c1f40c71b21fd197e846fb388718f55f17d4d300038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d00020302000000010102152fe507c09dbb23c3b7e5d166c81fc4b87692510b1a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e0d747369703664702d746f6b656e010000000000002710021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000040100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece09',
143
146
  };
144
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3Jlc291cmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQW1DO0FBRW5DOzs7Ozs7Ozs7R0FTRztBQUVVLFFBQUEsVUFBVSxHQUFHLGtFQUFrRSxDQUFDO0FBQ2hGLFFBQUEsT0FBTyxHQUNsQixvSUFBb0ksQ0FBQztBQUMxSCxRQUFBLFFBQVEsR0FBRywyQ0FBMkMsQ0FBQztBQUV2RCxRQUFBLFVBQVUsR0FBRyxrRUFBa0UsQ0FBQztBQUNoRixRQUFBLE9BQU8sR0FDbEIsb0lBQW9JLENBQUM7QUFDMUgsUUFBQSxpQkFBaUIsR0FBRyxvRUFBb0UsQ0FBQztBQUN6RixRQUFBLFFBQVEsR0FBRywwQ0FBMEMsQ0FBQztBQUVuRSwrQkFBK0I7QUFDL0Isd0JBQXdCO0FBQ1gsUUFBQSxLQUFLLEdBQ2hCLGlIQUFpSCxDQUFDO0FBQ3ZHLFFBQUEsS0FBSyxHQUNoQixpSEFBaUgsQ0FBQztBQUN2RyxRQUFBLGFBQWEsR0FBRyxrRUFBa0UsQ0FBQztBQUNuRixRQUFBLGFBQWEsR0FDeEIsb0lBQW9JLENBQUM7QUFDMUgsUUFBQSx1QkFBdUIsR0FBRyxvRUFBb0UsQ0FBQztBQUUvRixRQUFBLFNBQVMsR0FBRztJQUN2QixHQUFHLEVBQUUsa0JBQVU7SUFDZixHQUFHLEVBQUUsZUFBTztJQUNaLE9BQU8sRUFBRSxnQkFBUTtDQUNsQixDQUFDO0FBRVcsUUFBQSxTQUFTLEdBQUc7SUFDdkIsR0FBRyxFQUFFLGtCQUFVO0lBQ2YsR0FBRyxFQUFFLGVBQU87SUFDWixPQUFPLEVBQUUsZ0JBQVE7Q0FDbEIsQ0FBQztBQUVXLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLEdBQUcsRUFBRSxvRUFBb0U7Q0FDMUUsQ0FBQztBQUVXLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLE9BQU8sRUFBRSwyQ0FBMkM7Q0FDckQsQ0FBQztBQUVXLFFBQUEscUJBQXFCLEdB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QUM7QUFFMS9CLFFBQUEsYUFBYSxHQUFHO0lBQzNCLG9FQUFvRTtJQUNwRSxvRUFBb0U7SUFDcEUsb0VBQW9FO0NBQ3JFLENBQUM7QUFFVyxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDO1FBQ0UsT0FBTyxFQUFFLDJDQUEyQztRQUNwRCxNQUFNLEVBQUUsU0FBUztRQUNqQixJQUFJLEVBQUUsUUFBUTtLQUNmO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsMkNBQTJDO1FBQ3BELE1BQU0sRUFBRSxTQUFTO1FBQ2pCLElBQUksRUFBRSxRQUFRO0tBQ2Y7SUFDRDtRQUNFLE9BQU8sRUFBRSwwQ0FBMEM7UUFDbkQsTUFBTSxFQUFFLFNBQVM7UUFDakIsSUFBSSxFQUFFLFFBQVE7S0FDZjtDQUNGLENBQUM7QUFFVyxRQUFBLElBQUksR0FBRyxRQUFRLENBQUM7QUFFaEIsUUFBQSxpQ0FBaUMsR0FBRztJQUMvQyxnQkFBZ0IsRUFBRSwwQ0FBMEM7SUFDNUQsYUFBYSxFQUFFLGVBQWU7SUFDOUIsYUFBYSxFQUFFLFVBQVU7SUFDekIsY0FBYyxFQUFFLDBDQUEwQztJQUMxRCxnQkFBZ0IsRUFBRSwyQ0FBMkM7SUFDN0QsVUFBVSxFQUFFLGVBQWU7SUFDM0Isc0JBQXNCLEVBQ3BCLG9uQkFBb25CO0lBQ3RuQixtQ0FBbUMsRUFDakMsc21CQUFzbUI7SUFDeG1CLG1CQUFtQixFQUNqQix3MEJBQXcwQjtJQUMxMEIsZ0NBQWdDLEVBQzlCLDR6QkFBNHpCO0NBQy96QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3R4TGliIH0gZnJvbSAnLi4vLi4vc3JjJztcblxuLypcbiAqIGtleXMgYW5kIGFkZHJlc3NlcyBhcmUgZnJvbTpcbiAqXG4gKiBpbXBvcnQgKiBhcyBzdCBmcm9tICdAc3RhY2tzL3RyYW5zYWN0aW9ucyc7XG4gKlxuICogY29uc3Qgc2VjcmV0S2V5MSA9IHN0LnByaXZhdGVLZXlUb1N0cmluZyhzdC5tYWtlUmFuZG9tUHJpdktleSgpKTtcbiAqIGNvbnN0IHB1YmxpY0tleTEgPSBzdC5wdWJsaWNLZXlUb1N0cmluZyhzdC5wdWJLZXlmcm9tUHJpdktleShzZWNyZXRLZXkxLmRhdGEpO1xuICogY29uc3QgYWRkcmVzczEgPSBzdC5nZXRBZGRyZXNzRnJvbVByaXZhdGVLZXkoc2VjcmV0S2V5MSk7XG4gKiBldGMuXG4gKi9cblxuZXhwb3J0IGNvbnN0IHNlY3JldEtleTEgPSAnNjZjODg2NDgxMTZiNzIxYmIyZjM5NGUwMDA3ZjlkMzQ4ZWEwODAxN2I2ZTYwNGRlNTFhM2E3ZDk1N2Q1ODUyNCc7XG5leHBvcnQgY29uc3QgcHViS2V5MSA9XG4gICcwNGE2OGMyZDZmZGIzNzA2YjM5ZjMyZDZmNDIyNTI3NWNlMDYyNTYxOTA4ZmQ3Y2E1NDBhNDRjOTJlYjg1OTRlYTZkYjlmY2ZlMGIzOTBjMGVhZDNmNDVjMzZhZmQ2ODJlYWI2MmViMTI0YTYzYjQ2MDk0NWZlMWY3YzdmOGEwOWUyJztcbmV4cG9ydCBjb25zdCBhZGRyZXNzMSA9ICdTUDEwRkRIUVE0RjJGMEtITU42WjI0Uk1BTUdYNTkzM1NRSkNXS0FBUic7XG5cbmV4cG9ydCBjb25zdCBzZWNyZXRLZXkyID0gJzM1Nzk0YWRmMGRkMmEzMTNjMThiYzExOGI0MjI3NDBiYjk0Zjg1MTE0MTM0YmUzNDcwM2ZmNzA2NjU4MDg3ZTQnO1xuZXhwb3J0IGNvbnN0IHB1YktleTIgPVxuICAnMDQyMWQ2ZjQyYzk5ZjdkMjNlYzJjMGRjMjEyMDhhOWM1ZWRmY2U0ZTViYzdiNjM5NzJlNjhlODZlM2NlYTZmNDFhOTRhOWE3YzI0YTFjY2Q4Mzc5MjE3M2Y0NzVmZGI1OTBjYzgyZjk0ZmY2MTVkZjM5MTQyNzY2ZTc1OWNlNjM4Nyc7XG5leHBvcnQgY29uc3QgcHViS2V5MkNvbXByZXNzZWQgPSAnMDMyMWQ2ZjQyYzk5ZjdkMjNlYzJjMGRjMjEyMDhhOWM1ZWRmY2U0ZTViYzdiNjM5NzJlNjhlODZlM2NlYTZmNDFhJztcbmV4cG9ydCBjb25zdCBhZGRyZXNzMiA9ICdTUFM0SFNYQUQxV1NEMzk0M1daNTJNUFNZOVdQSzU2U0RHNTRIVEFSJztcblxuLy8gZXh0ZW5kZWQgcHJpdmF0ZS9wdWJsaWMga2V5c1xuLy8gU1RYIGRvZXMgbm90IHVzZSB0aGVtXG5leHBvcnQgY29uc3QgeHBydjEgPVxuICAneHBydjlzMjFaclFIMTQzSzM0YmRoQ1dNdWl1SGZkalFCMjFndTk1TndwZUdFRWZHTVdzN3RBNXMzUE1CQlBlSm1YbjVEUTN2djhIcDhrcTFLcnNhSkpuY3pXM0JNenRMMlZHVG54VlBnVmpncTFIJztcbmV4cG9ydCBjb25zdCB4cHViMSA9XG4gICd4cHViNjYxTXlNd0FxUmJjRllnNm9FM05HcnIyRGZadGFVallHTXp5a0Qzc25hQ0ZFS0NHUmhRN2JCZmYyZzNDWXZ5WVBRTUdTd1NlMURIOEdYdlA2dUIzaWlXc1BHR01iWFZaR2tyazFVeFFWazYnO1xuZXhwb3J0IGNvbnN0IHhwcnYxUHJvdG9jb2wgPSAnNzNlYTE5YWVhMjVlODdjNGVlOGVhZWUyMTQxNzQ0MmFjOWViNjg5OGY0NTM4YWRlOGYyMDkxZDFkMmM1OTQ2ZCc7XG5leHBvcnQgY29uc3QgeHB1YjFQcm90b2NvbCA9XG4gICcwNDI3OTRiYzQzZDc1ZGIwZTg1ODk5ODc4MTg3NTRhYTJmODIwYTM1MGE1NzQyZWZhZjBkNTA1MThmY2JjNmE4MGM1OTdhYTUxYWE4ZTc1NWZkMTBiNzUzZjdlMzY0MTA4NDkxNzFhOTlkODUzM2Y2ZWE4NGEwYzRkZmJlNmUyNDE5JztcbmV4cG9ydCBjb25zdCB4cHViMVByb3RvY29sQ29tcHJlc3NlZCA9ICcwMzI3OTRiYzQzZDc1ZGIwZTg1ODk5ODc4MTg3NTRhYTJmODIwYTM1MGE1NzQyZWZhZjBkNTA1MThmY2JjNmE4MGMnO1xuXG5leHBvcnQgY29uc3QgQUNDT1VOVF8xID0ge1xuICBwcnY6IHNlY3JldEtleTEsXG4gIHB1YjogcHViS2V5MSxcbiAgYWRkcmVzczogYWRkcmVzczEsXG59O1xuXG5leHBvcnQgY29uc3QgQUNDT1VOVF8yID0ge1xuICBwcnY6IHNlY3JldEtleTIsXG4gIHB1YjogcHViS2V5MixcbiAgYWRkcmVzczogYWRkcmVzczIsXG59O1xuXG5leHBvcnQgY29uc3QgU0VOREVSXzEgPSB7XG4gIHBydjogJ2VkZjlhZWU4NGQ5YjdhYmMxNDU1MDRkZGU2NzI2YzY0ZjM2OWQzN2VlMzRkZWQ4NjhmYWJkODc2YzI2NTcwYmMwMScsXG59O1xuXG5leHBvcnQgY29uc3QgUkVDSVBJRU5UXzEgPSB7XG4gIGFkZHJlc3M6ICdTUDNGR1E4WjdKWTlCV1laNVdNNTNFME05Tks3V0hKRjA2OTFOWjE1OScsXG59O1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdEtleVBhaXJGcm9tUHJ2ID0gbmV3IFN0eExpYi5LZXlQYWlyKHtcbiAgcHJ2OiBzZWNyZXRLZXkxLFxufSk7XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0S2V5UGFpckZyb21QdWIgPSBuZXcgU3R4TGliLktleVBhaXIoe1xuICBwdWI6IHB1YktleTIsXG59KTtcblxuLy8gdmVyaWZ5IHNpZ25hdHVyZXNcbmV4cG9ydCBjb25zdCBtZXNzYWdlMSA9ICdhYmMnO1xuLy8gd2hlbiBzaWduZWQgd2l0aCBzZWNyZXRLZXkxXG5leHBvcnQgY29uc3QgZXhwZWN0ZWRTaWduYXR1cmUxID1cbiAgJzAwZTA0N2MwYTUxNDZkZjkzNDUyMjc5NWE5ZWMwOGZlYTM3ZTE0NTAyODdlYzJhYjY5N2VlNTBlMGIzOTUwMmQ2OTUzNzI0NDRhY2Y0N2QxMTdiZWM2MjFiYjM4ZGQ4ZjNiOTJhNDc5NzJhMjA5YzMwMjA0OWQ5NTU1ZDkxMmFmYTknO1xuXG5leHBvcnQgY29uc3QgbWVzc2FnZTIgPSAnaGVsbG8nO1xuLy8gd2hlbiBzaWduZWQgd2l0aCBzZWNyZXRLZXkyXG5leHBvcnQgY29uc3QgZXhwZWN0ZWRTaWduYXR1cmUyID1cbiAgJzAxMGM3NTUzMDNhZjc0ODYwYjc1Mjk3MmE2OTY1MWZlNzQwYWQ4ZjA5ZmJmODVkYzJmYzA2ZmM2M2UwMTJjMWNhNTMyYmFmMjBkMWM5Y2I4MWQ5MzAzMjE2ZWZjNmY2Y2M2YmQ3NzUzZmUyZThlYWE3YTA2ZDc3YmRkM2NlZGE4NTMnO1xuXG4vLyBzZWVkIGlzIEJ1ZmZlci5hbGxvYyg2NCkgLS0gYWxsIHplcm8gYnl0ZXNcbmV4cG9ydCBjb25zdCBkZWZhdWx0U2VlZFNlY3JldEtleSA9ICdlYWZkMTU3MDJmY2EzZjgwYmViNTY1ZTY2ZjE5ZTIwYmJhZDBhMzRiNDZiYjEyMDc1Y2JmMWM1ZDk0YmIyN2QyJztcbmV4cG9ydCBjb25zdCBkZWZhdWx0U2VlZFB1YktleSA9XG4gICcwNDY2OTI2MWZlMjA0NTJmZTZhMDNlNjI1OTQ0YzZhMDUyM2U2MzUwYjNlYThjYmQzN2M5Y2ExZmY5N2UzYWM4YmYzZGQyZDUxYTA5ZDZkNDgzMWNiMmJjOTgyOGM1YWYxNGNlNGMzMzg0Yzk3M2Q3NWFhZDQyMzYyNmEyYTZkMThkJztcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTZWVkQWRkcmVzc1VuY29tcHJlc3NlZE1haW5uZXQgPSAnU1AyMVg4UE1IOFQ0TVZYOFo3NUpaUFlFVkE2UThGRFI3UEoxM01WNFEnO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRTZWVkQWRkcmVzc1VuY29tcHJlc3NlZFRlc3RuZXQgPSAnU1QyMVg4UE1IOFQ0TVZYOFo3NUpaUFlFVkE2UThGRFI3UEc4OFdUVkYnO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRTZWVkQWRkcmVzc0NvbXByZXNzZWRNYWlubmV0ID0gJ1NQMzFNQlJGOUo4VzIyVzMwNDRNRUFaRFhGTU04NTY5OTY1M1pLUjdRJztcbmV4cG9ydCBjb25zdCBkZWZhdWx0U2VlZEFkZHJlc3NDb21wcmVzc2VkVGVzdG5ldCA9ICdTVDMxTUJSRjlKOFcyMlczMDQ0TUVBWkRYRk1NODU2OTk2N1RGMVI0MSc7XG5cbmV4cG9ydCBjb25zdCBJTlZBTElEX0tFWVBBSVJfUFJWID0gbmV3IFN0eExpYi5LZXlQYWlyKHtcbiAgcHJ2OiAnOENBQTAwQUU2MzYzOEIwNTQyQTMwNDgyM0Q2NkQ5NkZGMzE3QTU3NkY2OTI2NjNEQjJGODVFNjBGQUIyNTkwQycsXG59KTtcblxuZXhwb3J0IGNvbnN0IFRYX1NFTkRFUiA9IHtcbiAgcHJ2OiAnY2IzZGYzODA1M2QxMzI4OTUyMjBiOWNlNDcxZjZiNjc2ZGI1YjliZjBiNGFkZWZiNTVmMjExOGVjZTI0NzhkZjAxJyxcbiAgcHViOiAnMDM3OTdkZDY1MzA0MGQzNDRmZDA0OGMxYWQwNWQ0Y2JjYjIxNzhiMzBjNmEwYzQyNzY5OTQ3OTVmM2U4MzNkYTQxJyxcbiAgYWRkcmVzczogJ1NUQjQ0SFlQWUFUMkJCMlFFNTEzTlNQODFIVE1ZV0JKUDAySFBHSzYnLFxufTtcblxuZXhwb3J0IGNvbnN0IFRYX1JFQ0lFVkVSID0ge1xuICBhZGRyZXNzOiAnU1RERTdZOEhWM1JYOFZCTTJUWlZXSlRTN1pBMVhCMFNTQzNORVZIMCcsXG59O1xuXG5leHBvcnQgY29uc3QgUkFXX1RYX1VOU0lHTkVEID1cbiAgJzgwODAwMDAwMDAwNDAwMTY0MjQ3ZDZmMmI0MjVhYzU3NzE0MjNhZTZjODBjNzU0ZjcxNzJiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwMjAwMDAwMDAwMDAwNTFhMWFlM2Y5MTFkOGYxZDQ2ZDc0MTZiZmJlNGI1OTNmZDQxZWFjMTljYjAwMDAwMDAwMDAwMDAzZTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG5cbmV4cG9ydCBjb25zdCBTSUdORURfVFJBTlNBQ1RJT04gPVxuICAnODA4MDAwMDAwMDA0MDAxNjQyNDdkNmYyYjQyNWFjNTc3MTQyM2FlNmM4MGM3NTRmNzE3MmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYjQwMDAxMWFlMDZjMTRjOTY3Zjk5OTE4NGVhOGE3OTEzMTI1ZjA5YWI2NDAwNDQ0NmZjYTg5OTQwZjA5MjUwOTEyNGI5ZTc3M2FlZjQ4M2U5MjU0NzZjNzhlYzU4MTY2ZGNlY2FiMzg3NWI4ZmFiOGU5YWE0MjEzMTc5ZDE2NDQ2Mzk2MjgwMzAyMDAwMDAwMDAwMDA1MWExYWUzZjkxMWQ4ZjFkNDZkNzQxNmJmYmU0YjU5M2ZkNDFlYWMxOWNiMDAwMDAwMDAwMDAwMDNlODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcblxuLy8gVHJhbnNhY3Rpb25zIHNpZ24gd2l0aCAyIG9mIDMga2V5cy5cbmV4cG9ydCBjb25zdCBTSUdORURfVFJBTlNBQ1RJT05fUEtfMV8zID1cbiAgJzgwODAwMDAwMDAwNDAxMmZlNTA3YzA5ZGJiMjNjM2I3ZTVkMTY2YzgxZmM0Yjg3NjkyNTEwYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDMwMjAwOTQ3M2EzN2I5MTRmNzAzYzgxZjMzMTQxZDEwZWFiZTQ1NTBjNGQ2MWYxMTM2NjJjYzExY2RjMDQ2M2ZjMzc3MzU4NDA4YzczZDNkMzI3M2NkYmNjMzUxMWRiYmQyMDMxYjVlYWNhNGNiMmIxMzkyNWRhOWY5YjBjN2U2NGQxYTYwMDAyNGFiZGRkNjNiNTZjNTVjZDFlZDA4MDNjMjZjNDczZjVmMGI5ZDg0NzNiMzdiNjViZDgxMmYwMzUzNjVmMTU0YjAyMDE2YWFjMDM0N2I4NTIwZDg5MDVjYmQxM2M2MDFmNDVhMGNjYmJiMjQ4MzEzMjBjNTRkOWVlMmMxZTM2NTZiNzZkNzVlMWM1Mjc5MzIyNjdkODBiZWI5MDI1N2JiZTJkYzcxODRkOWIxNjg5OTNhYjNhNDBmYTczYmU2OTczYzVmNTAwMDIwMzAyMDAwMDAwMDAwMDA1MWExYWUzZjkxMWQ4ZjFkNDZkNzQxNmJmYmU0YjU5M2ZkNDFlYWMxOWNiMDAwMDAwMDAwMDAwMDNlODc0NjU3Mzc0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcbmV4cG9ydCBjb25zdCBTSUdORURfVFJBTlNBQ1RJT05fUEtfMl8zID1cbiAgJzgwODAwMDAwMDAwNDAxMmZlNTA3YzA5ZGJiMjNjM2I3ZTVkMTY2YzgxZmM0Yjg3NjkyNTEwYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDMwMDAyYjA4N2NhNTJmNDBmZGZkZjRiMTZhMGJiZjdlOTFlNGRiMmUxODNhYzVjNjQ5MWE1ZjYwYTU0NTBlMjVkZTdkMDAyMDAwNDM2ZjkwNmQwNDAzODhlMzEyM2ViOWMzNzYxNGQ3ZjM5ZGEyZjI4MzM4NWNkYTQwOTk3MjEyYWNmYTViMjRkMDMyZmFjODI5OWFlOTU5MGZiZDI0ZDYzOThhYzFjNDg5YjUyM2M0MThkOGMwNmIzNTQ2N2U2ODUxOTk4Nzc4NjAyMDFkYmExNmQwNDBmMGFmMmZhOGQ0YmYzODhjYmM3ZjBjZDc0NjNhYTcwNThjNDlmN2U1ZGIyZDcyZDg2OGQ3MTY3NTI4Y2Q4MzkzMzY5Yjk0NDgwZjliN2Y4YTJjOTA4N2NiZDU3ZDRkMWE3ODJlNTUzZjljZWRlNjY2NDJkMTJjOTAwMDIwMzAyMDAwMDAwMDAwMDA1MWExYWUzZjkxMWQ4ZjFkNDZkNzQxNmJmYmU0YjU5M2ZkNDFlYWMxOWNiMDAwMDAwMDAwMDAwMDNlODc0NjU3Mzc0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcblxuLy8gcmlnaHQgbGVuZ3RoIGFuZCBmb3JtYXQsIGJ1dCBpbnZhbGlkXG5leHBvcnQgY29uc3QgaW52YWxpZFB1YktleTEgPSAnMDMyMWQ2ZjQyYzk5ZjdkMjNlYzJjMGRjMjEyMDgwMGM1ZWRmY2U0ZTViYzdiNjM5NzJlNjhlODZlM2NlYTZmNDFhJztcbmV4cG9ydCBjb25zdCBpbnZhbGlkUHViS2V5MiA9XG4gICcwNGE2OGMyZDZmZGIzNzA2YjM5ZjMyZDZmNDIyNTI3NWNlMDYyNTYxOTA4ZmQ3Y2E1NDBhNDRjOTJlYjg1OTRlYTZkYjlmY2ZlMGIzOTBjMGVhZDNmNDVjMzZhZmQ2ODJlYWI2MmViMTI0YTYzYjQ2MDk0NWZlMWY3YzdmOGEwOWUxJztcblxuLy8gbXVsdGkgc2lnXG5leHBvcnQgY29uc3QgcHJ2MSA9ICcyMWQ0M2QyYWUwZGExZDlkMDRjZmNhYWM3ZDM5N2EzMzczMzg4MTA4MWYwYjJjZDAzODA2MmNmMGNjYmI3NTI2MDEnO1xuZXhwb3J0IGNvbnN0IHBydjIgPSAnYzcxNzAwYjA3ZDUyMGE4Yzk3MzFlNGQwZjA5NWFhNmVmYjkxZTE2ZTI1ZmIyN2NlMmI3MmU3YjY5OGY4MTI3YTAxJztcbmV4cG9ydCBjb25zdCBwcnYzID0gJ2U3NWRjYjY2Zjg0Mjg3ZWFmMzQ3OTU1ZTk0ZmEwNDMzNzI5OGRiZDk1YWEwZGJiOTg1NzcxMTA0ZWYxOTEzZGIwMSc7XG5leHBvcnQgY29uc3QgcHViMSA9ICcwMmIwODdjYTUyZjQwZmRmZGY0YjE2YTBiYmY3ZTkxZTRkYjJlMTgzYWM1YzY0OTFhNWY2MGE1NDUwZTI1ZGU3ZDAnO1xuZXhwb3J0IGNvbnN0IHB1YjIgPSAnMDI0YWJkZGQ2M2I1NmM1NWNkMWVkMDgwM2MyNmM0NzNmNWYwYjlkODQ3M2IzN2I2NWJkODEyZjAzNTM2NWYxNTRiJztcbmV4cG9ydCBjb25zdCBwdWIzID0gJzAzOGUzYzQ1MjkzOTU2MTFiZTlhYmY2ZmEzYjY5ODdlODFkNDAyMzg1ZTNkNjA1YTA3M2Y0MmY0MDc1NjVhNGEzZCc7XG5leHBvcnQgY29uc3QgTVVMVElfU0lHX1NJR05FRF9UUkFOU0FDVElPTiA9XG4gICc4MDgwMDAwMDAwMDQwMTJmZTUwN2MwOWRiYjIzYzNiN2U1ZDE2NmM4MWZjNGI4NzY5MjUxMGIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNDAwMDAwMDAzMDIwMTIzZDZkM2QyMmQyY2ExYjczMTBmNWM0NTMxNGQxZTc4M2MwMzE5M2UxYmI1ZTA4Njg1ZmMxYTQ4ZjhiZGFjN2MwZDkzYTQ2M2VmZWUxOGI5YjQxZmZmZTM4ZDRiNGM3NDc1ODA5YTM3YzBmZDUzZjUyY2VmNDU2YThkOTI4MGRiMDIwMDEwYjMxMWY4MmIxYjExMWViNWVmYTE2YzQ3OTA2ODdiMTZkYzkyYjdiNGQwN2ExZjBmMWZlNjViYWVlNDNlYjAyZWRlMjI2ZjgwN2EwOTcyMzdlN2QwZWUzYWE0ZmRmOWI2Mjg3ZGQyM2Q4MTllYzU2MGRmMTgwODc1ZjQwMTlhMDAwMzhlM2M0NTI5Mzk1NjExYmU5YWJmNmZhM2I2OTg3ZTgxZDQwMjM4NWUzZDYwNWEwNzNmNDJmNDA3NTY1YTRhM2QwMDAyMDMwMjAwMDAwMDAwMDAwNTFhMWFlM2Y5MTFkOGYxZDQ2ZDc0MTZiZmJlNGI1OTNmZDQxZWFjMTljYjAwMDAwMDAwMDAwMDAzZTg3NDY1NzM3NDIwNmQ2NTZkNmYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG5cbi8vIGNvbnRyYWN0IGNhbGxcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9BRERSRVNTID0gJ1NUMDAwMDAwMDAwMDAwMDAwMDAwMDAyQU1XNDJIJztcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9OQU1FID0gJ3BveC00JztcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9GVU5DVElPTl9OQU1FID0gJ3N0YWNrLXN0eCc7XG5leHBvcnQgY29uc3QgVU5TSUdORURfU0VMRl9TVEFDS19DT05UUkFDVF9DQUxMID1cbiAgJzgwODAwMDAwMDAwNDAwMTY0MjQ3ZDZmMmI0MjVhYzU3NzE0MjNhZTZjODBjNzU0ZjcxNzJiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwMjAwMDAwMDAwMDIxYTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTcwNmY3ODJkMzQwOTczNzQ2MTYzNmIyZDczNzQ3ODAwMDAwMDA4MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxN2Q3ODQwMDBjMDAwMDAwMDIwOTY4NjE3MzY4NjI3OTc0NjU3MzAyMDAwMDAwMDk3MzZmNmQ2NTJkNjg2MTczNjgwNzc2NjU3MjczNjk2ZjZlMDIwMDAwMDAwMTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwY2U0MDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwYTAyMDAwMDAwMDk3MzZmNmQ2NTJkNjg2MTczNjgwMjAwMDAwMDA5NzM2ZjZkNjUyZDY4NjE3MzY4MDFmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMWUyNDAnO1xuZXhwb3J0IGNvbnN0IFNJR05FRF9TRUxGX1NUQUNLX0NPTlRSQUNUX0NBTEwgPVxuICAnODA4MDAwMDAwMDA0MDAxNjQyNDdkNmYyYjQyNWFjNTc3MTQyM2FlNmM4MGM3NTRmNzE3MmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYjQwMDAxODMzZGI3OWNkOWMzOWM3MjYyYjgwOGI2ZWE4MGEwMDFhOWJkMjkwNjQ4Y2YzYTE5ZGE5NWYxMGQxODE0ZDY5NDM3YTAwMDc1ZTgzMjVlZjU2NGVkOWQ2NjkwYzU3NTU4M2JjYmIyOWM0ZTMzYzhjZTgwYzM0ZTdlZmQxZjU0NTcwMzAyMDAwMDAwMDAwMjFhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NzA2Zjc4MmQzNDA5NzM3NDYxNjM2YjJkNzM3NDc4MDAwMDAwMDgwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE3ZDc4NDAwMGMwMDAwMDAwMjA5Njg2MTczNjg2Mjc5NzQ2NTczMDIwMDAwMDAwOTczNmY2ZDY1MmQ2ODYxNzM2ODA3NzY2NTcyNzM2OTZmNmUwMjAwMDAwMDAxMDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBjZTQwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjBhMDIwMDAwMDAwOTczNmY2ZDY1MmQ2ODYxNzM2ODAyMDAwMDAwMDk3MzZmNmQ2NTJkNjg2MTczNjgwMWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxZTI0MCc7XG5cbmV4cG9ydCBjb25zdCBVTlNJR05FRF9DT05UUkFDVF9DQUxMID1cbiAgJzgwODAwMDAwMDAwNDAwMTY0MjQ3ZDZmMmI0MjVhYzU3NzE0MjNhZTZjODBjNzU0ZjcxNzJiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwMjAwMDAwMDAwMDIxYTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTcwNmY3ODJkMzQwOTczNzQ2MTYzNmIyZDczNzQ3ODAwMDAwMDA0MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxN2Q3ODQwMDA1MTYzMjQ4ZTdhYTY4Nzk5NjhkMjQxZjNlNTE1MmQ5ZjI3OTY5OTRkOTZjMGEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGM4MGEwYzAwMDAwMDAyMDk2ODYxNzM2ODYyNzk3NDY1NzMwMjAwMDAwMDA5NzM2ZjZkNjUyZDY4NjE3MzY4MDc3NjY1NzI3MzY5NmY2ZTAyMDAwMDAwMDEwMSc7XG5leHBvcnQgY29uc3QgU0lHTkVEX0NPTlRSQUNUX1dJVEhfQVJHUyA9XG4gICc4MDgwMDAwMDAwMDQwMDE2NDI0N2Q2ZjJiNDI1YWM1NzcxNDIzYWU2YzgwYzc1NGY3MTcyYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNDAwMDBkYmE0ZDc3NWQ2ODk0NzQ2ZjBiOGZmM2NiYzFiMGYyNjk2ODkwZDA2NjlmZmJiOGViOGRmNTEwOTg3NDExMTVlMjhhZjQ0OGE1OTU4M2UzZDM0ZTM0NGMzNDg3OWM1YzdhODJkMjIzODMzYzEyMTRkMTNjZDk4MTMxNjVkOGUxZTAzMDIwMDAwMDAwMDAyMWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU3MDZmNzgyZDM0MDk3Mzc0NjE2MzZiMmQ3Mzc0NzgwMDAwMDAwNDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTdkNzg0MDAwNTE2MzI0OGU3YWE2ODc5OTY4ZDI0MWYzZTUxNTJkOWYyNzk2OTk0ZDk2YzA5MGEwYzAwMDAwMDAyMDk2ODYxNzM2ODYyNzk3NDY1NzMwMjAwMDAwMDA5NzM2ZjZkNjUyZDY4NjE3MzY4MDc3NjY1NzI3MzY5NmY2ZTAyMDAwMDAwMDEwMSc7XG5leHBvcnQgY29uc3QgU0lHTkVEX0NPTlRSQUNUX0NBTEwgPVxuICAnODA4MDAwMDAwMDA0MDAxNjQyNDdkNmYyYjQyNWFjNTc3MTQyM2FlNmM4MGM3NTRmNzE3MmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYjQwMDAxYjY5M2JkZjAxNGMxYWM3OGUzMDdmZWQ0OWJjMWRmOGZlZDJhNWU0MmQ0Yjc5OTkzZjVkZjYyNmQ3YjFiMjUxNjc0MTQ5NTE5OGEzZGJmMDc5ZGVlYmM0NmVjZGQ1MzVmZTY2ZjUxOGMwYTY5NWM1MzNmMTY2NzQ1NWEwNTAzNmEwMzAyMDAwMDAwMDAwMjFhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NzA2Zjc4MmQzNDA5NzM3NDYxNjM2YjJkNzM3NDc4MDAwMDAwMDEwYTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2InO1xuZXhwb3J0IGNvbnN0IE1VTFRJX1NJR19DT05UUkFDVF9DQUxMID1cbiAgJzgwODAwMDAwMDAwNDAxMmZlNTA3YzA5ZGJiMjNjM2I3ZTVkMTY2YzgxZmM0Yjg3NjkyNTEwYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDMwMjAxNjlhMDMyMTEyMzczYjQ4MWM0OGVjYjEyYjg4NDc1MTlmODk3MjBkNDI5N2E3YmY1Y2FjNDNiOWRhYThkNGFkMjNkZDUzNjU3MDg5ZGFkNTVjOTRlOGJlNTc2MmU5NzA1MjY4M2Y0OWUxZjQ1N2IyZTkyNTJmMjdlOTc1NjAzMjMwMjAwMTI4ZDBiYTJiOTU4NDMzOTM1OWZmNDJjMWQ2ZjM1Y2U3OWE3MDczMTUyYjNjOTA4NzliYzUxNjJlYjhkZjczYjAyZWFkYTNlZTMyMjg3M2E1ZmE3MzY0NzllNmM1MzYxMDk2ODE0ODJkOWYyMmYxZTFhODk2MDgwOTBiODY2NjgwMDAzOGUzYzQ1MjkzOTU2MTFiZTlhYmY2ZmEzYjY5ODdlODFkNDAyMzg1ZTNkNjA1YTA3M2Y0MmY0MDc1NjVhNGEzZDAwMDIwMzAyMDAwMDAwMDAwMjFhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NzA2Zjc4MmQzNDA5NzM3NDYxNjM2YjJkNzM3NDc4MDAwMDAwMDEwYTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2InO1xuXG4vLyBjb250cmFjdCBjYWxsIHdpdGggbWVtbyBub25jZSA0NW4sXG5leHBvcnQgY29uc3QgU0VORF9NQU5ZX0NPTlRSQUNUX0FERFJFU1NfV0lUSF9NRU1PID0gJ1NUM0YxWDRRR1YyU004WEQ5Nlg0NU02UlRRWEtBMVBaSlpaQ1FBQjRCJztcbmV4cG9ydCBjb25zdCBTRU5EX01BTllfQ09OVFJBQ1RfTkFNRV9XSVRIX01FTU8gPSAnc2VuZC1tYW55LW1lbW8nO1xuZXhwb3J0IGNvbnN0IFNFTkRfTUFOWV9DT05UUkFDVF9GVU5DVElPTl9OQU1FX1dJVEhfTUVNTyA9ICdzZW5kLW1hbnknO1xuZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1NFTkRfTUFOWV9XSVRIX01FTU8gPVxuICAnODA4MDAwMDAwMDA0MDFlN2E0Yjc3NDRlOTlhNTQ3NjBjYTc2ZTU0ZjRkODFlNGI2MDI2MjM3MDAwMDAwMDAwMDAwMDAyZDAwMDAwMDAwMDAwMDAyMTQwMDAwMDAwMzAwMDI0YjVkOTI0ZWNjMDUyZjk1MTUzMzQwMDU0Y2FlNTI2ZDE2ZTkwNDI4OGUxOWUxOTQ2ZTE5NzczODdmNjgyOGM5MDAwMjk0ZWFiOTk1ODQ0YTMzNGY0YjdkOTQ2NTAwYTRlNzk0ZjVmNWY2ZTg3ZjliMjY3MTc1NDA4YzAzZTI4MDY0MGQwMDAyYjdiYTNlMTdlMzE0OTZiYmYxNTU1OTZkYzNmMmEwMmRlNDU3Y2ZmZWFkMDE3ZjY3MWY2NWQ5ZDM0YWIyNjFlYTAwMDIwMzAyMDAwMDAwMDEwMDAyMTVlN2E0Yjc3NDRlOTlhNTQ3NjBjYTc2ZTU0ZjRkODFlNGI2MDI2MjM3MDEwMDAwMDAwMDAwNWI4ZDgwMDIxYWRlMWU5MmYwZDhiMzQ0NzVhOTM3NDg1YTFiMWFiZjY2YTBkYmYyZmYwZTczNjU2ZTY0MmQ2ZDYxNmU3OTJkNmQ2NTZkNmYwOTczNjU2ZTY0MmQ2ZDYxNmU3OTAwMDAwMDAxMGIwMDAwMDAwMzBjMDAwMDAwMDMwNDZkNjU2ZDZmMDIwMDAwMDAwNjZkNjU2ZDZmMjAzMTAyNzQ2ZjA1MTVhNGIwODIzYTk5ZmM1ZTg3YjhiZDJlN2U3YzE4OTkxNTM1NWUxYzBhMDQ3NTczNzQ3ODAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZjQyNDAwYzAwMDAwMDAzMDQ2ZDY1NmQ2ZjAyMDAwMDAwMDY2ZDY1NmQ2ZjIwMzIwMjc0NmYwNTE1OWZjYWUzYWViZGQ5MTc3Y2EwYzIyMTRjZjBjNWM2YTk2Mzk4YTliODA0NzU3Mzc0NzgwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMWU4NDgwMGMwMDAwMDAwMzA0NmQ2NTZkNmYwMjAwMDAwMDA2NmQ2NTZkNmYyMDMzMDI3NDZmMDUxNTE4MmQ1YzNiNmQ2NzM3NjYyNjU5N2VlODNmYmE2MmIzOTJhMTViZWIwNDc1NzM3NDc4MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJkYzZjMCc7XG5leHBvcnQgY29uc3QgU0lHTkVEX1NFTkRfTUFOWV9XSVRIX01FTU8gPVxuICAnODA4MDAwMDAwMDA0MDFlN2E0Yjc3NDRlOTlhNTQ3NjBjYTc2ZTU0ZjRkODFlNGI2MDI2MjM3MDAwMDAwMDAwMDAwMDAyZDAwMDAwMDAwMDAwMDAyMTQwMDAwMDAwMzAyMDBlNjkyY2IyMTNiY2UwMzVlMzhkNWZhMzFkZjU0YTMwMzliM2QyNGFmMDVmNjZjMDQ2OTY0NjE1YWNiNzM5NjcwMzY4ZjQyNGFmMWM2MGMwOTYxYWY1Zjk3NmI0NmM2YWQxNTkzYjY4NTRmM2Q5M2IwN2MzNjFhN2VmMzQ4NDU2NTAyMDE3YjljZGVkZWIzZmQ5MmZlNDkwMTlmNGUzMTAwNTJlODVhNGMzYmI0NmMwZWU4OWRiNjVmN2M3ZTczNTkyZTdiNjBhOWMxMjdmYmJiMTI1YTEyNGJhYTNlZmIwZGQ2Nzk4NzljNzBjNGE2Y2E1NWYzYWZhY2VkYjE1NjVkZGU2YzAwMDJiN2JhM2UxN2UzMTQ5NmJiZjE1NTU5NmRjM2YyYTAyZGU0NTdjZmZlYWQwMTdmNjcxZjY1ZDlkMzRhYjI2MWVhMDAwMjAzMDIwMDAwMDAwMTAwMDIxNWU3YTRiNzc0NGU5OWE1NDc2MGNhNzZlNTRmNGQ4MWU0YjYwMjYyMzcwMTAwMDAwMDAwMDA1YjhkODAwMjFhZGUxZTkyZjBkOGIzNDQ3NWE5Mzc0ODVhMWIxYWJmNjZhMGRiZjJmZjBlNzM2NTZlNjQyZDZkNjE2ZTc5MmQ2ZDY1NmQ2ZjA5NzM2NTZlNjQyZDZkNjE2ZTc5MDAwMDAwMDEwYjAwMDAwMDAzMGMwMDAwMDAwMzA0NmQ2NTZkNmYwMjAwMDAwMDA2NmQ2NTZkNmYyMDMxMDI3NDZmMDUxNWE0YjA4MjNhOTlmYzVlODdiOGJkMmU3ZTdjMTg5OTE1MzU1ZTFjMGEwNDc1NzM3NDc4MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmNDI0MDBjMDAwMDAwMDMwNDZkNjU2ZDZmMDIwMDAwMDAwNjZkNjU2ZDZmMjAzMjAyNzQ2ZjA1MTU5ZmNhZTNhZWJkZDkxNzdjYTBjMjIxNGNmMGM1YzZhOTYzOThhOWI4MDQ3NTczNzQ3ODAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxZTg0ODAwYzAwMDAwMDAzMDQ2ZDY1NmQ2ZjAyMDAwMDAwMDY2ZDY1NmQ2ZjIwMzMwMjc0NmYwNTE1MTgyZDVjM2I2ZDY3Mzc2NjI2NTk3ZWU4M2ZiYTYyYjM5MmExNWJlYjA0NzU3Mzc0NzgwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMmRjNmMwJztcblxuZXhwb3J0IGNvbnN0IHBydktleXNTdHJpbmcgPSBbXG4gICdlNTU4ODNkNTMzMzVjZGYwZmU0YzUwNTA1MTM4MmIyZjdjYjk1MjE2NjYzZTQwODBlYmJjYWE3NGJjY2E5NzUwMDEnLFxuICAnMDk3MWIyYmExOTNmZDM5M2E0YzM5ZWZjY2MzZDYzYmFmZjVkNDk4NTAwYWNmYzk3Yzg3NjU1MzE2NTIyNzQyNDAxJyxcbiAgJzA0MWM4YjRiYTgyNTA4NTVhNGEzY2Q0ZDliMjhlNDU2MmM5ZjRhZWU5N2Y3OTQ0MmJiOWZmMmNmZjY4NDUyMjAwMScsXG5dO1xuXG5leHBvcnQgY29uc3Qgc2VuZE1hbnlSZWNpcGllbnRzID0gW1xuICB7XG4gICAgYWRkcmVzczogJ1NOMkpCMTBIVEs3WTVYMVhSUU1RN1daMFJLNEFLQVFHVzFBNzU1WVlUJyxcbiAgICBhbW91bnQ6ICcxMDAwMDAwJyxcbiAgICBtZW1vOiAnbWVtbyAxJyxcbiAgfSxcbiAge1xuICAgIGFkZHJlc3M6ICdTTjJGV05SWEVRUUNIRVo1MFI4R01TVzY1UlRNUDc2NTlRMk1ZWTlQNCcsXG4gICAgYW1vdW50OiAnMjAwMDAwMCcsXG4gICAgbWVtbzogJ21lbW8gMicsXG4gIH0sXG4gIHtcbiAgICBhZGRyZXNzOiAnU05DMlRRMVZETktLRVNINkI1WkVHRlhUQ0FTUzU4QVZYREFDOUg3VycsXG4gICAgYW1vdW50OiAnMzAwMDAwMCcsXG4gICAgbWVtbzogJ21lbW8gMycsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgTUVNTyA9ICdtZW1vIDEnO1xuXG5leHBvcnQgY29uc3QgRlVOR0lCTEVfVE9LRU5fVFJBTlNGRVJfQ09OU1RBTlRTID0ge1xuICBDT05UUkFDVF9BRERSRVNTOiAnU1RBRzE4RTQ1VzYxM0ZaM0g0Wk1GNlFISDQyNkVYTTVRVFNBVldZSCcsXG4gIENPTlRSQUNUX05BTUU6ICd0c2lwNmRwLXRva2VuJyxcbiAgRlVOQ1RJT05fTkFNRTogJ3RyYW5zZmVyJyxcbiAgU0VOREVSX0FERFJFU1M6ICdTVEFHMThFNDVXNjEzRlozSDRaTUY2UUhINDI2RVhNNVFUU0FWV1lIJyxcbiAgUkVDRUlWRVJfQUREUkVTUzogJ1NOMk5OMUpQOUFFUDVCVkUxOVJOSjZUMk1QN05ER1JaWVNUMVZERjNNJyxcbiAgVE9LRU5fTkFNRTogJ3RzaXA2ZHAtdG9rZW4nLFxuICBVTlNJR05FRF9TSU5HTEVfU0lHX1RYOlxuICAgICc4MDgwMDAwMDAwMDQwMDE2NDI0N2Q2ZjJiNDI1YWM1NzcxNDIzYWU2YzgwYzc1NGY3MTcyYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMDIwMDAwMDAwMTAxMDIxNTE2NDI0N2Q2ZjJiNDI1YWM1NzcxNDIzYWU2YzgwYzc1NGY3MTcyYjAxYTE1MDBhMWM0MmYwYzExYmZlMzg5M2Y0NzlhZjE4OTA0Njc3Njg1YmUwZDc0NzM2OTcwMzY2NDcwMmQ3NDZmNmI2NTZlMGQ3NDczNjk3MDM2NjQ3MDJkNzQ2ZjZiNjU2ZTAxMDAwMDAwMDAwMDAwMjcxMDAyMWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMGQ3NDczNjk3MDM2NjQ3MDJkNzQ2ZjZiNjU2ZTA4NzQ3MjYxNmU3MzY2NjU3MjAwMDAwMDA0MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcxMDA1MWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMDUxNWFiNTBjYWM5NTNhYzU1ZWRjMTRlMmIyMzY4NTRiMWVhZDg2M2ZlY2UwYTAyMDAwMDAwMDEzMScsXG4gIFVOU0lHTkVEX1NJTkdMRV9TSUdfVFhfV0lUSE9VVF9NRU1POlxuICAgICc4MDgwMDAwMDAwMDQwMDE2NDI0N2Q2ZjJiNDI1YWM1NzcxNDIzYWU2YzgwYzc1NGY3MTcyYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMDIwMDAwMDAwMTAxMDIxNTE2NDI0N2Q2ZjJiNDI1YWM1NzcxNDIzYWU2YzgwYzc1NGY3MTcyYjAxYTE1MDBhMWM0MmYwYzExYmZlMzg5M2Y0NzlhZjE4OTA0Njc3Njg1YmUwZDc0NzM2OTcwMzY2NDcwMmQ3NDZmNmI2NTZlMGQ3NDczNjk3MDM2NjQ3MDJkNzQ2ZjZiNjU2ZTAxMDAwMDAwMDAwMDAwMjcxMDAyMWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMGQ3NDczNjk3MDM2NjQ3MDJkNzQ2ZjZiNjU2ZTA4NzQ3MjYxNmU3MzY2NjU3MjAwMDAwMDAzMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcxMDA1MWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMDUxNWFiNTBjYWM5NTNhYzU1ZWRjMTRlMmIyMzY4NTRiMWVhZDg2M2ZlY2UnLFxuICBTSUdORURfTVVMVElfU0lHX1RYOlxuICAgICc4MDgwMDAwMDAwMDQwMTJmZTUwN2MwOWRiYjIzYzNiN2U1ZDE2NmM4MWZjNGI4NzY5MjUxMGIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNDAwMDAwMDAzMDIwMWU0Yzk4ZDc2ODdlYWI1ZjExZDAzZmViYzk2OTUxMzAxZWVkZTMzNjA4OGIwNmM1YTY3NmNjNjA5M2Y3MGUxNmIzZjM1MzNjY2Q4ZTZmOTIzOTBhMTdkY2M5MTdmNGU4Mjg2NTdmMTc2MDU1NzRhNWZjYmIzZGE1OWYyNTQ4M2RjMDIwMTkwOTVjMmY1MjE3ZTBmMTY4ZjI3YjYwNWI0N2U5ZWFjMmRhM2M1ZWEzMDljNDJhMjY3N2FkZGZiNjdjMWZkNDcxZWYyMDE4N2NlNmI4NWI1YjU0MWQ0YjRmMDBkMmY4ZWE4ZjdkNDJiZTg0MzI3OTY4Y2I5NDExNzMwYjUyMTdhMDAwMzhlM2M0NTI5Mzk1NjExYmU5YWJmNmZhM2I2OTg3ZTgxZDQwMjM4NWUzZDYwNWEwNzNmNDJmNDA3NTY1YTRhM2QwMDAyMDMwMjAwMDAwMDAxMDEwMjE1MmZlNTA3YzA5ZGJiMjNjM2I3ZTVkMTY2YzgxZmM0Yjg3NjkyNTEwYjFhMTUwMGExYzQyZjBjMTFiZmUzODkzZjQ3OWFmMTg5MDQ2Nzc2ODViZTBkNzQ3MzY5NzAzNjY0NzAyZDc0NmY2YjY1NmUwZDc0NzM2OTcwMzY2NDcwMmQ3NDZmNmI2NTZlMDEwMDAwMDAwMDAwMDAyNzEwMDIxYTE1MDBhMWM0MmYwYzExYmZlMzg5M2Y0NzlhZjE4OTA0Njc3Njg1YmUwZDc0NzM2OTcwMzY2NDcwMmQ3NDZmNmI2NTZlMDg3NDcyNjE2ZTczNjY2NTcyMDAwMDAwMDQwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNzEwMDUxYTE1MDBhMWM0MmYwYzExYmZlMzg5M2Y0NzlhZjE4OTA0Njc3Njg1YmUwNTE1YWI1MGNhYzk1M2FjNTVlZGMxNGUyYjIzNjg1NGIxZWFkODYzZmVjZTBhMDIwMDAwMDAwMTMxJyxcbiAgU0lHTkVEX01VTFRJX1NJR19UWF9XSVRIT1VUX01FTU86XG4gICAgJzgwODAwMDAwMDAwNDAxMmZlNTA3YzA5ZGJiMjNjM2I3ZTVkMTY2YzgxZmM0Yjg3NjkyNTEwYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDMwMjAwZDEyYTgwZjY3Y2RhYzcyYWQxMTYwNzVlODY4NDY5ODZhMDE1YTYwYmY1NDE4NTVlYTE3ZGRjNzk2MjBiNjc5YjBkNzVlNTIzY2JjNzYzODk2OWFkZGViMDQ3ZTczZWQxMWIzOThhODk0YjJmZDQ0NTk2MjNhZmIyZmMxMDQ2MWIwMjAwN2UwMWYyOGY5YWM1YjliYzMyZjNkZTgyNmY2OWFhYmNjNmIzNTdmYWE1MGQ5ODA4N2ZmMTI3MTRlYjNkMzUxZTUxNTQ4MmFmZjc4NGI1NGFiNTcyY2U2Zjg2YzFmNDBjNzFiMjFmZDE5N2U4NDZmYjM4ODcxOGY1NWYxN2Q0ZDMwMDAzOGUzYzQ1MjkzOTU2MTFiZTlhYmY2ZmEzYjY5ODdlODFkNDAyMzg1ZTNkNjA1YTA3M2Y0MmY0MDc1NjVhNGEzZDAwMDIwMzAyMDAwMDAwMDEwMTAyMTUyZmU1MDdjMDlkYmIyM2MzYjdlNWQxNjZjODFmYzRiODc2OTI1MTBiMWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMGQ3NDczNjk3MDM2NjQ3MDJkNzQ2ZjZiNjU2ZTBkNzQ3MzY5NzAzNjY0NzAyZDc0NmY2YjY1NmUwMTAwMDAwMDAwMDAwMDI3MTAwMjFhMTUwMGExYzQyZjBjMTFiZmUzODkzZjQ3OWFmMTg5MDQ2Nzc2ODViZTBkNzQ3MzY5NzAzNjY0NzAyZDc0NmY2YjY1NmUwODc0NzI2MTZlNzM2NjY1NzIwMDAwMDAwNDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI3MTAwNTFhMTUwMGExYzQyZjBjMTFiZmUzODkzZjQ3OWFmMTg5MDQ2Nzc2ODViZTA1MTVhYjUwY2FjOTUzYWM1NWVkYzE0ZTJiMjM2ODU0YjFlYWQ4NjNmZWNlMDknLFxufTtcbiJdfQ==
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L3Jlc291cmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQW1DO0FBRW5DOzs7Ozs7Ozs7R0FTRztBQUVVLFFBQUEsVUFBVSxHQUFHLGtFQUFrRSxDQUFDO0FBQ2hGLFFBQUEsT0FBTyxHQUNsQixvSUFBb0ksQ0FBQztBQUMxSCxRQUFBLFFBQVEsR0FBRywyQ0FBMkMsQ0FBQztBQUV2RCxRQUFBLFVBQVUsR0FBRyxrRUFBa0UsQ0FBQztBQUNoRixRQUFBLE9BQU8sR0FDbEIsb0lBQW9JLENBQUM7QUFDMUgsUUFBQSxpQkFBaUIsR0FBRyxvRUFBb0UsQ0FBQztBQUN6RixRQUFBLFFBQVEsR0FBRywwQ0FBMEMsQ0FBQztBQUVuRSwrQkFBK0I7QUFDL0Isd0JBQXdCO0FBQ1gsUUFBQSxLQUFLLEdBQ2hCLGlIQUFpSCxDQUFDO0FBQ3ZHLFFBQUEsS0FBSyxHQUNoQixpSEFBaUgsQ0FBQztBQUN2RyxRQUFBLGFBQWEsR0FBRyxrRUFBa0UsQ0FBQztBQUNuRixRQUFBLGFBQWEsR0FDeEIsb0lBQW9JLENBQUM7QUFDMUgsUUFBQSx1QkFBdUIsR0FBRyxvRUFBb0UsQ0FBQztBQUUvRixRQUFBLFNBQVMsR0FBRztJQUN2QixHQUFHLEVBQUUsa0JBQVU7SUFDZixHQUFHLEVBQUUsZUFBTztJQUNaLE9BQU8sRUFBRSxnQkFBUTtDQUNsQixDQUFDO0FBRVcsUUFBQSxTQUFTLEdBQUc7SUFDdkIsR0FBRyxFQUFFLGtCQUFVO0lBQ2YsR0FBRyxFQUFFLGVBQU87SUFDWixPQUFPLEVBQUUsZ0JBQVE7Q0FDbEIsQ0FBQztBQUVXLFFBQUEsUUFBUSxHQUFHO0lBQ3RCLEdBQUcsRUFBRSxvRUFBb0U7Q0FDMUUsQ0FBQztBQUVXLFFBQUEsV0FBVyxHQUFHO0lBQ3pCLE9BQU8sRUFBRSwyQ0FBMkM7Q0FDckQsQ0FBQztBQUVXLFFBQUEscUJBQXFCLEdB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QUFHLFdBQVcsQ0FBQztBQUN6RCxRQUFBLDRCQUE0QixHQUN2QyxvNEJBQW80QixDQUFDO0FBQzEzQixRQUFBLDBCQUEwQixHQUNyQyxvZ0NBQW9nQyxDQUFDO0FBRTEvQixRQUFBLGFBQWEsR0FBRztJQUMzQixvRUFBb0U7SUFDcEUsb0VBQW9FO0lBQ3BFLG9FQUFvRTtDQUNyRSxDQUFDO0FBRVcsUUFBQSxrQkFBa0IsR0FBRztJQUNoQztRQUNFLE9BQU8sRUFBRSwyQ0FBMkM7UUFDcEQsTUFBTSxFQUFFLFNBQVM7UUFDakIsSUFBSSxFQUFFLFFBQVE7S0FDZjtJQUNEO1FBQ0UsT0FBTyxFQUFFLDJDQUEyQztRQUNwRCxNQUFNLEVBQUUsU0FBUztRQUNqQixJQUFJLEVBQUUsUUFBUTtLQUNmO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsMENBQTBDO1FBQ25ELE1BQU0sRUFBRSxTQUFTO1FBQ2pCLElBQUksRUFBRSxRQUFRO0tBQ2Y7Q0FDRixDQUFDO0FBRVcsUUFBQSxJQUFJLEdBQUcsUUFBUSxDQUFDO0FBRWhCLFFBQUEsaUNBQWlDLEdBQUc7SUFDL0MsZ0JBQWdCLEVBQUUsMENBQTBDO0lBQzVELGFBQWEsRUFBRSxlQUFlO0lBQzlCLGFBQWEsRUFBRSxVQUFVO0lBQ3pCLGNBQWMsRUFBRSwwQ0FBMEM7SUFDMUQsZ0JBQWdCLEVBQUUsMkNBQTJDO0lBQzdELFVBQVUsRUFBRSxlQUFlO0lBQzNCLHNCQUFzQixFQUNwQixvbkJBQW9uQjtJQUN0bkIsbUNBQW1DLEVBQ2pDLHNtQkFBc21CO0lBQ3htQixtQkFBbUIsRUFDakIsdzBCQUF3MEI7SUFDMTBCLGdDQUFnQyxFQUM5Qiw0ekJBQTR6QjtDQUMvekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0eExpYiB9IGZyb20gJy4uLy4uL3NyYyc7XG5cbi8qXG4gKiBrZXlzIGFuZCBhZGRyZXNzZXMgYXJlIGZyb206XG4gKlxuICogaW1wb3J0ICogYXMgc3QgZnJvbSAnQHN0YWNrcy90cmFuc2FjdGlvbnMnO1xuICpcbiAqIGNvbnN0IHNlY3JldEtleTEgPSBzdC5wcml2YXRlS2V5VG9TdHJpbmcoc3QubWFrZVJhbmRvbVByaXZLZXkoKSk7XG4gKiBjb25zdCBwdWJsaWNLZXkxID0gc3QucHVibGljS2V5VG9IZXgoc3QucHJpdmF0ZUtleVRvUHVibGljKHNlY3JldEtleTEuZGF0YSk7XG4gKiBjb25zdCBhZGRyZXNzMSA9IHN0LmdldEFkZHJlc3NGcm9tUHJpdmF0ZUtleShzZWNyZXRLZXkxKTtcbiAqIGV0Yy5cbiAqL1xuXG5leHBvcnQgY29uc3Qgc2VjcmV0S2V5MSA9ICc2NmM4ODY0ODExNmI3MjFiYjJmMzk0ZTAwMDdmOWQzNDhlYTA4MDE3YjZlNjA0ZGU1MWEzYTdkOTU3ZDU4NTI0JztcbmV4cG9ydCBjb25zdCBwdWJLZXkxID1cbiAgJzA0YTY4YzJkNmZkYjM3MDZiMzlmMzJkNmY0MjI1Mjc1Y2UwNjI1NjE5MDhmZDdjYTU0MGE0NGM5MmViODU5NGVhNmRiOWZjZmUwYjM5MGMwZWFkM2Y0NWMzNmFmZDY4MmVhYjYyZWIxMjRhNjNiNDYwOTQ1ZmUxZjdjN2Y4YTA5ZTInO1xuZXhwb3J0IGNvbnN0IGFkZHJlc3MxID0gJ1NQMTBGREhRUTRGMkYwS0hNTjZaMjRSTUFNR1g1OTMzU1FKQ1dLQUFSJztcblxuZXhwb3J0IGNvbnN0IHNlY3JldEtleTIgPSAnMzU3OTRhZGYwZGQyYTMxM2MxOGJjMTE4YjQyMjc0MGJiOTRmODUxMTQxMzRiZTM0NzAzZmY3MDY2NTgwODdlNCc7XG5leHBvcnQgY29uc3QgcHViS2V5MiA9XG4gICcwNDIxZDZmNDJjOTlmN2QyM2VjMmMwZGMyMTIwOGE5YzVlZGZjZTRlNWJjN2I2Mzk3MmU2OGU4NmUzY2VhNmY0MWE5NGE5YTdjMjRhMWNjZDgzNzkyMTczZjQ3NWZkYjU5MGNjODJmOTRmZjYxNWRmMzkxNDI3NjZlNzU5Y2U2Mzg3JztcbmV4cG9ydCBjb25zdCBwdWJLZXkyQ29tcHJlc3NlZCA9ICcwMzIxZDZmNDJjOTlmN2QyM2VjMmMwZGMyMTIwOGE5YzVlZGZjZTRlNWJjN2I2Mzk3MmU2OGU4NmUzY2VhNmY0MWEnO1xuZXhwb3J0IGNvbnN0IGFkZHJlc3MyID0gJ1NQUzRIU1hBRDFXU0QzOTQzV1o1Mk1QU1k5V1BLNTZTREc1NEhUQVInO1xuXG4vLyBleHRlbmRlZCBwcml2YXRlL3B1YmxpYyBrZXlzXG4vLyBTVFggZG9lcyBub3QgdXNlIHRoZW1cbmV4cG9ydCBjb25zdCB4cHJ2MSA9XG4gICd4cHJ2OXMyMVpyUUgxNDNLMzRiZGhDV011aXVIZmRqUUIyMWd1OTVOd3BlR0VFZkdNV3M3dEE1czNQTUJCUGVKbVhuNURRM3Z2OEhwOGtxMUtyc2FKSm5jelczQk16dEwyVkdUbnhWUGdWamdxMUgnO1xuZXhwb3J0IGNvbnN0IHhwdWIxID1cbiAgJ3hwdWI2NjFNeU13QXFSYmNGWWc2b0UzTkdycjJEZlp0YVVqWUdNenlrRDNzbmFDRkVLQ0dSaFE3YkJmZjJnM0NZdnlZUFFNR1N3U2UxREg4R1h2UDZ1QjNpaVdzUEdHTWJYVlpHa3JrMVV4UVZrNic7XG5leHBvcnQgY29uc3QgeHBydjFQcm90b2NvbCA9ICc3M2VhMTlhZWEyNWU4N2M0ZWU4ZWFlZTIxNDE3NDQyYWM5ZWI2ODk4ZjQ1MzhhZGU4ZjIwOTFkMWQyYzU5NDZkJztcbmV4cG9ydCBjb25zdCB4cHViMVByb3RvY29sID1cbiAgJzA0Mjc5NGJjNDNkNzVkYjBlODU4OTk4NzgxODc1NGFhMmY4MjBhMzUwYTU3NDJlZmFmMGQ1MDUxOGZjYmM2YTgwYzU5N2FhNTFhYThlNzU1ZmQxMGI3NTNmN2UzNjQxMDg0OTE3MWE5OWQ4NTMzZjZlYTg0YTBjNGRmYmU2ZTI0MTknO1xuZXhwb3J0IGNvbnN0IHhwdWIxUHJvdG9jb2xDb21wcmVzc2VkID0gJzAzMjc5NGJjNDNkNzVkYjBlODU4OTk4NzgxODc1NGFhMmY4MjBhMzUwYTU3NDJlZmFmMGQ1MDUxOGZjYmM2YTgwYyc7XG5cbmV4cG9ydCBjb25zdCBBQ0NPVU5UXzEgPSB7XG4gIHBydjogc2VjcmV0S2V5MSxcbiAgcHViOiBwdWJLZXkxLFxuICBhZGRyZXNzOiBhZGRyZXNzMSxcbn07XG5cbmV4cG9ydCBjb25zdCBBQ0NPVU5UXzIgPSB7XG4gIHBydjogc2VjcmV0S2V5MixcbiAgcHViOiBwdWJLZXkyLFxuICBhZGRyZXNzOiBhZGRyZXNzMixcbn07XG5cbmV4cG9ydCBjb25zdCBTRU5ERVJfMSA9IHtcbiAgcHJ2OiAnZWRmOWFlZTg0ZDliN2FiYzE0NTUwNGRkZTY3MjZjNjRmMzY5ZDM3ZWUzNGRlZDg2OGZhYmQ4NzZjMjY1NzBiYzAxJyxcbn07XG5cbmV4cG9ydCBjb25zdCBSRUNJUElFTlRfMSA9IHtcbiAgYWRkcmVzczogJ1NQM0ZHUThaN0pZOUJXWVo1V001M0UwTTlOSzdXSEpGMDY5MU5aMTU5Jyxcbn07XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0S2V5UGFpckZyb21QcnYgPSBuZXcgU3R4TGliLktleVBhaXIoe1xuICBwcnY6IHNlY3JldEtleTEsXG59KTtcblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRLZXlQYWlyRnJvbVB1YiA9IG5ldyBTdHhMaWIuS2V5UGFpcih7XG4gIHB1YjogcHViS2V5Mixcbn0pO1xuXG4vLyB2ZXJpZnkgc2lnbmF0dXJlc1xuZXhwb3J0IGNvbnN0IG1lc3NhZ2UxID0gJ2FiYyc7XG4vLyB3aGVuIHNpZ25lZCB3aXRoIHNlY3JldEtleTFcbmV4cG9ydCBjb25zdCBleHBlY3RlZFNpZ25hdHVyZTEgPVxuICAnMDBlMDQ3YzBhNTE0NmRmOTM0NTIyNzk1YTllYzA4ZmVhMzdlMTQ1MDI4N2VjMmFiNjk3ZWU1MGUwYjM5NTAyZDY5NTM3MjQ0NGFjZjQ3ZDExN2JlYzYyMWJiMzhkZDhmM2I5MmE0Nzk3MmEyMDljMzAyMDQ5ZDk1NTVkOTEyYWZhOSc7XG5cbmV4cG9ydCBjb25zdCBtZXNzYWdlMiA9ICdoZWxsbyc7XG4vLyB3aGVuIHNpZ25lZCB3aXRoIHNlY3JldEtleTJcbmV4cG9ydCBjb25zdCBleHBlY3RlZFNpZ25hdHVyZTIgPVxuICAnMDEwYzc1NTMwM2FmNzQ4NjBiNzUyOTcyYTY5NjUxZmU3NDBhZDhmMDlmYmY4NWRjMmZjMDZmYzYzZTAxMmMxY2E1MzJiYWYyMGQxYzljYjgxZDkzMDMyMTZlZmM2ZjZjYzZiZDc3NTNmZTJlOGVhYTdhMDZkNzdiZGQzY2VkYTg1Myc7XG5cbi8vIHNlZWQgaXMgQnVmZmVyLmFsbG9jKDY0KSAtLSBhbGwgemVybyBieXRlc1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRTZWVkU2VjcmV0S2V5ID0gJ2VhZmQxNTcwMmZjYTNmODBiZWI1NjVlNjZmMTllMjBiYmFkMGEzNGI0NmJiMTIwNzVjYmYxYzVkOTRiYjI3ZDInO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRTZWVkUHViS2V5ID1cbiAgJzA0NjY5MjYxZmUyMDQ1MmZlNmEwM2U2MjU5NDRjNmEwNTIzZTYzNTBiM2VhOGNiZDM3YzljYTFmZjk3ZTNhYzhiZjNkZDJkNTFhMDlkNmQ0ODMxY2IyYmM5ODI4YzVhZjE0Y2U0YzMzODRjOTczZDc1YWFkNDIzNjI2YTJhNmQxOGQnO1xuXG5leHBvcnQgY29uc3QgZGVmYXVsdFNlZWRBZGRyZXNzVW5jb21wcmVzc2VkTWFpbm5ldCA9ICdTUDIxWDhQTUg4VDRNVlg4Wjc1SlpQWUVWQTZROEZEUjdQSjEzTVY0USc7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNlZWRBZGRyZXNzVW5jb21wcmVzc2VkVGVzdG5ldCA9ICdTVDIxWDhQTUg4VDRNVlg4Wjc1SlpQWUVWQTZROEZEUjdQRzg4V1RWRic7XG5leHBvcnQgY29uc3QgZGVmYXVsdFNlZWRBZGRyZXNzQ29tcHJlc3NlZE1haW5uZXQgPSAnU1AzMU1CUkY5SjhXMjJXMzA0NE1FQVpEWEZNTTg1Njk5NjUzWktSN1EnO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRTZWVkQWRkcmVzc0NvbXByZXNzZWRUZXN0bmV0ID0gJ1NUMzFNQlJGOUo4VzIyVzMwNDRNRUFaRFhGTU04NTY5OTY3VEYxUjQxJztcblxuZXhwb3J0IGNvbnN0IElOVkFMSURfS0VZUEFJUl9QUlYgPSBuZXcgU3R4TGliLktleVBhaXIoe1xuICBwcnY6ICc4Q0FBMDBBRTYzNjM4QjA1NDJBMzA0ODIzRDY2RDk2RkYzMTdBNTc2RjY5MjY2M0RCMkY4NUU2MEZBQjI1OTBDJyxcbn0pO1xuXG5leHBvcnQgY29uc3QgVFhfU0VOREVSID0ge1xuICBwcnY6ICdjYjNkZjM4MDUzZDEzMjg5NTIyMGI5Y2U0NzFmNmI2NzZkYjViOWJmMGI0YWRlZmI1NWYyMTE4ZWNlMjQ3OGRmMDEnLFxuICBwdWI6ICcwMzc5N2RkNjUzMDQwZDM0NGZkMDQ4YzFhZDA1ZDRjYmNiMjE3OGIzMGM2YTBjNDI3Njk5NDc5NWYzZTgzM2RhNDEnLFxuICBhZGRyZXNzOiAnU1RCNDRIWVBZQVQyQkIyUUU1MTNOU1A4MUhUTVlXQkpQMDJIUEdLNicsXG59O1xuXG5leHBvcnQgY29uc3QgVFhfUkVDSUVWRVIgPSB7XG4gIGFkZHJlc3M6ICdTVERFN1k4SFYzUlg4VkJNMlRaVldKVFM3WkExWEIwU1NDM05FVkgwJyxcbn07XG5cbmV4cG9ydCBjb25zdCBSQVdfVFhfVU5TSUdORUQgPVxuICAnODA4MDAwMDAwMDA0MDAxNjQyNDdkNmYyYjQyNWFjNTc3MTQyM2FlNmM4MGM3NTRmNzE3MmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYjQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMzAyMDAwMDAwMDAwMDA1MWExYWUzZjkxMWQ4ZjFkNDZkNzQxNmJmYmU0YjU5M2ZkNDFlYWMxOWNiMDAwMDAwMDAwMDAwMDNlODAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcblxuZXhwb3J0IGNvbnN0IFNJR05FRF9UUkFOU0FDVElPTiA9XG4gICc4MDgwMDAwMDAwMDQwMDE2NDI0N2Q2ZjJiNDI1YWM1NzcxNDIzYWU2YzgwYzc1NGY3MTcyYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNDAwMDExYWUwNmMxNGM5NjdmOTk5MTg0ZWE4YTc5MTMxMjVmMDlhYjY0MDA0NDQ2ZmNhODk5NDBmMDkyNTA5MTI0YjllNzczYWVmNDgzZTkyNTQ3NmM3OGVjNTgxNjZkY2VjYWIzODc1YjhmYWI4ZTlhYTQyMTMxNzlkMTY0NDYzOTYyODAzMDIwMDAwMDAwMDAwMDUxYTFhZTNmOTExZDhmMWQ0NmQ3NDE2YmZiZTRiNTkzZmQ0MWVhYzE5Y2IwMDAwMDAwMDAwMDAwM2U4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnO1xuXG4vLyBUcmFuc2FjdGlvbnMgc2lnbiB3aXRoIDIgb2YgMyBrZXlzLlxuZXhwb3J0IGNvbnN0IFNJR05FRF9UUkFOU0FDVElPTl9QS18xXzMgPVxuICAnODA4MDAwMDAwMDA0MDEyZmU1MDdjMDlkYmIyM2MzYjdlNWQxNjZjODFmYzRiODc2OTI1MTBiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYjQwMDAwMDAwMzAyMDA5NDczYTM3YjkxNGY3MDNjODFmMzMxNDFkMTBlYWJlNDU1MGM0ZDYxZjExMzY2MmNjMTFjZGMwNDYzZmMzNzczNTg0MDhjNzNkM2QzMjczY2RiY2MzNTExZGJiZDIwMzFiNWVhY2E0Y2IyYjEzOTI1ZGE5ZjliMGM3ZTY0ZDFhNjAwMDI0YWJkZGQ2M2I1NmM1NWNkMWVkMDgwM2MyNmM0NzNmNWYwYjlkODQ3M2IzN2I2NWJkODEyZjAzNTM2NWYxNTRiMDIwMTZhYWMwMzQ3Yjg1MjBkODkwNWNiZDEzYzYwMWY0NWEwY2NiYmIyNDgzMTMyMGM1NGQ5ZWUyYzFlMzY1NmI3NmQ3NWUxYzUyNzkzMjI2N2Q4MGJlYjkwMjU3YmJlMmRjNzE4NGQ5YjE2ODk5M2FiM2E0MGZhNzNiZTY5NzNjNWY1MDAwMjAzMDIwMDAwMDAwMDAwMDUxYTFhZTNmOTExZDhmMWQ0NmQ3NDE2YmZiZTRiNTkzZmQ0MWVhYzE5Y2IwMDAwMDAwMDAwMDAwM2U4NzQ2NTczNzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnO1xuZXhwb3J0IGNvbnN0IFNJR05FRF9UUkFOU0FDVElPTl9QS18yXzMgPVxuICAnODA4MDAwMDAwMDA0MDEyZmU1MDdjMDlkYmIyM2MzYjdlNWQxNjZjODFmYzRiODc2OTI1MTBiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYjQwMDAwMDAwMzAwMDJiMDg3Y2E1MmY0MGZkZmRmNGIxNmEwYmJmN2U5MWU0ZGIyZTE4M2FjNWM2NDkxYTVmNjBhNTQ1MGUyNWRlN2QwMDIwMDA0MzZmOTA2ZDA0MDM4OGUzMTIzZWI5YzM3NjE0ZDdmMzlkYTJmMjgzMzg1Y2RhNDA5OTcyMTJhY2ZhNWIyNGQwMzJmYWM4Mjk5YWU5NTkwZmJkMjRkNjM5OGFjMWM0ODliNTIzYzQxOGQ4YzA2YjM1NDY3ZTY4NTE5OTg3Nzg2MDIwMWRiYTE2ZDA0MGYwYWYyZmE4ZDRiZjM4OGNiYzdmMGNkNzQ2M2FhNzA1OGM0OWY3ZTVkYjJkNzJkODY4ZDcxNjc1MjhjZDgzOTMzNjliOTQ0ODBmOWI3ZjhhMmM5MDg3Y2JkNTdkNGQxYTc4MmU1NTNmOWNlZGU2NjY0MmQxMmM5MDAwMjAzMDIwMDAwMDAwMDAwMDUxYTFhZTNmOTExZDhmMWQ0NmQ3NDE2YmZiZTRiNTkzZmQ0MWVhYzE5Y2IwMDAwMDAwMDAwMDAwM2U4NzQ2NTczNzQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnO1xuXG4vLyByaWdodCBsZW5ndGggYW5kIGZvcm1hdCwgYnV0IGludmFsaWRcbmV4cG9ydCBjb25zdCBpbnZhbGlkUHViS2V5MSA9ICcwMzIxZDZmNDJjOTlmN2QyM2VjMmMwZGMyMTIwODAwYzVlZGZjZTRlNWJjN2I2Mzk3MmU2OGU4NmUzY2VhNmY0MWEnO1xuZXhwb3J0IGNvbnN0IGludmFsaWRQdWJLZXkyID1cbiAgJzA0YTY4YzJkNmZkYjM3MDZiMzlmMzJkNmY0MjI1Mjc1Y2UwNjI1NjE5MDhmZDdjYTU0MGE0NGM5MmViODU5NGVhNmRiOWZjZmUwYjM5MGMwZWFkM2Y0NWMzNmFmZDY4MmVhYjYyZWIxMjRhNjNiNDYwOTQ1ZmUxZjdjN2Y4YTA5ZTEnO1xuXG4vLyBtdWx0aSBzaWdcbmV4cG9ydCBjb25zdCBwcnYxID0gJzIxZDQzZDJhZTBkYTFkOWQwNGNmY2FhYzdkMzk3YTMzNzMzODgxMDgxZjBiMmNkMDM4MDYyY2YwY2NiYjc1MjYwMSc7XG5leHBvcnQgY29uc3QgcHJ2MiA9ICdjNzE3MDBiMDdkNTIwYThjOTczMWU0ZDBmMDk1YWE2ZWZiOTFlMTZlMjVmYjI3Y2UyYjcyZTdiNjk4ZjgxMjdhMDEnO1xuZXhwb3J0IGNvbnN0IHBydjMgPSAnZTc1ZGNiNjZmODQyODdlYWYzNDc5NTVlOTRmYTA0MzM3Mjk4ZGJkOTVhYTBkYmI5ODU3NzExMDRlZjE5MTNkYjAxJztcbmV4cG9ydCBjb25zdCBwdWIxID0gJzAyYjA4N2NhNTJmNDBmZGZkZjRiMTZhMGJiZjdlOTFlNGRiMmUxODNhYzVjNjQ5MWE1ZjYwYTU0NTBlMjVkZTdkMCc7XG5leHBvcnQgY29uc3QgcHViMiA9ICcwMjRhYmRkZDYzYjU2YzU1Y2QxZWQwODAzYzI2YzQ3M2Y1ZjBiOWQ4NDczYjM3YjY1YmQ4MTJmMDM1MzY1ZjE1NGInO1xuZXhwb3J0IGNvbnN0IHB1YjMgPSAnMDM4ZTNjNDUyOTM5NTYxMWJlOWFiZjZmYTNiNjk4N2U4MWQ0MDIzODVlM2Q2MDVhMDczZjQyZjQwNzU2NWE0YTNkJztcbmV4cG9ydCBjb25zdCBNVUxUSV9TSUdfU0lHTkVEX1RSQU5TQUNUSU9OID1cbiAgJzgwODAwMDAwMDAwNDAxMmZlNTA3YzA5ZGJiMjNjM2I3ZTVkMTY2YzgxZmM0Yjg3NjkyNTEwYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDMwMjAxMjNkNmQzZDIyZDJjYTFiNzMxMGY1YzQ1MzE0ZDFlNzgzYzAzMTkzZTFiYjVlMDg2ODVmYzFhNDhmOGJkYWM3YzBkOTNhNDYzZWZlZTE4YjliNDFmZmZlMzhkNGI0Yzc0NzU4MDlhMzdjMGZkNTNmNTJjZWY0NTZhOGQ5MjgwZGIwMjAwMTBiMzExZjgyYjFiMTExZWI1ZWZhMTZjNDc5MDY4N2IxNmRjOTJiN2I0ZDA3YTFmMGYxZmU2NWJhZWU0M2ViMDJlZGUyMjZmODA3YTA5NzIzN2U3ZDBlZTNhYTRmZGY5YjYyODdkZDIzZDgxOWVjNTYwZGYxODA4NzVmNDAxOWEwMDAzOGUzYzQ1MjkzOTU2MTFiZTlhYmY2ZmEzYjY5ODdlODFkNDAyMzg1ZTNkNjA1YTA3M2Y0MmY0MDc1NjVhNGEzZDAwMDIwMzAyMDAwMDAwMDAwMDA1MWExYWUzZjkxMWQ4ZjFkNDZkNzQxNmJmYmU0YjU5M2ZkNDFlYWMxOWNiMDAwMDAwMDAwMDAwMDNlODc0NjU3Mzc0MjA2ZDY1NmQ2ZjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcblxuLy8gdjItZ2VuZXJhdGVkIChAc3RhY2tzL3RyYW5zYWN0aW9ucyAyLjAuMSkgMi1vZi0zIG11bHRpc2lnIHRyYW5zZmVyIGZyb20gVU5DT01QUkVTU0VEIHB1YmtleXMuXG5leHBvcnQgY29uc3QgVU5DT01QUkVTU0VEX01VTFRJU0lHX1VOU0lHTkVEX1RSQU5TRkVSID1cbiAgJzgwODAwMDAwMDAwNDAxY2I5N2IxZGZlMDBlZDYxMmMxOWI4MTMxY2Q4Njc4ZTUxZjE0NGU5NjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDMwMTAyYjA4N2NhNTJmNDBmZGZkZjRiMTZhMGJiZjdlOTFlNGRiMmUxODNhYzVjNjQ5MWE1ZjYwYTU0NTBlMjVkZTdkMDAxMDI0YWJkZGQ2M2I1NmM1NWNkMWVkMDgwM2MyNmM0NzNmNWYwYjlkODQ3M2IzN2I2NWJkODEyZjAzNTM2NWYxNTRiMDEwMzhlM2M0NTI5Mzk1NjExYmU5YWJmNmZhM2I2OTg3ZTgxZDQwMjM4NWUzZDYwNWEwNzNmNDJmNDA3NTY1YTRhM2QwMDAyMDMwMjAwMDAwMDAwMDAwNTFhMWFlM2Y5MTFkOGYxZDQ2ZDc0MTZiZmJlNGI1OTNmZDQxZWFjMTljYjAwMDAwMDAwMDAwMDAzZTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG5leHBvcnQgY29uc3QgVU5DT01QUkVTU0VEX01VTFRJU0lHX1NJR05FRF9UUkFOU0ZFUiA9XG4gICc4MDgwMDAwMDAwMDQwMWNiOTdiMWRmZTAwZWQ2MTJjMTliODEzMWNkODY3OGU1MWYxNDRlOTYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNDAwMDAwMDAzMDIwMWRmYmI2ZmIyZTZkMmQ3Mzg4MjU5MTA0YWI5ZjYyYjY1MTU3ZWZlZjdhNjhjZWRlMzhhZDVjMjU5MDhlNDkzYTUwYWFmZDUyNjIyZGJjYWNiOGViOTFjNTRmNzk4M2ZlZjk0NDMwZDg3OTliYTYxNGIxY2U2Y2Q5MTY3NjRlMGFkMDIwMTEzMGYwZTVkMmRmZDgwYjBiODMxMjZmZjQ2YTZhM2YwY2JjODNjZDgzZGUwMGIwNzViMzU3MmU2NzZmYTZlZmMyM2ZhZjAyYTExYjQwMTRjMmMwZGU2YjJhZGE1YjU5MTI0M2UyYTBhYjExOTIzYWYyZTY0YmQ3MjI0MmYwMmE0MDEwMzhlM2M0NTI5Mzk1NjExYmU5YWJmNmZhM2I2OTg3ZTgxZDQwMjM4NWUzZDYwNWEwNzNmNDJmNDA3NTY1YTRhM2QwMDAyMDMwMjAwMDAwMDAwMDAwNTFhMWFlM2Y5MTFkOGYxZDQ2ZDc0MTZiZmJlNGI1OTNmZDQxZWFjMTljYjAwMDAwMDAwMDAwMDAzZTgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG5cbi8vIGNvbnRyYWN0IGNhbGxcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9BRERSRVNTID0gJ1NUMDAwMDAwMDAwMDAwMDAwMDAwMDAyQU1XNDJIJztcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9OQU1FID0gJ3BveC00JztcbmV4cG9ydCBjb25zdCBDT05UUkFDVF9GVU5DVElPTl9OQU1FID0gJ3N0YWNrLXN0eCc7XG5leHBvcnQgY29uc3QgVU5TSUdORURfU0VMRl9TVEFDS19DT05UUkFDVF9DQUxMID1cbiAgJzgwODAwMDAwMDAwNDAwMTY0MjQ3ZDZmMmI0MjVhYzU3NzE0MjNhZTZjODBjNzU0ZjcxNzJiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwMjAwMDAwMDAwMDIxYTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTcwNmY3ODJkMzQwOTczNzQ2MTYzNmIyZDczNzQ3ODAwMDAwMDA4MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxN2Q3ODQwMDBjMDAwMDAwMDIwOTY4NjE3MzY4NjI3OTc0NjU3MzAyMDAwMDAwMDk3MzZmNmQ2NTJkNjg2MTczNjgwNzc2NjU3MjczNjk2ZjZlMDIwMDAwMDAwMTAxMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwY2U0MDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDIwYTAyMDAwMDAwMDk3MzZmNmQ2NTJkNjg2MTczNjgwMjAwMDAwMDA5NzM2ZjZkNjUyZDY4NjE3MzY4MDFmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMWUyNDAnO1xuZXhwb3J0IGNvbnN0IFNJR05FRF9TRUxGX1NUQUNLX0NPTlRSQUNUX0NBTEwgPVxuICAnODA4MDAwMDAwMDA0MDAxNjQyNDdkNmYyYjQyNWFjNTc3MTQyM2FlNmM4MGM3NTRmNzE3MmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYjQwMDAxODMzZGI3OWNkOWMzOWM3MjYyYjgwOGI2ZWE4MGEwMDFhOWJkMjkwNjQ4Y2YzYTE5ZGE5NWYxMGQxODE0ZDY5NDM3YTAwMDc1ZTgzMjVlZjU2NGVkOWQ2NjkwYzU3NTU4M2JjYmIyOWM0ZTMzYzhjZTgwYzM0ZTdlZmQxZjU0NTcwMzAyMDAwMDAwMDAwMjFhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NzA2Zjc4MmQzNDA5NzM3NDYxNjM2YjJkNzM3NDc4MDAwMDAwMDgwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDE3ZDc4NDAwMGMwMDAwMDAwMjA5Njg2MTczNjg2Mjc5NzQ2NTczMDIwMDAwMDAwOTczNmY2ZDY1MmQ2ODYxNzM2ODA3NzY2NTcyNzM2OTZmNmUwMjAwMDAwMDAxMDEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBjZTQwMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjBhMDIwMDAwMDAwOTczNmY2ZDY1MmQ2ODYxNzM2ODAyMDAwMDAwMDk3MzZmNmQ2NTJkNjg2MTczNjgwMWZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxZTI0MCc7XG5cbmV4cG9ydCBjb25zdCBVTlNJR05FRF9DT05UUkFDVF9DQUxMID1cbiAgJzgwODAwMDAwMDAwNDAwMTY0MjQ3ZDZmMmI0MjVhYzU3NzE0MjNhZTZjODBjNzU0ZjcxNzJiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDMwMjAwMDAwMDAwMDIxYTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNTcwNmY3ODJkMzQwOTczNzQ2MTYzNmIyZDczNzQ3ODAwMDAwMDA0MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxN2Q3ODQwMDA1MTYzMjQ4ZTdhYTY4Nzk5NjhkMjQxZjNlNTE1MmQ5ZjI3OTY5OTRkOTZjMGEwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGM4MGEwYzAwMDAwMDAyMDk2ODYxNzM2ODYyNzk3NDY1NzMwMjAwMDAwMDA5NzM2ZjZkNjUyZDY4NjE3MzY4MDc3NjY1NzI3MzY5NmY2ZTAyMDAwMDAwMDEwMSc7XG5leHBvcnQgY29uc3QgU0lHTkVEX0NPTlRSQUNUX1dJVEhfQVJHUyA9XG4gICc4MDgwMDAwMDAwMDQwMDE2NDI0N2Q2ZjJiNDI1YWM1NzcxNDIzYWU2YzgwYzc1NGY3MTcyYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNDAwMDBkYmE0ZDc3NWQ2ODk0NzQ2ZjBiOGZmM2NiYzFiMGYyNjk2ODkwZDA2NjlmZmJiOGViOGRmNTEwOTg3NDExMTVlMjhhZjQ0OGE1OTU4M2UzZDM0ZTM0NGMzNDg3OWM1YzdhODJkMjIzODMzYzEyMTRkMTNjZDk4MTMxNjVkOGUxZTAzMDIwMDAwMDAwMDAyMWEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDU3MDZmNzgyZDM0MDk3Mzc0NjE2MzZiMmQ3Mzc0NzgwMDAwMDAwNDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTdkNzg0MDAwNTE2MzI0OGU3YWE2ODc5OTY4ZDI0MWYzZTUxNTJkOWYyNzk2OTk0ZDk2YzA5MGEwYzAwMDAwMDAyMDk2ODYxNzM2ODYyNzk3NDY1NzMwMjAwMDAwMDA5NzM2ZjZkNjUyZDY4NjE3MzY4MDc3NjY1NzI3MzY5NmY2ZTAyMDAwMDAwMDEwMSc7XG5leHBvcnQgY29uc3QgU0lHTkVEX0NPTlRSQUNUX0NBTEwgPVxuICAnODA4MDAwMDAwMDA0MDAxNjQyNDdkNmYyYjQyNWFjNTc3MTQyM2FlNmM4MGM3NTRmNzE3MmIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwYjQwMDAxYjY5M2JkZjAxNGMxYWM3OGUzMDdmZWQ0OWJjMWRmOGZlZDJhNWU0MmQ0Yjc5OTkzZjVkZjYyNmQ3YjFiMjUxNjc0MTQ5NTE5OGEzZGJmMDc5ZGVlYmM0NmVjZGQ1MzVmZTY2ZjUxOGMwYTY5NWM1MzNmMTY2NzQ1NWEwNTAzNmEwMzAyMDAwMDAwMDAwMjFhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NzA2Zjc4MmQzNDA5NzM3NDYxNjM2YjJkNzM3NDc4MDAwMDAwMDEwYTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2InO1xuZXhwb3J0IGNvbnN0IE1VTFRJX1NJR19DT05UUkFDVF9DQUxMID1cbiAgJzgwODAwMDAwMDAwNDAxMmZlNTA3YzA5ZGJiMjNjM2I3ZTVkMTY2YzgxZmM0Yjg3NjkyNTEwYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDMwMjAxNjlhMDMyMTEyMzczYjQ4MWM0OGVjYjEyYjg4NDc1MTlmODk3MjBkNDI5N2E3YmY1Y2FjNDNiOWRhYThkNGFkMjNkZDUzNjU3MDg5ZGFkNTVjOTRlOGJlNTc2MmU5NzA1MjY4M2Y0OWUxZjQ1N2IyZTkyNTJmMjdlOTc1NjAzMjMwMjAwMTI4ZDBiYTJiOTU4NDMzOTM1OWZmNDJjMWQ2ZjM1Y2U3OWE3MDczMTUyYjNjOTA4NzliYzUxNjJlYjhkZjczYjAyZWFkYTNlZTMyMjg3M2E1ZmE3MzY0NzllNmM1MzYxMDk2ODE0ODJkOWYyMmYxZTFhODk2MDgwOTBiODY2NjgwMDAzOGUzYzQ1MjkzOTU2MTFiZTlhYmY2ZmEzYjY5ODdlODFkNDAyMzg1ZTNkNjA1YTA3M2Y0MmY0MDc1NjVhNGEzZDAwMDIwMzAyMDAwMDAwMDAwMjFhMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1NzA2Zjc4MmQzNDA5NzM3NDYxNjM2YjJkNzM3NDc4MDAwMDAwMDEwYTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwN2InO1xuXG4vLyBjb250cmFjdCBjYWxsIHdpdGggbWVtbyBub25jZSA0NW4sXG5leHBvcnQgY29uc3QgU0VORF9NQU5ZX0NPTlRSQUNUX0FERFJFU1NfV0lUSF9NRU1PID0gJ1NUM0YxWDRRR1YyU004WEQ5Nlg0NU02UlRRWEtBMVBaSlpaQ1FBQjRCJztcbmV4cG9ydCBjb25zdCBTRU5EX01BTllfQ09OVFJBQ1RfTkFNRV9XSVRIX01FTU8gPSAnc2VuZC1tYW55LW1lbW8nO1xuZXhwb3J0IGNvbnN0IFNFTkRfTUFOWV9DT05UUkFDVF9GVU5DVElPTl9OQU1FX1dJVEhfTUVNTyA9ICdzZW5kLW1hbnknO1xuZXhwb3J0IGNvbnN0IFVOU0lHTkVEX1NFTkRfTUFOWV9XSVRIX01FTU8gPVxuICAnODA4MDAwMDAwMDA0MDFlN2E0Yjc3NDRlOTlhNTQ3NjBjYTc2ZTU0ZjRkODFlNGI2MDI2MjM3MDAwMDAwMDAwMDAwMDAyZDAwMDAwMDAwMDAwMDAyMTQwMDAwMDAwMzAwMDI0YjVkOTI0ZWNjMDUyZjk1MTUzMzQwMDU0Y2FlNTI2ZDE2ZTkwNDI4OGUxOWUxOTQ2ZTE5NzczODdmNjgyOGM5MDAwMjk0ZWFiOTk1ODQ0YTMzNGY0YjdkOTQ2NTAwYTRlNzk0ZjVmNWY2ZTg3ZjliMjY3MTc1NDA4YzAzZTI4MDY0MGQwMDAyYjdiYTNlMTdlMzE0OTZiYmYxNTU1OTZkYzNmMmEwMmRlNDU3Y2ZmZWFkMDE3ZjY3MWY2NWQ5ZDM0YWIyNjFlYTAwMDIwMzAyMDAwMDAwMDEwMDAyMTVlN2E0Yjc3NDRlOTlhNTQ3NjBjYTc2ZTU0ZjRkODFlNGI2MDI2MjM3MDEwMDAwMDAwMDAwNWI4ZDgwMDIxYWRlMWU5MmYwZDhiMzQ0NzVhOTM3NDg1YTFiMWFiZjY2YTBkYmYyZmYwZTczNjU2ZTY0MmQ2ZDYxNmU3OTJkNmQ2NTZkNmYwOTczNjU2ZTY0MmQ2ZDYxNmU3OTAwMDAwMDAxMGIwMDAwMDAwMzBjMDAwMDAwMDMwNDZkNjU2ZDZmMDIwMDAwMDAwNjZkNjU2ZDZmMjAzMTAyNzQ2ZjA1MTVhNGIwODIzYTk5ZmM1ZTg3YjhiZDJlN2U3YzE4OTkxNTM1NWUxYzBhMDQ3NTczNzQ3ODAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZjQyNDAwYzAwMDAwMDAzMDQ2ZDY1NmQ2ZjAyMDAwMDAwMDY2ZDY1NmQ2ZjIwMzIwMjc0NmYwNTE1OWZjYWUzYWViZGQ5MTc3Y2EwYzIyMTRjZjBjNWM2YTk2Mzk4YTliODA0NzU3Mzc0NzgwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMWU4NDgwMGMwMDAwMDAwMzA0NmQ2NTZkNmYwMjAwMDAwMDA2NmQ2NTZkNmYyMDMzMDI3NDZmMDUxNTE4MmQ1YzNiNmQ2NzM3NjYyNjU5N2VlODNmYmE2MmIzOTJhMTViZWIwNDc1NzM3NDc4MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDJkYzZjMCc7XG5leHBvcnQgY29uc3QgU0lHTkVEX1NFTkRfTUFOWV9XSVRIX01FTU8gPVxuICAnODA4MDAwMDAwMDA0MDFlN2E0Yjc3NDRlOTlhNTQ3NjBjYTc2ZTU0ZjRkODFlNGI2MDI2MjM3MDAwMDAwMDAwMDAwMDAyZDAwMDAwMDAwMDAwMDAyMTQwMDAwMDAwMzAyMDBlNjkyY2IyMTNiY2UwMzVlMzhkNWZhMzFkZjU0YTMwMzliM2QyNGFmMDVmNjZjMDQ2OTY0NjE1YWNiNzM5NjcwMzY4ZjQyNGFmMWM2MGMwOTYxYWY1Zjk3NmI0NmM2YWQxNTkzYjY4NTRmM2Q5M2IwN2MzNjFhN2VmMzQ4NDU2NTAyMDE3YjljZGVkZWIzZmQ5MmZlNDkwMTlmNGUzMTAwNTJlODVhNGMzYmI0NmMwZWU4OWRiNjVmN2M3ZTczNTkyZTdiNjBhOWMxMjdmYmJiMTI1YTEyNGJhYTNlZmIwZGQ2Nzk4NzljNzBjNGE2Y2E1NWYzYWZhY2VkYjE1NjVkZGU2YzAwMDJiN2JhM2UxN2UzMTQ5NmJiZjE1NTU5NmRjM2YyYTAyZGU0NTdjZmZlYWQwMTdmNjcxZjY1ZDlkMzRhYjI2MWVhMDAwMjAzMDIwMDAwMDAwMTAwMDIxNWU3YTRiNzc0NGU5OWE1NDc2MGNhNzZlNTRmNGQ4MWU0YjYwMjYyMzcwMTAwMDAwMDAwMDA1YjhkODAwMjFhZGUxZTkyZjBkOGIzNDQ3NWE5Mzc0ODVhMWIxYWJmNjZhMGRiZjJmZjBlNzM2NTZlNjQyZDZkNjE2ZTc5MmQ2ZDY1NmQ2ZjA5NzM2NTZlNjQyZDZkNjE2ZTc5MDAwMDAwMDEwYjAwMDAwMDAzMGMwMDAwMDAwMzA0NmQ2NTZkNmYwMjAwMDAwMDA2NmQ2NTZkNmYyMDMxMDI3NDZmMDUxNWE0YjA4MjNhOTlmYzVlODdiOGJkMmU3ZTdjMTg5OTE1MzU1ZTFjMGEwNDc1NzM3NDc4MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBmNDI0MDBjMDAwMDAwMDMwNDZkNjU2ZDZmMDIwMDAwMDAwNjZkNjU2ZDZmMjAzMjAyNzQ2ZjA1MTU5ZmNhZTNhZWJkZDkxNzdjYTBjMjIxNGNmMGM1YzZhOTYzOThhOWI4MDQ3NTczNzQ3ODAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxZTg0ODAwYzAwMDAwMDAzMDQ2ZDY1NmQ2ZjAyMDAwMDAwMDY2ZDY1NmQ2ZjIwMzMwMjc0NmYwNTE1MTgyZDVjM2I2ZDY3Mzc2NjI2NTk3ZWU4M2ZiYTYyYjM5MmExNWJlYjA0NzU3Mzc0NzgwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMmRjNmMwJztcblxuZXhwb3J0IGNvbnN0IHBydktleXNTdHJpbmcgPSBbXG4gICdlNTU4ODNkNTMzMzVjZGYwZmU0YzUwNTA1MTM4MmIyZjdjYjk1MjE2NjYzZTQwODBlYmJjYWE3NGJjY2E5NzUwMDEnLFxuICAnMDk3MWIyYmExOTNmZDM5M2E0YzM5ZWZjY2MzZDYzYmFmZjVkNDk4NTAwYWNmYzk3Yzg3NjU1MzE2NTIyNzQyNDAxJyxcbiAgJzA0MWM4YjRiYTgyNTA4NTVhNGEzY2Q0ZDliMjhlNDU2MmM5ZjRhZWU5N2Y3OTQ0MmJiOWZmMmNmZjY4NDUyMjAwMScsXG5dO1xuXG5leHBvcnQgY29uc3Qgc2VuZE1hbnlSZWNpcGllbnRzID0gW1xuICB7XG4gICAgYWRkcmVzczogJ1NOMkpCMTBIVEs3WTVYMVhSUU1RN1daMFJLNEFLQVFHVzFBNzU1WVlUJyxcbiAgICBhbW91bnQ6ICcxMDAwMDAwJyxcbiAgICBtZW1vOiAnbWVtbyAxJyxcbiAgfSxcbiAge1xuICAgIGFkZHJlc3M6ICdTTjJGV05SWEVRUUNIRVo1MFI4R01TVzY1UlRNUDc2NTlRMk1ZWTlQNCcsXG4gICAgYW1vdW50OiAnMjAwMDAwMCcsXG4gICAgbWVtbzogJ21lbW8gMicsXG4gIH0sXG4gIHtcbiAgICBhZGRyZXNzOiAnU05DMlRRMVZETktLRVNINkI1WkVHRlhUQ0FTUzU4QVZYREFDOUg3VycsXG4gICAgYW1vdW50OiAnMzAwMDAwMCcsXG4gICAgbWVtbzogJ21lbW8gMycsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgTUVNTyA9ICdtZW1vIDEnO1xuXG5leHBvcnQgY29uc3QgRlVOR0lCTEVfVE9LRU5fVFJBTlNGRVJfQ09OU1RBTlRTID0ge1xuICBDT05UUkFDVF9BRERSRVNTOiAnU1RBRzE4RTQ1VzYxM0ZaM0g0Wk1GNlFISDQyNkVYTTVRVFNBVldZSCcsXG4gIENPTlRSQUNUX05BTUU6ICd0c2lwNmRwLXRva2VuJyxcbiAgRlVOQ1RJT05fTkFNRTogJ3RyYW5zZmVyJyxcbiAgU0VOREVSX0FERFJFU1M6ICdTVEFHMThFNDVXNjEzRlozSDRaTUY2UUhINDI2RVhNNVFUU0FWV1lIJyxcbiAgUkVDRUlWRVJfQUREUkVTUzogJ1NOMk5OMUpQOUFFUDVCVkUxOVJOSjZUMk1QN05ER1JaWVNUMVZERjNNJyxcbiAgVE9LRU5fTkFNRTogJ3RzaXA2ZHAtdG9rZW4nLFxuICBVTlNJR05FRF9TSU5HTEVfU0lHX1RYOlxuICAgICc4MDgwMDAwMDAwMDQwMDE2NDI0N2Q2ZjJiNDI1YWM1NzcxNDIzYWU2YzgwYzc1NGY3MTcyYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMDIwMDAwMDAwMTAxMDIxNTE2NDI0N2Q2ZjJiNDI1YWM1NzcxNDIzYWU2YzgwYzc1NGY3MTcyYjAxYTE1MDBhMWM0MmYwYzExYmZlMzg5M2Y0NzlhZjE4OTA0Njc3Njg1YmUwZDc0NzM2OTcwMzY2NDcwMmQ3NDZmNmI2NTZlMGQ3NDczNjk3MDM2NjQ3MDJkNzQ2ZjZiNjU2ZTAxMDAwMDAwMDAwMDAwMjcxMDAyMWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMGQ3NDczNjk3MDM2NjQ3MDJkNzQ2ZjZiNjU2ZTA4NzQ3MjYxNmU3MzY2NjU3MjAwMDAwMDA0MDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcxMDA1MWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMDUxNWFiNTBjYWM5NTNhYzU1ZWRjMTRlMmIyMzY4NTRiMWVhZDg2M2ZlY2UwYTAyMDAwMDAwMDEzMScsXG4gIFVOU0lHTkVEX1NJTkdMRV9TSUdfVFhfV0lUSE9VVF9NRU1POlxuICAgICc4MDgwMDAwMDAwMDQwMDE2NDI0N2Q2ZjJiNDI1YWM1NzcxNDIzYWU2YzgwYzc1NGY3MTcyYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAzMDIwMDAwMDAwMTAxMDIxNTE2NDI0N2Q2ZjJiNDI1YWM1NzcxNDIzYWU2YzgwYzc1NGY3MTcyYjAxYTE1MDBhMWM0MmYwYzExYmZlMzg5M2Y0NzlhZjE4OTA0Njc3Njg1YmUwZDc0NzM2OTcwMzY2NDcwMmQ3NDZmNmI2NTZlMGQ3NDczNjk3MDM2NjQ3MDJkNzQ2ZjZiNjU2ZTAxMDAwMDAwMDAwMDAwMjcxMDAyMWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMGQ3NDczNjk3MDM2NjQ3MDJkNzQ2ZjZiNjU2ZTA4NzQ3MjYxNmU3MzY2NjU3MjAwMDAwMDAzMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjcxMDA1MWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMDUxNWFiNTBjYWM5NTNhYzU1ZWRjMTRlMmIyMzY4NTRiMWVhZDg2M2ZlY2UnLFxuICBTSUdORURfTVVMVElfU0lHX1RYOlxuICAgICc4MDgwMDAwMDAwMDQwMTJmZTUwN2MwOWRiYjIzYzNiN2U1ZDE2NmM4MWZjNGI4NzY5MjUxMGIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBiNDAwMDAwMDAzMDIwMWU0Yzk4ZDc2ODdlYWI1ZjExZDAzZmViYzk2OTUxMzAxZWVkZTMzNjA4OGIwNmM1YTY3NmNjNjA5M2Y3MGUxNmIzZjM1MzNjY2Q4ZTZmOTIzOTBhMTdkY2M5MTdmNGU4Mjg2NTdmMTc2MDU1NzRhNWZjYmIzZGE1OWYyNTQ4M2RjMDIwMTkwOTVjMmY1MjE3ZTBmMTY4ZjI3YjYwNWI0N2U5ZWFjMmRhM2M1ZWEzMDljNDJhMjY3N2FkZGZiNjdjMWZkNDcxZWYyMDE4N2NlNmI4NWI1YjU0MWQ0YjRmMDBkMmY4ZWE4ZjdkNDJiZTg0MzI3OTY4Y2I5NDExNzMwYjUyMTdhMDAwMzhlM2M0NTI5Mzk1NjExYmU5YWJmNmZhM2I2OTg3ZTgxZDQwMjM4NWUzZDYwNWEwNzNmNDJmNDA3NTY1YTRhM2QwMDAyMDMwMjAwMDAwMDAxMDEwMjE1MmZlNTA3YzA5ZGJiMjNjM2I3ZTVkMTY2YzgxZmM0Yjg3NjkyNTEwYjFhMTUwMGExYzQyZjBjMTFiZmUzODkzZjQ3OWFmMTg5MDQ2Nzc2ODViZTBkNzQ3MzY5NzAzNjY0NzAyZDc0NmY2YjY1NmUwZDc0NzM2OTcwMzY2NDcwMmQ3NDZmNmI2NTZlMDEwMDAwMDAwMDAwMDAyNzEwMDIxYTE1MDBhMWM0MmYwYzExYmZlMzg5M2Y0NzlhZjE4OTA0Njc3Njg1YmUwZDc0NzM2OTcwMzY2NDcwMmQ3NDZmNmI2NTZlMDg3NDcyNjE2ZTczNjY2NTcyMDAwMDAwMDQwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyNzEwMDUxYTE1MDBhMWM0MmYwYzExYmZlMzg5M2Y0NzlhZjE4OTA0Njc3Njg1YmUwNTE1YWI1MGNhYzk1M2FjNTVlZGMxNGUyYjIzNjg1NGIxZWFkODYzZmVjZTBhMDIwMDAwMDAwMTMxJyxcbiAgU0lHTkVEX01VTFRJX1NJR19UWF9XSVRIT1VUX01FTU86XG4gICAgJzgwODAwMDAwMDAwNDAxMmZlNTA3YzA5ZGJiMjNjM2I3ZTVkMTY2YzgxZmM0Yjg3NjkyNTEwYjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGI0MDAwMDAwMDMwMjAwZDEyYTgwZjY3Y2RhYzcyYWQxMTYwNzVlODY4NDY5ODZhMDE1YTYwYmY1NDE4NTVlYTE3ZGRjNzk2MjBiNjc5YjBkNzVlNTIzY2JjNzYzODk2OWFkZGViMDQ3ZTczZWQxMWIzOThhODk0YjJmZDQ0NTk2MjNhZmIyZmMxMDQ2MWIwMjAwN2UwMWYyOGY5YWM1YjliYzMyZjNkZTgyNmY2OWFhYmNjNmIzNTdmYWE1MGQ5ODA4N2ZmMTI3MTRlYjNkMzUxZTUxNTQ4MmFmZjc4NGI1NGFiNTcyY2U2Zjg2YzFmNDBjNzFiMjFmZDE5N2U4NDZmYjM4ODcxOGY1NWYxN2Q0ZDMwMDAzOGUzYzQ1MjkzOTU2MTFiZTlhYmY2ZmEzYjY5ODdlODFkNDAyMzg1ZTNkNjA1YTA3M2Y0MmY0MDc1NjVhNGEzZDAwMDIwMzAyMDAwMDAwMDEwMTAyMTUyZmU1MDdjMDlkYmIyM2MzYjdlNWQxNjZjODFmYzRiODc2OTI1MTBiMWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMGQ3NDczNjk3MDM2NjQ3MDJkNzQ2ZjZiNjU2ZTBkNzQ3MzY5NzAzNjY0NzAyZDc0NmY2YjY1NmUwMTAwMDAwMDAwMDAwMDI3MTAwMjFhMTUwMGExYzQyZjBjMTFiZmUzODkzZjQ3OWFmMTg5MDQ2Nzc2ODViZTBkNzQ3MzY5NzAzNjY0NzAyZDc0NmY2YjY1NmUwODc0NzI2MTZlNzM2NjY1NzIwMDAwMDAwNDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI3MTAwNTFhMTUwMGExYzQyZjBjMTFiZmUzODkzZjQ3OWFmMTg5MDQ2Nzc2ODViZTA1MTVhYjUwY2FjOTUzYWM1NWVkYzE0ZTJiMjM2ODU0YjFlYWQ4NjNmZWNlMDknLFxufTtcbiJdfQ==
@@ -38,9 +38,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  const lodash_1 = __importDefault(require("lodash"));
40
40
  const nock_1 = __importDefault(require("nock"));
41
+ const should_1 = __importDefault(require("should"));
41
42
  const sdk_api_1 = require("@bitgo/sdk-api");
42
43
  const sdk_test_1 = require("@bitgo/sdk-test");
43
44
  const sdk_core_1 = require("@bitgo/sdk-core");
45
+ const statics_1 = require("@bitgo/statics");
44
46
  const src_1 = require("../../src");
45
47
  const testData = __importStar(require("../fixtures"));
46
48
  const assert_1 = __importDefault(require("assert"));
@@ -293,6 +295,32 @@ describe('Sip10Token:', function () {
293
295
  response.should.have.property('txHex');
294
296
  assert_1.default.deepEqual(response.txHex, testData.HOT_WALLET_TOKEN_RECOVERY_TX_HEX, 'tx hex not matching!');
295
297
  });
298
+ it('should build a signed token recover transaction to a destination with a memo id', async () => {
299
+ const rootAddress = testData.HOT_WALLET_ROOT_ADDRESS;
300
+ (0, nock_1.default)('https://api.testnet.hiro.so')
301
+ .get(`/extended/v2/addresses/${rootAddress}/balances/stx`)
302
+ .reply(200, testData.ACCOUNT_BALANCE_RESPONSE);
303
+ (0, nock_1.default)('https://api.testnet.hiro.so')
304
+ .get(`/extended/v2/addresses/${rootAddress}/balances/ft/${testData.STX_TOKEN_ASSET_ID}`)
305
+ .reply(200, testData.TOKEN_BALANCE_RESPONSE);
306
+ (0, nock_1.default)('https://api.testnet.hiro.so')
307
+ .get(`/extended/v1/address/${rootAddress}/nonces`)
308
+ .reply(200, testData.ACCOUNT_NONCE_RESPONSE);
309
+ (0, nock_1.default)('https://api.testnet.hiro.so', { allowUnmocked: true })
310
+ .post(`/v2/fees/transaction`)
311
+ .reply(200, testData.FEE_ESTIMATION_TOKEN_RESPONSE);
312
+ const recoveryOptions = {
313
+ backupKey: testData.HOT_WALLET_KEY_CARD_INFO.BACKUP_KEY,
314
+ userKey: testData.HOT_WALLET_KEY_CARD_INFO.USER_KEY,
315
+ rootAddress: rootAddress,
316
+ recoveryDestination: `${testData.DESTINATION_ADDRESS_WRW}?memoId=8`,
317
+ bitgoKey: testData.HOT_WALLET_KEY_CARD_INFO.BITGO_PUB_KEY,
318
+ walletPassphrase: testData.HOT_WALLET_KEY_CARD_INFO.WALLET_PASSPHRASE,
319
+ contractId: 'STAG18E45W613FZ3H4ZMF6QHH426EXM5QTSAVWYH.tsip6dp-token',
320
+ };
321
+ const response = (await basecoin.recover(recoveryOptions));
322
+ should_1.default.exist(response.txHex);
323
+ });
296
324
  it('should build an unsigned token transaction when public keys are passed', async () => {
297
325
  const rootAddress = testData.COLD_WALLET_ROOT_ADDRESS;
298
326
  (0, nock_1.default)(`https://api.testnet.hiro.so`)
@@ -370,5 +398,23 @@ describe('Sip10Token:', function () {
370
398
  .should.rejectedWith('invalid contract id, please provide it in the form (contractAddress.contractName)');
371
399
  });
372
400
  });
401
+ describe('Sip10 token metadata', function () {
402
+ it('exposes the configured token properties', function () {
403
+ const config = basecoin.tokenConfig;
404
+ basecoin.name.should.equal(config.name);
405
+ basecoin.coin.should.equal(config.coin);
406
+ basecoin.network.should.equal(config.network);
407
+ basecoin.assetId.should.equal(config.assetId);
408
+ basecoin.decimalPlaces.should.equal(config.decimalPlaces);
409
+ basecoin.getChain().should.equal(config.type);
410
+ basecoin.getBaseChain().should.equal(config.coin);
411
+ basecoin.getFullName().should.equal('Sip10 Token');
412
+ basecoin.getBaseFactor().should.equal(Math.pow(10, config.decimalPlaces));
413
+ });
414
+ it('returns a fungible token transfer builder from getTransaction', function () {
415
+ const builder = basecoin.getTransaction(statics_1.coins.get(basecoin.getChain()));
416
+ should_1.default.exist(builder);
417
+ });
418
+ });
373
419
  });
374
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lwMTBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9zaXAxMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXVCO0FBQ3ZCLGdEQUF3QjtBQUN4Qiw0Q0FBMEM7QUFDMUMsOENBQTBEO0FBQzFELDhDQUFzRTtBQUV0RSxtQ0FBdUM7QUFDdkMsc0RBQXdDO0FBRXhDLG9EQUE0QjtBQUU1QixRQUFRLENBQUMsYUFBYSxFQUFFO0lBQ3RCLE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN0QyxJQUFJLEtBQW1CLENBQUM7SUFDeEIsSUFBSSxRQUFvQixDQUFDO0lBQ3pCLElBQUksYUFBdUUsQ0FBQztJQUM1RSxJQUFJLFdBQXVFLENBQUM7SUFDNUUsSUFBSSxNQUFjLENBQUM7SUFFbkIsTUFBTSxVQUFVLEdBQUc7UUFDakIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxpQ0FBaUM7UUFDakQsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUc7UUFDZixVQUFVLEVBQUUsUUFBUSxDQUFDLFVBQVU7S0FDaEMsQ0FBQztJQUVGLE1BQU0sSUFBSSxHQUFHO1FBQ1gsSUFBSSxFQUFFLEVBQUU7UUFDUixLQUFLLEVBQUUsR0FBRztLQUNYLENBQUM7SUFFRixNQUFNLENBQUM7UUFDTCxLQUFLLEdBQUcsb0JBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQVEsRUFBRTtZQUNuQyxHQUFHLEVBQUUsTUFBTTtTQUNaLENBQUMsQ0FBQztRQUNILEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNCLGdCQUFVLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1lBQ3pFLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLGVBQWUs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UUFBUSxFQUFFLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhO2dCQUN6RCxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCO2dCQUNyRSxVQUFVLEVBQUUsd0RBQXdEO2FBQ3JFLENBQUM7WUFDRixNQUFNLFFBQVEsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO1FBQy9HLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGtEQUFrRCxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2hFLE1BQU0sZUFBZSxHQUFvQjtnQkFDdkMsU0FBUyxFQUFFLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVO2dCQUN2RCxPQUFPLEVBQUUsUUFBUSxDQUFDLHdCQUF3QixDQUFDLFFBQVE7Z0JBQ25ELFdBQVcsRUFBRSxRQUFRLENBQUMsdUJBQXVCO2dCQUM3QyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsdUJBQXVCO2dCQUNyRCxRQUFRLEVBQUUsUUFBUSxDQUFDLHdCQUF3QixDQUFDLGFBQWE7Z0JBQ3pELGdCQUFnQixFQUFFLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUI7Z0JBQ3JFLFVBQVUsRUFBRSwwQ0FBMEM7YUFDdkQsQ0FBQztZQUNGLE1BQU0sUUFBUTtpQkFDWCxPQUFPLENBQUMsZUFBZSxDQUFDO2lCQUN4QixNQUFNLENBQUMsWUFBWSxDQUFDLG1GQUFtRixDQUFDLENBQUM7UUFDOUcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBub2NrIGZyb20gJ25vY2snO1xuaW1wb3J0IHsgQml0R29BUEkgfSBmcm9tICdAYml0Z28vc2RrLWFwaSc7XG5pbXBvcnQgeyBUZXN0Qml0R28sIFRlc3RCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby9zZGstdGVzdCc7XG5pbXBvcnQgeyBJVHJhbnNhY3Rpb25SZWNpcGllbnQsIFdhbGxldCwgTWVtbyB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5cbmltcG9ydCB7IFNpcDEwVG9rZW4gfSBmcm9tICcuLi8uLi9zcmMnO1xuaW1wb3J0ICogYXMgdGVzdERhdGEgZnJvbSAnLi4vZml4dHVyZXMnO1xuaW1wb3J0IHsgUmVjb3ZlcnlJbmZvLCBSZWNvdmVyeU9wdGlvbnMsIFJlY292ZXJ5VHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9zcmMvbGliL2lmYWNlJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuZGVzY3JpYmUoJ1NpcDEwVG9rZW46JywgZnVuY3Rpb24gKCkge1xuICBjb25zdCBzaXAxMFRva2VuTmFtZSA9ICd0c3R4OnRzaXA2ZHAnO1xuICBsZXQgYml0Z286IFRlc3RCaXRHb0FQSTtcbiAgbGV0IGJhc2Vjb2luOiBTaXAxMFRva2VuO1xuICBsZXQgbmV3VHhQcmVidWlsZDogKCkgPT4geyB0eEhleDogc3RyaW5nOyB0eEluZm86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IH07XG4gIGxldCBuZXdUeFBhcmFtczogKCkgPT4geyByZWNpcGllbnRzOiBJVHJhbnNhY3Rpb25SZWNpcGllbnRbXTsgbWVtbz86IE1lbW8gfTtcbiAgbGV0IHdhbGxldDogV2FsbGV0O1xuXG4gIGNvbnN0IHR4UHJlQnVpbGQgPSB7XG4gICAgdHhIZXg6IHRlc3REYXRhLnR4Rm9yRXhwbGFpbkZ1bmdpYmxlVG9rZW5UcmFuc2ZlcixcbiAgICB0eEluZm86IHt9LFxuICB9O1xuXG4gIGNvbnN0IHR4UGFyYW1zID0ge1xuICAgIHJlY2lwaWVudHM6IHRlc3REYXRhLnJlY2lwaWVudHMsXG4gIH07XG5cbiAgY29uc3QgbWVtbyA9IHtcbiAgICB0eXBlOiAnJyxcbiAgICB2YWx1ZTogJzEnLFxuICB9O1xuXG4gIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHtcbiAgICAgIGVudjogJ21vY2snLFxuICAgIH0pO1xuICAgIGJpdGdvLmluaXRpYWxpemVUZXN0VmFycygpO1xuICAgIFNpcDEwVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgICBiaXRnby5zYWZlUmVnaXN0ZXIobmFtZSwgY29pbkNvbnN0cnVjdG9yKTtcbiAgICB9KTtcbiAgICBuZXdUeFByZWJ1aWxkID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIF8uY2xvbmVEZWVwKHR4UHJlQnVpbGQpO1xuICAgIH07XG4gICAgbmV3VHhQYXJhbXMgPSAoKSA9PiB7XG4gICAgICByZXR1cm4gXy5jbG9uZURlZXAodHhQYXJhbXMpO1xuICAgIH07XG4gICAgYmFzZWNvaW4gPSBiaXRnby5jb2luKHNpcDEwVG9rZW5OYW1lKSBhcyBTaXAxMFRva2VuO1xuICAgIHdhbGxldCA9IG5ldyBXYWxsZXQoYml0Z28sIGJhc2Vjb2luLCB7fSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdWZXJpZnkgVHJhbnNhY3Rpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCBzdWNjZWVkIHRvIHZlcmlmeSB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4UHJlYnVpbGQgPSBuZXdUeFByZWJ1aWxkKCk7XG4gICAgICBjb25zdCB0eFBhcmFtcyA9IG5ld1R4UGFyYW1zKCk7XG4gICAgICB0eFBhcmFtcy5tZW1vID0gbWVtbztcbiAgICAgIGNvbnN0IHZlcmlmaWNhdGlvbiA9IHt9O1xuICAgICAgY29uc3QgaXNUcmFuc2FjdGlvblZlcmlmaWVkID0gYXdhaXQgYmFzZWNvaW4udmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICB0eFBhcmFtcyxcbiAgICAgICAgdHhQcmVidWlsZCxcbiAgICAgICAgdmVyaWZpY2F0aW9uLFxuICAgICAgICB3YWxsZXQsXG4gICAgICB9KTtcbiAgICAgIGlzVHJhbnNhY3Rpb25WZXJpZmllZC5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHN1Y2NlZWQgdG8gdmVyaWZ5IHRyYW5zYWN0aW9uIHdoZW4gcmVjaXBpZW50cyBhbW91bnQgYXJlIG51bWJlcnMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eFByZWJ1aWxkID0gbmV3VHhQcmVidWlsZCgpO1xuICAgICAgY29uc3QgdHhQYXJhbXNXaXRoTnVtYmVyQW1vdW50cyA9IG5ld1R4UGFyYW1zKCk7XG4gICAgICB0eFBhcmFtc1dpdGhOdW1iZXJBbW91bnRzLnJlY2lwaWVudHMgPSB0eFBhcmFtc1dpdGhOdW1iZXJBbW91bnRzLnJlY2lwaWVudHMubWFwKFxuICAgICAgICAoeyBhZGRyZXNzLCBhbW91bnQsIG1lbW8sIHRva2VuTmFtZSB9KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHsgYWRkcmVzcywgYW1vdW50OiBOdW1iZXIoYW1vdW50KSwgbWVtbywgdG9rZW5OYW1lIH07XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICB0eFBhcmFtc1dpdGhOdW1iZXJBbW91bnRzLm1lbW8gPSBtZW1vO1xuXG4gICAgICBjb25zdCB2ZXJpZmljYXRpb24gPSB7fTtcbiAgICAgIGNvbnN0IGlzVHJhbnNhY3Rpb25WZXJpZmllZCA9IGF3YWl0IGJhc2Vjb2luLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQYXJhbXM6IHR4UGFyYW1zV2l0aE51bWJlckFtb3VudHMsXG4gICAgICAgIHR4UHJlYnVpbGQsXG4gICAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgICAgd2FsbGV0LFxuICAgICAgfSk7XG4gICAgICBpc1RyYW5zYWN0aW9uVmVyaWZpZWQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzdWNjZWVkIHRvIHZlcmlmeSB3aGVuIG1lbW8gaXMgcGFzc2VkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IG5ld1R4UHJlYnVpbGQoKTtcbiAgICAgIHR4UHJlYnVpbGQudHhIZXggPSB0ZXN0RGF0YS50eEZvckV4cGxhaW5GdW5naWJsZVRva2VuVHJhbnNmZXJXaXRoTWVtb0lkMTA7XG4gICAgICBjb25zdCB0eFBhcmFtcyA9IG5ld1R4UGFyYW1zKCk7XG4gICAgICBjb25zdCB2ZXJpZmljYXRpb24gPSB7fTtcbiAgICAgIHR4UGFyYW1zLm1lbW8gPSB7XG4gICAgICAgIHR5cGU6ICcnLFxuICAgICAgICB2YWx1ZTogJzEwJyxcbiAgICAgIH07XG4gICAgICBjb25zdCBpc1RyYW5zYWN0aW9uVmVyaWZpZWQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UGFyYW1zOiB0eFBhcmFtcyxcbiAgICAgICAgdHhQcmVidWlsZCxcbiAgICAgICAgdmVyaWZpY2F0aW9uLFxuICAgICAgICB3YWxsZXQsXG4gICAgICB9KTtcbiAgICAgIGlzVHJhbnNhY3Rpb25WZXJpZmllZC5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHN1Y2NlZWQgdG8gdmVyaWZ5IHdoZW4gbWVtbyBpcyB6ZXJvJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IG5ld1R4UHJlYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4UGFyYW1zID0gbmV3VHhQYXJhbXMoKTtcbiAgICAgIHR4UHJlYnVpbGQudHhIZXggPSB0ZXN0RGF0YS50eEZvckV4cGxhaW5GdW5naWJsZVRva2VuVHJhbnNmZXJXaXRoTWVtb1plcm87XG4gICAgICB0eFBhcmFtcy5tZW1vID0ge1xuICAgICAgICB0eXBlOiAnJyxcbiAgICAgICAgdmFsdWU6ICcwJyxcbiAgICAgIH07XG4gICAgICBjb25zdCB2ZXJpZmljYXRpb24gPSB7fTtcbiAgICAgIGNvbnN0IGlzVHJhbnNhY3Rpb25WZXJpZmllZCA9IGF3YWl0IGJhc2Vjb2luLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQYXJhbXM6IHR4UGFyYW1zLFxuICAgICAgICB0eFByZWJ1aWxkLFxuICAgICAgICB2ZXJpZmljYXRpb24sXG4gICAgICAgIHdhbGxldCxcbiAgICAgIH0pO1xuICAgICAgaXNUcmFuc2FjdGlvblZlcmlmaWVkLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgc3VjY2VlZCB0byB2ZXJpZnkgd2hlbiBtZW1vIGlzIHBhc3NlZCBpbnNpZGUgcmVjaXBpZW50IGFkZHJlc3MnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eFByZWJ1aWxkID0gbmV3VHhQcmVidWlsZCgpO1xuICAgICAgY29uc3QgdHhQYXJhbXMgPSBuZXdUeFBhcmFtcygpO1xuICAgICAgdHhQYXJhbXMucmVjaXBpZW50c1swXS5hZGRyZXNzID0gJ1NOMk5OMUpQOUFFUDVCVkUxOVJOSjZUMk1QN05ER1JaWVNUMVZERjNNP21lbW9JZD0xMCc7XG4gICAgICB0eFByZWJ1aWxkLnR4SGV4ID0gdGVzdERhdGEudHhGb3JFeHBsYWluRnVuZ2libGVUb2tlblRyYW5zZmVyV2l0aE1lbW9JZDEwO1xuICAgICAgY29uc3QgdmVyaWZpY2F0aW9uID0ge307XG4gICAgICBjb25zdCBpc1RyYW5zYWN0aW9uVmVyaWZpZWQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UGFyYW1zOiB0eFBhcmFtcyxcbiAgICAgICAgdHhQcmVidWlsZCxcbiAgICAgICAgdmVyaWZpY2F0aW9uLFxuICAgICAgICB3YWxsZXQsXG4gICAgICB9KTtcbiAgICAgIGlzVHJhbnNhY3Rpb25WZXJpZmllZC5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHN1Y2NlZWQgdG8gdmVyaWZ5IHdoZW4gbWVtbyBpcyBub3QgcGFzc2VkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IG5ld1R4UHJlYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4UGFyYW1zID0gbmV3VHhQYXJhbXMoKTtcbiAgICAgIHR4UHJlYnVpbGQudHhIZXggPSB0ZXN0RGF0YS50eEZvckV4cGxhaW5GdW5naWJsZVRva2VuVHJhbnNmZXJXaXRob3V0TWVtbztcbiAgICAgIGNvbnN0IHZlcmlmaWNhdGlvbiA9IHt9O1xuICAgICAgY29uc3QgaXNUcmFuc2FjdGlvblZlcmlmaWVkID0gYXdhaXQgYmFzZWNvaW4udmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICB0eFBhcmFtczogdHhQYXJhbXMsXG4gICAgICAgIHR4UHJlYnVpbGQsXG4gICAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgICAgd2FsbGV0LFxuICAgICAgfSk7XG4gICAgICBpc1RyYW5zYWN0aW9uVmVyaWZpZWQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIHZlcmlmeSB0cmFuc2FjdGlvbiB3aXRoIG5vIHJlY2lwaWVudHMnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eFByZWJ1aWxkID0ge307XG4gICAgICBjb25zdCB0eFBhcmFtcyA9IG5ld1R4UGFyYW1zKCk7XG4gICAgICB0eFBhcmFtcy5yZWNpcGllbnRzID0gW107XG4gICAgICBhd2FpdCBiYXNlY29pblxuICAgICAgICAudmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICAgIHR4UGFyYW1zLFxuICAgICAgICAgIHR4UHJlYnVpbGQsXG4gICAgICAgICAgd2FsbGV0LFxuICAgICAgICB9KVxuICAgICAgICAuc2hvdWxkLnJlamVjdGVkV2l0aCgnbWlzc2luZyByZXF1aXJlZCB0eCBwcmVidWlsZCBwcm9wZXJ0eSB0eEhleCcpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHdoZW4gbW9yZSB0aGFuIDEgcmVjaXBpZW50cyBhcmUgcGFzc2VkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IG5ld1R4UHJlYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4UGFyYW1zID0gbmV3VHhQYXJhbXMoKTtcbiAgICAgIHR4UGFyYW1zLnJlY2lwaWVudHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6ICdTTjJOTjFKUDlBRVA1QlZFMTlSTko2VDJNUDdOREdSWllTVDFWREYzTicsXG4gICAgICAgIGFtb3VudDogJzEwMDAwJyxcbiAgICAgICAgbWVtbzogJzEnLFxuICAgICAgICB0b2tlbk5hbWU6ICd0c2lwNmRwLXRva2VuJyxcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgYmFzZWNvaW5cbiAgICAgICAgLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgICB0eFBhcmFtcyxcbiAgICAgICAgICB0eFByZWJ1aWxkLFxuICAgICAgICAgIHdhbGxldCxcbiAgICAgICAgfSlcbiAgICAgICAgLnNob3VsZC5yZWplY3RlZFdpdGgoXG4gICAgICAgICAgXCJ0c3R4OnRzaXA2ZHAgZG9lc24ndCBzdXBwb3J0IHNlbmRpbmcgdG8gbW9yZSB0aGFuIDEgZGVzdGluYXRpb24gYWRkcmVzcyB3aXRoaW4gYSBzaW5nbGUgdHJhbnNhY3Rpb24uIFRyeSBhZ2FpbiwgdXNpbmcgb25seSBhIHNpbmdsZSByZWNpcGllbnQuXCJcbiAgICAgICAgKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byB2ZXJpZnkgdHJhbnNhY3Rpb24gd2l0aCB3cm9uZyBhZGRyZXNzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IG5ld1R4UHJlYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4UGFyYW1zID0gbmV3VHhQYXJhbXMoKTtcbiAgICAgIHR4UGFyYW1zLnJlY2lwaWVudHNbMF0uYWRkcmVzcyA9ICdTTjJOTjFKUDlBRVA1QlZFMTlSTko2VDJNUDdOREdSWllTVDFWREYzTic7XG4gICAgICBjb25zdCB2ZXJpZmljYXRpb24gPSB7fTtcbiAgICAgIGF3YWl0IGJhc2Vjb2luXG4gICAgICAgIC52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgICAgdHhQYXJhbXMsXG4gICAgICAgICAgdHhQcmVidWlsZCxcbiAgICAgICAgICB2ZXJpZmljYXRpb24sXG4gICAgICAgICAgd2FsbGV0LFxuICAgICAgICB9KVxuICAgICAgICAuc2hvdWxkLnJlamVjdGVkV2l0aCgnVHggb3V0cHV0cyBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHR4UGFyYW1zIHJlY2lwaWVudHMnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byB2ZXJpZnkgdHJhbnNhY3Rpb24gd2l0aCB3cm9uZyBhbW91bnQnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eFByZWJ1aWxkID0gbmV3VHhQcmVidWlsZCgpO1xuICAgICAgY29uc3QgdHhQYXJhbXMgPSBuZXdUeFBhcmFtcygpO1xuICAgICAgdHhQYXJhbXMucmVjaXBpZW50c1swXS5hbW91bnQgPSAnMTAwJztcbiAgICAgIGNvbnN0IHZlcmlmaWNhdGlvbiA9IHt9O1xuICAgICAgYXdhaXQgYmFzZWNvaW5cbiAgICAgICAgLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgICB0eFBhcmFtcyxcbiAgICAgICAgICB0eFByZWJ1aWxkLFxuICAgICAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgICAgICB3YWxsZXQsXG4gICAgICAgIH0pXG4gICAgICAgIC5zaG91bGQucmVqZWN0ZWRXaXRoKCdUeCBvdXRwdXRzIGRvZXMgbm90IG1hdGNoIHdpdGggZXhwZWN0ZWQgdHhQYXJhbXMgcmVjaXBpZW50cycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIHZlcmlmeSB0cmFuc2FjdGlvbiB3aXRoIHdyb25nIG1lbW8nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eFByZWJ1aWxkID0gbmV3VHhQcmVidWlsZCgpO1xuICAgICAgY29uc3QgdHhQYXJhbXMgPSBuZXdUeFBhcmFtcygpO1xuICAgICAgdHhQYXJhbXMucmVjaXBpZW50c1swXS5tZW1vID0gJzInO1xuICAgICAgY29uc3QgdmVyaWZpY2F0aW9uID0ge307XG4gICAgICBhd2FpdCBiYXNlY29pblxuICAgICAgICAudmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICAgIHR4UGFyYW1zLFxuICAgICAgICAgIHR4UHJlYnVpbGQsXG4gICAgICAgICAgdmVyaWZpY2F0aW9uLFxuICAgICAgICAgIHdhbGxldCxcbiAgICAgICAgfSlcbiAgICAgICAgLnNob3VsZC5yZWplY3RlZFdpdGgoJ1R4IG1lbW8gZG9lcyBub3QgbWF0Y2ggd2l0aCBleHBlY3RlZCB0eFBhcmFtcyByZWNpcGllbnQgbWVtbycpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIHZlcmlmeSB0cmFuc2FjdGlvbiB3aXRoIHdyb25nIHRva2VuJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IG5ld1R4UHJlYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4UGFyYW1zID0gbmV3VHhQYXJhbXMoKTtcbiAgICAgIHR4UGFyYW1zLnJlY2lwaWVudHNbMF0udG9rZW5OYW1lID0gJ3RzdHg6dHNpcDhkcCc7XG4gICAgICBjb25zdCB2ZXJpZmljYXRpb24gPSB7fTtcbiAgICAgIGF3YWl0IGJhc2Vjb2luXG4gICAgICAgIC52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgICAgdHhQYXJhbXMsXG4gICAgICAgICAgdHhQcmVidWlsZCxcbiAgICAgICAgICB2ZXJpZmljYXRpb24sXG4gICAgICAgICAgd2FsbGV0LFxuICAgICAgICB9KVxuICAgICAgICAuc2hvdWxkLnJlamVjdGVkV2l0aCgnVHggb3V0cHV0cyBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHR4UGFyYW1zIHJlY2lwaWVudHMnKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1JlY292ZXIgVHJhbnNhY3Rpb24gU0lQMTAnLCAoKSA9PiB7XG4gICAgYmVmb3JlKGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vY2suZW5hYmxlTmV0Q29ubmVjdCgpO1xuICAgIH0pO1xuICAgIGJlZm9yZUVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgbm9jay5jbGVhbkFsbCgpO1xuICAgIH0pO1xuICAgIGFmdGVyKGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vY2suZGlzYWJsZU5ldENvbm5lY3QoKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgYSBzaWduZWQgdG9rZW4gcmVjb3ZlciB0cmFuc2FjdGlvbiB3aGVuIHByaXZhdGUga2V5IGRhdGEgaXMgcGFzc2VkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdEFkZHJlc3MgPSB0ZXN0RGF0YS5IT1RfV0FMTEVUX1JPT1RfQUREUkVTUztcbiAgICAgIG5vY2soYGh0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zb2ApXG4gICAgICAgIC5nZXQoYC9leHRlbmRlZC92Mi9hZGRyZXNzZXMvJHtyb290QWRkcmVzc30vYmFsYW5jZXMvc3R4YClcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuQUNDT1VOVF9CQUxBTkNFX1JFU1BPTlNFKTtcbiAgICAgIG5vY2soJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zbycpXG4gICAgICAgIC5nZXQoYC9leHRlbmRlZC92Mi9hZGRyZXNzZXMvJHtyb290QWRkcmVzc30vYmFsYW5jZXMvZnQvJHt0ZXN0RGF0YS5TVFhfVE9LRU5fQVNTRVRfSUR9YClcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuVE9LRU5fQkFMQU5DRV9SRVNQT05TRSk7XG4gICAgICBub2NrKGBodHRwczovL2FwaS50ZXN0bmV0Lmhpcm8uc29gKVxuICAgICAgICAuZ2V0KGAvZXh0ZW5kZWQvdjEvYWRkcmVzcy8ke3Jvb3RBZGRyZXNzfS9ub25jZXNgKVxuICAgICAgICAucmVwbHkoMjAwLCB0ZXN0RGF0YS5BQ0NPVU5UX05PTkNFX1JFU1BPTlNFKTtcbiAgICAgIG5vY2soYGh0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zb2AsIHsgYWxsb3dVbm1vY2tlZDogdHJ1ZSB9KVxuICAgICAgICAucG9zdChgL3YyL2ZlZXMvdHJhbnNhY3Rpb25gLCB0ZXN0RGF0YS5GRUVfRVNUSU1BVElPTl9UT0tFTl9SRVFVRVNUKVxuICAgICAgICAucmVwbHkoMjAwLCB0ZXN0RGF0YS5GRUVfRVNUSU1BVElPTl9UT0tFTl9SRVNQT05TRSk7XG5cbiAgICAgIGNvbnN0IHJlY292ZXJ5T3B0aW9uczogUmVjb3ZlcnlPcHRpb25zID0ge1xuICAgICAgICBiYWNrdXBLZXk6IHRlc3REYXRhLkhPVF9XQUxMRVRfS0VZX0NBUkRfSU5GTy5CQUNLVVBfS0VZLFxuICAgICAgICB1c2VyS2V5OiB0ZXN0RGF0YS5IT1RfV0FMTEVUX0tFWV9DQVJEX0lORk8uVVNFUl9LRVksXG4gICAgICAgIHJvb3RBZGRyZXNzOiByb290QWRkcmVzcyxcbiAgICAgICAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogdGVzdERhdGEuREVTVElOQVRJT05fQUREUkVTU19XUlcsXG4gICAgICAgIGJpdGdvS2V5OiB0ZXN0RGF0YS5IT1RfV0FMTEVUX0tFWV9DQVJEX0lORk8uQklUR09fUFVCX0tFWSxcbiAgICAgICAgd2FsbGV0UGFzc3BocmFzZTogdGVzdERhdGEuSE9UX1dBTExFVF9LRVlfQ0FSRF9JTkZPLldBTExFVF9QQVNTUEhSQVNFLFxuICAgICAgICBjb250cmFjdElkOiAnU1RBRzE4RTQ1VzYxM0ZaM0g0Wk1GNlFISDQyNkVYTTVRVFNBVldZSC50c2lwNmRwLXRva2VuJyxcbiAgICAgIH07XG4gICAgICBjb25zdCByZXNwb25zZTogUmVjb3ZlcnlUcmFuc2FjdGlvbiA9IGF3YWl0IGJhc2Vjb2luLnJlY292ZXIocmVjb3ZlcnlPcHRpb25zKTtcbiAgICAgIHJlc3BvbnNlLnNob3VsZC5oYXZlLnByb3BlcnR5KCd0eEhleCcpO1xuICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZS50eEhleCwgdGVzdERhdGEuSE9UX1dBTExFVF9UT0tFTl9SRUNPVkVSWV9UWF9IRVgsICd0eCBoZXggbm90IG1hdGNoaW5nIScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBhbiB1bnNpZ25lZCB0b2tlbiB0cmFuc2FjdGlvbiB3aGVuIHB1YmxpYyBrZXlzIGFyZSBwYXNzZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByb290QWRkcmVzcyA9IHRlc3REYXRhLkNPTERfV0FMTEVUX1JPT1RfQUREUkVTUztcbiAgICAgIG5vY2soYGh0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zb2ApXG4gICAgICAgIC5nZXQoYC9leHRlbmRlZC92Mi9hZGRyZXNzZXMvJHtyb290QWRkcmVzc30vYmFsYW5jZXMvc3R4YClcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuQUNDT1VOVF9CQUxBTkNFX1JFU1BPTlNFKTtcbiAgICAgIG5vY2soJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zbycpXG4gICAgICAgIC5nZXQoYC9leHRlbmRlZC92Mi9hZGRyZXNzZXMvJHtyb290QWRkcmVzc30vYmFsYW5jZXMvZnQvJHt0ZXN0RGF0YS5TVFhfVE9LRU5fQVNTRVRfSUR9YClcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuVE9LRU5fQkFMQU5DRV9SRVNQT05TRSk7XG4gICAgICBub2NrKGBodHRwczovL2FwaS50ZXN0bmV0Lmhpcm8uc29gLCB7IGFsbG93VW5tb2NrZWQ6IHRydWUgfSlcbiAgICAgICAgLmdldChgL2V4dGVuZGVkL3YxL2FkZHJlc3MvJHtyb290QWRkcmVzc30vbm9uY2VzYClcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuQUNDT1VOVF9OT05DRV9SRVNQT05TRSk7XG4gICAgICBjb25zdCBmZWVFc3RpbWF0ZVJlcXVlc3QgPSB0ZXN0RGF0YS5GRUVfRVNUSU1BVElPTl9UT0tFTl9SRVFVRVNUO1xuICAgICAgZmVlRXN0aW1hdGVSZXF1ZXN0LnRyYW5zYWN0aW9uX3BheWxvYWQgPVxuICAgICAgICAnMDIxYTE1MDBhMWM0MmYwYzExYmZlMzg5M2Y0NzlhZjE4OTA0Njc3Njg1YmUwZDc0NzM2OTcwMzY2NDcwMmQ3NDZmNmI2NTZlMDg3NDcyNjE2ZTczNjY2NTcyMDAwMDAwMDQwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjVlMTAwMDUxNTlmMmYxYWZmNmZhMDA2MmUxZjdmYTYwOTYxMzNlNzVmNDdhN2U4ZjcwNTFhMTUwMGExYzQyZjBjMTFiZmUzODkzZjQ3OWFmMTg5MDQ2Nzc2ODViZTA5JztcbiAgICAgIG5vY2soYGh0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zb2ApXG4gICAgICAgIC5wb3N0KGAvdjIvZmVlcy90cmFuc2FjdGlvbmAsIGZlZUVzdGltYXRlUmVxdWVzdClcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuRkVFX0VTVElNQVRJT05fVE9LRU5fUkVTUE9OU0UpO1xuXG4gICAgICBjb25zdCByZWNvdmVyeU9wdGlvbnM6IFJlY292ZXJ5T3B0aW9ucyA9IHtcbiAgICAgICAgYmFja3VwS2V5OiB0ZXN0RGF0YS5DT0xEX1dBTExFVF9QVUJMSUNfS0VZX0lORk8uQkFDS1VQX0tFWSxcbiAgICAgICAgdXNlcktleTogdGVzdERhdGEuQ09MRF9XQUxMRVRfUFVCTElDX0tFWV9JTkZPLlVTRVJfS0VZLFxuICAgICAgICByb290QWRkcmVzczogcm9vdEFkZHJlc3MsXG4gICAgICAgIHJlY292ZXJ5RGVzdGluYXRpb246IHRlc3REYXRhLkRFU1RJTkFUSU9OX0FERFJFU1NfV1JXLFxuICAgICAgICBiaXRnb0tleTogdGVzdERhdGEuQ09MRF9XQUxMRVRfUFVCTElDX0tFWV9JTkZPLkJJVEdPX1BVQl9LRVksXG4gICAgICAgIGNvbnRyYWN0SWQ6ICdTVEFHMThFNDVXNjEzRlozSDRaTUY2UUhINDI2RVhNNVFUU0FWV1lILnRzaXA2ZHAtdG9rZW4nLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlOiBSZWNvdmVyeUluZm8gPSAoYXdhaXQgYmFzZWNvaW4ucmVjb3ZlcihyZWNvdmVyeU9wdGlvbnMpKSBhcyBSZWNvdmVyeUluZm87XG4gICAgICByZXNwb25zZS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgndHhIZXgnKTtcbiAgICAgIHJlc3BvbnNlLnNob3VsZC5oYXZlLnByb3BlcnR5KCdjb2luJyk7XG4gICAgICByZXNwb25zZS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgnZmVlSW5mbycpO1xuICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZS50eEhleCwgdGVzdERhdGEuQ09MRF9XQUxMRVRfVE9LRU5fVU5TSUdORURfU1dFRVBfVFhfSEVYLCAndHggaGV4IG5vdCBtYXRjaGluZyEnKTtcbiAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2UuY29pbiwgJ3RzdHg6dHNpcDZkcCcsICdjb2luIG5vdCBtYXRjaGluZyEnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB3aXRoIGluc3VmZmljaWVudCBiYWxhbmNlIHdoZW4gbmF0aXZlIHN0eCBiYWxhbmNlIGlzIGxvd2VyIHRoYW4gZmVlIGZvciBzaXAxMCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJvb3RBZGRyZXNzID0gdGVzdERhdGEuSE9UX1dBTExFVF9ST09UX0FERFJFU1M7XG4gICAgICBjb25zdCBhY2NvdW50QmFsYW5jZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGVzdERhdGEuQUNDT1VOVF9CQUxBTkNFX1JFU1BPTlNFKSk7XG4gICAgICBhY2NvdW50QmFsYW5jZS5iYWxhbmNlID0gJzEwMCc7IC8vIHNldCBiYWxhbmNlIGxvd2VyIHRoYW4gZmVlXG4gICAgICBub2NrKGBodHRwczovL2FwaS50ZXN0bmV0Lmhpcm8uc29gKVxuICAgICAgICAuZ2V0KGAvZXh0ZW5kZWQvdjIvYWRkcmVzc2VzLyR7cm9vdEFkZHJlc3N9L2JhbGFuY2VzL3N0eGApXG4gICAgICAgIC5yZXBseSgyMDAsIGFjY291bnRCYWxhbmNlKTtcbiAgICAgIG5vY2soJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zbycpXG4gICAgICAgIC5nZXQoYC9leHRlbmRlZC92Mi9hZGRyZXNzZXMvJHtyb290QWRkcmVzc30vYmFsYW5jZXMvZnQvJHt0ZXN0RGF0YS5TVFhfVE9LRU5fQVNTRVRfSUR9YClcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuVE9LRU5fQkFMQU5DRV9SRVNQT05TRSk7XG4gICAgICBub2NrKGBodHRwczovL2FwaS50ZXN0bmV0Lmhpcm8uc29gKVxuICAgICAgICAuZ2V0KGAvZXh0ZW5kZWQvdjEvYWRkcmVzcy8ke3Jvb3RBZGRyZXNzfS9ub25jZXNgKVxuICAgICAgICAucmVwbHkoMjAwLCB0ZXN0RGF0YS5BQ0NPVU5UX05PTkNFX1JFU1BPTlNFKTtcbiAgICAgIGNvbnN0IGZlZVJlcXVlc3RCb2R5ID0gdGVzdERhdGEuRkVFX0VTVElNQVRJT05fVE9LRU5fUkVRVUVTVDtcbiAgICAgIGZlZVJlcXVlc3RCb2R5LnRyYW5zYWN0aW9uX3BheWxvYWQgPVxuICAgICAgICAnMDIxYTE1MDBhMWM0MmYwYzExYmZlMzg5M2Y0NzlhZjE4OTA0Njc3Njg1YmUwZDc0NzM2OTcwMzY2NDcwMmQ3NDZmNmI2NTZlMDg3NDcyNjE2ZTczNjY2NTcyMDAwMDAwMDQwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1ZjVlMTAwMDUxNTQ5ODU3ZWI0YjZkZDRmZWUwOGMzZWMwNGUzZDBlZDA0ZWY2N2QzMjQwNTFhMTUwMGExYzQyZjBjMTFiZmUzODkzZjQ3OWFmMTg5MDQ2Nzc2ODViZTA5JztcbiAgICAgIG5vY2soYGh0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zb2AsIHsgYWxsb3dVbm1vY2tlZDogdHJ1ZSB9KVxuICAgICAgICAucG9zdChgL3YyL2ZlZXMvdHJhbnNhY3Rpb25gLCBmZWVSZXF1ZXN0Qm9keSlcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuRkVFX0VTVElNQVRJT05fVE9LRU5fUkVTUE9OU0UpO1xuICAgICAgY29uc3QgcmVjb3ZlcnlPcHRpb25zOiBSZWNvdmVyeU9wdGlvbnMgPSB7XG4gICAgICAgIGJhY2t1cEtleTogdGVzdERhdGEuSE9UX1dBTExFVF9LRVlfQ0FSRF9JTkZPLkJBQ0tVUF9LRVksXG4gICAgICAgIHVzZXJLZXk6IHRlc3REYXRhLkhPVF9XQUxMRVRfS0VZX0NBUkRfSU5GTy5VU0VSX0tFWSxcbiAgICAgICAgcm9vdEFkZHJlc3M6IHJvb3RBZGRyZXNzLFxuICAgICAgICByZWNvdmVyeURlc3RpbmF0aW9uOiB0ZXN0RGF0YS5ERVNUSU5BVElPTl9BRERSRVNTX1dSVyxcbiAgICAgICAgYml0Z29LZXk6IHRlc3REYXRhLkhPVF9XQUxMRVRfS0VZX0NBUkRfSU5GTy5CSVRHT19QVUJfS0VZLFxuICAgICAgICB3YWxsZXRQYXNzcGhyYXNlOiB0ZXN0RGF0YS5IT1RfV0FMTEVUX0tFWV9DQVJEX0lORk8uV0FMTEVUX1BBU1NQSFJBU0UsXG4gICAgICAgIGNvbnRyYWN0SWQ6ICdTVEFHMThFNDVXNjEzRlozSDRaTUY2UUhINDI2RVhNNVFUU0FWV1lILnRzaXA2ZHAtdG9rZW4nLFxuICAgICAgfTtcbiAgICAgIGF3YWl0IGJhc2Vjb2luLnJlY292ZXIocmVjb3ZlcnlPcHRpb25zKS5zaG91bGQucmVqZWN0ZWRXaXRoKCdpbnN1ZmZpY2llbnQgYmFsYW5jZSB0byBidWlsZCB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB3aGVuIG9ubHkgY29udHJhY3QgYWRkcmVzcyBpcyBwYXNzZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZWNvdmVyeU9wdGlvbnM6IFJlY292ZXJ5T3B0aW9ucyA9IHtcbiAgICAgICAgYmFja3VwS2V5OiB0ZXN0RGF0YS5IT1RfV0FMTEVUX0tFWV9DQVJEX0lORk8uQkFDS1VQX0tFWSxcbiAgICAgICAgdXNlcktleTogdGVzdERhdGEuSE9UX1dBTExFVF9LRVlfQ0FSRF9JTkZPLlVTRVJfS0VZLFxuICAgICAgICByb290QWRkcmVzczogdGVzdERhdGEuSE9UX1dBTExFVF9ST09UX0FERFJFU1MsXG4gICAgICAgIHJlY292ZXJ5RGVzdGluYXRpb246IHRlc3REYXRhLkRFU1RJTkFUSU9OX0FERFJFU1NfV1JXLFxuICAgICAgICBiaXRnb0tleTogdGVzdERhdGEuSE9UX1dBTExFVF9LRVlfQ0FSRF9JTkZPLkJJVEdPX1BVQl9LRVksXG4gICAgICAgIHdhbGxldFBhc3NwaHJhc2U6IHRlc3REYXRhLkhPVF9XQUxMRVRfS0VZX0NBUkRfSU5GTy5XQUxMRVRfUEFTU1BIUkFTRSxcbiAgICAgICAgY29udHJhY3RJZDogJ1NUQUcxOEU0NVc2MTNGWjNINFpNRjZRSEg0MjZFWE01UVRTQVZXWUgnLFxuICAgICAgfTtcbiAgICAgIGF3YWl0IGJhc2Vjb2luXG4gICAgICAgIC5yZWNvdmVyKHJlY292ZXJ5T3B0aW9ucylcbiAgICAgICAgLnNob3VsZC5yZWplY3RlZFdpdGgoJ2ludmFsaWQgY29udHJhY3QgaWQsIHBsZWFzZSBwcm92aWRlIGl0IGluIHRoZSBmb3JtIChjb250cmFjdEFkZHJlc3MuY29udHJhY3ROYW1lKScpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
420
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lwMTBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3QvdW5pdC9zaXAxMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXVCO0FBQ3ZCLGdEQUF3QjtBQUN4QixvREFBNEI7QUFDNUIsNENBQTBDO0FBQzFDLDhDQUEwRDtBQUMxRCw4Q0FBc0U7QUFDdEUsNENBQXVDO0FBRXZDLG1DQUF1QztBQUN2QyxzREFBd0M7QUFFeEMsb0RBQTRCO0FBRTVCLFFBQVEsQ0FBQyxhQUFhLEVBQUU7SUFDdEIsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3RDLElBQUksS0FBbUIsQ0FBQztJQUN4QixJQUFJLFFBQW9CLENBQUM7SUFDekIsSUFBSSxhQUF1RSxDQUFDO0lBQzVFLElBQUksV0FBdUUsQ0FBQztJQUM1RSxJQUFJLE1BQWMsQ0FBQztJQUVuQixNQUFNLFVBQVUsR0FBRztRQUNqQixLQUFLLEVBQUUsUUFBUSxDQUFDLGlDQUFpQztRQUNqRCxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUM7SUFFRixNQUFNLFFBQVEsR0FBRztRQUNmLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtLQUNoQyxDQUFDO0lBRUYsTUFBTSxJQUFJLEdBQUc7UUFDWCxJQUFJLEVBQUUsRUFBRTtRQUNSLEtBQUssRUFBRSxHQUFHO0tBQ1gsQ0FBQztJQUVGLE1BQU0sQ0FBQztRQUNMLEtBQUssR0FBRyxvQkFBUyxDQUFDLFFBQVEsQ0FBQyxrQkFBUSxFQUFFO1lBQ25DLEdBQUcsRUFBRSxNQUFNO1NBQ1osQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0IsZ0JBQVUsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxFQUFFLEVBQUU7WUFDekUsS0FBSyxDQUFD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QUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN4RSxnQkFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG5vY2sgZnJvbSAnbm9jayc7XG5pbXBvcnQgc2hvdWxkIGZyb20gJ3Nob3VsZCc7XG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby9zZGstYXBpJztcbmltcG9ydCB7IFRlc3RCaXRHbywgVGVzdEJpdEdvQVBJIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCB7IElUcmFuc2FjdGlvblJlY2lwaWVudCwgV2FsbGV0LCBNZW1vIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuXG5pbXBvcnQgeyBTaXAxMFRva2VuIH0gZnJvbSAnLi4vLi4vc3JjJztcbmltcG9ydCAqIGFzIHRlc3REYXRhIGZyb20gJy4uL2ZpeHR1cmVzJztcbmltcG9ydCB7IFJlY292ZXJ5SW5mbywgUmVjb3ZlcnlPcHRpb25zLCBSZWNvdmVyeVRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi9pZmFjZSc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmRlc2NyaWJlKCdTaXAxMFRva2VuOicsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3Qgc2lwMTBUb2tlbk5hbWUgPSAndHN0eDp0c2lwNmRwJztcbiAgbGV0IGJpdGdvOiBUZXN0Qml0R29BUEk7XG4gIGxldCBiYXNlY29pbjogU2lwMTBUb2tlbjtcbiAgbGV0IG5ld1R4UHJlYnVpbGQ6ICgpID0+IHsgdHhIZXg6IHN0cmluZzsgdHhJbmZvOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB9O1xuICBsZXQgbmV3VHhQYXJhbXM6ICgpID0+IHsgcmVjaXBpZW50czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W107IG1lbW8/OiBNZW1vIH07XG4gIGxldCB3YWxsZXQ6IFdhbGxldDtcblxuICBjb25zdCB0eFByZUJ1aWxkID0ge1xuICAgIHR4SGV4OiB0ZXN0RGF0YS50eEZvckV4cGxhaW5GdW5naWJsZVRva2VuVHJhbnNmZXIsXG4gICAgdHhJbmZvOiB7fSxcbiAgfTtcblxuICBjb25zdCB0eFBhcmFtcyA9IHtcbiAgICByZWNpcGllbnRzOiB0ZXN0RGF0YS5yZWNpcGllbnRzLFxuICB9O1xuXG4gIGNvbnN0IG1lbW8gPSB7XG4gICAgdHlwZTogJycsXG4gICAgdmFsdWU6ICcxJyxcbiAgfTtcblxuICBiZWZvcmUoZnVuY3Rpb24gKCkge1xuICAgIGJpdGdvID0gVGVzdEJpdEdvLmRlY29yYXRlKEJpdEdvQVBJLCB7XG4gICAgICBlbnY6ICdtb2NrJyxcbiAgICB9KTtcbiAgICBiaXRnby5pbml0aWFsaXplVGVzdFZhcnMoKTtcbiAgICBTaXAxMFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKCkuZm9yRWFjaCgoeyBuYW1lLCBjb2luQ29uc3RydWN0b3IgfSkgPT4ge1xuICAgICAgYml0Z28uc2FmZVJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gICAgfSk7XG4gICAgbmV3VHhQcmVidWlsZCA9ICgpID0+IHtcbiAgICAgIHJldHVybiBfLmNsb25lRGVlcCh0eFByZUJ1aWxkKTtcbiAgICB9O1xuICAgIG5ld1R4UGFyYW1zID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIF8uY2xvbmVEZWVwKHR4UGFyYW1zKTtcbiAgICB9O1xuICAgIGJhc2Vjb2luID0gYml0Z28uY29pbihzaXAxMFRva2VuTmFtZSkgYXMgU2lwMTBUb2tlbjtcbiAgICB3YWxsZXQgPSBuZXcgV2FsbGV0KGJpdGdvLCBiYXNlY29pbiwge30pO1xuICB9KTtcblxuICBkZXNjcmliZSgnVmVyaWZ5IFRyYW5zYWN0aW9uJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgc3VjY2VlZCB0byB2ZXJpZnkgdHJhbnNhY3Rpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eFByZWJ1aWxkID0gbmV3VHhQcmVidWlsZCgpO1xuICAgICAgY29uc3QgdHhQYXJhbXMgPSBuZXdUeFBhcmFtcygpO1xuICAgICAgdHhQYXJhbXMubWVtbyA9IG1lbW87XG4gICAgICBjb25zdCB2ZXJpZmljYXRpb24gPSB7fTtcbiAgICAgIGNvbnN0IGlzVHJhbnNhY3Rpb25WZXJpZmllZCA9IGF3YWl0IGJhc2Vjb2luLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQYXJhbXMsXG4gICAgICAgIHR4UHJlYnVpbGQsXG4gICAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgICAgd2FsbGV0LFxuICAgICAgfSk7XG4gICAgICBpc1RyYW5zYWN0aW9uVmVyaWZpZWQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzdWNjZWVkIHRvIHZlcmlmeSB0cmFuc2FjdGlvbiB3aGVuIHJlY2lwaWVudHMgYW1vdW50IGFyZSBudW1iZXJzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IG5ld1R4UHJlYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4UGFyYW1zV2l0aE51bWJlckFtb3VudHMgPSBuZXdUeFBhcmFtcygpO1xuICAgICAgdHhQYXJhbXNXaXRoTnVtYmVyQW1vdW50cy5yZWNpcGllbnRzID0gdHhQYXJhbXNXaXRoTnVtYmVyQW1vdW50cy5yZWNpcGllbnRzLm1hcChcbiAgICAgICAgKHsgYWRkcmVzcywgYW1vdW50LCBtZW1vLCB0b2tlbk5hbWUgfSkgPT4ge1xuICAgICAgICAgIHJldHVybiB7IGFkZHJlc3MsIGFtb3VudDogTnVtYmVyKGFtb3VudCksIG1lbW8sIHRva2VuTmFtZSB9O1xuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdHhQYXJhbXNXaXRoTnVtYmVyQW1vdW50cy5tZW1vID0gbWVtbztcblxuICAgICAgY29uc3QgdmVyaWZpY2F0aW9uID0ge307XG4gICAgICBjb25zdCBpc1RyYW5zYWN0aW9uVmVyaWZpZWQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UGFyYW1zOiB0eFBhcmFtc1dpdGhOdW1iZXJBbW91bnRzLFxuICAgICAgICB0eFByZWJ1aWxkLFxuICAgICAgICB2ZXJpZmljYXRpb24sXG4gICAgICAgIHdhbGxldCxcbiAgICAgIH0pO1xuICAgICAgaXNUcmFuc2FjdGlvblZlcmlmaWVkLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgc3VjY2VlZCB0byB2ZXJpZnkgd2hlbiBtZW1vIGlzIHBhc3NlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4UHJlYnVpbGQgPSBuZXdUeFByZWJ1aWxkKCk7XG4gICAgICB0eFByZWJ1aWxkLnR4SGV4ID0gdGVzdERhdGEudHhGb3JFeHBsYWluRnVuZ2libGVUb2tlblRyYW5zZmVyV2l0aE1lbW9JZDEwO1xuICAgICAgY29uc3QgdHhQYXJhbXMgPSBuZXdUeFBhcmFtcygpO1xuICAgICAgY29uc3QgdmVyaWZpY2F0aW9uID0ge307XG4gICAgICB0eFBhcmFtcy5tZW1vID0ge1xuICAgICAgICB0eXBlOiAnJyxcbiAgICAgICAgdmFsdWU6ICcxMCcsXG4gICAgICB9O1xuICAgICAgY29uc3QgaXNUcmFuc2FjdGlvblZlcmlmaWVkID0gYXdhaXQgYmFzZWNvaW4udmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICB0eFBhcmFtczogdHhQYXJhbXMsXG4gICAgICAgIHR4UHJlYnVpbGQsXG4gICAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgICAgd2FsbGV0LFxuICAgICAgfSk7XG4gICAgICBpc1RyYW5zYWN0aW9uVmVyaWZpZWQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzdWNjZWVkIHRvIHZlcmlmeSB3aGVuIG1lbW8gaXMgemVybycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4UHJlYnVpbGQgPSBuZXdUeFByZWJ1aWxkKCk7XG4gICAgICBjb25zdCB0eFBhcmFtcyA9IG5ld1R4UGFyYW1zKCk7XG4gICAgICB0eFByZWJ1aWxkLnR4SGV4ID0gdGVzdERhdGEudHhGb3JFeHBsYWluRnVuZ2libGVUb2tlblRyYW5zZmVyV2l0aE1lbW9aZXJvO1xuICAgICAgdHhQYXJhbXMubWVtbyA9IHtcbiAgICAgICAgdHlwZTogJycsXG4gICAgICAgIHZhbHVlOiAnMCcsXG4gICAgICB9O1xuICAgICAgY29uc3QgdmVyaWZpY2F0aW9uID0ge307XG4gICAgICBjb25zdCBpc1RyYW5zYWN0aW9uVmVyaWZpZWQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4UGFyYW1zOiB0eFBhcmFtcyxcbiAgICAgICAgdHhQcmVidWlsZCxcbiAgICAgICAgdmVyaWZpY2F0aW9uLFxuICAgICAgICB3YWxsZXQsXG4gICAgICB9KTtcbiAgICAgIGlzVHJhbnNhY3Rpb25WZXJpZmllZC5zaG91bGQuZXF1YWwodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHN1Y2NlZWQgdG8gdmVyaWZ5IHdoZW4gbWVtbyBpcyBwYXNzZWQgaW5zaWRlIHJlY2lwaWVudCBhZGRyZXNzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IG5ld1R4UHJlYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4UGFyYW1zID0gbmV3VHhQYXJhbXMoKTtcbiAgICAgIHR4UGFyYW1zLnJlY2lwaWVudHNbMF0uYWRkcmVzcyA9ICdTTjJOTjFKUDlBRVA1QlZFMTlSTko2VDJNUDdOREdSWllTVDFWREYzTT9tZW1vSWQ9MTAnO1xuICAgICAgdHhQcmVidWlsZC50eEhleCA9IHRlc3REYXRhLnR4Rm9yRXhwbGFpbkZ1bmdpYmxlVG9rZW5UcmFuc2ZlcldpdGhNZW1vSWQxMDtcbiAgICAgIGNvbnN0IHZlcmlmaWNhdGlvbiA9IHt9O1xuICAgICAgY29uc3QgaXNUcmFuc2FjdGlvblZlcmlmaWVkID0gYXdhaXQgYmFzZWNvaW4udmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICB0eFBhcmFtczogdHhQYXJhbXMsXG4gICAgICAgIHR4UHJlYnVpbGQsXG4gICAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgICAgd2FsbGV0LFxuICAgICAgfSk7XG4gICAgICBpc1RyYW5zYWN0aW9uVmVyaWZpZWQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzdWNjZWVkIHRvIHZlcmlmeSB3aGVuIG1lbW8gaXMgbm90IHBhc3NlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4UHJlYnVpbGQgPSBuZXdUeFByZWJ1aWxkKCk7XG4gICAgICBjb25zdCB0eFBhcmFtcyA9IG5ld1R4UGFyYW1zKCk7XG4gICAgICB0eFByZWJ1aWxkLnR4SGV4ID0gdGVzdERhdGEudHhGb3JFeHBsYWluRnVuZ2libGVUb2tlblRyYW5zZmVyV2l0aG91dE1lbW87XG4gICAgICBjb25zdCB2ZXJpZmljYXRpb24gPSB7fTtcbiAgICAgIGNvbnN0IGlzVHJhbnNhY3Rpb25WZXJpZmllZCA9IGF3YWl0IGJhc2Vjb2luLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhQYXJhbXM6IHR4UGFyYW1zLFxuICAgICAgICB0eFByZWJ1aWxkLFxuICAgICAgICB2ZXJpZmljYXRpb24sXG4gICAgICAgIHdhbGxldCxcbiAgICAgIH0pO1xuICAgICAgaXNUcmFuc2FjdGlvblZlcmlmaWVkLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byB2ZXJpZnkgdHJhbnNhY3Rpb24gd2l0aCBubyByZWNpcGllbnRzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IHt9O1xuICAgICAgY29uc3QgdHhQYXJhbXMgPSBuZXdUeFBhcmFtcygpO1xuICAgICAgdHhQYXJhbXMucmVjaXBpZW50cyA9IFtdO1xuICAgICAgYXdhaXQgYmFzZWNvaW5cbiAgICAgICAgLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgICB0eFBhcmFtcyxcbiAgICAgICAgICB0eFByZWJ1aWxkLFxuICAgICAgICAgIHdhbGxldCxcbiAgICAgICAgfSlcbiAgICAgICAgLnNob3VsZC5yZWplY3RlZFdpdGgoJ21pc3NpbmcgcmVxdWlyZWQgdHggcHJlYnVpbGQgcHJvcGVydHkgdHhIZXgnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB3aGVuIG1vcmUgdGhhbiAxIHJlY2lwaWVudHMgYXJlIHBhc3NlZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4UHJlYnVpbGQgPSBuZXdUeFByZWJ1aWxkKCk7XG4gICAgICBjb25zdCB0eFBhcmFtcyA9IG5ld1R4UGFyYW1zKCk7XG4gICAgICB0eFBhcmFtcy5yZWNpcGllbnRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiAnU04yTk4xSlA5QUVQNUJWRTE5Uk5KNlQyTVA3TkRHUlpZU1QxVkRGM04nLFxuICAgICAgICBhbW91bnQ6ICcxMDAwMCcsXG4gICAgICAgIG1lbW86ICcxJyxcbiAgICAgICAgdG9rZW5OYW1lOiAndHNpcDZkcC10b2tlbicsXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IGJhc2Vjb2luXG4gICAgICAgIC52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgICAgdHhQYXJhbXMsXG4gICAgICAgICAgdHhQcmVidWlsZCxcbiAgICAgICAgICB3YWxsZXQsXG4gICAgICAgIH0pXG4gICAgICAgIC5zaG91bGQucmVqZWN0ZWRXaXRoKFxuICAgICAgICAgIFwidHN0eDp0c2lwNmRwIGRvZXNuJ3Qgc3VwcG9ydCBzZW5kaW5nIHRvIG1vcmUgdGhhbiAxIGRlc3RpbmF0aW9uIGFkZHJlc3Mgd2l0aGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uLiBUcnkgYWdhaW4sIHVzaW5nIG9ubHkgYSBzaW5nbGUgcmVjaXBpZW50LlwiXG4gICAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgdG8gdmVyaWZ5IHRyYW5zYWN0aW9uIHdpdGggd3JvbmcgYWRkcmVzcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4UHJlYnVpbGQgPSBuZXdUeFByZWJ1aWxkKCk7XG4gICAgICBjb25zdCB0eFBhcmFtcyA9IG5ld1R4UGFyYW1zKCk7XG4gICAgICB0eFBhcmFtcy5yZWNpcGllbnRzWzBdLmFkZHJlc3MgPSAnU04yTk4xSlA5QUVQNUJWRTE5Uk5KNlQyTVA3TkRHUlpZU1QxVkRGM04nO1xuICAgICAgY29uc3QgdmVyaWZpY2F0aW9uID0ge307XG4gICAgICBhd2FpdCBiYXNlY29pblxuICAgICAgICAudmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICAgIHR4UGFyYW1zLFxuICAgICAgICAgIHR4UHJlYnVpbGQsXG4gICAgICAgICAgdmVyaWZpY2F0aW9uLFxuICAgICAgICAgIHdhbGxldCxcbiAgICAgICAgfSlcbiAgICAgICAgLnNob3VsZC5yZWplY3RlZFdpdGgoJ1R4IG91dHB1dHMgZG9lcyBub3QgbWF0Y2ggd2l0aCBleHBlY3RlZCB0eFBhcmFtcyByZWNpcGllbnRzJyk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGZhaWwgdG8gdmVyaWZ5IHRyYW5zYWN0aW9uIHdpdGggd3JvbmcgYW1vdW50JywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IG5ld1R4UHJlYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4UGFyYW1zID0gbmV3VHhQYXJhbXMoKTtcbiAgICAgIHR4UGFyYW1zLnJlY2lwaWVudHNbMF0uYW1vdW50ID0gJzEwMCc7XG4gICAgICBjb25zdCB2ZXJpZmljYXRpb24gPSB7fTtcbiAgICAgIGF3YWl0IGJhc2Vjb2luXG4gICAgICAgIC52ZXJpZnlUcmFuc2FjdGlvbih7XG4gICAgICAgICAgdHhQYXJhbXMsXG4gICAgICAgICAgdHhQcmVidWlsZCxcbiAgICAgICAgICB2ZXJpZmljYXRpb24sXG4gICAgICAgICAgd2FsbGV0LFxuICAgICAgICB9KVxuICAgICAgICAuc2hvdWxkLnJlamVjdGVkV2l0aCgnVHggb3V0cHV0cyBkb2VzIG5vdCBtYXRjaCB3aXRoIGV4cGVjdGVkIHR4UGFyYW1zIHJlY2lwaWVudHMnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byB2ZXJpZnkgdHJhbnNhY3Rpb24gd2l0aCB3cm9uZyBtZW1vJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IG5ld1R4UHJlYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4UGFyYW1zID0gbmV3VHhQYXJhbXMoKTtcbiAgICAgIHR4UGFyYW1zLnJlY2lwaWVudHNbMF0ubWVtbyA9ICcyJztcbiAgICAgIGNvbnN0IHZlcmlmaWNhdGlvbiA9IHt9O1xuICAgICAgYXdhaXQgYmFzZWNvaW5cbiAgICAgICAgLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgICB0eFBhcmFtcyxcbiAgICAgICAgICB0eFByZWJ1aWxkLFxuICAgICAgICAgIHZlcmlmaWNhdGlvbixcbiAgICAgICAgICB3YWxsZXQsXG4gICAgICAgIH0pXG4gICAgICAgIC5zaG91bGQucmVqZWN0ZWRXaXRoKCdUeCBtZW1vIGRvZXMgbm90IG1hdGNoIHdpdGggZXhwZWN0ZWQgdHhQYXJhbXMgcmVjaXBpZW50IG1lbW8nKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB0byB2ZXJpZnkgdHJhbnNhY3Rpb24gd2l0aCB3cm9uZyB0b2tlbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHR4UHJlYnVpbGQgPSBuZXdUeFByZWJ1aWxkKCk7XG4gICAgICBjb25zdCB0eFBhcmFtcyA9IG5ld1R4UGFyYW1zKCk7XG4gICAgICB0eFBhcmFtcy5yZWNpcGllbnRzWzBdLnRva2VuTmFtZSA9ICd0c3R4OnRzaXA4ZHAnO1xuICAgICAgY29uc3QgdmVyaWZpY2F0aW9uID0ge307XG4gICAgICBhd2FpdCBiYXNlY29pblxuICAgICAgICAudmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICAgIHR4UGFyYW1zLFxuICAgICAgICAgIHR4UHJlYnVpbGQsXG4gICAgICAgICAgdmVyaWZpY2F0aW9uLFxuICAgICAgICAgIHdhbGxldCxcbiAgICAgICAgfSlcbiAgICAgICAgLnNob3VsZC5yZWplY3RlZFdpdGgoJ1R4IG91dHB1dHMgZG9lcyBub3QgbWF0Y2ggd2l0aCBleHBlY3RlZCB0eFBhcmFtcyByZWNpcGllbnRzJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdSZWNvdmVyIFRyYW5zYWN0aW9uIFNJUDEwJywgKCkgPT4ge1xuICAgIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgICBub2NrLmVuYWJsZU5ldENvbm5lY3QoKTtcbiAgICB9KTtcbiAgICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgIG5vY2suY2xlYW5BbGwoKTtcbiAgICB9KTtcbiAgICBhZnRlcihmdW5jdGlvbiAoKSB7XG4gICAgICBub2NrLmRpc2FibGVOZXRDb25uZWN0KCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGEgc2lnbmVkIHRva2VuIHJlY292ZXIgdHJhbnNhY3Rpb24gd2hlbiBwcml2YXRlIGtleSBkYXRhIGlzIHBhc3NlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJvb3RBZGRyZXNzID0gdGVzdERhdGEuSE9UX1dBTExFVF9ST09UX0FERFJFU1M7XG4gICAgICBub2NrKGBodHRwczovL2FwaS50ZXN0bmV0Lmhpcm8uc29gKVxuICAgICAgICAuZ2V0KGAvZXh0ZW5kZWQvdjIvYWRkcmVzc2VzLyR7cm9vdEFkZHJlc3N9L2JhbGFuY2VzL3N0eGApXG4gICAgICAgIC5yZXBseSgyMDAsIHRlc3REYXRhLkFDQ09VTlRfQkFMQU5DRV9SRVNQT05TRSk7XG4gICAgICBub2NrKCdodHRwczovL2FwaS50ZXN0bmV0Lmhpcm8uc28nKVxuICAgICAgICAuZ2V0KGAvZXh0ZW5kZWQvdjIvYWRkcmVzc2VzLyR7cm9vdEFkZHJlc3N9L2JhbGFuY2VzL2Z0LyR7dGVzdERhdGEuU1RYX1RPS0VOX0FTU0VUX0lEfWApXG4gICAgICAgIC5yZXBseSgyMDAsIHRlc3REYXRhLlRPS0VOX0JBTEFOQ0VfUkVTUE9OU0UpO1xuICAgICAgbm9jayhgaHR0cHM6Ly9hcGkudGVzdG5ldC5oaXJvLnNvYClcbiAgICAgICAgLmdldChgL2V4dGVuZGVkL3YxL2FkZHJlc3MvJHtyb290QWRkcmVzc30vbm9uY2VzYClcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuQUNDT1VOVF9OT05DRV9SRVNQT05TRSk7XG4gICAgICBub2NrKGBodHRwczovL2FwaS50ZXN0bmV0Lmhpcm8uc29gLCB7IGFsbG93VW5tb2NrZWQ6IHRydWUgfSlcbiAgICAgICAgLnBvc3QoYC92Mi9mZWVzL3RyYW5zYWN0aW9uYCwgdGVzdERhdGEuRkVFX0VTVElNQVRJT05fVE9LRU5fUkVRVUVTVClcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuRkVFX0VTVElNQVRJT05fVE9LRU5fUkVTUE9OU0UpO1xuXG4gICAgICBjb25zdCByZWNvdmVyeU9wdGlvbnM6IFJlY292ZXJ5T3B0aW9ucyA9IHtcbiAgICAgICAgYmFja3VwS2V5OiB0ZXN0RGF0YS5IT1RfV0FMTEVUX0tFWV9DQVJEX0lORk8uQkFDS1VQX0tFWSxcbiAgICAgICAgdXNlcktleTogdGVzdERhdGEuSE9UX1dBTExFVF9LRVlfQ0FSRF9JTkZPLlVTRVJfS0VZLFxuICAgICAgICByb290QWRkcmVzczogcm9vdEFkZHJlc3MsXG4gICAgICAgIHJlY292ZXJ5RGVzdGluYXRpb246IHRlc3REYXRhLkRFU1RJTkFUSU9OX0FERFJFU1NfV1JXLFxuICAgICAgICBiaXRnb0tleTogdGVzdERhdGEuSE9UX1dBTExFVF9LRVlfQ0FSRF9JTkZPLkJJVEdPX1BVQl9LRVksXG4gICAgICAgIHdhbGxldFBhc3NwaHJhc2U6IHRlc3REYXRhLkhPVF9XQUxMRVRfS0VZX0NBUkRfSU5GTy5XQUxMRVRfUEFTU1BIUkFTRSxcbiAgICAgICAgY29udHJhY3RJZDogJ1NUQUcxOEU0NVc2MTNGWjNINFpNRjZRSEg0MjZFWE01UVRTQVZXWUgudHNpcDZkcC10b2tlbicsXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzcG9uc2U6IFJlY292ZXJ5VHJhbnNhY3Rpb24gPSBhd2FpdCBiYXNlY29pbi5yZWNvdmVyKHJlY292ZXJ5T3B0aW9ucyk7XG4gICAgICByZXNwb25zZS5zaG91bGQuaGF2ZS5wcm9wZXJ0eSgndHhIZXgnKTtcbiAgICAgIGFzc2VydC5kZWVwRXF1YWwocmVzcG9uc2UudHhIZXgsIHRlc3REYXRhLkhPVF9XQUxMRVRfVE9LRU5fUkVDT1ZFUllfVFhfSEVYLCAndHggaGV4IG5vdCBtYXRjaGluZyEnKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgYnVpbGQgYSBzaWduZWQgdG9rZW4gcmVjb3ZlciB0cmFuc2FjdGlvbiB0byBhIGRlc3RpbmF0aW9uIHdpdGggYSBtZW1vIGlkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdEFkZHJlc3MgPSB0ZXN0RGF0YS5IT1RfV0FMTEVUX1JPT1RfQUREUkVTUztcbiAgICAgIG5vY2soJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zbycpXG4gICAgICAgIC5nZXQoYC9leHRlbmRlZC92Mi9hZGRyZXNzZXMvJHtyb290QWRkcmVzc30vYmFsYW5jZXMvc3R4YClcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuQUNDT1VOVF9CQUxBTkNFX1JFU1BPTlNFKTtcbiAgICAgIG5vY2soJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zbycpXG4gICAgICAgIC5nZXQoYC9leHRlbmRlZC92Mi9hZGRyZXNzZXMvJHtyb290QWRkcmVzc30vYmFsYW5jZXMvZnQvJHt0ZXN0RGF0YS5TVFhfVE9LRU5fQVNTRVRfSUR9YClcbiAgICAgICAgLnJlcGx5KDIwMCwgdGVzdERhdGEuVE9LRU5fQkFMQU5DRV9SRVNQT05TRSk7XG4gICAgICBub2NrKCdodHRwczovL2FwaS50ZXN0bmV0Lmhpcm8uc28nKVxuICAgICAgICAuZ2V0KGAvZXh0ZW5kZWQvdjEvYWRkcmVzcy8ke3Jvb3RBZGRyZXNzfS9ub25jZXNgKVxuICAgICAgICAucmVwbHkoMjAwLCB0ZXN0RGF0YS5BQ0NPVU5UX05PTkNFX1JFU1BPTlNFKTtcbiAgICAgIG5vY2soJ2h0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zbycsIHsgYWxsb3dVbm1vY2tlZDogdHJ1ZSB9KVxuICAgICAgICAucG9zdChgL3YyL2ZlZXMvdHJhbnNhY3Rpb25gKVxuICAgICAgICAucmVwbHkoMjAwLCB0ZXN0RGF0YS5GRUVfRVNUSU1BVElPTl9UT0tFTl9SRVNQT05TRSk7XG5cbiAgICAgIGNvbnN0IHJlY292ZXJ5T3B0aW9uczogUmVjb3ZlcnlPcHRpb25zID0ge1xuICAgICAgICBiYWNrdXBLZXk6IHRlc3REYXRhLkhPVF9XQUxMRVRfS0VZX0NBUkRfSU5GTy5CQUNLVVBfS0VZLFxuICAgICAgICB1c2VyS2V5OiB0ZXN0RGF0YS5IT1RfV0FMTEVUX0tFWV9DQVJEX0lORk8uVVNFUl9LRVksXG4gICAgICAgIHJvb3RBZGRyZXNzOiByb290QWRkcmVzcyxcbiAgICAgICAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogYCR7dGVzdERhdGEuREVTVElOQVRJT05fQUREUkVTU19XUld9P21lbW9JZD04YCxcbiAgICAgICAgYml0Z29LZXk6IHRlc3REYXRhLkhPVF9XQUxMRVRfS0VZX0NBUkRfSU5GTy5CSVRHT19QVUJfS0VZLFxuICAgICAgICB3YWxsZXRQYXNzcGhyYXNlOiB0ZXN0RGF0YS5IT1RfV0FMTEVUX0tFWV9DQVJEX0lORk8uV0FMTEVUX1BBU1NQSFJBU0UsXG4gICAgICAgIGNvbnRyYWN0SWQ6ICdTVEFHMThFNDVXNjEzRlozSDRaTUY2UUhINDI2RVhNNVFUU0FWV1lILnRzaXA2ZHAtdG9rZW4nLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gKGF3YWl0IGJhc2Vjb2luLnJlY292ZXIocmVjb3ZlcnlPcHRpb25zKSkgYXMgUmVjb3ZlcnlUcmFuc2FjdGlvbjtcbiAgICAgIHNob3VsZC5leGlzdChyZXNwb25zZS50eEhleCk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGJ1aWxkIGFuIHVuc2lnbmVkIHRva2VuIHRyYW5zYWN0aW9uIHdoZW4gcHVibGljIGtleXMgYXJlIHBhc3NlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJvb3RBZGRyZXNzID0gdGVzdERhdGEuQ09MRF9XQUxMRVRfUk9PVF9BRERSRVNTO1xuICAgICAgbm9jayhgaHR0cHM6Ly9hcGkudGVzdG5ldC5oaXJvLnNvYClcbiAgICAgICAgLmdldChgL2V4dGVuZGVkL3YyL2FkZHJlc3Nlcy8ke3Jvb3RBZGRyZXNzfS9iYWxhbmNlcy9zdHhgKVxuICAgICAgICAucmVwbHkoMjAwLCB0ZXN0RGF0YS5BQ0NPVU5UX0JBTEFOQ0VfUkVTUE9OU0UpO1xuICAgICAgbm9jaygnaHR0cHM6Ly9hcGkudGVzdG5ldC5oaXJvLnNvJylcbiAgICAgICAgLmdldChgL2V4dGVuZGVkL3YyL2FkZHJlc3Nlcy8ke3Jvb3RBZGRyZXNzfS9iYWxhbmNlcy9mdC8ke3Rlc3REYXRhLlNUWF9UT0tFTl9BU1NFVF9JRH1gKVxuICAgICAgICAucmVwbHkoMjAwLCB0ZXN0RGF0YS5UT0tFTl9CQUxBTkNFX1JFU1BPTlNFKTtcbiAgICAgIG5vY2soYGh0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zb2AsIHsgYWxsb3dVbm1vY2tlZDogdHJ1ZSB9KVxuICAgICAgICAuZ2V0KGAvZXh0ZW5kZWQvdjEvYWRkcmVzcy8ke3Jvb3RBZGRyZXNzfS9ub25jZXNgKVxuICAgICAgICAucmVwbHkoMjAwLCB0ZXN0RGF0YS5BQ0NPVU5UX05PTkNFX1JFU1BPTlNFKTtcbiAgICAgIGNvbnN0IGZlZUVzdGltYXRlUmVxdWVzdCA9IHRlc3REYXRhLkZFRV9FU1RJTUFUSU9OX1RPS0VOX1JFUVVFU1Q7XG4gICAgICBmZWVFc3RpbWF0ZVJlcXVlc3QudHJhbnNhY3Rpb25fcGF5bG9hZCA9XG4gICAgICAgICcwMjFhMTUwMGExYzQyZjBjMTFiZmUzODkzZjQ3OWFmMTg5MDQ2Nzc2ODViZTBkNzQ3MzY5NzAzNjY0NzAyZDc0NmY2YjY1NmUwODc0NzI2MTZlNzM2NjY1NzIwMDAwMDAwNDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVmNWUxMDAwNTE1OWYyZjFhZmY2ZmEwMDYyZTFmN2ZhNjA5NjEzM2U3NWY0N2E3ZThmNzA1MWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMDknO1xuICAgICAgbm9jayhgaHR0cHM6Ly9hcGkudGVzdG5ldC5oaXJvLnNvYClcbiAgICAgICAgLnBvc3QoYC92Mi9mZWVzL3RyYW5zYWN0aW9uYCwgZmVlRXN0aW1hdGVSZXF1ZXN0KVxuICAgICAgICAucmVwbHkoMjAwLCB0ZXN0RGF0YS5GRUVfRVNUSU1BVElPTl9UT0tFTl9SRVNQT05TRSk7XG5cbiAgICAgIGNvbnN0IHJlY292ZXJ5T3B0aW9uczogUmVjb3ZlcnlPcHRpb25zID0ge1xuICAgICAgICBiYWNrdXBLZXk6IHRlc3REYXRhLkNPTERfV0FMTEVUX1BVQkxJQ19LRVlfSU5GTy5CQUNLVVBfS0VZLFxuICAgICAgICB1c2VyS2V5OiB0ZXN0RGF0YS5DT0xEX1dBTExFVF9QVUJMSUNfS0VZX0lORk8uVVNFUl9LRVksXG4gICAgICAgIHJvb3RBZGRyZXNzOiByb290QWRkcmVzcyxcbiAgICAgICAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogdGVzdERhdGEuREVTVElOQVRJT05fQUREUkVTU19XUlcsXG4gICAgICAgIGJpdGdvS2V5OiB0ZXN0RGF0YS5DT0xEX1dBTExFVF9QVUJMSUNfS0VZX0lORk8uQklUR09fUFVCX0tFWSxcbiAgICAgICAgY29udHJhY3RJZDogJ1NUQUcxOEU0NVc2MTNGWjNINFpNRjZRSEg0MjZFWE01UVRTQVZXWUgudHNpcDZkcC10b2tlbicsXG4gICAgICB9O1xuICAgICAgY29uc3QgcmVzcG9uc2U6IFJlY292ZXJ5SW5mbyA9IChhd2FpdCBiYXNlY29pbi5yZWNvdmVyKHJlY292ZXJ5T3B0aW9ucykpIGFzIFJlY292ZXJ5SW5mbztcbiAgICAgIHJlc3BvbnNlLnNob3VsZC5oYXZlLnByb3BlcnR5KCd0eEhleCcpO1xuICAgICAgcmVzcG9uc2Uuc2hvdWxkLmhhdmUucHJvcGVydHkoJ2NvaW4nKTtcbiAgICAgIHJlc3BvbnNlLnNob3VsZC5oYXZlLnByb3BlcnR5KCdmZWVJbmZvJyk7XG4gICAgICBhc3NlcnQuZGVlcEVxdWFsKHJlc3BvbnNlLnR4SGV4LCB0ZXN0RGF0YS5DT0xEX1dBTExFVF9UT0tFTl9VTlNJR05FRF9TV0VFUF9UWF9IRVgsICd0eCBoZXggbm90IG1hdGNoaW5nIScpO1xuICAgICAgYXNzZXJ0LmRlZXBFcXVhbChyZXNwb25zZS5jb2luLCAndHN0eDp0c2lwNmRwJywgJ2NvaW4gbm90IG1hdGNoaW5nIScpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHdpdGggaW5zdWZmaWNpZW50IGJhbGFuY2Ugd2hlbiBuYXRpdmUgc3R4IGJhbGFuY2UgaXMgbG93ZXIgdGhhbiBmZWUgZm9yIHNpcDEwJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgcm9vdEFkZHJlc3MgPSB0ZXN0RGF0YS5IT1RfV0FMTEVUX1JPT1RfQUREUkVTUztcbiAgICAgIGNvbnN0IGFjY291bnRCYWxhbmNlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0ZXN0RGF0YS5BQ0NPVU5UX0JBTEFOQ0VfUkVTUE9OU0UpKTtcbiAgICAgIGFjY291bnRCYWxhbmNlLmJhbGFuY2UgPSAnMTAwJzsgLy8gc2V0IGJhbGFuY2UgbG93ZXIgdGhhbiBmZWVcbiAgICAgIG5vY2soYGh0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zb2ApXG4gICAgICAgIC5nZXQoYC9leHRlbmRlZC92Mi9hZGRyZXNzZXMvJHtyb290QWRkcmVzc30vYmFsYW5jZXMvc3R4YClcbiAgICAgICAgLnJlcGx5KDIwMCwgYWNjb3VudEJhbGFuY2UpO1xuICAgICAgbm9jaygnaHR0cHM6Ly9hcGkudGVzdG5ldC5oaXJvLnNvJylcbiAgICAgICAgLmdldChgL2V4dGVuZGVkL3YyL2FkZHJlc3Nlcy8ke3Jvb3RBZGRyZXNzfS9iYWxhbmNlcy9mdC8ke3Rlc3REYXRhLlNUWF9UT0tFTl9BU1NFVF9JRH1gKVxuICAgICAgICAucmVwbHkoMjAwLCB0ZXN0RGF0YS5UT0tFTl9CQUxBTkNFX1JFU1BPTlNFKTtcbiAgICAgIG5vY2soYGh0dHBzOi8vYXBpLnRlc3RuZXQuaGlyby5zb2ApXG4gICAgICAgIC5nZXQoYC9leHRlbmRlZC92MS9hZGRyZXNzLyR7cm9vdEFkZHJlc3N9L25vbmNlc2ApXG4gICAgICAgIC5yZXBseSgyMDAsIHRlc3REYXRhLkFDQ09VTlRfTk9OQ0VfUkVTUE9OU0UpO1xuICAgICAgY29uc3QgZmVlUmVxdWVzdEJvZHkgPSB0ZXN0RGF0YS5GRUVfRVNUSU1BVElPTl9UT0tFTl9SRVFVRVNUO1xuICAgICAgZmVlUmVxdWVzdEJvZHkudHJhbnNhY3Rpb25fcGF5bG9hZCA9XG4gICAgICAgICcwMjFhMTUwMGExYzQyZjBjMTFiZmUzODkzZjQ3OWFmMTg5MDQ2Nzc2ODViZTBkNzQ3MzY5NzAzNjY0NzAyZDc0NmY2YjY1NmUwODc0NzI2MTZlNzM2NjY1NzIwMDAwMDAwNDAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDVmNWUxMDAwNTE1NDk4NTdlYjRiNmRkNGZlZTA4YzNlYzA0ZTNkMGVkMDRlZjY3ZDMyNDA1MWExNTAwYTFjNDJmMGMxMWJmZTM4OTNmNDc5YWYxODkwNDY3NzY4NWJlMDknO1xuICAgICAgbm9jayhgaHR0cHM6Ly9hcGkudGVzdG5ldC5oaXJvLnNvYCwgeyBhbGxvd1VubW9ja2VkOiB0cnVlIH0pXG4gICAgICAgIC5wb3N0KGAvdjIvZmVlcy90cmFuc2FjdGlvbmAsIGZlZVJlcXVlc3RCb2R5KVxuICAgICAgICAucmVwbHkoMjAwLCB0ZXN0RGF0YS5GRUVfRVNUSU1BVElPTl9UT0tFTl9SRVNQT05TRSk7XG4gICAgICBjb25zdCByZWNvdmVyeU9wdGlvbnM6IFJlY292ZXJ5T3B0aW9ucyA9IHtcbiAgICAgICAgYmFja3VwS2V5OiB0ZXN0RGF0YS5IT1RfV0FMTEVUX0tFWV9DQVJEX0lORk8uQkFDS1VQX0tFWSxcbiAgICAgICAgdXNlcktleTogdGVzdERhdGEuSE9UX1dBTExFVF9LRVlfQ0FSRF9JTkZPLlVTRVJfS0VZLFxuICAgICAgICByb290QWRkcmVzczogcm9vdEFkZHJlc3MsXG4gICAgICAgIHJlY292ZXJ5RGVzdGluYXRpb246IHRlc3REYXRhLkRFU1RJTkFUSU9OX0FERFJFU1NfV1JXLFxuICAgICAgICBiaXRnb0tleTogdGVzdERhdGEuSE9UX1dBTExFVF9LRVlfQ0FSRF9JTkZPLkJJVEdPX1BVQl9LRVksXG4gICAgICAgIHdhbGxldFBhc3NwaHJhc2U6IHRlc3REYXRhLkhPVF9XQUxMRVRfS0VZX0NBUkRfSU5GTy5XQUxMRVRfUEFTU1BIUkFTRSxcbiAgICAgICAgY29udHJhY3RJZDogJ1NUQUcxOEU0NVc2MTNGWjNINFpNRjZRSEg0MjZFWE01UVRTQVZXWUgudHNpcDZkcC10b2tlbicsXG4gICAgICB9O1xuICAgICAgYXdhaXQgYmFzZWNvaW4ucmVjb3ZlcihyZWNvdmVyeU9wdGlvbnMpLnNob3VsZC5yZWplY3RlZFdpdGgoJ2luc3VmZmljaWVudCBiYWxhbmNlIHRvIGJ1aWxkIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHdoZW4gb25seSBjb250cmFjdCBhZGRyZXNzIGlzIHBhc3NlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlY292ZXJ5T3B0aW9uczogUmVjb3ZlcnlPcHRpb25zID0ge1xuICAgICAgICBiYWNrdXBLZXk6IHRlc3REYXRhLkhPVF9XQUxMRVRfS0VZX0NBUkRfSU5GTy5CQUNLVVBfS0VZLFxuICAgICAgICB1c2VyS2V5OiB0ZXN0RGF0YS5IT1RfV0FMTEVUX0tFWV9DQVJEX0lORk8uVVNFUl9LRVksXG4gICAgICAgIHJvb3RBZGRyZXNzOiB0ZXN0RGF0YS5IT1RfV0FMTEVUX1JPT1RfQUREUkVTUyxcbiAgICAgICAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogdGVzdERhdGEuREVTVElOQVRJT05fQUREUkVTU19XUlcsXG4gICAgICAgIGJpdGdvS2V5OiB0ZXN0RGF0YS5IT1RfV0FMTEVUX0tFWV9DQVJEX0lORk8uQklUR09fUFVCX0tFWSxcbiAgICAgICAgd2FsbGV0UGFzc3BocmFzZTogdGVzdERhdGEuSE9UX1dBTExFVF9LRVlfQ0FSRF9JTkZPLldBTExFVF9QQVNTUEhSQVNFLFxuICAgICAgICBjb250cmFjdElkOiAnU1RBRzE4RTQ1VzYxM0ZaM0g0Wk1GNlFISDQyNkVYTTVRVFNBVldZSCcsXG4gICAgICB9O1xuICAgICAgYXdhaXQgYmFzZWNvaW5cbiAgICAgICAgLnJlY292ZXIocmVjb3ZlcnlPcHRpb25zKVxuICAgICAgICAuc2hvdWxkLnJlamVjdGVkV2l0aCgnaW52YWxpZCBjb250cmFjdCBpZCwgcGxlYXNlIHByb3ZpZGUgaXQgaW4gdGhlIGZvcm0gKGNvbnRyYWN0QWRkcmVzcy5jb250cmFjdE5hbWUpJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdTaXAxMCB0b2tlbiBtZXRhZGF0YScsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnZXhwb3NlcyB0aGUgY29uZmlndXJlZCB0b2tlbiBwcm9wZXJ0aWVzJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgY29uZmlnID0gKFxuICAgICAgICBiYXNlY29pbiBhcyB1bmtub3duIGFzIHtcbiAgICAgICAgICB0b2tlbkNvbmZpZzoge1xuICAgICAgICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgICAgICAgY29pbjogc3RyaW5nO1xuICAgICAgICAgICAgbmV0d29yazogc3RyaW5nO1xuICAgICAgICAgICAgYXNzZXRJZDogc3RyaW5nO1xuICAgICAgICAgICAgZGVjaW1hbFBsYWNlczogbnVtYmVyO1xuICAgICAgICAgICAgdHlwZTogc3RyaW5nO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICkudG9rZW5Db25maWc7XG5cbiAgICAgIGJhc2Vjb2luLm5hbWUuc2hvdWxkLmVxdWFsKGNvbmZpZy5uYW1lKTtcbiAgICAgIGJhc2Vjb2luLmNvaW4uc2hvdWxkLmVxdWFsKGNvbmZpZy5jb2luKTtcbiAgICAgIGJhc2Vjb2luLm5ldHdvcmsuc2hvdWxkLmVxdWFsKGNvbmZpZy5uZXR3b3JrKTtcbiAgICAgIGJhc2Vjb2luLmFzc2V0SWQuc2hvdWxkLmVxdWFsKGNvbmZpZy5hc3NldElkKTtcbiAgICAgIGJhc2Vjb2luLmRlY2ltYWxQbGFjZXMuc2hvdWxkLmVxdWFsKGNvbmZpZy5kZWNpbWFsUGxhY2VzKTtcbiAgICAgIGJhc2Vjb2luLmdldENoYWluKCkuc2hvdWxkLmVxdWFsKGNvbmZpZy50eXBlKTtcbiAgICAgIGJhc2Vjb2luLmdldEJhc2VDaGFpbigpLnNob3VsZC5lcXVhbChjb25maWcuY29pbik7XG4gICAgICBiYXNlY29pbi5nZXRGdWxsTmFtZSgpLnNob3VsZC5lcXVhbCgnU2lwMTAgVG9rZW4nKTtcbiAgICAgIGJhc2Vjb2luLmdldEJhc2VGYWN0b3IoKS5zaG91bGQuZXF1YWwoTWF0aC5wb3coMTAsIGNvbmZpZy5kZWNpbWFsUGxhY2VzKSk7XG4gICAgfSk7XG5cbiAgICBpdCgncmV0dXJucyBhIGZ1bmdpYmxlIHRva2VuIHRyYW5zZmVyIGJ1aWxkZXIgZnJvbSBnZXRUcmFuc2FjdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBiYXNlY29pbi5nZXRUcmFuc2FjdGlvbihjb2lucy5nZXQoYmFzZWNvaW4uZ2V0Q2hhaW4oKSkpO1xuICAgICAgc2hvdWxkLmV4aXN0KGJ1aWxkZXIpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19