@venusprotocol/isolated-pools 1.0.0-dev.5 → 1.0.0-dev.6

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 (201) hide show
  1. package/contracts/Comptroller.sol +1 -1
  2. package/contracts/ExponentialNoError.sol +0 -7
  3. package/package.json +1 -1
  4. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +0 -4
  5. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json +0 -215
  6. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +0 -4
  7. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +0 -183
  8. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.dbg.json +0 -4
  9. package/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +0 -63
  10. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.dbg.json +0 -4
  11. package/artifacts/@openzeppelin/contracts/interfaces/IERC1967.sol/IERC1967.json +0 -56
  12. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.dbg.json +0 -4
  13. package/artifacts/@openzeppelin/contracts/interfaces/draft-IERC1822.sol/IERC1822Proxiable.json +0 -24
  14. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.dbg.json +0 -4
  15. package/artifacts/@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol/ERC1967Upgrade.json +0 -56
  16. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.dbg.json +0 -4
  17. package/artifacts/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json +0 -19
  18. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.dbg.json +0 -4
  19. package/artifacts/@openzeppelin/contracts/proxy/beacon/BeaconProxy.sol/BeaconProxy.json +0 -80
  20. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.dbg.json +0 -4
  21. package/artifacts/@openzeppelin/contracts/proxy/beacon/IBeacon.sol/IBeacon.json +0 -24
  22. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.dbg.json +0 -4
  23. package/artifacts/@openzeppelin/contracts/proxy/beacon/UpgradeableBeacon.sol/UpgradeableBeacon.json +0 -113
  24. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +0 -4
  25. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +0 -297
  26. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +0 -4
  27. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +0 -194
  28. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +0 -4
  29. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +0 -233
  30. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.dbg.json +0 -4
  31. package/artifacts/@openzeppelin/contracts/utils/Address.sol/Address.json +0 -10
  32. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +0 -4
  33. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +0 -10
  34. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.dbg.json +0 -4
  35. package/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +0 -10
  36. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +0 -4
  37. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +0 -10
  38. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +0 -4
  39. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +0 -30
  40. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +0 -4
  41. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +0 -30
  42. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +0 -4
  43. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +0 -10
  44. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +0 -4
  45. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +0 -10
  46. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +0 -4
  47. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.json +0 -115
  48. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +0 -4
  49. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +0 -76
  50. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +0 -4
  51. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +0 -24
  52. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +0 -4
  53. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json +0 -24
  54. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +0 -4
  55. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +0 -194
  56. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +0 -4
  57. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +0 -86
  58. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +0 -4
  59. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +0 -10
  60. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +0 -4
  61. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +0 -10
  62. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +0 -4
  63. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +0 -24
  64. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.dbg.json +0 -4
  65. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlManager.sol/AccessControlManager.json +0 -369
  66. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +0 -4
  67. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.json +0 -181
  68. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +0 -4
  69. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.json +0 -282
  70. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +0 -4
  71. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.json +0 -40
  72. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +0 -4
  73. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.json +0 -30
  74. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +0 -4
  75. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.json +0 -43
  76. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +0 -4
  77. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.json +0 -49
  78. package/artifacts/build-info/9b8ff982dc5e6ff902ae9e610da49601.json +0 -1
  79. package/artifacts/build-info/f19d689bc99e63a20dd2a17a14e2b84a.json +0 -1
  80. package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.dbg.json +0 -4
  81. package/artifacts/contracts/BaseJumpRateModelV2.sol/BaseJumpRateModelV2.json +0 -276
  82. package/artifacts/contracts/Comptroller.sol/Comptroller.dbg.json +0 -4
  83. package/artifacts/contracts/Comptroller.sol/Comptroller.json +0 -1667
  84. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.dbg.json +0 -4
  85. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerInterface.json +0 -285
  86. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.dbg.json +0 -4
  87. package/artifacts/contracts/ComptrollerInterface.sol/ComptrollerViewInterface.json +0 -170
  88. package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.dbg.json +0 -4
  89. package/artifacts/contracts/ComptrollerStorage.sol/ComptrollerStorage.json +0 -173
  90. package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.dbg.json +0 -4
  91. package/artifacts/contracts/ErrorReporter.sol/TokenErrorReporter.json +0 -156
  92. package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.dbg.json +0 -4
  93. package/artifacts/contracts/ExponentialNoError.sol/ExponentialNoError.json +0 -10
  94. package/artifacts/contracts/Factories/JumpRateModelFactory.sol/JumpRateModelFactory.dbg.json +0 -4
  95. package/artifacts/contracts/Factories/JumpRateModelFactory.sol/JumpRateModelFactory.json +0 -50
  96. package/artifacts/contracts/Factories/VTokenProxyFactory.sol/VTokenProxyFactory.dbg.json +0 -4
  97. package/artifacts/contracts/Factories/VTokenProxyFactory.sol/VTokenProxyFactory.json +0 -191
  98. package/artifacts/contracts/Factories/WhitePaperInterestRateModelFactory.sol/WhitePaperInterestRateModelFactory.dbg.json +0 -4
  99. package/artifacts/contracts/Factories/WhitePaperInterestRateModelFactory.sol/WhitePaperInterestRateModelFactory.json +0 -35
  100. package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.dbg.json +0 -4
  101. package/artifacts/contracts/IPancakeswapV2Router.sol/IPancakeswapV2Router.json +0 -50
  102. package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.dbg.json +0 -4
  103. package/artifacts/contracts/InterestRateModel.sol/InterestRateModel.json +0 -97
  104. package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.dbg.json +0 -4
  105. package/artifacts/contracts/JumpRateModelV2.sol/JumpRateModelV2.json +0 -307
  106. package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.dbg.json +0 -4
  107. package/artifacts/contracts/Lens/PoolLens.sol/PoolLens.json +0 -1087
  108. package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +0 -4
  109. package/artifacts/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.json +0 -59
  110. package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.dbg.json +0 -4
  111. package/artifacts/contracts/Pool/PoolRegistry.sol/PoolRegistry.json +0 -923
  112. package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.dbg.json +0 -4
  113. package/artifacts/contracts/Pool/PoolRegistryInterface.sol/PoolRegistryInterface.json +0 -176
  114. package/artifacts/contracts/Proxy/UpgradeableBeacon.sol/Beacon.dbg.json +0 -4
  115. package/artifacts/contracts/Proxy/UpgradeableBeacon.sol/Beacon.json +0 -113
  116. package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.dbg.json +0 -4
  117. package/artifacts/contracts/Rewards/RewardsDistributor.sol/RewardsDistributor.json +0 -928
  118. package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +0 -4
  119. package/artifacts/contracts/RiskFund/IProtocolShareReserve.sol/IProtocolShareReserve.json +0 -29
  120. package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.dbg.json +0 -4
  121. package/artifacts/contracts/RiskFund/IRiskFund.sol/IRiskFund.json +0 -101
  122. package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +0 -4
  123. package/artifacts/contracts/RiskFund/ProtocolShareReserve.sol/ProtocolShareReserve.json +0 -296
  124. package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.dbg.json +0 -4
  125. package/artifacts/contracts/RiskFund/ReserveHelpers.sol/ReserveHelpers.json +0 -83
  126. package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.dbg.json +0 -4
  127. package/artifacts/contracts/RiskFund/RiskFund.sol/RiskFund.json +0 -615
  128. package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.dbg.json +0 -4
  129. package/artifacts/contracts/Shortfall/IShortfall.sol/IShortfall.json +0 -24
  130. package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.dbg.json +0 -4
  131. package/artifacts/contracts/Shortfall/Shortfall.sol/Shortfall.json +0 -756
  132. package/artifacts/contracts/VToken.sol/VToken.dbg.json +0 -4
  133. package/artifacts/contracts/VToken.sol/VToken.json +0 -1850
  134. package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.dbg.json +0 -4
  135. package/artifacts/contracts/VTokenInterfaces.sol/VTokenInterface.json +0 -1398
  136. package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.dbg.json +0 -4
  137. package/artifacts/contracts/VTokenInterfaces.sol/VTokenStorage.json +0 -219
  138. package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.dbg.json +0 -4
  139. package/artifacts/contracts/WhitePaperInterestRateModel.sol/WhitePaperInterestRateModel.json +0 -192
  140. package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.dbg.json +0 -4
  141. package/artifacts/contracts/test/ComptrollerHarness.sol/ComptrollerHarness.json +0 -1712
  142. package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.dbg.json +0 -4
  143. package/artifacts/contracts/test/ComptrollerHarness.sol/EchoTypesComptroller.json +0 -94
  144. package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.dbg.json +0 -4
  145. package/artifacts/contracts/test/ComptrollerScenario.sol/ComptrollerScenario.json +0 -1744
  146. package/artifacts/contracts/test/ERC20.sol/ERC20.dbg.json +0 -4
  147. package/artifacts/contracts/test/ERC20.sol/ERC20.json +0 -194
  148. package/artifacts/contracts/test/ERC20.sol/ERC20Base.dbg.json +0 -4
  149. package/artifacts/contracts/test/ERC20.sol/ERC20Base.json +0 -141
  150. package/artifacts/contracts/test/ERC20.sol/ERC20Harness.dbg.json +0 -4
  151. package/artifacts/contracts/test/ERC20.sol/ERC20Harness.json +0 -351
  152. package/artifacts/contracts/test/ERC20.sol/ERC20NS.dbg.json +0 -4
  153. package/artifacts/contracts/test/ERC20.sol/ERC20NS.json +0 -182
  154. package/artifacts/contracts/test/ERC20.sol/NonStandardToken.dbg.json +0 -4
  155. package/artifacts/contracts/test/ERC20.sol/NonStandardToken.json +0 -247
  156. package/artifacts/contracts/test/ERC20.sol/StandardToken.dbg.json +0 -4
  157. package/artifacts/contracts/test/ERC20.sol/StandardToken.json +0 -259
  158. package/artifacts/contracts/test/EvilToken.sol/EvilToken.dbg.json +0 -4
  159. package/artifacts/contracts/test/EvilToken.sol/EvilToken.json +0 -303
  160. package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.dbg.json +0 -4
  161. package/artifacts/contracts/test/FaucetToken.sol/FaucetNonStandardToken.json +0 -265
  162. package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.dbg.json +0 -4
  163. package/artifacts/contracts/test/FaucetToken.sol/FaucetToken.json +0 -277
  164. package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.dbg.json +0 -4
  165. package/artifacts/contracts/test/FaucetToken.sol/FaucetTokenReEntrantHarness.json +0 -313
  166. package/artifacts/contracts/test/FeeToken.sol/FeeToken.dbg.json +0 -4
  167. package/artifacts/contracts/test/FeeToken.sol/FeeToken.json +0 -313
  168. package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.dbg.json +0 -4
  169. package/artifacts/contracts/test/HarnessMaxLoopsLimitHelper.sol/HarnessMaxLoopsLimitHelper.json +0 -85
  170. package/artifacts/contracts/test/MockDeflationaryToken.sol/MockDeflatingToken.dbg.json +0 -4
  171. package/artifacts/contracts/test/MockDeflationaryToken.sol/MockDeflatingToken.json +0 -332
  172. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.dbg.json +0 -4
  173. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IERC20.json +0 -233
  174. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.dbg.json +0 -4
  175. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeFactory.json +0 -187
  176. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.dbg.json +0 -4
  177. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakePair.json +0 -668
  178. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.dbg.json +0 -4
  179. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter01.json +0 -760
  180. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.dbg.json +0 -4
  181. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IPancakeRouter02.json +0 -962
  182. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.dbg.json +0 -4
  183. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/IWETH.json +0 -55
  184. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.dbg.json +0 -4
  185. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeLibrary.json +0 -10
  186. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.dbg.json +0 -4
  187. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/PancakeRouter.json +0 -982
  188. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.dbg.json +0 -4
  189. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/SafeMath.json +0 -10
  190. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.dbg.json +0 -4
  191. package/artifacts/contracts/test/Mocks/MockPancakeSwap.sol/TransferHelper.json +0 -10
  192. package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.dbg.json +0 -4
  193. package/artifacts/contracts/test/Mocks/MockPriceOracle.sol/MockPriceOracle.json +0 -85
  194. package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.dbg.json +0 -4
  195. package/artifacts/contracts/test/Mocks/MockToken.sol/MockToken.json +0 -315
  196. package/artifacts/contracts/test/SafeMath.sol/SafeMath.dbg.json +0 -4
  197. package/artifacts/contracts/test/SafeMath.sol/SafeMath.json +0 -10
  198. package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.dbg.json +0 -4
  199. package/artifacts/contracts/test/UpgradedVToken.sol/UpgradedVToken.json +0 -1946
  200. package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.dbg.json +0 -4
  201. package/artifacts/contracts/test/VTokenHarness.sol/VTokenHarness.json +0 -2306
@@ -1,1667 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "Comptroller",
4
- "sourceName": "contracts/Comptroller.sol",
5
- "abi": [
6
- {
7
- "inputs": [
8
- {
9
- "internalType": "address",
10
- "name": "poolRegistry_",
11
- "type": "address"
12
- }
13
- ],
14
- "stateMutability": "nonpayable",
15
- "type": "constructor"
16
- },
17
- {
18
- "inputs": [
19
- {
20
- "internalType": "address",
21
- "name": "market",
22
- "type": "address"
23
- },
24
- {
25
- "internalType": "enum ComptrollerStorage.Action",
26
- "name": "action",
27
- "type": "uint8"
28
- }
29
- ],
30
- "name": "ActionPaused",
31
- "type": "error"
32
- },
33
- {
34
- "inputs": [
35
- {
36
- "internalType": "address",
37
- "name": "market",
38
- "type": "address"
39
- },
40
- {
41
- "internalType": "uint256",
42
- "name": "cap",
43
- "type": "uint256"
44
- }
45
- ],
46
- "name": "BorrowCapExceeded",
47
- "type": "error"
48
- },
49
- {
50
- "inputs": [
51
- {
52
- "internalType": "uint256",
53
- "name": "expectedLessThanOrEqualTo",
54
- "type": "uint256"
55
- },
56
- {
57
- "internalType": "uint256",
58
- "name": "actual",
59
- "type": "uint256"
60
- }
61
- ],
62
- "name": "CollateralExceedsThreshold",
63
- "type": "error"
64
- },
65
- {
66
- "inputs": [],
67
- "name": "ComptrollerMismatch",
68
- "type": "error"
69
- },
70
- {
71
- "inputs": [
72
- {
73
- "internalType": "uint256",
74
- "name": "collateralToSeize",
75
- "type": "uint256"
76
- },
77
- {
78
- "internalType": "uint256",
79
- "name": "availableCollateral",
80
- "type": "uint256"
81
- }
82
- ],
83
- "name": "InsufficientCollateral",
84
- "type": "error"
85
- },
86
- {
87
- "inputs": [],
88
- "name": "InsufficientLiquidity",
89
- "type": "error"
90
- },
91
- {
92
- "inputs": [],
93
- "name": "InsufficientShortfall",
94
- "type": "error"
95
- },
96
- {
97
- "inputs": [],
98
- "name": "InvalidCollateralFactor",
99
- "type": "error"
100
- },
101
- {
102
- "inputs": [],
103
- "name": "InvalidLiquidationThreshold",
104
- "type": "error"
105
- },
106
- {
107
- "inputs": [
108
- {
109
- "internalType": "address",
110
- "name": "market",
111
- "type": "address"
112
- }
113
- ],
114
- "name": "MarketAlreadyListed",
115
- "type": "error"
116
- },
117
- {
118
- "inputs": [
119
- {
120
- "internalType": "address",
121
- "name": "vToken",
122
- "type": "address"
123
- },
124
- {
125
- "internalType": "address",
126
- "name": "user",
127
- "type": "address"
128
- }
129
- ],
130
- "name": "MarketNotCollateral",
131
- "type": "error"
132
- },
133
- {
134
- "inputs": [
135
- {
136
- "internalType": "address",
137
- "name": "market",
138
- "type": "address"
139
- }
140
- ],
141
- "name": "MarketNotListed",
142
- "type": "error"
143
- },
144
- {
145
- "inputs": [
146
- {
147
- "internalType": "uint256",
148
- "name": "loopsLimit",
149
- "type": "uint256"
150
- },
151
- {
152
- "internalType": "uint256",
153
- "name": "requiredLoops",
154
- "type": "uint256"
155
- }
156
- ],
157
- "name": "MaxLoopsLimitExceeded",
158
- "type": "error"
159
- },
160
- {
161
- "inputs": [
162
- {
163
- "internalType": "uint256",
164
- "name": "expectedGreaterThan",
165
- "type": "uint256"
166
- },
167
- {
168
- "internalType": "uint256",
169
- "name": "actual",
170
- "type": "uint256"
171
- }
172
- ],
173
- "name": "MinimalCollateralViolated",
174
- "type": "error"
175
- },
176
- {
177
- "inputs": [],
178
- "name": "NonzeroBorrowBalance",
179
- "type": "error"
180
- },
181
- {
182
- "inputs": [
183
- {
184
- "internalType": "address",
185
- "name": "vToken",
186
- "type": "address"
187
- }
188
- ],
189
- "name": "PriceError",
190
- "type": "error"
191
- },
192
- {
193
- "inputs": [
194
- {
195
- "internalType": "address",
196
- "name": "vToken",
197
- "type": "address"
198
- },
199
- {
200
- "internalType": "address",
201
- "name": "user",
202
- "type": "address"
203
- }
204
- ],
205
- "name": "SnapshotError",
206
- "type": "error"
207
- },
208
- {
209
- "inputs": [
210
- {
211
- "internalType": "address",
212
- "name": "market",
213
- "type": "address"
214
- },
215
- {
216
- "internalType": "uint256",
217
- "name": "cap",
218
- "type": "uint256"
219
- }
220
- ],
221
- "name": "SupplyCapExceeded",
222
- "type": "error"
223
- },
224
- {
225
- "inputs": [],
226
- "name": "TooMuchRepay",
227
- "type": "error"
228
- },
229
- {
230
- "inputs": [
231
- {
232
- "internalType": "address",
233
- "name": "sender",
234
- "type": "address"
235
- },
236
- {
237
- "internalType": "address",
238
- "name": "calledContract",
239
- "type": "address"
240
- },
241
- {
242
- "internalType": "string",
243
- "name": "methodSignature",
244
- "type": "string"
245
- }
246
- ],
247
- "name": "Unauthorized",
248
- "type": "error"
249
- },
250
- {
251
- "inputs": [
252
- {
253
- "internalType": "address",
254
- "name": "expectedSender",
255
- "type": "address"
256
- },
257
- {
258
- "internalType": "address",
259
- "name": "actualSender",
260
- "type": "address"
261
- }
262
- ],
263
- "name": "UnexpectedSender",
264
- "type": "error"
265
- },
266
- {
267
- "inputs": [],
268
- "name": "ZeroAddressNotAllowed",
269
- "type": "error"
270
- },
271
- {
272
- "anonymous": false,
273
- "inputs": [
274
- {
275
- "indexed": false,
276
- "internalType": "contract VToken",
277
- "name": "vToken",
278
- "type": "address"
279
- },
280
- {
281
- "indexed": false,
282
- "internalType": "enum ComptrollerStorage.Action",
283
- "name": "action",
284
- "type": "uint8"
285
- },
286
- {
287
- "indexed": false,
288
- "internalType": "bool",
289
- "name": "pauseState",
290
- "type": "bool"
291
- }
292
- ],
293
- "name": "ActionPausedMarket",
294
- "type": "event"
295
- },
296
- {
297
- "anonymous": false,
298
- "inputs": [
299
- {
300
- "indexed": false,
301
- "internalType": "uint8",
302
- "name": "version",
303
- "type": "uint8"
304
- }
305
- ],
306
- "name": "Initialized",
307
- "type": "event"
308
- },
309
- {
310
- "anonymous": false,
311
- "inputs": [
312
- {
313
- "indexed": true,
314
- "internalType": "contract VToken",
315
- "name": "vToken",
316
- "type": "address"
317
- },
318
- {
319
- "indexed": true,
320
- "internalType": "address",
321
- "name": "account",
322
- "type": "address"
323
- }
324
- ],
325
- "name": "MarketEntered",
326
- "type": "event"
327
- },
328
- {
329
- "anonymous": false,
330
- "inputs": [
331
- {
332
- "indexed": true,
333
- "internalType": "contract VToken",
334
- "name": "vToken",
335
- "type": "address"
336
- },
337
- {
338
- "indexed": true,
339
- "internalType": "address",
340
- "name": "account",
341
- "type": "address"
342
- }
343
- ],
344
- "name": "MarketExited",
345
- "type": "event"
346
- },
347
- {
348
- "anonymous": false,
349
- "inputs": [
350
- {
351
- "indexed": false,
352
- "internalType": "contract VToken",
353
- "name": "vToken",
354
- "type": "address"
355
- }
356
- ],
357
- "name": "MarketSupported",
358
- "type": "event"
359
- },
360
- {
361
- "anonymous": false,
362
- "inputs": [
363
- {
364
- "indexed": false,
365
- "internalType": "uint256",
366
- "name": "oldMaxLoopsLimit",
367
- "type": "uint256"
368
- },
369
- {
370
- "indexed": false,
371
- "internalType": "uint256",
372
- "name": "newmaxLoopsLimit",
373
- "type": "uint256"
374
- }
375
- ],
376
- "name": "MaxLoopsLimitUpdated",
377
- "type": "event"
378
- },
379
- {
380
- "anonymous": false,
381
- "inputs": [
382
- {
383
- "indexed": false,
384
- "internalType": "address",
385
- "name": "oldAccessControlManager",
386
- "type": "address"
387
- },
388
- {
389
- "indexed": false,
390
- "internalType": "address",
391
- "name": "newAccessControlManager",
392
- "type": "address"
393
- }
394
- ],
395
- "name": "NewAccessControlManager",
396
- "type": "event"
397
- },
398
- {
399
- "anonymous": false,
400
- "inputs": [
401
- {
402
- "indexed": true,
403
- "internalType": "contract VToken",
404
- "name": "vToken",
405
- "type": "address"
406
- },
407
- {
408
- "indexed": false,
409
- "internalType": "uint256",
410
- "name": "newBorrowCap",
411
- "type": "uint256"
412
- }
413
- ],
414
- "name": "NewBorrowCap",
415
- "type": "event"
416
- },
417
- {
418
- "anonymous": false,
419
- "inputs": [
420
- {
421
- "indexed": false,
422
- "internalType": "uint256",
423
- "name": "oldCloseFactorMantissa",
424
- "type": "uint256"
425
- },
426
- {
427
- "indexed": false,
428
- "internalType": "uint256",
429
- "name": "newCloseFactorMantissa",
430
- "type": "uint256"
431
- }
432
- ],
433
- "name": "NewCloseFactor",
434
- "type": "event"
435
- },
436
- {
437
- "anonymous": false,
438
- "inputs": [
439
- {
440
- "indexed": false,
441
- "internalType": "contract VToken",
442
- "name": "vToken",
443
- "type": "address"
444
- },
445
- {
446
- "indexed": false,
447
- "internalType": "uint256",
448
- "name": "oldCollateralFactorMantissa",
449
- "type": "uint256"
450
- },
451
- {
452
- "indexed": false,
453
- "internalType": "uint256",
454
- "name": "newCollateralFactorMantissa",
455
- "type": "uint256"
456
- }
457
- ],
458
- "name": "NewCollateralFactor",
459
- "type": "event"
460
- },
461
- {
462
- "anonymous": false,
463
- "inputs": [
464
- {
465
- "indexed": false,
466
- "internalType": "uint256",
467
- "name": "oldLiquidationIncentiveMantissa",
468
- "type": "uint256"
469
- },
470
- {
471
- "indexed": false,
472
- "internalType": "uint256",
473
- "name": "newLiquidationIncentiveMantissa",
474
- "type": "uint256"
475
- }
476
- ],
477
- "name": "NewLiquidationIncentive",
478
- "type": "event"
479
- },
480
- {
481
- "anonymous": false,
482
- "inputs": [
483
- {
484
- "indexed": false,
485
- "internalType": "contract VToken",
486
- "name": "vToken",
487
- "type": "address"
488
- },
489
- {
490
- "indexed": false,
491
- "internalType": "uint256",
492
- "name": "oldLiquidationThresholdMantissa",
493
- "type": "uint256"
494
- },
495
- {
496
- "indexed": false,
497
- "internalType": "uint256",
498
- "name": "newLiquidationThresholdMantissa",
499
- "type": "uint256"
500
- }
501
- ],
502
- "name": "NewLiquidationThreshold",
503
- "type": "event"
504
- },
505
- {
506
- "anonymous": false,
507
- "inputs": [
508
- {
509
- "indexed": false,
510
- "internalType": "uint256",
511
- "name": "oldMinLiquidatableCollateral",
512
- "type": "uint256"
513
- },
514
- {
515
- "indexed": false,
516
- "internalType": "uint256",
517
- "name": "newMinLiquidatableCollateral",
518
- "type": "uint256"
519
- }
520
- ],
521
- "name": "NewMinLiquidatableCollateral",
522
- "type": "event"
523
- },
524
- {
525
- "anonymous": false,
526
- "inputs": [
527
- {
528
- "indexed": false,
529
- "internalType": "contract ResilientOracleInterface",
530
- "name": "oldPriceOracle",
531
- "type": "address"
532
- },
533
- {
534
- "indexed": false,
535
- "internalType": "contract ResilientOracleInterface",
536
- "name": "newPriceOracle",
537
- "type": "address"
538
- }
539
- ],
540
- "name": "NewPriceOracle",
541
- "type": "event"
542
- },
543
- {
544
- "anonymous": false,
545
- "inputs": [
546
- {
547
- "indexed": true,
548
- "internalType": "address",
549
- "name": "rewardsDistributor",
550
- "type": "address"
551
- }
552
- ],
553
- "name": "NewRewardsDistributor",
554
- "type": "event"
555
- },
556
- {
557
- "anonymous": false,
558
- "inputs": [
559
- {
560
- "indexed": true,
561
- "internalType": "contract VToken",
562
- "name": "vToken",
563
- "type": "address"
564
- },
565
- {
566
- "indexed": false,
567
- "internalType": "uint256",
568
- "name": "newSupplyCap",
569
- "type": "uint256"
570
- }
571
- ],
572
- "name": "NewSupplyCap",
573
- "type": "event"
574
- },
575
- {
576
- "anonymous": false,
577
- "inputs": [
578
- {
579
- "indexed": true,
580
- "internalType": "address",
581
- "name": "previousOwner",
582
- "type": "address"
583
- },
584
- {
585
- "indexed": true,
586
- "internalType": "address",
587
- "name": "newOwner",
588
- "type": "address"
589
- }
590
- ],
591
- "name": "OwnershipTransferStarted",
592
- "type": "event"
593
- },
594
- {
595
- "anonymous": false,
596
- "inputs": [
597
- {
598
- "indexed": true,
599
- "internalType": "address",
600
- "name": "previousOwner",
601
- "type": "address"
602
- },
603
- {
604
- "indexed": true,
605
- "internalType": "address",
606
- "name": "newOwner",
607
- "type": "address"
608
- }
609
- ],
610
- "name": "OwnershipTransferred",
611
- "type": "event"
612
- },
613
- {
614
- "inputs": [],
615
- "name": "acceptOwnership",
616
- "outputs": [],
617
- "stateMutability": "nonpayable",
618
- "type": "function"
619
- },
620
- {
621
- "inputs": [],
622
- "name": "accessControlManager",
623
- "outputs": [
624
- {
625
- "internalType": "contract IAccessControlManagerV8",
626
- "name": "",
627
- "type": "address"
628
- }
629
- ],
630
- "stateMutability": "view",
631
- "type": "function"
632
- },
633
- {
634
- "inputs": [
635
- {
636
- "internalType": "address",
637
- "name": "",
638
- "type": "address"
639
- },
640
- {
641
- "internalType": "uint256",
642
- "name": "",
643
- "type": "uint256"
644
- }
645
- ],
646
- "name": "accountAssets",
647
- "outputs": [
648
- {
649
- "internalType": "contract VToken",
650
- "name": "",
651
- "type": "address"
652
- }
653
- ],
654
- "stateMutability": "view",
655
- "type": "function"
656
- },
657
- {
658
- "inputs": [
659
- {
660
- "internalType": "address",
661
- "name": "market",
662
- "type": "address"
663
- },
664
- {
665
- "internalType": "enum ComptrollerStorage.Action",
666
- "name": "action",
667
- "type": "uint8"
668
- }
669
- ],
670
- "name": "actionPaused",
671
- "outputs": [
672
- {
673
- "internalType": "bool",
674
- "name": "",
675
- "type": "bool"
676
- }
677
- ],
678
- "stateMutability": "view",
679
- "type": "function"
680
- },
681
- {
682
- "inputs": [
683
- {
684
- "internalType": "contract RewardsDistributor",
685
- "name": "_rewardsDistributor",
686
- "type": "address"
687
- }
688
- ],
689
- "name": "addRewardsDistributor",
690
- "outputs": [],
691
- "stateMutability": "nonpayable",
692
- "type": "function"
693
- },
694
- {
695
- "inputs": [
696
- {
697
- "internalType": "uint256",
698
- "name": "",
699
- "type": "uint256"
700
- }
701
- ],
702
- "name": "allMarkets",
703
- "outputs": [
704
- {
705
- "internalType": "contract VToken",
706
- "name": "",
707
- "type": "address"
708
- }
709
- ],
710
- "stateMutability": "view",
711
- "type": "function"
712
- },
713
- {
714
- "inputs": [
715
- {
716
- "internalType": "address",
717
- "name": "",
718
- "type": "address"
719
- }
720
- ],
721
- "name": "borrowCaps",
722
- "outputs": [
723
- {
724
- "internalType": "uint256",
725
- "name": "",
726
- "type": "uint256"
727
- }
728
- ],
729
- "stateMutability": "view",
730
- "type": "function"
731
- },
732
- {
733
- "inputs": [
734
- {
735
- "internalType": "address",
736
- "name": "account",
737
- "type": "address"
738
- },
739
- {
740
- "internalType": "contract VToken",
741
- "name": "vToken",
742
- "type": "address"
743
- }
744
- ],
745
- "name": "checkMembership",
746
- "outputs": [
747
- {
748
- "internalType": "bool",
749
- "name": "",
750
- "type": "bool"
751
- }
752
- ],
753
- "stateMutability": "view",
754
- "type": "function"
755
- },
756
- {
757
- "inputs": [],
758
- "name": "closeFactorMantissa",
759
- "outputs": [
760
- {
761
- "internalType": "uint256",
762
- "name": "",
763
- "type": "uint256"
764
- }
765
- ],
766
- "stateMutability": "view",
767
- "type": "function"
768
- },
769
- {
770
- "inputs": [
771
- {
772
- "internalType": "address[]",
773
- "name": "vTokens",
774
- "type": "address[]"
775
- }
776
- ],
777
- "name": "enterMarkets",
778
- "outputs": [
779
- {
780
- "internalType": "uint256[]",
781
- "name": "",
782
- "type": "uint256[]"
783
- }
784
- ],
785
- "stateMutability": "nonpayable",
786
- "type": "function"
787
- },
788
- {
789
- "inputs": [
790
- {
791
- "internalType": "address",
792
- "name": "vTokenAddress",
793
- "type": "address"
794
- }
795
- ],
796
- "name": "exitMarket",
797
- "outputs": [
798
- {
799
- "internalType": "uint256",
800
- "name": "",
801
- "type": "uint256"
802
- }
803
- ],
804
- "stateMutability": "nonpayable",
805
- "type": "function"
806
- },
807
- {
808
- "inputs": [
809
- {
810
- "internalType": "address",
811
- "name": "account",
812
- "type": "address"
813
- }
814
- ],
815
- "name": "getAccountLiquidity",
816
- "outputs": [
817
- {
818
- "internalType": "uint256",
819
- "name": "error",
820
- "type": "uint256"
821
- },
822
- {
823
- "internalType": "uint256",
824
- "name": "liquidity",
825
- "type": "uint256"
826
- },
827
- {
828
- "internalType": "uint256",
829
- "name": "shortfall",
830
- "type": "uint256"
831
- }
832
- ],
833
- "stateMutability": "view",
834
- "type": "function"
835
- },
836
- {
837
- "inputs": [],
838
- "name": "getAllMarkets",
839
- "outputs": [
840
- {
841
- "internalType": "contract VToken[]",
842
- "name": "",
843
- "type": "address[]"
844
- }
845
- ],
846
- "stateMutability": "view",
847
- "type": "function"
848
- },
849
- {
850
- "inputs": [
851
- {
852
- "internalType": "address",
853
- "name": "account",
854
- "type": "address"
855
- }
856
- ],
857
- "name": "getAssetsIn",
858
- "outputs": [
859
- {
860
- "internalType": "contract VToken[]",
861
- "name": "",
862
- "type": "address[]"
863
- }
864
- ],
865
- "stateMutability": "view",
866
- "type": "function"
867
- },
868
- {
869
- "inputs": [
870
- {
871
- "internalType": "address",
872
- "name": "account",
873
- "type": "address"
874
- }
875
- ],
876
- "name": "getBorrowingPower",
877
- "outputs": [
878
- {
879
- "internalType": "uint256",
880
- "name": "error",
881
- "type": "uint256"
882
- },
883
- {
884
- "internalType": "uint256",
885
- "name": "liquidity",
886
- "type": "uint256"
887
- },
888
- {
889
- "internalType": "uint256",
890
- "name": "shortfall",
891
- "type": "uint256"
892
- }
893
- ],
894
- "stateMutability": "view",
895
- "type": "function"
896
- },
897
- {
898
- "inputs": [
899
- {
900
- "internalType": "address",
901
- "name": "account",
902
- "type": "address"
903
- },
904
- {
905
- "internalType": "address",
906
- "name": "vTokenModify",
907
- "type": "address"
908
- },
909
- {
910
- "internalType": "uint256",
911
- "name": "redeemTokens",
912
- "type": "uint256"
913
- },
914
- {
915
- "internalType": "uint256",
916
- "name": "borrowAmount",
917
- "type": "uint256"
918
- }
919
- ],
920
- "name": "getHypotheticalAccountLiquidity",
921
- "outputs": [
922
- {
923
- "internalType": "uint256",
924
- "name": "error",
925
- "type": "uint256"
926
- },
927
- {
928
- "internalType": "uint256",
929
- "name": "liquidity",
930
- "type": "uint256"
931
- },
932
- {
933
- "internalType": "uint256",
934
- "name": "shortfall",
935
- "type": "uint256"
936
- }
937
- ],
938
- "stateMutability": "view",
939
- "type": "function"
940
- },
941
- {
942
- "inputs": [],
943
- "name": "getRewardDistributors",
944
- "outputs": [
945
- {
946
- "internalType": "contract RewardsDistributor[]",
947
- "name": "",
948
- "type": "address[]"
949
- }
950
- ],
951
- "stateMutability": "view",
952
- "type": "function"
953
- },
954
- {
955
- "inputs": [
956
- {
957
- "internalType": "address",
958
- "name": "vToken",
959
- "type": "address"
960
- }
961
- ],
962
- "name": "getRewardsByMarket",
963
- "outputs": [
964
- {
965
- "components": [
966
- {
967
- "internalType": "address",
968
- "name": "rewardToken",
969
- "type": "address"
970
- },
971
- {
972
- "internalType": "uint256",
973
- "name": "supplySpeed",
974
- "type": "uint256"
975
- },
976
- {
977
- "internalType": "uint256",
978
- "name": "borrowSpeed",
979
- "type": "uint256"
980
- }
981
- ],
982
- "internalType": "struct ComptrollerStorage.RewardSpeeds[]",
983
- "name": "rewardSpeeds",
984
- "type": "tuple[]"
985
- }
986
- ],
987
- "stateMutability": "view",
988
- "type": "function"
989
- },
990
- {
991
- "inputs": [
992
- {
993
- "internalType": "address",
994
- "name": "user",
995
- "type": "address"
996
- }
997
- ],
998
- "name": "healAccount",
999
- "outputs": [],
1000
- "stateMutability": "nonpayable",
1001
- "type": "function"
1002
- },
1003
- {
1004
- "inputs": [
1005
- {
1006
- "internalType": "uint256",
1007
- "name": "loopLimit",
1008
- "type": "uint256"
1009
- },
1010
- {
1011
- "internalType": "address",
1012
- "name": "accessControlManager",
1013
- "type": "address"
1014
- }
1015
- ],
1016
- "name": "initialize",
1017
- "outputs": [],
1018
- "stateMutability": "nonpayable",
1019
- "type": "function"
1020
- },
1021
- {
1022
- "inputs": [],
1023
- "name": "isComptroller",
1024
- "outputs": [
1025
- {
1026
- "internalType": "bool",
1027
- "name": "",
1028
- "type": "bool"
1029
- }
1030
- ],
1031
- "stateMutability": "pure",
1032
- "type": "function"
1033
- },
1034
- {
1035
- "inputs": [
1036
- {
1037
- "internalType": "contract VToken",
1038
- "name": "vToken",
1039
- "type": "address"
1040
- }
1041
- ],
1042
- "name": "isDeprecated",
1043
- "outputs": [
1044
- {
1045
- "internalType": "bool",
1046
- "name": "",
1047
- "type": "bool"
1048
- }
1049
- ],
1050
- "stateMutability": "view",
1051
- "type": "function"
1052
- },
1053
- {
1054
- "inputs": [
1055
- {
1056
- "internalType": "contract VToken",
1057
- "name": "vToken",
1058
- "type": "address"
1059
- }
1060
- ],
1061
- "name": "isMarketListed",
1062
- "outputs": [
1063
- {
1064
- "internalType": "bool",
1065
- "name": "",
1066
- "type": "bool"
1067
- }
1068
- ],
1069
- "stateMutability": "view",
1070
- "type": "function"
1071
- },
1072
- {
1073
- "inputs": [
1074
- {
1075
- "internalType": "address",
1076
- "name": "borrower",
1077
- "type": "address"
1078
- },
1079
- {
1080
- "components": [
1081
- {
1082
- "internalType": "contract VToken",
1083
- "name": "vTokenCollateral",
1084
- "type": "address"
1085
- },
1086
- {
1087
- "internalType": "contract VToken",
1088
- "name": "vTokenBorrowed",
1089
- "type": "address"
1090
- },
1091
- {
1092
- "internalType": "uint256",
1093
- "name": "repayAmount",
1094
- "type": "uint256"
1095
- }
1096
- ],
1097
- "internalType": "struct ComptrollerStorage.LiquidationOrder[]",
1098
- "name": "orders",
1099
- "type": "tuple[]"
1100
- }
1101
- ],
1102
- "name": "liquidateAccount",
1103
- "outputs": [],
1104
- "stateMutability": "nonpayable",
1105
- "type": "function"
1106
- },
1107
- {
1108
- "inputs": [
1109
- {
1110
- "internalType": "address",
1111
- "name": "vTokenBorrowed",
1112
- "type": "address"
1113
- },
1114
- {
1115
- "internalType": "address",
1116
- "name": "vTokenCollateral",
1117
- "type": "address"
1118
- },
1119
- {
1120
- "internalType": "uint256",
1121
- "name": "actualRepayAmount",
1122
- "type": "uint256"
1123
- }
1124
- ],
1125
- "name": "liquidateCalculateSeizeTokens",
1126
- "outputs": [
1127
- {
1128
- "internalType": "uint256",
1129
- "name": "error",
1130
- "type": "uint256"
1131
- },
1132
- {
1133
- "internalType": "uint256",
1134
- "name": "tokensToSeize",
1135
- "type": "uint256"
1136
- }
1137
- ],
1138
- "stateMutability": "view",
1139
- "type": "function"
1140
- },
1141
- {
1142
- "inputs": [],
1143
- "name": "liquidationIncentiveMantissa",
1144
- "outputs": [
1145
- {
1146
- "internalType": "uint256",
1147
- "name": "",
1148
- "type": "uint256"
1149
- }
1150
- ],
1151
- "stateMutability": "view",
1152
- "type": "function"
1153
- },
1154
- {
1155
- "inputs": [
1156
- {
1157
- "internalType": "address",
1158
- "name": "",
1159
- "type": "address"
1160
- }
1161
- ],
1162
- "name": "markets",
1163
- "outputs": [
1164
- {
1165
- "internalType": "bool",
1166
- "name": "isListed",
1167
- "type": "bool"
1168
- },
1169
- {
1170
- "internalType": "uint256",
1171
- "name": "collateralFactorMantissa",
1172
- "type": "uint256"
1173
- },
1174
- {
1175
- "internalType": "uint256",
1176
- "name": "liquidationThresholdMantissa",
1177
- "type": "uint256"
1178
- }
1179
- ],
1180
- "stateMutability": "view",
1181
- "type": "function"
1182
- },
1183
- {
1184
- "inputs": [],
1185
- "name": "maxLoopsLimit",
1186
- "outputs": [
1187
- {
1188
- "internalType": "uint256",
1189
- "name": "",
1190
- "type": "uint256"
1191
- }
1192
- ],
1193
- "stateMutability": "view",
1194
- "type": "function"
1195
- },
1196
- {
1197
- "inputs": [],
1198
- "name": "minLiquidatableCollateral",
1199
- "outputs": [
1200
- {
1201
- "internalType": "uint256",
1202
- "name": "",
1203
- "type": "uint256"
1204
- }
1205
- ],
1206
- "stateMutability": "view",
1207
- "type": "function"
1208
- },
1209
- {
1210
- "inputs": [],
1211
- "name": "oracle",
1212
- "outputs": [
1213
- {
1214
- "internalType": "contract ResilientOracleInterface",
1215
- "name": "",
1216
- "type": "address"
1217
- }
1218
- ],
1219
- "stateMutability": "view",
1220
- "type": "function"
1221
- },
1222
- {
1223
- "inputs": [],
1224
- "name": "owner",
1225
- "outputs": [
1226
- {
1227
- "internalType": "address",
1228
- "name": "",
1229
- "type": "address"
1230
- }
1231
- ],
1232
- "stateMutability": "view",
1233
- "type": "function"
1234
- },
1235
- {
1236
- "inputs": [],
1237
- "name": "pendingOwner",
1238
- "outputs": [
1239
- {
1240
- "internalType": "address",
1241
- "name": "",
1242
- "type": "address"
1243
- }
1244
- ],
1245
- "stateMutability": "view",
1246
- "type": "function"
1247
- },
1248
- {
1249
- "inputs": [],
1250
- "name": "poolRegistry",
1251
- "outputs": [
1252
- {
1253
- "internalType": "address",
1254
- "name": "",
1255
- "type": "address"
1256
- }
1257
- ],
1258
- "stateMutability": "view",
1259
- "type": "function"
1260
- },
1261
- {
1262
- "inputs": [
1263
- {
1264
- "internalType": "address",
1265
- "name": "vToken",
1266
- "type": "address"
1267
- },
1268
- {
1269
- "internalType": "address",
1270
- "name": "borrower",
1271
- "type": "address"
1272
- },
1273
- {
1274
- "internalType": "uint256",
1275
- "name": "borrowAmount",
1276
- "type": "uint256"
1277
- }
1278
- ],
1279
- "name": "preBorrowHook",
1280
- "outputs": [],
1281
- "stateMutability": "nonpayable",
1282
- "type": "function"
1283
- },
1284
- {
1285
- "inputs": [
1286
- {
1287
- "internalType": "address",
1288
- "name": "vTokenBorrowed",
1289
- "type": "address"
1290
- },
1291
- {
1292
- "internalType": "address",
1293
- "name": "vTokenCollateral",
1294
- "type": "address"
1295
- },
1296
- {
1297
- "internalType": "address",
1298
- "name": "borrower",
1299
- "type": "address"
1300
- },
1301
- {
1302
- "internalType": "uint256",
1303
- "name": "repayAmount",
1304
- "type": "uint256"
1305
- },
1306
- {
1307
- "internalType": "bool",
1308
- "name": "skipLiquidityCheck",
1309
- "type": "bool"
1310
- }
1311
- ],
1312
- "name": "preLiquidateHook",
1313
- "outputs": [],
1314
- "stateMutability": "nonpayable",
1315
- "type": "function"
1316
- },
1317
- {
1318
- "inputs": [
1319
- {
1320
- "internalType": "address",
1321
- "name": "vToken",
1322
- "type": "address"
1323
- },
1324
- {
1325
- "internalType": "address",
1326
- "name": "minter",
1327
- "type": "address"
1328
- },
1329
- {
1330
- "internalType": "uint256",
1331
- "name": "mintAmount",
1332
- "type": "uint256"
1333
- }
1334
- ],
1335
- "name": "preMintHook",
1336
- "outputs": [],
1337
- "stateMutability": "nonpayable",
1338
- "type": "function"
1339
- },
1340
- {
1341
- "inputs": [
1342
- {
1343
- "internalType": "address",
1344
- "name": "vToken",
1345
- "type": "address"
1346
- },
1347
- {
1348
- "internalType": "address",
1349
- "name": "redeemer",
1350
- "type": "address"
1351
- },
1352
- {
1353
- "internalType": "uint256",
1354
- "name": "redeemTokens",
1355
- "type": "uint256"
1356
- }
1357
- ],
1358
- "name": "preRedeemHook",
1359
- "outputs": [],
1360
- "stateMutability": "nonpayable",
1361
- "type": "function"
1362
- },
1363
- {
1364
- "inputs": [
1365
- {
1366
- "internalType": "address",
1367
- "name": "vToken",
1368
- "type": "address"
1369
- },
1370
- {
1371
- "internalType": "address",
1372
- "name": "borrower",
1373
- "type": "address"
1374
- }
1375
- ],
1376
- "name": "preRepayHook",
1377
- "outputs": [],
1378
- "stateMutability": "nonpayable",
1379
- "type": "function"
1380
- },
1381
- {
1382
- "inputs": [
1383
- {
1384
- "internalType": "address",
1385
- "name": "vTokenCollateral",
1386
- "type": "address"
1387
- },
1388
- {
1389
- "internalType": "address",
1390
- "name": "seizerContract",
1391
- "type": "address"
1392
- },
1393
- {
1394
- "internalType": "address",
1395
- "name": "liquidator",
1396
- "type": "address"
1397
- },
1398
- {
1399
- "internalType": "address",
1400
- "name": "borrower",
1401
- "type": "address"
1402
- }
1403
- ],
1404
- "name": "preSeizeHook",
1405
- "outputs": [],
1406
- "stateMutability": "nonpayable",
1407
- "type": "function"
1408
- },
1409
- {
1410
- "inputs": [
1411
- {
1412
- "internalType": "address",
1413
- "name": "vToken",
1414
- "type": "address"
1415
- },
1416
- {
1417
- "internalType": "address",
1418
- "name": "src",
1419
- "type": "address"
1420
- },
1421
- {
1422
- "internalType": "address",
1423
- "name": "dst",
1424
- "type": "address"
1425
- },
1426
- {
1427
- "internalType": "uint256",
1428
- "name": "transferTokens",
1429
- "type": "uint256"
1430
- }
1431
- ],
1432
- "name": "preTransferHook",
1433
- "outputs": [],
1434
- "stateMutability": "nonpayable",
1435
- "type": "function"
1436
- },
1437
- {
1438
- "inputs": [],
1439
- "name": "renounceOwnership",
1440
- "outputs": [],
1441
- "stateMutability": "nonpayable",
1442
- "type": "function"
1443
- },
1444
- {
1445
- "inputs": [
1446
- {
1447
- "internalType": "address",
1448
- "name": "accessControlManager_",
1449
- "type": "address"
1450
- }
1451
- ],
1452
- "name": "setAccessControlManager",
1453
- "outputs": [],
1454
- "stateMutability": "nonpayable",
1455
- "type": "function"
1456
- },
1457
- {
1458
- "inputs": [
1459
- {
1460
- "internalType": "contract VToken[]",
1461
- "name": "marketsList",
1462
- "type": "address[]"
1463
- },
1464
- {
1465
- "internalType": "enum ComptrollerStorage.Action[]",
1466
- "name": "actionsList",
1467
- "type": "uint8[]"
1468
- },
1469
- {
1470
- "internalType": "bool",
1471
- "name": "paused",
1472
- "type": "bool"
1473
- }
1474
- ],
1475
- "name": "setActionsPaused",
1476
- "outputs": [],
1477
- "stateMutability": "nonpayable",
1478
- "type": "function"
1479
- },
1480
- {
1481
- "inputs": [
1482
- {
1483
- "internalType": "uint256",
1484
- "name": "newCloseFactorMantissa",
1485
- "type": "uint256"
1486
- }
1487
- ],
1488
- "name": "setCloseFactor",
1489
- "outputs": [],
1490
- "stateMutability": "nonpayable",
1491
- "type": "function"
1492
- },
1493
- {
1494
- "inputs": [
1495
- {
1496
- "internalType": "contract VToken",
1497
- "name": "vToken",
1498
- "type": "address"
1499
- },
1500
- {
1501
- "internalType": "uint256",
1502
- "name": "newCollateralFactorMantissa",
1503
- "type": "uint256"
1504
- },
1505
- {
1506
- "internalType": "uint256",
1507
- "name": "newLiquidationThresholdMantissa",
1508
- "type": "uint256"
1509
- }
1510
- ],
1511
- "name": "setCollateralFactor",
1512
- "outputs": [],
1513
- "stateMutability": "nonpayable",
1514
- "type": "function"
1515
- },
1516
- {
1517
- "inputs": [
1518
- {
1519
- "internalType": "uint256",
1520
- "name": "newLiquidationIncentiveMantissa",
1521
- "type": "uint256"
1522
- }
1523
- ],
1524
- "name": "setLiquidationIncentive",
1525
- "outputs": [],
1526
- "stateMutability": "nonpayable",
1527
- "type": "function"
1528
- },
1529
- {
1530
- "inputs": [
1531
- {
1532
- "internalType": "contract VToken[]",
1533
- "name": "vTokens",
1534
- "type": "address[]"
1535
- },
1536
- {
1537
- "internalType": "uint256[]",
1538
- "name": "newBorrowCaps",
1539
- "type": "uint256[]"
1540
- }
1541
- ],
1542
- "name": "setMarketBorrowCaps",
1543
- "outputs": [],
1544
- "stateMutability": "nonpayable",
1545
- "type": "function"
1546
- },
1547
- {
1548
- "inputs": [
1549
- {
1550
- "internalType": "contract VToken[]",
1551
- "name": "vTokens",
1552
- "type": "address[]"
1553
- },
1554
- {
1555
- "internalType": "uint256[]",
1556
- "name": "newSupplyCaps",
1557
- "type": "uint256[]"
1558
- }
1559
- ],
1560
- "name": "setMarketSupplyCaps",
1561
- "outputs": [],
1562
- "stateMutability": "nonpayable",
1563
- "type": "function"
1564
- },
1565
- {
1566
- "inputs": [
1567
- {
1568
- "internalType": "uint256",
1569
- "name": "limit",
1570
- "type": "uint256"
1571
- }
1572
- ],
1573
- "name": "setMaxLoopsLimit",
1574
- "outputs": [],
1575
- "stateMutability": "nonpayable",
1576
- "type": "function"
1577
- },
1578
- {
1579
- "inputs": [
1580
- {
1581
- "internalType": "uint256",
1582
- "name": "newMinLiquidatableCollateral",
1583
- "type": "uint256"
1584
- }
1585
- ],
1586
- "name": "setMinLiquidatableCollateral",
1587
- "outputs": [],
1588
- "stateMutability": "nonpayable",
1589
- "type": "function"
1590
- },
1591
- {
1592
- "inputs": [
1593
- {
1594
- "internalType": "contract ResilientOracleInterface",
1595
- "name": "newOracle",
1596
- "type": "address"
1597
- }
1598
- ],
1599
- "name": "setPriceOracle",
1600
- "outputs": [],
1601
- "stateMutability": "nonpayable",
1602
- "type": "function"
1603
- },
1604
- {
1605
- "inputs": [
1606
- {
1607
- "internalType": "address",
1608
- "name": "",
1609
- "type": "address"
1610
- }
1611
- ],
1612
- "name": "supplyCaps",
1613
- "outputs": [
1614
- {
1615
- "internalType": "uint256",
1616
- "name": "",
1617
- "type": "uint256"
1618
- }
1619
- ],
1620
- "stateMutability": "view",
1621
- "type": "function"
1622
- },
1623
- {
1624
- "inputs": [
1625
- {
1626
- "internalType": "contract VToken",
1627
- "name": "vToken",
1628
- "type": "address"
1629
- }
1630
- ],
1631
- "name": "supportMarket",
1632
- "outputs": [],
1633
- "stateMutability": "nonpayable",
1634
- "type": "function"
1635
- },
1636
- {
1637
- "inputs": [
1638
- {
1639
- "internalType": "address",
1640
- "name": "newOwner",
1641
- "type": "address"
1642
- }
1643
- ],
1644
- "name": "transferOwnership",
1645
- "outputs": [],
1646
- "stateMutability": "nonpayable",
1647
- "type": "function"
1648
- },
1649
- {
1650
- "inputs": [
1651
- {
1652
- "internalType": "address",
1653
- "name": "account",
1654
- "type": "address"
1655
- }
1656
- ],
1657
- "name": "updatePrices",
1658
- "outputs": [],
1659
- "stateMutability": "nonpayable",
1660
- "type": "function"
1661
- }
1662
- ],
1663
- "bytecode": "0x60a06040523480156200001157600080fd5b5060405162005aa438038062005aa483398101604081905262000034916200014c565b6200003f816200005d565b6001600160a01b0381166080526200005662000088565b50620001d5565b6001600160a01b03811662000085576040516342bcdf7f60e11b815260040160405180910390fd5b50565b600054610100900460ff1615620000bc5760405162461bcd60e51b8152600401620000b39062000179565b60405180910390fd5b60005460ff9081161462000113576000805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498916200010a91620001c5565b60405180910390a15b565b60006001600160a01b0382165b92915050565b620001338162000115565b81146200008557600080fd5b8051620001228162000128565b600060208284031215620001635762000163600080fd5b60006200017184846200013f565b949350505050565b602080825281016200012281602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b60ff821681526020810162000122565b6080516158ac620001f86000396000818161067501526129ca01526158ac6000f3fe608060405234801561001057600080fd5b506004361061035c5760003560e01c80638e6470ea116101d3578063c488847b11610104578063e30c3978116100a2578063e89d51ad1161007c578063e89d51ad146107c3578063eade3eed146107d6578063ede4edd0146107e9578063f2fde38b146107fc57600080fd5b8063e30c397814610796578063e85a2960146107a7578063e8755446146107ba57600080fd5b8063da35a26f116100de578063da35a26f14610754578063db5c65de14610767578063dce1544914610770578063df71403b1461078357600080fd5b8063c488847b1461070d578063cab4f84c1461072e578063d136af441461074157600080fd5b8063afcff50f11610171578063b4a0bdf31161014b578063b4a0bdf3146106bf578063be26317e146106d0578063c0891ba9146106da578063c2998238146106ed57600080fd5b8063afcff50f14610670578063b0772d0b14610697578063b2068e841461069f57600080fd5b8063929fe9a1116101ad578063929fe9a11461061757806394543c151461062a578063a84310811461063d578063abfceffc1461065057600080fd5b80638e6470ea146105af5780638e8f294b146105c2578063921363951461060457600080fd5b8063528a174c116102ad57806361252fd11161024b57806379ba50971161022557806379ba5097146105675780637dc0d1d01461056f57806380d45a2d146105825780638da5cb5b1461059557600080fd5b806361252fd1146105375780636d0be88d1461054c578063715018a61461055f57600080fd5b806356aaee2d1161028757806356aaee2d146104eb5780635c21b6c5146104fe5780635cc4fdeb146105115780635ec88c791461052457600080fd5b8063528a174c146104a557806352d84d1e146104b8578063530e784f146104d857600080fd5b806324aaa2201161031a5780634a584432116102f45780634a584432146104475780634ada90af146104675780634e79238f14610470578063520b6c741461049257600080fd5b806324aaa220146103f55780632bce219c146104085780633d98a1e51461041b57600080fd5b80627e3dd21461036157806302c3bcbb1461037a5780630e32cb86146103a757806312348e96146103bc578063186db48f146103cf5780631bc41f28146103e2575b600080fd5b60015b60405161037191906144f0565b60405180910390f35b61039a61038836600461452e565b60d16020526000908152604090205481565b6040516103719190614555565b6103ba6103b536600461452e565b61080f565b005b6103ba6103ca366004614574565b610823565b6103ba6103dd3660046145e7565b6108ff565b6103ba6103f0366004614660565b610a56565b6103ba6104033660046146d7565b610e16565b6103ba6104163660046147b1565b610ee3565b61036461042936600461482c565b6001600160a01b0316600090815260cd602052604090205460ff1690565b61039a61045536600461452e565b60cf6020526000908152604090205481565b61039a60cb5481565b61048361047e36600461484d565b61124a565b604051610371939291906148a5565b6103ba6104a0366004614574565b61127b565b6104836104b336600461452e565b6112d5565b6104cb6104c6366004614574565b611300565b60405161037191906148e1565b6103ba6104e636600461482c565b61132a565b6103ba6104f936600461482c565b61138e565b6103ba61050c36600461452e565b611662565b6103ba61051f3660046148ef565b61177f565b61048361053236600461452e565b611991565b61053f6119a3565b604051610371919061499c565b6103ba61055a3660046149ad565b611a05565b6103ba611b7e565b6103ba611b92565b60c9546104cb906001600160a01b031681565b6103ba610590366004614574565b611bc7565b6033546001600160a01b03165b60405161037191906149fd565b6103ba6105bd366004614a0b565b611bd8565b6105f56105d036600461452e565b60cd6020526000908152604090208054600182015460029092015460ff909116919083565b60405161037193929190614a40565b6103ba61061236600461452e565b611cf1565b610364610625366004614a4e565b6120ab565b61036461063836600461482c565b6120df565b6103ba61064b366004614574565b612187565b61066361065e36600461452e565b612227565b6040516103719190614ac9565b6105a27f000000000000000000000000000000000000000000000000000000000000000081565b61066361229d565b6106b26106ad36600461452e565b6122fd565b6040516103719190614b63565b6097546001600160a01b03166104cb565b61039a6101075481565b6103ba6106e8366004614a0b565b612548565b6107006106fb366004614c7b565b6127c4565b6040516103719190614d00565b61072061071b366004614a0b565b61289a565b604051610371929190614d11565b6103ba61073c36600461482c565b6129c5565b6103ba61074f3660046145e7565b612bbd565b6103ba610762366004614d2c565b612d20565b61039a60d05481565b6104cb61077e366004614d5f565b612dfa565b6103ba610791366004614a0b565b612e32565b6065546001600160a01b03166105a2565b6103646107b5366004614daa565b6131e7565b61039a60ca5481565b6103ba6107d1366004614ddd565b61323e565b6103ba6107e4366004614e48565b613417565b61039a6107f736600461452e565b613641565b6103ba61080a36600461452e565b6138b3565b610817613924565b6108208161394e565b50565b6108616040518060400160405280601781526020017f736574436c6f7365466163746f722875696e74323536290000000000000000008152506139c7565b80670c7d713b49da000010156108925760405162461bcd60e51b815260040161088990614eb8565b60405180910390fd5b8066b1a2bc2ec5000011156108b95760405162461bcd60e51b815260040161088990614f13565b60ca8054908290556040517f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd9906108f39083908590614d11565b60405180910390a15050565b6109206040518060600160405280602881526020016157ac602891396139c7565b8281811580159061093057508082145b61094c5760405162461bcd60e51b815260040161088990614f4a565b61095582613a65565b60005b82811015610a4d5784848281811061097257610972614f5a565b9050602002013560cf600089898581811061098f5761098f614f5a565b90506020020160208101906109a4919061482c565b6001600160a01b031681526020810191909152604001600020558686828181106109d0576109d0614f5a565b90506020020160208101906109e5919061482c565b6001600160a01b03167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6868684818110610a2157610a21614f5a565b90506020020135604051610a359190614555565b60405180910390a2610a4681614f86565b9050610958565b50505050505050565b610a61846004613a90565b6001600160a01b038416600090815260cd60205260409020805460ff16610a9d5784604051635a9a1eb960e11b815260040161088991906149fd565b306001600160a01b03851603610b4557306001600160a01b0316856001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b199190614fab565b6001600160a01b031614610b4057604051630c73eb0560e01b815260040160405180910390fd5b610c74565b6001600160a01b038416600090815260cd602052604090205460ff16610b805783604051635a9a1eb960e11b815260040161088991906149fd565b836001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be29190614fab565b6001600160a01b0316856001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4d9190614fab565b6001600160a01b031614610c7457604051630c73eb0560e01b815260040160405180910390fd5b6001600160a01b038216600090815260038201602052604090205460ff16610cb3578482604051630cdfb2db60e31b8152600401610889929190614fcc565b60d35460005b81811015610a4d57600060d38281548110610cd657610cd6614f5a565b60009182526020909120015460405163051d1d4f60e11b81526001600160a01b0390911691508190630a3a3a9e90610d12908b906004016149fd565b600060405180830381600087803b158015610d2c57600080fd5b505af1158015610d40573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150610d72908b908990600401614fcc565b600060405180830381600087803b158015610d8c57600080fd5b505af1158015610da0573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150610dd2908b908a90600401614fcc565b600060405180830381600087803b158015610dec57600080fd5b505af1158015610e00573d6000803e3d6000fd5b505050505080610e0f90614f86565b9050610cb9565b610e376040518060600160405280602a8152602001615825602a91396139c7565b8382610e4b610e468284614fe7565b613a65565b60005b82811015610ed95760005b82811015610ec857610eb8898984818110610e7657610e76614f5a565b9050602002016020810190610e8b919061482c565b888884818110610e9d57610e9d614f5a565b9050602002016020810190610eb29190615006565b87613abc565b610ec181614f86565b9050610e59565b50610ed281614f86565b9050610e4e565b5050505050505050565b6000610ef184613b89613bbd565b905060d05481600001511115610f215760d0548151604051631a451c0f60e21b8152610889929190600401614d11565b6000610f41604051806020016040528060cb548152508360400151613c0c565b82519091508110610f69578151604051632c1f8ef160e21b8152610889918391600401614d11565b8160a00151600003610f8e5760405163095bf33360e01b815260040160405180910390fd5b82610f9d610e4660028361503d565b60005b818110156111665760cd6000878784818110610fbe57610fbe614f5a565b9050606002016020016020810190610fd6919061482c565b6001600160a01b0316815260208101919091526040016000205460ff1661103b5785858281811061100957611009614f5a565b9050606002016020016020810190611021919061482c565b604051635a9a1eb960e11b815260040161088991906149fd565b60cd600087878481811061105157611051614f5a565b611067926020606090920201908101915061482c565b6001600160a01b0316815260208101919091526040016000205460ff166110b05785858281811061109a5761109a614f5a565b611021926020606090920201908101915061482c565b368686838181106110c3576110c3614f5a565b90506060020190508060200160208101906110de919061482c565b6001600160a01b0316638bbdb6db338a6040850135611100602087018761482c565b60016040518663ffffffff1660e01b8152600401611122959493929190615051565b600060405180830381600087803b15801561113c57600080fd5b505af1158015611150573d6000803e3d6000fd5b50505050508061115f90614f86565b9050610fa0565b506001600160a01b038616600090815260cc60209081526040808320805482518185028101850190935280835291929091908301828280156111d157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111b3575b505083519394506000925050505b8181101561123f57600061120c8483815181106111fe576111fe614f5a565b60200260200101518b613c2c565b50915050801561122e5760405162461bcd60e51b8152600401610889906150e2565b5061123881614f86565b90506111df565b505050505050505050565b60008060008061125f88888888613cd3613d07565b608081015160a09091015160009a919950975095505050505050565b61129c6040518060600160405280602581526020016157d4602591396139c7565b60d08054908290556040517eb4f4f153ad7f1397564a8830fef092481e8cf6a2cd3ff04f96d10ba51200a5906108f39083908590614d11565b6000806000806112e785613cd3613bbd565b608081015160a090910151600097919650945092505050565b60ce818154811061131057600080fd5b6000918252602090912001546001600160a01b0316905081565b611332613924565b61133b81613f3c565b60c980546001600160a01b038381166001600160a01b03198316179092556040519116907fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e22906108f390839085906150f2565b611396613924565b6001600160a01b038116600090815260d4602052604090205460ff16156113cf5760405162461bcd60e51b815260040161088990615132565b60d35460005b8181101561150957600060d382815481106113f2576113f2614f5a565b600091825260209182902001546040805163f7c618c160e01b815290516001600160a01b039092169263f7c618c1926004808401938290030181865afa158015611440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114649190614fab565b9050836001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c89190614fab565b6001600160a01b0316816001600160a01b0316036114f85760405162461bcd60e51b81526004016108899061518a565b5061150281614f86565b90506113d5565b5060d35461151b610e4682600161519a565b60d3805460018082019092557f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a60180546001600160a01b0319166001600160a01b038616908117909155600090815260d460205260408120805460ff191690921790915560ce54905b8181101561162757846001600160a01b0316632a869a4d60ce83815481106115ae576115ae614f5a565b6000918252602090912001546040516001600160e01b031960e084901b1681526115e4916001600160a01b0316906004016149fd565b600060405180830381600087803b1580156115fe57600080fd5b505af1158015611612573d6000803e3d6000fd5b505050508061162090614f86565b9050611584565b506040516001600160a01b038516907f058fa9577dc29aece41d41c2d3bff2ed4e8d5085762198e8f7faab35039555da90600090a250505050565b6001600160a01b038116600090815260cc60209081526040808320805482518185028101850190935280835291929091908301828280156116cc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116ae575b5050835160c954949550936001600160a01b0316925060009150505b8281101561177857816001600160a01b03166396e85ced85838151811061171157611711614f5a565b60200260200101516040518263ffffffff1660e01b815260040161173591906149fd565b600060405180830381600087803b15801561174f57600080fd5b505af1158015611763573d6000803e3d6000fd5b505050508061177190614f86565b90506116e8565b5050505050565b6117a06040518060600160405280602c81526020016157f9602c91396139c7565b6001600160a01b038316600090815260cd60205260409020805460ff166117dc5783604051635a9a1eb960e11b815260040161088991906149fd565b670c7d713b49da0000831115611805576040516302f22cad60e61b815260040160405180910390fd5b670de0b6b3a764000082111561182d5760405162f9474b60e61b815260040160405180910390fd5b8282101561184d5760405162f9474b60e61b815260040160405180910390fd5b82158015906118ca575060c95460405163fc57d4df60e01b81526001600160a01b039091169063fc57d4df906118879087906004016149fd565b602060405180830381865afa1580156118a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c891906151bd565b155b156118e9578360405162e52a7d60e41b815260040161088991906149fd565b600181015483811461193957600182018490556040517f70483e6592cd5182d45ac970e05bc62cdcc90e9d8ef2c2dbe686cf383bcd7fc590611930908790849088906151de565b60405180910390a15b600282015483811461198957600283018490556040517f9e92c7d5fef69846094f3ddcadcb9402c6ba469c461368714f1cabd8ef48b59190611980908890849088906151de565b60405180910390a15b505050505050565b6000806000806112e785613b89613bbd565b606060d38054806020026020016040519081016040528092919081815260200182805480156119fb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119dd575b5050505050905090565b611a10846006613a90565b611a1b848483613f63565b60d35460005b8181101561198957600060d38281548110611a3e57611a3e614f5a565b60009182526020909120015460405163051d1d4f60e11b81526001600160a01b0390911691508190630a3a3a9e90611a7a908a906004016149fd565b600060405180830381600087803b158015611a9457600080fd5b505af1158015611aa8573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150611ada908a908a90600401614fcc565b600060405180830381600087803b158015611af457600080fd5b505af1158015611b08573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150611b3a908a908990600401614fcc565b600060405180830381600087803b158015611b5457600080fd5b505af1158015611b68573d6000803e3d6000fd5b505050505080611b7790614f86565b9050611a21565b611b86613924565b611b906000614008565b565b60655433906001600160a01b03168114611bbe5760405162461bcd60e51b815260040161088990615232565b61082081614008565b611bcf613924565b61082081614021565b611be3836001613a90565b611bee838383613f63565b60d35460005b8181101561177857600060d38281548110611c1157611c11614f5a565b60009182526020909120015460405163051d1d4f60e11b81526001600160a01b0390911691508190630a3a3a9e90611c4d9089906004016149fd565b600060405180830381600087803b158015611c6757600080fd5b505af1158015611c7b573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150611cad9089908990600401614fcc565b600060405180830381600087803b158015611cc757600080fd5b505af1158015611cdb573d6000803e3d6000fd5b505050505080611cea90614f86565b9050611bf4565b6001600160a01b038116600090815260cc6020908152604080832080548251818502810185019093528083529192909190830182828015611d5b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d3d575b5050835160c954949550933393506001600160a01b03169150600090505b83811015611e8757848181518110611d9357611d93614f5a565b60200260200101516001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfe91906151bd565b50816001600160a01b03166396e85ced868381518110611e2057611e20614f5a565b60200260200101516040518263ffffffff1660e01b8152600401611e4491906149fd565b600060405180830381600087803b158015611e5e57600080fd5b505af1158015611e72573d6000803e3d6000fd5b5050505080611e8090614f86565b9050611d79565b50506000611e9785613b89613bbd565b905060d05481600001511115611ec75760d0548151604051631a451c0f60e21b8152610889929190600401614d11565b8060a00151600003611eec5760405163095bf33360e01b815260040160405180910390fd5b60408051602080820183528351825282518082018452848401518152835191820190935260cb5481529091600091611f24919061407e565b90506000611f3283836140c6565b9050611f576040518060200160405280670de0b6b3a764000081525082519051111590565b15611f7b5781518351604051631a451c0f60e21b8152610889929190600401614d11565b60005b8681101561123f576000888281518110611f9a57611f9a614f5a565b60200260200101519050600080611fb1838d613c2c565b50915091506000611fc28683613c0c565b9050821561202d57836001600160a01b031663b2a02ff18b8f866040518463ffffffff1660e01b8152600401611ffa93929190615242565b600060405180830381600087803b15801561201457600080fd5b505af1158015612028573d6000803e3d6000fd5b505050505b811561209657836001600160a01b03166344fe6ffe8b8f846040518463ffffffff1660e01b815260040161206393929190615242565b600060405180830381600087803b15801561207d57600080fd5b505af1158015612091573d6000803e3d6000fd5b505050505b50505050806120a490614f86565b9050611f7e565b6001600160a01b03808216600090815260cd60209081526040808320938616835260039093019052205460ff165b92915050565b6001600160a01b038116600090815260cd602052604081206001015415801561210e575061210e8260026131e7565b80156120d95750670de0b6b3a7640000826001600160a01b031663173b99046040518163ffffffff1660e01b8152600401602060405180830381865afa15801561215c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218091906151bd565b1492915050565b670de0b6b3a76400008110156121af5760405162461bcd60e51b8152600401610889906152ab565b6121ed6040518060400160405280602081526020017f7365744c69717569646174696f6e496e63656e746976652875696e74323536298152506139c7565b60cb8054908290556040517faeba5a6c40a8ac138134bff1aaa65debf25971188a58804bad717f82f0ec1316906108f39083908590614d11565b6001600160a01b038116600090815260cc6020908152604080832080548251818502810185019093528083526060949383018282801561229057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612272575b5093979650505050505050565b606060ce8054806020026020016040519081016040528092919081815260200182805480156119fb576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116119dd575050505050905090565b60d3546060908067ffffffffffffffff81111561231c5761231c614b74565b60405190808252806020026020018201604052801561237a57816020015b612367604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b81526020019060019003908161233a5790505b50915060005b8181101561254157600060d3828154811061239d5761239d614f5a565b60009182526020808320909101546040805163f7c618c160e01b815290516001600160a01b039092169450849263f7c618c1926004808401938290030181865afa1580156123ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124139190614fab565b90506040518060600160405280826001600160a01b03168152602001836001600160a01b03166374c4c1cc896040518263ffffffff1660e01b815260040161245b91906149fd565b602060405180830381865afa158015612478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249c91906151bd565b8152602001836001600160a01b0316637c05a7c5896040518263ffffffff1660e01b81526004016124cd91906149fd565b602060405180830381865afa1580156124ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250e91906151bd565b81525085848151811061252357612523614f5a565b602002602001018190525050508061253a90614f86565b9050612380565b5050919050565b612553836000613a90565b6001600160a01b038316600090815260cd602052604090205460ff1661258e5782604051635a9a1eb960e11b815260040161088991906149fd565b6001600160a01b038316600090815260d1602052604090205460001981146126c1576000846001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261491906151bd565b905060006040518060200160405280876001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015612661573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268591906151bd565b905290506000612696828487614100565b9050838111156126bd57868460405163db33be3d60e01b81526004016108899291906152bb565b5050505b60d35460005b8181101561198957600060d382815481106126e4576126e4614f5a565b60009182526020909120015460405163051d1d4f60e11b81526001600160a01b0390911691508190630a3a3a9e90612720908a906004016149fd565b600060405180830381600087803b15801561273a57600080fd5b505af115801561274e573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150612780908a908a90600401614fcc565b600060405180830381600087803b15801561279a57600080fd5b505af11580156127ae573d6000803e3d6000fd5b5050505050806127bd90614f86565b90506126c7565b805133600090815260cc6020526040902054606091906127e7610e46838361519a565b60008267ffffffffffffffff81111561280257612802614b74565b60405190808252806020026020018201604052801561282b578160200160208202803683370190505b50905060005b8381101561289157600086828151811061284d5761284d614f5a565b60200260200101519050612861813361412a565b600083838151811061287557612875614f5a565b60209081029190910101525061288a81614f86565b9050612831565b50949350505050565b60008060006128a88661421d565b905060006128b58661421d565b90506000866001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291b91906151bd565b905060006129356040518060200160405280600081525090565b60408051602080820183526000808352835180830185529081528351808301855260cb548152845192830190945288825291926129719161407e565b925061299960405180602001604052808881525060405180602001604052808881525061407e565b91506129a583836140c6565b90506129b1818b613c0c565b60009d909c509a5050505050505050505050565b6129ee7f00000000000000000000000000000000000000000000000000000000000000006142b7565b6001600160a01b038116600090815260cd602052604090205460ff1615612a2a578060405163d005ce4760e01b815260040161088991906149fd565b806001600160a01b0316633d9ea3a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8c91906152d4565b612aa85760405162461bcd60e51b815260040161088990615329565b6001600160a01b038116600090815260cd60205260408120805460ff19166001908117825581018290556002810191909155612ae3826142e4565b60d35460005b81811015612b805760d38181548110612b0457612b04614f5a565b600091825260209091200154604051632a869a4d60e01b81526001600160a01b0390911690632a869a4d90612b3d9087906004016149fd565b600060405180830381600087803b158015612b5757600080fd5b505af1158015612b6b573d6000803e3d6000fd5b5050505080612b7990614f86565b9050612ae9565b507faf16ad15f9e29d5140e8e81a30a92a755aa8edff3d301053c84392b70c0d09a383604051612bb091906148e1565b60405180910390a1505050565b612bde60405180606001604052806028815260200161584f602891396139c7565b826000819003612c005760405162461bcd60e51b81526004016108899061536d565b808214612c1f5760405162461bcd60e51b81526004016108899061536d565b612c2881613a65565b60005b8181101561198957838382818110612c4557612c45614f5a565b9050602002013560d16000888885818110612c6257612c62614f5a565b9050602002016020810190612c77919061482c565b6001600160a01b03168152602081019190915260400160002055858582818110612ca357612ca3614f5a565b9050602002016020810190612cb8919061482c565b6001600160a01b03167f9e0ad9cee10bdf36b7fbd38910c0bdff0f275ace679b45b922381c2723d676f8858584818110612cf457612cf4614f5a565b90506020020135604051612d089190614555565b60405180910390a2612d1981614f86565b9050612c2b565b600054610100900460ff1615808015612d405750600054600160ff909116105b80612d5a5750303b158015612d5a575060005460ff166001145b612d765760405162461bcd60e51b8152600401610889906153c8565b6000805460ff191660011790558015612d99576000805461ff0019166101001790555b612da16143aa565b612daa826143d9565b612db383614021565b8015612df5576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890612bb0906001906153ec565b505050565b60cc6020528160005260406000208181548110612e1657600080fd5b6000918252602090912001546001600160a01b03169150829050565b612e3d836002613a90565b612e4682611662565b6001600160a01b038316600090815260cd602052604090205460ff16612e815782604051635a9a1eb960e11b815260040161088991906149fd565b6001600160a01b03808416600090815260cd60209081526040808320938616835260039093019052205460ff16612ee457612ebb836142b7565b33600090815260cc6020526040902054612eda90610e4690600161519a565b612ee4338361412a565b60c95460405163fc57d4df60e01b81526001600160a01b039091169063fc57d4df90612f149086906004016149fd565b602060405180830381865afa158015612f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5591906151bd565b600003612f76578260405162e52a7d60e41b815260040161088991906149fd565b6001600160a01b038316600090815260cf60205260409020546000198114613034576000846001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffc91906151bd565b9050600061300a848361519a565b905082811115613031578583604051632e649eed60e01b81526004016108899291906152bb565b50505b60006130468486600086613cd3613d07565b60a08101519091501561306c5760405163bb55fd2760e01b815260040160405180910390fd5b60006040518060200160405280876001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130db91906151bd565b905260d35490915060005b81811015610ed957600060d3828154811061310357613103614f5a565b600091825260209091200154604051632352607960e01b81526001600160a01b0390911691508190632352607990613141908c90889060040161540b565b600060405180830381600087803b15801561315b57600080fd5b505af115801561316f573d6000803e3d6000fd5b5050604051636a95ddef60e01b81526001600160a01b0384169250636a95ddef91506131a3908c908c908990600401615426565b600060405180830381600087803b1580156131bd57600080fd5b505af11580156131d1573d6000803e3d6000fd5b5050505050806131e090614f86565b90506130e6565b6001600160a01b038216600090815260d260205260408120818360088111156132125761321261544e565b60088111156132235761322361544e565b815260208101919091526040016000205460ff169392505050565b613249856005613a90565b61325283611662565b6001600160a01b038516600090815260cd602052604090205460ff1661328d5784604051635a9a1eb960e11b815260040161088991906149fd565b6001600160a01b038416600090815260cd602052604090205460ff166132c85783604051635a9a1eb960e11b815260040161088991906149fd565b6040516395dd919360e01b81526000906001600160a01b038716906395dd9193906132f79087906004016149fd565b602060405180830381865afa158015613314573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333891906151bd565b9050818061334a575061334a866120df565b1561337657808311156133705760405163e46c155960e01b815260040160405180910390fd5b50611778565b600061338485613b89613bbd565b905060d0548160000151116133b35760d0548151604051636e61bb0560e11b8152610889929190600401614d11565b8060a001516000036133d85760405163095bf33360e01b815260040160405180910390fd5b60006133f4604051806020016040528060ca5481525084613c0c565b905080851115610ed95760405163e46c155960e01b815260040160405180910390fd5b613422826003613a90565b60c9546040516396e85ced60e01b81526001600160a01b03909116906396e85ced906134529085906004016149fd565b600060405180830381600087803b15801561346c57600080fd5b505af1158015613480573d6000803e3d6000fd5b505050506001600160a01b038216600090815260cd602052604090205460ff166134bf5781604051635a9a1eb960e11b815260040161088991906149fd565b60d35460005b8181101561363b5760006040518060200160405280866001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061353c91906151bd565b8152509050600060d3838154811061355657613556614f5a565b600091825260209091200154604051632352607960e01b81526001600160a01b0390911691508190632352607990613594908990869060040161540b565b600060405180830381600087803b1580156135ae57600080fd5b505af11580156135c2573d6000803e3d6000fd5b5050604051636a95ddef60e01b81526001600160a01b0384169250636a95ddef91506135f690899089908790600401615426565b600060405180830381600087803b15801561361057600080fd5b505af1158015613624573d6000803e3d6000fd5b5050505050508061363490614f86565b90506134c5565b50505050565b600061364e826008613a90565b8160008061365c8333613c2c565b5091509150806000146136825760405163f8a5d66d60e01b815260040160405180910390fd5b61368d853384613f63565b6001600160a01b038316600090815260cd60209081526040808320338452600381019092529091205460ff166136c95750600095945050505050565b3360009081526003820160209081526040808320805460ff1916905560cc82528083208054825181850281018501909352808352919290919083018282801561373b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161371d575b5050835193945083925060009150505b8281101561379d57876001600160a01b031684828151811061376f5761376f614f5a565b60200260200101516001600160a01b03160361378d5780915061379d565b61379681614f86565b905061374b565b508181106137ad576137ad615464565b33600090815260cc60205260409020805481906137cc9060019061547a565b815481106137dc576137dc614f5a565b9060005260206000200160009054906101000a90046001600160a01b031681838154811061380c5761380c614f5a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508080548061384a5761384a615491565b600082815260208120820160001990810180546001600160a01b031916905590910190915560405133916001600160a01b038b16917fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d9190a35060009998505050505050505050565b6138bb613924565b606580546001600160a01b0383166001600160a01b031990911681179091556138ec6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b03163314611b905760405162461bcd60e51b8152600401610889906154d9565b6001600160a01b0381166139745760405162461bcd60e51b81526004016108899061552b565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906108f39083908590614fcc565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906139fa9033908690600401615599565b602060405180830381865afa158015613a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a3b91906152d4565b905080613a6157333083604051634a3fa29360e01b8152600401610889939291906155b9565b5050565b6101075481111561082057610107548160405163792bfb1b60e11b8152600401610889929190614d11565b613a9a82826131e7565b15613a615781816040516313b3ccb160e31b8152600401610889929190615614565b6001600160a01b038316600090815260cd602052604090205460ff16613af45760405162461bcd60e51b815260040161088990615674565b6001600160a01b038316600090815260d2602052604081208291846008811115613b2057613b2061544e565b6008811115613b3157613b3161544e565b815260200190815260200160002060006101000a81548160ff0219169083151502179055507f35007a986bcd36d2f73fc7f1b73762e12eadb4406dd163194950fd3b5a6a827d838383604051612bb093929190615684565b6040805160208082018352600091829052825180820184526001600160a01b0394909416825260cd90522060020154815290565b613bf66040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b613c0583600080600086613d07565b9392505050565b600080613c198484614400565b9050613c2481614428565b949350505050565b600080600080856001600160a01b031663c37f68e2866040518263ffffffff1660e01b8152600401613c5e91906149fd565b608060405180830381865afa158015613c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c9f91906156ac565b9196509450925090508015613ccb57858560405163015e34d960e61b8152600401610889929190614fcc565b509250925092565b6040805160208082018352600091829052825180820184526001600160a01b0394909416825260cd90522060010154815290565b613d406040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038616600090815260cc6020908152604080832080548251818502810185019093528083529192909190830182828015613daa57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613d8c575b505083519394506000925050505b81811015613ede576000838281518110613dd457613dd4614f5a565b602002602001015190506000806000613ded848e613c2c565b92509250925060006040518060200160405280613e098761421d565b81525090506000613e286040518060200160405280858152508361407e565b90506000613e42613e3c888e63ffffffff16565b8361407e565b9050613e5381878d60200151614100565b60208c01528a51613e679083908890614100565b8b5260408b0151613e7b9084908790614100565b8b60400181815250508e6001600160a01b0316876001600160a01b031603613ec657613eac818f8d60600151614100565b60608c01819052613ec09084908f90614100565b60608c01525b5050505050505080613ed790614f86565b9050613db8565b50600083606001518460400151613ef5919061519a565b90508084602001511115613f1c5760208401518190036080850152600060a0850152613f30565b600060808501526020840151810360a08501525b50505095945050505050565b6001600160a01b038116610820576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160a01b038316600090815260cd60205260409020805460ff16613f9f5783604051635a9a1eb960e11b815260040161088991906149fd565b6001600160a01b038316600090815260038201602052604090205460ff16613fc75750505050565b613fd083611662565b6000613fe28486856000613cd3613d07565b60a0810151909150156117785760405163bb55fd2760e01b815260040160405180910390fd5b606580546001600160a01b031916905561082081614440565b6101075481116140435760405162461bcd60e51b815260040161088990615743565b6101078054908290556040517fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa906108f39083908590614d11565b6040805160208101909152600081526040518060200160405280670de0b6b3a76400006140b386600001518660000151614492565b6140bd919061503d565b90529392505050565b60408051602081019091526000815260405180602001604052806140bd6140f98660000151670de0b6b3a7640000614492565b855161449e565b60008061410d8585614400565b905061412161411b82614428565b846144aa565b95945050505050565b614135826007613a90565b6001600160a01b038216600090815260cd60205260409020805460ff166141715782604051635a9a1eb960e11b815260040161088991906149fd565b6001600160a01b038216600090815260038201602052604090205460ff161561419957505050565b6001600160a01b0380831660008181526003840160209081526040808320805460ff1916600190811790915560cc835281842080549182018155845291832090910180549488166001600160a01b031990951685179055519192917f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a59190a3505050565b60c95460405163fc57d4df60e01b815260009182916001600160a01b039091169063fc57d4df906142529086906004016149fd565b602060405180830381865afa15801561426f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061429391906151bd565b9050806000036120d9578260405162e52a7d60e41b815260040161088991906149fd565b336001600160a01b03821614610820578033604051634e9383fb60e11b8152600401610889929190614fcc565b60ce5460005b8181101561435457826001600160a01b031660ce828154811061430f5761430f614f5a565b6000918252602090912001546001600160a01b031603614344578260405163d005ce4760e01b815260040161088991906149fd565b61434d81614f86565b90506142ea565b505060ce805460018101825560008290527fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12a0180546001600160a01b0319166001600160a01b03841617905554613a6181613a65565b600054610100900460ff166143d15760405162461bcd60e51b81526004016108899061579b565b611b906144b6565b600054610100900460ff166108175760405162461bcd60e51b81526004016108899061579b565b60408051602081019091526000815260405180602001604052806140bd856000015185614492565b80516000906120d990670de0b6b3a76400009061503d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000613c058284614fe7565b6000613c05828461503d565b6000613c05828461519a565b600054610100900460ff166144dd5760405162461bcd60e51b81526004016108899061579b565b611b9033614008565b8015155b82525050565b602081016120d982846144e6565b60006001600160a01b0382166120d9565b614518816144fe565b811461082057600080fd5b80356120d98161450f565b60006020828403121561454357614543600080fd5b6000613c248484614523565b806144ea565b602081016120d9828461454f565b80614518565b80356120d981614563565b60006020828403121561458957614589600080fd5b6000613c248484614569565b60008083601f8401126145aa576145aa600080fd5b50813567ffffffffffffffff8111156145c5576145c5600080fd5b6020830191508360208202830111156145e0576145e0600080fd5b9250929050565b6000806000806040858703121561460057614600600080fd5b843567ffffffffffffffff81111561461a5761461a600080fd5b61462687828801614595565b9450945050602085013567ffffffffffffffff81111561464857614648600080fd5b61465487828801614595565b95989497509550505050565b6000806000806080858703121561467957614679600080fd5b60006146858787614523565b945050602061469687828801614523565b93505060406146a787828801614523565b92505060606146b887828801614523565b91505092959194509250565b801515614518565b80356120d9816146c4565b6000806000806000606086880312156146f2576146f2600080fd5b853567ffffffffffffffff81111561470c5761470c600080fd5b61471888828901614595565b9550955050602086013567ffffffffffffffff81111561473a5761473a600080fd5b61474688828901614595565b93509350506040614759888289016146cc565b9150509295509295909350565b60008083601f84011261477b5761477b600080fd5b50813567ffffffffffffffff81111561479657614796600080fd5b6020830191508360608202830111156145e0576145e0600080fd5b6000806000604084860312156147c9576147c9600080fd5b60006147d58686614523565b935050602084013567ffffffffffffffff8111156147f5576147f5600080fd5b61480186828701614766565b92509250509250925092565b60006120d9826144fe565b6145188161480d565b80356120d981614818565b60006020828403121561484157614841600080fd5b6000613c248484614821565b6000806000806080858703121561486657614866600080fd5b60006148728787614523565b945050602061488387828801614523565b935050604061489487828801614569565b92505060606146b887828801614569565b606081016148b3828661454f565b6148c0602083018561454f565b613c24604083018461454f565b60006120d98261480d565b6144ea816148cd565b602081016120d982846148d8565b60008060006060848603121561490757614907600080fd5b60006149138686614821565b935050602061492486828701614569565b925050604061493586828701614569565b9150509250925092565b600061494b83836148d8565b505060200190565b600061495d825190565b80845260209384019383018060005b83811015614991578151614980888261493f565b97506020830192505060010161496c565b509495945050505050565b60208082528101613c058184614953565b600080600080608085870312156149c6576149c6600080fd5b60006149d28787614523565b94505060206149e387828801614523565b935050604061489487828801614523565b6144ea816144fe565b602081016120d982846149f4565b600080600060608486031215614a2357614a23600080fd5b6000614a2f8686614523565b935050602061492486828701614523565b606081016148b382866144e6565b60008060408385031215614a6457614a64600080fd5b6000614a708585614523565b9250506020614a8185828601614821565b9150509250929050565b6000614a95825190565b80845260209384019383018060005b83811015614991578151614ab8888261493f565b975060208301925050600101614aa4565b60208082528101613c058184614a8b565b80516060830190614aeb84826149f4565b506020820151614afe602085018261454f565b50604082015161363b604085018261454f565b6000614b1d8383614ada565b505060600190565b6000614b2f825190565b80845260209384019383018060005b83811015614991578151614b528882614b11565b975060208301925050600101614b3e565b60208082528101613c058184614b25565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715614bb057614bb0614b74565b6040525050565b6000614bc260405190565b9050614bce8282614b8a565b919050565b600067ffffffffffffffff821115614bed57614bed614b74565b5060209081020190565b6000614c0a614c0584614bd3565b614bb7565b83815290506020808201908402830185811115614c2957614c29600080fd5b835b81811015614c4d5780614c3e8882614523565b84525060209283019201614c2b565b5050509392505050565b600082601f830112614c6b57614c6b600080fd5b8135613c24848260208601614bf7565b600060208284031215614c9057614c90600080fd5b813567ffffffffffffffff811115614caa57614caa600080fd5b613c2484828501614c57565b600061494b838361454f565b6000614ccc825190565b80845260209384019383018060005b83811015614991578151614cef8882614cb6565b975060208301925050600101614cdb565b60208082528101613c058184614cc2565b60408101614d1f828561454f565b613c05602083018461454f565b60008060408385031215614d4257614d42600080fd5b6000614d4e8585614569565b9250506020614a8185828601614523565b60008060408385031215614d7557614d75600080fd5b6000614d818585614523565b9250506020614a8185828601614569565b6009811061082057600080fd5b80356120d981614d92565b60008060408385031215614dc057614dc0600080fd5b6000614dcc8585614523565b9250506020614a8185828601614d9f565b600080600080600060a08688031215614df857614df8600080fd5b6000614e048888614523565b9550506020614e1588828901614523565b9450506040614e2688828901614523565b9350506060614e3788828901614569565b9250506080614759888289016146cc565b60008060408385031215614e5e57614e5e600080fd5b6000614d4e8585614523565b602e81526000602082017f436c6f736520666163746f722067726561746572207468616e206d6178696d7581526d369031b637b9b2903330b1ba37b960911b602082015291505b5060400190565b602080825281016120d981614e6a565b602e81526000602082017f436c6f736520666163746f7220736d616c6c6572207468616e206d696e696d7581526d369031b637b9b2903330b1ba37b960911b60208201529150614eb1565b602080825281016120d981614ec8565b600d81526000602082016c1a5b9d985b1a59081a5b9c1d5d609a1b815291505b5060200190565b602080825281016120d981614f23565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198203614f9957614f99614f70565b5060010190565b80516120d981614818565b600060208284031215614fc057614fc0600080fd5b6000613c248484614fa0565b60408101614fda82856149f4565b613c0560208301846149f4565b600081600019048311821515161561500157615001614f70565b500290565b60006020828403121561501b5761501b600080fd5b6000613c248484614d9f565b634e487b7160e01b600052601260045260246000fd5b60008261504c5761504c615027565b500490565b60a0810161505f82886149f4565b61506c60208301876149f4565b615079604083018661454f565b61508660608301856148d8565b61509360808301846144e6565b9695505050505050565b602881526000602082017f4e6f6e7a65726f20626f72726f772062616c616e6365206166746572206c69718152673ab4b230ba34b7b760c11b60208201529150614eb1565b602080825281016120d98161509d565b6040810161510082856148d8565b613c0560208301846148d8565b600e81526000602082016d616c72656164792065786973747360901b81529150614f43565b602080825281016120d98161510d565b602b81526000602082017f6469737472696275746f7220616c72656164792065786973747320776974682081526a1d1a1a5cc81c995dd85c9960aa1b60208201529150614eb1565b602080825281016120d981615142565b600082198211156151ad576151ad614f70565b500190565b80516120d981614563565b6000602082840312156151d2576151d2600080fd5b6000613c2484846151b2565b606081016148b382866148d8565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b60208201529150614eb1565b602080825281016120d9816151ec565b6060810161525082866149f4565b6148c060208301856149f4565b603181526000602082017f6c69717569646174696f6e20696e63656e746976652073686f756c64206265208152700cee4cac2e8cae440e8d0c2dc4062ca627607b1b60208201529150614eb1565b602080825281016120d98161525d565b60408101614d1f82856149f4565b80516120d9816146c4565b6000602082840312156152e9576152e9600080fd5b6000613c2484846152c9565b601b81526000602082017f436f6d7074726f6c6c65723a20496e76616c69642076546f6b656e000000000081529150614f43565b602080825281016120d9816152f5565b601981526000602082017f696e76616c6964206e756d626572206f66206d61726b6574730000000000000081529150614f43565b602080825281016120d981615339565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150614eb1565b602080825281016120d98161537d565b600060ff82166120d9565b6144ea816153d8565b602081016120d982846153e3565b8051602083019061363b848261454f565b6040810161541982856149f4565b613c0560208301846153fa565b6060810161543482866149f4565b61544160208301856149f4565b613c2460408301846153fa565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60008282101561548c5761548c614f70565b500390565b634e487b7160e01b600052603160045260246000fd5b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000614f43565b602080825281016120d9816154a7565b602581526000602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150614eb1565b602080825281016120d9816154e9565b60005b8381101561555657818101518382015260200161553e565b8381111561363b5750506000910152565b6000615571825190565b80845260208401935061558881856020860161553b565b601f01601f19169290920192915050565b604081016155a782856149f4565b8181036020830152613c248184615567565b606081016155c782866149f4565b6155d460208301856149f4565b81810360408301526141218184615567565b600981106108205761082061544e565b80614bce816155e6565b60006120d9826155f6565b6144ea81615600565b6040810161562282856149f4565b613c05602083018461560b565b602881526000602082017f63616e6e6f742070617573652061206d61726b65742074686174206973206e6f8152671d081b1a5cdd195960c21b60208201529150614eb1565b602080825281016120d98161562f565b6060810161569282866148d8565b61569f602083018561560b565b613c2460408301846144e6565b600080600080608085870312156156c5576156c5600080fd5b60006156d187876151b2565b94505060206156e2878288016151b2565b93505060406156f3878288016151b2565b92505060606146b8878288016151b2565b602281526000602082017f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d8152611a5d60f21b60208201529150614eb1565b602080825281016120d981615704565b602b81526000602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150614eb1565b602080825281016120d98161575356fe7365744d61726b6574426f72726f774361707328616464726573735b5d2c75696e743235365b5d297365744d696e4c6971756964617461626c65436f6c6c61746572616c2875696e7432353629736574436f6c6c61746572616c466163746f7228616464726573732c75696e743235362c75696e7432353629736574416374696f6e7350617573656428616464726573735b5d2c75696e743235365b5d2c626f6f6c297365744d61726b6574537570706c794361707328616464726573735b5d2c75696e743235365b5d29a2646970667358221220b0454075e7922f4da9994bf1b93ba9c44c7cdfb99264b47dcf6fe5bab8a6899164736f6c634300080d0033",
1664
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061035c5760003560e01c80638e6470ea116101d3578063c488847b11610104578063e30c3978116100a2578063e89d51ad1161007c578063e89d51ad146107c3578063eade3eed146107d6578063ede4edd0146107e9578063f2fde38b146107fc57600080fd5b8063e30c397814610796578063e85a2960146107a7578063e8755446146107ba57600080fd5b8063da35a26f116100de578063da35a26f14610754578063db5c65de14610767578063dce1544914610770578063df71403b1461078357600080fd5b8063c488847b1461070d578063cab4f84c1461072e578063d136af441461074157600080fd5b8063afcff50f11610171578063b4a0bdf31161014b578063b4a0bdf3146106bf578063be26317e146106d0578063c0891ba9146106da578063c2998238146106ed57600080fd5b8063afcff50f14610670578063b0772d0b14610697578063b2068e841461069f57600080fd5b8063929fe9a1116101ad578063929fe9a11461061757806394543c151461062a578063a84310811461063d578063abfceffc1461065057600080fd5b80638e6470ea146105af5780638e8f294b146105c2578063921363951461060457600080fd5b8063528a174c116102ad57806361252fd11161024b57806379ba50971161022557806379ba5097146105675780637dc0d1d01461056f57806380d45a2d146105825780638da5cb5b1461059557600080fd5b806361252fd1146105375780636d0be88d1461054c578063715018a61461055f57600080fd5b806356aaee2d1161028757806356aaee2d146104eb5780635c21b6c5146104fe5780635cc4fdeb146105115780635ec88c791461052457600080fd5b8063528a174c146104a557806352d84d1e146104b8578063530e784f146104d857600080fd5b806324aaa2201161031a5780634a584432116102f45780634a584432146104475780634ada90af146104675780634e79238f14610470578063520b6c741461049257600080fd5b806324aaa220146103f55780632bce219c146104085780633d98a1e51461041b57600080fd5b80627e3dd21461036157806302c3bcbb1461037a5780630e32cb86146103a757806312348e96146103bc578063186db48f146103cf5780631bc41f28146103e2575b600080fd5b60015b60405161037191906144f0565b60405180910390f35b61039a61038836600461452e565b60d16020526000908152604090205481565b6040516103719190614555565b6103ba6103b536600461452e565b61080f565b005b6103ba6103ca366004614574565b610823565b6103ba6103dd3660046145e7565b6108ff565b6103ba6103f0366004614660565b610a56565b6103ba6104033660046146d7565b610e16565b6103ba6104163660046147b1565b610ee3565b61036461042936600461482c565b6001600160a01b0316600090815260cd602052604090205460ff1690565b61039a61045536600461452e565b60cf6020526000908152604090205481565b61039a60cb5481565b61048361047e36600461484d565b61124a565b604051610371939291906148a5565b6103ba6104a0366004614574565b61127b565b6104836104b336600461452e565b6112d5565b6104cb6104c6366004614574565b611300565b60405161037191906148e1565b6103ba6104e636600461482c565b61132a565b6103ba6104f936600461482c565b61138e565b6103ba61050c36600461452e565b611662565b6103ba61051f3660046148ef565b61177f565b61048361053236600461452e565b611991565b61053f6119a3565b604051610371919061499c565b6103ba61055a3660046149ad565b611a05565b6103ba611b7e565b6103ba611b92565b60c9546104cb906001600160a01b031681565b6103ba610590366004614574565b611bc7565b6033546001600160a01b03165b60405161037191906149fd565b6103ba6105bd366004614a0b565b611bd8565b6105f56105d036600461452e565b60cd6020526000908152604090208054600182015460029092015460ff909116919083565b60405161037193929190614a40565b6103ba61061236600461452e565b611cf1565b610364610625366004614a4e565b6120ab565b61036461063836600461482c565b6120df565b6103ba61064b366004614574565b612187565b61066361065e36600461452e565b612227565b6040516103719190614ac9565b6105a27f000000000000000000000000000000000000000000000000000000000000000081565b61066361229d565b6106b26106ad36600461452e565b6122fd565b6040516103719190614b63565b6097546001600160a01b03166104cb565b61039a6101075481565b6103ba6106e8366004614a0b565b612548565b6107006106fb366004614c7b565b6127c4565b6040516103719190614d00565b61072061071b366004614a0b565b61289a565b604051610371929190614d11565b6103ba61073c36600461482c565b6129c5565b6103ba61074f3660046145e7565b612bbd565b6103ba610762366004614d2c565b612d20565b61039a60d05481565b6104cb61077e366004614d5f565b612dfa565b6103ba610791366004614a0b565b612e32565b6065546001600160a01b03166105a2565b6103646107b5366004614daa565b6131e7565b61039a60ca5481565b6103ba6107d1366004614ddd565b61323e565b6103ba6107e4366004614e48565b613417565b61039a6107f736600461452e565b613641565b6103ba61080a36600461452e565b6138b3565b610817613924565b6108208161394e565b50565b6108616040518060400160405280601781526020017f736574436c6f7365466163746f722875696e74323536290000000000000000008152506139c7565b80670c7d713b49da000010156108925760405162461bcd60e51b815260040161088990614eb8565b60405180910390fd5b8066b1a2bc2ec5000011156108b95760405162461bcd60e51b815260040161088990614f13565b60ca8054908290556040517f3b9670cf975d26958e754b57098eaa2ac914d8d2a31b83257997b9f346110fd9906108f39083908590614d11565b60405180910390a15050565b6109206040518060600160405280602881526020016157ac602891396139c7565b8281811580159061093057508082145b61094c5760405162461bcd60e51b815260040161088990614f4a565b61095582613a65565b60005b82811015610a4d5784848281811061097257610972614f5a565b9050602002013560cf600089898581811061098f5761098f614f5a565b90506020020160208101906109a4919061482c565b6001600160a01b031681526020810191909152604001600020558686828181106109d0576109d0614f5a565b90506020020160208101906109e5919061482c565b6001600160a01b03167f6f1951b2aad10f3fc81b86d91105b413a5b3f847a34bbc5ce1904201b14438f6868684818110610a2157610a21614f5a565b90506020020135604051610a359190614555565b60405180910390a2610a4681614f86565b9050610958565b50505050505050565b610a61846004613a90565b6001600160a01b038416600090815260cd60205260409020805460ff16610a9d5784604051635a9a1eb960e11b815260040161088991906149fd565b306001600160a01b03851603610b4557306001600160a01b0316856001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b199190614fab565b6001600160a01b031614610b4057604051630c73eb0560e01b815260040160405180910390fd5b610c74565b6001600160a01b038416600090815260cd602052604090205460ff16610b805783604051635a9a1eb960e11b815260040161088991906149fd565b836001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be29190614fab565b6001600160a01b0316856001600160a01b0316635fe3b5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4d9190614fab565b6001600160a01b031614610c7457604051630c73eb0560e01b815260040160405180910390fd5b6001600160a01b038216600090815260038201602052604090205460ff16610cb3578482604051630cdfb2db60e31b8152600401610889929190614fcc565b60d35460005b81811015610a4d57600060d38281548110610cd657610cd6614f5a565b60009182526020909120015460405163051d1d4f60e11b81526001600160a01b0390911691508190630a3a3a9e90610d12908b906004016149fd565b600060405180830381600087803b158015610d2c57600080fd5b505af1158015610d40573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150610d72908b908990600401614fcc565b600060405180830381600087803b158015610d8c57600080fd5b505af1158015610da0573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150610dd2908b908a90600401614fcc565b600060405180830381600087803b158015610dec57600080fd5b505af1158015610e00573d6000803e3d6000fd5b505050505080610e0f90614f86565b9050610cb9565b610e376040518060600160405280602a8152602001615825602a91396139c7565b8382610e4b610e468284614fe7565b613a65565b60005b82811015610ed95760005b82811015610ec857610eb8898984818110610e7657610e76614f5a565b9050602002016020810190610e8b919061482c565b888884818110610e9d57610e9d614f5a565b9050602002016020810190610eb29190615006565b87613abc565b610ec181614f86565b9050610e59565b50610ed281614f86565b9050610e4e565b5050505050505050565b6000610ef184613b89613bbd565b905060d05481600001511115610f215760d0548151604051631a451c0f60e21b8152610889929190600401614d11565b6000610f41604051806020016040528060cb548152508360400151613c0c565b82519091508110610f69578151604051632c1f8ef160e21b8152610889918391600401614d11565b8160a00151600003610f8e5760405163095bf33360e01b815260040160405180910390fd5b82610f9d610e4660028361503d565b60005b818110156111665760cd6000878784818110610fbe57610fbe614f5a565b9050606002016020016020810190610fd6919061482c565b6001600160a01b0316815260208101919091526040016000205460ff1661103b5785858281811061100957611009614f5a565b9050606002016020016020810190611021919061482c565b604051635a9a1eb960e11b815260040161088991906149fd565b60cd600087878481811061105157611051614f5a565b611067926020606090920201908101915061482c565b6001600160a01b0316815260208101919091526040016000205460ff166110b05785858281811061109a5761109a614f5a565b611021926020606090920201908101915061482c565b368686838181106110c3576110c3614f5a565b90506060020190508060200160208101906110de919061482c565b6001600160a01b0316638bbdb6db338a6040850135611100602087018761482c565b60016040518663ffffffff1660e01b8152600401611122959493929190615051565b600060405180830381600087803b15801561113c57600080fd5b505af1158015611150573d6000803e3d6000fd5b50505050508061115f90614f86565b9050610fa0565b506001600160a01b038616600090815260cc60209081526040808320805482518185028101850190935280835291929091908301828280156111d157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116111b3575b505083519394506000925050505b8181101561123f57600061120c8483815181106111fe576111fe614f5a565b60200260200101518b613c2c565b50915050801561122e5760405162461bcd60e51b8152600401610889906150e2565b5061123881614f86565b90506111df565b505050505050505050565b60008060008061125f88888888613cd3613d07565b608081015160a09091015160009a919950975095505050505050565b61129c6040518060600160405280602581526020016157d4602591396139c7565b60d08054908290556040517eb4f4f153ad7f1397564a8830fef092481e8cf6a2cd3ff04f96d10ba51200a5906108f39083908590614d11565b6000806000806112e785613cd3613bbd565b608081015160a090910151600097919650945092505050565b60ce818154811061131057600080fd5b6000918252602090912001546001600160a01b0316905081565b611332613924565b61133b81613f3c565b60c980546001600160a01b038381166001600160a01b03198316179092556040519116907fd52b2b9b7e9ee655fcb95d2e5b9e0c9f69e7ef2b8e9d2d0ea78402d576d22e22906108f390839085906150f2565b611396613924565b6001600160a01b038116600090815260d4602052604090205460ff16156113cf5760405162461bcd60e51b815260040161088990615132565b60d35460005b8181101561150957600060d382815481106113f2576113f2614f5a565b600091825260209182902001546040805163f7c618c160e01b815290516001600160a01b039092169263f7c618c1926004808401938290030181865afa158015611440573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114649190614fab565b9050836001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114c89190614fab565b6001600160a01b0316816001600160a01b0316036114f85760405162461bcd60e51b81526004016108899061518a565b5061150281614f86565b90506113d5565b5060d35461151b610e4682600161519a565b60d3805460018082019092557f915c3eb987b20e1af620c1403197bf687fb7f18513b3a73fde6e78c7072c41a60180546001600160a01b0319166001600160a01b038616908117909155600090815260d460205260408120805460ff191690921790915560ce54905b8181101561162757846001600160a01b0316632a869a4d60ce83815481106115ae576115ae614f5a565b6000918252602090912001546040516001600160e01b031960e084901b1681526115e4916001600160a01b0316906004016149fd565b600060405180830381600087803b1580156115fe57600080fd5b505af1158015611612573d6000803e3d6000fd5b505050508061162090614f86565b9050611584565b506040516001600160a01b038516907f058fa9577dc29aece41d41c2d3bff2ed4e8d5085762198e8f7faab35039555da90600090a250505050565b6001600160a01b038116600090815260cc60209081526040808320805482518185028101850190935280835291929091908301828280156116cc57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116ae575b5050835160c954949550936001600160a01b0316925060009150505b8281101561177857816001600160a01b03166396e85ced85838151811061171157611711614f5a565b60200260200101516040518263ffffffff1660e01b815260040161173591906149fd565b600060405180830381600087803b15801561174f57600080fd5b505af1158015611763573d6000803e3d6000fd5b505050508061177190614f86565b90506116e8565b5050505050565b6117a06040518060600160405280602c81526020016157f9602c91396139c7565b6001600160a01b038316600090815260cd60205260409020805460ff166117dc5783604051635a9a1eb960e11b815260040161088991906149fd565b670c7d713b49da0000831115611805576040516302f22cad60e61b815260040160405180910390fd5b670de0b6b3a764000082111561182d5760405162f9474b60e61b815260040160405180910390fd5b8282101561184d5760405162f9474b60e61b815260040160405180910390fd5b82158015906118ca575060c95460405163fc57d4df60e01b81526001600160a01b039091169063fc57d4df906118879087906004016149fd565b602060405180830381865afa1580156118a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c891906151bd565b155b156118e9578360405162e52a7d60e41b815260040161088991906149fd565b600181015483811461193957600182018490556040517f70483e6592cd5182d45ac970e05bc62cdcc90e9d8ef2c2dbe686cf383bcd7fc590611930908790849088906151de565b60405180910390a15b600282015483811461198957600283018490556040517f9e92c7d5fef69846094f3ddcadcb9402c6ba469c461368714f1cabd8ef48b59190611980908890849088906151de565b60405180910390a15b505050505050565b6000806000806112e785613b89613bbd565b606060d38054806020026020016040519081016040528092919081815260200182805480156119fb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116119dd575b5050505050905090565b611a10846006613a90565b611a1b848483613f63565b60d35460005b8181101561198957600060d38281548110611a3e57611a3e614f5a565b60009182526020909120015460405163051d1d4f60e11b81526001600160a01b0390911691508190630a3a3a9e90611a7a908a906004016149fd565b600060405180830381600087803b158015611a9457600080fd5b505af1158015611aa8573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150611ada908a908a90600401614fcc565b600060405180830381600087803b158015611af457600080fd5b505af1158015611b08573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150611b3a908a908990600401614fcc565b600060405180830381600087803b158015611b5457600080fd5b505af1158015611b68573d6000803e3d6000fd5b505050505080611b7790614f86565b9050611a21565b611b86613924565b611b906000614008565b565b60655433906001600160a01b03168114611bbe5760405162461bcd60e51b815260040161088990615232565b61082081614008565b611bcf613924565b61082081614021565b611be3836001613a90565b611bee838383613f63565b60d35460005b8181101561177857600060d38281548110611c1157611c11614f5a565b60009182526020909120015460405163051d1d4f60e11b81526001600160a01b0390911691508190630a3a3a9e90611c4d9089906004016149fd565b600060405180830381600087803b158015611c6757600080fd5b505af1158015611c7b573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150611cad9089908990600401614fcc565b600060405180830381600087803b158015611cc757600080fd5b505af1158015611cdb573d6000803e3d6000fd5b505050505080611cea90614f86565b9050611bf4565b6001600160a01b038116600090815260cc6020908152604080832080548251818502810185019093528083529192909190830182828015611d5b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d3d575b5050835160c954949550933393506001600160a01b03169150600090505b83811015611e8757848181518110611d9357611d93614f5a565b60200260200101516001600160a01b031663a6afed956040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611dda573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dfe91906151bd565b50816001600160a01b03166396e85ced868381518110611e2057611e20614f5a565b60200260200101516040518263ffffffff1660e01b8152600401611e4491906149fd565b600060405180830381600087803b158015611e5e57600080fd5b505af1158015611e72573d6000803e3d6000fd5b5050505080611e8090614f86565b9050611d79565b50506000611e9785613b89613bbd565b905060d05481600001511115611ec75760d0548151604051631a451c0f60e21b8152610889929190600401614d11565b8060a00151600003611eec5760405163095bf33360e01b815260040160405180910390fd5b60408051602080820183528351825282518082018452848401518152835191820190935260cb5481529091600091611f24919061407e565b90506000611f3283836140c6565b9050611f576040518060200160405280670de0b6b3a764000081525082519051111590565b15611f7b5781518351604051631a451c0f60e21b8152610889929190600401614d11565b60005b8681101561123f576000888281518110611f9a57611f9a614f5a565b60200260200101519050600080611fb1838d613c2c565b50915091506000611fc28683613c0c565b9050821561202d57836001600160a01b031663b2a02ff18b8f866040518463ffffffff1660e01b8152600401611ffa93929190615242565b600060405180830381600087803b15801561201457600080fd5b505af1158015612028573d6000803e3d6000fd5b505050505b811561209657836001600160a01b03166344fe6ffe8b8f846040518463ffffffff1660e01b815260040161206393929190615242565b600060405180830381600087803b15801561207d57600080fd5b505af1158015612091573d6000803e3d6000fd5b505050505b50505050806120a490614f86565b9050611f7e565b6001600160a01b03808216600090815260cd60209081526040808320938616835260039093019052205460ff165b92915050565b6001600160a01b038116600090815260cd602052604081206001015415801561210e575061210e8260026131e7565b80156120d95750670de0b6b3a7640000826001600160a01b031663173b99046040518163ffffffff1660e01b8152600401602060405180830381865afa15801561215c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218091906151bd565b1492915050565b670de0b6b3a76400008110156121af5760405162461bcd60e51b8152600401610889906152ab565b6121ed6040518060400160405280602081526020017f7365744c69717569646174696f6e496e63656e746976652875696e74323536298152506139c7565b60cb8054908290556040517faeba5a6c40a8ac138134bff1aaa65debf25971188a58804bad717f82f0ec1316906108f39083908590614d11565b6001600160a01b038116600090815260cc6020908152604080832080548251818502810185019093528083526060949383018282801561229057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612272575b5093979650505050505050565b606060ce8054806020026020016040519081016040528092919081815260200182805480156119fb576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116119dd575050505050905090565b60d3546060908067ffffffffffffffff81111561231c5761231c614b74565b60405190808252806020026020018201604052801561237a57816020015b612367604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b81526020019060019003908161233a5790505b50915060005b8181101561254157600060d3828154811061239d5761239d614f5a565b60009182526020808320909101546040805163f7c618c160e01b815290516001600160a01b039092169450849263f7c618c1926004808401938290030181865afa1580156123ef573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124139190614fab565b90506040518060600160405280826001600160a01b03168152602001836001600160a01b03166374c4c1cc896040518263ffffffff1660e01b815260040161245b91906149fd565b602060405180830381865afa158015612478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061249c91906151bd565b8152602001836001600160a01b0316637c05a7c5896040518263ffffffff1660e01b81526004016124cd91906149fd565b602060405180830381865afa1580156124ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061250e91906151bd565b81525085848151811061252357612523614f5a565b602002602001018190525050508061253a90614f86565b9050612380565b5050919050565b612553836000613a90565b6001600160a01b038316600090815260cd602052604090205460ff1661258e5782604051635a9a1eb960e11b815260040161088991906149fd565b6001600160a01b038316600090815260d1602052604090205460001981146126c1576000846001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261491906151bd565b905060006040518060200160405280876001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa158015612661573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061268591906151bd565b905290506000612696828487614100565b9050838111156126bd57868460405163db33be3d60e01b81526004016108899291906152bb565b5050505b60d35460005b8181101561198957600060d382815481106126e4576126e4614f5a565b60009182526020909120015460405163051d1d4f60e11b81526001600160a01b0390911691508190630a3a3a9e90612720908a906004016149fd565b600060405180830381600087803b15801561273a57600080fd5b505af115801561274e573d6000803e3d6000fd5b505060405163db7954fd60e01b81526001600160a01b038416925063db7954fd9150612780908a908a90600401614fcc565b600060405180830381600087803b15801561279a57600080fd5b505af11580156127ae573d6000803e3d6000fd5b5050505050806127bd90614f86565b90506126c7565b805133600090815260cc6020526040902054606091906127e7610e46838361519a565b60008267ffffffffffffffff81111561280257612802614b74565b60405190808252806020026020018201604052801561282b578160200160208202803683370190505b50905060005b8381101561289157600086828151811061284d5761284d614f5a565b60200260200101519050612861813361412a565b600083838151811061287557612875614f5a565b60209081029190910101525061288a81614f86565b9050612831565b50949350505050565b60008060006128a88661421d565b905060006128b58661421d565b90506000866001600160a01b031663182df0f56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291b91906151bd565b905060006129356040518060200160405280600081525090565b60408051602080820183526000808352835180830185529081528351808301855260cb548152845192830190945288825291926129719161407e565b925061299960405180602001604052808881525060405180602001604052808881525061407e565b91506129a583836140c6565b90506129b1818b613c0c565b60009d909c509a5050505050505050505050565b6129ee7f00000000000000000000000000000000000000000000000000000000000000006142b7565b6001600160a01b038116600090815260cd602052604090205460ff1615612a2a578060405163d005ce4760e01b815260040161088991906149fd565b806001600160a01b0316633d9ea3a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8c91906152d4565b612aa85760405162461bcd60e51b815260040161088990615329565b6001600160a01b038116600090815260cd60205260408120805460ff19166001908117825581018290556002810191909155612ae3826142e4565b60d35460005b81811015612b805760d38181548110612b0457612b04614f5a565b600091825260209091200154604051632a869a4d60e01b81526001600160a01b0390911690632a869a4d90612b3d9087906004016149fd565b600060405180830381600087803b158015612b5757600080fd5b505af1158015612b6b573d6000803e3d6000fd5b5050505080612b7990614f86565b9050612ae9565b507faf16ad15f9e29d5140e8e81a30a92a755aa8edff3d301053c84392b70c0d09a383604051612bb091906148e1565b60405180910390a1505050565b612bde60405180606001604052806028815260200161584f602891396139c7565b826000819003612c005760405162461bcd60e51b81526004016108899061536d565b808214612c1f5760405162461bcd60e51b81526004016108899061536d565b612c2881613a65565b60005b8181101561198957838382818110612c4557612c45614f5a565b9050602002013560d16000888885818110612c6257612c62614f5a565b9050602002016020810190612c77919061482c565b6001600160a01b03168152602081019190915260400160002055858582818110612ca357612ca3614f5a565b9050602002016020810190612cb8919061482c565b6001600160a01b03167f9e0ad9cee10bdf36b7fbd38910c0bdff0f275ace679b45b922381c2723d676f8858584818110612cf457612cf4614f5a565b90506020020135604051612d089190614555565b60405180910390a2612d1981614f86565b9050612c2b565b600054610100900460ff1615808015612d405750600054600160ff909116105b80612d5a5750303b158015612d5a575060005460ff166001145b612d765760405162461bcd60e51b8152600401610889906153c8565b6000805460ff191660011790558015612d99576000805461ff0019166101001790555b612da16143aa565b612daa826143d9565b612db383614021565b8015612df5576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890612bb0906001906153ec565b505050565b60cc6020528160005260406000208181548110612e1657600080fd5b6000918252602090912001546001600160a01b03169150829050565b612e3d836002613a90565b612e4682611662565b6001600160a01b038316600090815260cd602052604090205460ff16612e815782604051635a9a1eb960e11b815260040161088991906149fd565b6001600160a01b03808416600090815260cd60209081526040808320938616835260039093019052205460ff16612ee457612ebb836142b7565b33600090815260cc6020526040902054612eda90610e4690600161519a565b612ee4338361412a565b60c95460405163fc57d4df60e01b81526001600160a01b039091169063fc57d4df90612f149086906004016149fd565b602060405180830381865afa158015612f31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f5591906151bd565b600003612f76578260405162e52a7d60e41b815260040161088991906149fd565b6001600160a01b038316600090815260cf60205260409020546000198114613034576000846001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffc91906151bd565b9050600061300a848361519a565b905082811115613031578583604051632e649eed60e01b81526004016108899291906152bb565b50505b60006130468486600086613cd3613d07565b60a08101519091501561306c5760405163bb55fd2760e01b815260040160405180910390fd5b60006040518060200160405280876001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130db91906151bd565b905260d35490915060005b81811015610ed957600060d3828154811061310357613103614f5a565b600091825260209091200154604051632352607960e01b81526001600160a01b0390911691508190632352607990613141908c90889060040161540b565b600060405180830381600087803b15801561315b57600080fd5b505af115801561316f573d6000803e3d6000fd5b5050604051636a95ddef60e01b81526001600160a01b0384169250636a95ddef91506131a3908c908c908990600401615426565b600060405180830381600087803b1580156131bd57600080fd5b505af11580156131d1573d6000803e3d6000fd5b5050505050806131e090614f86565b90506130e6565b6001600160a01b038216600090815260d260205260408120818360088111156132125761321261544e565b60088111156132235761322361544e565b815260208101919091526040016000205460ff169392505050565b613249856005613a90565b61325283611662565b6001600160a01b038516600090815260cd602052604090205460ff1661328d5784604051635a9a1eb960e11b815260040161088991906149fd565b6001600160a01b038416600090815260cd602052604090205460ff166132c85783604051635a9a1eb960e11b815260040161088991906149fd565b6040516395dd919360e01b81526000906001600160a01b038716906395dd9193906132f79087906004016149fd565b602060405180830381865afa158015613314573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061333891906151bd565b9050818061334a575061334a866120df565b1561337657808311156133705760405163e46c155960e01b815260040160405180910390fd5b50611778565b600061338485613b89613bbd565b905060d0548160000151116133b35760d0548151604051636e61bb0560e11b8152610889929190600401614d11565b8060a001516000036133d85760405163095bf33360e01b815260040160405180910390fd5b60006133f4604051806020016040528060ca5481525084613c0c565b905080851115610ed95760405163e46c155960e01b815260040160405180910390fd5b613422826003613a90565b60c9546040516396e85ced60e01b81526001600160a01b03909116906396e85ced906134529085906004016149fd565b600060405180830381600087803b15801561346c57600080fd5b505af1158015613480573d6000803e3d6000fd5b505050506001600160a01b038216600090815260cd602052604090205460ff166134bf5781604051635a9a1eb960e11b815260040161088991906149fd565b60d35460005b8181101561363b5760006040518060200160405280866001600160a01b031663aa5af0fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061353c91906151bd565b8152509050600060d3838154811061355657613556614f5a565b600091825260209091200154604051632352607960e01b81526001600160a01b0390911691508190632352607990613594908990869060040161540b565b600060405180830381600087803b1580156135ae57600080fd5b505af11580156135c2573d6000803e3d6000fd5b5050604051636a95ddef60e01b81526001600160a01b0384169250636a95ddef91506135f690899089908790600401615426565b600060405180830381600087803b15801561361057600080fd5b505af1158015613624573d6000803e3d6000fd5b5050505050508061363490614f86565b90506134c5565b50505050565b600061364e826008613a90565b8160008061365c8333613c2c565b5091509150806000146136825760405163f8a5d66d60e01b815260040160405180910390fd5b61368d853384613f63565b6001600160a01b038316600090815260cd60209081526040808320338452600381019092529091205460ff166136c95750600095945050505050565b3360009081526003820160209081526040808320805460ff1916905560cc82528083208054825181850281018501909352808352919290919083018282801561373b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161371d575b5050835193945083925060009150505b8281101561379d57876001600160a01b031684828151811061376f5761376f614f5a565b60200260200101516001600160a01b03160361378d5780915061379d565b61379681614f86565b905061374b565b508181106137ad576137ad615464565b33600090815260cc60205260409020805481906137cc9060019061547a565b815481106137dc576137dc614f5a565b9060005260206000200160009054906101000a90046001600160a01b031681838154811061380c5761380c614f5a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508080548061384a5761384a615491565b600082815260208120820160001990810180546001600160a01b031916905590910190915560405133916001600160a01b038b16917fe699a64c18b07ac5b7301aa273f36a2287239eb9501d81950672794afba29a0d9190a35060009998505050505050505050565b6138bb613924565b606580546001600160a01b0383166001600160a01b031990911681179091556138ec6033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6033546001600160a01b03163314611b905760405162461bcd60e51b8152600401610889906154d9565b6001600160a01b0381166139745760405162461bcd60e51b81526004016108899061552b565b609780546001600160a01b038381166001600160a01b03198316179092556040519116907f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa0906108f39083908590614fcc565b6097546040516318c5e8ab60e01b81526000916001600160a01b0316906318c5e8ab906139fa9033908690600401615599565b602060405180830381865afa158015613a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a3b91906152d4565b905080613a6157333083604051634a3fa29360e01b8152600401610889939291906155b9565b5050565b6101075481111561082057610107548160405163792bfb1b60e11b8152600401610889929190614d11565b613a9a82826131e7565b15613a615781816040516313b3ccb160e31b8152600401610889929190615614565b6001600160a01b038316600090815260cd602052604090205460ff16613af45760405162461bcd60e51b815260040161088990615674565b6001600160a01b038316600090815260d2602052604081208291846008811115613b2057613b2061544e565b6008811115613b3157613b3161544e565b815260200190815260200160002060006101000a81548160ff0219169083151502179055507f35007a986bcd36d2f73fc7f1b73762e12eadb4406dd163194950fd3b5a6a827d838383604051612bb093929190615684565b6040805160208082018352600091829052825180820184526001600160a01b0394909416825260cd90522060020154815290565b613bf66040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b613c0583600080600086613d07565b9392505050565b600080613c198484614400565b9050613c2481614428565b949350505050565b600080600080856001600160a01b031663c37f68e2866040518263ffffffff1660e01b8152600401613c5e91906149fd565b608060405180830381865afa158015613c7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c9f91906156ac565b9196509450925090508015613ccb57858560405163015e34d960e61b8152600401610889929190614fcc565b509250925092565b6040805160208082018352600091829052825180820184526001600160a01b0394909416825260cd90522060010154815290565b613d406040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038616600090815260cc6020908152604080832080548251818502810185019093528083529192909190830182828015613daa57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613d8c575b505083519394506000925050505b81811015613ede576000838281518110613dd457613dd4614f5a565b602002602001015190506000806000613ded848e613c2c565b92509250925060006040518060200160405280613e098761421d565b81525090506000613e286040518060200160405280858152508361407e565b90506000613e42613e3c888e63ffffffff16565b8361407e565b9050613e5381878d60200151614100565b60208c01528a51613e679083908890614100565b8b5260408b0151613e7b9084908790614100565b8b60400181815250508e6001600160a01b0316876001600160a01b031603613ec657613eac818f8d60600151614100565b60608c01819052613ec09084908f90614100565b60608c01525b5050505050505080613ed790614f86565b9050613db8565b50600083606001518460400151613ef5919061519a565b90508084602001511115613f1c5760208401518190036080850152600060a0850152613f30565b600060808501526020840151810360a08501525b50505095945050505050565b6001600160a01b038116610820576040516342bcdf7f60e11b815260040160405180910390fd5b6001600160a01b038316600090815260cd60205260409020805460ff16613f9f5783604051635a9a1eb960e11b815260040161088991906149fd565b6001600160a01b038316600090815260038201602052604090205460ff16613fc75750505050565b613fd083611662565b6000613fe28486856000613cd3613d07565b60a0810151909150156117785760405163bb55fd2760e01b815260040160405180910390fd5b606580546001600160a01b031916905561082081614440565b6101075481116140435760405162461bcd60e51b815260040161088990615743565b6101078054908290556040517fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa906108f39083908590614d11565b6040805160208101909152600081526040518060200160405280670de0b6b3a76400006140b386600001518660000151614492565b6140bd919061503d565b90529392505050565b60408051602081019091526000815260405180602001604052806140bd6140f98660000151670de0b6b3a7640000614492565b855161449e565b60008061410d8585614400565b905061412161411b82614428565b846144aa565b95945050505050565b614135826007613a90565b6001600160a01b038216600090815260cd60205260409020805460ff166141715782604051635a9a1eb960e11b815260040161088991906149fd565b6001600160a01b038216600090815260038201602052604090205460ff161561419957505050565b6001600160a01b0380831660008181526003840160209081526040808320805460ff1916600190811790915560cc835281842080549182018155845291832090910180549488166001600160a01b031990951685179055519192917f3ab23ab0d51cccc0c3085aec51f99228625aa1a922b3a8ca89a26b0f2027a1a59190a3505050565b60c95460405163fc57d4df60e01b815260009182916001600160a01b039091169063fc57d4df906142529086906004016149fd565b602060405180830381865afa15801561426f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061429391906151bd565b9050806000036120d9578260405162e52a7d60e41b815260040161088991906149fd565b336001600160a01b03821614610820578033604051634e9383fb60e11b8152600401610889929190614fcc565b60ce5460005b8181101561435457826001600160a01b031660ce828154811061430f5761430f614f5a565b6000918252602090912001546001600160a01b031603614344578260405163d005ce4760e01b815260040161088991906149fd565b61434d81614f86565b90506142ea565b505060ce805460018101825560008290527fd36cd1c74ef8d7326d8021b776c18fb5a5724b7f7bc93c2f42e43e10ef27d12a0180546001600160a01b0319166001600160a01b03841617905554613a6181613a65565b600054610100900460ff166143d15760405162461bcd60e51b81526004016108899061579b565b611b906144b6565b600054610100900460ff166108175760405162461bcd60e51b81526004016108899061579b565b60408051602081019091526000815260405180602001604052806140bd856000015185614492565b80516000906120d990670de0b6b3a76400009061503d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000613c058284614fe7565b6000613c05828461503d565b6000613c05828461519a565b600054610100900460ff166144dd5760405162461bcd60e51b81526004016108899061579b565b611b9033614008565b8015155b82525050565b602081016120d982846144e6565b60006001600160a01b0382166120d9565b614518816144fe565b811461082057600080fd5b80356120d98161450f565b60006020828403121561454357614543600080fd5b6000613c248484614523565b806144ea565b602081016120d9828461454f565b80614518565b80356120d981614563565b60006020828403121561458957614589600080fd5b6000613c248484614569565b60008083601f8401126145aa576145aa600080fd5b50813567ffffffffffffffff8111156145c5576145c5600080fd5b6020830191508360208202830111156145e0576145e0600080fd5b9250929050565b6000806000806040858703121561460057614600600080fd5b843567ffffffffffffffff81111561461a5761461a600080fd5b61462687828801614595565b9450945050602085013567ffffffffffffffff81111561464857614648600080fd5b61465487828801614595565b95989497509550505050565b6000806000806080858703121561467957614679600080fd5b60006146858787614523565b945050602061469687828801614523565b93505060406146a787828801614523565b92505060606146b887828801614523565b91505092959194509250565b801515614518565b80356120d9816146c4565b6000806000806000606086880312156146f2576146f2600080fd5b853567ffffffffffffffff81111561470c5761470c600080fd5b61471888828901614595565b9550955050602086013567ffffffffffffffff81111561473a5761473a600080fd5b61474688828901614595565b93509350506040614759888289016146cc565b9150509295509295909350565b60008083601f84011261477b5761477b600080fd5b50813567ffffffffffffffff81111561479657614796600080fd5b6020830191508360608202830111156145e0576145e0600080fd5b6000806000604084860312156147c9576147c9600080fd5b60006147d58686614523565b935050602084013567ffffffffffffffff8111156147f5576147f5600080fd5b61480186828701614766565b92509250509250925092565b60006120d9826144fe565b6145188161480d565b80356120d981614818565b60006020828403121561484157614841600080fd5b6000613c248484614821565b6000806000806080858703121561486657614866600080fd5b60006148728787614523565b945050602061488387828801614523565b935050604061489487828801614569565b92505060606146b887828801614569565b606081016148b3828661454f565b6148c0602083018561454f565b613c24604083018461454f565b60006120d98261480d565b6144ea816148cd565b602081016120d982846148d8565b60008060006060848603121561490757614907600080fd5b60006149138686614821565b935050602061492486828701614569565b925050604061493586828701614569565b9150509250925092565b600061494b83836148d8565b505060200190565b600061495d825190565b80845260209384019383018060005b83811015614991578151614980888261493f565b97506020830192505060010161496c565b509495945050505050565b60208082528101613c058184614953565b600080600080608085870312156149c6576149c6600080fd5b60006149d28787614523565b94505060206149e387828801614523565b935050604061489487828801614523565b6144ea816144fe565b602081016120d982846149f4565b600080600060608486031215614a2357614a23600080fd5b6000614a2f8686614523565b935050602061492486828701614523565b606081016148b382866144e6565b60008060408385031215614a6457614a64600080fd5b6000614a708585614523565b9250506020614a8185828601614821565b9150509250929050565b6000614a95825190565b80845260209384019383018060005b83811015614991578151614ab8888261493f565b975060208301925050600101614aa4565b60208082528101613c058184614a8b565b80516060830190614aeb84826149f4565b506020820151614afe602085018261454f565b50604082015161363b604085018261454f565b6000614b1d8383614ada565b505060600190565b6000614b2f825190565b80845260209384019383018060005b83811015614991578151614b528882614b11565b975060208301925050600101614b3e565b60208082528101613c058184614b25565b634e487b7160e01b600052604160045260246000fd5b601f19601f830116810181811067ffffffffffffffff82111715614bb057614bb0614b74565b6040525050565b6000614bc260405190565b9050614bce8282614b8a565b919050565b600067ffffffffffffffff821115614bed57614bed614b74565b5060209081020190565b6000614c0a614c0584614bd3565b614bb7565b83815290506020808201908402830185811115614c2957614c29600080fd5b835b81811015614c4d5780614c3e8882614523565b84525060209283019201614c2b565b5050509392505050565b600082601f830112614c6b57614c6b600080fd5b8135613c24848260208601614bf7565b600060208284031215614c9057614c90600080fd5b813567ffffffffffffffff811115614caa57614caa600080fd5b613c2484828501614c57565b600061494b838361454f565b6000614ccc825190565b80845260209384019383018060005b83811015614991578151614cef8882614cb6565b975060208301925050600101614cdb565b60208082528101613c058184614cc2565b60408101614d1f828561454f565b613c05602083018461454f565b60008060408385031215614d4257614d42600080fd5b6000614d4e8585614569565b9250506020614a8185828601614523565b60008060408385031215614d7557614d75600080fd5b6000614d818585614523565b9250506020614a8185828601614569565b6009811061082057600080fd5b80356120d981614d92565b60008060408385031215614dc057614dc0600080fd5b6000614dcc8585614523565b9250506020614a8185828601614d9f565b600080600080600060a08688031215614df857614df8600080fd5b6000614e048888614523565b9550506020614e1588828901614523565b9450506040614e2688828901614523565b9350506060614e3788828901614569565b9250506080614759888289016146cc565b60008060408385031215614e5e57614e5e600080fd5b6000614d4e8585614523565b602e81526000602082017f436c6f736520666163746f722067726561746572207468616e206d6178696d7581526d369031b637b9b2903330b1ba37b960911b602082015291505b5060400190565b602080825281016120d981614e6a565b602e81526000602082017f436c6f736520666163746f7220736d616c6c6572207468616e206d696e696d7581526d369031b637b9b2903330b1ba37b960911b60208201529150614eb1565b602080825281016120d981614ec8565b600d81526000602082016c1a5b9d985b1a59081a5b9c1d5d609a1b815291505b5060200190565b602080825281016120d981614f23565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198203614f9957614f99614f70565b5060010190565b80516120d981614818565b600060208284031215614fc057614fc0600080fd5b6000613c248484614fa0565b60408101614fda82856149f4565b613c0560208301846149f4565b600081600019048311821515161561500157615001614f70565b500290565b60006020828403121561501b5761501b600080fd5b6000613c248484614d9f565b634e487b7160e01b600052601260045260246000fd5b60008261504c5761504c615027565b500490565b60a0810161505f82886149f4565b61506c60208301876149f4565b615079604083018661454f565b61508660608301856148d8565b61509360808301846144e6565b9695505050505050565b602881526000602082017f4e6f6e7a65726f20626f72726f772062616c616e6365206166746572206c69718152673ab4b230ba34b7b760c11b60208201529150614eb1565b602080825281016120d98161509d565b6040810161510082856148d8565b613c0560208301846148d8565b600e81526000602082016d616c72656164792065786973747360901b81529150614f43565b602080825281016120d98161510d565b602b81526000602082017f6469737472696275746f7220616c72656164792065786973747320776974682081526a1d1a1a5cc81c995dd85c9960aa1b60208201529150614eb1565b602080825281016120d981615142565b600082198211156151ad576151ad614f70565b500190565b80516120d981614563565b6000602082840312156151d2576151d2600080fd5b6000613c2484846151b2565b606081016148b382866148d8565b602981526000602082017f4f776e61626c6532537465703a2063616c6c6572206973206e6f7420746865208152683732bb9037bbb732b960b91b60208201529150614eb1565b602080825281016120d9816151ec565b6060810161525082866149f4565b6148c060208301856149f4565b603181526000602082017f6c69717569646174696f6e20696e63656e746976652073686f756c64206265208152700cee4cac2e8cae440e8d0c2dc4062ca627607b1b60208201529150614eb1565b602080825281016120d98161525d565b60408101614d1f82856149f4565b80516120d9816146c4565b6000602082840312156152e9576152e9600080fd5b6000613c2484846152c9565b601b81526000602082017f436f6d7074726f6c6c65723a20496e76616c69642076546f6b656e000000000081529150614f43565b602080825281016120d9816152f5565b601981526000602082017f696e76616c6964206e756d626572206f66206d61726b6574730000000000000081529150614f43565b602080825281016120d981615339565b602e81526000602082017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b60208201529150614eb1565b602080825281016120d98161537d565b600060ff82166120d9565b6144ea816153d8565b602081016120d982846153e3565b8051602083019061363b848261454f565b6040810161541982856149f4565b613c0560208301846153fa565b6060810161543482866149f4565b61544160208301856149f4565b613c2460408301846153fa565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60008282101561548c5761548c614f70565b500390565b634e487b7160e01b600052603160045260246000fd5b60208082527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657291019081526000614f43565b602080825281016120d9816154a7565b602581526000602082017f696e76616c696420616365737320636f6e74726f6c206d616e61676572206164815264647265737360d81b60208201529150614eb1565b602080825281016120d9816154e9565b60005b8381101561555657818101518382015260200161553e565b8381111561363b5750506000910152565b6000615571825190565b80845260208401935061558881856020860161553b565b601f01601f19169290920192915050565b604081016155a782856149f4565b8181036020830152613c248184615567565b606081016155c782866149f4565b6155d460208301856149f4565b81810360408301526141218184615567565b600981106108205761082061544e565b80614bce816155e6565b60006120d9826155f6565b6144ea81615600565b6040810161562282856149f4565b613c05602083018461560b565b602881526000602082017f63616e6e6f742070617573652061206d61726b65742074686174206973206e6f8152671d081b1a5cdd195960c21b60208201529150614eb1565b602080825281016120d98161562f565b6060810161569282866148d8565b61569f602083018561560b565b613c2460408301846144e6565b600080600080608085870312156156c5576156c5600080fd5b60006156d187876151b2565b94505060206156e2878288016151b2565b93505060406156f3878288016151b2565b92505060606146b8878288016151b2565b602281526000602082017f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d8152611a5d60f21b60208201529150614eb1565b602080825281016120d981615704565b602b81526000602082017f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206981526a6e697469616c697a696e6760a81b60208201529150614eb1565b602080825281016120d98161575356fe7365744d61726b6574426f72726f774361707328616464726573735b5d2c75696e743235365b5d297365744d696e4c6971756964617461626c65436f6c6c61746572616c2875696e7432353629736574436f6c6c61746572616c466163746f7228616464726573732c75696e743235362c75696e7432353629736574416374696f6e7350617573656428616464726573735b5d2c75696e743235365b5d2c626f6f6c297365744d61726b6574537570706c794361707328616464726573735b5d2c75696e743235365b5d29a2646970667358221220b0454075e7922f4da9994bf1b93ba9c44c7cdfb99264b47dcf6fe5bab8a6899164736f6c634300080d0033",
1665
- "linkReferences": {},
1666
- "deployedLinkReferences": {}
1667
- }