@venusprotocol/isolated-pools 1.0.0-dev.7 → 1.0.0-dev.9

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 (227) hide show
  1. package/README.md +1 -11
  2. package/contracts/BaseJumpRateModelV2.sol +3 -2
  3. package/contracts/Comptroller.sol +22 -2
  4. package/contracts/ComptrollerInterface.sol +10 -0
  5. package/contracts/ComptrollerStorage.sol +5 -0
  6. package/contracts/ErrorReporter.sol +5 -0
  7. package/contracts/Lens/PoolLens.sol +13 -0
  8. package/contracts/MaxLoopsLimitHelper.sol +5 -0
  9. package/contracts/Pool/PoolRegistry.sol +58 -208
  10. package/contracts/Pool/PoolRegistryInterface.sol +12 -7
  11. package/contracts/Rewards/RewardsDistributor.sol +15 -0
  12. package/contracts/RiskFund/IProtocolShareReserve.sol +5 -0
  13. package/contracts/RiskFund/IRiskFund.sol +5 -0
  14. package/contracts/RiskFund/ProtocolShareReserve.sol +5 -0
  15. package/contracts/RiskFund/ReserveHelpers.sol +5 -0
  16. package/contracts/RiskFund/RiskFund.sol +3 -0
  17. package/contracts/Shortfall/IShortfall.sol +5 -0
  18. package/contracts/Shortfall/Shortfall.sol +10 -0
  19. package/contracts/VToken.sol +24 -2
  20. package/contracts/VTokenInterfaces.sol +10 -0
  21. package/contracts/lib/imports.sol +11 -0
  22. package/dist/deploy/006-deploy-factories.js +1 -32
  23. package/dist/deploy/007-access-control-configure.js +2 -6
  24. package/dist/deploy/009-deploy-pools.js +84 -23
  25. package/package.json +1 -1
  26. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +0 -4
  27. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json +0 -215
  28. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +0 -4
  29. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +0 -183
  30. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +0 -4
  31. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +0 -63
  32. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +0 -4
  33. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +0 -56
  34. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +0 -4
  35. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json +0 -24
  36. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +0 -4
  37. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +0 -56
  38. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +0 -4
  39. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +0 -19
  40. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +0 -4
  41. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.json +0 -80
  42. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +0 -4
  43. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +0 -24
  44. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +0 -4
  45. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +0 -113
  46. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +0 -4
  47. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +0 -297
  48. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +0 -4
  49. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +0 -194
  50. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +0 -4
  51. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +0 -233
  52. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +0 -4
  53. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +0 -10
  54. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +0 -4
  55. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +0 -10
  56. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +0 -4
  57. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +0 -10
  58. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +0 -4
  59. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +0 -10
  60. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +0 -4
  61. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +0 -30
  62. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +0 -4
  63. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +0 -30
  64. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +0 -4
  65. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +0 -10
  66. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +0 -4
  67. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +0 -10
  68. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +0 -4
  69. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.json +0 -115
  70. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +0 -4
  71. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +0 -76
  72. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +0 -4
  73. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +0 -24
  74. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +0 -4
  75. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json +0 -24
  76. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
  77. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +0 -194
  78. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +0 -4
  79. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +0 -86
  80. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +0 -4
  81. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +0 -10
  82. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +0 -4
  83. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +0 -10
  84. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +0 -4
  85. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +0 -24
  86. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.dbg.json +0 -4
  87. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.json +0 -369
  88. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +0 -4
  89. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.json +0 -181
  90. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +0 -4
  91. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.json +0 -282
  92. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +0 -4
  93. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.json +0 -40
  94. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +0 -4
  95. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.json +0 -30
  96. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +0 -4
  97. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.json +0 -43
  98. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +0 -4
  99. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.json +0 -49
  100. package/artifacts/build-info/eb7e5feedaca37f948646aa7bfff0291.json +0 -1
  101. package/artifacts/build-info/f19d689bc99e63a20dd2a17a14e2b84a.json +0 -1
  102. package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.dbg.json +0 -4
  103. package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.json +0 -276
  104. package/artifacts/contracts/Comptroller.sol/Comptroller.dbg.json +0 -4
  105. package/artifacts/contracts/Comptroller.sol/Comptroller.json +0 -1667
  106. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.dbg.json +0 -4
  107. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.json +0 -285
  108. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.dbg.json +0 -4
  109. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.json +0 -170
  110. package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.dbg.json +0 -4
  111. package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.json +0 -173
  112. package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.dbg.json +0 -4
  113. package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.json +0 -156
  114. package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.dbg.json +0 -4
  115. package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.json +0 -10
  116. package/artifacts/contracts/Factories/JumpRateModelFactory.sol/JumpRateModelFactory.dbg.json +0 -4
  117. package/artifacts/contracts/Factories/JumpRateModelFactory.sol/JumpRateModelFactory.json +0 -50
  118. package/artifacts/contracts/Factories/VTokenProxyFactory.sol/VTokenProxyFactory.dbg.json +0 -4
  119. package/artifacts/contracts/Factories/VTokenProxyFactory.sol/VTokenProxyFactory.json +0 -191
  120. package/artifacts/contracts/Factories/WhitePaperInterestRateModelFactory.sol/WhitePaperInterestRateModelFactory.dbg.json +0 -4
  121. package/artifacts/contracts/Factories/WhitePaperInterestRateModelFactory.sol/WhitePaperInterestRateModelFactory.json +0 -35
  122. package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.dbg.json +0 -4
  123. package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.json +0 -50
  124. package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.dbg.json +0 -4
  125. package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.json +0 -97
  126. package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.dbg.json +0 -4
  127. package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.json +0 -307
  128. package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.dbg.json +0 -4
  129. package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.json +0 -1087
  130. package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +0 -4
  131. package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.json +0 -59
  132. package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.dbg.json +0 -4
  133. package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.json +0 -923
  134. package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.dbg.json +0 -4
  135. package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.json +0 -176
  136. package/artifacts/contracts/Proxy/UpgradeableBeacon.sol/Beacon.dbg.json +0 -4
  137. package/artifacts/contracts/Proxy/UpgradeableBeacon.sol/Beacon.json +0 -113
  138. package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.dbg.json +0 -4
  139. package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.json +0 -928
  140. package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +0 -4
  141. package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.json +0 -29
  142. package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.dbg.json +0 -4
  143. package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.json +0 -101
  144. package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +0 -4
  145. package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.json +0 -296
  146. package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.dbg.json +0 -4
  147. package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.json +0 -83
  148. package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.dbg.json +0 -4
  149. package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.json +0 -615
  150. package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.dbg.json +0 -4
  151. package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.json +0 -24
  152. package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.dbg.json +0 -4
  153. package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.json +0 -756
  154. package/artifacts/contracts/VToken.sol/VToken.dbg.json +0 -4
  155. package/artifacts/contracts/VToken.sol/VToken.json +0 -1850
  156. package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.dbg.json +0 -4
  157. package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.json +0 -1398
  158. package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.dbg.json +0 -4
  159. package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.json +0 -219
  160. package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.dbg.json +0 -4
  161. package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.json +0 -192
  162. package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.dbg.json +0 -4
  163. package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.json +0 -1712
  164. package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.dbg.json +0 -4
  165. package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.json +0 -94
  166. package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.dbg.json +0 -4
  167. package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.json +0 -1744
  168. package/artifacts/contracts/test/ERC20.sol/ERC20.dbg.json +0 -4
  169. package/artifacts/contracts/test/ERC20.sol/ERC20.json +0 -194
  170. package/artifacts/contracts/test/ERC20.sol/ERC20Base.dbg.json +0 -4
  171. package/artifacts/contracts/test/ERC20.sol/ERC20Base.json +0 -141
  172. package/artifacts/contracts/test/ERC20.sol/ERC20Harness.dbg.json +0 -4
  173. package/artifacts/contracts/test/ERC20.sol/ERC20Harness.json +0 -351
  174. package/artifacts/contracts/test/ERC20.sol/ERC20NS.dbg.json +0 -4
  175. package/artifacts/contracts/test/ERC20.sol/ERC20NS.json +0 -182
  176. package/artifacts/contracts/test/ERC20.sol/NonStandardToken.dbg.json +0 -4
  177. package/artifacts/contracts/test/ERC20.sol/NonStandardToken.json +0 -247
  178. package/artifacts/contracts/test/ERC20.sol/StandardToken.dbg.json +0 -4
  179. package/artifacts/contracts/test/ERC20.sol/StandardToken.json +0 -259
  180. package/artifacts/contracts/test/EvilToken.sol/EvilToken.dbg.json +0 -4
  181. package/artifacts/contracts/test/EvilToken.sol/EvilToken.json +0 -303
  182. package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.dbg.json +0 -4
  183. package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.json +0 -265
  184. package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.dbg.json +0 -4
  185. package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.json +0 -277
  186. package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.dbg.json +0 -4
  187. package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.json +0 -313
  188. package/artifacts/contracts/test/FeeToken.sol/FeeToken.dbg.json +0 -4
  189. package/artifacts/contracts/test/FeeToken.sol/FeeToken.json +0 -313
  190. package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.dbg.json +0 -4
  191. package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.json +0 -85
  192. package/artifacts/contracts/test/MockDeflationaryToken.sol/MockDeflatingToken.dbg.json +0 -4
  193. package/artifacts/contracts/test/MockDeflationaryToken.sol/MockDeflatingToken.json +0 -332
  194. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.dbg.json +0 -4
  195. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.json +0 -233
  196. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.dbg.json +0 -4
  197. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.json +0 -187
  198. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.dbg.json +0 -4
  199. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.json +0 -668
  200. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.dbg.json +0 -4
  201. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.json +0 -760
  202. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.dbg.json +0 -4
  203. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.json +0 -962
  204. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.dbg.json +0 -4
  205. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.json +0 -55
  206. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.dbg.json +0 -4
  207. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.json +0 -10
  208. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.dbg.json +0 -4
  209. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.json +0 -982
  210. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.dbg.json +0 -4
  211. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.json +0 -10
  212. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.dbg.json +0 -4
  213. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.json +0 -10
  214. package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.dbg.json +0 -4
  215. package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.json +0 -85
  216. package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.dbg.json +0 -4
  217. package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.json +0 -315
  218. package/artifacts/contracts/test/SafeMath.sol/SafeMath.dbg.json +0 -4
  219. package/artifacts/contracts/test/SafeMath.sol/SafeMath.json +0 -10
  220. package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.dbg.json +0 -4
  221. package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.json +0 -1946
  222. package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.dbg.json +0 -4
  223. package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.json +0 -2306
  224. package/contracts/Factories/JumpRateModelFactory.sol +0 -26
  225. package/contracts/Factories/VTokenProxyFactory.sol +0 -53
  226. package/contracts/Factories/WhitePaperInterestRateModelFactory.sol +0 -12
  227. package/contracts/Proxy/UpgradeableBeacon.sol +0 -10
@@ -1,982 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "PancakeRouter",
4
- "sourceName": "contracts/test/Mocks/MockPancakeSwap.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "_factory",
11
- "type": "address"
12
- },
13
- {
14
- "internalType": "address",
15
- "name": "_WETH",
16
- "type": "address"
17
- }
18
- ],
19
- "stateMutability": "nonpayable",
20
- "type": "constructor"
21
- },
22
- {
23
- "inputs": [],
24
- "name": "WETH",
25
- "outputs": [
26
- {
27
- "internalType": "address",
28
- "name": "",
29
- "type": "address"
30
- }
31
- ],
32
- "stateMutability": "view",
33
- "type": "function"
34
- },
35
- {
36
- "inputs": [
37
- {
38
- "internalType": "address",
39
- "name": "tokenA",
40
- "type": "address"
41
- },
42
- {
43
- "internalType": "address",
44
- "name": "tokenB",
45
- "type": "address"
46
- },
47
- {
48
- "internalType": "uint256",
49
- "name": "amountADesired",
50
- "type": "uint256"
51
- },
52
- {
53
- "internalType": "uint256",
54
- "name": "amountBDesired",
55
- "type": "uint256"
56
- },
57
- {
58
- "internalType": "uint256",
59
- "name": "amountAMin",
60
- "type": "uint256"
61
- },
62
- {
63
- "internalType": "uint256",
64
- "name": "amountBMin",
65
- "type": "uint256"
66
- },
67
- {
68
- "internalType": "address",
69
- "name": "to",
70
- "type": "address"
71
- },
72
- {
73
- "internalType": "uint256",
74
- "name": "deadline",
75
- "type": "uint256"
76
- }
77
- ],
78
- "name": "addLiquidity",
79
- "outputs": [
80
- {
81
- "internalType": "uint256",
82
- "name": "amountA",
83
- "type": "uint256"
84
- },
85
- {
86
- "internalType": "uint256",
87
- "name": "amountB",
88
- "type": "uint256"
89
- },
90
- {
91
- "internalType": "uint256",
92
- "name": "liquidity",
93
- "type": "uint256"
94
- }
95
- ],
96
- "stateMutability": "nonpayable",
97
- "type": "function"
98
- },
99
- {
100
- "inputs": [
101
- {
102
- "internalType": "address",
103
- "name": "token",
104
- "type": "address"
105
- },
106
- {
107
- "internalType": "uint256",
108
- "name": "amountTokenDesired",
109
- "type": "uint256"
110
- },
111
- {
112
- "internalType": "uint256",
113
- "name": "amountTokenMin",
114
- "type": "uint256"
115
- },
116
- {
117
- "internalType": "uint256",
118
- "name": "amountETHMin",
119
- "type": "uint256"
120
- },
121
- {
122
- "internalType": "address",
123
- "name": "to",
124
- "type": "address"
125
- },
126
- {
127
- "internalType": "uint256",
128
- "name": "deadline",
129
- "type": "uint256"
130
- }
131
- ],
132
- "name": "addLiquidityETH",
133
- "outputs": [
134
- {
135
- "internalType": "uint256",
136
- "name": "amountToken",
137
- "type": "uint256"
138
- },
139
- {
140
- "internalType": "uint256",
141
- "name": "amountETH",
142
- "type": "uint256"
143
- },
144
- {
145
- "internalType": "uint256",
146
- "name": "liquidity",
147
- "type": "uint256"
148
- }
149
- ],
150
- "stateMutability": "payable",
151
- "type": "function"
152
- },
153
- {
154
- "inputs": [],
155
- "name": "factory",
156
- "outputs": [
157
- {
158
- "internalType": "address",
159
- "name": "",
160
- "type": "address"
161
- }
162
- ],
163
- "stateMutability": "view",
164
- "type": "function"
165
- },
166
- {
167
- "inputs": [
168
- {
169
- "internalType": "uint256",
170
- "name": "amountOut",
171
- "type": "uint256"
172
- },
173
- {
174
- "internalType": "uint256",
175
- "name": "reserveIn",
176
- "type": "uint256"
177
- },
178
- {
179
- "internalType": "uint256",
180
- "name": "reserveOut",
181
- "type": "uint256"
182
- }
183
- ],
184
- "name": "getAmountIn",
185
- "outputs": [
186
- {
187
- "internalType": "uint256",
188
- "name": "amountIn",
189
- "type": "uint256"
190
- }
191
- ],
192
- "stateMutability": "pure",
193
- "type": "function"
194
- },
195
- {
196
- "inputs": [
197
- {
198
- "internalType": "uint256",
199
- "name": "amountIn",
200
- "type": "uint256"
201
- },
202
- {
203
- "internalType": "uint256",
204
- "name": "reserveIn",
205
- "type": "uint256"
206
- },
207
- {
208
- "internalType": "uint256",
209
- "name": "reserveOut",
210
- "type": "uint256"
211
- }
212
- ],
213
- "name": "getAmountOut",
214
- "outputs": [
215
- {
216
- "internalType": "uint256",
217
- "name": "amountOut",
218
- "type": "uint256"
219
- }
220
- ],
221
- "stateMutability": "pure",
222
- "type": "function"
223
- },
224
- {
225
- "inputs": [
226
- {
227
- "internalType": "uint256",
228
- "name": "amountOut",
229
- "type": "uint256"
230
- },
231
- {
232
- "internalType": "address[]",
233
- "name": "path",
234
- "type": "address[]"
235
- }
236
- ],
237
- "name": "getAmountsIn",
238
- "outputs": [
239
- {
240
- "internalType": "uint256[]",
241
- "name": "amounts",
242
- "type": "uint256[]"
243
- }
244
- ],
245
- "stateMutability": "view",
246
- "type": "function"
247
- },
248
- {
249
- "inputs": [
250
- {
251
- "internalType": "uint256",
252
- "name": "amountIn",
253
- "type": "uint256"
254
- },
255
- {
256
- "internalType": "address[]",
257
- "name": "path",
258
- "type": "address[]"
259
- }
260
- ],
261
- "name": "getAmountsOut",
262
- "outputs": [
263
- {
264
- "internalType": "uint256[]",
265
- "name": "amounts",
266
- "type": "uint256[]"
267
- }
268
- ],
269
- "stateMutability": "view",
270
- "type": "function"
271
- },
272
- {
273
- "inputs": [
274
- {
275
- "internalType": "uint256",
276
- "name": "amountA",
277
- "type": "uint256"
278
- },
279
- {
280
- "internalType": "uint256",
281
- "name": "reserveA",
282
- "type": "uint256"
283
- },
284
- {
285
- "internalType": "uint256",
286
- "name": "reserveB",
287
- "type": "uint256"
288
- }
289
- ],
290
- "name": "quote",
291
- "outputs": [
292
- {
293
- "internalType": "uint256",
294
- "name": "amountB",
295
- "type": "uint256"
296
- }
297
- ],
298
- "stateMutability": "pure",
299
- "type": "function"
300
- },
301
- {
302
- "inputs": [
303
- {
304
- "internalType": "address",
305
- "name": "tokenA",
306
- "type": "address"
307
- },
308
- {
309
- "internalType": "address",
310
- "name": "tokenB",
311
- "type": "address"
312
- },
313
- {
314
- "internalType": "uint256",
315
- "name": "liquidity",
316
- "type": "uint256"
317
- },
318
- {
319
- "internalType": "uint256",
320
- "name": "amountAMin",
321
- "type": "uint256"
322
- },
323
- {
324
- "internalType": "uint256",
325
- "name": "amountBMin",
326
- "type": "uint256"
327
- },
328
- {
329
- "internalType": "address",
330
- "name": "to",
331
- "type": "address"
332
- },
333
- {
334
- "internalType": "uint256",
335
- "name": "deadline",
336
- "type": "uint256"
337
- }
338
- ],
339
- "name": "removeLiquidity",
340
- "outputs": [
341
- {
342
- "internalType": "uint256",
343
- "name": "amountA",
344
- "type": "uint256"
345
- },
346
- {
347
- "internalType": "uint256",
348
- "name": "amountB",
349
- "type": "uint256"
350
- }
351
- ],
352
- "stateMutability": "nonpayable",
353
- "type": "function"
354
- },
355
- {
356
- "inputs": [
357
- {
358
- "internalType": "address",
359
- "name": "token",
360
- "type": "address"
361
- },
362
- {
363
- "internalType": "uint256",
364
- "name": "liquidity",
365
- "type": "uint256"
366
- },
367
- {
368
- "internalType": "uint256",
369
- "name": "amountTokenMin",
370
- "type": "uint256"
371
- },
372
- {
373
- "internalType": "uint256",
374
- "name": "amountETHMin",
375
- "type": "uint256"
376
- },
377
- {
378
- "internalType": "address",
379
- "name": "to",
380
- "type": "address"
381
- },
382
- {
383
- "internalType": "uint256",
384
- "name": "deadline",
385
- "type": "uint256"
386
- }
387
- ],
388
- "name": "removeLiquidityETH",
389
- "outputs": [
390
- {
391
- "internalType": "uint256",
392
- "name": "amountToken",
393
- "type": "uint256"
394
- },
395
- {
396
- "internalType": "uint256",
397
- "name": "amountETH",
398
- "type": "uint256"
399
- }
400
- ],
401
- "stateMutability": "nonpayable",
402
- "type": "function"
403
- },
404
- {
405
- "inputs": [
406
- {
407
- "internalType": "address",
408
- "name": "token",
409
- "type": "address"
410
- },
411
- {
412
- "internalType": "uint256",
413
- "name": "liquidity",
414
- "type": "uint256"
415
- },
416
- {
417
- "internalType": "uint256",
418
- "name": "amountTokenMin",
419
- "type": "uint256"
420
- },
421
- {
422
- "internalType": "uint256",
423
- "name": "amountETHMin",
424
- "type": "uint256"
425
- },
426
- {
427
- "internalType": "address",
428
- "name": "to",
429
- "type": "address"
430
- },
431
- {
432
- "internalType": "uint256",
433
- "name": "deadline",
434
- "type": "uint256"
435
- }
436
- ],
437
- "name": "removeLiquidityETHSupportingFeeOnTransferTokens",
438
- "outputs": [
439
- {
440
- "internalType": "uint256",
441
- "name": "amountETH",
442
- "type": "uint256"
443
- }
444
- ],
445
- "stateMutability": "nonpayable",
446
- "type": "function"
447
- },
448
- {
449
- "inputs": [
450
- {
451
- "internalType": "address",
452
- "name": "token",
453
- "type": "address"
454
- },
455
- {
456
- "internalType": "uint256",
457
- "name": "liquidity",
458
- "type": "uint256"
459
- },
460
- {
461
- "internalType": "uint256",
462
- "name": "amountTokenMin",
463
- "type": "uint256"
464
- },
465
- {
466
- "internalType": "uint256",
467
- "name": "amountETHMin",
468
- "type": "uint256"
469
- },
470
- {
471
- "internalType": "address",
472
- "name": "to",
473
- "type": "address"
474
- },
475
- {
476
- "internalType": "uint256",
477
- "name": "deadline",
478
- "type": "uint256"
479
- },
480
- {
481
- "internalType": "bool",
482
- "name": "approveMax",
483
- "type": "bool"
484
- },
485
- {
486
- "internalType": "uint8",
487
- "name": "v",
488
- "type": "uint8"
489
- },
490
- {
491
- "internalType": "bytes32",
492
- "name": "r",
493
- "type": "bytes32"
494
- },
495
- {
496
- "internalType": "bytes32",
497
- "name": "s",
498
- "type": "bytes32"
499
- }
500
- ],
501
- "name": "removeLiquidityETHWithPermit",
502
- "outputs": [
503
- {
504
- "internalType": "uint256",
505
- "name": "amountToken",
506
- "type": "uint256"
507
- },
508
- {
509
- "internalType": "uint256",
510
- "name": "amountETH",
511
- "type": "uint256"
512
- }
513
- ],
514
- "stateMutability": "nonpayable",
515
- "type": "function"
516
- },
517
- {
518
- "inputs": [
519
- {
520
- "internalType": "address",
521
- "name": "token",
522
- "type": "address"
523
- },
524
- {
525
- "internalType": "uint256",
526
- "name": "liquidity",
527
- "type": "uint256"
528
- },
529
- {
530
- "internalType": "uint256",
531
- "name": "amountTokenMin",
532
- "type": "uint256"
533
- },
534
- {
535
- "internalType": "uint256",
536
- "name": "amountETHMin",
537
- "type": "uint256"
538
- },
539
- {
540
- "internalType": "address",
541
- "name": "to",
542
- "type": "address"
543
- },
544
- {
545
- "internalType": "uint256",
546
- "name": "deadline",
547
- "type": "uint256"
548
- },
549
- {
550
- "internalType": "bool",
551
- "name": "approveMax",
552
- "type": "bool"
553
- },
554
- {
555
- "internalType": "uint8",
556
- "name": "v",
557
- "type": "uint8"
558
- },
559
- {
560
- "internalType": "bytes32",
561
- "name": "r",
562
- "type": "bytes32"
563
- },
564
- {
565
- "internalType": "bytes32",
566
- "name": "s",
567
- "type": "bytes32"
568
- }
569
- ],
570
- "name": "removeLiquidityETHWithPermitSupportingFeeOnTransferTokens",
571
- "outputs": [
572
- {
573
- "internalType": "uint256",
574
- "name": "amountETH",
575
- "type": "uint256"
576
- }
577
- ],
578
- "stateMutability": "nonpayable",
579
- "type": "function"
580
- },
581
- {
582
- "inputs": [
583
- {
584
- "internalType": "address",
585
- "name": "tokenA",
586
- "type": "address"
587
- },
588
- {
589
- "internalType": "address",
590
- "name": "tokenB",
591
- "type": "address"
592
- },
593
- {
594
- "internalType": "uint256",
595
- "name": "liquidity",
596
- "type": "uint256"
597
- },
598
- {
599
- "internalType": "uint256",
600
- "name": "amountAMin",
601
- "type": "uint256"
602
- },
603
- {
604
- "internalType": "uint256",
605
- "name": "amountBMin",
606
- "type": "uint256"
607
- },
608
- {
609
- "internalType": "address",
610
- "name": "to",
611
- "type": "address"
612
- },
613
- {
614
- "internalType": "uint256",
615
- "name": "deadline",
616
- "type": "uint256"
617
- },
618
- {
619
- "internalType": "bool",
620
- "name": "approveMax",
621
- "type": "bool"
622
- },
623
- {
624
- "internalType": "uint8",
625
- "name": "v",
626
- "type": "uint8"
627
- },
628
- {
629
- "internalType": "bytes32",
630
- "name": "r",
631
- "type": "bytes32"
632
- },
633
- {
634
- "internalType": "bytes32",
635
- "name": "s",
636
- "type": "bytes32"
637
- }
638
- ],
639
- "name": "removeLiquidityWithPermit",
640
- "outputs": [
641
- {
642
- "internalType": "uint256",
643
- "name": "amountA",
644
- "type": "uint256"
645
- },
646
- {
647
- "internalType": "uint256",
648
- "name": "amountB",
649
- "type": "uint256"
650
- }
651
- ],
652
- "stateMutability": "nonpayable",
653
- "type": "function"
654
- },
655
- {
656
- "inputs": [
657
- {
658
- "internalType": "uint256",
659
- "name": "amountOut",
660
- "type": "uint256"
661
- },
662
- {
663
- "internalType": "address[]",
664
- "name": "path",
665
- "type": "address[]"
666
- },
667
- {
668
- "internalType": "address",
669
- "name": "to",
670
- "type": "address"
671
- },
672
- {
673
- "internalType": "uint256",
674
- "name": "deadline",
675
- "type": "uint256"
676
- }
677
- ],
678
- "name": "swapETHForExactTokens",
679
- "outputs": [
680
- {
681
- "internalType": "uint256[]",
682
- "name": "amounts",
683
- "type": "uint256[]"
684
- }
685
- ],
686
- "stateMutability": "payable",
687
- "type": "function"
688
- },
689
- {
690
- "inputs": [
691
- {
692
- "internalType": "uint256",
693
- "name": "amountOutMin",
694
- "type": "uint256"
695
- },
696
- {
697
- "internalType": "address[]",
698
- "name": "path",
699
- "type": "address[]"
700
- },
701
- {
702
- "internalType": "address",
703
- "name": "to",
704
- "type": "address"
705
- },
706
- {
707
- "internalType": "uint256",
708
- "name": "deadline",
709
- "type": "uint256"
710
- }
711
- ],
712
- "name": "swapExactETHForTokens",
713
- "outputs": [
714
- {
715
- "internalType": "uint256[]",
716
- "name": "amounts",
717
- "type": "uint256[]"
718
- }
719
- ],
720
- "stateMutability": "payable",
721
- "type": "function"
722
- },
723
- {
724
- "inputs": [
725
- {
726
- "internalType": "uint256",
727
- "name": "amountOutMin",
728
- "type": "uint256"
729
- },
730
- {
731
- "internalType": "address[]",
732
- "name": "path",
733
- "type": "address[]"
734
- },
735
- {
736
- "internalType": "address",
737
- "name": "to",
738
- "type": "address"
739
- },
740
- {
741
- "internalType": "uint256",
742
- "name": "deadline",
743
- "type": "uint256"
744
- }
745
- ],
746
- "name": "swapExactETHForTokensSupportingFeeOnTransferTokens",
747
- "outputs": [],
748
- "stateMutability": "payable",
749
- "type": "function"
750
- },
751
- {
752
- "inputs": [
753
- {
754
- "internalType": "uint256",
755
- "name": "amountIn",
756
- "type": "uint256"
757
- },
758
- {
759
- "internalType": "uint256",
760
- "name": "amountOutMin",
761
- "type": "uint256"
762
- },
763
- {
764
- "internalType": "address[]",
765
- "name": "path",
766
- "type": "address[]"
767
- },
768
- {
769
- "internalType": "address",
770
- "name": "to",
771
- "type": "address"
772
- },
773
- {
774
- "internalType": "uint256",
775
- "name": "deadline",
776
- "type": "uint256"
777
- }
778
- ],
779
- "name": "swapExactTokensForETH",
780
- "outputs": [
781
- {
782
- "internalType": "uint256[]",
783
- "name": "amounts",
784
- "type": "uint256[]"
785
- }
786
- ],
787
- "stateMutability": "nonpayable",
788
- "type": "function"
789
- },
790
- {
791
- "inputs": [
792
- {
793
- "internalType": "uint256",
794
- "name": "amountIn",
795
- "type": "uint256"
796
- },
797
- {
798
- "internalType": "uint256",
799
- "name": "amountOutMin",
800
- "type": "uint256"
801
- },
802
- {
803
- "internalType": "address[]",
804
- "name": "path",
805
- "type": "address[]"
806
- },
807
- {
808
- "internalType": "address",
809
- "name": "to",
810
- "type": "address"
811
- },
812
- {
813
- "internalType": "uint256",
814
- "name": "deadline",
815
- "type": "uint256"
816
- }
817
- ],
818
- "name": "swapExactTokensForETHSupportingFeeOnTransferTokens",
819
- "outputs": [],
820
- "stateMutability": "nonpayable",
821
- "type": "function"
822
- },
823
- {
824
- "inputs": [
825
- {
826
- "internalType": "uint256",
827
- "name": "amountIn",
828
- "type": "uint256"
829
- },
830
- {
831
- "internalType": "uint256",
832
- "name": "amountOutMin",
833
- "type": "uint256"
834
- },
835
- {
836
- "internalType": "address[]",
837
- "name": "path",
838
- "type": "address[]"
839
- },
840
- {
841
- "internalType": "address",
842
- "name": "to",
843
- "type": "address"
844
- },
845
- {
846
- "internalType": "uint256",
847
- "name": "deadline",
848
- "type": "uint256"
849
- }
850
- ],
851
- "name": "swapExactTokensForTokens",
852
- "outputs": [
853
- {
854
- "internalType": "uint256[]",
855
- "name": "amounts",
856
- "type": "uint256[]"
857
- }
858
- ],
859
- "stateMutability": "nonpayable",
860
- "type": "function"
861
- },
862
- {
863
- "inputs": [
864
- {
865
- "internalType": "uint256",
866
- "name": "amountIn",
867
- "type": "uint256"
868
- },
869
- {
870
- "internalType": "uint256",
871
- "name": "amountOutMin",
872
- "type": "uint256"
873
- },
874
- {
875
- "internalType": "address[]",
876
- "name": "path",
877
- "type": "address[]"
878
- },
879
- {
880
- "internalType": "address",
881
- "name": "to",
882
- "type": "address"
883
- },
884
- {
885
- "internalType": "uint256",
886
- "name": "deadline",
887
- "type": "uint256"
888
- }
889
- ],
890
- "name": "swapExactTokensForTokensSupportingFeeOnTransferTokens",
891
- "outputs": [],
892
- "stateMutability": "nonpayable",
893
- "type": "function"
894
- },
895
- {
896
- "inputs": [
897
- {
898
- "internalType": "uint256",
899
- "name": "amountOut",
900
- "type": "uint256"
901
- },
902
- {
903
- "internalType": "uint256",
904
- "name": "amountInMax",
905
- "type": "uint256"
906
- },
907
- {
908
- "internalType": "address[]",
909
- "name": "path",
910
- "type": "address[]"
911
- },
912
- {
913
- "internalType": "address",
914
- "name": "to",
915
- "type": "address"
916
- },
917
- {
918
- "internalType": "uint256",
919
- "name": "deadline",
920
- "type": "uint256"
921
- }
922
- ],
923
- "name": "swapTokensForExactETH",
924
- "outputs": [
925
- {
926
- "internalType": "uint256[]",
927
- "name": "amounts",
928
- "type": "uint256[]"
929
- }
930
- ],
931
- "stateMutability": "nonpayable",
932
- "type": "function"
933
- },
934
- {
935
- "inputs": [
936
- {
937
- "internalType": "uint256",
938
- "name": "amountOut",
939
- "type": "uint256"
940
- },
941
- {
942
- "internalType": "uint256",
943
- "name": "amountInMax",
944
- "type": "uint256"
945
- },
946
- {
947
- "internalType": "address[]",
948
- "name": "path",
949
- "type": "address[]"
950
- },
951
- {
952
- "internalType": "address",
953
- "name": "to",
954
- "type": "address"
955
- },
956
- {
957
- "internalType": "uint256",
958
- "name": "deadline",
959
- "type": "uint256"
960
- }
961
- ],
962
- "name": "swapTokensForExactTokens",
963
- "outputs": [
964
- {
965
- "internalType": "uint256[]",
966
- "name": "amounts",
967
- "type": "uint256[]"
968
- }
969
- ],
970
- "stateMutability": "nonpayable",
971
- "type": "function"
972
- },
973
- {
974
- "stateMutability": "payable",
975
- "type": "receive"
976
- }
977
- ],
978
- "bytecode": "0x60c060405234801561001057600080fd5b5060405162004584380380620045848339818101604052604081101561003557600080fd5b5080516020909101516001600160601b0319606092831b8116608052911b1660a05260805160601c60a05160601c6144096200017b6000398061015f5280610ce45280610d1f5280610e16528061103452806113be528061152452806118eb52806119e55280611a9b5280611b695280611caf5280611d375280611f7c5280611ff752806120a652806121725280612207528061227b528061277952806129ec5280612a425280612a765280612aea5280612c8a5280612dcd5280612e55525080610ea45280610f7b52806110fa5280611133528061126e528061144c528061150252806116725280611bfc5280611d695280611ecc52806122ad528061250652806126fe5280612727528061275752806128c45280612a205280612d1d5280612e87528061390e5280613a945280613ed15280613f7f5280613fff52506144096000f3fe60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a10578063d06ca61f14610a25578063ded9382a14610ada578063e8e3370014610b4d578063f305d71914610bcd578063fb3bdb4114610c1357610188565b80638803dbee146107df578063ad5c464814610875578063ad615dec146108a6578063af2979eb146108dc578063b6f9de951461092f578063baa2abde146109b357610188565b80634a25d94a116101085780634a25d94a146104f05780635b0d5984146105865780635c11d795146105f9578063791ac9471461068f5780637ff36ab51461072557806385f8c259146107a957610188565b806302751cec1461018d578063054d50d4146101f957806318cbafe5146102415780631f00ca74146103275780632195995c146103dc57806338ed17391461045a57610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610c97565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061022f6004803603606081101561021c57600080fd5b5080359060208101359060400135610db1565b60408051918252519081900360200190f35b34801561024d57600080fd5b506102d7600480360360a081101561026457600080fd5b813591602081013591810190606081016040820135600160201b81111561028a57600080fd5b82018360208201111561029c57600080fd5b803590602001918460208302840111600160201b831117156102bd57600080fd5b91935091506001600160a01b038135169060200135610dc6565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103135781810151838201526020016102fb565b505050509050019250505060405180910390f35b34801561033357600080fd5b506102d76004803603604081101561034a57600080fd5b81359190810190604081016020820135600160201b81111561036b57600080fd5b82018360208201111561037d57600080fd5b803590602001918460208302840111600160201b8311171561039e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110f3945050505050565b3480156103e857600080fd5b506101e0600480360361016081101561040057600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611129565b34801561046657600080fd5b506102d7600480360360a081101561047d57600080fd5b813591602081013591810190606081016040820135600160201b8111156104a357600080fd5b8201836020820111156104b557600080fd5b803590602001918460208302840111600160201b831117156104d657600080fd5b91935091506001600160a01b038135169060200135611223565b3480156104fc57600080fd5b506102d7600480360360a081101561051357600080fd5b813591602081013591810190606081016040820135600160201b81111561053957600080fd5b82018360208201111561054b57600080fd5b803590602001918460208302840111600160201b8311171561056c57600080fd5b91935091506001600160a01b03813516906020013561136e565b34801561059257600080fd5b5061022f60048036036101408110156105aa57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356114fa565b34801561060557600080fd5b50610186600480360360a081101561061c57600080fd5b813591602081013591810190606081016040820135600160201b81111561064257600080fd5b82018360208201111561065457600080fd5b803590602001918460208302840111600160201b8311171561067557600080fd5b91935091506001600160a01b038135169060200135611608565b34801561069b57600080fd5b50610186600480360360a08110156106b257600080fd5b813591602081013591810190606081016040820135600160201b8111156106d857600080fd5b8201836020820111156106ea57600080fd5b803590602001918460208302840111600160201b8311171561070b57600080fd5b91935091506001600160a01b03813516906020013561189d565b6102d76004803603608081101561073b57600080fd5b81359190810190604081016020820135600160201b81111561075c57600080fd5b82018360208201111561076e57600080fd5b803590602001918460208302840111600160201b8311171561078f57600080fd5b91935091506001600160a01b038135169060200135611b21565b3480156107b557600080fd5b5061022f600480360360608110156107cc57600080fd5b5080359060208101359060400135611e74565b3480156107eb57600080fd5b506102d7600480360360a081101561080257600080fd5b813591602081013591810190606081016040820135600160201b81111561082857600080fd5b82018360208201111561083a57600080fd5b803590602001918460208302840111600160201b8311171561085b57600080fd5b91935091506001600160a01b038135169060200135611e81565b34801561088157600080fd5b5061088a611f7a565b604080516001600160a01b039092168252519081900360200190f35b3480156108b257600080fd5b5061022f600480360360608110156108c957600080fd5b5080359060208101359060400135611f9e565b3480156108e857600080fd5b5061022f600480360360c08110156108ff57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fab565b6101866004803603608081101561094557600080fd5b81359190810190604081016020820135600160201b81111561096657600080fd5b82018360208201111561097857600080fd5b803590602001918460208302840111600160201b8311171561099957600080fd5b91935091506001600160a01b03813516906020013561212c565b3480156109bf57600080fd5b506101e0600480360360e08110156109d657600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124b8565b348015610a1c57600080fd5b5061088a6126fc565b348015610a3157600080fd5b506102d760048036036040811015610a4857600080fd5b81359190810190604081016020820135600160201b811115610a6957600080fd5b820183602082011115610a7b57600080fd5b803590602001918460208302840111600160201b83111715610a9c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612720945050505050565b348015610ae657600080fd5b506101e06004803603610140811015610afe57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e0820135169061010081013590610120013561274d565b348015610b5957600080fd5b50610baf6004803603610100811015610b7157600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612861565b60408051938452602084019290925282820152519081900360600190f35b610baf600480360360c0811015610be357600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a0013561299d565b6102d760048036036080811015610c2957600080fd5b81359190810190604081016020820135600160201b811115610c4a57600080fd5b820183602082011115610c5c57600080fd5b803590602001918460208302840111600160201b83111715610c7d57600080fd5b91935091506001600160a01b038135169060200135612c42565b6000808242811015610cde576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b610d0d897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124b8565b9093509150610d1d898685612fc4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8357600080fd5b505af1158015610d97573d6000803e3d6000fd5b50505050610da5858361312e565b50965096945050505050565b6000610dbe848484613226565b949350505050565b60608142811015610e0c576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e4657fe5b905060200201356001600160a01b03166001600160a01b031614610e9f576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b610efd7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061331692505050565b91508682600184510381518110610f1057fe5b60200260200101511015610f555760405162461bcd60e51b815260040180806020018281038252602981526020018061426b6029913960400191505060405180910390fd5b610ff386866000818110610f6557fe5b905060200201356001600160a01b031633610fd97f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610fa757fe5b905060200201356001600160a01b03168b8b6001818110610fc457fe5b905060200201356001600160a01b0316613462565b85600081518110610fe657fe5b6020026020010151613521565b6110328287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525030925061367e915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061107157fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110af57600080fd5b505af11580156110c3573d6000803e3d6000fd5b505050506110e884836001855103815181106110db57fe5b602002602001015161312e565b509695505050505050565b60606111207f0000000000000000000000000000000000000000000000000000000000000000848461377f565b90505b92915050565b60008060006111597f00000000000000000000000000000000000000000000000000000000000000008f8f613462565b9050600087611168578c61116c565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111e257600080fd5b505af11580156111f6573d6000803e3d6000fd5b505050506112098f8f8f8f8f8f8f6124b8565b809450819550505050509b509b9950505050505050505050565b60608142811015611269576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6112c77f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061331692505050565b915086826001845103815181106112da57fe5b6020026020010151101561131f5760405162461bcd60e51b815260040180806020018281038252602981526020018061426b6029913960400191505060405180910390fd5b61132f86866000818110610f6557fe5b6110e88287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061367e915050565b606081428110156113b4576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113ee57fe5b905060200201356001600160a01b03166001600160a01b031614611447576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b6114a57f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061377f92505050565b915086826000815181106114b557fe5b60200260200101511115610f555760405162461bcd60e51b81526004018080602001828103825260258152602001806143416025913960400191505060405180910390fd5b6000806115487f00000000000000000000000000000000000000000000000000000000000000008d7f0000000000000000000000000000000000000000000000000000000000000000613462565b9050600086611557578b61155b565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115d157600080fd5b505af11580156115e5573d6000803e3d6000fd5b505050506115f78d8d8d8d8d8d611fab565b9d9c50505050505050505050505050565b804281101561164c576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6116c18585600081811061165c57fe5b905060200201356001600160a01b0316336116bb7f00000000000000000000000000000000000000000000000000000000000000008989600081811061169e57fe5b905060200201356001600160a01b03168a8a6001818110610fc457fe5b8a613521565b6000858560001981018181106116d357fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561173857600080fd5b505afa15801561174c573d6000803e3d6000fd5b505050506040513d602081101561176257600080fd5b505160408051602088810282810182019093528882529293506117a49290918991899182918501908490808284376000920191909152508892506138b7915050565b8661185682888860001981018181106117b957fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561181e57600080fd5b505afa158015611832573d6000803e3d6000fd5b505050506040513d602081101561184857600080fd5b50519063ffffffff613bd616565b10156118935760405162461bcd60e51b815260040180806020018281038252602981526020018061426b6029913960400191505060405180910390fd5b5050505050505050565b80428110156118e1576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061191b57fe5b905060200201356001600160a01b03166001600160a01b031614611974576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b6119848585600081811061165c57fe5b6119c28585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506138b7915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a2c57600080fd5b505afa158015611a40573d6000803e3d6000fd5b505050506040513d6020811015611a5657600080fd5b5051905086811015611a995760405162461bcd60e51b815260040180806020018281038252602981526020018061426b6029913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611aff57600080fd5b505af1158015611b13573d6000803e3d6000fd5b50505050611893848261312e565b60608142811015611b67576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611b9e57fe5b905060200201356001600160a01b03166001600160a01b031614611bf7576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b611c557f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061331692505050565b91508682600184510381518110611c6857fe5b60200260200101511015611cad5760405162461bcd60e51b815260040180806020018281038252602981526020018061426b6029913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611ce957fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d1c57600080fd5b505af1158015611d30573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611d957f00000000000000000000000000000000000000000000000000000000000000008989600081811061169e57fe5b84600081518110611da257fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611df957600080fd5b505af1158015611e0d573d6000803e3d6000fd5b505050506040513d6020811015611e2357600080fd5b5051611e2b57fe5b611e6a8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061367e915050565b5095945050505050565b6000610dbe848484613c26565b60608142811015611ec7576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b611f257f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061377f92505050565b91508682600081518110611f3557fe5b6020026020010151111561131f5760405162461bcd60e51b81526004018080602001828103825260258152602001806143416025913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610dbe848484613d16565b60008142811015611ff1576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b612020887f000000000000000000000000000000000000000000000000000000000000000089898930896124b8565b604080516370a0823160e01b815230600482015290519194506120a492508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561207357600080fd5b505afa158015612087573d6000803e3d6000fd5b505050506040513d602081101561209d57600080fd5b5051612fc4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561210a57600080fd5b505af115801561211e573d6000803e3d6000fd5b505050506110e8848361312e565b8042811015612170576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121a757fe5b905060200201356001600160a01b03166001600160a01b031614612200576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561226057600080fd5b505af1158015612274573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122d97f00000000000000000000000000000000000000000000000000000000000000008989600081811061169e57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561232957600080fd5b505af115801561233d573d6000803e3d6000fd5b505050506040513d602081101561235357600080fd5b505161235b57fe5b60008686600019810181811061236d57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123d257600080fd5b505afa1580156123e6573d6000803e3d6000fd5b505050506040513d60208110156123fc57600080fd5b5051604080516020898102828101820190935289825292935061243e9290918a918a9182918501908490808284376000920191909152508992506138b7915050565b87611856828989600019810181811061245357fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561181e57600080fd5b60008082428110156124ff576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b600061252c7f00000000000000000000000000000000000000000000000000000000000000008c8c613462565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561258757600080fd5b505af115801561259b573d6000803e3d6000fd5b505050506040513d60208110156125b157600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b1580156125fe57600080fd5b505af1158015612612573d6000803e3d6000fd5b505050506040513d604081101561262857600080fd5b508051602090910151909250905060006126428e8e613dc2565b509050806001600160a01b03168e6001600160a01b031614612665578183612668565b82825b90975095508a8710156126ac5760405162461bcd60e51b81526004018080602001828103825260248152602001806142d76024913960400191505060405180910390fd5b898610156126eb5760405162461bcd60e51b81526004018080602001828103825260248152602001806143b06024913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111207f00000000000000000000000000000000000000000000000000000000000000008484613316565b600080600061279d7f00000000000000000000000000000000000000000000000000000000000000008e7f0000000000000000000000000000000000000000000000000000000000000000613462565b90506000876127ac578c6127b0565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561282657600080fd5b505af115801561283a573d6000803e3d6000fd5b5050505061284c8e8e8e8e8e8e610c97565b909f909e509c50505050505050505050505050565b600080600083428110156128aa576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6128b88c8c8c8c8c8c613ea0565b909450925060006128ea7f00000000000000000000000000000000000000000000000000000000000000008e8e613462565b90506128f88d338388613521565b6129048c338387613521565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561295c57600080fd5b505af1158015612970573d6000803e3d6000fd5b505050506040513d602081101561298657600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129e6576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b612a148a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c613ea0565b90945092506000612a667f00000000000000000000000000000000000000000000000000000000000000008c7f0000000000000000000000000000000000000000000000000000000000000000613462565b9050612a748b338388613521565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612acf57600080fd5b505af1158015612ae3573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b6857600080fd5b505af1158015612b7c573d6000803e3d6000fd5b505050506040513d6020811015612b9257600080fd5b5051612b9a57fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612bf257600080fd5b505af1158015612c06573d6000803e3d6000fd5b505050506040513d6020811015612c1c57600080fd5b5051925034841015612c3457612c343385340361312e565b505096509650969350505050565b60608142811015612c88576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cbf57fe5b905060200201356001600160a01b03166001600160a01b031614612d18576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b612d767f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061377f92505050565b91503482600081518110612d8657fe5b60200260200101511115612dcb5760405162461bcd60e51b81526004018080602001828103825260258152602001806143416025913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e0757fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e3a57600080fd5b505af1158015612e4e573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eb37f00000000000000000000000000000000000000000000000000000000000000008989600081811061169e57fe5b84600081518110612ec057fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f1757600080fd5b505af1158015612f2b573d6000803e3d6000fd5b505050506040513d6020811015612f4157600080fd5b5051612f4957fe5b612f888287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061367e915050565b81600081518110612f9557fe5b6020026020010151341115611e6a57611e6a3383600081518110612fb557fe5b6020026020010151340361312e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130415780518252601f199092019160209182019101613022565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130a3576040519150601f19603f3d011682016040523d82523d6000602084013e6130a8565b606091505b50915091508180156130d65750805115806130d657508080602001905160208110156130d357600080fd5b50515b613127576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b6020831061317a5780518252601f19909201916020918201910161315b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131dc576040519150601f19603f3d011682016040523d82523d6000602084013e6131e1565b606091505b50509050806132215760405162461bcd60e51b815260040180806020018281038252602381526020018061431e6023913960400191505060405180910390fd5b505050565b60008084116132665760405162461bcd60e51b81526004018080602001828103825260298152602001806141f86029913960400191505060405180910390fd5b6000831180156132765750600082115b6132b15760405162461bcd60e51b81526004018080602001828103825260268152602001806143666026913960400191505060405180910390fd5b60006132c5856126f763ffffffff61411416565b905060006132d9828563ffffffff61411416565b905060006132ff836132f38861271063ffffffff61411416565b9063ffffffff61417716565b905080828161330a57fe5b04979650505050505050565b606060028251101561336f576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561338757600080fd5b506040519080825280602002602001820160405280156133b1578160200160208202803683370190505b50905082816000815181106133c257fe5b60200260200101818152505060005b600183510381101561345a57600080613414878685815181106133f057fe5b602002602001015187866001018151811061340757fe5b60200260200101516141c6565b9150915061343684848151811061342757fe5b60200260200101518383613226565b84846001018151811061344557fe5b602090810291909101015250506001016133d1565b509392505050565b60008060006134718585613dc2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527efb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135a65780518252601f199092019160209182019101613587565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613608576040519150601f19603f3d011682016040523d82523d6000602084013e61360d565b606091505b509150915081801561363b57508051158061363b575080806020019051602081101561363857600080fd5b50515b6136765760405162461bcd60e51b815260040180806020018281038252602481526020018061438c6024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156137795760008084838151811061369c57fe5b60200260200101518584600101815181106136b357fe5b6020026020010151915091506136c98282613dc2565b5050806001600160a01b031663a9059cbb85886001815181106136e857fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561373f57600080fd5b505af1158015613753573d6000803e3d6000fd5b505050506040513d602081101561376957600080fd5b5050600190920191506136819050565b50505050565b60606002825110156137d8576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156137f057600080fd5b5060405190808252806020026020018201604052801561381a578160200160208202803683370190505b509050828160018351038151811061382e57fe5b60209081029190910101528151600019015b801561345a576000806138708786600186038151811061385c57fe5b602002602001015187868151811061340757fe5b9150915061389284848151811061388357fe5b60200260200101518383613c26565b8460018503815181106138a157fe5b6020908102919091010152505060001901613840565b60005b6001835103811015613221576000808483815181106138d557fe5b60200260200101518584600101815181106138ec57fe5b60200260200101519150915060006139048383613dc2565b50905060006139347f00000000000000000000000000000000000000000000000000000000000000008585613462565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561397557600080fd5b505afa158015613989573d6000803e3d6000fd5b505050506040513d606081101561399f57600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506000806001600160a01b038a8116908916146139dc5782846139df565b83835b91509150613a3d828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561181e57600080fd5b9550613a4a868383613226565b945050505050600080856001600160a01b0316886001600160a01b031614613a7457826000613a78565b6000835b91509150600060028c51038a10613a8f578a613ad0565b613ad07f0000000000000000000000000000000000000000000000000000000000000000898e8d60020181518110613ac357fe5b6020026020010151613462565b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613b5a578181015183820152602001613b42565b50505050905090810190601f168015613b875780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ba957600080fd5b505af1158015613bbd573d6000803e3d6000fd5b50506001909b019a506138ba9950505050505050505050565b80820382811115611123576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613c665760405162461bcd60e51b815260040180806020018281038252602a815260200180614221602a913960400191505060405180910390fd5b600083118015613c765750600082115b613cb15760405162461bcd60e51b81526004018080602001828103825260268152602001806143666026913960400191505060405180910390fd5b6000613cd5612710613cc9868863ffffffff61411416565b9063ffffffff61411416565b90506000613cef6126f7613cc9868963ffffffff613bd616565b9050613d0c6001828481613cff57fe5b049063ffffffff61417716565b9695505050505050565b6000808411613d565760405162461bcd60e51b81526004018080602001828103825260238152602001806142fb6023913960400191505060405180910390fd5b600083118015613d665750600082115b613da15760405162461bcd60e51b81526004018080602001828103825260268152602001806143666026913960400191505060405180910390fd5b82613db2858463ffffffff61411416565b81613db957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b03161415613e165760405162461bcd60e51b81526004018080602001828103825260238152602001806142946023913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610613e36578284613e39565b83835b90925090506001600160a01b038216613e99576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a205a45524f5f4144445245535300000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b158015613f1a57600080fd5b505afa158015613f2e573d6000803e3d6000fd5b505050506040513d6020811015613f4457600080fd5b50516001600160a01b03161415613ff757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b158015613fca57600080fd5b505af1158015613fde573d6000803e3d6000fd5b505050506040513d6020811015613ff457600080fd5b50505b6000806140257f00000000000000000000000000000000000000000000000000000000000000008b8b6141c6565b91509150816000148015614037575080155b1561404757879350869250614107565b6000614054898484613d16565b90508781116140a7578581101561409c5760405162461bcd60e51b81526004018080602001828103825260248152602001806143b06024913960400191505060405180910390fd5b889450925082614105565b60006140b4898486613d16565b9050898111156140c057fe5b878110156140ff5760405162461bcd60e51b81526004018080602001828103825260248152602001806142d76024913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b600081158061412f5750508082028282828161412c57fe5b04145b611123576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820182811015611123576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b6000806141d38484613dc2565b50506141e0858585613462565b5069152d02c7e14af680000095869550935050505056fe50616e63616b654c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b65526f757465723a20455850495245440000000000000000000050616e63616b65526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b654c6962726172793a204944454e544943414c5f41444452455353455350616e63616b65526f757465723a20494e56414c49445f50415448000000000050616e63616b65526f757465723a20494e53554646494349454e545f415f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c454450616e63616b65526f757465723a204558434553534956455f494e5055545f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f4c49515549444954595472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c454450616e63616b65526f757465723a20494e53554646494349454e545f425f414d4f554e54a264697066735822122044f6f1ef8151d18c6631d910c61ef7a78bb94ea63543a76dc88e49f5209201ca64736f6c63430006060033",
979
- "deployedBytecode": "0x60806040526004361061014f5760003560e01c80638803dbee116100b6578063c45a01551161006f578063c45a015514610a10578063d06ca61f14610a25578063ded9382a14610ada578063e8e3370014610b4d578063f305d71914610bcd578063fb3bdb4114610c1357610188565b80638803dbee146107df578063ad5c464814610875578063ad615dec146108a6578063af2979eb146108dc578063b6f9de951461092f578063baa2abde146109b357610188565b80634a25d94a116101085780634a25d94a146104f05780635b0d5984146105865780635c11d795146105f9578063791ac9471461068f5780637ff36ab51461072557806385f8c259146107a957610188565b806302751cec1461018d578063054d50d4146101f957806318cbafe5146102415780631f00ca74146103275780632195995c146103dc57806338ed17391461045a57610188565b3661018857336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461018657fe5b005b600080fd5b34801561019957600080fd5b506101e0600480360360c08110156101b057600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135610c97565b6040805192835260208301919091528051918290030190f35b34801561020557600080fd5b5061022f6004803603606081101561021c57600080fd5b5080359060208101359060400135610db1565b60408051918252519081900360200190f35b34801561024d57600080fd5b506102d7600480360360a081101561026457600080fd5b813591602081013591810190606081016040820135600160201b81111561028a57600080fd5b82018360208201111561029c57600080fd5b803590602001918460208302840111600160201b831117156102bd57600080fd5b91935091506001600160a01b038135169060200135610dc6565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156103135781810151838201526020016102fb565b505050509050019250505060405180910390f35b34801561033357600080fd5b506102d76004803603604081101561034a57600080fd5b81359190810190604081016020820135600160201b81111561036b57600080fd5b82018360208201111561037d57600080fd5b803590602001918460208302840111600160201b8311171561039e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506110f3945050505050565b3480156103e857600080fd5b506101e0600480360361016081101561040057600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c08101359060e081013515159060ff6101008201351690610120810135906101400135611129565b34801561046657600080fd5b506102d7600480360360a081101561047d57600080fd5b813591602081013591810190606081016040820135600160201b8111156104a357600080fd5b8201836020820111156104b557600080fd5b803590602001918460208302840111600160201b831117156104d657600080fd5b91935091506001600160a01b038135169060200135611223565b3480156104fc57600080fd5b506102d7600480360360a081101561051357600080fd5b813591602081013591810190606081016040820135600160201b81111561053957600080fd5b82018360208201111561054b57600080fd5b803590602001918460208302840111600160201b8311171561056c57600080fd5b91935091506001600160a01b03813516906020013561136e565b34801561059257600080fd5b5061022f60048036036101408110156105aa57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e082013516906101008101359061012001356114fa565b34801561060557600080fd5b50610186600480360360a081101561061c57600080fd5b813591602081013591810190606081016040820135600160201b81111561064257600080fd5b82018360208201111561065457600080fd5b803590602001918460208302840111600160201b8311171561067557600080fd5b91935091506001600160a01b038135169060200135611608565b34801561069b57600080fd5b50610186600480360360a08110156106b257600080fd5b813591602081013591810190606081016040820135600160201b8111156106d857600080fd5b8201836020820111156106ea57600080fd5b803590602001918460208302840111600160201b8311171561070b57600080fd5b91935091506001600160a01b03813516906020013561189d565b6102d76004803603608081101561073b57600080fd5b81359190810190604081016020820135600160201b81111561075c57600080fd5b82018360208201111561076e57600080fd5b803590602001918460208302840111600160201b8311171561078f57600080fd5b91935091506001600160a01b038135169060200135611b21565b3480156107b557600080fd5b5061022f600480360360608110156107cc57600080fd5b5080359060208101359060400135611e74565b3480156107eb57600080fd5b506102d7600480360360a081101561080257600080fd5b813591602081013591810190606081016040820135600160201b81111561082857600080fd5b82018360208201111561083a57600080fd5b803590602001918460208302840111600160201b8311171561085b57600080fd5b91935091506001600160a01b038135169060200135611e81565b34801561088157600080fd5b5061088a611f7a565b604080516001600160a01b039092168252519081900360200190f35b3480156108b257600080fd5b5061022f600480360360608110156108c957600080fd5b5080359060208101359060400135611f9e565b3480156108e857600080fd5b5061022f600480360360c08110156108ff57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a00135611fab565b6101866004803603608081101561094557600080fd5b81359190810190604081016020820135600160201b81111561096657600080fd5b82018360208201111561097857600080fd5b803590602001918460208302840111600160201b8311171561099957600080fd5b91935091506001600160a01b03813516906020013561212c565b3480156109bf57600080fd5b506101e0600480360360e08110156109d657600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359091169060c001356124b8565b348015610a1c57600080fd5b5061088a6126fc565b348015610a3157600080fd5b506102d760048036036040811015610a4857600080fd5b81359190810190604081016020820135600160201b811115610a6957600080fd5b820183602082011115610a7b57600080fd5b803590602001918460208302840111600160201b83111715610a9c57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612720945050505050565b348015610ae657600080fd5b506101e06004803603610140811015610afe57600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a08101359060c081013515159060ff60e0820135169061010081013590610120013561274d565b348015610b5957600080fd5b50610baf6004803603610100811015610b7157600080fd5b506001600160a01b038135811691602081013582169160408201359160608101359160808201359160a08101359160c0820135169060e00135612861565b60408051938452602084019290925282820152519081900360600190f35b610baf600480360360c0811015610be357600080fd5b506001600160a01b0381358116916020810135916040820135916060810135916080820135169060a0013561299d565b6102d760048036036080811015610c2957600080fd5b81359190810190604081016020820135600160201b811115610c4a57600080fd5b820183602082011115610c5c57600080fd5b803590602001918460208302840111600160201b83111715610c7d57600080fd5b91935091506001600160a01b038135169060200135612c42565b6000808242811015610cde576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b610d0d897f00000000000000000000000000000000000000000000000000000000000000008a8a8a308a6124b8565b9093509150610d1d898685612fc4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015610d8357600080fd5b505af1158015610d97573d6000803e3d6000fd5b50505050610da5858361312e565b50965096945050505050565b6000610dbe848484613226565b949350505050565b60608142811015610e0c576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001686866000198101818110610e4657fe5b905060200201356001600160a01b03166001600160a01b031614610e9f576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b610efd7f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061331692505050565b91508682600184510381518110610f1057fe5b60200260200101511015610f555760405162461bcd60e51b815260040180806020018281038252602981526020018061426b6029913960400191505060405180910390fd5b610ff386866000818110610f6557fe5b905060200201356001600160a01b031633610fd97f00000000000000000000000000000000000000000000000000000000000000008a8a6000818110610fa757fe5b905060200201356001600160a01b03168b8b6001818110610fc457fe5b905060200201356001600160a01b0316613462565b85600081518110610fe657fe5b6020026020010151613521565b6110328287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525030925061367e915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d8360018551038151811061107157fe5b60200260200101516040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156110af57600080fd5b505af11580156110c3573d6000803e3d6000fd5b505050506110e884836001855103815181106110db57fe5b602002602001015161312e565b509695505050505050565b60606111207f0000000000000000000000000000000000000000000000000000000000000000848461377f565b90505b92915050565b60008060006111597f00000000000000000000000000000000000000000000000000000000000000008f8f613462565b9050600087611168578c61116c565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156111e257600080fd5b505af11580156111f6573d6000803e3d6000fd5b505050506112098f8f8f8f8f8f8f6124b8565b809450819550505050509b509b9950505050505050505050565b60608142811015611269576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6112c77f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061331692505050565b915086826001845103815181106112da57fe5b6020026020010151101561131f5760405162461bcd60e51b815260040180806020018281038252602981526020018061426b6029913960400191505060405180910390fd5b61132f86866000818110610f6557fe5b6110e88287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061367e915050565b606081428110156113b4576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016868660001981018181106113ee57fe5b905060200201356001600160a01b03166001600160a01b031614611447576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b6114a57f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061377f92505050565b915086826000815181106114b557fe5b60200260200101511115610f555760405162461bcd60e51b81526004018080602001828103825260258152602001806143416025913960400191505060405180910390fd5b6000806115487f00000000000000000000000000000000000000000000000000000000000000008d7f0000000000000000000000000000000000000000000000000000000000000000613462565b9050600086611557578b61155b565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018b905260ff8916608482015260a4810188905260c4810187905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b1580156115d157600080fd5b505af11580156115e5573d6000803e3d6000fd5b505050506115f78d8d8d8d8d8d611fab565b9d9c50505050505050505050505050565b804281101561164c576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6116c18585600081811061165c57fe5b905060200201356001600160a01b0316336116bb7f00000000000000000000000000000000000000000000000000000000000000008989600081811061169e57fe5b905060200201356001600160a01b03168a8a6001818110610fc457fe5b8a613521565b6000858560001981018181106116d357fe5b905060200201356001600160a01b03166001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561173857600080fd5b505afa15801561174c573d6000803e3d6000fd5b505050506040513d602081101561176257600080fd5b505160408051602088810282810182019093528882529293506117a49290918991899182918501908490808284376000920191909152508892506138b7915050565b8661185682888860001981018181106117b957fe5b905060200201356001600160a01b03166001600160a01b03166370a08231886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561181e57600080fd5b505afa158015611832573d6000803e3d6000fd5b505050506040513d602081101561184857600080fd5b50519063ffffffff613bd616565b10156118935760405162461bcd60e51b815260040180806020018281038252602981526020018061426b6029913960400191505060405180910390fd5b5050505050505050565b80428110156118e1576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585600019810181811061191b57fe5b905060200201356001600160a01b03166001600160a01b031614611974576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b6119848585600081811061165c57fe5b6119c28585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152503092506138b7915050565b604080516370a0823160e01b815230600482015290516000916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016916370a0823191602480820192602092909190829003018186803b158015611a2c57600080fd5b505afa158015611a40573d6000803e3d6000fd5b505050506040513d6020811015611a5657600080fd5b5051905086811015611a995760405162461bcd60e51b815260040180806020018281038252602981526020018061426b6029913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d826040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b158015611aff57600080fd5b505af1158015611b13573d6000803e3d6000fd5b50505050611893848261312e565b60608142811015611b67576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110611b9e57fe5b905060200201356001600160a01b03166001600160a01b031614611bf7576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b611c557f00000000000000000000000000000000000000000000000000000000000000003488888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061331692505050565b91508682600184510381518110611c6857fe5b60200260200101511015611cad5760405162461bcd60e51b815260040180806020018281038252602981526020018061426b6029913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110611ce957fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015611d1c57600080fd5b505af1158015611d30573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb611d957f00000000000000000000000000000000000000000000000000000000000000008989600081811061169e57fe5b84600081518110611da257fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611df957600080fd5b505af1158015611e0d573d6000803e3d6000fd5b505050506040513d6020811015611e2357600080fd5b5051611e2b57fe5b611e6a8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061367e915050565b5095945050505050565b6000610dbe848484613c26565b60608142811015611ec7576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b611f257f00000000000000000000000000000000000000000000000000000000000000008988888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061377f92505050565b91508682600081518110611f3557fe5b6020026020010151111561131f5760405162461bcd60e51b81526004018080602001828103825260258152602001806143416025913960400191505060405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000081565b6000610dbe848484613d16565b60008142811015611ff1576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b612020887f000000000000000000000000000000000000000000000000000000000000000089898930896124b8565b604080516370a0823160e01b815230600482015290519194506120a492508a9187916001600160a01b038416916370a0823191602480820192602092909190829003018186803b15801561207357600080fd5b505afa158015612087573d6000803e3d6000fd5b505050506040513d602081101561209d57600080fd5b5051612fc4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632e1a7d4d836040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561210a57600080fd5b505af115801561211e573d6000803e3d6000fd5b505050506110e8848361312e565b8042811015612170576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316858560008181106121a757fe5b905060200201356001600160a01b03166001600160a01b031614612200576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b60003490507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004016000604051808303818588803b15801561226057600080fd5b505af1158015612274573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb6122d97f00000000000000000000000000000000000000000000000000000000000000008989600081811061169e57fe5b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561232957600080fd5b505af115801561233d573d6000803e3d6000fd5b505050506040513d602081101561235357600080fd5b505161235b57fe5b60008686600019810181811061236d57fe5b905060200201356001600160a01b03166001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156123d257600080fd5b505afa1580156123e6573d6000803e3d6000fd5b505050506040513d60208110156123fc57600080fd5b5051604080516020898102828101820190935289825292935061243e9290918a918a9182918501908490808284376000920191909152508992506138b7915050565b87611856828989600019810181811061245357fe5b905060200201356001600160a01b03166001600160a01b03166370a08231896040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561181e57600080fd5b60008082428110156124ff576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b600061252c7f00000000000000000000000000000000000000000000000000000000000000008c8c613462565b604080516323b872dd60e01b81523360048201526001600160a01b03831660248201819052604482018d9052915192935090916323b872dd916064808201926020929091908290030181600087803b15801561258757600080fd5b505af115801561259b573d6000803e3d6000fd5b505050506040513d60208110156125b157600080fd5b50506040805163226bf2d160e21b81526001600160a01b03888116600483015282516000938493928616926389afcb44926024808301939282900301818787803b1580156125fe57600080fd5b505af1158015612612573d6000803e3d6000fd5b505050506040513d604081101561262857600080fd5b508051602090910151909250905060006126428e8e613dc2565b509050806001600160a01b03168e6001600160a01b031614612665578183612668565b82825b90975095508a8710156126ac5760405162461bcd60e51b81526004018080602001828103825260248152602001806142d76024913960400191505060405180910390fd5b898610156126eb5760405162461bcd60e51b81526004018080602001828103825260248152602001806143b06024913960400191505060405180910390fd5b505050505097509795505050505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606111207f00000000000000000000000000000000000000000000000000000000000000008484613316565b600080600061279d7f00000000000000000000000000000000000000000000000000000000000000008e7f0000000000000000000000000000000000000000000000000000000000000000613462565b90506000876127ac578c6127b0565b6000195b6040805163d505accf60e01b815233600482015230602482015260448101839052606481018c905260ff8a16608482015260a4810189905260c4810188905290519192506001600160a01b0384169163d505accf9160e48082019260009290919082900301818387803b15801561282657600080fd5b505af115801561283a573d6000803e3d6000fd5b5050505061284c8e8e8e8e8e8e610c97565b909f909e509c50505050505050505050505050565b600080600083428110156128aa576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b6128b88c8c8c8c8c8c613ea0565b909450925060006128ea7f00000000000000000000000000000000000000000000000000000000000000008e8e613462565b90506128f88d338388613521565b6129048c338387613521565b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b15801561295c57600080fd5b505af1158015612970573d6000803e3d6000fd5b505050506040513d602081101561298657600080fd5b5051949d939c50939a509198505050505050505050565b600080600083428110156129e6576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b612a148a7f00000000000000000000000000000000000000000000000000000000000000008b348c8c613ea0565b90945092506000612a667f00000000000000000000000000000000000000000000000000000000000000008c7f0000000000000000000000000000000000000000000000000000000000000000613462565b9050612a748b338388613521565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0856040518263ffffffff1660e01b81526004016000604051808303818588803b158015612acf57600080fd5b505af1158015612ae3573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb82866040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612b6857600080fd5b505af1158015612b7c573d6000803e3d6000fd5b505050506040513d6020811015612b9257600080fd5b5051612b9a57fe5b806001600160a01b0316636a627842886040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b03168152602001915050602060405180830381600087803b158015612bf257600080fd5b505af1158015612c06573d6000803e3d6000fd5b505050506040513d6020811015612c1c57600080fd5b5051925034841015612c3457612c343385340361312e565b505096509650969350505050565b60608142811015612c88576040805162461bcd60e51b8152602060048201526016602482015260008051602061424b833981519152604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031686866000818110612cbf57fe5b905060200201356001600160a01b03166001600160a01b031614612d18576040805162461bcd60e51b815260206004820152601b60248201526000805160206142b7833981519152604482015290519081900360640190fd5b612d767f00000000000000000000000000000000000000000000000000000000000000008888888080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061377f92505050565b91503482600081518110612d8657fe5b60200260200101511115612dcb5760405162461bcd60e51b81526004018080602001828103825260258152602001806143416025913960400191505060405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db083600081518110612e0757fe5b60200260200101516040518263ffffffff1660e01b81526004016000604051808303818588803b158015612e3a57600080fd5b505af1158015612e4e573d6000803e3d6000fd5b50505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb612eb37f00000000000000000000000000000000000000000000000000000000000000008989600081811061169e57fe5b84600081518110612ec057fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015612f1757600080fd5b505af1158015612f2b573d6000803e3d6000fd5b505050506040513d6020811015612f4157600080fd5b5051612f4957fe5b612f888287878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525089925061367e915050565b81600081518110612f9557fe5b6020026020010151341115611e6a57611e6a3383600081518110612fb557fe5b6020026020010151340361312e565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b602083106130415780518252601f199092019160209182019101613022565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146130a3576040519150601f19603f3d011682016040523d82523d6000602084013e6130a8565b606091505b50915091508180156130d65750805115806130d657508080602001905160208110156130d357600080fd5b50515b613127576040805162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c454400604482015290519081900360640190fd5b5050505050565b604080516000808252602082019092526001600160a01b0384169083906040518082805190602001908083835b6020831061317a5780518252601f19909201916020918201910161315b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146131dc576040519150601f19603f3d011682016040523d82523d6000602084013e6131e1565b606091505b50509050806132215760405162461bcd60e51b815260040180806020018281038252602381526020018061431e6023913960400191505060405180910390fd5b505050565b60008084116132665760405162461bcd60e51b81526004018080602001828103825260298152602001806141f86029913960400191505060405180910390fd5b6000831180156132765750600082115b6132b15760405162461bcd60e51b81526004018080602001828103825260268152602001806143666026913960400191505060405180910390fd5b60006132c5856126f763ffffffff61411416565b905060006132d9828563ffffffff61411416565b905060006132ff836132f38861271063ffffffff61411416565b9063ffffffff61417716565b905080828161330a57fe5b04979650505050505050565b606060028251101561336f576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b815167ffffffffffffffff8111801561338757600080fd5b506040519080825280602002602001820160405280156133b1578160200160208202803683370190505b50905082816000815181106133c257fe5b60200260200101818152505060005b600183510381101561345a57600080613414878685815181106133f057fe5b602002602001015187866001018151811061340757fe5b60200260200101516141c6565b9150915061343684848151811061342757fe5b60200260200101518383613226565b84846001018151811061344557fe5b602090810291909101015250506001016133d1565b509392505050565b60008060006134718585613dc2565b604080516bffffffffffffffffffffffff19606094851b811660208084019190915293851b81166034830152825160288184030181526048830184528051908501206001600160f81b031960688401529a90941b9093166069840152607d8301989098527efb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5609d808401919091528851808403909101815260bd909201909752805196019590952095945050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b602083106135a65780518252601f199092019160209182019101613587565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613608576040519150601f19603f3d011682016040523d82523d6000602084013e61360d565b606091505b509150915081801561363b57508051158061363b575080806020019051602081101561363857600080fd5b50515b6136765760405162461bcd60e51b815260040180806020018281038252602481526020018061438c6024913960400191505060405180910390fd5b505050505050565b60005b60018351038110156137795760008084838151811061369c57fe5b60200260200101518584600101815181106136b357fe5b6020026020010151915091506136c98282613dc2565b5050806001600160a01b031663a9059cbb85886001815181106136e857fe5b60200260200101516040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561373f57600080fd5b505af1158015613753573d6000803e3d6000fd5b505050506040513d602081101561376957600080fd5b5050600190920191506136819050565b50505050565b60606002825110156137d8576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a20494e56414c49445f5041544800000000604482015290519081900360640190fd5b815167ffffffffffffffff811180156137f057600080fd5b5060405190808252806020026020018201604052801561381a578160200160208202803683370190505b509050828160018351038151811061382e57fe5b60209081029190910101528151600019015b801561345a576000806138708786600186038151811061385c57fe5b602002602001015187868151811061340757fe5b9150915061389284848151811061388357fe5b60200260200101518383613c26565b8460018503815181106138a157fe5b6020908102919091010152505060001901613840565b60005b6001835103811015613221576000808483815181106138d557fe5b60200260200101518584600101815181106138ec57fe5b60200260200101519150915060006139048383613dc2565b50905060006139347f00000000000000000000000000000000000000000000000000000000000000008585613462565b9050600080600080846001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561397557600080fd5b505afa158015613989573d6000803e3d6000fd5b505050506040513d606081101561399f57600080fd5b5080516020909101516dffffffffffffffffffffffffffff91821693501690506000806001600160a01b038a8116908916146139dc5782846139df565b83835b91509150613a3d828b6001600160a01b03166370a082318a6040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b15801561181e57600080fd5b9550613a4a868383613226565b945050505050600080856001600160a01b0316886001600160a01b031614613a7457826000613a78565b6000835b91509150600060028c51038a10613a8f578a613ad0565b613ad07f0000000000000000000000000000000000000000000000000000000000000000898e8d60020181518110613ac357fe5b6020026020010151613462565b604080516000808252602082019283905263022c0d9f60e01b835260248201878152604483018790526001600160a01b038086166064850152608060848501908152845160a48601819052969750908c169563022c0d9f958a958a958a9591949193919260c486019290918190849084905b83811015613b5a578181015183820152602001613b42565b50505050905090810190601f168015613b875780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613ba957600080fd5b505af1158015613bbd573d6000803e3d6000fd5b50506001909b019a506138ba9950505050505050505050565b80820382811115611123576040805162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015290519081900360640190fd5b6000808411613c665760405162461bcd60e51b815260040180806020018281038252602a815260200180614221602a913960400191505060405180910390fd5b600083118015613c765750600082115b613cb15760405162461bcd60e51b81526004018080602001828103825260268152602001806143666026913960400191505060405180910390fd5b6000613cd5612710613cc9868863ffffffff61411416565b9063ffffffff61411416565b90506000613cef6126f7613cc9868963ffffffff613bd616565b9050613d0c6001828481613cff57fe5b049063ffffffff61417716565b9695505050505050565b6000808411613d565760405162461bcd60e51b81526004018080602001828103825260238152602001806142fb6023913960400191505060405180910390fd5b600083118015613d665750600082115b613da15760405162461bcd60e51b81526004018080602001828103825260268152602001806143666026913960400191505060405180910390fd5b82613db2858463ffffffff61411416565b81613db957fe5b04949350505050565b600080826001600160a01b0316846001600160a01b03161415613e165760405162461bcd60e51b81526004018080602001828103825260238152602001806142946023913960400191505060405180910390fd5b826001600160a01b0316846001600160a01b031610613e36578284613e39565b83835b90925090506001600160a01b038216613e99576040805162461bcd60e51b815260206004820152601c60248201527f50616e63616b654c6962726172793a205a45524f5f4144445245535300000000604482015290519081900360640190fd5b9250929050565b6040805163e6a4390560e01b81526001600160a01b03888116600483015287811660248301529151600092839283927f00000000000000000000000000000000000000000000000000000000000000009092169163e6a4390591604480820192602092909190829003018186803b158015613f1a57600080fd5b505afa158015613f2e573d6000803e3d6000fd5b505050506040513d6020811015613f4457600080fd5b50516001600160a01b03161415613ff757604080516364e329cb60e11b81526001600160a01b038a81166004830152898116602483015291517f00000000000000000000000000000000000000000000000000000000000000009092169163c9c65396916044808201926020929091908290030181600087803b158015613fca57600080fd5b505af1158015613fde573d6000803e3d6000fd5b505050506040513d6020811015613ff457600080fd5b50505b6000806140257f00000000000000000000000000000000000000000000000000000000000000008b8b6141c6565b91509150816000148015614037575080155b1561404757879350869250614107565b6000614054898484613d16565b90508781116140a7578581101561409c5760405162461bcd60e51b81526004018080602001828103825260248152602001806143b06024913960400191505060405180910390fd5b889450925082614105565b60006140b4898486613d16565b9050898111156140c057fe5b878110156140ff5760405162461bcd60e51b81526004018080602001828103825260248152602001806142d76024913960400191505060405180910390fd5b94508793505b505b5050965096945050505050565b600081158061412f5750508082028282828161412c57fe5b04145b611123576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015290519081900360640190fd5b80820182811015611123576040805162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015290519081900360640190fd5b6000806141d38484613dc2565b50506141e0858585613462565b5069152d02c7e14af680000095869550935050505056fe50616e63616b654c6962726172793a20494e53554646494349454e545f494e5055545f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b65526f757465723a20455850495245440000000000000000000050616e63616b65526f757465723a20494e53554646494349454e545f4f55545055545f414d4f554e5450616e63616b654c6962726172793a204944454e544943414c5f41444452455353455350616e63616b65526f757465723a20494e56414c49445f50415448000000000050616e63616b65526f757465723a20494e53554646494349454e545f415f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f414d4f554e545472616e7366657248656c7065723a204554485f5452414e534645525f4641494c454450616e63616b65526f757465723a204558434553534956455f494e5055545f414d4f554e5450616e63616b654c6962726172793a20494e53554646494349454e545f4c49515549444954595472616e7366657248656c7065723a205452414e534645525f46524f4d5f4641494c454450616e63616b65526f757465723a20494e53554646494349454e545f425f414d4f554e54a264697066735822122044f6f1ef8151d18c6631d910c61ef7a78bb94ea63543a76dc88e49f5209201ca64736f6c63430006060033",
980
- "linkReferences": {},
981
- "deployedLinkReferences": {}
982
- }