@bitgo-beta/sdk-coin-apt 1.0.1-beta.142 → 1.0.1-beta.1421

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 (140) hide show
  1. package/dist/src/apt.d.ts +17 -3
  2. package/dist/src/apt.d.ts.map +1 -1
  3. package/dist/src/apt.js +47 -14
  4. package/dist/src/aptNFTCollection.d.ts +18 -0
  5. package/dist/src/aptNFTCollection.d.ts.map +1 -0
  6. package/dist/src/aptNFTCollection.js +52 -0
  7. package/dist/src/aptToken.d.ts +1 -1
  8. package/dist/src/aptToken.d.ts.map +1 -1
  9. package/dist/src/aptToken.js +3 -3
  10. package/dist/src/index.d.ts +1 -0
  11. package/dist/src/index.d.ts.map +1 -1
  12. package/dist/src/index.js +2 -1
  13. package/dist/src/lib/constants.d.ts +9 -0
  14. package/dist/src/lib/constants.d.ts.map +1 -1
  15. package/dist/src/lib/constants.js +11 -2
  16. package/dist/src/lib/iface.d.ts +95 -1
  17. package/dist/src/lib/iface.d.ts.map +1 -1
  18. package/dist/src/lib/iface.js +1 -1
  19. package/dist/src/lib/index.d.ts +15 -5
  20. package/dist/src/lib/index.d.ts.map +1 -1
  21. package/dist/src/lib/index.js +30 -10
  22. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts +21 -0
  23. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.d.ts.map +1 -0
  24. package/dist/src/lib/transaction/abstractDelegationPoolAmountBasedTransaction.js +61 -0
  25. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts +13 -0
  26. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.d.ts.map +1 -0
  27. package/dist/src/lib/transaction/abstractDelegationPoolTransaction.js +23 -0
  28. package/dist/src/lib/transaction/abstractTransferTransaction.d.ts +10 -0
  29. package/dist/src/lib/transaction/abstractTransferTransaction.d.ts.map +1 -0
  30. package/dist/src/lib/transaction/abstractTransferTransaction.js +39 -0
  31. package/dist/src/lib/transaction/customTransaction.d.ts +89 -0
  32. package/dist/src/lib/transaction/customTransaction.d.ts.map +1 -0
  33. package/dist/src/lib/transaction/customTransaction.js +278 -0
  34. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts +10 -0
  35. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.d.ts.map +1 -0
  36. package/dist/src/lib/transaction/delegationPoolAddStakeTransaction.js +48 -0
  37. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts +10 -0
  38. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.d.ts.map +1 -0
  39. package/dist/src/lib/transaction/delegationPoolUnlockTransaction.js +24 -0
  40. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts +10 -0
  41. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.d.ts.map +1 -0
  42. package/dist/src/lib/transaction/delegationPoolWithdrawTransaction.js +43 -0
  43. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts +5 -4
  44. package/dist/src/lib/transaction/digitalAssetTransfer.d.ts.map +1 -1
  45. package/dist/src/lib/transaction/digitalAssetTransfer.js +20 -33
  46. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts +7 -4
  47. package/dist/src/lib/transaction/fungibleAssetTransfer.d.ts.map +1 -1
  48. package/dist/src/lib/transaction/fungibleAssetTransfer.js +52 -38
  49. package/dist/src/lib/transaction/transaction.d.ts +22 -4
  50. package/dist/src/lib/transaction/transaction.d.ts.map +1 -1
  51. package/dist/src/lib/transaction/transaction.js +46 -24
  52. package/dist/src/lib/transaction/transferTransaction.d.ts +7 -4
  53. package/dist/src/lib/transaction/transferTransaction.d.ts.map +1 -1
  54. package/dist/src/lib/transaction/transferTransaction.js +43 -37
  55. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts +64 -0
  56. package/dist/src/lib/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  57. package/dist/src/lib/transactionBuilder/customTransactionBuilder.js +127 -0
  58. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +15 -0
  59. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
  60. package/dist/src/lib/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +50 -0
  61. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +15 -0
  62. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
  63. package/dist/src/lib/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +50 -0
  64. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +15 -0
  65. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
  66. package/dist/src/lib/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +50 -0
  67. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -1
  68. package/dist/src/lib/transactionBuilder/digitalAssetTransferBuilder.js +3 -2
  69. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts +1 -0
  70. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -1
  71. package/dist/src/lib/transactionBuilder/fungibleAssetTransferBuilder.js +14 -13
  72. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts +6 -0
  73. package/dist/src/lib/transactionBuilder/transactionBuilder.d.ts.map +1 -1
  74. package/dist/src/lib/transactionBuilder/transactionBuilder.js +25 -5
  75. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts +1 -0
  76. package/dist/src/lib/transactionBuilder/transferBuilder.d.ts.map +1 -1
  77. package/dist/src/lib/transactionBuilder/transferBuilder.js +13 -11
  78. package/dist/src/lib/transactionBuilderFactory.d.ts +15 -7
  79. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  80. package/dist/src/lib/transactionBuilderFactory.js +48 -11
  81. package/dist/src/lib/utils/validation.d.ts +32 -0
  82. package/dist/src/lib/utils/validation.d.ts.map +1 -0
  83. package/dist/src/lib/utils/validation.js +99 -0
  84. package/dist/src/lib/utils.d.ts +22 -2
  85. package/dist/src/lib/utils.d.ts.map +1 -1
  86. package/dist/src/lib/utils.js +91 -2
  87. package/dist/src/register.d.ts.map +1 -1
  88. package/dist/src/register.js +5 -1
  89. package/dist/test/integration/index.d.ts +1 -0
  90. package/dist/test/integration/index.d.ts.map +1 -0
  91. package/dist/test/integration/index.js +1 -0
  92. package/dist/test/resources/apt.d.ts +56 -0
  93. package/dist/test/resources/apt.d.ts.map +1 -0
  94. package/dist/test/resources/apt.js +115 -0
  95. package/dist/test/unit/apt.d.ts +2 -0
  96. package/dist/test/unit/apt.d.ts.map +1 -0
  97. package/dist/test/unit/apt.js +360 -0
  98. package/dist/test/unit/aptToken.d.ts +2 -0
  99. package/dist/test/unit/aptToken.d.ts.map +1 -0
  100. package/dist/test/unit/aptToken.js +92 -0
  101. package/dist/test/unit/customTransaction.test.d.ts +2 -0
  102. package/dist/test/unit/customTransaction.test.d.ts.map +1 -0
  103. package/dist/test/unit/customTransaction.test.js +264 -0
  104. package/dist/test/unit/getBuilderFactory.d.ts +3 -0
  105. package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
  106. package/dist/test/unit/getBuilderFactory.js +10 -0
  107. package/dist/test/unit/keyPair.d.ts +2 -0
  108. package/dist/test/unit/keyPair.d.ts.map +1 -0
  109. package/dist/test/unit/keyPair.js +71 -0
  110. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts +2 -0
  111. package/dist/test/unit/transactionBuilder/customTransactionBuilder.d.ts.map +1 -0
  112. package/dist/test/unit/transactionBuilder/customTransactionBuilder.js +743 -0
  113. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts +2 -0
  114. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.d.ts.map +1 -0
  115. package/dist/test/unit/transactionBuilder/delegationPoolAddStakeTransactionBuilder.js +172 -0
  116. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts +2 -0
  117. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.d.ts.map +1 -0
  118. package/dist/test/unit/transactionBuilder/delegationPoolUnlockTransactionBuilder.js +148 -0
  119. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts +2 -0
  120. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.d.ts.map +1 -0
  121. package/dist/test/unit/transactionBuilder/delegationPoolWithdrawTransactionBuilder.js +172 -0
  122. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts +2 -0
  123. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.d.ts.map +1 -0
  124. package/dist/test/unit/transactionBuilder/digitalAssetTransferBuilder.js +276 -0
  125. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts +2 -0
  126. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.d.ts.map +1 -0
  127. package/dist/test/unit/transactionBuilder/fungibleAssetTransferBuilder.js +449 -0
  128. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
  129. package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
  130. package/dist/test/unit/transactionBuilder/transferBuilder.js +529 -0
  131. package/dist/test/unit/utils.d.ts +2 -0
  132. package/dist/test/unit/utils.d.ts.map +1 -0
  133. package/dist/test/unit/utils.js +108 -0
  134. package/dist/tsconfig.tsbuildinfo +1 -0
  135. package/package.json +15 -11
  136. package/.eslintignore +0 -4
  137. package/.gitignore +0 -3
  138. package/.mocharc.yml +0 -8
  139. package/.prettierignore +0 -2
  140. package/CHANGELOG.md +0 -114
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELEGATION_POOL_WITHDRAW_TX_HEX_SIGNABLE_PAYLOAD = exports.DELEGATION_POOL_UNLOCK_TX_HEX_SIGNABLE_PAYLOAD = exports.DELEGATION_POOL_ADD_STAKE_TX_HEX_SIGNABLE_PAYLOAD = exports.DELEGATION_POOL_WITHDRAW_TX_HEX = exports.DELEGATION_POOL_UNLOCK_TX_HEX = exports.DELEGATION_POOL_ADD_STAKE_TX_HEX = exports.FUNGIBLE_BATCH_SIGNABLE_PAYLOAD = exports.FUNGIBLE_BATCH_RAW_TX_HEX = exports.FUNGIBLE_SERIALIZED_TX_HEX = exports.LEGACY_COIN = exports.digitalAssetAddress = exports.fungibleTokenAddress = exports.INVALID_TRANSFER = exports.COIN_BATCH_TRANSFER = exports.DIGITAL_ASSET_TRANSFER = exports.FUNGIBLE_BATCH_TRANSFER = exports.FUNGIBLE_TOKEN_TRANSFER = exports.TRANSACTION_USING_TRANSFER_COINS = exports.TRANSFER = exports.invalidRecipients = exports.delegationPoolData = exports.digitalTokenRecipients = exports.batchFungibleRecipients = exports.fungibleTokenRecipients = exports.batchRecipients = exports.recipients = exports.feePayer = exports.fungibleSender = exports.sender2 = exports.sender = exports.addresses = exports.FUNGIBLE_TOKEN_AMOUNT = exports.AMOUNT = void 0;
4
+ exports.AMOUNT = 1000;
5
+ exports.FUNGIBLE_TOKEN_AMOUNT = 1;
6
+ exports.addresses = {
7
+ validAddresses: [
8
+ '0xf7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad9',
9
+ '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a372449',
10
+ ],
11
+ invalidAddresses: [
12
+ 'randomString',
13
+ '0xc4173a804406a365e69dfb297ddfgsdcvf',
14
+ '5ne7phA48Jrvpn39AtupB8ZkCCAy8gLTfpGihZPuDqen',
15
+ ],
16
+ };
17
+ exports.sender = {
18
+ address: '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a372449',
19
+ privateKey: '0x54e1a88eb2b881fe6c222985d0fabc9ba3aca35743dd1d19db18a9a355acbaaa',
20
+ publicKey: '0xf73836f42257240e43d439552471fc9dbcc3f1af5bd0b4ed83f44b5f66146442',
21
+ };
22
+ exports.sender2 = {
23
+ address: '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a372449',
24
+ publicKey: '0xf73836f42257240e43d439552471fc9dbcc3f1af5bd0b4ed83f44b5f66146442',
25
+ };
26
+ exports.fungibleSender = {
27
+ address: '0xd171f03aa2c3f37d7838b76cdd83da045ecc3f080a1c190f7e412d79485809a0',
28
+ };
29
+ exports.feePayer = {
30
+ address: '0xdbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f2',
31
+ privateKey: '0x51a9507d9127841a1465189188d93065cb26bad3bec05d3c8f28e9c1fc35bda0',
32
+ publicKey: '0x5223396c531f13e031a9f0cb26d459d799a52e51be9a1cb9e871afb4c31f91ff',
33
+ };
34
+ exports.recipients = [
35
+ {
36
+ address: exports.addresses.validAddresses[0],
37
+ amount: exports.AMOUNT.toString(),
38
+ },
39
+ ];
40
+ exports.batchRecipients = [
41
+ {
42
+ address: '0xdd52c0b72a73696b867d6571a308c413e43bff8f44956a5991abc4d50db0b849',
43
+ amount: '1000',
44
+ },
45
+ {
46
+ address: '0x2a81760d52db9a96df2609860218214b6d1012e77e84a3fed5145a9a65bf6932',
47
+ amount: '1000',
48
+ },
49
+ ];
50
+ exports.fungibleTokenRecipients = [
51
+ {
52
+ address: exports.addresses.validAddresses[0],
53
+ amount: exports.FUNGIBLE_TOKEN_AMOUNT.toString(),
54
+ },
55
+ {
56
+ address: '0xba7af528be58094057170e365a6b5fa836868152a505b2733355dff1d183171e',
57
+ amount: '1',
58
+ },
59
+ ];
60
+ exports.batchFungibleRecipients = [
61
+ {
62
+ address: '0xdd52c0b72a73696b867d6571a308c413e43bff8f44956a5991abc4d50db0b849',
63
+ amount: '1',
64
+ },
65
+ {
66
+ address: '0x2a81760d52db9a96df2609860218214b6d1012e77e84a3fed5145a9a65bf6932',
67
+ amount: '1',
68
+ },
69
+ ];
70
+ exports.digitalTokenRecipients = [
71
+ {
72
+ address: exports.addresses.validAddresses[0],
73
+ amount: '1',
74
+ },
75
+ ];
76
+ exports.delegationPoolData = {
77
+ validatorAddress: exports.addresses.validAddresses[0],
78
+ amount: exports.AMOUNT.toString(),
79
+ };
80
+ exports.invalidRecipients = [
81
+ {
82
+ address: exports.addresses.invalidAddresses[0],
83
+ amount: exports.AMOUNT.toString(),
84
+ },
85
+ {
86
+ address: exports.addresses.validAddresses[0],
87
+ amount: '-919191',
88
+ },
89
+ {
90
+ address: exports.addresses.validAddresses[0],
91
+ amount: 'invalidAmount',
92
+ },
93
+ ];
94
+ exports.TRANSFER = '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a37244992000000000000000200000000000000000000000000000000000000000000000000000000000000010d6170746f735f6163636f756e740e7472616e736665725f636f696e73010700000000000000000000000000000000000000000000000000000000000000010a6170746f735f636f696e094170746f73436f696e000220f7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad908e803000000000000400d0300000000006400000000000000979390670000000002030020f73836f42257240e43d439552471fc9dbcc3f1af5bd0b4ed83f44b5f6614644240caeb90efd4b7ecd922c97bb3163e6a9de1fbb2ee0fc0d56af484f4af9b0015c5831341550af29b3686713b6657c821d894635fe13c7933f06ee043728f040b090000dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f200205223396c531f13e031a9f0cb26d459d799a52e51be9a1cb9e871afb4c31f91ff4013e7e8a1325ee5f656c93baa3d0206a1d9bd6da5abdc6f5d9b8bbbb0926ddac68f3e57a915dd217d2d43e776a6cc01af72f895ea712acc836d30349f29a3c606';
95
+ exports.TRANSACTION_USING_TRANSFER_COINS = '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a37244992000000000000000200000000000000000000000000000000000000000000000000000000000000010d6170746f735f6163636f756e740e7472616e736665725f636f696e73010700000000000000000000000000000000000000000000000000000000000000010a6170746f735f636f696e094170746f73436f696e000220f7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad908e803000000000000400d0300000000006400000000000000979390670000000002030020f73836f42257240e43d439552471fc9dbcc3f1af5bd0b4ed83f44b5f6614644240caeb90efd4b7ecd922c97bb3163e6a9de1fbb2ee0fc0d56af484f4af9b0015c5831341550af29b3686713b6657c821d894635fe13c7933f06ee043728f040b090000dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f200205223396c531f13e031a9f0cb26d459d799a52e51be9a1cb9e871afb4c31f91ff4013e7e8a1325ee5f656c93baa3d0206a1d9bd6da5abdc6f5d9b8bbbb0926ddac68f3e57a915dd217d2d43e776a6cc01af72f895ea712acc836d30349f29a3c606';
96
+ exports.FUNGIBLE_TOKEN_TRANSFER = '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a372449a700000000000000020000000000000000000000000000000000000000000000000000000000000001167072696d6172795f66756e6769626c655f73746f7265087472616e73666572010700000000000000000000000000000000000000000000000000000000000000010e66756e6769626c655f6173736574084d65746164617461000320d5d0d561493ea2b9410f67da804653ae44e793c2423707d4f11edb2e3819205020f7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad9080100000000000000400d0300000000006400000000000000e42696670000000002030020f73836f42257240e43d439552471fc9dbcc3f1af5bd0b4ed83f44b5f661464424029665cd4c94658a0d83907bbed7e761794b25bccc03fc87e6dd63a543accdddfd7a6f1e7a15e8681547ca437ff99b58c92f816e35a0f333d7f1fd1330c21ad0a0000dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f200205223396c531f13e031a9f0cb26d459d799a52e51be9a1cb9e871afb4c31f91ff40de7b0bb86ca346031942e9cf21ff9604c7c08c2c662e38a0afe3dd640512c0441396c0697cd8bbbcf39694d6f88e35f6bed9fb34bd209b0479b5e8bd0cf3eb0b';
97
+ exports.FUNGIBLE_BATCH_TRANSFER = '0xc8f02d25aa698b3e9fbd8a08e8da4c8ee261832a25a4cde8731b5ec356537d0951000000000000000200000000000000000000000000000000000000000000000000000000000000010d6170746f735f6163636f756e741e62617463685f7472616e736665725f66756e6769626c655f617373657473000320d5d0d561493ea2b9410f67da804653ae44e793c2423707d4f11edb2e381920504102dd52c0b72a73696b867d6571a308c413e43bff8f44956a5991abc4d50db0b8492a81760d52db9a96df2609860218214b6d1012e77e84a3fed5145a9a65bf6932110201000000000000000100000000000000400d030000000000640000000000000000255a3ab3010000020300202121dcd098069ae535697dd019cfd8677ca7aba0adac1d1959cbce6dc54b125940d3e7448bafd11924a5d18985310b99a539a7b903961d5c296fdcb314950b4a247fad77bad797a644e59fb76767cf796c207a40ebc3d22fc5c847172ebf09570f0000dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f200205223396c531f13e031a9f0cb26d459d799a52e51be9a1cb9e871afb4c31f91ff40e242d59712e8e8a213cb6b24ab117854cf12275660dedcb49eb5b22f543bada83f87ca51d5da06a23ac5d4dc6bbfc7745cb44d22467be613565f41b3ba875108';
98
+ exports.DIGITAL_ASSET_TRANSFER = '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a372449ab00000000000000020000000000000000000000000000000000000000000000000000000000000001066f626a656374087472616e736665720107000000000000000000000000000000000000000000000000000000000000000405746f6b656e05546f6b656e0002202e356062777469d39ca5d9b72512ce2d5713d7938ed6ca9193d4fc2016a819fd20f7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad9400d0300000000006400000000000000526798670000000002030020f73836f42257240e43d439552471fc9dbcc3f1af5bd0b4ed83f44b5f66146442400c2c31eae495d22d1d31031b9756e8238a3df6e760515aa3e1108d93b3aec6aeb91684307e8365ad9dc44c0b5957e95a21a6f47d8d4a6e0eb3b145fb3d517f030000dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f200205223396c531f13e031a9f0cb26d459d799a52e51be9a1cb9e871afb4c31f91ff40dd6c064e44642819dec2f63d32d6daa4f889d62d06025ad99b42562c4c6cdef8b1437739115d7f38050078829efb9dd05528f53309bcab5b89fadb283423100d';
99
+ exports.COIN_BATCH_TRANSFER = '0xc8f02d25aa698b3e9fbd8a08e8da4c8ee261832a25a4cde8731b5ec356537d0951000000000000000200000000000000000000000000000000000000000000000000000000000000010d6170746f735f6163636f756e741462617463685f7472616e736665725f636f696e73010700000000000000000000000000000000000000000000000000000000000000010a6170746f735f636f696e094170746f73436f696e00024102dd52c0b72a73696b867d6571a308c413e43bff8f44956a5991abc4d50db0b8492a81760d52db9a96df2609860218214b6d1012e77e84a3fed5145a9a65bf69321102e803000000000000e803000000000000400d030000000000640000000000000009d4ea6700000000020300202121dcd098069ae535697dd019cfd8677ca7aba0adac1d1959cbce6dc54b12594047602d08426ce035971e86d57d57fc33a7e9d29da56a87a2e6e9d12ae3b39e25892298fa8b080111c609c9a451264b320236a06a45eab870765f90ffc4a42a030000dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f200205223396c531f13e031a9f0cb26d459d799a52e51be9a1cb9e871afb4c31f91ff401d817a641b915727057babb0ddfe6876583ac5c8d4b86b4c91385dc94f071f8e12a4908786a417b2721fa9838dd1bee6e153ca02f78de43161a9810407ea0b0f';
100
+ exports.INVALID_TRANSFER = 'AAAAAAAAAAAAA6e7361637469bc4a58e500b9e64cb6547ee9b403000000000000002064ba1fb2f2fbd2938a350015d601f4db89cd7e8e2370d0dd9ae3ac4f635c1581111b8a49f67370bc4a58e500b9e64cb6462e39b802000000000000002064ba1fb2f2fbd2938a350015d601f4db89cd7e8e2370d0dd9ae3ac47aa1ff81f01c4173a804406a365e69dfb297d4eaaf002546ebd016400000000000000cba4a48bb0f8b586c167e5dcefaa1c5e96ab3f0836d6ca08f2081732944d1e5b6b406a4a462e39b8030000000000000020b9490ede63215262c434e03f606d9799f3ba704523ceda184b386d47aa1ff81f01000000000000006400000000000000';
101
+ exports.fungibleTokenAddress = {
102
+ usdt: '0xd5d0d561493ea2b9410f67da804653ae44e793c2423707d4f11edb2e38192050',
103
+ };
104
+ exports.digitalAssetAddress = '0x2e356062777469d39ca5d9b72512ce2d5713d7938ed6ca9193d4fc2016a819fd';
105
+ exports.LEGACY_COIN = '0x4fb379c10c763a13e724064ecfb7d946690bea519ba982c81b518d1c11dd23fe::fa_test::Coinz';
106
+ exports.FUNGIBLE_SERIALIZED_TX_HEX = '0xd171f03aa2c3f37d7838b76cdd83da045ecc3f080a1c190f7e412d79485809a00000000000000000020000000000000000000000000000000000000000000000000000000000000001167072696d6172795f66756e6769626c655f73746f7265087472616e73666572010700000000000000000000000000000000000000000000000000000000000000010e66756e6769626c655f6173736574084d65746164617461000320d5d0d561493ea2b9410f67da804653ae44e793c2423707d4f11edb2e3819205020ba7af528be58094057170e365a6b5fa836868152a505b2733355dff1d183171e080100000000000000400d0300000000006400000000000000fcaabe670000000002030020000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c14e0894f3334dcd4008447628f3f7e3b5c5200eee399b72c0e63f8e5d09f09600209b4e96086d111500259f9b38680b0509a405c1904da18976455a20c691d3bb074000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';
107
+ exports.FUNGIBLE_BATCH_RAW_TX_HEX = '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a3724490e000000000000000200000000000000000000000000000000000000000000000000000000000000010d6170746f735f6163636f756e741e62617463685f7472616e736665725f66756e6769626c655f617373657473000320d5d0d561493ea2b9410f67da804653ae44e793c2423707d4f11edb2e381920504102dd52c0b72a73696b867d6571a308c413e43bff8f44956a5991abc4d50db0b8492a81760d52db9a96df2609860218214b6d1012e77e84a3fed5145a9a65bf6932110201000000000000000100000000000000400d03000000000064000000000000008b037d670000000002030020000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f2002000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';
108
+ exports.FUNGIBLE_BATCH_SIGNABLE_PAYLOAD = '5efa3c4f02f83a0f4b2d69fc95c607cc02825cc4e7be536ef0992df050d9e67c011aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a3724490e000000000000000200000000000000000000000000000000000000000000000000000000000000010d6170746f735f6163636f756e741e62617463685f7472616e736665725f66756e6769626c655f617373657473000320d5d0d561493ea2b9410f67da804653ae44e793c2423707d4f11edb2e381920504102dd52c0b72a73696b867d6571a308c413e43bff8f44956a5991abc4d50db0b8492a81760d52db9a96df2609860218214b6d1012e77e84a3fed5145a9a65bf6932110201000000000000000100000000000000400d03000000000064000000000000008b037d67000000000200dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f2';
109
+ exports.DELEGATION_POOL_ADD_STAKE_TX_HEX = '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a3724490e000000000000000200000000000000000000000000000000000000000000000000000000000000010f64656c65676174696f6e5f706f6f6c096164645f7374616b65000220f7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad908e803000000000000400d03000000000064000000000000008b037d670000000002030020000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f2002000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';
110
+ exports.DELEGATION_POOL_UNLOCK_TX_HEX = '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a3724490e000000000000000200000000000000000000000000000000000000000000000000000000000000010f64656c65676174696f6e5f706f6f6c06756e6c6f636b000220f7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad908e803000000000000400d03000000000064000000000000008b037d670000000002030020000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f2002000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';
111
+ exports.DELEGATION_POOL_WITHDRAW_TX_HEX = '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a3724490e000000000000000200000000000000000000000000000000000000000000000000000000000000010f64656c65676174696f6e5f706f6f6c087769746864726177000220f7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad908e803000000000000400d03000000000064000000000000008b037d670000000002030020000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f2002000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';
112
+ exports.DELEGATION_POOL_ADD_STAKE_TX_HEX_SIGNABLE_PAYLOAD = '5efa3c4f02f83a0f4b2d69fc95c607cc02825cc4e7be536ef0992df050d9e67c011aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a3724490e000000000000000200000000000000000000000000000000000000000000000000000000000000010f64656c65676174696f6e5f706f6f6c096164645f7374616b65000220f7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad908e803000000000000400d03000000000064000000000000008b037d67000000000200dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f2';
113
+ exports.DELEGATION_POOL_UNLOCK_TX_HEX_SIGNABLE_PAYLOAD = '5efa3c4f02f83a0f4b2d69fc95c607cc02825cc4e7be536ef0992df050d9e67c011aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a3724490e000000000000000200000000000000000000000000000000000000000000000000000000000000010f64656c65676174696f6e5f706f6f6c06756e6c6f636b000220f7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad908e803000000000000400d03000000000064000000000000008b037d67000000000200dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f2';
114
+ exports.DELEGATION_POOL_WITHDRAW_TX_HEX_SIGNABLE_PAYLOAD = '5efa3c4f02f83a0f4b2d69fc95c607cc02825cc4e7be536ef0992df050d9e67c011aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a3724490e000000000000000200000000000000000000000000000000000000000000000000000000000000010f64656c65676174696f6e5f706f6f6c087769746864726177000220f7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad908e803000000000000400d03000000000064000000000000008b037d67000000000200dbc87a1c816d9bcd06b683c37e80c7162e4d48da7812198b830e4d5d8e0629f2';
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC9yZXNvdXJjZXMvYXB0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVhLFFBQUEsTUFBTSxHQUFHLElBQUksQ0FBQztBQUNkLFFBQUEscUJBQXFCLEdBQUcsQ0FBQyxDQUFDO0FBRTFCLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLGNBQWMsRUFBRTtRQUNkLG9FQUFvRTtRQUNwRSxvRUFBb0U7S0FDckU7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixjQUFjO1FBQ2Qsc0NBQXNDO1FBQ3RDLDhDQUE4QztLQUMvQztDQUNGLENBQUM7QUFFVyxRQUFBLE1BQU0sR0FBRztJQUNwQixPQUFPLEVBQUUsb0VBQW9FO0lBQzdFLFVBQVUsRUFBRSxvRUFBb0U7SUFDaEYsU0FBUyxFQUFFLG9FQUFvRTtDQUNoRixDQUFDO0FBRVcsUUFBQSxPQUFPLEdBQUc7SUFDckIsT0FBTyxFQUFFLG9FQUFvRTtJQUM3RSxTQUFTLEVBQUUsb0VBQW9FO0NBQ2hGLENBQUM7QUFFVyxRQUFBLGNBQWMsR0FBRztJQUM1QixPQUFPLEVBQUUsb0VBQW9FO0NBQzlFLENBQUM7QUFFVyxRQUFBLFFBQVEsR0FBRztJQUN0QixPQUFPLEVBQUUsb0VBQW9FO0lBQzdFLFVBQVUsRUFBRSxvRUFBb0U7SUFDaEYsU0FBUyxFQUFFLG9FQUFvRTtDQUNoRixDQUFDO0FBRVcsUUFBQSxVQUFVLEdBQWdCO0lBQ3JDO1FBQ0UsT0FBTyxFQUFFLGlCQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNwQyxNQUFNLEVBQUUsY0FBTSxDQUFDLFFBQVEsRUFBRTtLQUMxQjtDQUNGLENBQUM7QUFFVyxRQUFBLGVBQWUsR0FBZ0I7SUFDMUM7UUFDRSxPQUFPLEVBQUUsb0VBQW9FO1FBQzdFLE1BQU0sRUFBRSxNQUFNO0tBQ2Y7SUFDRDtRQUNFLE9BQU8sRUFBRSxvRUFBb0U7UUFDN0UsTUFBTSxFQUFFLE1BQU07S0FDZjtDQUNGLENBQUM7QUFFVyxRQUFBLHVCQUF1QixHQUFnQjtJQUNsRDtRQUNFLE9BQU8sRUFBRSxpQkFBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxFQUFFLDZCQUFxQixDQUFDLFFBQVEsRUFBRTtLQUN6QztJQUNEO1FBQ0UsT0FBTyxFQUFFLG9FQUFvRTtRQUM3RSxNQUFNLEVBQUUsR0FBRztLQUNaO0NBQ0YsQ0FBQztBQUVXLFFBQUEsdUJBQXVCLEdBQWdCO0lBQ2xEO1FBQ0UsT0FBTyxFQUFFLG9FQUFvRTtRQUM3RSxNQUFNLEVBQUUsR0FBRztLQUNaO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsb0VBQW9FO1FBQzdFLE1BQU0sRUFBRSxHQUFHO0tBQ1o7Q0FDRixDQUFDO0FBRVcsUUFBQSxzQkFBc0IsR0FBZ0I7SUFDakQ7UUFDRSxPQUFPLEVBQUUsaUJBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxHQUFHO0tBQ1o7Q0FDRixDQUFDO0FBRVcsUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxnQkFBZ0IsRUFBRSxpQkFBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsTUFBTSxFQUFFLGNBQU0sQ0FBQyxRQUFRLEVBQUU7Q0FDMUIsQ0FBQztBQUVXLFFBQUEsaUJBQWlCLEdBQWdCO0lBQzVDO1FBQ0UsT0FBTyxFQUFFLGlCQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sRUFBRSxjQUFNLENBQUMsUUFBUSxFQUFFO0tBQzFCO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsaUJBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxTQUFTO0tBQ2xCO0lBQ0Q7UUFDRSxPQUFPLEVBQUUsaUJBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sRUFBRSxlQUFlO0tBQ3hCO0NBQ0YsQ0FBQztBQUVXLFFBQUEsUUFBUSxHQUNuQiwwNUJBQTA1QixDQUFDO0FBRWg1QixRQUFBLGdDQUFnQyxHQUMzQywwNUJBQTA1QixDQUFDO0FBRWg1QixRQUFBLHVCQUF1QixHQUNsQyx3K0JBQXcrQixDQUFDO0FBRTk5QixRQUFBLHVCQUF1QixHQUNsQyxrK0JBQWsrQixDQUFDO0FBRXg5QixRQUFBLHNCQUFzQixHQUNqQyw4NUJBQTg1QixDQUFDO0FBRXA1QixRQUFBLG1CQUFtQixHQUM5QiwwL0JBQTAvQixDQUFDO0FBRWgvQixRQUFBLGdCQUFnQixHQUMzQiwrZkFBK2YsQ0FBQztBQUVyZixRQUFBLG9CQUFvQixHQUFHO0lBQ2xDLElBQUksRUFBRSxvRUFBb0U7Q0FDM0UsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUcsb0VBQW9FLENBQUM7QUFFM0YsUUFBQSxXQUFXLEdBQUcsb0ZBQW9GLENBQUM7QUFFbkcsUUFBQSwwQkFBMEIsR0FDckMsdytCQUF3K0IsQ0FBQztBQUU5OUIsUUFBQSx5QkFBeUIsR0FDcEMsaytCQUFrK0IsQ0FBQztBQUV4OUIsUUFBQSwrQkFBK0IsR0FDMUMsa3BCQUFrcEIsQ0FBQztBQUV4b0IsUUFBQSxnQ0FBZ0MsR0FDM0Msc3lCQUFzeUIsQ0FBQztBQUU1eEIsUUFBQSw2QkFBNkIsR0FDeEMsZ3lCQUFneUIsQ0FBQztBQUV0eEIsUUFBQSwrQkFBK0IsR0FDMUMsb3lCQUFveUIsQ0FBQztBQUUxeEIsUUFBQSxpREFBaUQsR0FDNUQsc2RBQXNkLENBQUM7QUFFNWMsUUFBQSw4Q0FBOEMsR0FDekQsZ2RBQWdkLENBQUM7QUFFdGMsUUFBQSxnREFBZ0QsR0FDM0Qsb2RBQW9kLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWNpcGllbnQgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5cbmV4cG9ydCBjb25zdCBBTU9VTlQgPSAxMDAwO1xuZXhwb3J0IGNvbnN0IEZVTkdJQkxFX1RPS0VOX0FNT1VOVCA9IDE7XG5cbmV4cG9ydCBjb25zdCBhZGRyZXNzZXMgPSB7XG4gIHZhbGlkQWRkcmVzc2VzOiBbXG4gICAgJzB4Zjc0MDVjMjhhMDJjZjViYWI0ZWE0NDk4MjQwYmIzNTc5ZGI0NTk1MTc5NGViMWM4NDNiZWYwNTM0YzA5M2FkOScsXG4gICAgJzB4MWFlZDgwODkxNmFiOWIxYjMwYjA3YWJiNTM1NjFhZmQ0Njg0NzI4NWNlMjg2NTEyMjFkNDA2MTczYTM3MjQ0OScsXG4gIF0sXG4gIGludmFsaWRBZGRyZXNzZXM6IFtcbiAgICAncmFuZG9tU3RyaW5nJyxcbiAgICAnMHhjNDE3M2E4MDQ0MDZhMzY1ZTY5ZGZiMjk3ZGRmZ3NkY3ZmJyxcbiAgICAnNW5lN3BoQTQ4SnJ2cG4zOUF0dXBCOFprQ0NBeThnTFRmcEdpaFpQdURxZW4nLFxuICBdLFxufTtcblxuZXhwb3J0IGNvbnN0IHNlbmRlciA9IHtcbiAgYWRkcmVzczogJzB4MWFlZDgwODkxNmFiOWIxYjMwYjA3YWJiNTM1NjFhZmQ0Njg0NzI4NWNlMjg2NTEyMjFkNDA2MTczYTM3MjQ0OScsXG4gIHByaXZhdGVLZXk6ICcweDU0ZTFhODhlYjJiODgxZmU2YzIyMjk4NWQwZmFiYzliYTNhY2EzNTc0M2RkMWQxOWRiMThhOWEzNTVhY2JhYWEnLFxuICBwdWJsaWNLZXk6ICcweGY3MzgzNmY0MjI1NzI0MGU0M2Q0Mzk1NTI0NzFmYzlkYmNjM2YxYWY1YmQwYjRlZDgzZjQ0YjVmNjYxNDY0NDInLFxufTtcblxuZXhwb3J0IGNvbnN0IHNlbmRlcjIgPSB7XG4gIGFkZHJlc3M6ICcweDFhZWQ4MDg5MTZhYjliMWIzMGIwN2FiYjUzNTYxYWZkNDY4NDcyODVjZTI4NjUxMjIxZDQwNjE3M2EzNzI0NDknLFxuICBwdWJsaWNLZXk6ICcweGY3MzgzNmY0MjI1NzI0MGU0M2Q0Mzk1NTI0NzFmYzlkYmNjM2YxYWY1YmQwYjRlZDgzZjQ0YjVmNjYxNDY0NDInLFxufTtcblxuZXhwb3J0IGNvbnN0IGZ1bmdpYmxlU2VuZGVyID0ge1xuICBhZGRyZXNzOiAnMHhkMTcxZjAzYWEyYzNmMzdkNzgzOGI3NmNkZDgzZGEwNDVlY2MzZjA4MGExYzE5MGY3ZTQxMmQ3OTQ4NTgwOWEwJyxcbn07XG5cbmV4cG9ydCBjb25zdCBmZWVQYXllciA9IHtcbiAgYWRkcmVzczogJzB4ZGJjODdhMWM4MTZkOWJjZDA2YjY4M2MzN2U4MGM3MTYyZTRkNDhkYTc4MTIxOThiODMwZTRkNWQ4ZTA2MjlmMicsXG4gIHByaXZhdGVLZXk6ICcweDUxYTk1MDdkOTEyNzg0MWExNDY1MTg5MTg4ZDkzMDY1Y2IyNmJhZDNiZWMwNWQzYzhmMjhlOWMxZmMzNWJkYTAnLFxuICBwdWJsaWNLZXk6ICcweDUyMjMzOTZjNTMxZjEzZTAzMWE5ZjBjYjI2ZDQ1OWQ3OTlhNTJlNTFiZTlhMWNiOWU4NzFhZmI0YzMxZjkxZmYnLFxufTtcblxuZXhwb3J0IGNvbnN0IHJlY2lwaWVudHM6IFJlY2lwaWVudFtdID0gW1xuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLFxuICAgIGFtb3VudDogQU1PVU5ULnRvU3RyaW5nKCksXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgYmF0Y2hSZWNpcGllbnRzOiBSZWNpcGllbnRbXSA9IFtcbiAge1xuICAgIGFkZHJlc3M6ICcweGRkNTJjMGI3MmE3MzY5NmI4NjdkNjU3MWEzMDhjNDEzZTQzYmZmOGY0NDk1NmE1OTkxYWJjNGQ1MGRiMGI4NDknLFxuICAgIGFtb3VudDogJzEwMDAnLFxuICB9LFxuICB7XG4gICAgYWRkcmVzczogJzB4MmE4MTc2MGQ1MmRiOWE5NmRmMjYwOTg2MDIxODIxNGI2ZDEwMTJlNzdlODRhM2ZlZDUxNDVhOWE2NWJmNjkzMicsXG4gICAgYW1vdW50OiAnMTAwMCcsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgZnVuZ2libGVUb2tlblJlY2lwaWVudHM6IFJlY2lwaWVudFtdID0gW1xuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLFxuICAgIGFtb3VudDogRlVOR0lCTEVfVE9LRU5fQU1PVU5ULnRvU3RyaW5nKCksXG4gIH0sXG4gIHtcbiAgICBhZGRyZXNzOiAnMHhiYTdhZjUyOGJlNTgwOTQwNTcxNzBlMzY1YTZiNWZhODM2ODY4MTUyYTUwNWIyNzMzMzU1ZGZmMWQxODMxNzFlJyxcbiAgICBhbW91bnQ6ICcxJyxcbiAgfSxcbl07XG5cbmV4cG9ydCBjb25zdCBiYXRjaEZ1bmdpYmxlUmVjaXBpZW50czogUmVjaXBpZW50W10gPSBbXG4gIHtcbiAgICBhZGRyZXNzOiAnMHhkZDUyYzBiNzJhNzM2OTZiODY3ZDY1NzFhMzA4YzQxM2U0M2JmZjhmNDQ5NTZhNTk5MWFiYzRkNTBkYjBiODQ5JyxcbiAgICBhbW91bnQ6ICcxJyxcbiAgfSxcbiAge1xuICAgIGFkZHJlc3M6ICcweDJhODE3NjBkNTJkYjlhOTZkZjI2MDk4NjAyMTgyMTRiNmQxMDEyZTc3ZTg0YTNmZWQ1MTQ1YTlhNjViZjY5MzInLFxuICAgIGFtb3VudDogJzEnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IGRpZ2l0YWxUb2tlblJlY2lwaWVudHM6IFJlY2lwaWVudFtdID0gW1xuICB7XG4gICAgYWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLFxuICAgIGFtb3VudDogJzEnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IGRlbGVnYXRpb25Qb29sRGF0YSA9IHtcbiAgdmFsaWRhdG9yQWRkcmVzczogYWRkcmVzc2VzLnZhbGlkQWRkcmVzc2VzWzBdLFxuICBhbW91bnQ6IEFNT1VOVC50b1N0cmluZygpLFxufTtcblxuZXhwb3J0IGNvbnN0IGludmFsaWRSZWNpcGllbnRzOiBSZWNpcGllbnRbXSA9IFtcbiAge1xuICAgIGFkZHJlc3M6IGFkZHJlc3Nlcy5pbnZhbGlkQWRkcmVzc2VzWzBdLFxuICAgIGFtb3VudDogQU1PVU5ULnRvU3RyaW5nKCksXG4gIH0sXG4gIHtcbiAgICBhZGRyZXNzOiBhZGRyZXNzZXMudmFsaWRBZGRyZXNzZXNbMF0sXG4gICAgYW1vdW50OiAnLTkxOTE5MScsXG4gIH0sXG4gIHtcbiAgICBhZGRyZXNzOiBhZGRyZXNzZXMudmFsaWRBZGRyZXNzZXNbMF0sXG4gICAgYW1vdW50OiAnaW52YWxpZEFtb3VudCcsXG4gIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgVFJBTlNGRVIgPVxuICAnMHgxYWVkODA4OTE2YWI5YjFiMzBiMDdhYmI1MzU2MWFmZDQ2ODQ3Mjg1Y2UyODY1MTIyMWQ0MDYxNzNhMzcyNDQ5OTIwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBkNjE3MDc0NmY3MzVmNjE2MzYzNmY3NTZlNzQwZTc0NzI2MTZlNzM2NjY1NzI1ZjYzNmY2OTZlNzMwMTA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBhNjE3MDc0NmY3MzVmNjM2ZjY5NmUwOTQxNzA3NDZmNzM0MzZmNjk2ZTAwMDIyMGY3NDA1YzI4YTAyY2Y1YmFiNGVhNDQ5ODI0MGJiMzU3OWRiNDU5NTE3OTRlYjFjODQzYmVmMDUzNGMwOTNhZDkwOGU4MDMwMDAwMDAwMDAwMDA0MDBkMDMwMDAwMDAwMDAwNjQwMDAwMDAwMDAwMDAwMDk3OTM5MDY3MDAwMDAwMDAwMjAzMDAyMGY3MzgzNmY0MjI1NzI0MGU0M2Q0Mzk1NTI0NzFmYzlkYmNjM2YxYWY1YmQwYjRlZDgzZjQ0YjVmNjYxNDY0NDI0MGNhZWI5MGVmZDRiN2VjZDkyMmM5N2JiMzE2M2U2YTlkZTFmYmIyZWUwZmMwZDU2YWY0ODRmNGFmOWIwMDE1YzU4MzEzNDE1NTBhZjI5YjM2ODY3MTNiNjY1N2M4MjFkODk0NjM1ZmUxM2M3OTMzZjA2ZWUwNDM3MjhmMDQwYjA5MDAwMGRiYzg3YTFjODE2ZDliY2QwNmI2ODNjMzdlODBjNzE2MmU0ZDQ4ZGE3ODEyMTk4YjgzMGU0ZDVkOGUwNjI5ZjIwMDIwNTIyMzM5NmM1MzFmMTNlMDMxYTlmMGNiMjZkNDU5ZDc5OWE1MmU1MWJlOWExY2I5ZTg3MWFmYjRjMzFmOTFmZjQwMTNlN2U4YTEzMjVlZTVmNjU2YzkzYmFhM2QwMjA2YTFkOWJkNmRhNWFiZGM2ZjVkOWI4YmJiYjA5MjZkZGFjNjhmM2U1N2E5MTVkZDIxN2QyZDQzZTc3NmE2Y2MwMWFmNzJmODk1ZWE3MTJhY2M4MzZkMzAzNDlmMjlhM2M2MDYnO1xuXG5leHBvcnQgY29uc3QgVFJBTlNBQ1RJT05fVVNJTkdfVFJBTlNGRVJfQ09JTlMgPVxuICAnMHgxYWVkODA4OTE2YWI5YjFiMzBiMDdhYmI1MzU2MWFmZDQ2ODQ3Mjg1Y2UyODY1MTIyMWQ0MDYxNzNhMzcyNDQ5OTIwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBkNjE3MDc0NmY3MzVmNjE2MzYzNmY3NTZlNzQwZTc0NzI2MTZlNzM2NjY1NzI1ZjYzNmY2OTZlNzMwMTA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBhNjE3MDc0NmY3MzVmNjM2ZjY5NmUwOTQxNzA3NDZmNzM0MzZmNjk2ZTAwMDIyMGY3NDA1YzI4YTAyY2Y1YmFiNGVhNDQ5ODI0MGJiMzU3OWRiNDU5NTE3OTRlYjFjODQzYmVmMDUzNGMwOTNhZDkwOGU4MDMwMDAwMDAwMDAwMDA0MDBkMDMwMDAwMDAwMDAwNjQwMDAwMDAwMDAwMDAwMDk3OTM5MDY3MDAwMDAwMDAwMjAzMDAyMGY3MzgzNmY0MjI1NzI0MGU0M2Q0Mzk1NTI0NzFmYzlkYmNjM2YxYWY1YmQwYjRlZDgzZjQ0YjVmNjYxNDY0NDI0MGNhZWI5MGVmZDRiN2VjZDkyMmM5N2JiMzE2M2U2YTlkZTFmYmIyZWUwZmMwZDU2YWY0ODRmNGFmOWIwMDE1YzU4MzEzNDE1NTBhZjI5YjM2ODY3MTNiNjY1N2M4MjFkODk0NjM1ZmUxM2M3OTMzZjA2ZWUwNDM3MjhmMDQwYjA5MDAwMGRiYzg3YTFjODE2ZDliY2QwNmI2ODNjMzdlODBjNzE2MmU0ZDQ4ZGE3ODEyMTk4YjgzMGU0ZDVkOGUwNjI5ZjIwMDIwNTIyMzM5NmM1MzFmMTNlMDMxYTlmMGNiMjZkNDU5ZDc5OWE1MmU1MWJlOWExY2I5ZTg3MWFmYjRjMzFmOTFmZjQwMTNlN2U4YTEzMjVlZTVmNjU2YzkzYmFhM2QwMjA2YTFkOWJkNmRhNWFiZGM2ZjVkOWI4YmJiYjA5MjZkZGFjNjhmM2U1N2E5MTVkZDIxN2QyZDQzZTc3NmE2Y2MwMWFmNzJmODk1ZWE3MTJhY2M4MzZkMzAzNDlmMjlhM2M2MDYnO1xuXG5leHBvcnQgY29uc3QgRlVOR0lCTEVfVE9LRU5fVFJBTlNGRVIgPVxuICAnMHgxYWVkODA4OTE2YWI5YjFiMzBiMDdhYmI1MzU2MWFmZDQ2ODQ3Mjg1Y2UyODY1MTIyMWQ0MDYxNzNhMzcyNDQ5YTcwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTE2NzA3MjY5NmQ2MTcyNzk1ZjY2NzU2ZTY3Njk2MjZjNjU1ZjczNzQ2ZjcyNjUwODc0NzI2MTZlNzM2NjY1NzIwMTA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBlNjY3NTZlNjc2OTYyNmM2NTVmNjE3MzczNjU3NDA4NGQ2NTc0NjE2NDYxNzQ2MTAwMDMyMGQ1ZDBkNTYxNDkzZWEyYjk0MTBmNjdkYTgwNDY1M2FlNDRlNzkzYzI0MjM3MDdkNGYxMWVkYjJlMzgxOTIwNTAyMGY3NDA1YzI4YTAyY2Y1YmFiNGVhNDQ5ODI0MGJiMzU3OWRiNDU5NTE3OTRlYjFjODQzYmVmMDUzNGMwOTNhZDkwODAxMDAwMDAwMDAwMDAwMDA0MDBkMDMwMDAwMDAwMDAwNjQwMDAwMDAwMDAwMDAwMGU0MjY5NjY3MDAwMDAwMDAwMjAzMDAyMGY3MzgzNmY0MjI1NzI0MGU0M2Q0Mzk1NTI0NzFmYzlkYmNjM2YxYWY1YmQwYjRlZDgzZjQ0YjVmNjYxNDY0NDI0MDI5NjY1Y2Q0Yzk0NjU4YTBkODM5MDdiYmVkN2U3NjE3OTRiMjViY2NjMDNmYzg3ZTZkZDYzYTU0M2FjY2RkZGZkN2E2ZjFlN2ExNWU4NjgxNTQ3Y2E0MzdmZjk5YjU4YzkyZjgxNmUzNWEwZjMzM2Q3ZjFmZDEzMzBjMjFhZDBhMDAwMGRiYzg3YTFjODE2ZDliY2QwNmI2ODNjMzdlODBjNzE2MmU0ZDQ4ZGE3ODEyMTk4YjgzMGU0ZDVkOGUwNjI5ZjIwMDIwNTIyMzM5NmM1MzFmMTNlMDMxYTlmMGNiMjZkNDU5ZDc5OWE1MmU1MWJlOWExY2I5ZTg3MWFmYjRjMzFmOTFmZjQwZGU3YjBiYjg2Y2EzNDYwMzE5NDJlOWNmMjFmZjk2MDRjN2MwOGMyYzY2MmUzOGEwYWZlM2RkNjQwNTEyYzA0NDEzOTZjMDY5N2NkOGJiYmNmMzk2OTRkNmY4OGUzNWY2YmVkOWZiMzRiZDIwOWIwNDc5YjVlOGJkMGNmM2ViMGInO1xuXG5leHBvcnQgY29uc3QgRlVOR0lCTEVfQkFUQ0hfVFJBTlNGRVIgPVxuICAnMHhjOGYwMmQyNWFhNjk4YjNlOWZiZDhhMDhlOGRhNGM4ZWUyNjE4MzJhMjVhNGNkZTg3MzFiNWVjMzU2NTM3ZDA5NTEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBkNjE3MDc0NmY3MzVmNjE2MzYzNmY3NTZlNzQxZTYyNjE3NDYzNjg1Zjc0NzI2MTZlNzM2NjY1NzI1ZjY2NzU2ZTY3Njk2MjZjNjU1ZjYxNzM3MzY1NzQ3MzAwMDMyMGQ1ZDBkNTYxNDkzZWEyYjk0MTBmNjdkYTgwNDY1M2FlNDRlNzkzYzI0MjM3MDdkNGYxMWVkYjJlMzgxOTIwNTA0MTAyZGQ1MmMwYjcyYTczNjk2Yjg2N2Q2NTcxYTMwOGM0MTNlNDNiZmY4ZjQ0OTU2YTU5OTFhYmM0ZDUwZGIwYjg0OTJhODE3NjBkNTJkYjlhOTZkZjI2MDk4NjAyMTgyMTRiNmQxMDEyZTc3ZTg0YTNmZWQ1MTQ1YTlhNjViZjY5MzIxMTAyMDEwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDA0MDBkMDMwMDAwMDAwMDAwNjQwMDAwMDAwMDAwMDAwMDAwMjU1YTNhYjMwMTAwMDAwMjAzMDAyMDIxMjFkY2QwOTgwNjlhZTUzNTY5N2RkMDE5Y2ZkODY3N2NhN2FiYTBhZGFjMWQxOTU5Y2JjZTZkYzU0YjEyNTk0MGQzZTc0NDhiYWZkMTE5MjRhNWQxODk4NTMxMGI5OWE1MzlhN2I5MDM5NjFkNWMyOTZmZGNiMzE0OTUwYjRhMjQ3ZmFkNzdiYWQ3OTdhNjQ0ZTU5ZmI3Njc2N2NmNzk2YzIwN2E0MGViYzNkMjJmYzVjODQ3MTcyZWJmMDk1NzBmMDAwMGRiYzg3YTFjODE2ZDliY2QwNmI2ODNjMzdlODBjNzE2MmU0ZDQ4ZGE3ODEyMTk4YjgzMGU0ZDVkOGUwNjI5ZjIwMDIwNTIyMzM5NmM1MzFmMTNlMDMxYTlmMGNiMjZkNDU5ZDc5OWE1MmU1MWJlOWExY2I5ZTg3MWFmYjRjMzFmOTFmZjQwZTI0MmQ1OTcxMmU4ZThhMjEzY2I2YjI0YWIxMTc4NTRjZjEyMjc1NjYwZGVkY2I0OWViNWIyMmY1NDNiYWRhODNmODdjYTUxZDVkYTA2YTIzYWM1ZDRkYzZiYmZjNzc0NWNiNDRkMjI0NjdiZTYxMzU2NWY0MWIzYmE4NzUxMDgnO1xuXG5leHBvcnQgY29uc3QgRElHSVRBTF9BU1NFVF9UUkFOU0ZFUiA9XG4gICcweDFhZWQ4MDg5MTZhYjliMWIzMGIwN2FiYjUzNTYxYWZkNDY4NDcyODVjZTI4NjUxMjIxZDQwNjE3M2EzNzI0NDlhYjAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDY2ZjYyNmE2NTYzNzQwODc0NzI2MTZlNzM2NjY1NzIwMTA3MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDA1NzQ2ZjZiNjU2ZTA1NTQ2ZjZiNjU2ZTAwMDIyMDJlMzU2MDYyNzc3NDY5ZDM5Y2E1ZDliNzI1MTJjZTJkNTcxM2Q3OTM4ZWQ2Y2E5MTkzZDRmYzIwMTZhODE5ZmQyMGY3NDA1YzI4YTAyY2Y1YmFiNGVhNDQ5ODI0MGJiMzU3OWRiNDU5NTE3OTRlYjFjODQzYmVmMDUzNGMwOTNhZDk0MDBkMDMwMDAwMDAwMDAwNjQwMDAwMDAwMDAwMDAwMDUyNjc5ODY3MDAwMDAwMDAwMjAzMDAyMGY3MzgzNmY0MjI1NzI0MGU0M2Q0Mzk1NTI0NzFmYzlkYmNjM2YxYWY1YmQwYjRlZDgzZjQ0YjVmNjYxNDY0NDI0MDBjMmMzMWVhZTQ5NWQyMmQxZDMxMDMxYjk3NTZlODIzOGEzZGY2ZTc2MDUxNWFhM2UxMTA4ZDkzYjNhZWM2YWViOTE2ODQzMDdlODM2NWFkOWRjNDRjMGI1OTU3ZTk1YTIxYTZmNDdkOGQ0YTZlMGViM2IxNDVmYjNkNTE3ZjAzMDAwMGRiYzg3YTFjODE2ZDliY2QwNmI2ODNjMzdlODBjNzE2MmU0ZDQ4ZGE3ODEyMTk4YjgzMGU0ZDVkOGUwNjI5ZjIwMDIwNTIyMzM5NmM1MzFmMTNlMDMxYTlmMGNiMjZkNDU5ZDc5OWE1MmU1MWJlOWExY2I5ZTg3MWFmYjRjMzFmOTFmZjQwZGQ2YzA2NGU0NDY0MjgxOWRlYzJmNjNkMzJkNmRhYTRmODg5ZDYyZDA2MDI1YWQ5OWI0MjU2MmM0YzZjZGVmOGIxNDM3NzM5MTE1ZDdmMzgwNTAwNzg4MjllZmI5ZGQwNTUyOGY1MzMwOWJjYWI1Yjg5ZmFkYjI4MzQyMzEwMGQnO1xuXG5leHBvcnQgY29uc3QgQ09JTl9CQVRDSF9UUkFOU0ZFUiA9XG4gICcweGM4ZjAyZDI1YWE2OThiM2U5ZmJkOGEwOGU4ZGE0YzhlZTI2MTgzMmEyNWE0Y2RlODczMWI1ZWMzNTY1MzdkMDk1MTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMGQ2MTcwNzQ2ZjczNWY2MTYzNjM2Zjc1NmU3NDE0NjI2MTc0NjM2ODVmNzQ3MjYxNmU3MzY2NjU3MjVmNjM2ZjY5NmU3MzAxMDcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMGE2MTcwNzQ2ZjczNWY2MzZmNjk2ZTA5NDE3MDc0NmY3MzQzNmY2OTZlMDAwMjQxMDJkZDUyYzBiNzJhNzM2OTZiODY3ZDY1NzFhMzA4YzQxM2U0M2JmZjhmNDQ5NTZhNTk5MWFiYzRkNTBkYjBiODQ5MmE4MTc2MGQ1MmRiOWE5NmRmMjYwOTg2MDIxODIxNGI2ZDEwMTJlNzdlODRhM2ZlZDUxNDVhOWE2NWJmNjkzMjExMDJlODAzMDAwMDAwMDAwMDAwZTgwMzAwMDAwMDAwMDAwMDQwMGQwMzAwMDAwMDAwMDA2NDAwMDAwMDAwMDAwMDAwMDlkNGVhNjcwMDAwMDAwMDAyMDMwMDIwMjEyMWRjZDA5ODA2OWFlNTM1Njk3ZGQwMTljZmQ4Njc3Y2E3YWJhMGFkYWMxZDE5NTljYmNlNmRjNTRiMTI1OTQwNDc2MDJkMDg0MjZjZTAzNTk3MWU4NmQ1N2Q1N2ZjMzNhN2U5ZDI5ZGE1NmE4N2EyZTZlOWQxMmFlM2IzOWUyNTg5MjI5OGZhOGIwODAxMTFjNjA5YzlhNDUxMjY0YjMyMDIzNmEwNmE0NWVhYjg3MDc2NWY5MGZmYzRhNDJhMDMwMDAwZGJjODdhMWM4MTZkOWJjZDA2YjY4M2MzN2U4MGM3MTYyZTRkNDhkYTc4MTIxOThiODMwZTRkNWQ4ZTA2MjlmMjAwMjA1MjIzMzk2YzUzMWYxM2UwMzFhOWYwY2IyNmQ0NTlkNzk5YTUyZTUxYmU5YTFjYjllODcxYWZiNGMzMWY5MWZmNDAxZDgxN2E2NDFiOTE1NzI3MDU3YmFiYjBkZGZlNjg3NjU4M2FjNWM4ZDRiODZiNGM5MTM4NWRjOTRmMDcxZjhlMTJhNDkwODc4NmE0MTdiMjcyMWZhOTgzOGRkMWJlZTZlMTUzY2EwMmY3OGRlNDMxNjFhOTgxMDQwN2VhMGIwZic7XG5cbmV4cG9ydCBjb25zdCBJTlZBTElEX1RSQU5TRkVSID1cbiAgJ0FBQUFBQUFBQUFBQUE2ZTczNjE2Mzc0NjliYzRhNThlNTAwYjllNjRjYjY1NDdlZTliNDAzMDAwMDAwMDAwMDAwMDAyMDY0YmExZmIyZjJmYmQyOTM4YTM1MDAxNWQ2MDFmNGRiODljZDdlOGUyMzcwZDBkZDlhZTNhYzRmNjM1YzE1ODExMTFiOGE0OWY2NzM3MGJjNGE1OGU1MDBiOWU2NGNiNjQ2MmUzOWI4MDIwMDAwMDAwMDAwMDAwMDIwNjRiYTFmYjJmMmZiZDI5MzhhMzUwMDE1ZDYwMWY0ZGI4OWNkN2U4ZTIzNzBkMGRkOWFlM2FjNDdhYTFmZjgxZjAxYzQxNzNhODA0NDA2YTM2NWU2OWRmYjI5N2Q0ZWFhZjAwMjU0NmViZDAxNjQwMDAwMDAwMDAwMDAwMGNiYTRhNDhiYjBmOGI1ODZjMTY3ZTVkY2VmYWExYzVlOTZhYjNmMDgzNmQ2Y2EwOGYyMDgxNzMyOTQ0ZDFlNWI2YjQwNmE0YTQ2MmUzOWI4MDMwMDAwMDAwMDAwMDAwMDIwYjk0OTBlZGU2MzIxNTI2MmM0MzRlMDNmNjA2ZDk3OTlmM2JhNzA0NTIzY2VkYTE4NGIzODZkNDdhYTFmZjgxZjAxMDAwMDAwMDAwMDAwMDA2NDAwMDAwMDAwMDAwMDAwJztcblxuZXhwb3J0IGNvbnN0IGZ1bmdpYmxlVG9rZW5BZGRyZXNzID0ge1xuICB1c2R0OiAnMHhkNWQwZDU2MTQ5M2VhMmI5NDEwZjY3ZGE4MDQ2NTNhZTQ0ZTc5M2MyNDIzNzA3ZDRmMTFlZGIyZTM4MTkyMDUwJyxcbn07XG5cbmV4cG9ydCBjb25zdCBkaWdpdGFsQXNzZXRBZGRyZXNzID0gJzB4MmUzNTYwNjI3Nzc0NjlkMzljYTVkOWI3MjUxMmNlMmQ1NzEzZDc5MzhlZDZjYTkxOTNkNGZjMjAxNmE4MTlmZCc7XG5cbmV4cG9ydCBjb25zdCBMRUdBQ1lfQ09JTiA9ICcweDRmYjM3OWMxMGM3NjNhMTNlNzI0MDY0ZWNmYjdkOTQ2NjkwYmVhNTE5YmE5ODJjODFiNTE4ZDFjMTFkZDIzZmU6OmZhX3Rlc3Q6OkNvaW56JztcblxuZXhwb3J0IGNvbnN0IEZVTkdJQkxFX1NFUklBTElaRURfVFhfSEVYID1cbiAgJzB4ZDE3MWYwM2FhMmMzZjM3ZDc4MzhiNzZjZGQ4M2RhMDQ1ZWNjM2YwODBhMWMxOTBmN2U0MTJkNzk0ODU4MDlhMDAwMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDExNjcwNzI2OTZkNjE3Mjc5NWY2Njc1NmU2NzY5NjI2YzY1NWY3Mzc0NmY3MjY1MDg3NDcyNjE2ZTczNjY2NTcyMDEwNzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwZTY2NzU2ZTY3Njk2MjZjNjU1ZjYxNzM3MzY1NzQwODRkNjU3NDYxNjQ2MTc0NjEwMDAzMjBkNWQwZDU2MTQ5M2VhMmI5NDEwZjY3ZGE4MDQ2NTNhZTQ0ZTc5M2MyNDIzNzA3ZDRmMTFlZGIyZTM4MTkyMDUwMjBiYTdhZjUyOGJlNTgwOTQwNTcxNzBlMzY1YTZiNWZhODM2ODY4MTUyYTUwNWIyNzMzMzU1ZGZmMWQxODMxNzFlMDgwMTAwMDAwMDAwMDAwMDAwNDAwZDAzMDAwMDAwMDAwMDY0MDAwMDAwMDAwMDAwMDBmY2FhYmU2NzAwMDAwMDAwMDIwMzAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBjMTRlMDg5NGYzMzM0ZGNkNDAwODQ0NzYyOGYzZjdlM2I1YzUyMDBlZWUzOTliNzJjMGU2M2Y4ZTVkMDlmMDk2MDAyMDliNGU5NjA4NmQxMTE1MDAyNTlmOWIzODY4MGIwNTA5YTQwNWMxOTA0ZGExODk3NjQ1NWEyMGM2OTFkM2JiMDc0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcblxuZXhwb3J0IGNvbnN0IEZVTkdJQkxFX0JBVENIX1JBV19UWF9IRVggPVxuICAnMHgxYWVkODA4OTE2YWI5YjFiMzBiMDdhYmI1MzU2MWFmZDQ2ODQ3Mjg1Y2UyODY1MTIyMWQ0MDYxNzNhMzcyNDQ5MGUwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBkNjE3MDc0NmY3MzVmNjE2MzYzNmY3NTZlNzQxZTYyNjE3NDYzNjg1Zjc0NzI2MTZlNzM2NjY1NzI1ZjY2NzU2ZTY3Njk2MjZjNjU1ZjYxNzM3MzY1NzQ3MzAwMDMyMGQ1ZDBkNTYxNDkzZWEyYjk0MTBmNjdkYTgwNDY1M2FlNDRlNzkzYzI0MjM3MDdkNGYxMWVkYjJlMzgxOTIwNTA0MTAyZGQ1MmMwYjcyYTczNjk2Yjg2N2Q2NTcxYTMwOGM0MTNlNDNiZmY4ZjQ0OTU2YTU5OTFhYmM0ZDUwZGIwYjg0OTJhODE3NjBkNTJkYjlhOTZkZjI2MDk4NjAyMTgyMTRiNmQxMDEyZTc3ZTg0YTNmZWQ1MTQ1YTlhNjViZjY5MzIxMTAyMDEwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDA0MDBkMDMwMDAwMDAwMDAwNjQwMDAwMDAwMDAwMDAwMDhiMDM3ZDY3MDAwMDAwMDAwMjAzMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGRiYzg3YTFjODE2ZDliY2QwNmI2ODNjMzdlODBjNzE2MmU0ZDQ4ZGE3ODEyMTk4YjgzMGU0ZDVkOGUwNjI5ZjIwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnO1xuXG5leHBvcnQgY29uc3QgRlVOR0lCTEVfQkFUQ0hfU0lHTkFCTEVfUEFZTE9BRCA9XG4gICc1ZWZhM2M0ZjAyZjgzYTBmNGIyZDY5ZmM5NWM2MDdjYzAyODI1Y2M0ZTdiZTUzNmVmMDk5MmRmMDUwZDllNjdjMDExYWVkODA4OTE2YWI5YjFiMzBiMDdhYmI1MzU2MWFmZDQ2ODQ3Mjg1Y2UyODY1MTIyMWQ0MDYxNzNhMzcyNDQ5MGUwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBkNjE3MDc0NmY3MzVmNjE2MzYzNmY3NTZlNzQxZTYyNjE3NDYzNjg1Zjc0NzI2MTZlNzM2NjY1NzI1ZjY2NzU2ZTY3Njk2MjZjNjU1ZjYxNzM3MzY1NzQ3MzAwMDMyMGQ1ZDBkNTYxNDkzZWEyYjk0MTBmNjdkYTgwNDY1M2FlNDRlNzkzYzI0MjM3MDdkNGYxMWVkYjJlMzgxOTIwNTA0MTAyZGQ1MmMwYjcyYTczNjk2Yjg2N2Q2NTcxYTMwOGM0MTNlNDNiZmY4ZjQ0OTU2YTU5OTFhYmM0ZDUwZGIwYjg0OTJhODE3NjBkNTJkYjlhOTZkZjI2MDk4NjAyMTgyMTRiNmQxMDEyZTc3ZTg0YTNmZWQ1MTQ1YTlhNjViZjY5MzIxMTAyMDEwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDA0MDBkMDMwMDAwMDAwMDAwNjQwMDAwMDAwMDAwMDAwMDhiMDM3ZDY3MDAwMDAwMDAwMjAwZGJjODdhMWM4MTZkOWJjZDA2YjY4M2MzN2U4MGM3MTYyZTRkNDhkYTc4MTIxOThiODMwZTRkNWQ4ZTA2MjlmMic7XG5cbmV4cG9ydCBjb25zdCBERUxFR0FUSU9OX1BPT0xfQUREX1NUQUtFX1RYX0hFWCA9XG4gICcweDFhZWQ4MDg5MTZhYjliMWIzMGIwN2FiYjUzNTYxYWZkNDY4NDcyODVjZTI4NjUxMjIxZDQwNjE3M2EzNzI0NDkwZTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMGY2NDY1NmM2NTY3NjE3NDY5NmY2ZTVmNzA2ZjZmNmMwOTYxNjQ2NDVmNzM3NDYxNmI2NTAwMDIyMGY3NDA1YzI4YTAyY2Y1YmFiNGVhNDQ5ODI0MGJiMzU3OWRiNDU5NTE3OTRlYjFjODQzYmVmMDUzNGMwOTNhZDkwOGU4MDMwMDAwMDAwMDAwMDA0MDBkMDMwMDAwMDAwMDAwNjQwMDAwMDAwMDAwMDAwMDhiMDM3ZDY3MDAwMDAwMDAwMjAzMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMGRiYzg3YTFjODE2ZDliY2QwNmI2ODNjMzdlODBjNzE2MmU0ZDQ4ZGE3ODEyMTk4YjgzMGU0ZDVkOGUwNjI5ZjIwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnO1xuXG5leHBvcnQgY29uc3QgREVMRUdBVElPTl9QT09MX1VOTE9DS19UWF9IRVggPVxuICAnMHgxYWVkODA4OTE2YWI5YjFiMzBiMDdhYmI1MzU2MWFmZDQ2ODQ3Mjg1Y2UyODY1MTIyMWQ0MDYxNzNhMzcyNDQ5MGUwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBmNjQ2NTZjNjU2NzYxNzQ2OTZmNmU1ZjcwNmY2ZjZjMDY3NTZlNmM2ZjYzNmIwMDAyMjBmNzQwNWMyOGEwMmNmNWJhYjRlYTQ0OTgyNDBiYjM1NzlkYjQ1OTUxNzk0ZWIxYzg0M2JlZjA1MzRjMDkzYWQ5MDhlODAzMDAwMDAwMDAwMDAwNDAwZDAzMDAwMDAwMDAwMDY0MDAwMDAwMDAwMDAwMDA4YjAzN2Q2NzAwMDAwMDAwMDIwMzAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBkYmM4N2ExYzgxNmQ5YmNkMDZiNjgzYzM3ZTgwYzcxNjJlNGQ0OGRhNzgxMjE5OGI4MzBlNGQ1ZDhlMDYyOWYyMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJztcblxuZXhwb3J0IGNvbnN0IERFTEVHQVRJT05fUE9PTF9XSVRIRFJBV19UWF9IRVggPVxuICAnMHgxYWVkODA4OTE2YWI5YjFiMzBiMDdhYmI1MzU2MWFmZDQ2ODQ3Mjg1Y2UyODY1MTIyMWQ0MDYxNzNhMzcyNDQ5MGUwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMTBmNjQ2NTZjNjU2NzYxNzQ2OTZmNmU1ZjcwNmY2ZjZjMDg3NzY5NzQ2ODY0NzI2MTc3MDAwMjIwZjc0MDVjMjhhMDJjZjViYWI0ZWE0NDk4MjQwYmIzNTc5ZGI0NTk1MTc5NGViMWM4NDNiZWYwNTM0YzA5M2FkOTA4ZTgwMzAwMDAwMDAwMDAwMDQwMGQwMzAwMDAwMDAwMDA2NDAwMDAwMDAwMDAwMDAwOGIwMzdkNjcwMDAwMDAwMDAyMDMwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwZGJjODdhMWM4MTZkOWJjZDA2YjY4M2MzN2U4MGM3MTYyZTRkNDhkYTc4MTIxOThiODMwZTRkNWQ4ZTA2MjlmMjAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCc7XG5cbmV4cG9ydCBjb25zdCBERUxFR0FUSU9OX1BPT0xfQUREX1NUQUtFX1RYX0hFWF9TSUdOQUJMRV9QQVlMT0FEID1cbiAgJzVlZmEzYzRmMDJmODNhMGY0YjJkNjlmYzk1YzYwN2NjMDI4MjVjYzRlN2JlNTM2ZWYwOTkyZGYwNTBkOWU2N2MwMTFhZWQ4MDg5MTZhYjliMWIzMGIwN2FiYjUzNTYxYWZkNDY4NDcyODVjZTI4NjUxMjIxZDQwNjE3M2EzNzI0NDkwZTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMGY2NDY1NmM2NTY3NjE3NDY5NmY2ZTVmNzA2ZjZmNmMwOTYxNjQ2NDVmNzM3NDYxNmI2NTAwMDIyMGY3NDA1YzI4YTAyY2Y1YmFiNGVhNDQ5ODI0MGJiMzU3OWRiNDU5NTE3OTRlYjFjODQzYmVmMDUzNGMwOTNhZDkwOGU4MDMwMDAwMDAwMDAwMDA0MDBkMDMwMDAwMDAwMDAwNjQwMDAwMDAwMDAwMDAwMDhiMDM3ZDY3MDAwMDAwMDAwMjAwZGJjODdhMWM4MTZkOWJjZDA2YjY4M2MzN2U4MGM3MTYyZTRkNDhkYTc4MTIxOThiODMwZTRkNWQ4ZTA2MjlmMic7XG5cbmV4cG9ydCBjb25zdCBERUxFR0FUSU9OX1BPT0xfVU5MT0NLX1RYX0hFWF9TSUdOQUJMRV9QQVlMT0FEID1cbiAgJzVlZmEzYzRmMDJmODNhMGY0YjJkNjlmYzk1YzYwN2NjMDI4MjVjYzRlN2JlNTM2ZWYwOTkyZGYwNTBkOWU2N2MwMTFhZWQ4MDg5MTZhYjliMWIzMGIwN2FiYjUzNTYxYWZkNDY4NDcyODVjZTI4NjUxMjIxZDQwNjE3M2EzNzI0NDkwZTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMGY2NDY1NmM2NTY3NjE3NDY5NmY2ZTVmNzA2ZjZmNmMwNjc1NmU2YzZmNjM2YjAwMDIyMGY3NDA1YzI4YTAyY2Y1YmFiNGVhNDQ5ODI0MGJiMzU3OWRiNDU5NTE3OTRlYjFjODQzYmVmMDUzNGMwOTNhZDkwOGU4MDMwMDAwMDAwMDAwMDA0MDBkMDMwMDAwMDAwMDAwNjQwMDAwMDAwMDAwMDAwMDhiMDM3ZDY3MDAwMDAwMDAwMjAwZGJjODdhMWM4MTZkOWJjZDA2YjY4M2MzN2U4MGM3MTYyZTRkNDhkYTc4MTIxOThiODMwZTRkNWQ4ZTA2MjlmMic7XG5cbmV4cG9ydCBjb25zdCBERUxFR0FUSU9OX1BPT0xfV0lUSERSQVdfVFhfSEVYX1NJR05BQkxFX1BBWUxPQUQgPVxuICAnNWVmYTNjNGYwMmY4M2EwZjRiMmQ2OWZjOTVjNjA3Y2MwMjgyNWNjNGU3YmU1MzZlZjA5OTJkZjA1MGQ5ZTY3YzAxMWFlZDgwODkxNmFiOWIxYjMwYjA3YWJiNTM1NjFhZmQ0Njg0NzI4NWNlMjg2NTEyMjFkNDA2MTczYTM3MjQ0OTBlMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEwZjY0NjU2YzY1Njc2MTc0Njk2ZjZlNWY3MDZmNmY2YzA4Nzc2OTc0Njg2NDcyNjE3NzAwMDIyMGY3NDA1YzI4YTAyY2Y1YmFiNGVhNDQ5ODI0MGJiMzU3OWRiNDU5NTE3OTRlYjFjODQzYmVmMDUzNGMwOTNhZDkwOGU4MDMwMDAwMDAwMDAwMDA0MDBkMDMwMDAwMDAwMDAwNjQwMDAwMDAwMDAwMDAwMDhiMDM3ZDY3MDAwMDAwMDAwMjAwZGJjODdhMWM4MTZkOWJjZDA2YjY4M2MzN2U4MGM3MTYyZTRkNDhkYTc4MTIxOThiODMwZTRkNWQ4ZTA2MjlmMic7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=apt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apt.d.ts","sourceRoot":"","sources":["../../../test/unit/apt.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}
@@ -0,0 +1,360 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ require("should");
40
+ const sdk_test_1 = require("@bitgo-beta/sdk-test");
41
+ const sdk_api_1 = require("@bitgo-beta/sdk-api");
42
+ const src_1 = require("../../src");
43
+ const testData = __importStar(require("../resources/apt"));
44
+ const lodash_1 = __importDefault(require("lodash"));
45
+ const sinon_1 = __importDefault(require("sinon"));
46
+ const assert_1 = __importDefault(require("assert"));
47
+ const ts_sdk_1 = require("@aptos-labs/ts-sdk");
48
+ const utils_1 = __importDefault(require("../../src/lib/utils"));
49
+ const statics_1 = require("@bitgo-beta/statics");
50
+ const delegationPoolAddStakeTransaction_1 = require("../../src/lib/transaction/delegationPoolAddStakeTransaction");
51
+ describe('APT:', function () {
52
+ let bitgo;
53
+ let basecoin;
54
+ let newTxPrebuild;
55
+ let newTxParams;
56
+ const txPreBuild = {
57
+ txHex: testData.TRANSACTION_USING_TRANSFER_COINS,
58
+ txInfo: {},
59
+ };
60
+ const txParams = {
61
+ recipients: testData.recipients,
62
+ };
63
+ const batchFungibleTxPrebuild = {
64
+ txHex: testData.FUNGIBLE_BATCH_RAW_TX_HEX,
65
+ txInfo: {},
66
+ };
67
+ const batchFungibleTxParams = {
68
+ recipients: testData.batchFungibleRecipients,
69
+ type: 'transfer',
70
+ };
71
+ before(function () {
72
+ bitgo = sdk_test_1.TestBitGo.decorate(sdk_api_1.BitGoAPI, { env: 'mock' });
73
+ bitgo.safeRegister('apt', src_1.Apt.createInstance);
74
+ bitgo.safeRegister('tapt', src_1.Tapt.createInstance);
75
+ bitgo.safeRegister('apt:usdt', src_1.AptToken.createInstance);
76
+ bitgo.initializeTestVars();
77
+ basecoin = bitgo.coin('tapt');
78
+ newTxPrebuild = () => {
79
+ return lodash_1.default.cloneDeep(txPreBuild);
80
+ };
81
+ newTxParams = () => {
82
+ return lodash_1.default.cloneDeep(txParams);
83
+ };
84
+ });
85
+ it('should return the right info', function () {
86
+ const apt = bitgo.coin('apt');
87
+ const tapt = bitgo.coin('tapt');
88
+ const aptUsdt = bitgo.coin('apt:usdt');
89
+ const aptStatics = statics_1.coins.get('apt');
90
+ const taptStatics = statics_1.coins.get('tapt');
91
+ apt.getChain().should.equal('apt');
92
+ apt.getFamily().should.equal('apt');
93
+ apt.getFullName().should.equal('Aptos');
94
+ apt.getBaseFactor().should.equal(1e8);
95
+ tapt.getChain().should.equal('tapt');
96
+ tapt.getFamily().should.equal('apt');
97
+ tapt.getFullName().should.equal('Testnet Aptos');
98
+ tapt.getBaseFactor().should.equal(1e8);
99
+ aptStatics.gasTankLowBalanceAlertFactor.should.equal(80);
100
+ taptStatics.gasTankLowBalanceAlertFactor.should.equal(80);
101
+ aptStatics.gasTankMinBalanceRecommendationFactor.should.equal(200);
102
+ taptStatics.gasTankMinBalanceRecommendationFactor.should.equal(200);
103
+ aptUsdt.getFamily().should.equal('apt');
104
+ aptUsdt.getChain().should.equal('apt');
105
+ const aptUsdtStatics = aptUsdt.getConfig();
106
+ aptUsdtStatics.fullName.should.equal('USD Tether');
107
+ aptUsdtStatics.assetId.should.equal('0x357b0b74bc833e95a115ad22604854d6b0fca151cecd94111770e5d6ffc9dc2b');
108
+ aptUsdtStatics.decimalPlaces.should.equal(6);
109
+ });
110
+ it('is valid pub', function () {
111
+ // with 0x prefix
112
+ basecoin.isValidPub('0x9b4e96086d111500259f9b38680b0509a405c1904da18976455a20c691d3bb07').should.equal(false);
113
+ // without 0x prefix
114
+ basecoin.isValidPub('9b4e96086d111500259f9b38680b0509a405c1904da18976455a20c691d3bb07').should.equal(true);
115
+ });
116
+ describe('Verify transaction: ', () => {
117
+ it('should succeed to verify transaction', async function () {
118
+ const txPrebuild = newTxPrebuild();
119
+ const txParams = newTxParams();
120
+ const verification = {};
121
+ const isTransactionVerified = await basecoin.verifyTransaction({ txParams, txPrebuild, verification });
122
+ isTransactionVerified.should.equal(true);
123
+ });
124
+ it('should succeed to verify fungible transaction', async function () {
125
+ const verification = {};
126
+ const isTransactionVerified = await basecoin.verifyTransaction({
127
+ txPrebuild: batchFungibleTxPrebuild,
128
+ txParams: batchFungibleTxParams,
129
+ verification,
130
+ });
131
+ isTransactionVerified.should.equal(true);
132
+ });
133
+ it('should succeed to verify transaction when recipients amount are numbers', async function () {
134
+ const txPrebuild = newTxPrebuild();
135
+ const txParamsWithNumberAmounts = newTxParams();
136
+ txParamsWithNumberAmounts.recipients = txParamsWithNumberAmounts.recipients.map(({ address, amount }) => {
137
+ return { address, amount: Number(amount) };
138
+ });
139
+ const verification = {};
140
+ const isTransactionVerified = await basecoin.verifyTransaction({
141
+ txParams: txParamsWithNumberAmounts,
142
+ txPrebuild,
143
+ verification,
144
+ });
145
+ isTransactionVerified.should.equal(true);
146
+ });
147
+ it('should fail to verify transaction with invalid param', async function () {
148
+ const txPrebuild = {};
149
+ const txParams = newTxParams();
150
+ txParams.recipients = undefined;
151
+ await basecoin
152
+ .verifyTransaction({
153
+ txParams,
154
+ txPrebuild,
155
+ })
156
+ .should.rejectedWith('missing required tx prebuild property txHex');
157
+ });
158
+ });
159
+ describe('Parse and Explain Transactions: ', () => {
160
+ const transferInputsResponse = [
161
+ {
162
+ address: testData.sender2.address,
163
+ amount: testData.AMOUNT.toString(),
164
+ },
165
+ ];
166
+ const transferOutputsResponse = [
167
+ {
168
+ address: testData.recipients[0].address,
169
+ amount: testData.recipients[0].amount,
170
+ },
171
+ ];
172
+ const transferFungibleInputResponse = [
173
+ {
174
+ address: testData.fungibleSender.address,
175
+ amount: testData.FUNGIBLE_TOKEN_AMOUNT.toString(),
176
+ },
177
+ ];
178
+ const tranferFungibleOutputResponse = [
179
+ {
180
+ address: testData.fungibleTokenRecipients[1].address,
181
+ amount: testData.fungibleTokenRecipients[1].amount,
182
+ },
183
+ ];
184
+ it('should parse a transfer transaction', async function () {
185
+ const parsedTransaction = await basecoin.parseTransaction({
186
+ txHex: testData.TRANSACTION_USING_TRANSFER_COINS,
187
+ });
188
+ parsedTransaction.should.deepEqual({
189
+ inputs: transferInputsResponse,
190
+ outputs: transferOutputsResponse,
191
+ });
192
+ });
193
+ it('should parse signed fungible transaction, only work if amount parsing correctly done from payload', async function () {
194
+ const parsedTransaction = await basecoin.parseTransaction({
195
+ txHex: testData.FUNGIBLE_SERIALIZED_TX_HEX,
196
+ });
197
+ parsedTransaction.should.deepEqual({
198
+ inputs: transferFungibleInputResponse,
199
+ outputs: tranferFungibleOutputResponse,
200
+ });
201
+ });
202
+ it('should explain a transfer transaction', async function () {
203
+ const rawTx = newTxPrebuild().txHex;
204
+ const transaction = new src_1.TransferTransaction(statics_1.coins.get('tapt'));
205
+ transaction.fromRawTransaction(rawTx);
206
+ const explainedTx = transaction.explainTransaction();
207
+ console.log(explainedTx);
208
+ explainedTx.should.deepEqual({
209
+ displayOrder: [
210
+ 'id',
211
+ 'outputs',
212
+ 'outputAmount',
213
+ 'changeOutputs',
214
+ 'changeAmount',
215
+ 'fee',
216
+ 'withdrawAmount',
217
+ 'sender',
218
+ 'type',
219
+ ],
220
+ id: '0x249289a8178e4b9cdb89fad6e8e436ccc435753e4ea3c9d50e0c8b525582e90d',
221
+ outputs: [
222
+ {
223
+ address: '0xf7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad9',
224
+ amount: '1000',
225
+ },
226
+ ],
227
+ outputAmount: '1000',
228
+ changeOutputs: [],
229
+ changeAmount: '0',
230
+ fee: { fee: '0' },
231
+ sender: '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a372449',
232
+ type: 0,
233
+ });
234
+ });
235
+ it('should explain a staking delegate transaction', async function () {
236
+ const rawTx = testData.DELEGATION_POOL_ADD_STAKE_TX_HEX;
237
+ const transaction = new delegationPoolAddStakeTransaction_1.DelegationPoolAddStakeTransaction(statics_1.coins.get('tapt'));
238
+ transaction.fromRawTransaction(rawTx);
239
+ const explainedTx = transaction.explainTransaction();
240
+ explainedTx.should.deepEqual({
241
+ displayOrder: [
242
+ 'id',
243
+ 'outputs',
244
+ 'outputAmount',
245
+ 'changeOutputs',
246
+ 'changeAmount',
247
+ 'fee',
248
+ 'withdrawAmount',
249
+ 'sender',
250
+ 'type',
251
+ ],
252
+ id: '0xc5b960d1bec149c77896344774352c61441307af564eaa8c84f857208e411bf3',
253
+ outputs: [
254
+ {
255
+ address: '0xf7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad9',
256
+ amount: '1000',
257
+ },
258
+ ],
259
+ outputAmount: '1000',
260
+ changeOutputs: [],
261
+ changeAmount: '0',
262
+ fee: { fee: '0' },
263
+ sender: '0x1aed808916ab9b1b30b07abb53561afd46847285ce28651221d406173a372449',
264
+ type: 30,
265
+ });
266
+ });
267
+ it('should fail to explain a invalid raw transaction', async function () {
268
+ const rawTx = 'invalidRawTransaction';
269
+ const transaction = new src_1.TransferTransaction(statics_1.coins.get('tapt'));
270
+ await assert_1.default.rejects(async () => transaction.fromRawTransaction(rawTx), {
271
+ message: 'invalid raw transaction',
272
+ });
273
+ });
274
+ it('should fail to parse a transfer transaction when explainTransaction response is undefined', async function () {
275
+ const stub = sinon_1.default.stub(src_1.Apt.prototype, 'explainTransaction');
276
+ stub.resolves(undefined);
277
+ await basecoin.parseTransaction({ txHex: testData.TRANSFER }).should.be.rejectedWith('Invalid transaction');
278
+ stub.restore();
279
+ });
280
+ });
281
+ describe('Address Validation', () => {
282
+ const testData = {
283
+ commonKeychain: '6a724c11eafea4209704c35e6ee3e1fba80d2a40860d873bbe5981de636c9cf6ade77e6fdd4388889ee93d7eaa737ab584edb57cc0cc15b2899380348d6e482c',
284
+ rootAddress: '0x0598b31aa77176dbaba25306404aa8131218068df58bf0b7eec13f57053fd5a7',
285
+ receiveAddress: '0xdc169725dd6d9a07ee255b17087b4079e8a80850c895c65b62c0ef6de740d37a',
286
+ receiveAddressIndex: 1,
287
+ };
288
+ const keychains = [
289
+ { commonKeychain: testData.commonKeychain },
290
+ { commonKeychain: testData.commonKeychain },
291
+ { commonKeychain: testData.commonKeychain },
292
+ ];
293
+ it('should return true when validating a well formatted address prefixed with 0x', async function () {
294
+ const address = '0xf941ae3cbe5645dccc15da8346b533f7f91f202089a5521653c062b2ff10b304';
295
+ basecoin.isValidAddress(address).should.equal(true);
296
+ });
297
+ it('should return false when validating an old address', async function () {
298
+ const address = '0x2959bfc3fdb7dc23fed8deba2fafb70f3e606a59';
299
+ basecoin.isValidAddress(address).should.equal(false);
300
+ });
301
+ it('should return false when validating an incorrectly formatted', async function () {
302
+ const address = 'wrongaddress';
303
+ basecoin.isValidAddress(address).should.equal(false);
304
+ });
305
+ it('should verify a valid receive address', async function () {
306
+ const params = {
307
+ address: testData.receiveAddress,
308
+ rootAddress: testData.rootAddress,
309
+ keychains,
310
+ index: testData.receiveAddressIndex,
311
+ };
312
+ const result = await basecoin.isWalletAddress(params);
313
+ result.should.equal(true);
314
+ });
315
+ it('should throw error for isWalletAddress when keychains is missing', async function () {
316
+ const address = '0x2959bfc3fdb7dc23fed8deba2fafb70f3e606a59';
317
+ const index = 0;
318
+ const params = { commonKeychain: testData.commonKeychain, address, index };
319
+ await assert_1.default.rejects(async () => basecoin.isWalletAddress(params));
320
+ });
321
+ it('should throw error for isWalletAddress when new address is invalid', async function () {
322
+ const wrongAddress = 'badAddress';
323
+ const index = 0;
324
+ const params = { commonKeychain: testData.commonKeychain, address: wrongAddress, index };
325
+ await assert_1.default.rejects(async () => basecoin.isWalletAddress(params), {
326
+ message: `invalid address: ${wrongAddress}`,
327
+ });
328
+ });
329
+ });
330
+ describe('ID Validation', () => {
331
+ it('check id', async function () {
332
+ const network = ts_sdk_1.Network.TESTNET;
333
+ const aptos = new ts_sdk_1.Aptos(new ts_sdk_1.AptosConfig({ network }));
334
+ const senderAddress = ts_sdk_1.AccountAddress.fromString('0xc8f02d25aa698b3e9fbd8a08e8da4c8ee261832a25a4cde8731b5ec356537d09');
335
+ const recipientAddress = ts_sdk_1.AccountAddress.fromString('0xf7405c28a02cf5bab4ea4498240bb3579db45951794eb1c843bef0534c093ad9');
336
+ const transaction = await aptos.transaction.build.simple({
337
+ sender: senderAddress,
338
+ data: {
339
+ function: '0x1::coin::transfer',
340
+ typeArguments: [ts_sdk_1.APTOS_COIN],
341
+ functionArguments: [recipientAddress, 1000],
342
+ },
343
+ options: {
344
+ maxGasAmount: 200000,
345
+ gasUnitPrice: 100,
346
+ expireTimestamp: 1732699236,
347
+ accountSequenceNumber: 14,
348
+ },
349
+ });
350
+ const DEFAULT_PUBLIC_KEY = Buffer.alloc(32);
351
+ const DEFAULT_SIGNATURE = Buffer.alloc(64);
352
+ const publicKey = new ts_sdk_1.Ed25519PublicKey(utils_1.default.getBufferFromHexString(DEFAULT_PUBLIC_KEY.toString('hex')));
353
+ const signature = new ts_sdk_1.Ed25519Signature(DEFAULT_SIGNATURE);
354
+ const senderAuthenticator = new ts_sdk_1.AccountAuthenticatorEd25519(publicKey, signature);
355
+ const id = (0, ts_sdk_1.generateUserTransactionHash)({ transaction, senderAuthenticator });
356
+ id.should.equal('0x923d1cfed3afac24048451160337db75ba282912157ee43407b572923801d5ba');
357
+ });
358
+ });
359
+ });
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXB0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vdGVzdC91bml0L2FwdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGtCQUFnQjtBQUNoQixtREFBK0Q7QUFDL0QsaURBQStDO0FBQy9DLG1DQUFxRTtBQUNyRSwyREFBNkM7QUFDN0Msb0RBQXVCO0FBQ3ZCLGtEQUEwQjtBQUMxQixvREFBNEI7QUFDNUIsK0NBVTRCO0FBQzVCLGdFQUF3QztBQUN4QyxpREFBeUU7QUFDekUsbUhBQWdIO0FBRWhILFFBQVEsQ0FBQyxNQUFNLEVBQUU7SUFDZixJQUFJLEtBQW1CLENBQUM7SUFDeEIsSUFBSSxRQUFRLENBQUM7SUFDYixJQUFJLGFBQWEsQ0FBQztJQUNsQixJQUFJLFdBQVcsQ0FBQztJQUVoQixNQUFNLFVBQVUsR0FBRztRQUNqQixLQUFLLEVBQUUsUUFBUSxDQUFDLGdDQUFnQztRQUNoRCxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUM7SUFFRixNQUFNLFFBQVEsR0FBRztRQUNmLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtLQUNoQyxDQUFDO0lBRUYsTUFBTSx1QkFBdUIsR0FBRztRQUM5QixLQUFLLEVBQUUsUUFBUSxDQUFDLHlCQUF5QjtRQUN6QyxNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUM7SUFFRixNQUFNLHFCQUFxQixHQUFHO1FBQzVCLFVBQVUsRUFBRSxRQUFRLENBQUMsdUJBQXVCO1FBQzVDLElBQUksRUFBRSxVQUFVO0tBQ2pCLENBQUM7SUFFRixNQUFNLENBQUM7UUFDTCxLQUFLLEdBQUcsb0JBQVMsQ0FBQyxRQUFRLENBQUMsa0JBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLFNBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxVQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDaEQsS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsY0FBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzNCLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLGFBQWEsR0FBRyxHQUFHLEVBQUU7WUFDbkIsT0FBTyxnQkFBQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNqQyxDQUFDLENBQUM7UUFDRixXQUFXLEdBQUcsR0FBRyxFQUFFO1lBQ2pCLE9BQU8sZ0JBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDL0IsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUU7UUFDakMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkMsTUFBTSxVQUFVLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQXVCLENBQUM7UUFDMUQsTUFBTSxXQUFXLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQXVCLENBQUM7UUFFNUQsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdkMsVUFBVSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekQsV0FBVyxDQUFDLDRCQUE0QixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUQsVUFBVSxDQUFDLHFDQUFxQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkUsV0FBVyxDQUFDLHFDQUFxQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFcEUsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBYSxDQUFDO1FBQ3RELGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNuRCxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsb0VBQW9FLENBQUMsQ0FBQztRQUMxRyxjQUFjLENBQUMsYUFB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RUFBRSxNQUFNO29CQUNwQixZQUFZLEVBQUUsR0FBRztvQkFDakIsZUFBZSxFQUFFLFVBQVU7b0JBQzNCLHFCQUFxQixFQUFFLEVBQUU7aUJBQzFCO2FBQ0YsQ0FBQyxDQUFDO1lBRUgsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLHlCQUFnQixDQUFDLGVBQUssQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pHLE1BQU0sU0FBUyxHQUFHLElBQUkseUJBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMxRCxNQUFNLG1CQUFtQixHQUFHLElBQUksb0NBQTJCLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2xGLE1BQU0sRUFBRSxHQUFHLElBQUEsb0NBQTJCLEVBQUMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDO1lBRTdFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9FQUFvRSxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHsgVGVzdEJpdEdvLCBUZXN0Qml0R29BUEkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstdGVzdCc7XG5pbXBvcnQgeyBCaXRHb0FQSSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1hcGknO1xuaW1wb3J0IHsgQXB0LCBBcHRUb2tlbiwgVGFwdCwgVHJhbnNmZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3NyYyc7XG5pbXBvcnQgKiBhcyB0ZXN0RGF0YSBmcm9tICcuLi9yZXNvdXJjZXMvYXB0JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgc2lub24gZnJvbSAnc2lub24nO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHtcbiAgQWNjb3VudEFkZHJlc3MsXG4gIEFjY291bnRBdXRoZW50aWNhdG9yRWQyNTUxOSxcbiAgQXB0b3MsXG4gIEFQVE9TX0NPSU4sXG4gIEFwdG9zQ29uZmlnLFxuICBFZDI1NTE5UHVibGljS2V5LFxuICBFZDI1NTE5U2lnbmF0dXJlLFxuICBnZW5lcmF0ZVVzZXJUcmFuc2FjdGlvbkhhc2gsXG4gIE5ldHdvcmssXG59IGZyb20gJ0BhcHRvcy1sYWJzL3RzLXNkayc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vLi4vc3JjL2xpYi91dGlscyc7XG5pbXBvcnQgeyBBcHRDb2luLCBjb2lucywgR2FzVGFua0FjY291bnRDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBEZWxlZ2F0aW9uUG9vbEFkZFN0YWtlVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uL2RlbGVnYXRpb25Qb29sQWRkU3Rha2VUcmFuc2FjdGlvbic7XG5cbmRlc2NyaWJlKCdBUFQ6JywgZnVuY3Rpb24gKCkge1xuICBsZXQgYml0Z286IFRlc3RCaXRHb0FQSTtcbiAgbGV0IGJhc2Vjb2luO1xuICBsZXQgbmV3VHhQcmVidWlsZDtcbiAgbGV0IG5ld1R4UGFyYW1zO1xuXG4gIGNvbnN0IHR4UHJlQnVpbGQgPSB7XG4gICAgdHhIZXg6IHRlc3REYXRhLlRSQU5TQUNUSU9OX1VTSU5HX1RSQU5TRkVSX0NPSU5TLFxuICAgIHR4SW5mbzoge30sXG4gIH07XG5cbiAgY29uc3QgdHhQYXJhbXMgPSB7XG4gICAgcmVjaXBpZW50czogdGVzdERhdGEucmVjaXBpZW50cyxcbiAgfTtcblxuICBjb25zdCBiYXRjaEZ1bmdpYmxlVHhQcmVidWlsZCA9IHtcbiAgICB0eEhleDogdGVzdERhdGEuRlVOR0lCTEVfQkFUQ0hfUkFXX1RYX0hFWCxcbiAgICB0eEluZm86IHt9LFxuICB9O1xuXG4gIGNvbnN0IGJhdGNoRnVuZ2libGVUeFBhcmFtcyA9IHtcbiAgICByZWNpcGllbnRzOiB0ZXN0RGF0YS5iYXRjaEZ1bmdpYmxlUmVjaXBpZW50cyxcbiAgICB0eXBlOiAndHJhbnNmZXInLFxuICB9O1xuXG4gIGJlZm9yZShmdW5jdGlvbiAoKSB7XG4gICAgYml0Z28gPSBUZXN0Qml0R28uZGVjb3JhdGUoQml0R29BUEksIHsgZW52OiAnbW9jaycgfSk7XG4gICAgYml0Z28uc2FmZVJlZ2lzdGVyKCdhcHQnLCBBcHQuY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcigndGFwdCcsIFRhcHQuY3JlYXRlSW5zdGFuY2UpO1xuICAgIGJpdGdvLnNhZmVSZWdpc3RlcignYXB0OnVzZHQnLCBBcHRUb2tlbi5jcmVhdGVJbnN0YW5jZSk7XG4gICAgYml0Z28uaW5pdGlhbGl6ZVRlc3RWYXJzKCk7XG4gICAgYmFzZWNvaW4gPSBiaXRnby5jb2luKCd0YXB0Jyk7XG4gICAgbmV3VHhQcmVidWlsZCA9ICgpID0+IHtcbiAgICAgIHJldHVybiBfLmNsb25lRGVlcCh0eFByZUJ1aWxkKTtcbiAgICB9O1xuICAgIG5ld1R4UGFyYW1zID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIF8uY2xvbmVEZWVwKHR4UGFyYW1zKTtcbiAgICB9O1xuICB9KTtcblxuICBpdCgnc2hvdWxkIHJldHVybiB0aGUgcmlnaHQgaW5mbycsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBhcHQgPSBiaXRnby5jb2luKCdhcHQnKTtcbiAgICBjb25zdCB0YXB0ID0gYml0Z28uY29pbigndGFwdCcpO1xuICAgIGNvbnN0IGFwdFVzZHQgPSBiaXRnby5jb2luKCdhcHQ6dXNkdCcpO1xuICAgIGNvbnN0IGFwdFN0YXRpY3MgPSBjb2lucy5nZXQoJ2FwdCcpIGFzIEdhc1RhbmtBY2NvdW50Q29pbjtcbiAgICBjb25zdCB0YXB0U3RhdGljcyA9IGNvaW5zLmdldCgndGFwdCcpIGFzIEdhc1RhbmtBY2NvdW50Q29pbjtcblxuICAgIGFwdC5nZXRDaGFpbigpLnNob3VsZC5lcXVhbCgnYXB0Jyk7XG4gICAgYXB0LmdldEZhbWlseSgpLnNob3VsZC5lcXVhbCgnYXB0Jyk7XG4gICAgYXB0LmdldEZ1bGxOYW1lKCkuc2hvdWxkLmVxdWFsKCdBcHRvcycpO1xuICAgIGFwdC5nZXRCYXNlRmFjdG9yKCkuc2hvdWxkLmVxdWFsKDFlOCk7XG5cbiAgICB0YXB0LmdldENoYWluKCkuc2hvdWxkLmVxdWFsKCd0YXB0Jyk7XG4gICAgdGFwdC5nZXRGYW1pbHkoKS5zaG91bGQuZXF1YWwoJ2FwdCcpO1xuICAgIHRhcHQuZ2V0RnVsbE5hbWUoKS5zaG91bGQuZXF1YWwoJ1Rlc3RuZXQgQXB0b3MnKTtcbiAgICB0YXB0LmdldEJhc2VGYWN0b3IoKS5zaG91bGQuZXF1YWwoMWU4KTtcblxuICAgIGFwdFN0YXRpY3MuZ2FzVGFua0xvd0JhbGFuY2VBbGVydEZhY3Rvci5zaG91bGQuZXF1YWwoODApO1xuICAgIHRhcHRTdGF0aWNzLmdhc1RhbmtMb3dCYWxhbmNlQWxlcnRGYWN0b3Iuc2hvdWxkLmVxdWFsKDgwKTtcbiAgICBhcHRTdGF0aWNzLmdhc1RhbmtNaW5CYWxhbmNlUmVjb21tZW5kYXRpb25GYWN0b3Iuc2hvdWxkLmVxdWFsKDIwMCk7XG4gICAgdGFwdFN0YXRpY3MuZ2FzVGFua01pbkJhbGFuY2VSZWNvbW1lbmRhdGlvbkZhY3Rvci5zaG91bGQuZXF1YWwoMjAwKTtcblxuICAgIGFwdFVzZHQuZ2V0RmFtaWx5KCkuc2hvdWxkLmVxdWFsKCdhcHQnKTtcbiAgICBhcHRVc2R0LmdldENoYWluKCkuc2hvdWxkLmVxdWFsKCdhcHQnKTtcbiAgICBjb25zdCBhcHRVc2R0U3RhdGljcyA9IGFwdFVzZHQuZ2V0Q29uZmlnKCkgYXMgQXB0Q29pbjtcbiAgICBhcHRVc2R0U3RhdGljcy5mdWxsTmFtZS5zaG91bGQuZXF1YWwoJ1VTRCBUZXRoZXInKTtcbiAgICBhcHRVc2R0U3RhdGljcy5hc3NldElkLnNob3VsZC5lcXVhbCgnMHgzNTdiMGI3NGJjODMzZTk1YTExNWFkMjI2MDQ4NTRkNmIwZmNhMTUxY2VjZDk0MTExNzcwZTVkNmZmYzlkYzJiJyk7XG4gICAgYXB0VXNkdFN0YXRpY3MuZGVjaW1hbFBsYWNlcy5zaG91bGQuZXF1YWwoNik7XG4gIH0pO1xuXG4gIGl0KCdpcyB2YWxpZCBwdWInLCBmdW5jdGlvbiAoKSB7XG4gICAgLy8gd2l0aCAweCBwcmVmaXhcbiAgICBiYXNlY29pbi5pc1ZhbGlkUHViKCcweDliNGU5NjA4NmQxMTE1MDAyNTlmOWIzODY4MGIwNTA5YTQwNWMxOTA0ZGExODk3NjQ1NWEyMGM2OTFkM2JiMDcnKS5zaG91bGQuZXF1YWwoZmFsc2UpO1xuICAgIC8vIHdpdGhvdXQgMHggcHJlZml4XG4gICAgYmFzZWNvaW4uaXNWYWxpZFB1YignOWI0ZTk2MDg2ZDExMTUwMDI1OWY5YjM4NjgwYjA1MDlhNDA1YzE5MDRkYTE4OTc2NDU1YTIwYzY5MWQzYmIwNycpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1ZlcmlmeSB0cmFuc2FjdGlvbjogJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgc3VjY2VlZCB0byB2ZXJpZnkgdHJhbnNhY3Rpb24nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eFByZWJ1aWxkID0gbmV3VHhQcmVidWlsZCgpO1xuICAgICAgY29uc3QgdHhQYXJhbXMgPSBuZXdUeFBhcmFtcygpO1xuICAgICAgY29uc3QgdmVyaWZpY2F0aW9uID0ge307XG4gICAgICBjb25zdCBpc1RyYW5zYWN0aW9uVmVyaWZpZWQgPSBhd2FpdCBiYXNlY29pbi52ZXJpZnlUcmFuc2FjdGlvbih7IHR4UGFyYW1zLCB0eFByZWJ1aWxkLCB2ZXJpZmljYXRpb24gfSk7XG4gICAgICBpc1RyYW5zYWN0aW9uVmVyaWZpZWQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzdWNjZWVkIHRvIHZlcmlmeSBmdW5naWJsZSB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHZlcmlmaWNhdGlvbiA9IHt9O1xuICAgICAgY29uc3QgaXNUcmFuc2FjdGlvblZlcmlmaWVkID0gYXdhaXQgYmFzZWNvaW4udmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICB0eFByZWJ1aWxkOiBiYXRjaEZ1bmdpYmxlVHhQcmVidWlsZCxcbiAgICAgICAgdHhQYXJhbXM6IGJhdGNoRnVuZ2libGVUeFBhcmFtcyxcbiAgICAgICAgdmVyaWZpY2F0aW9uLFxuICAgICAgfSk7XG4gICAgICBpc1RyYW5zYWN0aW9uVmVyaWZpZWQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBzdWNjZWVkIHRvIHZlcmlmeSB0cmFuc2FjdGlvbiB3aGVuIHJlY2lwaWVudHMgYW1vdW50IGFyZSBudW1iZXJzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdHhQcmVidWlsZCA9IG5ld1R4UHJlYnVpbGQoKTtcbiAgICAgIGNvbnN0IHR4UGFyYW1zV2l0aE51bWJlckFtb3VudHMgPSBuZXdUeFBhcmFtcygpO1xuICAgICAgdHhQYXJhbXNXaXRoTnVtYmVyQW1vdW50cy5yZWNpcGllbnRzID0gdHhQYXJhbXNXaXRoTnVtYmVyQW1vdW50cy5yZWNpcGllbnRzLm1hcCgoeyBhZGRyZXNzLCBhbW91bnQgfSkgPT4ge1xuICAgICAgICByZXR1cm4geyBhZGRyZXNzLCBhbW91bnQ6IE51bWJlcihhbW91bnQpIH07XG4gICAgICB9KTtcbiAgICAgIGNvbnN0IHZlcmlmaWNhdGlvbiA9IHt9O1xuICAgICAgY29uc3QgaXNUcmFuc2FjdGlvblZlcmlmaWVkID0gYXdhaXQgYmFzZWNvaW4udmVyaWZ5VHJhbnNhY3Rpb24oe1xuICAgICAgICB0eFBhcmFtczogdHhQYXJhbXNXaXRoTnVtYmVyQW1vdW50cyxcbiAgICAgICAgdHhQcmVidWlsZCxcbiAgICAgICAgdmVyaWZpY2F0aW9uLFxuICAgICAgfSk7XG4gICAgICBpc1RyYW5zYWN0aW9uVmVyaWZpZWQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIHZlcmlmeSB0cmFuc2FjdGlvbiB3aXRoIGludmFsaWQgcGFyYW0nLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB0eFByZWJ1aWxkID0ge307XG4gICAgICBjb25zdCB0eFBhcmFtcyA9IG5ld1R4UGFyYW1zKCk7XG4gICAgICB0eFBhcmFtcy5yZWNpcGllbnRzID0gdW5kZWZpbmVkO1xuICAgICAgYXdhaXQgYmFzZWNvaW5cbiAgICAgICAgLnZlcmlmeVRyYW5zYWN0aW9uKHtcbiAgICAgICAgICB0eFBhcmFtcyxcbiAgICAgICAgICB0eFByZWJ1aWxkLFxuICAgICAgICB9KVxuICAgICAgICAuc2hvdWxkLnJlamVjdGVkV2l0aCgnbWlzc2luZyByZXF1aXJlZCB0eCBwcmVidWlsZCBwcm9wZXJ0eSB0eEhleCcpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnUGFyc2UgYW5kIEV4cGxhaW4gVHJhbnNhY3Rpb25zOiAnLCAoKSA9PiB7XG4gICAgY29uc3QgdHJhbnNmZXJJbnB1dHNSZXNwb25zZSA9IFtcbiAgICAgIHtcbiAgICAgICAgYWRkcmVzczogdGVzdERhdGEuc2VuZGVyMi5hZGRyZXNzLFxuICAgICAgICBhbW91bnQ6IHRlc3REYXRhLkFNT1VOVC50b1N0cmluZygpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgdHJhbnNmZXJPdXRwdXRzUmVzcG9uc2UgPSBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRlc3REYXRhLnJlY2lwaWVudHNbMF0uYWRkcmVzcyxcbiAgICAgICAgYW1vdW50OiB0ZXN0RGF0YS5yZWNpcGllbnRzWzBdLmFtb3VudCxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IHRyYW5zZmVyRnVuZ2libGVJbnB1dFJlc3BvbnNlID0gW1xuICAgICAge1xuICAgICAgICBhZGRyZXNzOiB0ZXN0RGF0YS5mdW5naWJsZVNlbmRlci5hZGRyZXNzLFxuICAgICAgICBhbW91bnQ6IHRlc3REYXRhLkZVTkdJQkxFX1RPS0VOX0FNT1VOVC50b1N0cmluZygpLFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgdHJhbmZlckZ1bmdpYmxlT3V0cHV0UmVzcG9uc2UgPSBbXG4gICAgICB7XG4gICAgICAgIGFkZHJlc3M6IHRlc3REYXRhLmZ1bmdpYmxlVG9rZW5SZWNpcGllbnRzWzFdLmFkZHJlc3MsXG4gICAgICAgIGFtb3VudDogdGVzdERhdGEuZnVuZ2libGVUb2tlblJlY2lwaWVudHNbMV0uYW1vdW50LFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgaXQoJ3Nob3VsZCBwYXJzZSBhIHRyYW5zZmVyIHRyYW5zYWN0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcGFyc2VkVHJhbnNhY3Rpb24gPSBhd2FpdCBiYXNlY29pbi5wYXJzZVRyYW5zYWN0aW9uKHtcbiAgICAgICAgdHhIZXg6IHRlc3REYXRhLlRSQU5TQUNUSU9OX1VTSU5HX1RSQU5TRkVSX0NPSU5TLFxuICAgICAgfSk7XG5cbiAgICAgIHBhcnNlZFRyYW5zYWN0aW9uLnNob3VsZC5kZWVwRXF1YWwoe1xuICAgICAgICBpbnB1dHM6IHRyYW5zZmVySW5wdXRzUmVzcG9uc2UsXG4gICAgICAgIG91dHB1dHM6IHRyYW5zZmVyT3V0cHV0c1Jlc3BvbnNlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHBhcnNlIHNpZ25lZCBmdW5naWJsZSB0cmFuc2FjdGlvbiwgb25seSB3b3JrIGlmIGFtb3VudCBwYXJzaW5nIGNvcnJlY3RseSBkb25lIGZyb20gcGF5bG9hZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHBhcnNlZFRyYW5zYWN0aW9uID0gYXdhaXQgYmFzZWNvaW4ucGFyc2VUcmFuc2FjdGlvbih7XG4gICAgICAgIHR4SGV4OiB0ZXN0RGF0YS5GVU5HSUJMRV9TRVJJQUxJWkVEX1RYX0hFWCxcbiAgICAgIH0pO1xuXG4gICAgICBwYXJzZWRUcmFuc2FjdGlvbi5zaG91bGQuZGVlcEVxdWFsKHtcbiAgICAgICAgaW5wdXRzOiB0cmFuc2ZlckZ1bmdpYmxlSW5wdXRSZXNwb25zZSxcbiAgICAgICAgb3V0cHV0czogdHJhbmZlckZ1bmdpYmxlT3V0cHV0UmVzcG9uc2UsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgZXhwbGFpbiBhIHRyYW5zZmVyIHRyYW5zYWN0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcmF3VHggPSBuZXdUeFByZWJ1aWxkKCkudHhIZXg7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2ZlclRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGFwdCcpKTtcbiAgICAgIHRyYW5zYWN0aW9uLmZyb21SYXdUcmFuc2FjdGlvbihyYXdUeCk7XG4gICAgICBjb25zdCBleHBsYWluZWRUeCA9IHRyYW5zYWN0aW9uLmV4cGxhaW5UcmFuc2FjdGlvbigpO1xuICAgICAgY29uc29sZS5sb2coZXhwbGFpbmVkVHgpO1xuICAgICAgZXhwbGFpbmVkVHguc2hvdWxkLmRlZXBFcXVhbCh7XG4gICAgICAgIGRpc3BsYXlPcmRlcjogW1xuICAgICAgICAgICdpZCcsXG4gICAgICAgICAgJ291dHB1dHMnLFxuICAgICAgICAgICdvdXRwdXRBbW91bnQnLFxuICAgICAgICAgICdjaGFuZ2VPdXRwdXRzJyxcbiAgICAgICAgICAnY2hhbmdlQW1vdW50JyxcbiAgICAgICAgICAnZmVlJyxcbiAgICAgICAgICAnd2l0aGRyYXdBbW91bnQnLFxuICAgICAgICAgICdzZW5kZXInLFxuICAgICAgICAgICd0eXBlJyxcbiAgICAgICAgXSxcbiAgICAgICAgaWQ6ICcweDI0OTI4OWE4MTc4ZTRiOWNkYjg5ZmFkNmU4ZTQzNmNjYzQzNTc1M2U0ZWEzYzlkNTBlMGM4YjUyNTU4MmU5MGQnLFxuICAgICAgICBvdXRwdXRzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgYWRkcmVzczogJzB4Zjc0MDVjMjhhMDJjZjViYWI0ZWE0NDk4MjQwYmIzNTc5ZGI0NTk1MTc5NGViMWM4NDNiZWYwNTM0YzA5M2FkOScsXG4gICAgICAgICAgICBhbW91bnQ6ICcxMDAwJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBvdXRwdXRBbW91bnQ6ICcxMDAwJyxcbiAgICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICAgIGNoYW5nZUFtb3VudDogJzAnLFxuICAgICAgICBmZWU6IHsgZmVlOiAnMCcgfSxcbiAgICAgICAgc2VuZGVyOiAnMHgxYWVkODA4OTE2YWI5YjFiMzBiMDdhYmI1MzU2MWFmZDQ2ODQ3Mjg1Y2UyODY1MTIyMWQ0MDYxNzNhMzcyNDQ5JyxcbiAgICAgICAgdHlwZTogMCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBleHBsYWluIGEgc3Rha2luZyBkZWxlZ2F0ZSB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJhd1R4ID0gdGVzdERhdGEuREVMRUdBVElPTl9QT09MX0FERF9TVEFLRV9UWF9IRVg7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IG5ldyBEZWxlZ2F0aW9uUG9vbEFkZFN0YWtlVHJhbnNhY3Rpb24oY29pbnMuZ2V0KCd0YXB0JykpO1xuICAgICAgdHJhbnNhY3Rpb24uZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1R4KTtcbiAgICAgIGNvbnN0IGV4cGxhaW5lZFR4ID0gdHJhbnNhY3Rpb24uZXhwbGFpblRyYW5zYWN0aW9uKCk7XG4gICAgICBleHBsYWluZWRUeC5zaG91bGQuZGVlcEVxdWFsKHtcbiAgICAgICAgZGlzcGxheU9yZGVyOiBbXG4gICAgICAgICAgJ2lkJyxcbiAgICAgICAgICAnb3V0cHV0cycsXG4gICAgICAgICAgJ291dHB1dEFtb3VudCcsXG4gICAgICAgICAgJ2NoYW5nZU91dHB1dHMnLFxuICAgICAgICAgICdjaGFuZ2VBbW91bnQnLFxuICAgICAgICAgICdmZWUnLFxuICAgICAgICAgICd3aXRoZHJhd0Ftb3VudCcsXG4gICAgICAgICAgJ3NlbmRlcicsXG4gICAgICAgICAgJ3R5cGUnLFxuICAgICAgICBdLFxuICAgICAgICBpZDogJzB4YzViOTYwZDFiZWMxNDljNzc4OTYzNDQ3NzQzNTJjNjE0NDEzMDdhZjU2NGVhYThjODRmODU3MjA4ZTQxMWJmMycsXG4gICAgICAgIG91dHB1dHM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhZGRyZXNzOiAnMHhmNzQwNWMyOGEwMmNmNWJhYjRlYTQ0OTgyNDBiYjM1NzlkYjQ1OTUxNzk0ZWIxYzg0M2JlZjA1MzRjMDkzYWQ5JyxcbiAgICAgICAgICAgIGFtb3VudDogJzEwMDAnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIG91dHB1dEFtb3VudDogJzEwMDAnLFxuICAgICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgICAgIGZlZTogeyBmZWU6ICcwJyB9LFxuICAgICAgICBzZW5kZXI6ICcweDFhZWQ4MDg5MTZhYjliMWIzMGIwN2FiYjUzNTYxYWZkNDY4NDcyODVjZTI4NjUxMjIxZDQwNjE3M2EzNzI0NDknLFxuICAgICAgICB0eXBlOiAzMCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIGV4cGxhaW4gYSBpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHJhd1R4ID0gJ2ludmFsaWRSYXdUcmFuc2FjdGlvbic7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2ZlclRyYW5zYWN0aW9uKGNvaW5zLmdldCgndGFwdCcpKTtcbiAgICAgIGF3YWl0IGFzc2VydC5yZWplY3RzKGFzeW5jICgpID0+IHRyYW5zYWN0aW9uLmZyb21SYXdUcmFuc2FjdGlvbihyYXdUeCksIHtcbiAgICAgICAgbWVzc2FnZTogJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHRvIHBhcnNlIGEgdHJhbnNmZXIgdHJhbnNhY3Rpb24gd2hlbiBleHBsYWluVHJhbnNhY3Rpb24gcmVzcG9uc2UgaXMgdW5kZWZpbmVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3Qgc3R1YiA9IHNpbm9uLnN0dWIoQXB0LnByb3RvdHlwZSwgJ2V4cGxhaW5UcmFuc2FjdGlvbicpO1xuICAgICAgc3R1Yi5yZXNvbHZlcyh1bmRlZmluZWQpO1xuICAgICAgYXdhaXQgYmFzZWNvaW4ucGFyc2VUcmFuc2FjdGlvbih7IHR4SGV4OiB0ZXN0RGF0YS5UUkFOU0ZFUiB9KS5zaG91bGQuYmUucmVqZWN0ZWRXaXRoKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgICBzdHViLnJlc3RvcmUoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0FkZHJlc3MgVmFsaWRhdGlvbicsICgpID0+IHtcbiAgICBjb25zdCB0ZXN0RGF0YSA9IHtcbiAgICAgIGNvbW1vbktleWNoYWluOlxuICAgICAgICAnNmE3MjRjMTFlYWZlYTQyMDk3MDRjMzVlNmVlM2UxZmJhODBkMmE0MDg2MGQ4NzNiYmU1OTgxZGU2MzZjOWNmNmFkZTc3ZTZmZGQ0Mzg4ODg5ZWU5M2Q3ZWFhNzM3YWI1ODRlZGI1N2NjMGNjMTViMjg5OTM4MDM0OGQ2ZTQ4MmMnLFxuICAgICAgcm9vdEFkZHJlc3M6ICcweDA1OThiMzFhYTc3MTc2ZGJhYmEyNTMwNjQwNGFhODEzMTIxODA2OGRmNThiZjBiN2VlYzEzZjU3MDUzZmQ1YTcnLFxuICAgICAgcmVjZWl2ZUFkZHJlc3M6ICcweGRjMTY5NzI1ZGQ2ZDlhMDdlZTI1NWIxNzA4N2I0MDc5ZThhODA4NTBjODk1YzY1YjYyYzBlZjZkZTc0MGQzN2EnLFxuICAgICAgcmVjZWl2ZUFkZHJlc3NJbmRleDogMSxcbiAgICB9O1xuXG4gICAgY29uc3Qga2V5Y2hhaW5zID0gW1xuICAgICAgeyBjb21tb25LZXljaGFpbjogdGVzdERhdGEuY29tbW9uS2V5Y2hhaW4gfSxcbiAgICAgIHsgY29tbW9uS2V5Y2hhaW46IHRlc3REYXRhLmNvbW1vbktleWNoYWluIH0sXG4gICAgICB7IGNvbW1vbktleWNoYWluOiB0ZXN0RGF0YS5jb21tb25LZXljaGFpbiB9LFxuICAgIF07XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiB0cnVlIHdoZW4gdmFsaWRhdGluZyBhIHdlbGwgZm9ybWF0dGVkIGFkZHJlc3MgcHJlZml4ZWQgd2l0aCAweCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGFkZHJlc3MgPSAnMHhmOTQxYWUzY2JlNTY0NWRjY2MxNWRhODM0NmI1MzNmN2Y5MWYyMDIwODlhNTUyMTY1M2MwNjJiMmZmMTBiMzA0JztcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpLnNob3VsZC5lcXVhbCh0cnVlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgcmV0dXJuIGZhbHNlIHdoZW4gdmFsaWRhdGluZyBhbiBvbGQgYWRkcmVzcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGFkZHJlc3MgPSAnMHgyOTU5YmZjM2ZkYjdkYzIzZmVkOGRlYmEyZmFmYjcwZjNlNjA2YTU5JztcbiAgICAgIGJhc2Vjb2luLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpLnNob3VsZC5lcXVhbChmYWxzZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJldHVybiBmYWxzZSB3aGVuIHZhbGlkYXRpbmcgYW4gaW5jb3JyZWN0bHkgZm9ybWF0dGVkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgYWRkcmVzcyA9ICd3cm9uZ2FkZHJlc3MnO1xuICAgICAgYmFzZWNvaW4uaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykuc2hvdWxkLmVxdWFsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdmVyaWZ5IGEgdmFsaWQgcmVjZWl2ZSBhZGRyZXNzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICBhZGRyZXNzOiB0ZXN0RGF0YS5yZWNlaXZlQWRkcmVzcyxcbiAgICAgICAgcm9vdEFkZHJlc3M6IHRlc3REYXRhLnJvb3RBZGRyZXNzLFxuICAgICAgICBrZXljaGFpbnMsXG4gICAgICAgIGluZGV4OiB0ZXN0RGF0YS5yZWNlaXZlQWRkcmVzc0luZGV4LFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYmFzZWNvaW4uaXNXYWxsZXRBZGRyZXNzKHBhcmFtcyk7XG4gICAgICByZXN1bHQuc2hvdWxkLmVxdWFsKHRydWUpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBmb3IgaXNXYWxsZXRBZGRyZXNzIHdoZW4ga2V5Y2hhaW5zIGlzIG1pc3NpbmcnLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBhZGRyZXNzID0gJzB4Mjk1OWJmYzNmZGI3ZGMyM2ZlZDhkZWJhMmZhZmI3MGYzZTYwNmE1OSc7XG4gICAgICBjb25zdCBpbmRleCA9IDA7XG5cbiAgICAgIGNvbnN0IHBhcmFtcyA9IHsgY29tbW9uS2V5Y2hhaW46IHRlc3REYXRhLmNvbW1vbktleWNoYWluLCBhZGRyZXNzLCBpbmRleCB9O1xuICAgICAgYXdhaXQgYXNzZXJ0LnJlamVjdHMoYXN5bmMgKCkgPT4gYmFzZWNvaW4uaXNXYWxsZXRBZGRyZXNzKHBhcmFtcykpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCB0aHJvdyBlcnJvciBmb3IgaXNXYWxsZXRBZGRyZXNzIHdoZW4gbmV3IGFkZHJlc3MgaXMgaW52YWxpZCcsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHdyb25nQWRkcmVzcyA9ICdiYWRBZGRyZXNzJztcbiAgICAgIGNvbnN0IGluZGV4ID0gMDtcblxuICAgICAgY29uc3QgcGFyYW1zID0geyBjb21tb25LZXljaGFpbjogdGVzdERhdGEuY29tbW9uS2V5Y2hhaW4sIGFkZHJlc3M6IHdyb25nQWRkcmVzcywgaW5kZXggfTtcbiAgICAgIGF3YWl0IGFzc2VydC5yZWplY3RzKGFzeW5jICgpID0+IGJhc2Vjb2luLmlzV2FsbGV0QWRkcmVzcyhwYXJhbXMpLCB7XG4gICAgICAgIG1lc3NhZ2U6IGBpbnZhbGlkIGFkZHJlc3M6ICR7d3JvbmdBZGRyZXNzfWAsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0lEIFZhbGlkYXRpb24nLCAoKSA9PiB7XG4gICAgaXQoJ2NoZWNrIGlkJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgbmV0d29yazogTmV0d29yayA9IE5ldHdvcmsuVEVTVE5FVDtcbiAgICAgIGNvbnN0IGFwdG9zID0gbmV3IEFwdG9zKG5ldyBBcHRvc0NvbmZpZyh7IG5ldHdvcmsgfSkpO1xuICAgICAgY29uc3Qgc2VuZGVyQWRkcmVzcyA9IEFjY291bnRBZGRyZXNzLmZyb21TdHJpbmcoXG4gICAgICAgICcweGM4ZjAyZDI1YWE2OThiM2U5ZmJkOGEwOGU4ZGE0YzhlZTI2MTgzMmEyNWE0Y2RlODczMWI1ZWMzNTY1MzdkMDknXG4gICAgICApO1xuICAgICAgY29uc3QgcmVjaXBpZW50QWRkcmVzcyA9IEFjY291bnRBZGRyZXNzLmZyb21TdHJpbmcoXG4gICAgICAgICcweGY3NDA1YzI4YTAyY2Y1YmFiNGVhNDQ5ODI0MGJiMzU3OWRiNDU5NTE3OTRlYjFjODQzYmVmMDUzNGMwOTNhZDknXG4gICAgICApO1xuXG4gICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IGF3YWl0IGFwdG9zLnRyYW5zYWN0aW9uLmJ1aWxkLnNpbXBsZSh7XG4gICAgICAgIHNlbmRlcjogc2VuZGVyQWRkcmVzcyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGZ1bmN0aW9uOiAnMHgxOjpjb2luOjp0cmFuc2ZlcicsXG4gICAgICAgICAgdHlwZUFyZ3VtZW50czogW0FQVE9TX0NPSU5dLFxuICAgICAgICAgIGZ1bmN0aW9uQXJndW1lbnRzOiBbcmVjaXBpZW50QWRkcmVzcywgMTAwMF0sXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICBtYXhHYXNBbW91bnQ6IDIwMDAwMCxcbiAgICAgICAgICBnYXNVbml0UHJpY2U6IDEwMCxcbiAgICAgICAgICBleHBpcmVUaW1lc3RhbXA6IDE3MzI2OTkyMzYsXG4gICAgICAgICAgYWNjb3VudFNlcXVlbmNlTnVtYmVyOiAxNCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBERUZBVUxUX1BVQkxJQ19LRVkgPSBCdWZmZXIuYWxsb2MoMzIpO1xuICAgICAgY29uc3QgREVGQVVMVF9TSUdOQVRVUkUgPSBCdWZmZXIuYWxsb2MoNjQpO1xuICAgICAgY29uc3QgcHVibGljS2V5ID0gbmV3IEVkMjU1MTlQdWJsaWNLZXkodXRpbHMuZ2V0QnVmZmVyRnJvbUhleFN0cmluZyhERUZBVUxUX1BVQkxJQ19LRVkudG9TdHJpbmcoJ2hleCcpKSk7XG4gICAgICBjb25zdCBzaWduYXR1cmUgPSBuZXcgRWQyNTUxOVNpZ25hdHVyZShERUZBVUxUX1NJR05BVFVSRSk7XG4gICAgICBjb25zdCBzZW5kZXJBdXRoZW50aWNhdG9yID0gbmV3IEFjY291bnRBdXRoZW50aWNhdG9yRWQyNTUxOShwdWJsaWNLZXksIHNpZ25hdHVyZSk7XG4gICAgICBjb25zdCBpZCA9IGdlbmVyYXRlVXNlclRyYW5zYWN0aW9uSGFzaCh7IHRyYW5zYWN0aW9uLCBzZW5kZXJBdXRoZW50aWNhdG9yIH0pO1xuXG4gICAgICBpZC5zaG91bGQuZXF1YWwoJzB4OTIzZDFjZmVkM2FmYWMyNDA0ODQ1MTE2MDMzN2RiNzViYTI4MjkxMjE1N2VlNDM0MDdiNTcyOTIzODAxZDViYScpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
@@ -0,0 +1,2 @@
1
+ import 'should';
2
+ //# sourceMappingURL=aptToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aptToken.d.ts","sourceRoot":"","sources":["../../../test/unit/aptToken.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,CAAC"}