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

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