@raac/rpc 1.1.0-beta.4 → 1.1.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/dist/RPCLibrary.js +52 -21
  2. package/dist/artifacts/core/collectors/FeeCollector.sol/FeeCollector.json +83 -29
  3. package/dist/artifacts/core/minters/RAACMinter/RAACMinter.sol/RAACMinter.json +82 -31
  4. package/dist/artifacts/core/oracles/BaseVRFv2Consumer.sol/BaseVRFv2Consumer.json +114 -5
  5. package/dist/artifacts/core/oracles/RAACPrimeRateOracle.sol/RAACPrimeRateOracle.json +66 -4
  6. package/dist/artifacts/core/pools/LendingPool/ERC20AssetAdapter.sol/ERC20AssetAdapter.json +465 -0
  7. package/dist/artifacts/core/pools/LendingPool/ERC721AssetAdapter.sol/ERC721AssetAdapter.json +497 -0
  8. package/dist/artifacts/core/pools/LendingPool/LendingPool.sol/LendingPool.json +1065 -337
  9. package/dist/artifacts/core/pools/StabilityPool/StabilityPool.sol/StabilityPool.json +180 -99
  10. package/dist/artifacts/core/primitives/RAACHousePrices.sol/RAACHousePrices.json +39 -2
  11. package/dist/artifacts/core/tokens/DEToken.sol/DEToken.json +2 -29
  12. package/dist/artifacts/core/tokens/RAACNFT.sol/RAACNFT.json +158 -38
  13. package/dist/artifacts/core/tokens/RAACToken.sol/RAACToken.json +2 -2
  14. package/dist/artifacts/core/tokens/RToken.sol/RToken.json +2 -81
  15. package/dist/artifacts/core/tokens/veRAACToken.sol/veRAACToken.json +557 -223
  16. package/dist/artifacts/core/vaults/ERC20VaultAdapter.sol/ERC20VaultAdapter.json +354 -0
  17. package/dist/artifacts/core/vaults/ERC721VaultAdapter.sol/ERC721VaultAdapter.json +356 -0
  18. package/dist/artifacts/core/vaults/RWAVault.sol/RWAVault.json +1036 -0
  19. package/dist/artifacts/mocks/core/oracles/MockVRFCoordinatorV2.sol/MockVRFCoordinatorV2.json +622 -207
  20. package/dist/artifacts/mocks/core/tokens/crvUSDToken.sol/crvUSDToken.json +2 -2
  21. package/dist/artifacts/zeno/Auction.sol/Auction.json +104 -15
  22. package/dist/artifacts/zeno/AuctionFactory.sol/AuctionFactory.json +7 -2
  23. package/dist/artifacts/zeno/Zeno.sol/Zeno.json +108 -38
  24. package/dist/artifacts/zeno/ZenoFactory.sol/ZenoFactory.json +17 -2
  25. package/dist/configs/chains/17000.json +36 -0
  26. package/dist/configs/chains/8453.json +36 -0
  27. package/dist/pools/lendingPool/_helpers.js +29 -0
  28. package/dist/pools/lendingPool/adapters/erc20/getERC20AdapterBalance.js +20 -0
  29. package/dist/pools/lendingPool/adapters/erc20/getERC20AdapterInfo.js +32 -0
  30. package/dist/pools/lendingPool/adapters/erc721/getERC721AdapterDeposits.js +20 -0
  31. package/dist/pools/lendingPool/adapters/erc721/getERC721AdapterInfo.js +32 -0
  32. package/dist/pools/lendingPool/borrowFromLendingPool.js +2 -2
  33. package/dist/pools/lendingPool/borrowFromLendingPoolWithInsurance.js +4 -3
  34. package/dist/pools/lendingPool/calculateInsuranceFee.js +3 -2
  35. package/dist/pools/lendingPool/closeLiquidation.js +3 -2
  36. package/dist/pools/lendingPool/depositAssetToLendingPool.js +60 -0
  37. package/dist/pools/lendingPool/{getPendingReward.js → getAdapters.js} +10 -6
  38. package/dist/pools/lendingPool/getHealthFactor.js +2 -2
  39. package/dist/pools/lendingPool/getLendingPoolInfo.js +4 -13
  40. package/dist/pools/lendingPool/getParameters.js +33 -0
  41. package/dist/pools/lendingPool/getPositionDebt.js +3 -2
  42. package/dist/pools/lendingPool/getPositionScaledDebt.js +3 -2
  43. package/dist/pools/lendingPool/getPositionView.js +5 -2
  44. package/dist/pools/lendingPool/getPositionsScaledDebt.js +1 -0
  45. package/dist/pools/lendingPool/getUserCollateralValue.js +1 -0
  46. package/dist/pools/lendingPool/initializeLiquidation.js +2 -2
  47. package/dist/pools/lendingPool/repayToLendingPool.js +2 -2
  48. package/dist/pools/lendingPool/{withdrawNFTFromLendingPool.js → withdrawAssetFromLendingPool.js} +5 -5
  49. package/dist/pools/rwaVault/adapters/erc20/getERC20VaultAdapterAssetValue.js +21 -0
  50. package/dist/pools/rwaVault/adapters/erc20/getERC20VaultAdapterInfo.js +30 -0
  51. package/dist/pools/rwaVault/adapters/erc20/getERC20VaultAdapterTotalValue.js +20 -0
  52. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterAssetValue.js +21 -0
  53. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterDeposits.js +20 -0
  54. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterInfo.js +30 -0
  55. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterTotalValue.js +20 -0
  56. package/dist/pools/rwaVault/depositToRWAVault.js +27 -0
  57. package/dist/pools/rwaVault/getNextRandomNFT.js +25 -0
  58. package/dist/pools/rwaVault/getRWAVaultInfo.js +52 -0
  59. package/dist/pools/rwaVault/redeemNFTFromRWAVault.js +27 -0
  60. package/dist/pools/rwaVault/requestRandomSeed.js +27 -0
  61. package/dist/scripts/index.js +219 -152
  62. package/dist/types/RPCLibrary.d.ts +40 -19
  63. package/dist/types/pools/lendingPool/_helpers.d.ts +8 -0
  64. package/dist/types/pools/lendingPool/adapters/erc20/getERC20AdapterBalance.d.ts +4 -0
  65. package/dist/types/pools/lendingPool/adapters/erc20/getERC20AdapterInfo.d.ts +11 -0
  66. package/dist/types/pools/lendingPool/adapters/erc721/getERC721AdapterDeposits.d.ts +4 -0
  67. package/dist/types/pools/lendingPool/adapters/erc721/getERC721AdapterInfo.d.ts +11 -0
  68. package/dist/types/pools/lendingPool/borrowFromLendingPool.d.ts +2 -2
  69. package/dist/types/pools/lendingPool/borrowFromLendingPoolWithInsurance.d.ts +2 -2
  70. package/dist/types/pools/lendingPool/calculateInsuranceFee.d.ts +2 -2
  71. package/dist/types/pools/lendingPool/closeLiquidation.d.ts +2 -2
  72. package/dist/types/pools/lendingPool/depositAssetToLendingPool.d.ts +4 -0
  73. package/dist/types/pools/lendingPool/getAdapters.d.ts +8 -0
  74. package/dist/types/pools/lendingPool/getHealthFactor.d.ts +2 -2
  75. package/dist/types/pools/lendingPool/getLendingPoolInfo.d.ts +1 -3
  76. package/dist/types/pools/lendingPool/getParameters.d.ts +17 -0
  77. package/dist/types/pools/lendingPool/getPositionDebt.d.ts +2 -2
  78. package/dist/types/pools/lendingPool/getPositionScaledDebt.d.ts +2 -2
  79. package/dist/types/pools/lendingPool/getPositionView.d.ts +17 -14
  80. package/dist/types/pools/lendingPool/initializeLiquidation.d.ts +2 -2
  81. package/dist/types/pools/lendingPool/repayToLendingPool.d.ts +2 -2
  82. package/dist/types/pools/lendingPool/withdrawAssetFromLendingPool.d.ts +4 -0
  83. package/dist/types/pools/rwaVault/adapters/erc20/getERC20VaultAdapterAssetValue.d.ts +4 -0
  84. package/dist/types/pools/rwaVault/adapters/erc20/getERC20VaultAdapterInfo.d.ts +10 -0
  85. package/dist/types/pools/rwaVault/adapters/erc20/getERC20VaultAdapterTotalValue.d.ts +4 -0
  86. package/dist/types/pools/rwaVault/adapters/erc721/getERC721VaultAdapterAssetValue.d.ts +4 -0
  87. package/dist/types/pools/rwaVault/adapters/erc721/getERC721VaultAdapterDeposits.d.ts +4 -0
  88. package/dist/types/pools/rwaVault/adapters/erc721/getERC721VaultAdapterInfo.d.ts +10 -0
  89. package/dist/types/pools/rwaVault/adapters/erc721/getERC721VaultAdapterTotalValue.d.ts +4 -0
  90. package/dist/types/pools/rwaVault/depositToRWAVault.d.ts +4 -0
  91. package/dist/types/pools/rwaVault/getNextRandomNFT.d.ts +8 -0
  92. package/dist/types/pools/rwaVault/getRWAVaultInfo.d.ts +20 -0
  93. package/dist/types/pools/rwaVault/redeemNFTFromRWAVault.d.ts +4 -0
  94. package/dist/types/pools/rwaVault/requestRandomSeed.d.ts +4 -0
  95. package/dist/types/scripts/index.d.ts +0 -1
  96. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface.d.ts +103 -0
  97. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/shared/interfaces/IERC677Receiver.d.ts +37 -0
  98. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/shared/interfaces/LinkTokenInterface.d.ts +143 -0
  99. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/shared/interfaces/index.d.ts +3 -0
  100. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/dev/SubscriptionAPI.d.ts +529 -0
  101. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/dev/VRFConsumerBaseV2Plus.d.ts +109 -0
  102. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/dev/index.d.ts +6 -0
  103. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/dev/interfaces/IVRFCoordinatorV2Plus.d.ts +192 -0
  104. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/dev/interfaces/IVRFMigratableConsumerV2Plus.d.ts +45 -0
  105. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/dev/interfaces/IVRFSubscriptionV2Plus.d.ts +155 -0
  106. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/dev/interfaces/index.d.ts +3 -0
  107. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/dev/libraries/VRFV2PlusClient.d.ts +25 -0
  108. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/dev/libraries/index.d.ts +1 -0
  109. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/index.d.ts +4 -0
  110. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/mocks/VRFCoordinatorV2_5Mock.d.ts +731 -0
  111. package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/mocks/index.d.ts +1 -0
  112. package/dist/types/typechain-types/@openzeppelin/contracts/access/Ownable2Step.d.ts +77 -0
  113. package/dist/types/typechain-types/@openzeppelin/contracts/access/index.d.ts +1 -0
  114. package/dist/types/typechain-types/@openzeppelin/contracts/interfaces/IERC1363.d.ts +231 -0
  115. package/dist/types/typechain-types/@openzeppelin/contracts/interfaces/IERC2981.d.ts +49 -0
  116. package/dist/types/typechain-types/@openzeppelin/contracts/interfaces/index.d.ts +2 -0
  117. package/dist/types/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/index.d.ts +0 -1
  118. package/dist/types/typechain-types/@openzeppelin/contracts/utils/Errors.d.ts +20 -0
  119. package/dist/types/typechain-types/@openzeppelin/contracts/utils/cryptography/MerkleProof.d.ts +20 -0
  120. package/dist/types/typechain-types/@openzeppelin/contracts/utils/cryptography/index.d.ts +1 -0
  121. package/dist/types/typechain-types/@openzeppelin/contracts/utils/index.d.ts +1 -0
  122. package/dist/types/typechain-types/@openzeppelin/contracts/utils/math/index.d.ts +0 -1
  123. package/dist/types/typechain-types/contracts/core/collectors/FeeCollector.d.ts +30 -1
  124. package/dist/types/typechain-types/contracts/core/collectors/NFTRoyaltyFeeCollector.sol/IWETH10Minimal.d.ts +53 -0
  125. package/dist/types/typechain-types/contracts/core/collectors/NFTRoyaltyFeeCollector.sol/NFTRoyaltyFeeCollector.d.ts +115 -0
  126. package/dist/types/typechain-types/contracts/core/collectors/NFTRoyaltyFeeCollector.sol/index.d.ts +2 -0
  127. package/dist/types/typechain-types/contracts/core/collectors/Treasury.d.ts +15 -1
  128. package/dist/types/typechain-types/contracts/core/collectors/index.d.ts +2 -0
  129. package/dist/types/typechain-types/contracts/core/governance/gauges/BaseGauge.d.ts +616 -142
  130. package/dist/types/typechain-types/contracts/core/governance/gauges/GaugeController.d.ts +396 -108
  131. package/dist/types/typechain-types/contracts/core/governance/gauges/GaugeRewardsDistributor.d.ts +623 -0
  132. package/dist/types/typechain-types/contracts/core/governance/gauges/RAACGauge.d.ts +609 -155
  133. package/dist/types/typechain-types/contracts/core/governance/gauges/RWAGauge.d.ts +610 -156
  134. package/dist/types/typechain-types/contracts/core/governance/gauges/index.d.ts +1 -0
  135. package/dist/types/typechain-types/contracts/core/governance/index.d.ts +0 -2
  136. package/dist/types/typechain-types/contracts/core/governance/proposals/Governance.d.ts +45 -67
  137. package/dist/types/typechain-types/contracts/core/index.d.ts +4 -0
  138. package/dist/types/typechain-types/contracts/core/lockers/LLamaTemple.d.ts +721 -0
  139. package/dist/types/typechain-types/contracts/core/lockers/index.d.ts +1 -0
  140. package/dist/types/typechain-types/contracts/core/minters/RAACMinter/RAACMinter.d.ts +69 -12
  141. package/dist/types/typechain-types/contracts/core/oracles/BaseChainlinkFunctionsOracle.d.ts +22 -4
  142. package/dist/types/typechain-types/contracts/core/oracles/BaseVRFv2Consumer.d.ts +40 -2
  143. package/dist/types/typechain-types/contracts/core/oracles/RAACHousePriceOracle.d.ts +41 -8
  144. package/dist/types/typechain-types/contracts/core/oracles/RAACPrimeRateOracle.d.ts +39 -7
  145. package/dist/types/typechain-types/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/ERC20AssetAdapter.d.ts +232 -0
  146. package/dist/types/typechain-types/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/IERC20Adapter.d.ts +25 -0
  147. package/dist/types/typechain-types/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/IPriceOracle.d.ts +25 -0
  148. package/dist/types/typechain-types/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/index.d.ts +3 -0
  149. package/dist/types/typechain-types/contracts/core/pools/LendingPool/ERC721AssetAdapter.sol/ERC721AssetAdapter.d.ts +254 -0
  150. package/dist/types/typechain-types/contracts/core/pools/LendingPool/ERC721AssetAdapter.sol/IPriceOracle.d.ts +29 -0
  151. package/dist/types/typechain-types/contracts/core/pools/LendingPool/ERC721AssetAdapter.sol/index.d.ts +2 -0
  152. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LendingPool.d.ts +728 -205
  153. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LendingPoolStorage.d.ts +440 -0
  154. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LiquidationProxy.d.ts +538 -0
  155. package/dist/types/typechain-types/contracts/core/pools/LendingPool/VaultProxy.d.ts +485 -0
  156. package/dist/types/typechain-types/contracts/core/pools/LendingPool/index.d.ts +7 -0
  157. package/dist/types/typechain-types/contracts/core/pools/StabilityPool/LiquidationStrategyProxy.d.ts +158 -0
  158. package/dist/types/typechain-types/contracts/core/pools/StabilityPool/LiquidationSwap.d.ts +124 -0
  159. package/dist/types/typechain-types/contracts/core/pools/StabilityPool/StabilityPool.d.ts +135 -79
  160. package/dist/types/typechain-types/contracts/core/pools/StabilityPool/StabilityPoolStorage.d.ts +140 -0
  161. package/dist/types/typechain-types/contracts/core/pools/StabilityPool/index.d.ts +3 -1
  162. package/dist/types/typechain-types/contracts/core/primitives/ComplianceRegistry.d.ts +203 -0
  163. package/dist/types/typechain-types/contracts/core/primitives/RAACHousePrices.d.ts +23 -1
  164. package/dist/types/typechain-types/contracts/core/primitives/WithCompliance.d.ts +25 -0
  165. package/dist/types/typechain-types/contracts/core/primitives/index.d.ts +2 -0
  166. package/dist/types/typechain-types/contracts/core/tokens/DebtToken.d.ts +8 -8
  167. package/dist/types/typechain-types/contracts/core/tokens/RAACNFT.d.ts +94 -11
  168. package/dist/types/typechain-types/contracts/core/tokens/RToken.d.ts +1 -17
  169. package/dist/types/typechain-types/contracts/core/tokens/RWAIndexToken.d.ts +264 -0
  170. package/dist/types/typechain-types/contracts/core/tokens/VeRAACToken.d.ts +433 -172
  171. package/dist/types/typechain-types/contracts/core/tokens/index.d.ts +1 -1
  172. package/dist/types/typechain-types/contracts/core/vaults/ERC20VaultAdapter.sol/ERC20VaultAdapter.d.ts +174 -0
  173. package/dist/types/typechain-types/contracts/core/vaults/ERC20VaultAdapter.sol/IPriceOracle.d.ts +25 -0
  174. package/dist/types/typechain-types/contracts/core/vaults/ERC20VaultAdapter.sol/index.d.ts +2 -0
  175. package/dist/types/typechain-types/contracts/core/vaults/ERC721VaultAdapter.sol/ERC721VaultAdapter.d.ts +178 -0
  176. package/dist/types/typechain-types/contracts/core/vaults/ERC721VaultAdapter.sol/IPriceOracle.d.ts +29 -0
  177. package/dist/types/typechain-types/contracts/core/vaults/ERC721VaultAdapter.sol/index.d.ts +2 -0
  178. package/dist/types/typechain-types/contracts/core/vaults/RWAVault.d.ts +511 -0
  179. package/dist/types/typechain-types/contracts/core/vaults/index.d.ts +5 -0
  180. package/dist/types/typechain-types/contracts/interfaces/IComplianceRegistry.d.ts +63 -0
  181. package/dist/types/typechain-types/contracts/interfaces/INFTLiquidator.d.ts +190 -23
  182. package/dist/types/typechain-types/contracts/interfaces/INFTWhitelist.d.ts +75 -0
  183. package/dist/types/typechain-types/contracts/interfaces/core/collectors/IFeeCollector.d.ts +9 -0
  184. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IBaseGauge.d.ts +527 -0
  185. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IGaugeController.d.ts +222 -40
  186. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IGaugeRewardsDistributor.d.ts +351 -0
  187. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/index.d.ts +2 -1
  188. package/dist/types/typechain-types/contracts/interfaces/core/governance/index.d.ts +0 -1
  189. package/dist/types/typechain-types/contracts/interfaces/core/governance/proposals/IGovernance.d.ts +45 -67
  190. package/dist/types/typechain-types/contracts/interfaces/core/index.d.ts +2 -0
  191. package/dist/types/typechain-types/contracts/interfaces/core/lockers/ILLamaLocker.d.ts +332 -0
  192. package/dist/types/typechain-types/contracts/interfaces/core/lockers/ILLamaTemple.d.ts +302 -0
  193. package/dist/types/typechain-types/contracts/interfaces/core/lockers/index.d.ts +2 -0
  194. package/dist/types/typechain-types/contracts/interfaces/core/minters/RAACMinter/IRAACMinter.d.ts +30 -1
  195. package/dist/types/typechain-types/contracts/interfaces/core/minters/RAACMinter/IRAACMinterRewardsReceiver.d.ts +49 -0
  196. package/dist/types/typechain-types/contracts/interfaces/core/minters/RAACMinter/index.d.ts +1 -0
  197. package/dist/types/typechain-types/contracts/interfaces/core/oracles/IBaseVRFv2Consumer.d.ts +5 -1
  198. package/dist/types/typechain-types/contracts/interfaces/core/oracles/IRAACHousePrices.d.ts +31 -24
  199. package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/IAssetAdapter.d.ts +143 -0
  200. package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/IERC721Adapter.d.ts +51 -0
  201. package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/ILendingPool.d.ts +369 -150
  202. package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/ILendingPoolStorage.d.ts +102 -0
  203. package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/index.d.ts +3 -0
  204. package/dist/types/typechain-types/contracts/interfaces/core/pools/StabilityPool/ILiquidationSwap.d.ts +51 -0
  205. package/dist/types/typechain-types/contracts/interfaces/core/pools/StabilityPool/IStabilityPool.d.ts +19 -64
  206. package/dist/types/typechain-types/contracts/interfaces/core/pools/StabilityPool/IStabilityPoolStorage.d.ts +49 -0
  207. package/dist/types/typechain-types/contracts/interfaces/core/pools/StabilityPool/index.d.ts +2 -0
  208. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IDebtToken.d.ts +6 -6
  209. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IRAACNFT.d.ts +70 -7
  210. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IVaultToken.d.ts +197 -0
  211. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IveRAACToken.d.ts +295 -36
  212. package/dist/types/typechain-types/contracts/interfaces/core/tokens/index.d.ts +1 -0
  213. package/dist/types/typechain-types/contracts/interfaces/core/vaults/IBaseHybridVault.d.ts +208 -0
  214. package/dist/types/typechain-types/contracts/interfaces/core/vaults/IVaultAssetAdapter.d.ts +89 -0
  215. package/dist/types/typechain-types/contracts/interfaces/core/vaults/index.d.ts +2 -0
  216. package/dist/types/typechain-types/contracts/interfaces/curve/ICurveLiquidityGaugeV5.d.ts +357 -0
  217. package/dist/types/typechain-types/contracts/interfaces/curve/index.d.ts +1 -0
  218. package/dist/types/typechain-types/contracts/interfaces/index.d.ts +2 -4
  219. package/dist/types/typechain-types/contracts/interfaces/zeno/IAuction.d.ts +18 -3
  220. package/dist/types/typechain-types/contracts/interfaces/zeno/IZENO.d.ts +31 -1
  221. package/dist/types/typechain-types/contracts/libraries/governance/LockManager.d.ts +9 -2
  222. package/dist/types/typechain-types/contracts/libraries/governance/PowerCheckpoint.d.ts +34 -1
  223. package/dist/types/typechain-types/contracts/libraries/governance/index.d.ts +0 -3
  224. package/dist/types/typechain-types/contracts/libraries/math/TimeWeightedAverage.d.ts +1 -25
  225. package/dist/types/typechain-types/contracts/mocks/core/collectors/MockWETH.d.ts +225 -0
  226. package/dist/types/typechain-types/contracts/mocks/core/collectors/index.d.ts +1 -0
  227. package/dist/types/typechain-types/contracts/mocks/core/curve/CurveLiquidityGaugeV5Mock.sol/CurveLiquidityGaugeV5Mock.d.ts +56 -0
  228. package/dist/types/typechain-types/contracts/mocks/core/curve/CurveLiquidityGaugeV5Mock.sol/ILiquidityGauge.d.ts +35 -0
  229. package/dist/types/typechain-types/contracts/mocks/core/curve/CurveLiquidityGaugeV5Mock.sol/index.d.ts +2 -0
  230. package/dist/types/typechain-types/contracts/mocks/core/curve/index.d.ts +2 -0
  231. package/dist/types/typechain-types/contracts/mocks/core/governance/gauges/MockGaugeController.d.ts +2 -6
  232. package/dist/types/typechain-types/contracts/mocks/core/governance/gauges/index.d.ts +0 -1
  233. package/dist/types/typechain-types/contracts/mocks/core/index.d.ts +4 -0
  234. package/dist/types/typechain-types/contracts/mocks/core/lockers/LLamaLocker.sol/LlamaLocker.d.ts +394 -0
  235. package/dist/types/typechain-types/contracts/mocks/core/lockers/LLamaLocker.sol/index.d.ts +1 -0
  236. package/dist/types/typechain-types/contracts/mocks/core/lockers/index.d.ts +2 -0
  237. package/dist/types/typechain-types/contracts/mocks/core/oracles/MockERC20PriceOracle.sol/IPriceOracle.d.ts +25 -0
  238. package/dist/types/typechain-types/contracts/mocks/core/oracles/MockERC20PriceOracle.sol/MockERC20PriceOracle.d.ts +33 -0
  239. package/dist/types/typechain-types/contracts/mocks/core/oracles/MockERC20PriceOracle.sol/index.d.ts +2 -0
  240. package/dist/types/typechain-types/contracts/mocks/core/oracles/MockFunctionsRouter.sol/MockFunctionsRouter.d.ts +2 -2
  241. package/dist/types/typechain-types/contracts/mocks/core/oracles/MockVRFCoordinatorV2.d.ts +349 -148
  242. package/dist/types/typechain-types/contracts/mocks/core/oracles/TestRAACHousePriceOracle.d.ts +41 -8
  243. package/dist/types/typechain-types/contracts/mocks/core/oracles/TestRAACPrimeRateOracle.d.ts +39 -7
  244. package/dist/types/typechain-types/contracts/mocks/core/oracles/index.d.ts +2 -0
  245. package/dist/types/typechain-types/contracts/mocks/core/pools/MockLendingPoolDebtToken.d.ts +367 -140
  246. package/dist/types/typechain-types/contracts/mocks/core/tokens/MockFeeCollectorToken.d.ts +1 -5
  247. package/dist/types/typechain-types/contracts/mocks/core/tokens/MockToken.d.ts +1 -5
  248. package/dist/types/typechain-types/contracts/mocks/core/tokens/index.d.ts +0 -1
  249. package/dist/types/typechain-types/contracts/mocks/libraries/governance/BoostCalculatorMock.d.ts +68 -139
  250. package/dist/types/typechain-types/contracts/mocks/libraries/governance/LockManagerMock.d.ts +19 -9
  251. package/dist/types/typechain-types/contracts/mocks/libraries/governance/PowerCheckpointMock.d.ts +37 -18
  252. package/dist/types/typechain-types/contracts/mocks/libraries/governance/index.d.ts +0 -3
  253. package/dist/types/typechain-types/contracts/mocks/tests/index.d.ts +0 -2
  254. package/dist/types/typechain-types/contracts/zeno/Auction.d.ts +37 -8
  255. package/dist/types/typechain-types/contracts/zeno/ZENO.d.ts +62 -6
  256. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/functions/v1_0_0/libraries/FunctionsRequest__factory.d.ts +1 -1
  257. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwnerWithProposal__factory.d.ts +1 -1
  258. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner__factory.d.ts +1 -1
  259. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/shared/interfaces/AggregatorV3Interface__factory.d.ts +93 -0
  260. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/shared/interfaces/IERC677Receiver__factory.d.ts +25 -0
  261. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/shared/interfaces/LinkTokenInterface__factory.d.ts +191 -0
  262. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/shared/interfaces/index.d.ts +3 -0
  263. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/dev/SubscriptionAPI__factory.d.ts +663 -0
  264. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/dev/VRFConsumerBaseV2Plus__factory.d.ts +139 -0
  265. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/dev/index.d.ts +4 -0
  266. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/dev/interfaces/IVRFCoordinatorV2Plus__factory.d.ts +194 -0
  267. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/dev/interfaces/IVRFMigratableConsumerV2Plus__factory.d.ts +27 -0
  268. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/dev/interfaces/IVRFSubscriptionV2Plus__factory.d.ts +155 -0
  269. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/dev/interfaces/index.d.ts +3 -0
  270. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/dev/libraries/VRFV2PlusClient__factory.d.ts +32 -0
  271. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/dev/libraries/index.d.ts +1 -0
  272. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/index.d.ts +2 -0
  273. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/mocks/VRFCoordinatorV2_5Mock__factory.d.ts +944 -0
  274. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/mocks/index.d.ts +1 -0
  275. package/dist/types/typechain-types/factories/@openzeppelin/contracts/access/Ownable2Step__factory.d.ts +95 -0
  276. package/dist/types/typechain-types/factories/@openzeppelin/contracts/access/index.d.ts +1 -0
  277. package/dist/types/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1363__factory.d.ts +289 -0
  278. package/dist/types/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC2981__factory.d.ts +43 -0
  279. package/dist/types/typechain-types/factories/@openzeppelin/contracts/interfaces/index.d.ts +2 -0
  280. package/dist/types/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.d.ts +1 -1
  281. package/dist/types/typechain-types/factories/@openzeppelin/contracts/token/ERC721/extensions/index.d.ts +0 -1
  282. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.d.ts +1 -13
  283. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.d.ts +50 -0
  284. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.d.ts +1 -1
  285. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.d.ts +9 -1
  286. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.d.ts +1 -1
  287. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/MerkleProof__factory.d.ts +26 -0
  288. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.d.ts +1 -0
  289. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/index.d.ts +1 -0
  290. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.d.ts +1 -1
  291. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/math/index.d.ts +0 -1
  292. package/dist/types/typechain-types/factories/contracts/core/collectors/FeeCollector__factory.d.ts +65 -21
  293. package/dist/types/typechain-types/factories/contracts/core/collectors/NFTRoyaltyFeeCollector.sol/IWETH10Minimal__factory.d.ts +49 -0
  294. package/dist/types/typechain-types/factories/contracts/core/collectors/NFTRoyaltyFeeCollector.sol/NFTRoyaltyFeeCollector__factory.d.ts +177 -0
  295. package/dist/types/typechain-types/factories/contracts/core/collectors/NFTRoyaltyFeeCollector.sol/index.d.ts +2 -0
  296. package/dist/types/typechain-types/factories/contracts/core/collectors/Treasury__factory.d.ts +15 -1
  297. package/dist/types/typechain-types/factories/contracts/core/collectors/index.d.ts +1 -0
  298. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/BaseGauge__factory.d.ts +698 -144
  299. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeController__factory.d.ts +461 -137
  300. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeRewardsDistributor__factory.d.ts +848 -0
  301. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RAACGauge__factory.d.ts +686 -162
  302. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RWAGauge__factory.d.ts +689 -155
  303. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/index.d.ts +1 -0
  304. package/dist/types/typechain-types/factories/contracts/core/governance/index.d.ts +0 -1
  305. package/dist/types/typechain-types/factories/contracts/core/governance/proposals/Governance__factory.d.ts +42 -80
  306. package/dist/types/typechain-types/factories/contracts/core/governance/proposals/TimelockController__factory.d.ts +1 -1
  307. package/dist/types/typechain-types/factories/contracts/core/index.d.ts +2 -0
  308. package/dist/types/typechain-types/factories/contracts/core/lockers/LLamaTemple__factory.d.ts +1028 -0
  309. package/dist/types/typechain-types/factories/contracts/core/lockers/index.d.ts +1 -0
  310. package/dist/types/typechain-types/factories/contracts/core/minters/RAACMinter/RAACMinter__factory.d.ts +66 -25
  311. package/dist/types/typechain-types/factories/contracts/core/minters/RAACReleaseOrchestrator/RAACReleaseOrchestrator__factory.d.ts +5 -1
  312. package/dist/types/typechain-types/factories/contracts/core/oracles/BaseChainlinkFunctionsOracle__factory.d.ts +37 -1
  313. package/dist/types/typechain-types/factories/contracts/core/oracles/BaseVRFv2Consumer__factory.d.ts +90 -6
  314. package/dist/types/typechain-types/factories/contracts/core/oracles/RAACHousePriceOracle__factory.d.ts +64 -9
  315. package/dist/types/typechain-types/factories/contracts/core/oracles/RAACPrimeRateOracle__factory.d.ts +49 -3
  316. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/ERC20AssetAdapter__factory.d.ts +369 -0
  317. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/IERC20Adapter__factory.d.ts +21 -0
  318. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/IPriceOracle__factory.d.ts +17 -0
  319. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/index.d.ts +3 -0
  320. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/ERC721AssetAdapter.sol/ERC721AssetAdapter__factory.d.ts +393 -0
  321. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/ERC721AssetAdapter.sol/IPriceOracle__factory.d.ts +21 -0
  322. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/ERC721AssetAdapter.sol/index.d.ts +2 -0
  323. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LendingPoolStorage__factory.d.ts +578 -0
  324. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LendingPool__factory.d.ts +881 -306
  325. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LiquidationProxy__factory.d.ts +716 -0
  326. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/VaultProxy__factory.d.ts +636 -0
  327. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/index.d.ts +5 -0
  328. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/LiquidationStrategyProxy__factory.d.ts +281 -0
  329. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/LiquidationSwap__factory.d.ts +227 -0
  330. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/StabilityPoolStorage__factory.d.ts +255 -0
  331. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/StabilityPool__factory.d.ts +151 -85
  332. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/index.d.ts +3 -1
  333. package/dist/types/typechain-types/factories/contracts/core/primitives/ComplianceRegistry__factory.d.ts +276 -0
  334. package/dist/types/typechain-types/factories/contracts/core/primitives/RAACHousePrices__factory.d.ts +29 -1
  335. package/dist/types/typechain-types/factories/contracts/core/primitives/WithCompliance__factory.d.ts +17 -0
  336. package/dist/types/typechain-types/factories/contracts/core/primitives/index.d.ts +2 -0
  337. package/dist/types/typechain-types/factories/contracts/core/tokens/DEToken__factory.d.ts +1 -21
  338. package/dist/types/typechain-types/factories/contracts/core/tokens/DebtToken__factory.d.ts +8 -8
  339. package/dist/types/typechain-types/factories/contracts/core/tokens/LPToken__factory.d.ts +1 -1
  340. package/dist/types/typechain-types/factories/contracts/core/tokens/RAACNFT__factory.d.ts +124 -31
  341. package/dist/types/typechain-types/factories/contracts/core/tokens/RAACToken__factory.d.ts +1 -1
  342. package/dist/types/typechain-types/factories/contracts/core/tokens/RToken__factory.d.ts +1 -61
  343. package/dist/types/typechain-types/factories/contracts/core/tokens/RWAIndexToken__factory.d.ts +465 -0
  344. package/dist/types/typechain-types/factories/contracts/core/tokens/VeRAACToken__factory.d.ts +446 -186
  345. package/dist/types/typechain-types/factories/contracts/core/tokens/index.d.ts +1 -1
  346. package/dist/types/typechain-types/factories/contracts/core/vaults/ERC20VaultAdapter.sol/ERC20VaultAdapter__factory.d.ts +285 -0
  347. package/dist/types/typechain-types/factories/contracts/core/vaults/ERC20VaultAdapter.sol/IPriceOracle__factory.d.ts +17 -0
  348. package/dist/types/typechain-types/factories/contracts/core/vaults/ERC20VaultAdapter.sol/index.d.ts +2 -0
  349. package/dist/types/typechain-types/factories/contracts/core/vaults/ERC721VaultAdapter.sol/ERC721VaultAdapter__factory.d.ts +287 -0
  350. package/dist/types/typechain-types/factories/contracts/core/vaults/ERC721VaultAdapter.sol/IPriceOracle__factory.d.ts +21 -0
  351. package/dist/types/typechain-types/factories/contracts/core/vaults/ERC721VaultAdapter.sol/index.d.ts +2 -0
  352. package/dist/types/typechain-types/factories/contracts/core/vaults/RWAVault__factory.d.ts +808 -0
  353. package/dist/types/typechain-types/factories/contracts/core/vaults/index.d.ts +3 -0
  354. package/dist/types/typechain-types/factories/contracts/interfaces/IComplianceRegistry__factory.d.ts +67 -0
  355. package/dist/types/typechain-types/factories/contracts/interfaces/INFTLiquidator__factory.d.ts +213 -6
  356. package/dist/types/typechain-types/factories/contracts/interfaces/INFTWhitelist__factory.d.ts +77 -0
  357. package/dist/types/typechain-types/factories/contracts/interfaces/core/collectors/IFeeCollector__factory.d.ts +32 -0
  358. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IBaseGauge__factory.d.ts +643 -0
  359. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IGaugeController__factory.d.ts +239 -65
  360. package/dist/types/typechain-types/factories/{@openzeppelin/contracts/token/ERC721/extensions/ERC721Wrapper__factory.d.ts → contracts/interfaces/core/governance/gauges/IGaugeRewardsDistributor__factory.d.ts} +209 -201
  361. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/index.d.ts +2 -1
  362. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/index.d.ts +0 -1
  363. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/proposals/IGovernance__factory.d.ts +41 -79
  364. package/dist/types/typechain-types/factories/contracts/interfaces/core/index.d.ts +1 -0
  365. package/dist/types/typechain-types/factories/contracts/interfaces/core/lockers/ILLamaLocker__factory.d.ts +390 -0
  366. package/dist/types/typechain-types/factories/contracts/interfaces/core/lockers/ILLamaTemple__factory.d.ts +390 -0
  367. package/dist/types/typechain-types/factories/contracts/interfaces/core/lockers/index.d.ts +2 -0
  368. package/dist/types/typechain-types/factories/contracts/interfaces/core/minters/RAACMinter/IRAACMinterRewardsReceiver__factory.d.ts +35 -0
  369. package/dist/types/typechain-types/factories/contracts/interfaces/core/minters/RAACMinter/IRAACMinter__factory.d.ts +33 -0
  370. package/dist/types/typechain-types/factories/contracts/interfaces/core/minters/RAACMinter/index.d.ts +1 -0
  371. package/dist/types/typechain-types/factories/contracts/interfaces/core/minters/RAACReleaseOrchestrator/IReleaseOrchestrator__factory.d.ts +4 -0
  372. package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IBaseVRFv2Consumer__factory.d.ts +14 -0
  373. package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IRAACHousePrices__factory.d.ts +24 -29
  374. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/IAssetAdapter__factory.d.ts +189 -0
  375. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/IERC721Adapter__factory.d.ts +53 -0
  376. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/ILendingPoolStorage__factory.d.ts +183 -0
  377. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/ILendingPool__factory.d.ts +428 -143
  378. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/index.d.ts +3 -0
  379. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/StabilityPool/ILiquidationSwap__factory.d.ts +53 -0
  380. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/StabilityPool/IStabilityPoolStorage__factory.d.ts +56 -0
  381. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/StabilityPool/IStabilityPool__factory.d.ts +26 -75
  382. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/StabilityPool/index.d.ts +2 -0
  383. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IDebtToken__factory.d.ts +6 -6
  384. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IRAACNFT__factory.d.ts +79 -4
  385. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IVaultToken__factory.d.ts +223 -0
  386. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IveRAACToken__factory.d.ts +355 -29
  387. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/index.d.ts +1 -0
  388. package/dist/types/typechain-types/factories/contracts/interfaces/core/vaults/IBaseHybridVault__factory.d.ts +256 -0
  389. package/dist/types/typechain-types/factories/contracts/interfaces/core/vaults/IVaultAssetAdapter__factory.d.ts +119 -0
  390. package/dist/types/typechain-types/factories/contracts/interfaces/core/vaults/index.d.ts +2 -0
  391. package/dist/types/typechain-types/factories/contracts/interfaces/curve/ICurveLiquidityGaugeV5__factory.d.ts +503 -0
  392. package/dist/types/typechain-types/factories/contracts/interfaces/curve/index.d.ts +1 -0
  393. package/dist/types/typechain-types/factories/contracts/interfaces/index.d.ts +2 -4
  394. package/dist/types/typechain-types/factories/contracts/interfaces/zeno/IAuction__factory.d.ts +44 -1
  395. package/dist/types/typechain-types/factories/contracts/interfaces/zeno/IZENO__factory.d.ts +42 -0
  396. package/dist/types/typechain-types/factories/contracts/libraries/governance/BoostCalculator__factory.d.ts +1 -1
  397. package/dist/types/typechain-types/factories/contracts/libraries/governance/LockManager__factory.d.ts +10 -1
  398. package/dist/types/typechain-types/factories/contracts/libraries/governance/PowerCheckpoint__factory.d.ts +47 -1
  399. package/dist/types/typechain-types/factories/contracts/libraries/governance/index.d.ts +0 -3
  400. package/dist/types/typechain-types/factories/contracts/libraries/math/TimeWeightedAverage__factory.d.ts +1 -29
  401. package/dist/types/typechain-types/factories/contracts/libraries/pools/ReserveLibrary__factory.d.ts +1 -1
  402. package/dist/types/typechain-types/factories/contracts/libraries/utils/StringUtils__factory.d.ts +1 -1
  403. package/dist/types/typechain-types/factories/contracts/mocks/core/collectors/MockTreasury__factory.d.ts +1 -1
  404. package/dist/types/typechain-types/factories/contracts/mocks/core/collectors/MockWETH__factory.d.ts +353 -0
  405. package/dist/types/typechain-types/factories/contracts/mocks/core/collectors/index.d.ts +1 -0
  406. package/dist/types/typechain-types/factories/contracts/mocks/core/curve/CurveLiquidityGaugeV5Mock.sol/CurveLiquidityGaugeV5Mock__factory.d.ts +65 -0
  407. package/dist/types/typechain-types/factories/contracts/mocks/core/curve/CurveLiquidityGaugeV5Mock.sol/ILiquidityGauge__factory.d.ts +21 -0
  408. package/dist/types/typechain-types/factories/contracts/mocks/core/curve/CurveLiquidityGaugeV5Mock.sol/index.d.ts +2 -0
  409. package/dist/types/typechain-types/factories/contracts/mocks/core/curve/index.d.ts +1 -0
  410. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/gauges/MockGaugeController__factory.d.ts +1 -15
  411. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/gauges/index.d.ts +0 -1
  412. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/proposals/TimelockTestTarget__factory.d.ts +1 -1
  413. package/dist/types/typechain-types/factories/contracts/mocks/core/index.d.ts +2 -0
  414. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LLamaLocker.sol/LlamaLocker__factory.d.ts +591 -0
  415. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LLamaLocker.sol/index.d.ts +1 -0
  416. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/index.d.ts +1 -0
  417. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockERC20PriceOracle.sol/IPriceOracle__factory.d.ts +17 -0
  418. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockERC20PriceOracle.sol/MockERC20PriceOracle__factory.d.ts +42 -0
  419. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockERC20PriceOracle.sol/index.d.ts +2 -0
  420. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockFunctionsRouter.sol/MockFunctionsRouter__factory.d.ts +2 -2
  421. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockOracle__factory.d.ts +1 -1
  422. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockVRFCoordinatorV2__factory.d.ts +490 -166
  423. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/TestRAACHousePriceOracle__factory.d.ts +67 -12
  424. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/TestRAACPrimeRateOracle__factory.d.ts +49 -3
  425. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/index.d.ts +1 -0
  426. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPoolCollector__factory.d.ts +1 -21
  427. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPoolDebtToken__factory.d.ts +427 -132
  428. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPool__factory.d.ts +1 -1
  429. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLiquidityPool__factory.d.ts +1 -21
  430. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockPool__factory.d.ts +1 -1
  431. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockStabilityPool__factory.d.ts +1 -1
  432. package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockContractWithConfig__factory.d.ts +1 -1
  433. package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockContract__factory.d.ts +1 -1
  434. package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockDistributableContract__factory.d.ts +1 -21
  435. package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/RAACHousePricesMock__factory.d.ts +1 -1
  436. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/CrvUSDToken__factory.d.ts +1 -1
  437. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/ERC20Mock__factory.d.ts +8 -4
  438. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/ERC721Mock__factory.d.ts +1 -1
  439. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockCollectableUnderlying__factory.d.ts +1 -21
  440. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockFeeCollectorToken__factory.d.ts +1 -15
  441. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockToken__factory.d.ts +1 -15
  442. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockUSDC__factory.d.ts +1 -1
  443. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/RAACMockERC20__factory.d.ts +1 -1
  444. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/index.d.ts +0 -1
  445. package/dist/types/typechain-types/factories/contracts/mocks/core/vaults/MockVault__factory.d.ts +1 -21
  446. package/dist/types/typechain-types/factories/contracts/mocks/libraries/MockStringUtils__factory.d.ts +1 -1
  447. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/BoostCalculatorMock__factory.d.ts +53 -122
  448. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/LockManagerMock__factory.d.ts +21 -12
  449. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/PowerCheckpointMock__factory.d.ts +39 -14
  450. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/index.d.ts +0 -3
  451. package/dist/types/typechain-types/factories/contracts/mocks/libraries/math/TimeWeightedAverageMock__factory.d.ts +1 -1
  452. package/dist/types/typechain-types/factories/contracts/mocks/libraries/math/WadRayMathMock__factory.d.ts +1 -1
  453. package/dist/types/typechain-types/factories/contracts/mocks/libraries/pools/ReserveLibraryMock__factory.d.ts +1 -1
  454. package/dist/types/typechain-types/factories/contracts/mocks/tests/MaliciousDeposit__factory.d.ts +1 -1
  455. package/dist/types/typechain-types/factories/contracts/mocks/tests/MaliciousWithdraw__factory.d.ts +1 -1
  456. package/dist/types/typechain-types/factories/contracts/mocks/tests/VeRAACFuzzHelper__factory.d.ts +1 -1
  457. package/dist/types/typechain-types/factories/contracts/mocks/tests/index.d.ts +0 -1
  458. package/dist/types/typechain-types/factories/contracts/zeno/AuctionFactory__factory.d.ts +5 -1
  459. package/dist/types/typechain-types/factories/contracts/zeno/Auction__factory.d.ts +83 -14
  460. package/dist/types/typechain-types/factories/contracts/zeno/ZENOFactory__factory.d.ts +13 -1
  461. package/dist/types/typechain-types/factories/contracts/zeno/ZENO__factory.d.ts +87 -31
  462. package/dist/types/typechain-types/index.d.ts +112 -42
  463. package/dist/types/utils/artifacts.d.ts +767 -226
  464. package/dist/utils/artifacts.js +13 -0
  465. package/package.json +1 -1
  466. package/dist/contracts/indexToken/getNextRandomNFT.js +0 -30
  467. package/dist/contracts/indexToken/redeemNFT.js +0 -39
  468. package/dist/pools/lendingPool/claimReward.js +0 -22
  469. package/dist/pools/lendingPool/depositNFTToLendingPool.js +0 -50
  470. package/dist/pools/lendingPool/getAllUserData.js +0 -28
  471. package/dist/pools/stabilityPool/calculateRAACRewards.js +0 -21
  472. package/dist/pools/stabilityPool/depositNFTToStabilityPool.js +0 -40
  473. package/dist/types/contracts/indexToken/getNextRandomNFT.d.ts +0 -7
  474. package/dist/types/contracts/indexToken/redeemNFT.d.ts +0 -4
  475. package/dist/types/pools/lendingPool/claimReward.d.ts +0 -4
  476. package/dist/types/pools/lendingPool/depositNFTToLendingPool.d.ts +0 -4
  477. package/dist/types/pools/lendingPool/getAllUserData.d.ts +0 -17
  478. package/dist/types/pools/lendingPool/getPendingReward.d.ts +0 -4
  479. package/dist/types/pools/lendingPool/withdrawNFTFromLendingPool.d.ts +0 -4
  480. package/dist/types/pools/stabilityPool/calculateRAACRewards.d.ts +0 -4
  481. package/dist/types/pools/stabilityPool/depositNFTToStabilityPool.d.ts +0 -4
  482. package/dist/types/typechain-types/@openzeppelin/contracts/token/ERC721/extensions/ERC721Wrapper.d.ts +0 -261
@@ -14,31 +14,9 @@
14
14
  "stateMutability": "nonpayable",
15
15
  "type": "constructor"
16
16
  },
17
- {
18
- "inputs": [
19
- {
20
- "internalType": "address",
21
- "name": "target",
22
- "type": "address"
23
- }
24
- ],
25
- "name": "AddressEmptyCode",
26
- "type": "error"
27
- },
28
- {
29
- "inputs": [
30
- {
31
- "internalType": "address",
32
- "name": "account",
33
- "type": "address"
34
- }
35
- ],
36
- "name": "AddressInsufficientBalance",
37
- "type": "error"
38
- },
39
17
  {
40
18
  "inputs": [],
41
- "name": "AlreadyVoted",
19
+ "name": "ActiveRewardPeriod",
42
20
  "type": "error"
43
21
  },
44
22
  {
@@ -152,16 +130,6 @@
152
130
  "name": "EmergencyDelayNotMet",
153
131
  "type": "error"
154
132
  },
155
- {
156
- "inputs": [],
157
- "name": "EmergencyUnlockNotEnabled",
158
- "type": "error"
159
- },
160
- {
161
- "inputs": [],
162
- "name": "EmergencyUnlockNotScheduled",
163
- "type": "error"
164
- },
165
133
  {
166
134
  "inputs": [],
167
135
  "name": "EmergencyWithdrawNotEnabled",
@@ -169,12 +137,12 @@
169
137
  },
170
138
  {
171
139
  "inputs": [],
172
- "name": "FailedInnerCall",
140
+ "name": "InsufficientRewardBalance",
173
141
  "type": "error"
174
142
  },
175
143
  {
176
144
  "inputs": [],
177
- "name": "FutureBlockQuery",
145
+ "name": "InsufficientVotingPower",
178
146
  "type": "error"
179
147
  },
180
148
  {
@@ -217,6 +185,11 @@
217
185
  "name": "InvalidLockDuration",
218
186
  "type": "error"
219
187
  },
188
+ {
189
+ "inputs": [],
190
+ "name": "InvalidParameterValue",
191
+ "type": "error"
192
+ },
220
193
  {
221
194
  "inputs": [],
222
195
  "name": "InvalidPowerParameters",
@@ -224,7 +197,7 @@
224
197
  },
225
198
  {
226
199
  "inputs": [],
227
- "name": "InvalidProposal",
200
+ "name": "InvalidRewardRate",
228
201
  "type": "error"
229
202
  },
230
203
  {
@@ -252,11 +225,6 @@
252
225
  "name": "LockNotFound",
253
226
  "type": "error"
254
227
  },
255
- {
256
- "inputs": [],
257
- "name": "NoExistingLock",
258
- "type": "error"
259
- },
260
228
  {
261
229
  "inputs": [],
262
230
  "name": "NoTokensLocked",
@@ -312,27 +280,27 @@
312
280
  },
313
281
  {
314
282
  "inputs": [],
315
- "name": "TotalSupplyLimitExceeded",
283
+ "name": "TokenAlreadyAdded",
316
284
  "type": "error"
317
285
  },
318
286
  {
319
287
  "inputs": [],
320
- "name": "TransferNotAllowed",
288
+ "name": "TokenNotFound",
321
289
  "type": "error"
322
290
  },
323
291
  {
324
292
  "inputs": [],
325
- "name": "ValueOverflow",
293
+ "name": "TotalSupplyLimitExceeded",
326
294
  "type": "error"
327
295
  },
328
296
  {
329
297
  "inputs": [],
330
- "name": "ValueTooLarge",
298
+ "name": "TransferNotAllowed",
331
299
  "type": "error"
332
300
  },
333
301
  {
334
302
  "inputs": [],
335
- "name": "ZeroAmount",
303
+ "name": "ValueOverflow",
336
304
  "type": "error"
337
305
  },
338
306
  {
@@ -395,6 +363,25 @@
395
363
  "name": "CheckpointCreated",
396
364
  "type": "event"
397
365
  },
366
+ {
367
+ "anonymous": false,
368
+ "inputs": [
369
+ {
370
+ "indexed": true,
371
+ "internalType": "uint32",
372
+ "name": "blockNumber",
373
+ "type": "uint32"
374
+ },
375
+ {
376
+ "indexed": false,
377
+ "internalType": "uint224",
378
+ "name": "value",
379
+ "type": "uint224"
380
+ }
381
+ ],
382
+ "name": "CheckpointWritten",
383
+ "type": "event"
384
+ },
398
385
  {
399
386
  "anonymous": false,
400
387
  "inputs": [
@@ -511,6 +498,12 @@
511
498
  "name": "amount",
512
499
  "type": "uint256"
513
500
  },
501
+ {
502
+ "indexed": false,
503
+ "internalType": "uint256",
504
+ "name": "start",
505
+ "type": "uint256"
506
+ },
514
507
  {
515
508
  "indexed": false,
516
509
  "internalType": "uint256",
@@ -622,6 +615,82 @@
622
615
  "name": "Locked",
623
616
  "type": "event"
624
617
  },
618
+ {
619
+ "anonymous": false,
620
+ "inputs": [
621
+ {
622
+ "indexed": false,
623
+ "internalType": "uint256",
624
+ "name": "oldValue",
625
+ "type": "uint256"
626
+ },
627
+ {
628
+ "indexed": false,
629
+ "internalType": "uint256",
630
+ "name": "newValue",
631
+ "type": "uint256"
632
+ }
633
+ ],
634
+ "name": "MaxBoostUpdated",
635
+ "type": "event"
636
+ },
637
+ {
638
+ "anonymous": false,
639
+ "inputs": [
640
+ {
641
+ "indexed": false,
642
+ "internalType": "uint256",
643
+ "name": "oldValue",
644
+ "type": "uint256"
645
+ },
646
+ {
647
+ "indexed": false,
648
+ "internalType": "uint256",
649
+ "name": "newValue",
650
+ "type": "uint256"
651
+ }
652
+ ],
653
+ "name": "MaxLockDurationUpdated",
654
+ "type": "event"
655
+ },
656
+ {
657
+ "anonymous": false,
658
+ "inputs": [
659
+ {
660
+ "indexed": false,
661
+ "internalType": "uint256",
662
+ "name": "oldValue",
663
+ "type": "uint256"
664
+ },
665
+ {
666
+ "indexed": false,
667
+ "internalType": "uint256",
668
+ "name": "newValue",
669
+ "type": "uint256"
670
+ }
671
+ ],
672
+ "name": "MinBoostUpdated",
673
+ "type": "event"
674
+ },
675
+ {
676
+ "anonymous": false,
677
+ "inputs": [
678
+ {
679
+ "indexed": false,
680
+ "internalType": "uint256",
681
+ "name": "oldValue",
682
+ "type": "uint256"
683
+ },
684
+ {
685
+ "indexed": false,
686
+ "internalType": "uint256",
687
+ "name": "newValue",
688
+ "type": "uint256"
689
+ }
690
+ ],
691
+ "name": "MinLockDurationUpdated",
692
+ "type": "event"
693
+ },
625
694
  {
626
695
  "anonymous": false,
627
696
  "inputs": [
@@ -685,23 +754,48 @@
685
754
  {
686
755
  "indexed": true,
687
756
  "internalType": "address",
688
- "name": "from",
757
+ "name": "token",
758
+ "type": "address"
759
+ },
760
+ {
761
+ "indexed": false,
762
+ "internalType": "uint256",
763
+ "name": "reward",
764
+ "type": "uint256"
765
+ },
766
+ {
767
+ "indexed": false,
768
+ "internalType": "uint256",
769
+ "name": "rewardRate",
770
+ "type": "uint256"
771
+ }
772
+ ],
773
+ "name": "RewardNotified",
774
+ "type": "event"
775
+ },
776
+ {
777
+ "anonymous": false,
778
+ "inputs": [
779
+ {
780
+ "indexed": true,
781
+ "internalType": "address",
782
+ "name": "token",
689
783
  "type": "address"
690
784
  },
691
785
  {
692
786
  "indexed": true,
693
787
  "internalType": "address",
694
- "name": "to",
788
+ "name": "user",
695
789
  "type": "address"
696
790
  },
697
791
  {
698
792
  "indexed": false,
699
793
  "internalType": "uint256",
700
- "name": "value",
794
+ "name": "reward",
701
795
  "type": "uint256"
702
796
  }
703
797
  ],
704
- "name": "Transfer",
798
+ "name": "RewardPaid",
705
799
  "type": "event"
706
800
  },
707
801
  {
@@ -710,23 +804,49 @@
710
804
  {
711
805
  "indexed": true,
712
806
  "internalType": "address",
713
- "name": "voter",
807
+ "name": "token",
808
+ "type": "address"
809
+ }
810
+ ],
811
+ "name": "RewardTokenAdded",
812
+ "type": "event"
813
+ },
814
+ {
815
+ "anonymous": false,
816
+ "inputs": [
817
+ {
818
+ "indexed": true,
819
+ "internalType": "address",
820
+ "name": "token",
821
+ "type": "address"
822
+ }
823
+ ],
824
+ "name": "RewardTokenRemoved",
825
+ "type": "event"
826
+ },
827
+ {
828
+ "anonymous": false,
829
+ "inputs": [
830
+ {
831
+ "indexed": true,
832
+ "internalType": "address",
833
+ "name": "from",
714
834
  "type": "address"
715
835
  },
716
836
  {
717
837
  "indexed": true,
718
- "internalType": "uint256",
719
- "name": "proposalId",
720
- "type": "uint256"
838
+ "internalType": "address",
839
+ "name": "to",
840
+ "type": "address"
721
841
  },
722
842
  {
723
843
  "indexed": false,
724
844
  "internalType": "uint256",
725
- "name": "power",
845
+ "name": "value",
726
846
  "type": "uint256"
727
847
  }
728
848
  ],
729
- "name": "VoteCast",
849
+ "name": "Transfer",
730
850
  "type": "event"
731
851
  },
732
852
  {
@@ -735,23 +855,23 @@
735
855
  {
736
856
  "indexed": true,
737
857
  "internalType": "address",
738
- "name": "user",
858
+ "name": "voter",
739
859
  "type": "address"
740
860
  },
741
861
  {
742
- "indexed": false,
862
+ "indexed": true,
743
863
  "internalType": "uint256",
744
- "name": "oldPower",
864
+ "name": "proposalId",
745
865
  "type": "uint256"
746
866
  },
747
867
  {
748
868
  "indexed": false,
749
869
  "internalType": "uint256",
750
- "name": "newPower",
870
+ "name": "power",
751
871
  "type": "uint256"
752
872
  }
753
873
  ],
754
- "name": "VotingPowerUpdated",
874
+ "name": "VoteCast",
755
875
  "type": "event"
756
876
  },
757
877
  {
@@ -788,20 +908,7 @@
788
908
  },
789
909
  {
790
910
  "inputs": [],
791
- "name": "MAX_BOOST",
792
- "outputs": [
793
- {
794
- "internalType": "uint256",
795
- "name": "",
796
- "type": "uint256"
797
- }
798
- ],
799
- "stateMutability": "view",
800
- "type": "function"
801
- },
802
- {
803
- "inputs": [],
804
- "name": "MAX_LOCK_DURATION",
911
+ "name": "MAX_TOTAL_LOCKED_AMOUNT",
805
912
  "outputs": [
806
913
  {
807
914
  "internalType": "uint256",
@@ -814,7 +921,7 @@
814
921
  },
815
922
  {
816
923
  "inputs": [],
817
- "name": "MAX_TOTAL_LOCKED_AMOUNT",
924
+ "name": "PRECISION",
818
925
  "outputs": [
819
926
  {
820
927
  "internalType": "uint256",
@@ -827,7 +934,7 @@
827
934
  },
828
935
  {
829
936
  "inputs": [],
830
- "name": "MIN_BOOST",
937
+ "name": "REWARD_DURATION",
831
938
  "outputs": [
832
939
  {
833
940
  "internalType": "uint256",
@@ -839,16 +946,16 @@
839
946
  "type": "function"
840
947
  },
841
948
  {
842
- "inputs": [],
843
- "name": "MIN_LOCK_DURATION",
844
- "outputs": [
949
+ "inputs": [
845
950
  {
846
- "internalType": "uint256",
847
- "name": "",
848
- "type": "uint256"
951
+ "internalType": "address",
952
+ "name": "rewardToken",
953
+ "type": "address"
849
954
  }
850
955
  ],
851
- "stateMutability": "view",
956
+ "name": "addRewardToken",
957
+ "outputs": [],
958
+ "stateMutability": "nonpayable",
852
959
  "type": "function"
853
960
  },
854
961
  {
@@ -903,7 +1010,7 @@
903
1010
  "inputs": [
904
1011
  {
905
1012
  "internalType": "address",
906
- "name": "account",
1013
+ "name": "user",
907
1014
  "type": "address"
908
1015
  }
909
1016
  ],
@@ -918,6 +1025,30 @@
918
1025
  "stateMutability": "view",
919
1026
  "type": "function"
920
1027
  },
1028
+ {
1029
+ "inputs": [
1030
+ {
1031
+ "internalType": "address",
1032
+ "name": "account",
1033
+ "type": "address"
1034
+ },
1035
+ {
1036
+ "internalType": "uint256",
1037
+ "name": "blockNumber",
1038
+ "type": "uint256"
1039
+ }
1040
+ ],
1041
+ "name": "balanceOfAt",
1042
+ "outputs": [
1043
+ {
1044
+ "internalType": "uint256",
1045
+ "name": "",
1046
+ "type": "uint256"
1047
+ }
1048
+ ],
1049
+ "stateMutability": "view",
1050
+ "type": "function"
1051
+ },
921
1052
  {
922
1053
  "inputs": [
923
1054
  {
@@ -935,7 +1066,7 @@
935
1066
  "outputs": [
936
1067
  {
937
1068
  "internalType": "uint256",
938
- "name": "boostBasisPoints",
1069
+ "name": "boostMultiplier",
939
1070
  "type": "uint256"
940
1071
  },
941
1072
  {
@@ -968,7 +1099,7 @@
968
1099
  "type": "uint256"
969
1100
  }
970
1101
  ],
971
- "stateMutability": "pure",
1102
+ "stateMutability": "view",
972
1103
  "type": "function"
973
1104
  },
974
1105
  {
@@ -985,15 +1116,100 @@
985
1116
  "type": "function"
986
1117
  },
987
1118
  {
988
- "inputs": [],
989
- "name": "decimals",
990
- "outputs": [
1119
+ "inputs": [
991
1120
  {
992
- "internalType": "uint8",
993
- "name": "",
994
- "type": "uint8"
995
- }
996
- ],
1121
+ "internalType": "address",
1122
+ "name": "user",
1123
+ "type": "address"
1124
+ }
1125
+ ],
1126
+ "name": "claimReward",
1127
+ "outputs": [],
1128
+ "stateMutability": "nonpayable",
1129
+ "type": "function"
1130
+ },
1131
+ {
1132
+ "inputs": [
1133
+ {
1134
+ "internalType": "address",
1135
+ "name": "user",
1136
+ "type": "address"
1137
+ },
1138
+ {
1139
+ "internalType": "address",
1140
+ "name": "token",
1141
+ "type": "address"
1142
+ }
1143
+ ],
1144
+ "name": "claimable",
1145
+ "outputs": [
1146
+ {
1147
+ "internalType": "uint256",
1148
+ "name": "",
1149
+ "type": "uint256"
1150
+ }
1151
+ ],
1152
+ "stateMutability": "view",
1153
+ "type": "function"
1154
+ },
1155
+ {
1156
+ "inputs": [
1157
+ {
1158
+ "internalType": "address",
1159
+ "name": "user",
1160
+ "type": "address"
1161
+ },
1162
+ {
1163
+ "internalType": "address",
1164
+ "name": "token",
1165
+ "type": "address"
1166
+ }
1167
+ ],
1168
+ "name": "claimed",
1169
+ "outputs": [
1170
+ {
1171
+ "internalType": "uint256",
1172
+ "name": "",
1173
+ "type": "uint256"
1174
+ }
1175
+ ],
1176
+ "stateMutability": "view",
1177
+ "type": "function"
1178
+ },
1179
+ {
1180
+ "inputs": [],
1181
+ "name": "decimals",
1182
+ "outputs": [
1183
+ {
1184
+ "internalType": "uint8",
1185
+ "name": "",
1186
+ "type": "uint8"
1187
+ }
1188
+ ],
1189
+ "stateMutability": "view",
1190
+ "type": "function"
1191
+ },
1192
+ {
1193
+ "inputs": [
1194
+ {
1195
+ "internalType": "address",
1196
+ "name": "user",
1197
+ "type": "address"
1198
+ },
1199
+ {
1200
+ "internalType": "address",
1201
+ "name": "token",
1202
+ "type": "address"
1203
+ }
1204
+ ],
1205
+ "name": "earned",
1206
+ "outputs": [
1207
+ {
1208
+ "internalType": "uint256",
1209
+ "name": "",
1210
+ "type": "uint256"
1211
+ }
1212
+ ],
997
1213
  "stateMutability": "view",
998
1214
  "type": "function"
999
1215
  },
@@ -1080,16 +1296,16 @@
1080
1296
  },
1081
1297
  {
1082
1298
  "internalType": "uint256",
1083
- "name": "totalVotingPower",
1299
+ "name": "totalStaked",
1084
1300
  "type": "uint256"
1085
1301
  },
1086
1302
  {
1087
1303
  "internalType": "uint256",
1088
- "name": "totalWeight",
1304
+ "name": "userStaked",
1089
1305
  "type": "uint256"
1090
1306
  }
1091
1307
  ],
1092
- "internalType": "struct veRAACToken.BoostStateView",
1308
+ "internalType": "struct IveRAACToken.BoostStateView",
1093
1309
  "name": "",
1094
1310
  "type": "tuple"
1095
1311
  }
@@ -1097,19 +1313,6 @@
1097
1313
  "stateMutability": "view",
1098
1314
  "type": "function"
1099
1315
  },
1100
- {
1101
- "inputs": [],
1102
- "name": "getBoostWindow",
1103
- "outputs": [
1104
- {
1105
- "internalType": "uint256",
1106
- "name": "",
1107
- "type": "uint256"
1108
- }
1109
- ],
1110
- "stateMutability": "view",
1111
- "type": "function"
1112
- },
1113
1316
  {
1114
1317
  "inputs": [
1115
1318
  {
@@ -1170,6 +1373,11 @@
1170
1373
  "name": "amount",
1171
1374
  "type": "uint256"
1172
1375
  },
1376
+ {
1377
+ "internalType": "uint256",
1378
+ "name": "start",
1379
+ "type": "uint256"
1380
+ },
1173
1381
  {
1174
1382
  "internalType": "uint256",
1175
1383
  "name": "end",
@@ -1190,14 +1398,8 @@
1190
1398
  "type": "function"
1191
1399
  },
1192
1400
  {
1193
- "inputs": [
1194
- {
1195
- "internalType": "address",
1196
- "name": "account",
1197
- "type": "address"
1198
- }
1199
- ],
1200
- "name": "getLockedBalance",
1401
+ "inputs": [],
1402
+ "name": "getMaxBoost",
1201
1403
  "outputs": [
1202
1404
  {
1203
1405
  "internalType": "uint256",
@@ -1209,19 +1411,8 @@
1209
1411
  "type": "function"
1210
1412
  },
1211
1413
  {
1212
- "inputs": [
1213
- {
1214
- "internalType": "address",
1215
- "name": "account",
1216
- "type": "address"
1217
- },
1218
- {
1219
- "internalType": "uint256",
1220
- "name": "blockNumber",
1221
- "type": "uint256"
1222
- }
1223
- ],
1224
- "name": "getPastVotes",
1414
+ "inputs": [],
1415
+ "name": "getMaxLockDuration",
1225
1416
  "outputs": [
1226
1417
  {
1227
1418
  "internalType": "uint256",
@@ -1234,7 +1425,7 @@
1234
1425
  },
1235
1426
  {
1236
1427
  "inputs": [],
1237
- "name": "getTotalVotingPower",
1428
+ "name": "getMinBoost",
1238
1429
  "outputs": [
1239
1430
  {
1240
1431
  "internalType": "uint256",
@@ -1246,19 +1437,8 @@
1246
1437
  "type": "function"
1247
1438
  },
1248
1439
  {
1249
- "inputs": [
1250
- {
1251
- "internalType": "address",
1252
- "name": "account",
1253
- "type": "address"
1254
- },
1255
- {
1256
- "internalType": "uint256",
1257
- "name": "timestamp",
1258
- "type": "uint256"
1259
- }
1260
- ],
1261
- "name": "getVotingPower",
1440
+ "inputs": [],
1441
+ "name": "getMinLockDuration",
1262
1442
  "outputs": [
1263
1443
  {
1264
1444
  "internalType": "uint256",
@@ -1271,42 +1451,31 @@
1271
1451
  },
1272
1452
  {
1273
1453
  "inputs": [
1274
- {
1275
- "internalType": "address",
1276
- "name": "account",
1277
- "type": "address"
1278
- }
1279
- ],
1280
- "name": "getVotingPower",
1281
- "outputs": [
1282
1454
  {
1283
1455
  "internalType": "uint256",
1284
- "name": "",
1456
+ "name": "amount",
1285
1457
  "type": "uint256"
1286
1458
  }
1287
1459
  ],
1288
- "stateMutability": "view",
1460
+ "name": "increase",
1461
+ "outputs": [],
1462
+ "stateMutability": "nonpayable",
1289
1463
  "type": "function"
1290
1464
  },
1291
1465
  {
1292
1466
  "inputs": [
1293
1467
  {
1294
1468
  "internalType": "address",
1295
- "name": "account",
1469
+ "name": "",
1296
1470
  "type": "address"
1297
- },
1298
- {
1299
- "internalType": "uint256",
1300
- "name": "proposalId",
1301
- "type": "uint256"
1302
1471
  }
1303
1472
  ],
1304
- "name": "getVotingPowerForProposal",
1473
+ "name": "isRewardToken",
1305
1474
  "outputs": [
1306
1475
  {
1307
- "internalType": "uint256",
1476
+ "internalType": "bool",
1308
1477
  "name": "",
1309
- "type": "uint256"
1478
+ "type": "bool"
1310
1479
  }
1311
1480
  ],
1312
1481
  "stateMutability": "view",
@@ -1318,50 +1487,70 @@
1318
1487
  "internalType": "uint256",
1319
1488
  "name": "amount",
1320
1489
  "type": "uint256"
1490
+ },
1491
+ {
1492
+ "internalType": "uint256",
1493
+ "name": "duration",
1494
+ "type": "uint256"
1321
1495
  }
1322
1496
  ],
1323
- "name": "increase",
1497
+ "name": "lock",
1324
1498
  "outputs": [],
1325
1499
  "stateMutability": "nonpayable",
1326
1500
  "type": "function"
1327
1501
  },
1502
+ {
1503
+ "inputs": [],
1504
+ "name": "name",
1505
+ "outputs": [
1506
+ {
1507
+ "internalType": "string",
1508
+ "name": "",
1509
+ "type": "string"
1510
+ }
1511
+ ],
1512
+ "stateMutability": "view",
1513
+ "type": "function"
1514
+ },
1328
1515
  {
1329
1516
  "inputs": [
1330
1517
  {
1331
- "internalType": "uint256",
1332
- "name": "amount",
1333
- "type": "uint256"
1518
+ "internalType": "address",
1519
+ "name": "rewardToken",
1520
+ "type": "address"
1334
1521
  },
1335
1522
  {
1336
1523
  "internalType": "uint256",
1337
- "name": "duration",
1524
+ "name": "reward",
1338
1525
  "type": "uint256"
1339
1526
  }
1340
1527
  ],
1341
- "name": "lock",
1528
+ "name": "notifyRewardAmount",
1342
1529
  "outputs": [],
1343
1530
  "stateMutability": "nonpayable",
1344
1531
  "type": "function"
1345
1532
  },
1346
1533
  {
1347
- "inputs": [
1534
+ "inputs": [],
1535
+ "name": "owner",
1536
+ "outputs": [
1348
1537
  {
1349
1538
  "internalType": "address",
1350
1539
  "name": "",
1351
1540
  "type": "address"
1352
1541
  }
1353
1542
  ],
1354
- "name": "locks",
1543
+ "stateMutability": "view",
1544
+ "type": "function"
1545
+ },
1546
+ {
1547
+ "inputs": [],
1548
+ "name": "paused",
1355
1549
  "outputs": [
1356
1550
  {
1357
- "internalType": "uint256",
1358
- "name": "amount",
1359
- "type": "uint256"
1360
- },
1361
- {
1362
- "internalType": "uint256",
1363
- "name": "end",
1364
- "type": "uint256"
1551
+ "internalType": "bool",
1552
+ "name": "",
1553
+ "type": "bool"
1365
1554
  }
1366
1555
  ],
1367
1556
  "stateMutability": "view",
@@ -1369,10 +1558,10 @@
1369
1558
  },
1370
1559
  {
1371
1560
  "inputs": [],
1372
- "name": "minter",
1561
+ "name": "raacToken",
1373
1562
  "outputs": [
1374
1563
  {
1375
- "internalType": "address",
1564
+ "internalType": "contract IERC20",
1376
1565
  "name": "",
1377
1566
  "type": "address"
1378
1567
  }
@@ -1381,13 +1570,19 @@
1381
1570
  "type": "function"
1382
1571
  },
1383
1572
  {
1384
- "inputs": [],
1385
- "name": "name",
1573
+ "inputs": [
1574
+ {
1575
+ "internalType": "address",
1576
+ "name": "user",
1577
+ "type": "address"
1578
+ }
1579
+ ],
1580
+ "name": "rawBalanceOf",
1386
1581
  "outputs": [
1387
1582
  {
1388
- "internalType": "string",
1583
+ "internalType": "uint256",
1389
1584
  "name": "",
1390
- "type": "string"
1585
+ "type": "uint256"
1391
1586
  }
1392
1587
  ],
1393
1588
  "stateMutability": "view",
@@ -1395,25 +1590,86 @@
1395
1590
  },
1396
1591
  {
1397
1592
  "inputs": [],
1398
- "name": "owner",
1593
+ "name": "rawTotalSupply",
1399
1594
  "outputs": [
1400
1595
  {
1401
- "internalType": "address",
1596
+ "internalType": "uint256",
1402
1597
  "name": "",
1403
- "type": "address"
1598
+ "type": "uint256"
1404
1599
  }
1405
1600
  ],
1406
1601
  "stateMutability": "view",
1407
1602
  "type": "function"
1408
1603
  },
1604
+ {
1605
+ "inputs": [
1606
+ {
1607
+ "internalType": "address",
1608
+ "name": "rewardToken",
1609
+ "type": "address"
1610
+ }
1611
+ ],
1612
+ "name": "removeRewardToken",
1613
+ "outputs": [],
1614
+ "stateMutability": "nonpayable",
1615
+ "type": "function"
1616
+ },
1409
1617
  {
1410
1618
  "inputs": [],
1411
- "name": "paused",
1619
+ "name": "renounceOwnership",
1620
+ "outputs": [],
1621
+ "stateMutability": "nonpayable",
1622
+ "type": "function"
1623
+ },
1624
+ {
1625
+ "inputs": [
1626
+ {
1627
+ "internalType": "address",
1628
+ "name": "",
1629
+ "type": "address"
1630
+ }
1631
+ ],
1632
+ "name": "rewardData",
1412
1633
  "outputs": [
1634
+ {
1635
+ "internalType": "uint256",
1636
+ "name": "periodFinish",
1637
+ "type": "uint256"
1638
+ },
1639
+ {
1640
+ "internalType": "uint256",
1641
+ "name": "rewardRate",
1642
+ "type": "uint256"
1643
+ },
1644
+ {
1645
+ "internalType": "uint256",
1646
+ "name": "lastUpdateTime",
1647
+ "type": "uint256"
1648
+ },
1649
+ {
1650
+ "internalType": "uint256",
1651
+ "name": "rewardPerTokenStored",
1652
+ "type": "uint256"
1653
+ },
1654
+ {
1655
+ "internalType": "address",
1656
+ "name": "distributor",
1657
+ "type": "address"
1658
+ },
1413
1659
  {
1414
1660
  "internalType": "bool",
1415
- "name": "",
1661
+ "name": "isEnabled",
1416
1662
  "type": "bool"
1663
+ },
1664
+ {
1665
+ "internalType": "uint32",
1666
+ "name": "lastDistributionBlock",
1667
+ "type": "uint32"
1668
+ },
1669
+ {
1670
+ "internalType": "uint256",
1671
+ "name": "totalVotingPowerAtNotify",
1672
+ "type": "uint256"
1417
1673
  }
1418
1674
  ],
1419
1675
  "stateMutability": "view",
@@ -1422,12 +1678,12 @@
1422
1678
  {
1423
1679
  "inputs": [
1424
1680
  {
1425
- "internalType": "uint256",
1426
- "name": "",
1427
- "type": "uint256"
1681
+ "internalType": "address",
1682
+ "name": "rewardToken",
1683
+ "type": "address"
1428
1684
  }
1429
1685
  ],
1430
- "name": "proposalPowerSnapshots",
1686
+ "name": "rewardPerToken",
1431
1687
  "outputs": [
1432
1688
  {
1433
1689
  "internalType": "uint256",
@@ -1439,11 +1695,17 @@
1439
1695
  "type": "function"
1440
1696
  },
1441
1697
  {
1442
- "inputs": [],
1443
- "name": "raacToken",
1698
+ "inputs": [
1699
+ {
1700
+ "internalType": "uint256",
1701
+ "name": "",
1702
+ "type": "uint256"
1703
+ }
1704
+ ],
1705
+ "name": "rewardTokens",
1444
1706
  "outputs": [
1445
1707
  {
1446
- "internalType": "contract IERC20",
1708
+ "internalType": "address",
1447
1709
  "name": "",
1448
1710
  "type": "address"
1449
1711
  }
@@ -1454,24 +1716,19 @@
1454
1716
  {
1455
1717
  "inputs": [
1456
1718
  {
1457
- "internalType": "address",
1458
- "name": "voter",
1459
- "type": "address"
1460
- },
1461
- {
1462
- "internalType": "uint256",
1463
- "name": "proposalId",
1464
- "type": "uint256"
1719
+ "internalType": "bytes32",
1720
+ "name": "actionId",
1721
+ "type": "bytes32"
1465
1722
  }
1466
1723
  ],
1467
- "name": "recordVote",
1724
+ "name": "scheduleEmergencyAction",
1468
1725
  "outputs": [],
1469
1726
  "stateMutability": "nonpayable",
1470
1727
  "type": "function"
1471
1728
  },
1472
1729
  {
1473
1730
  "inputs": [],
1474
- "name": "renounceOwnership",
1731
+ "name": "scheduleEmergencyUnlock",
1475
1732
  "outputs": [],
1476
1733
  "stateMutability": "nonpayable",
1477
1734
  "type": "function"
@@ -1479,19 +1736,25 @@
1479
1736
  {
1480
1737
  "inputs": [
1481
1738
  {
1482
- "internalType": "bytes32",
1483
- "name": "actionId",
1484
- "type": "bytes32"
1739
+ "internalType": "uint256",
1740
+ "name": "newBoost",
1741
+ "type": "uint256"
1485
1742
  }
1486
1743
  ],
1487
- "name": "scheduleEmergencyAction",
1744
+ "name": "setMaxBoost",
1488
1745
  "outputs": [],
1489
1746
  "stateMutability": "nonpayable",
1490
1747
  "type": "function"
1491
1748
  },
1492
1749
  {
1493
- "inputs": [],
1494
- "name": "scheduleEmergencyUnlock",
1750
+ "inputs": [
1751
+ {
1752
+ "internalType": "uint256",
1753
+ "name": "newDuration",
1754
+ "type": "uint256"
1755
+ }
1756
+ ],
1757
+ "name": "setMaxLockDuration",
1495
1758
  "outputs": [],
1496
1759
  "stateMutability": "nonpayable",
1497
1760
  "type": "function"
@@ -1499,12 +1762,25 @@
1499
1762
  {
1500
1763
  "inputs": [
1501
1764
  {
1502
- "internalType": "address",
1503
- "name": "_minter",
1504
- "type": "address"
1765
+ "internalType": "uint256",
1766
+ "name": "newBoost",
1767
+ "type": "uint256"
1505
1768
  }
1506
1769
  ],
1507
- "name": "setMinter",
1770
+ "name": "setMinBoost",
1771
+ "outputs": [],
1772
+ "stateMutability": "nonpayable",
1773
+ "type": "function"
1774
+ },
1775
+ {
1776
+ "inputs": [
1777
+ {
1778
+ "internalType": "uint256",
1779
+ "name": "newDuration",
1780
+ "type": "uint256"
1781
+ }
1782
+ ],
1783
+ "name": "setMinLockDuration",
1508
1784
  "outputs": [],
1509
1785
  "stateMutability": "nonpayable",
1510
1786
  "type": "function"
@@ -1535,6 +1811,25 @@
1535
1811
  "stateMutability": "view",
1536
1812
  "type": "function"
1537
1813
  },
1814
+ {
1815
+ "inputs": [
1816
+ {
1817
+ "internalType": "uint256",
1818
+ "name": "blockNumber",
1819
+ "type": "uint256"
1820
+ }
1821
+ ],
1822
+ "name": "totalSupplyAt",
1823
+ "outputs": [
1824
+ {
1825
+ "internalType": "uint256",
1826
+ "name": "",
1827
+ "type": "uint256"
1828
+ }
1829
+ ],
1830
+ "stateMutability": "view",
1831
+ "type": "function"
1832
+ },
1538
1833
  {
1539
1834
  "inputs": [
1540
1835
  {
@@ -1544,7 +1839,7 @@
1544
1839
  },
1545
1840
  {
1546
1841
  "internalType": "uint256",
1547
- "name": "amount",
1842
+ "name": "value",
1548
1843
  "type": "uint256"
1549
1844
  }
1550
1845
  ],
@@ -1573,7 +1868,7 @@
1573
1868
  },
1574
1869
  {
1575
1870
  "internalType": "uint256",
1576
- "name": "amount",
1871
+ "name": "value",
1577
1872
  "type": "uint256"
1578
1873
  }
1579
1874
  ],
@@ -1601,6 +1896,45 @@
1601
1896
  "stateMutability": "nonpayable",
1602
1897
  "type": "function"
1603
1898
  },
1899
+ {
1900
+ "inputs": [
1901
+ {
1902
+ "internalType": "address",
1903
+ "name": "",
1904
+ "type": "address"
1905
+ },
1906
+ {
1907
+ "internalType": "address",
1908
+ "name": "",
1909
+ "type": "address"
1910
+ }
1911
+ ],
1912
+ "name": "userRewardData",
1913
+ "outputs": [
1914
+ {
1915
+ "internalType": "uint256",
1916
+ "name": "userRewardPerTokenPaid",
1917
+ "type": "uint256"
1918
+ },
1919
+ {
1920
+ "internalType": "uint256",
1921
+ "name": "rewards",
1922
+ "type": "uint256"
1923
+ },
1924
+ {
1925
+ "internalType": "uint256",
1926
+ "name": "claimedRewards",
1927
+ "type": "uint256"
1928
+ },
1929
+ {
1930
+ "internalType": "uint32",
1931
+ "name": "lastUserBlock",
1932
+ "type": "uint32"
1933
+ }
1934
+ ],
1935
+ "stateMutability": "view",
1936
+ "type": "function"
1937
+ },
1604
1938
  {
1605
1939
  "inputs": [],
1606
1940
  "name": "withdraw",
@@ -1609,8 +1943,8 @@
1609
1943
  "type": "function"
1610
1944
  }
1611
1945
  ],
1612
- "bytecode": "0x60a06040523480156200001157600080fd5b50604051620031ef380380620031ef8339810160408190526200003491620001fb565b3360405180604001604052806012815260200171566f746520457363726f776564205241414360701b8152506040518060400160405280600681526020016576655241414360d01b8152508160039081620000909190620002d2565b5060046200009f8282620002d2565b5050506001600160a01b038116620000d257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000dd81620001a9565b5060016006556001600160a01b0381166200013b5760405162461bcd60e51b815260206004820152601a60248201527f496e76616c6964205241414320746f6b656e20616464726573730000000000006044820152606401620000c9565b6001600160a01b0381166080526200017d6301e13380600d55630784ce00600e556a084595161401484a0000006010556b033b2e3c9fd0803ce8000000600f55565b620001a26161a8601955612710601a5562093a80601b55670de0b6b3a7640000601c55565b506200039e565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200020e57600080fd5b81516001600160a01b03811681146200022657600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200025857607f821691505b6020821081036200027957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002cd57600081815260208120601f850160051c81016020861015620002a85750805b601f850160051c820191505b81811015620002c957828155600101620002b4565b5050505b505050565b81516001600160401b03811115620002ee57620002ee6200022d565b6200030681620002ff845462000243565b846200027f565b602080601f8311600181146200033e5760008415620003255750858301515b600019600386901b1c1916600185901b178555620002c9565b600085815260208120601f198616915b828110156200036f578886015182559484019460019091019084016200034e565b50858210156200038e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051612e19620003d6600039600081816106d40152818161092501528181610aea01528181610e5a015261145d0152612e196000f3fe608060405234801561001057600080fd5b50600436106102d65760003560e01c80635c975abb116101825780639c17a18d116100e9578063d2e01b2f116100a2578063dd62ed3e1161007c578063dd62ed3e14610696578063e40963f2146106cf578063f2fde38b146106f6578063fca3b5aa1461070957600080fd5b8063d2e01b2f14610646578063db2e21bc1461067b578063dd5b76231461068357600080fd5b80639c17a18d146105be578063a446b900146105d1578063a9059cbb146105e4578063ac15e02d146105f7578063bb4d44361461060a578063c40868931461061d57600080fd5b806378b4330f1161013b57806378b4330f1461056a57806382944e2d146105755780638da5cb5b1461057f5780638ff400f41461059057806395d89b41146105a35780639714378c146105ab57600080fd5b80635c975abb146105035780635de9a1371461051757806370a082311461053e578063715018a61461055157806372070b8114610559578063742ea0651461056257600080fd5b8063315865df116102415780633fa05f8a116101fa5780634f1bfc9e116101d45780634f1bfc9e1461049d5780634f8502d6146104a857806354b2e409146104bb578063558ac136146104db57600080fd5b80633fa05f8a1461041f5780634a8e4f8f146104695780634c5ecdac1461047157600080fd5b8063315865df146103d857806334bbeab8146103e157806336301533146103e95780633a46b1a8146103f15780633a6ba693146104045780633ccfd60b1461041757600080fd5b806311acc1a71161029357806311acc1a71461037e5780631338736f1461038657806318160ddd1461039b57806323b872dd146103a357806330f3f0db146103b6578063313ce567146103c957600080fd5b806306fdde03146102db57806307546172146102f9578063095ea7b3146103245780630a7486c7146103475780630b5dce331461035e57806310075ab21461036b575b600080fd5b6102e361071c565b6040516102f09190612adb565b60405180910390f35b60075461030c906001600160a01b031681565b6040516001600160a01b0390911681526020016102f0565b610337610332366004612b2a565b6107ae565b60405190151581526020016102f0565b61035061271081565b6040519081526020016102f0565b6009546103379060ff1681565b610350610379366004612b54565b6107c8565b610350610816565b610399610394366004612b54565b610826565b005b600254610350565b6103376103b1366004612b76565b6109f5565b6103996103c4366004612bb2565b610a0a565b604051601281526020016102f0565b6103506161a881565b610399610b74565b610399610c5f565b6103506103ff366004612b2a565b610d59565b6103506b033b2e3c9fd0803ce800000081565b610399610d67565b610427610ec6565b6040516102f09190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b601b54610350565b61035061047f366004612bcb565b6001600160a01b03166000908152600a602052604090206001015490565b610350630784ce0081565b6103506104b6366004612b2a565b610f2d565b6103506104c9366004612bb2565b60286020526000908152604090205481565b6104ee6104e9366004612bcb565b610f66565b604080519283526020830191909152016102f0565b60075461033790600160a01b900460ff1681565b6104ee610525366004612bcb565b600a602052600090815260409020805460019091015482565b61035061054c366004612bcb565b610fa4565b610399610fbf565b61035060085481565b610399610fd1565b6103506301e1338081565b6103506203f48081565b6005546001600160a01b031661030c565b61035061059e366004612b2a565b611050565b6102e361105e565b6103996105b9366004612bb2565b61106d565b6104ee6105cc366004612b2a565b6111a1565b6103996105df366004612b2a565b6111c8565b6103376105f2366004612b2a565b61128f565b610399610605366004612bb2565b61129b565b610350610618366004612bcb565b6112fc565b61035061062b366004612bcb565b6001600160a01b03166000908152600a602052604090205490565b610659610654366004612bcb565b61130a565b60408051825181526020808401519082015291810151908201526060016102f0565b61039961136e565b610399610691366004612bb2565b6114b6565b6103506106a4366004612be6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61030c7f000000000000000000000000000000000000000000000000000000000000000081565b610399610704366004612bcb565b6114f9565b610399610717366004612bcb565b611539565b60606003805461072b90612c19565b80601f016020809104026020016040519081016040528092919081815260200182805461075790612c19565b80156107a45780601f10610779576101008083540402835291602001916107a4565b820191906000526020600020905b81548152906001019060200180831161078757829003601f168201915b5050505050905090565b6000336107bc8185856115da565b60019150505b92915050565b60008215806107d5575081155b156107e2575060006107c2565b630784ce008211156107f657630784ce0091505b630784ce006108058385612c69565b61080f9190612c96565b9392505050565b600061082160025490565b905090565b61082e6115ec565b600754600160a01b900460ff16156108595760405163ab35696f60e01b815260040160405180910390fd5b8160000361087a5760405163162908e360e11b815260040160405180910390fd5b6a084595161401484a0000008211156108a65760405163172bd6a160e31b815260040160405180910390fd5b6a52b7d2dcc80cd2e4000000826108bc60025490565b6108c69190612caa565b11156108e557604051633c92a01b60e11b815260040160405180910390fd5b6301e133808110806108fa5750630784ce0081115b1561091857604051630f962f3d60e31b815260040160405180910390fd5b61094d6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611616565b60006109598242612caa565b9050610968600b338585611683565b5061097333846117bd565b60008061098360233387866117e2565b90925090506001600160801b03821661099e60203383611976565b6109a83382611a62565b604080518781526020810186905233917f167357c41e38a45e1950f61b1f5accf902c878d83f1685f7f72fb666203ce047910160405180910390a2505050506109f16001600655565b5050565b6000610a02848484611a98565b949350505050565b610a126115ec565b600754600160a01b900460ff1615610a3d5760405163ab35696f60e01b815260040160405180910390fd5b610a49600b3383611abc565b336000818152600a6020526040902054610a6391906117bd565b336000818152600b602090815260408083208151606081018352815480825260018301549482019490945260029091015460ff16151591810191909152928291610ac29190610ab3908790612caa565b602086015160239291906117e2565b90925090506001600160801b038216610add60203383611976565b610b126001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333088611616565b610b2e33610b1f33610fa4565b610b299084612cbd565b611a62565b60405185815233907fb6f6047ccb2c5eb4dd18dd4204255859ff2dd42986622a68192bad01a6084b549060200160405180910390a250505050610b716001600655565b50565b610b7c611bc6565b7f8d51cc669104abd05781e3bd91a56e4f469b4c936799300c8c63595cf9a028b6600081815260266020527fd376c864ab7c6a331f81a06094225060f13cb4620e82711512f0b39e42bf8daa5490819003610bea5760405163610a8b2d60e01b815260040160405180910390fd5b610bf76203f48082612caa565b421015610c17576040516394ef5f3560e01b815260040160405180910390fd5b6009805460ff191660011790556040517fa8da083c86be6220353772f872cb01a3bc43292309e703a3bd38197ec4d8735690600090a150600090815260266020526040812055565b610c67611bc6565b7fb90cbad5ff8166afd6f4d1cddb15dd6c2e07accef35424f938aafab38c768910600081815260266020527f60ab01d0845f25b7cf9828205af7c8f954ec07963270089ae1d27cd3e3bd824d5490819003610cd55760405163610a8b2d60e01b815260040160405180910390fd5b610ce26203f48082612caa565b421015610d02576040516394ef5f3560e01b815260040160405180910390fd5b610d0f6203f48042612caa565b60088190556040519081527f25004abd8ec665bad2ee0fe374e3b11952166214e204b05d2ea4122417dc22049060200160405180910390a150600090815260266020526040812055565b600061080f60208484611bf3565b610d6f6115ec565b336000908152600b602090815260408083208151606081018352815480825260018301549482019490945260029091015460ff161515918101919091529103610dcb57604051636086ee6f60e11b815260040160405180910390fd5b8060200151421015610df05760405163342ad40160e11b815260040160405180910390fd5b80516000610dfd33610fa4565b336000818152600b6020908152604080832083815560018082018590556002909101805460ff191690556023835290832083815501829055929350610e43929190611976565b610e4d3382611c37565b610e816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384611c6d565b60405182815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5906020015b60405180910390a2505050610ec46001600655565b565b610ef86040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b506040805160a081018252601a5481526019546020820152601b5491810191909152601f546060820152601e54608082015290565b600081815260286020526040812054808203610f5c57604051631dc0650160e31b815260040160405180910390fd5b610a028482610d59565b600080610f9b610f7584610fa4565b6002546001600160a01b0386166000908152600b60205260409020546011929190611c9e565b91509150915091565b6001600160a01b031660009081526020819052604090205490565b610fc7611bc6565b610ec46000611d31565b610fd9611bc6565b7f8d51cc669104abd05781e3bd91a56e4f469b4c936799300c8c63595cf9a028b660009081526026602052427fd376c864ab7c6a331f81a06094225060f13cb4620e82711512f0b39e42bf8daa556040517ff1065a9a3232a185314e36c6249df953c8ff0c44cdf4580b700bfcc4816d29b59190a1565b600061080f60238484611d83565b60606004805461072b90612c19565b6110756115ec565b600754600160a01b900460ff16156110a05760405163ab35696f60e01b815260040160405180910390fd5b60006110ae600b3384611e4a565b336000818152600b602090815260408083208151606081018352815480825260018301549482019490945260029091015460ff16151591810191909152939450909182916110ff91602391876117e2565b91509150600061110e33610fa4565b90506001600160801b03831661112660203383611976565b818111156111415761113c33610b298484612cbd565b61115c565b8181101561115c5761115c336111578385612cbd565b611c37565b60405186815233907fe5d4b5c97a45cd2c590e17dd6dc2c0b1935d6c56701144a267f57b1a9f6779f49060200160405180910390a2505050505050610b716001600655565b6000806111bd6111b085610fa4565b6002546011919086611c9e565b915091509250929050565b6001600160a01b038216600090815260276020908152604080832084845290915290205460ff161561120d57604051637c9a1cf960e01b815260040160405180910390fd5b6001600160a01b03821660009081526027602090815260408083208484529091528120805460ff19166001179055611244836112fc565b905081836001600160a01b03167fb4cfecf70861b7b150d8337780d34fb4cbc2114b5fb1fe51a5c5fca1849f72748360405161128291815260200190565b60405180910390a3505050565b600061080f8383611f4e565b6112a3611bc6565b6000818152602660205260409020429081905581907f200aed9164e142f3e2c072cbad433b7386e1bb53e9ec4b89d05fa991b72040aa906112e8906203f48090612caa565b60405190815260200160405180910390a250565b60006107c260238342611f5c565b61132e60405180606001604052806000815260200160008152602001600081525090565b600061133b600b8461202f565b90506040518060600160405280826000015181526020018260200151815260200161136585610fa4565b90529392505050565b6113766115ec565b6008541580611386575060085442105b156113a457604051632457654760e11b815260040160405180910390fd5b336000908152600b602090815260408083208151606081018352815480825260018301549482019490945260029091015460ff161515918101919091529103611400576040516343b976c160e01b815260040160405180910390fd5b8051600061140d33610fa4565b336000818152600b6020908152604080832083815560018082018590556002909101805460ff191690556023909252822082815501559091506114509082611c37565b6114846001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384611c6d565b60405182815233907f2e39961a70a10f4d46383948095ac2752b3ee642a7c76aa827410aaff08c2e5190602001610eaf565b6114be611bc6565b6000818152602660205260408082208290555182917f92528b34118c4cf8173b224dabbaee2937cc353ca0fa8cd525411832bb4bef4b91a250565b611501611bc6565b6001600160a01b03811661153057604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610b7181611d31565b611541611bc6565b6001600160a01b0381166115905760405162461bcd60e51b8152602060048201526016602482015275496e76616c6964206d696e746572206164647265737360501b6044820152606401611527565b600780546001600160a01b0319166001600160a01b0383169081179091556040517f726b590ef91a8c76ad05bbe91a57ef84605276528f49cd47d787f558a4e755b690600090a250565b6115e78383836001612097565b505050565b60026006540361160f57604051633ee5aeb560e01b815260040160405180910390fd5b6002600655565b6040516001600160a01b03848116602483015283811660448301526064820183905261167d9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061216c565b50505050565b6000846002015460001415801561169d5750600385015415155b156116d55784600201548210806116b75750846003015482115b156116d557604051630f962f3d60e31b815260040160405180910390fd5b826000036116f65760405163409fef3360e01b815260040160405180910390fd5b6117008242612caa565b60408051606081018252858152602080820184815260018385018181526001600160a01b038b166000908152938c90529483209351845590518382015592516002909201805460ff1916921515929092179091559087018054929350859290919061176c908490612caa565b909155505060408051848152602081018390526001600160a01b038616917f167357c41e38a45e1950f61b1f5accf902c878d83f1685f7f72fb666203ce047910160405180910390a2949350505050565b6117c960238342611d83565b601d55600254601f55600c54601e556109f160116121cf565b6000808315806117f25750428311155b156118105760405163e2d8438b60e01b815260040160405180910390fd5b630784ce0060006118214286612cbd565b90506000826118308389612c69565b61183a9190612c96565b94508490506118498282612c96565b935060006118588a8a42611f5c565b9050604051806060016040528087600f0b815260200186600f0b8152602001428152508a60000160008b6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b030219169083600f0b6001600160801b0316021790555060208201518160000160106101000a8154816001600160801b030219169083600f0b6001600160801b031602179055506040820151816001015590505061191c8a8860008861228b565b604080518281526001600160801b03881660208201526001600160a01b038b16917f2a1b0acb0a6fe010db932fc889bec652a0daadc5cafa0d648ada6b79e48937d2910160405180910390a2505050505b94509492505050565b6001600160e01b0381111561199e57604051632f537ee160e01b815260040160405180910390fd5b4360006119aa8361233c565b60408051808201825263ffffffff80861682526001600160e01b0380851660208085019182526001600160a01b038b1660008181528d83528781208054600181018255908252929020865193519094166401000000000292909416919091179101559151929350917f9d362ba40ca7e8092153f1352b7c262010bd99054fac4b75a4d86b4be14ecffa90611a52908690889063ffffffff929092168252602082015260400190565b60405180910390a2505050505050565b6001600160a01b038216611a8c5760405163ec442f0560e01b815260006004820152602401611527565b6109f16000838361236a565b600033611aa68582856123b0565b611ab1858585612428565b506001949350505050565b6001600160a01b0382166000908152602084905260409020600281015460ff16611af957604051636086ee6f60e11b815260040160405180910390fd5b42816001015411611b1d576040516307b7d7dd60e51b815260040160405180910390fd5b60058401548154611b2f908490612caa565b1115611b4e5760405163172bd6a160e31b815260040160405180910390fd5b81816000016000828254611b629190612caa565b9250508190555081846001016000828254611b7d9190612caa565b90915550506040518281526001600160a01b038416907fb6f6047ccb2c5eb4dd18dd4204255859ff2dd42986622a68192bad01a6084b549060200160405180910390a250505050565b6005546001600160a01b03163314610ec45760405163118cdaa760e01b8152336004820152602401611527565b6000438210611c1557604051631391e11b60e21b815260040160405180910390fd5b6001600160a01b0383166000908152602085905260409020610a029083612487565b6001600160a01b038216611c6157604051634b637e8f60e11b815260006004820152602401611527565b6109f18260008361236a565b6040516001600160a01b038381166024830152604482018390526115e791859182169063a9059cbb9060640161164b565b600080831580611cac575082155b15611cbc5750600090508161196d565b6040805160c0810182526008880154815260098801546020820152600a88015491810191909152600d8701546060820152600e8701546080820152600c87015460a0820152611d0c868683612627565b9250612710611d1b8486612c69565b611d259190612c96565b91505094509492505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821660009081526020848152604080832081516060810183528154600f81810b8352600160801b909104900b93810193909352600101549082018190528203611dd857600091505061080f565b8060400151831015611dee57600091505061080f565b6000816040015184611e009190612cbd565b90506000818360200151611e149190612cd0565b8351611e209190612cf7565b9050600081600f0b13611e34576000611e3f565b806001600160801b03165b979650505050505050565b6001600160a01b0382166000908152602084905260408120600281015460ff16611e8757604051636086ee6f60e11b815260040160405180910390fd5b42816001015411611eab576040516307b7d7dd60e51b815260040160405180910390fd5b6000428260010154611ebd9190612cbd565b90506000611ecb8583612caa565b90508660030154811115611ef257604051630f962f3d60e31b815260040160405180910390fd5b611efc8142612caa565b600184018190556040518181529094506001600160a01b038716907fe5d4b5c97a45cd2c590e17dd6dc2c0b1935d6c56701144a267f57b1a9f6779f49060200160405180910390a25050509392505050565b6000336107bc818585612428565b6001600160a01b03821660009081526020848152604080832081516060810183528154600f81810b8352600160801b909104900b93810193909352600101549082018190528203611fb157600091505061080f565b8060400151831015611fce57516001600160801b0316905061080f565b6000816040015184611fe09190612cbd565b8251909150811561201d5760006001838560200151611fff9190612cd0565b6120099190612d24565b8451909150612019908290612cf7565b9150505b600081600f0b13611e34576000611e3f565b612055604051806060016040528060008152602001600081526020016000151581525090565b506001600160a01b0316600090815260209182526040908190208151606081018352815481526001820154938101939093526002015460ff1615159082015290565b6001600160a01b0384166120c15760405163e602df0560e01b815260006004820152602401611527565b6001600160a01b0383166120eb57604051634a1406b160e11b815260006004820152602401611527565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561167d57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161215e91815260200190565b60405180910390a350505050565b60006121816001600160a01b038416836126e0565b905080516000141580156121a65750808060200190518101906121a49190612d62565b155b156115e757604051635274afe760e01b81526001600160a01b0384166004820152602401611527565b80600a01546000036121f45760405163a8c60b8160e01b815260040160405180910390fd5b80600901548160080154101561221d5760405163151843ad60e21b815260040160405180910390fd5b60018101544290801561226f57600a8301546122399082612caa565b821061225b576115e7836001018385600a015486600c015487600801546126ee565b600c8301546115e7906001850190846127ea565b6115e7836001018385600a015486600c015487600801546126ee565b81600f0b6000146122e1576000838152600285016020526040812080548492906122b9908490600f0b612cf7565b92506101000a8154816001600160801b030219169083600f0b6001600160801b031602179055505b80600f0b60001461167d5760008381526002850160205260408120805483929061230f908490600f0b612d84565b92506101000a8154816001600160801b030219169083600f0b6001600160801b0316021790555050505050565b60006001600160e01b0382111561236657604051632ad907fb60e01b815260040160405180910390fd5b5090565b6001600160a01b038316158061238757506001600160a01b038216155b15612397576115e7838383612887565b604051638cd22d1960e01b815260040160405180910390fd5b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461167d578181101561241957604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401611527565b61167d84848484036000612097565b6001600160a01b03831661245257604051634b637e8f60e11b815260006004820152602401611527565b6001600160a01b03821661247c5760405163ec442f0560e01b815260006004820152602401611527565b6115e783838361236a565b60004382106124a9576040516301648f5b60e31b815260040160405180910390fd5b825460008190036124be5760009150506107c2565b836000815481106124d1576124d1612db1565b60009182526020909120015463ffffffff168310156124f45760009150506107c2565b83612500600183612cbd565b8154811061251057612510612db1565b60009182526020909120015463ffffffff16831061256a5783612534600183612cbd565b8154811061254457612544612db1565b60009182526020909120015464010000000090046001600160e01b031691506107c29050565b600080612578600184612cbd565b90505b808210156125ee57600060026125918385612caa565b61259c906001612caa565b6125a69190612c96565b9050858782815481106125bb576125bb612db1565b60009182526020909120015463ffffffff16116125da578092506125e8565b6125e5600182612cbd565b91505b5061257b565b85828154811061260057612600612db1565b60009182526020909120015464010000000090046001600160e01b03169695505050505050565b60008260000361263c5750602081015161080f565b60008361265186670de0b6b3a7640000612c69565b61265b9190612c96565b90506000836020015184600001516126739190612cbd565b90506000670de0b6b3a764000061268a8385612c69565b6126949190612c96565b85602001516126a39190612caa565b905084602001518110156126c0578460200151935050505061080f565b84518111156126d65750508251915061080f9050565b9695505050505050565b606061080f838360006129a4565b84541580159061270d57506005850154855461270a9190612caa565b84105b1561272b5760405163f0aaee6560e01b815260040160405180910390fd5b8260000361274c5760405163346ab43760e11b815260040160405180910390fd5b8060000361276d576040516319a2a9bd60e01b815260040160405180910390fd5b83855561277a8385612caa565b6001860155600285018490556003850182905560006004860155600585018390556006850181905560408051858152602081018590529081018390527f0792cf7388f234e543a10a68aeb7b96568fb90b55ddc2b2945961c80a3c3a0829060600160405180910390a15050505050565b82548110806127fc5750826001015481115b1561281a576040516337bf561360e11b815260040160405180910390fd5b60028301548082039082146128765760038401548082029082828161284157612841612c80565b04146128605760405163f20577e560e01b815260040160405180910390fd5b6004850180549091019055600584018054820190555b506003830191909155600290910155565b6001600160a01b0383166128b25780600260008282546128a79190612caa565b909155506129249050565b6001600160a01b038316600090815260208190526040902054818110156129055760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401611527565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166129405760028054829003905561295f565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161128291815260200190565b6060814710156129c95760405163cd78605960e01b8152306004820152602401611527565b600080856001600160a01b031684866040516129e59190612dc7565b60006040518083038185875af1925050503d8060008114612a22576040519150601f19603f3d011682016040523d82523d6000602084013e612a27565b606091505b50915091506126d6868383606082612a4757612a4282612a8e565b61080f565b8151158015612a5e57506001600160a01b0384163b155b15612a8757604051639996b31560e01b81526001600160a01b0385166004820152602401611527565b508061080f565b805115612a9e5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b83811015612ad2578181015183820152602001612aba565b50506000910152565b6020815260008251806020840152612afa816040850160208701612ab7565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612b2557600080fd5b919050565b60008060408385031215612b3d57600080fd5b612b4683612b0e565b946020939093013593505050565b60008060408385031215612b6757600080fd5b50508035926020909101359150565b600080600060608486031215612b8b57600080fd5b612b9484612b0e565b9250612ba260208501612b0e565b9150604084013590509250925092565b600060208284031215612bc457600080fd5b5035919050565b600060208284031215612bdd57600080fd5b61080f82612b0e565b60008060408385031215612bf957600080fd5b612c0283612b0e565b9150612c1060208401612b0e565b90509250929050565b600181811c90821680612c2d57607f821691505b602082108103612c4d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107c2576107c2612c53565b634e487b7160e01b600052601260045260246000fd5b600082612ca557612ca5612c80565b500490565b808201808211156107c2576107c2612c53565b818103818111156107c2576107c2612c53565b600082600f0b82600f0b0280600f0b9150808214612cf057612cf0612c53565b5092915050565b600f82810b9082900b0360016001607f1b0319811260016001607f1b03821317156107c2576107c2612c53565b600081600f0b83600f0b80612d3b57612d3b612c80565b60016001607f1b0319821460001982141615612d5957612d59612c53565b90059392505050565b600060208284031215612d7457600080fd5b8151801515811461080f57600080fd5b600f81810b9083900b0160016001607f1b03811360016001607f1b0319821217156107c2576107c2612c53565b634e487b7160e01b600052603260045260246000fd5b60008251612dd9818460208701612ab7565b919091019291505056fea264697066735822122033a1ca93ffc4072053f9f34ffbca08a65745d2753ff879487943e3c94beec79d64736f6c63430008140033",
1613
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102d65760003560e01c80635c975abb116101825780639c17a18d116100e9578063d2e01b2f116100a2578063dd62ed3e1161007c578063dd62ed3e14610696578063e40963f2146106cf578063f2fde38b146106f6578063fca3b5aa1461070957600080fd5b8063d2e01b2f14610646578063db2e21bc1461067b578063dd5b76231461068357600080fd5b80639c17a18d146105be578063a446b900146105d1578063a9059cbb146105e4578063ac15e02d146105f7578063bb4d44361461060a578063c40868931461061d57600080fd5b806378b4330f1161013b57806378b4330f1461056a57806382944e2d146105755780638da5cb5b1461057f5780638ff400f41461059057806395d89b41146105a35780639714378c146105ab57600080fd5b80635c975abb146105035780635de9a1371461051757806370a082311461053e578063715018a61461055157806372070b8114610559578063742ea0651461056257600080fd5b8063315865df116102415780633fa05f8a116101fa5780634f1bfc9e116101d45780634f1bfc9e1461049d5780634f8502d6146104a857806354b2e409146104bb578063558ac136146104db57600080fd5b80633fa05f8a1461041f5780634a8e4f8f146104695780634c5ecdac1461047157600080fd5b8063315865df146103d857806334bbeab8146103e157806336301533146103e95780633a46b1a8146103f15780633a6ba693146104045780633ccfd60b1461041757600080fd5b806311acc1a71161029357806311acc1a71461037e5780631338736f1461038657806318160ddd1461039b57806323b872dd146103a357806330f3f0db146103b6578063313ce567146103c957600080fd5b806306fdde03146102db57806307546172146102f9578063095ea7b3146103245780630a7486c7146103475780630b5dce331461035e57806310075ab21461036b575b600080fd5b6102e361071c565b6040516102f09190612adb565b60405180910390f35b60075461030c906001600160a01b031681565b6040516001600160a01b0390911681526020016102f0565b610337610332366004612b2a565b6107ae565b60405190151581526020016102f0565b61035061271081565b6040519081526020016102f0565b6009546103379060ff1681565b610350610379366004612b54565b6107c8565b610350610816565b610399610394366004612b54565b610826565b005b600254610350565b6103376103b1366004612b76565b6109f5565b6103996103c4366004612bb2565b610a0a565b604051601281526020016102f0565b6103506161a881565b610399610b74565b610399610c5f565b6103506103ff366004612b2a565b610d59565b6103506b033b2e3c9fd0803ce800000081565b610399610d67565b610427610ec6565b6040516102f09190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b601b54610350565b61035061047f366004612bcb565b6001600160a01b03166000908152600a602052604090206001015490565b610350630784ce0081565b6103506104b6366004612b2a565b610f2d565b6103506104c9366004612bb2565b60286020526000908152604090205481565b6104ee6104e9366004612bcb565b610f66565b604080519283526020830191909152016102f0565b60075461033790600160a01b900460ff1681565b6104ee610525366004612bcb565b600a602052600090815260409020805460019091015482565b61035061054c366004612bcb565b610fa4565b610399610fbf565b61035060085481565b610399610fd1565b6103506301e1338081565b6103506203f48081565b6005546001600160a01b031661030c565b61035061059e366004612b2a565b611050565b6102e361105e565b6103996105b9366004612bb2565b61106d565b6104ee6105cc366004612b2a565b6111a1565b6103996105df366004612b2a565b6111c8565b6103376105f2366004612b2a565b61128f565b610399610605366004612bb2565b61129b565b610350610618366004612bcb565b6112fc565b61035061062b366004612bcb565b6001600160a01b03166000908152600a602052604090205490565b610659610654366004612bcb565b61130a565b60408051825181526020808401519082015291810151908201526060016102f0565b61039961136e565b610399610691366004612bb2565b6114b6565b6103506106a4366004612be6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61030c7f000000000000000000000000000000000000000000000000000000000000000081565b610399610704366004612bcb565b6114f9565b610399610717366004612bcb565b611539565b60606003805461072b90612c19565b80601f016020809104026020016040519081016040528092919081815260200182805461075790612c19565b80156107a45780601f10610779576101008083540402835291602001916107a4565b820191906000526020600020905b81548152906001019060200180831161078757829003601f168201915b5050505050905090565b6000336107bc8185856115da565b60019150505b92915050565b60008215806107d5575081155b156107e2575060006107c2565b630784ce008211156107f657630784ce0091505b630784ce006108058385612c69565b61080f9190612c96565b9392505050565b600061082160025490565b905090565b61082e6115ec565b600754600160a01b900460ff16156108595760405163ab35696f60e01b815260040160405180910390fd5b8160000361087a5760405163162908e360e11b815260040160405180910390fd5b6a084595161401484a0000008211156108a65760405163172bd6a160e31b815260040160405180910390fd5b6a52b7d2dcc80cd2e4000000826108bc60025490565b6108c69190612caa565b11156108e557604051633c92a01b60e11b815260040160405180910390fd5b6301e133808110806108fa5750630784ce0081115b1561091857604051630f962f3d60e31b815260040160405180910390fd5b61094d6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085611616565b60006109598242612caa565b9050610968600b338585611683565b5061097333846117bd565b60008061098360233387866117e2565b90925090506001600160801b03821661099e60203383611976565b6109a83382611a62565b604080518781526020810186905233917f167357c41e38a45e1950f61b1f5accf902c878d83f1685f7f72fb666203ce047910160405180910390a2505050506109f16001600655565b5050565b6000610a02848484611a98565b949350505050565b610a126115ec565b600754600160a01b900460ff1615610a3d5760405163ab35696f60e01b815260040160405180910390fd5b610a49600b3383611abc565b336000818152600a6020526040902054610a6391906117bd565b336000818152600b602090815260408083208151606081018352815480825260018301549482019490945260029091015460ff16151591810191909152928291610ac29190610ab3908790612caa565b602086015160239291906117e2565b90925090506001600160801b038216610add60203383611976565b610b126001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333088611616565b610b2e33610b1f33610fa4565b610b299084612cbd565b611a62565b60405185815233907fb6f6047ccb2c5eb4dd18dd4204255859ff2dd42986622a68192bad01a6084b549060200160405180910390a250505050610b716001600655565b50565b610b7c611bc6565b7f8d51cc669104abd05781e3bd91a56e4f469b4c936799300c8c63595cf9a028b6600081815260266020527fd376c864ab7c6a331f81a06094225060f13cb4620e82711512f0b39e42bf8daa5490819003610bea5760405163610a8b2d60e01b815260040160405180910390fd5b610bf76203f48082612caa565b421015610c17576040516394ef5f3560e01b815260040160405180910390fd5b6009805460ff191660011790556040517fa8da083c86be6220353772f872cb01a3bc43292309e703a3bd38197ec4d8735690600090a150600090815260266020526040812055565b610c67611bc6565b7fb90cbad5ff8166afd6f4d1cddb15dd6c2e07accef35424f938aafab38c768910600081815260266020527f60ab01d0845f25b7cf9828205af7c8f954ec07963270089ae1d27cd3e3bd824d5490819003610cd55760405163610a8b2d60e01b815260040160405180910390fd5b610ce26203f48082612caa565b421015610d02576040516394ef5f3560e01b815260040160405180910390fd5b610d0f6203f48042612caa565b60088190556040519081527f25004abd8ec665bad2ee0fe374e3b11952166214e204b05d2ea4122417dc22049060200160405180910390a150600090815260266020526040812055565b600061080f60208484611bf3565b610d6f6115ec565b336000908152600b602090815260408083208151606081018352815480825260018301549482019490945260029091015460ff161515918101919091529103610dcb57604051636086ee6f60e11b815260040160405180910390fd5b8060200151421015610df05760405163342ad40160e11b815260040160405180910390fd5b80516000610dfd33610fa4565b336000818152600b6020908152604080832083815560018082018590556002909101805460ff191690556023835290832083815501829055929350610e43929190611976565b610e4d3382611c37565b610e816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384611c6d565b60405182815233907f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5906020015b60405180910390a2505050610ec46001600655565b565b610ef86040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b506040805160a081018252601a5481526019546020820152601b5491810191909152601f546060820152601e54608082015290565b600081815260286020526040812054808203610f5c57604051631dc0650160e31b815260040160405180910390fd5b610a028482610d59565b600080610f9b610f7584610fa4565b6002546001600160a01b0386166000908152600b60205260409020546011929190611c9e565b91509150915091565b6001600160a01b031660009081526020819052604090205490565b610fc7611bc6565b610ec46000611d31565b610fd9611bc6565b7f8d51cc669104abd05781e3bd91a56e4f469b4c936799300c8c63595cf9a028b660009081526026602052427fd376c864ab7c6a331f81a06094225060f13cb4620e82711512f0b39e42bf8daa556040517ff1065a9a3232a185314e36c6249df953c8ff0c44cdf4580b700bfcc4816d29b59190a1565b600061080f60238484611d83565b60606004805461072b90612c19565b6110756115ec565b600754600160a01b900460ff16156110a05760405163ab35696f60e01b815260040160405180910390fd5b60006110ae600b3384611e4a565b336000818152600b602090815260408083208151606081018352815480825260018301549482019490945260029091015460ff16151591810191909152939450909182916110ff91602391876117e2565b91509150600061110e33610fa4565b90506001600160801b03831661112660203383611976565b818111156111415761113c33610b298484612cbd565b61115c565b8181101561115c5761115c336111578385612cbd565b611c37565b60405186815233907fe5d4b5c97a45cd2c590e17dd6dc2c0b1935d6c56701144a267f57b1a9f6779f49060200160405180910390a2505050505050610b716001600655565b6000806111bd6111b085610fa4565b6002546011919086611c9e565b915091509250929050565b6001600160a01b038216600090815260276020908152604080832084845290915290205460ff161561120d57604051637c9a1cf960e01b815260040160405180910390fd5b6001600160a01b03821660009081526027602090815260408083208484529091528120805460ff19166001179055611244836112fc565b905081836001600160a01b03167fb4cfecf70861b7b150d8337780d34fb4cbc2114b5fb1fe51a5c5fca1849f72748360405161128291815260200190565b60405180910390a3505050565b600061080f8383611f4e565b6112a3611bc6565b6000818152602660205260409020429081905581907f200aed9164e142f3e2c072cbad433b7386e1bb53e9ec4b89d05fa991b72040aa906112e8906203f48090612caa565b60405190815260200160405180910390a250565b60006107c260238342611f5c565b61132e60405180606001604052806000815260200160008152602001600081525090565b600061133b600b8461202f565b90506040518060600160405280826000015181526020018260200151815260200161136585610fa4565b90529392505050565b6113766115ec565b6008541580611386575060085442105b156113a457604051632457654760e11b815260040160405180910390fd5b336000908152600b602090815260408083208151606081018352815480825260018301549482019490945260029091015460ff161515918101919091529103611400576040516343b976c160e01b815260040160405180910390fd5b8051600061140d33610fa4565b336000818152600b6020908152604080832083815560018082018590556002909101805460ff191690556023909252822082815501559091506114509082611c37565b6114846001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163384611c6d565b60405182815233907f2e39961a70a10f4d46383948095ac2752b3ee642a7c76aa827410aaff08c2e5190602001610eaf565b6114be611bc6565b6000818152602660205260408082208290555182917f92528b34118c4cf8173b224dabbaee2937cc353ca0fa8cd525411832bb4bef4b91a250565b611501611bc6565b6001600160a01b03811661153057604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610b7181611d31565b611541611bc6565b6001600160a01b0381166115905760405162461bcd60e51b8152602060048201526016602482015275496e76616c6964206d696e746572206164647265737360501b6044820152606401611527565b600780546001600160a01b0319166001600160a01b0383169081179091556040517f726b590ef91a8c76ad05bbe91a57ef84605276528f49cd47d787f558a4e755b690600090a250565b6115e78383836001612097565b505050565b60026006540361160f57604051633ee5aeb560e01b815260040160405180910390fd5b6002600655565b6040516001600160a01b03848116602483015283811660448301526064820183905261167d9186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061216c565b50505050565b6000846002015460001415801561169d5750600385015415155b156116d55784600201548210806116b75750846003015482115b156116d557604051630f962f3d60e31b815260040160405180910390fd5b826000036116f65760405163409fef3360e01b815260040160405180910390fd5b6117008242612caa565b60408051606081018252858152602080820184815260018385018181526001600160a01b038b166000908152938c90529483209351845590518382015592516002909201805460ff1916921515929092179091559087018054929350859290919061176c908490612caa565b909155505060408051848152602081018390526001600160a01b038616917f167357c41e38a45e1950f61b1f5accf902c878d83f1685f7f72fb666203ce047910160405180910390a2949350505050565b6117c960238342611d83565b601d55600254601f55600c54601e556109f160116121cf565b6000808315806117f25750428311155b156118105760405163e2d8438b60e01b815260040160405180910390fd5b630784ce0060006118214286612cbd565b90506000826118308389612c69565b61183a9190612c96565b94508490506118498282612c96565b935060006118588a8a42611f5c565b9050604051806060016040528087600f0b815260200186600f0b8152602001428152508a60000160008b6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160801b030219169083600f0b6001600160801b0316021790555060208201518160000160106101000a8154816001600160801b030219169083600f0b6001600160801b031602179055506040820151816001015590505061191c8a8860008861228b565b604080518281526001600160801b03881660208201526001600160a01b038b16917f2a1b0acb0a6fe010db932fc889bec652a0daadc5cafa0d648ada6b79e48937d2910160405180910390a2505050505b94509492505050565b6001600160e01b0381111561199e57604051632f537ee160e01b815260040160405180910390fd5b4360006119aa8361233c565b60408051808201825263ffffffff80861682526001600160e01b0380851660208085019182526001600160a01b038b1660008181528d83528781208054600181018255908252929020865193519094166401000000000292909416919091179101559151929350917f9d362ba40ca7e8092153f1352b7c262010bd99054fac4b75a4d86b4be14ecffa90611a52908690889063ffffffff929092168252602082015260400190565b60405180910390a2505050505050565b6001600160a01b038216611a8c5760405163ec442f0560e01b815260006004820152602401611527565b6109f16000838361236a565b600033611aa68582856123b0565b611ab1858585612428565b506001949350505050565b6001600160a01b0382166000908152602084905260409020600281015460ff16611af957604051636086ee6f60e11b815260040160405180910390fd5b42816001015411611b1d576040516307b7d7dd60e51b815260040160405180910390fd5b60058401548154611b2f908490612caa565b1115611b4e5760405163172bd6a160e31b815260040160405180910390fd5b81816000016000828254611b629190612caa565b9250508190555081846001016000828254611b7d9190612caa565b90915550506040518281526001600160a01b038416907fb6f6047ccb2c5eb4dd18dd4204255859ff2dd42986622a68192bad01a6084b549060200160405180910390a250505050565b6005546001600160a01b03163314610ec45760405163118cdaa760e01b8152336004820152602401611527565b6000438210611c1557604051631391e11b60e21b815260040160405180910390fd5b6001600160a01b0383166000908152602085905260409020610a029083612487565b6001600160a01b038216611c6157604051634b637e8f60e11b815260006004820152602401611527565b6109f18260008361236a565b6040516001600160a01b038381166024830152604482018390526115e791859182169063a9059cbb9060640161164b565b600080831580611cac575082155b15611cbc5750600090508161196d565b6040805160c0810182526008880154815260098801546020820152600a88015491810191909152600d8701546060820152600e8701546080820152600c87015460a0820152611d0c868683612627565b9250612710611d1b8486612c69565b611d259190612c96565b91505094509492505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821660009081526020848152604080832081516060810183528154600f81810b8352600160801b909104900b93810193909352600101549082018190528203611dd857600091505061080f565b8060400151831015611dee57600091505061080f565b6000816040015184611e009190612cbd565b90506000818360200151611e149190612cd0565b8351611e209190612cf7565b9050600081600f0b13611e34576000611e3f565b806001600160801b03165b979650505050505050565b6001600160a01b0382166000908152602084905260408120600281015460ff16611e8757604051636086ee6f60e11b815260040160405180910390fd5b42816001015411611eab576040516307b7d7dd60e51b815260040160405180910390fd5b6000428260010154611ebd9190612cbd565b90506000611ecb8583612caa565b90508660030154811115611ef257604051630f962f3d60e31b815260040160405180910390fd5b611efc8142612caa565b600184018190556040518181529094506001600160a01b038716907fe5d4b5c97a45cd2c590e17dd6dc2c0b1935d6c56701144a267f57b1a9f6779f49060200160405180910390a25050509392505050565b6000336107bc818585612428565b6001600160a01b03821660009081526020848152604080832081516060810183528154600f81810b8352600160801b909104900b93810193909352600101549082018190528203611fb157600091505061080f565b8060400151831015611fce57516001600160801b0316905061080f565b6000816040015184611fe09190612cbd565b8251909150811561201d5760006001838560200151611fff9190612cd0565b6120099190612d24565b8451909150612019908290612cf7565b9150505b600081600f0b13611e34576000611e3f565b612055604051806060016040528060008152602001600081526020016000151581525090565b506001600160a01b0316600090815260209182526040908190208151606081018352815481526001820154938101939093526002015460ff1615159082015290565b6001600160a01b0384166120c15760405163e602df0560e01b815260006004820152602401611527565b6001600160a01b0383166120eb57604051634a1406b160e11b815260006004820152602401611527565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561167d57826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161215e91815260200190565b60405180910390a350505050565b60006121816001600160a01b038416836126e0565b905080516000141580156121a65750808060200190518101906121a49190612d62565b155b156115e757604051635274afe760e01b81526001600160a01b0384166004820152602401611527565b80600a01546000036121f45760405163a8c60b8160e01b815260040160405180910390fd5b80600901548160080154101561221d5760405163151843ad60e21b815260040160405180910390fd5b60018101544290801561226f57600a8301546122399082612caa565b821061225b576115e7836001018385600a015486600c015487600801546126ee565b600c8301546115e7906001850190846127ea565b6115e7836001018385600a015486600c015487600801546126ee565b81600f0b6000146122e1576000838152600285016020526040812080548492906122b9908490600f0b612cf7565b92506101000a8154816001600160801b030219169083600f0b6001600160801b031602179055505b80600f0b60001461167d5760008381526002850160205260408120805483929061230f908490600f0b612d84565b92506101000a8154816001600160801b030219169083600f0b6001600160801b0316021790555050505050565b60006001600160e01b0382111561236657604051632ad907fb60e01b815260040160405180910390fd5b5090565b6001600160a01b038316158061238757506001600160a01b038216155b15612397576115e7838383612887565b604051638cd22d1960e01b815260040160405180910390fd5b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461167d578181101561241957604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401611527565b61167d84848484036000612097565b6001600160a01b03831661245257604051634b637e8f60e11b815260006004820152602401611527565b6001600160a01b03821661247c5760405163ec442f0560e01b815260006004820152602401611527565b6115e783838361236a565b60004382106124a9576040516301648f5b60e31b815260040160405180910390fd5b825460008190036124be5760009150506107c2565b836000815481106124d1576124d1612db1565b60009182526020909120015463ffffffff168310156124f45760009150506107c2565b83612500600183612cbd565b8154811061251057612510612db1565b60009182526020909120015463ffffffff16831061256a5783612534600183612cbd565b8154811061254457612544612db1565b60009182526020909120015464010000000090046001600160e01b031691506107c29050565b600080612578600184612cbd565b90505b808210156125ee57600060026125918385612caa565b61259c906001612caa565b6125a69190612c96565b9050858782815481106125bb576125bb612db1565b60009182526020909120015463ffffffff16116125da578092506125e8565b6125e5600182612cbd565b91505b5061257b565b85828154811061260057612600612db1565b60009182526020909120015464010000000090046001600160e01b03169695505050505050565b60008260000361263c5750602081015161080f565b60008361265186670de0b6b3a7640000612c69565b61265b9190612c96565b90506000836020015184600001516126739190612cbd565b90506000670de0b6b3a764000061268a8385612c69565b6126949190612c96565b85602001516126a39190612caa565b905084602001518110156126c0578460200151935050505061080f565b84518111156126d65750508251915061080f9050565b9695505050505050565b606061080f838360006129a4565b84541580159061270d57506005850154855461270a9190612caa565b84105b1561272b5760405163f0aaee6560e01b815260040160405180910390fd5b8260000361274c5760405163346ab43760e11b815260040160405180910390fd5b8060000361276d576040516319a2a9bd60e01b815260040160405180910390fd5b83855561277a8385612caa565b6001860155600285018490556003850182905560006004860155600585018390556006850181905560408051858152602081018590529081018390527f0792cf7388f234e543a10a68aeb7b96568fb90b55ddc2b2945961c80a3c3a0829060600160405180910390a15050505050565b82548110806127fc5750826001015481115b1561281a576040516337bf561360e11b815260040160405180910390fd5b60028301548082039082146128765760038401548082029082828161284157612841612c80565b04146128605760405163f20577e560e01b815260040160405180910390fd5b6004850180549091019055600584018054820190555b506003830191909155600290910155565b6001600160a01b0383166128b25780600260008282546128a79190612caa565b909155506129249050565b6001600160a01b038316600090815260208190526040902054818110156129055760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401611527565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166129405760028054829003905561295f565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161128291815260200190565b6060814710156129c95760405163cd78605960e01b8152306004820152602401611527565b600080856001600160a01b031684866040516129e59190612dc7565b60006040518083038185875af1925050503d8060008114612a22576040519150601f19603f3d011682016040523d82523d6000602084013e612a27565b606091505b50915091506126d6868383606082612a4757612a4282612a8e565b61080f565b8151158015612a5e57506001600160a01b0384163b155b15612a8757604051639996b31560e01b81526001600160a01b0385166004820152602401611527565b508061080f565b805115612a9e5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b83811015612ad2578181015183820152602001612aba565b50506000910152565b6020815260008251806020840152612afa816040850160208701612ab7565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114612b2557600080fd5b919050565b60008060408385031215612b3d57600080fd5b612b4683612b0e565b946020939093013593505050565b60008060408385031215612b6757600080fd5b50508035926020909101359150565b600080600060608486031215612b8b57600080fd5b612b9484612b0e565b9250612ba260208501612b0e565b9150604084013590509250925092565b600060208284031215612bc457600080fd5b5035919050565b600060208284031215612bdd57600080fd5b61080f82612b0e565b60008060408385031215612bf957600080fd5b612c0283612b0e565b9150612c1060208401612b0e565b90509250929050565b600181811c90821680612c2d57607f821691505b602082108103612c4d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176107c2576107c2612c53565b634e487b7160e01b600052601260045260246000fd5b600082612ca557612ca5612c80565b500490565b808201808211156107c2576107c2612c53565b818103818111156107c2576107c2612c53565b600082600f0b82600f0b0280600f0b9150808214612cf057612cf0612c53565b5092915050565b600f82810b9082900b0360016001607f1b0319811260016001607f1b03821317156107c2576107c2612c53565b600081600f0b83600f0b80612d3b57612d3b612c80565b60016001607f1b0319821460001982141615612d5957612d59612c53565b90059392505050565b600060208284031215612d7457600080fd5b8151801515811461080f57600080fd5b600f81810b9083900b0160016001607f1b03811360016001607f1b0319821217156107c2576107c2612c53565b634e487b7160e01b600052603260045260246000fd5b60008251612dd9818460208701612ab7565b919091019291505056fea264697066735822122033a1ca93ffc4072053f9f34ffbca08a65745d2753ff879487943e3c94beec79d64736f6c63430008140033",
1946
+ "bytecode": "0x60a0346200044657601f90601f196001600160401b03620043ff3881900385810184168501838111868210176200034a578592829160405283396020948591810103126200044657516001600160a01b03808216949092909185900362000446576200006a6200044b565b916012835271566f746520457363726f776564205241414360701b81840152620000936200044b565b96600688526576655241414360d01b828901528351918383116200034a5760039283546001968782811c921680156200043b575b8483101462000425578185849311620003cf575b5083908583116001146200036c5760009262000360575b505060001982861b1c191690861b1783555b88519384116200034a5760049687548681811c911680156200033f575b838210146200032a57838111620002df575b50819285116001146200027557505082939495969760009362000269575b505082841b92600019911b1c19161783555b3315620002515760058054336001600160a01b03198216811790925560405193167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3600655821562000245578260805262093a8080600f556301e133808060105569d3c21bcecceda1000000806012556a0c685fa11e01ec6f000000918260115583602a55602b55602d55602c556161a8601b55612710601c55601d55670de0b6b3a7640000601e55604051613f9390816200046c82396080518181816103f9015281816105600152818161177101528181611b300152611ecc0152f35b63e6c4247b60e01b8152fd5b604051631e4fbdf760e01b8152600081850152602490fd5b01519150388062000151565b60008881528281209186169a919493925b8b8210620002c757505084869798999a10620002ac575b50505050811b01835562000163565b01519060f884600019921b161c19169055388080806200029d565b80888597829496860151815501960193019062000286565b88600052826000208480880160051c82019285891062000320575b0160051c019087905b8281106200031357505062000133565b6000815501879062000303565b92508192620002fa565b602289634e487b7160e01b6000525260246000fd5b90607f169062000121565b634e487b7160e01b600052604160045260246000fd5b015190503880620000f2565b908a8994169187600052856000209260005b87828210620003b857505084116200039f575b505050811b01835562000104565b015160001983881b60f8161c1916905538808062000391565b8385015186558c979095019493840193016200037e565b90915085600052836000208580850160051c8201928686106200041b575b918a91869594930160051c01915b8281106200040b575050620000db565b600081558594508a9101620003fb565b92508192620003ed565b634e487b7160e01b600052602260045260246000fd5b91607f1691620000c7565b600080fd5b60408051919082016001600160401b038111838210176200034a5760405256fe60806040908082526004918236101561001757600080fd5b600091823560e01c90816306fdde031461239957508063095ea7b3146122ef5780630b5dce33146122cc5780630c525835146122665780630c9cbf0e1461221b57806310075ab21461220057806312064c34146121ca5780631338736f14611e5057806318160ddd14611e335780631c03e6cc14611d5b578063211dc32d14611cda57806323b872dd14611bf05780632d4c6e8a14611bd257806330f3f0db146119b1578063313ce5671461199657806334bbeab8146118f8578063363015331461180a5780633a6ba693146117e55780633ccfd60b146116af5780633d509c97146115225780633fa05f8a1461149157806348e5d9f8146114005780634c5ecdac146113c55780634ee2cd7e1461139d578063558ac136146112ea5780635679ab34146112cc57806356fe702d146112ae5780635ade228a146112915780635c975abb1461126e57806370a0823114611247578063715018a6146111fc57806372070b81146111de578063742ea065146111835780637bb7bed11461114257806382944e2d146111255780638da5cb5b146110fd57806395d89b41146110185780639714378c14610da5578063981b24d014610d855780639c17a18d14610cce578063a592d9ec14610cb0578063a9059cbb14610c80578063aaf5eb6814610c5e578063ac15e02d14610be4578063afd7babe14610bc6578063b2e0df9614610b50578063b5fd73f814610b13578063b66503cf146107ff578063c74ed2fe14610788578063d279c1911461073a578063d2e01b2f14610683578063d4570c1c14610656578063d700c18b146105e5578063db2e21bc146104c0578063dd5b762314610470578063dd62ed3e14610428578063e40963f2146103e5578063f1229777146103b9578063f2fde38b1461033d5763f786b958146102b957600080fd5b346103395760203660031901126103395782356102d461257b565b600f549081811115610329577fc586b63a7dd25a8f779ea2204bd799faa31a041413e1c1dc848fc3d4db326bc593945061031181601054936133d5565b600f54602a5580602b5582519182526020820152a180f35b825163180d062b60e31b81528590fd5b5080fd5b5082346103b55760203660031901126103b5576103586124b6565b9061036161257b565b6001600160a01b0391821692831561039f575050600580546001600160a01b03198116841790915516600080516020613f1e8339815191528380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5034610339576020366003190112610339576020906103de6103d96124b6565b61292a565b9051908152f35b5034610339578160031936011261033957517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610339578060031936011261033957806020926104456124b6565b61044d6124d1565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5081833461033957602036600319011261033957359161048e61257b565b828252602e6020528120557f92528b34118c4cf8173b224dabbaee2937cc353ca0fa8cd525411832bb4bef4b8280a280f35b5082346103b557826003193601126103b5576104da6127cf565b60085480159081156105db575b506105cd57338352600a60205281832090825191610504836125a7565b60ff60038254928386526001810154602087015260028101548787015201541615156060840152156105bf57505190610559610540423361388f565b338552600a602052610553838620612818565b336127ff565b61058482337f000000000000000000000000000000000000000000000000000000000000000061284b565b519081527f2e39961a70a10f4d46383948095ac2752b3ee642a7c76aa827410aaff08c2e5160203392a26105b733612f9f565b600160065580f35b82516343b976c160e01b8152fd5b9051632457654760e11b8152fd5b90504210846104e7565b5034610339578060031936011261033957806080926106026124b6565b61060a6124d1565b9060018060a01b038091168352603260205283832091168252602052209081549160018101549163ffffffff600360028401549301541692815194855260208501528301526060820152f35b50346103395780600319360112610339576020906103de6106756124b6565b61067d6124d1565b90612a6f565b50346103395760203660031901126103395790816080926106a26124b6565b926106ab6128f6565b506001600160a01b0384168152600a60205220815191906106cb836125a7565b610700815494858552600183015494856020820152606060ff600360028701549687898601520154161515910152429061388f565b926060835161070e816125a7565b868152602081019283528481019384520193845282519485525160208501525190830152516060820152f35b5082346103b55760203660031901126103b5576107556124b6565b9161075e6127cf565b60ff6007541661077b57836105b78461077681612b9c565b612ce6565b5163ab35696f60e01b8152fd5b50346103395760203660031901126103395782356107a461257b565b6010549081811015610329578015610329577fbe1603c07044e0ff5ba6fe6ecca480a3f67123018f6f566298d5e33b2d3b5d099394506107e7600f5492826133d5565b60105481602a55602b5582519182526020820152a180f35b50346103395780600319360112610339576108186124b6565b90602435926108256127cf565b60ff918260075416610b0457849060018060a01b038095169384845260309460209386855282848720541615610af4578815610ae457855b602f548110156108e75780896108756108c893612517565b919054600392831b1c16808a528a895286888b205416156108e057603189526108a0888b209161292a565b81548042106000146108da575042925b6002830192835485116108cd575b505050505061291b565b61085d565b01555538808080806108be565b926108b0565b505061291b565b8a878487858e8b848652603181528386209161090243613b43565b8015610ad457600584015561091981303389612725565b8254804210610a9d575b5050670de0b6b3a764000091828402848104841485151715610a575762093a80809104938460018401558415610a8d578185028581048303610a7a57048510610a6a574260028301554201804211610a57578155870180546001600160c81b0319163364ffffffffff60a01b1916174360a81b63ffffffff60a81b1617600160a01b17905583516370a0823160e01b815230818901528181602481895afa908115610a4d578791610a1c575b508311610a0c577f8a888ea653a580e40660778ee0c0dabd23a81e8e2c8dcfb938e40982a157d819949596508351928352820152a2600160065580f35b835163f16eeebd60e01b81528790fd5b90508181813d8311610a46575b610a33818361260e565b81010312610a425751886109cf565b8680fd5b503d610a29565b85513d89823e3d90fd5b634e487b7160e01b885260118952602488fd5b85516308af88a160e21b81528990fd5b634e487b7160e01b8a5260118b5260248afd5b86516308af88a160e21b81528a90fd5b610acc929450610ac5610aba670de0b6b3a76400009242906127f2565b600186015490612880565b04906126a5565b918780610923565b855163cabeb65560e01b81528990fd5b835163162908e360e11b81528a90fd5b8351630cbdb7b360e41b81528a90fd5b5163ab35696f60e01b81528590fd5b50346103395760203660031901126103395760209160ff9082906001600160a01b03610b3d6124b6565b1681526030855220541690519015158152f35b5034610339576020366003190112610339578235610b6c61257b565b601b5490601c54811115610bb6578015610bb6577ffb34721264d9bd99f9397915cd89b3efe17ab520387dde594891fb4746ad1b5593945080601b5582519182526020820152a180f35b825163151843ad60e21b81528590fd5b5034610339578160031936011261033957602090600f549051908152f35b5082346103b55760203660031901126103b557803591610c0261257b565b828452602e60205242818520556203f480420191824211610c4b57507f200aed9164e142f3e2c072cbad433b7386e1bb53e9ec4b89d05fa991b72040aa9160209151908152a280f35b634e487b7160e01b855260119052602484fd5b503461033957816003193601126103395760209051670de0b6b3a76400008152f35b5034610339578060031936011261033957602090610ca9610c9f6124b6565b6024359033612631565b5160018152f35b50346103395781600319360112610339576020906002549051908152f35b509034610d825781600319360112610d8257610ce86124b6565b90601d549160205491610cff60215492429061388f565b91610d0942613932565b601b54601c548851979296929160c089016001600160401b0381118a821017610d6f578a610d539b9c505288526020880152888701526060860152608085015260a084015261326d565b612710610d6282602435612880565b0482519182526020820152f35b634e487b7160e01b875260418c52602487fd5b80fd5b509034610d82576020366003190112610d8257506103de60209235613b43565b5082346103b5576020918260031936011261101457610dc26127cf565b60ff6007541661077b57610dd533612b9c565b338452600a8352808420928151610deb816125a7565b84548152606060ff600360019788810154868601526002810154878601520154161515910152610e1a336124fd565b60ff60038201541615611005576002810193845442811115610ff657610e6f90878454940154865194610e4c866125a7565b8552858501528086850152876060850152610e6a83359142906127f2565b6126a5565b906010548211610fe8575090610e88610eca92426126a5565b809555610e94336124fd565b9060ff6003865193610ea5856125a7565b8054855289810154878601526002810154888601520154161515606083015233613522565b8151918383527fe5d4b5c97a45cd2c590e17dd6dc2c0b1935d6c56701144a267f57b1a9f6779f49283833392a2338652600a8252610f80818720610f64835191610f13836125a7565b805483526003898201549187850192835260ff8260028301549289880193845201541690606086019115158252338d5260258952878d209386518555518c85015551600284015551151591016126c8565b600e54602955610f7442876127f2565b9051906010549161334c565b610f8a81336139f4565b610f94423361388f565b80821115610fc557610fa990610faf926127f2565b336126d9565b519283523392a2610fbf33612f9f565b60065580f35b808210610fd4575b5050610faf565b610fe191610553916127f2565b8680610fcd565b8451630f962f3d60e31b8152fd5b5083516307b7d7dd60e51b8152fd5b505051636086ee6f60e11b8152fd5b8380fd5b5034610339578160031936011261033957805191809380549160019083821c928285169485156110f3575b60209586861081146110e0578589529081156110bc5750600114611081575b61107d8787611073828c038361260e565b519182918261246d565b0390f35b9080949750528583205b8284106110a9575050508261107d9461107392820101943880611062565b805486850188015292860192810161108b565b60ff19168887015250505050151560051b83010192506110738261107d3880611062565b634e487b7160e01b845260228352602484fd5b93607f1693611043565b503461033957816003193601126103395760055490516001600160a01b039091168152602090f35b5034610339578160031936011261033957602090516203f4808152f35b5082346103b55760203660031901126103b5573591602f54831015610d82575061116d602092612517565b905491519160018060a01b039160031b1c168152f35b503461033957816003193601126103395761119c61257b565b600080516020613ebe8339815191528252602e60205242908220557ff1065a9a3232a185314e36c6249df953c8ff0c44cdf4580b700bfcc4816d29b58180a180f35b50346103395781600319360112610339576020906008549051908152f35b8234610d825780600319360112610d825761121561257b565b600580546001600160a01b0319811690915581906001600160a01b0316600080516020613f1e8339815191528280a380f35b5034610339576020366003190112610339576020906103de6112676124b6565b429061388f565b503461033957816003193601126103395760209060ff6007541690519015158152f35b50346103395781600319360112610339576020905162093a808152f35b5034610339578160031936011261033957602090601c549051908152f35b50346103395781600319360112610339576020906010549051908152f35b50913461033957602036600319011261033957826113066124b6565b6001600160a01b0381168452600a602052818420548251639c17a18d60e01b8152938492839261133a929091908401612830565b0381305afa9081156113935782809261135c575b505082519182526020820152f35b915091508282813d831161138c575b611375818361260e565b81010312610d82575060208151910151388061134e565b503d61136b565b83513d84823e3d90fd5b50346103395780600319360112610339576020906103de6113bc6124b6565b60243590613ce5565b50346103395760203660031901126103395760209160029082906001600160a01b036113ef6124b6565b168152600a85522001549051908152f35b508290346103b55760203660031901126103b5576101009263ffffffff906001600160a01b03908390826114326124b6565b168152603160205220908154946001830154946002840154906005600386015493860154950154968151988952602089015287015260608601528116608085015260ff8160a01c16151560a085015260a81c1660c083015260e0820152f35b503461033957816003193601126103395760a091608082516114b2816125d8565b82815282602082015282848201528260608201520152601c5490601b5490601d54906020549160215493608083516114e9816125d8565b87815260208101928352848101938452606081019586520194855282519586525160208601525190840152516060830152516080820152f35b5082346103b55760203660031901126103b55761153d6124b6565b61154561257b565b6001600160a01b0390811680855260306020528385205490929060ff16156116a157828552603193846020528086205442106116945783865260306020528520805460ff19169055845b602f80548083101561168857908491866115a885612517565b949054600395861b1c16146115c8575050506115c39061291b565b61158f565b92600097919594929697199384810190811161167557906115fc866115ef61161b94612517565b9054908b1b1c1691612517565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8454918215611665575050019261163184612517565b81939154921b1b19169055555b7f66257bcef574219c04f7c05f7a1c78d599da10491294c92a5805c48b4cdf50098280a280f35b634e487b7160e01b895252602487fd5b634e487b7160e01b8a526011845260248afd5b5050505050905061163e565b516398ccee4b60e01b8152fd5b8351630cbdb7b360e41b8152fd5b5082346103b557826003193601126103b5576116c96127cf565b6116d233612b9c565b338352600a602052818320908251916116ea836125a7565b80548084526001820154602085015260ff600360028401549387870194855201541615156060850152156117d6575142106117c85750519061176a61172f423361388f565b338552600a602052611742838620612818565b6025602052611752838620612818565b600e5460295561176133613aa6565b61055333612ce6565b61179582337f000000000000000000000000000000000000000000000000000000000000000061284b565b519081527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560203392a26105b733612f9f565b825163342ad40160e11b8152fd5b508251636086ee6f60e11b8152fd5b5034610339578160031936011261033957602090516a0c685fa11e01ec6f0000008152f35b503461033957816003193601126103395761182361257b565b7fb90cbad5ff8166afd6f4d1cddb15dd6c2e07accef35424f938aafab38c768910808352602e6020528183205480156118e8576203f480908181018091116118d55742106118c55742018042116118b2578394506020817f25004abd8ec665bad2ee0fe374e3b11952166214e204b05d2ea4122417dc2204926008558451908152a18252602e60205281205580f35b634e487b7160e01b845260118552602484fd5b82516394ef5f3560e01b81528590fd5b634e487b7160e01b855260118652602485fd5b825163610a8b2d60e01b81528590fd5b503461033957816003193601126103395761191161257b565b600080516020613ebe833981519152808352602e6020528183205480156118e8576203f48081018091116118b257421061198657829350600160ff1960095416176009557fa8da083c86be6220353772f872cb01a3bc43292309e703a3bd38197ec4d873568380a18252602e60205281205580f35b81516394ef5f3560e01b81528490fd5b50346103395781600319360112610339576020905160128152f35b508290346103b55760209081600319360112611014578235916119d26127cf565b60ff60075416611bc2576119e533612b9c565b6119ee336124fd565b60ff60038201541615611bb25760028101549042821115611ba25780546001968783015493865194611a1f866125a7565b8386528686015286850152876060850152611a3a87836126a5565b60125410611b94575090611a5286611a6c94936126a5565b9055611a6085600e546126a5565b600e55610e94336124fd565b8151918383527fb6f6047ccb2c5eb4dd18dd4204255859ff2dd42986622a68192bad01a6084b549283833392a2338652600a825280862060258352818720818103611b64575b5050600e5480602955600a8352825580862054602155611ad06130e2565b338652600a8252610faf610fa9611b1e838920610f74855191611af2836125a7565b805483528a8101548884015260ff6003600283015492838a8701520154161515606084015242906127f2565b611b2881336139f4565b611b548730337f0000000000000000000000000000000000000000000000000000000000000000612725565b611b5e423361388f565b906127f2565b600360ff8184611b8d955485558a8101548b8601556002810154600286015501541691016126c8565b8680611ab2565b855163172bd6a160e31b8152fd5b83516307b7d7dd60e51b81528690fd5b8251636086ee6f60e11b81528590fd5b815163ab35696f60e01b81528490fd5b5034610339578160031936011261033957602090601b549051908152f35b50919034610d82576060366003190112610d8257611c0c6124b6565b611c146124d1565b916044359360018060a01b038316808352600160205286832033845260205286832054916000198310611c50575b602088610ca9898989612631565b868310611cb8578115611ca1573315611c8a57508252600160209081528683203384528152918690209085900390558290610ca938611c42565b8751634a1406b160e11b8152908101849052602490fd5b875163e602df0560e01b8152908101849052602490fd5b9050611cd6868851938493637dc7a0d960e11b855233908501612687565b0390fd5b509034610d825781600319360112610d8257611cf46124b6565b92611cfd6124d1565b60018060a01b039081811692838552603060205260ff868620541615611d4d57506103de938693600293611d34889460209a612a6f565b95168252603288528282209082528752200154906126a5565b8551630cbdb7b360e41b8152fd5b508290346103b55760203660031901126103b557611d776124b6565b611d7f61257b565b6001600160a01b038116928315611e2557838552603060205260ff8386205416611e1757602f5490600160401b821015611e045750906115fc826001611dc89401602f55612517565b81835260306020528220805460ff191660011790557ff3e4c2c64e71e6ba2eaab9a599bced62f9eb91d2cda610bf41aa8c80ff2cf8268280a280f35b634e487b7160e01b865260419052602485fd5b825163630b374b60e01b8152fd5b825163e6c4247b60e01b8152fd5b50346103395781600319360112610339576020906103de42613932565b503461033957611e5f366124e7565b611e6a9291926127cf565b60ff600754166121ba57611e7d33612b9c565b82156121aa5769d3c21bcecceda1000000831161219a576a0c685fa11e01ec6f000000611ead84610e6a42613932565b1161218a57600f9485548210801561217f575b61217157611ef08430337f0000000000000000000000000000000000000000000000000000000000000000612725565b611efa82426126a5565b91865480151580612166575b612139575b50611f1690426126a5565b90835191611f23836125a7565b858352611f9d602093611f6a8582014281526003898401868152606085019060018252611f4f336124fd565b938651855551600185015551600284015551151591016126c8565b611f7688600e546126a5565b600e558651611f84816125a7565b8981528986820152898882015289606082015233613522565b7f71fc552ee832a9004ea0bdb07cb6dd9d641eb2cb53b3cfe88c8fdcff886734a0855180611fce3394428b846133fd565b0390a2601054904284111561212b57507f167357c41e38a45e1950f61b1f5accf902c878d83f1685f7f72fb666203ce0479495966120ad9161202861201d61201642886127f2565b928a612893565b830b91830b8261350b565b9161205b8751612037816125a7565b84830b815283878201524289820152436060820152338c52600b8752888c20613498565b816120f3575b5050338852600a8352848820602584528589208181036120c1575b5050600e54806029558355600a83528488205460215561209a6130e2565b6001600160801b0316610fa981336139f4565b82519485528401523392a26105b733612f9f565b600360ff81846120ec95548555600181015460018601556002810154600286015501541691016126c8565b388061207c565b858a52600c855261210b878b2092835480930b613438565b6001600160801b03166001600160801b0319919091161790553880612061565b845163e2d8438b60e01b8152fd5b8110801561215b575b61214c5738611f0b565b508251630f962f3d60e31b8152fd5b506010548111612142565b506010541515611f06565b8251630f962f3d60e31b8152fd5b506010548211611ec0565b8151633c92a01b60e11b81528590fd5b815163172bd6a160e31b81528590fd5b815163162908e360e11b81528590fd5b815163ab35696f60e01b81528590fd5b50346103395760203660031901126103395760209181906001600160a01b036121f16124b6565b16815280845220549051908152f35b5034610339576020906103de612215366124e7565b906128b3565b503461033957806003193601126103395760028160209361223a6124b6565b6122426124d1565b6001600160a01b039182168352603287528383209116825285522001549051908152f35b503461033957602036600319011261033957823561228261257b565b601c5490601b54811015610bb6578015610bb6577f513e0cb9f7e6f20f3331a3d6bc5a2070854a399222885cccf74ac523949f0b3a93945080601c5582519182526020820152a180f35b503461033957816003193601126103395760209060ff6009541690519015158152f35b5082346103b557816003193601126103b5576123096124b6565b602435903315612382576001600160a01b031691821561236b57508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8351634a1406b160e11b8152908101859052602490fd5b835163e602df0560e01b8152808401869052602490fd5b9293905034611014578360031936011261101457600354600181811c9186908281168015612463575b6020958686108214612450575084885290811561242e57506001146123f3575b61107d8686611073828b038361260e565b929550600383528583205b82841061241b575050508261107d946110739282010194386123e2565b80548685018801529286019281016123fe565b60ff191687860152505050151560051b83010192506110738261107d386123e2565b634e487b7160e01b845260229052602483fd5b93607f16936123c2565b6020808252825181830181905290939260005b8281106124a257505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501612480565b600435906001600160a01b03821682036124cc57565b600080fd5b602435906001600160a01b03821682036124cc57565b60409060031901126124cc576004359060243590565b6001600160a01b03166000908152600a6020526040902090565b602f5481101561253257602f60005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b60245481101561253257602460005260206000200190600090565b80548210156125325760005260206000200190600090565b6005546001600160a01b0316330361258f57565b60405163118cdaa760e01b8152336004820152602490fd5b608081019081106001600160401b038211176125c257604052565b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b038211176125c257604052565b604081019081106001600160401b038211176125c257604052565b601f909101601f19168101906001600160401b038211908210176125c257604052565b91906001600160a01b038084161561266e578116156126555761265392612eb1565b565b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b604091949392606082019560018060a01b0316825260208201520152565b919082018092116126b257565b634e487b7160e01b600052601160045260246000fd5b9060ff801983541691151516179055565b6001600160a01b031690811561265557600080516020613f3e8339815191526020826127096000946002546126a5565b60025584845283825260408420818154019055604051908152a3565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261265391612767826125d8565b906000602091828151910182855af1156127c3576000513d6127ba57506001600160a01b0381163b155b6127985750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b60011415612791565b6040513d6000823e3d90fd5b6002600654146127e0576002600655565b604051633ee5aeb560e01b8152600490fd5b919082039182116126b257565b906001600160a01b0382161561266e5761265391612ddf565b60036000918281558260018201558260028201550155565b6001600160a01b039091168152602081019190915260400190565b612767612653939261287260405194859263a9059cbb60e01b602085015260248401612830565b03601f19810184528361260e565b818102929181159184041417156126b257565b811561289d570490565b634e487b7160e01b600052601260045260246000fd5b801580156128ee575b6128e7576128d76128dc92601054928382116128df57612880565b612893565b90565b839150612880565b5050600090565b5081156128bc565b60405190612903826125a7565b60006060838281528260208201528260408201520152565b60001981146126b25760010190565b6001600160a01b0390811660009081526031602052604080822090516101008101949392906001600160401b03861181871017612a5b5760e093949560405282549283825260018101549360208301948552600282015492836040820152600560038401549363ffffffff606084019a868c526004830154908116608086015260ff8160a01c16151560a086015260a81c1660c0840152015496879101528515612a5157804210600014612a4b575042905b82821115612a415750906129ef916127f2565b91612a06670de0b6b3a76400009384925190612880565b04828102928184041490151715612a2d57506128dc9291612a2691612893565b90516126a5565b634e487b7160e01b81526011600452602490fd5b9550505050505090565b906129dc565b5094505050505090565b634e487b7160e01b82526041600452602482fd5b9060018060a01b0391828216600090808252603060205260409460ff868420541615612afb576060866128dc9796948694612af594612a269816825260326020528282209082526020522063ffffffff6003885192612acd846125a7565b80548452600181015499602085019a8b52600282015490850152015416918291015282613ce5565b50612b0c565b8551630cbdb7b360e41b8152600490fd5b670de0b6b3a764000091612b92612b989260018060a01b0380821660005260326020526040600020908416600052602052612b8a612b8460406000209263ffffffff600360405195612b5d876125a7565b80548752600181015460208801526002810154604088015201541690816060860152613ce5565b9361292a565b9051906127f2565b90612880565b0490565b60005b602f54811015612ce25780612bb6612c2992612517565b9060018060a01b03809154600393841b1c16908160005260209260308452604060ff816000205416156108be57603185528060002093612bf58161292a565b938554804210600014612cdd5750425b6002870180548211612cd0575b505089169586612c2e575b5050505050505061291b565b612b9f565b612c9092876000526032825280600020836000528252806000209485019763ffffffff97886004818c541692015460a81c168110600014612cbc57612c73908d613ce5565b928460005260338152826000209160005252600020555b88612b0c565b612c9f600183019182546126a5565b905555431663ffffffff1982541617905538808080808080612c1d565b509190603382526000209160005252612c8a565b8686890155553880612c12565b612c05565b5050565b6001600160a01b0390808216908115612dcd5760005b602f54811015612dc757808385612d15612d6794612517565b90549060031b1c168060005260206030815260409060ff82600020541615612dbe578360005260328152816000208360005281528160002091600183019081549182612d6c575050505050505061291b565b612cfc565b7f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e9460006002925501612da08382546126a5565b9055612dad828a8761284b565b51908152a383388080808080612c1d565b5050505061291b565b50505050565b60405163e6c4247b60e01b8152600490fd5b9091906001600160a01b038116908115808015612ea9575b612e0d57604051638cd22d1960e01b8152600490fd5b15612e495750600080516020613f3e833981519152602084612e34600095966002546126a5565b6002555b8060025403600255604051908152a3565b92600082815280602052604081205494828610612e8a575081816040600080516020613f3e8339815191529460009798876020965283865203912055612e38565b8590611cd68460405193849363391434e360e21b855260048501612687565b506001612df7565b6001600160a01b038082169290918315808015612f95575b612edf57604051638cd22d1960e01b8152600490fd5b15612f395750600080516020613f3e83398151915291602091612f04866002546126a5565b6002555b169384612f215780600254036002555b604051908152a3565b84600052600082526040600020818154019055612f18565b60009084825281602052604082205490868210612f785750918160408760209588600080516020613f3e83398151915298965283875203912055612f08565b611cd68760405193849363391434e360e21b855260048501612687565b5083831615612ec9565b612fb1612fab82613377565b826139f4565b612fba42613932565b6001600160e01b03908181116130d05761300963ffffffff92834316921691600080516020613ede833981519152604093845190612ff7826125f3565b83825260209482828780950152613991565b8551908152a2600e5481556001600160a01b038481166000818152600a84528481205460215592909161303a6130e2565b835b602f548110156130c65780826130546130b993612517565b919054600392831b1c16908188526030865260ff8989205416156108e0576031865289898920544210156130be576130a191888a52603288528a8a20848b5288528a8a200154168b613ce5565b9087526033855287872086885285528787205561291b565b61303c565b50505061291b565b5050505050505050565b604051632f537ee160e01b8152600490fd5b601d54801561325b57601b5490601c54821061324957601454908115158080613237575b6131b557601f54928161319f575b5061318d57821561317b577f0792cf7388f234e543a10a68aeb7b96568fb90b55ddc2b2945961c80a3c3a082924260145561314f82426126a5565b6015554260165582601755600060185581601955601a5561317660405192839242846133fd565b0390a1565b6040516319a2a9bd60e01b8152600490fd5b60405163f0aaee6560e01b8152600490fd5b6131ad9150601954906126a5565b421038613114565b5050601f5491504210801561322c575b61321a576016544203806131de575b5060175542601655565b601754818102906131ef8383612893565b03613208576018540160185560195401601955386131d4565b60405163f20577e560e01b8152600490fd5b6040516337bf561360e11b8152600490fd5b5060155442116131c5565b5061324282846126a5565b4210613106565b60405163151843ad60e21b8152600490fd5b60405163a8c60b8160e01b8152600490fd5b91909182158015613340575b61333657670de0b6b3a764000092838202918083048514901517156126b2576132a191612893565b66038d7ea4c68000811061333657606082015190838202918083048514901517156126b2576132dd8491612b9261330d94608087015190612893565b048251936132fb6132f460208601968751906127f2565b8093612880565b049080821161332e575b5083516126a5565b9151808310613328575051808211613323575090565b905090565b91505090565b905038613305565b5060209150015190565b50608082015115613279565b610e6a6133619284928382116128df57612880565b6000198101919082116126b2576128dc91612893565b6001600160a01b03166000908152600a60205260409020600381015460ff161580156133c7575b6133c157806133b560026128dc93015442906127f2565b9054906010549161334c565b50600090565b50600281015442101561339e565b818110156133eb5780156133eb57600f55601055565b604051630f962f3d60e31b8152600490fd5b6040919493926060820195825260208201520152565b600f91820b910b039060016001607f1b0319821260016001607f1b038313176126b257565b600f91820b910b019060016001607f1b0319821260016001607f1b038313176126b257565b600d5481101561253257600d6000526003602060002091020190600090565b8054821015612532576000526003602060002091020190600090565b8054600160401b8110156125c2576134b59160018201815561347c565b9190916134f5578051602082015160801b6001600160801b0319166001600160801b03909116178255604081015160018301556060015160029190910155565b634e487b7160e01b600052600060045260246000fd5b90600f0b90600f0b029081600f0b9182036126b257565b929192604091825192613534846125a7565b60009586855260209485810190888252428482015260609543878301528484019088848c8451894282116137c2575b505050505060018060a01b03168a52600b885261358282868c20613498565b61358a6128f6565b50600d549387851561379e5750600019850185811161378a57906135ae899261345d565b50978c8b8a5480600f0b9060801d8b51926135c8846125a7565b82845281600f0b90840152428c84015243878401526135ec6001849e0154426127f2565b9182613756575b50505050505b8281015115158061374a575b6136e1575b500151151590816136d5575b5061369f575b5050600160401b81101561368b5780600161363a9201600d5561345d565b9490946136775782519083015160801b6001600160801b0319166001600160801b0390911617845581015160018401550151600291909101559050565b634e487b7160e01b87526004879052602487fd5b634e487b7160e01b87526041600452602487fd5b51906136b2600f92830b8651840b613438565b820b855251810b906136ca878601928351830b613438565b900b9052388061361c565b90504290511138613616565b6136ee42898301516127f2565b81516010546001600160801b039261372c92849161370e9184919061334c565b16936137228d600f96870b9051870b613413565b850b8d5251612893565b16810b906137408c8b01928351830b613413565b900b90523861360a565b50428882015111613605565b61376861376e928694600f0b9061350b565b90613413565b600f0b80835212613782575b8080806135f3565b528c3861377a565b634e487b7160e01b8c52601160045260248cfd5b9086516137aa816125a7565b8c81528c8b82015242888201524383820152976135f9565b6137fb926137d46138329342906127f2565b8d8c51908d6137e86010548095819561334c565b60018060801b0380998195829451612893565b1699600f9a8b0b905216880b8c52848101924284511161384d575b50505050600c8a51860b9689518352522093845480940b613438565b6001600160801b0319909216911617905588848c3889613563565b6138579151612893565b16860b90518252600c87528282209061387482549182890b613413565b6001600160801b031990911690861617905538848e82613816565b6001600160a01b03166000908152600b60205260408120805491929190811561391857600019820191821161391e57906138c89161347c565b506001810154828111613918576138e56138f4916138fd946127f2565b915491600f0b8260801d61350b565b90600f0b613413565b908082600f0b1360001461332357506001600160801b031690565b50505090565b634e487b7160e01b84526011600452602484fd5b600d5480156128e75760001981019081116126b2576139509061345d565b506001810154828111613989576138e56138f49161396d946127f2565b60008082600f0b1360001461332357506001600160801b031690565b505050600090565b602454600160401b8110156125c2578060016139b09201602455612548565b9190916134f557805160209182015190911b63ffffffff191663ffffffff91909116179055565b8054600160401b8110156125c2576139b091600182018155612563565b6001600160e01b03918281116130d0576001600160a01b03909116914363ffffffff1691908315613a6b5791604091613a5e600080516020613efe8339815191529486600052602260205284600020855191613a4f836125f3565b858352841660208301526139d7565b82519182526020820152a2565b600080516020613ede83398151915292935060209116613a9d604051613a90816125f3565b8581528284820152613991565b604051908152a2565b6001600160a01b03164363ffffffff168115613b08576040600080516020613efe83398151915291836000526022602052613af982600020835190613aea826125f3565b838252600060208301526139d7565b815190815260006020820152a2565b9050613b28604051613b19816125f3565b82815260006020820152613991565b600080516020613ede833981519152602060405160008152a2565b438111613c9a5760248054801561398957600090600019808201828111613c8657905b818410613c15575050811015613c005781600052602060002001549163ffffffff831691818314613bf757600c820291808304600c1490151715613be357600c830292808404600c1490151715613be3575081811115613bdb576128dc9291613bce916127f2565b602b54809260201c613cac565b505060201c90565b634e487b7160e01b60009081526011600452fd5b50505060201c90565b50634e487b7160e01b60009081526032600452fd5b9092613c2184826126a5565b6001808201809211613c71571c908663ffffffff613c3e84612548565b50541611613c4f5750925b90613b66565b935081810190811115613c495784634e487b7160e01b60005260116004526000fd5b86634e487b7160e01b60005260116004526000fd5b5050634e487b7160e01b8252506011600452fd5b604051631391e11b60e21b8152600490fd5b9181811015613cdc57613361928492610e6a9260009181811115613cd457612b9292506127f2565b505090612880565b50505050600090565b438211613c9a5760018060a01b03166000918183526025602052604083209060405192613d11846125a7565b82549081855260019160ff6003848701549660208901978852600281015460408a0152015416159081159182606089015291613eb4575b50613eac57855260226020526040852080548015613ea357869260001991808301908111613e7b57939291905b848410613e2f575050613d889250612563565b50548163ffffffff821614613e245750438103613dcf575042905b519283821115613dc857506128dc92613dbb916127f2565b905190602b548092613cac565b9250505090565b8381430391124382128116904383139015161761391e5783811315613e12575b600c810290808204600c149015171561391e57613e0c90426127f2565b90613da3565b600160ff1b811461391e578303613def565b935050505060201c90565b909192613e3c85826126a5565b828101809111613e8f57821c908663ffffffff613e598488612563565b50541611613e6d5750935b93929190613d75565b945082810190811115613e64575b634e487b7160e01b89526011600452602489fd5b634e487b7160e01b8a52601160045260248afd5b50505050505090565b505050505090565b90501538613d4856fe34937d7722678a23b9c1078911aa0d40eec7326d87ab5d725c6e06c2ae06fbabb45c44c56db4e898aff83acd229edf5e8e6ef1ecc211e8775a7203a310225b379d362ba40ca7e8092153f1352b7c262010bd99054fac4b75a4d86b4be14ecffa8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220960b35d3660ef61e09b8f55a36abadcd1c42458724ab25d9d868f951cf4770a864736f6c63430008140033",
1947
+ "deployedBytecode": "0x60806040908082526004918236101561001757600080fd5b600091823560e01c90816306fdde031461239957508063095ea7b3146122ef5780630b5dce33146122cc5780630c525835146122665780630c9cbf0e1461221b57806310075ab21461220057806312064c34146121ca5780631338736f14611e5057806318160ddd14611e335780631c03e6cc14611d5b578063211dc32d14611cda57806323b872dd14611bf05780632d4c6e8a14611bd257806330f3f0db146119b1578063313ce5671461199657806334bbeab8146118f8578063363015331461180a5780633a6ba693146117e55780633ccfd60b146116af5780633d509c97146115225780633fa05f8a1461149157806348e5d9f8146114005780634c5ecdac146113c55780634ee2cd7e1461139d578063558ac136146112ea5780635679ab34146112cc57806356fe702d146112ae5780635ade228a146112915780635c975abb1461126e57806370a0823114611247578063715018a6146111fc57806372070b81146111de578063742ea065146111835780637bb7bed11461114257806382944e2d146111255780638da5cb5b146110fd57806395d89b41146110185780639714378c14610da5578063981b24d014610d855780639c17a18d14610cce578063a592d9ec14610cb0578063a9059cbb14610c80578063aaf5eb6814610c5e578063ac15e02d14610be4578063afd7babe14610bc6578063b2e0df9614610b50578063b5fd73f814610b13578063b66503cf146107ff578063c74ed2fe14610788578063d279c1911461073a578063d2e01b2f14610683578063d4570c1c14610656578063d700c18b146105e5578063db2e21bc146104c0578063dd5b762314610470578063dd62ed3e14610428578063e40963f2146103e5578063f1229777146103b9578063f2fde38b1461033d5763f786b958146102b957600080fd5b346103395760203660031901126103395782356102d461257b565b600f549081811115610329577fc586b63a7dd25a8f779ea2204bd799faa31a041413e1c1dc848fc3d4db326bc593945061031181601054936133d5565b600f54602a5580602b5582519182526020820152a180f35b825163180d062b60e31b81528590fd5b5080fd5b5082346103b55760203660031901126103b5576103586124b6565b9061036161257b565b6001600160a01b0391821692831561039f575050600580546001600160a01b03198116841790915516600080516020613f1e8339815191528380a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5034610339576020366003190112610339576020906103de6103d96124b6565b61292a565b9051908152f35b5034610339578160031936011261033957517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5034610339578060031936011261033957806020926104456124b6565b61044d6124d1565b6001600160a01b0391821683526001865283832091168252845220549051908152f35b5081833461033957602036600319011261033957359161048e61257b565b828252602e6020528120557f92528b34118c4cf8173b224dabbaee2937cc353ca0fa8cd525411832bb4bef4b8280a280f35b5082346103b557826003193601126103b5576104da6127cf565b60085480159081156105db575b506105cd57338352600a60205281832090825191610504836125a7565b60ff60038254928386526001810154602087015260028101548787015201541615156060840152156105bf57505190610559610540423361388f565b338552600a602052610553838620612818565b336127ff565b61058482337f000000000000000000000000000000000000000000000000000000000000000061284b565b519081527f2e39961a70a10f4d46383948095ac2752b3ee642a7c76aa827410aaff08c2e5160203392a26105b733612f9f565b600160065580f35b82516343b976c160e01b8152fd5b9051632457654760e11b8152fd5b90504210846104e7565b5034610339578060031936011261033957806080926106026124b6565b61060a6124d1565b9060018060a01b038091168352603260205283832091168252602052209081549160018101549163ffffffff600360028401549301541692815194855260208501528301526060820152f35b50346103395780600319360112610339576020906103de6106756124b6565b61067d6124d1565b90612a6f565b50346103395760203660031901126103395790816080926106a26124b6565b926106ab6128f6565b506001600160a01b0384168152600a60205220815191906106cb836125a7565b610700815494858552600183015494856020820152606060ff600360028701549687898601520154161515910152429061388f565b926060835161070e816125a7565b868152602081019283528481019384520193845282519485525160208501525190830152516060820152f35b5082346103b55760203660031901126103b5576107556124b6565b9161075e6127cf565b60ff6007541661077b57836105b78461077681612b9c565b612ce6565b5163ab35696f60e01b8152fd5b50346103395760203660031901126103395782356107a461257b565b6010549081811015610329578015610329577fbe1603c07044e0ff5ba6fe6ecca480a3f67123018f6f566298d5e33b2d3b5d099394506107e7600f5492826133d5565b60105481602a55602b5582519182526020820152a180f35b50346103395780600319360112610339576108186124b6565b90602435926108256127cf565b60ff918260075416610b0457849060018060a01b038095169384845260309460209386855282848720541615610af4578815610ae457855b602f548110156108e75780896108756108c893612517565b919054600392831b1c16808a528a895286888b205416156108e057603189526108a0888b209161292a565b81548042106000146108da575042925b6002830192835485116108cd575b505050505061291b565b61085d565b01555538808080806108be565b926108b0565b505061291b565b8a878487858e8b848652603181528386209161090243613b43565b8015610ad457600584015561091981303389612725565b8254804210610a9d575b5050670de0b6b3a764000091828402848104841485151715610a575762093a80809104938460018401558415610a8d578185028581048303610a7a57048510610a6a574260028301554201804211610a57578155870180546001600160c81b0319163364ffffffffff60a01b1916174360a81b63ffffffff60a81b1617600160a01b17905583516370a0823160e01b815230818901528181602481895afa908115610a4d578791610a1c575b508311610a0c577f8a888ea653a580e40660778ee0c0dabd23a81e8e2c8dcfb938e40982a157d819949596508351928352820152a2600160065580f35b835163f16eeebd60e01b81528790fd5b90508181813d8311610a46575b610a33818361260e565b81010312610a425751886109cf565b8680fd5b503d610a29565b85513d89823e3d90fd5b634e487b7160e01b885260118952602488fd5b85516308af88a160e21b81528990fd5b634e487b7160e01b8a5260118b5260248afd5b86516308af88a160e21b81528a90fd5b610acc929450610ac5610aba670de0b6b3a76400009242906127f2565b600186015490612880565b04906126a5565b918780610923565b855163cabeb65560e01b81528990fd5b835163162908e360e11b81528a90fd5b8351630cbdb7b360e41b81528a90fd5b5163ab35696f60e01b81528590fd5b50346103395760203660031901126103395760209160ff9082906001600160a01b03610b3d6124b6565b1681526030855220541690519015158152f35b5034610339576020366003190112610339578235610b6c61257b565b601b5490601c54811115610bb6578015610bb6577ffb34721264d9bd99f9397915cd89b3efe17ab520387dde594891fb4746ad1b5593945080601b5582519182526020820152a180f35b825163151843ad60e21b81528590fd5b5034610339578160031936011261033957602090600f549051908152f35b5082346103b55760203660031901126103b557803591610c0261257b565b828452602e60205242818520556203f480420191824211610c4b57507f200aed9164e142f3e2c072cbad433b7386e1bb53e9ec4b89d05fa991b72040aa9160209151908152a280f35b634e487b7160e01b855260119052602484fd5b503461033957816003193601126103395760209051670de0b6b3a76400008152f35b5034610339578060031936011261033957602090610ca9610c9f6124b6565b6024359033612631565b5160018152f35b50346103395781600319360112610339576020906002549051908152f35b509034610d825781600319360112610d8257610ce86124b6565b90601d549160205491610cff60215492429061388f565b91610d0942613932565b601b54601c548851979296929160c089016001600160401b0381118a821017610d6f578a610d539b9c505288526020880152888701526060860152608085015260a084015261326d565b612710610d6282602435612880565b0482519182526020820152f35b634e487b7160e01b875260418c52602487fd5b80fd5b509034610d82576020366003190112610d8257506103de60209235613b43565b5082346103b5576020918260031936011261101457610dc26127cf565b60ff6007541661077b57610dd533612b9c565b338452600a8352808420928151610deb816125a7565b84548152606060ff600360019788810154868601526002810154878601520154161515910152610e1a336124fd565b60ff60038201541615611005576002810193845442811115610ff657610e6f90878454940154865194610e4c866125a7565b8552858501528086850152876060850152610e6a83359142906127f2565b6126a5565b906010548211610fe8575090610e88610eca92426126a5565b809555610e94336124fd565b9060ff6003865193610ea5856125a7565b8054855289810154878601526002810154888601520154161515606083015233613522565b8151918383527fe5d4b5c97a45cd2c590e17dd6dc2c0b1935d6c56701144a267f57b1a9f6779f49283833392a2338652600a8252610f80818720610f64835191610f13836125a7565b805483526003898201549187850192835260ff8260028301549289880193845201541690606086019115158252338d5260258952878d209386518555518c85015551600284015551151591016126c8565b600e54602955610f7442876127f2565b9051906010549161334c565b610f8a81336139f4565b610f94423361388f565b80821115610fc557610fa990610faf926127f2565b336126d9565b519283523392a2610fbf33612f9f565b60065580f35b808210610fd4575b5050610faf565b610fe191610553916127f2565b8680610fcd565b8451630f962f3d60e31b8152fd5b5083516307b7d7dd60e51b8152fd5b505051636086ee6f60e11b8152fd5b8380fd5b5034610339578160031936011261033957805191809380549160019083821c928285169485156110f3575b60209586861081146110e0578589529081156110bc5750600114611081575b61107d8787611073828c038361260e565b519182918261246d565b0390f35b9080949750528583205b8284106110a9575050508261107d9461107392820101943880611062565b805486850188015292860192810161108b565b60ff19168887015250505050151560051b83010192506110738261107d3880611062565b634e487b7160e01b845260228352602484fd5b93607f1693611043565b503461033957816003193601126103395760055490516001600160a01b039091168152602090f35b5034610339578160031936011261033957602090516203f4808152f35b5082346103b55760203660031901126103b5573591602f54831015610d82575061116d602092612517565b905491519160018060a01b039160031b1c168152f35b503461033957816003193601126103395761119c61257b565b600080516020613ebe8339815191528252602e60205242908220557ff1065a9a3232a185314e36c6249df953c8ff0c44cdf4580b700bfcc4816d29b58180a180f35b50346103395781600319360112610339576020906008549051908152f35b8234610d825780600319360112610d825761121561257b565b600580546001600160a01b0319811690915581906001600160a01b0316600080516020613f1e8339815191528280a380f35b5034610339576020366003190112610339576020906103de6112676124b6565b429061388f565b503461033957816003193601126103395760209060ff6007541690519015158152f35b50346103395781600319360112610339576020905162093a808152f35b5034610339578160031936011261033957602090601c549051908152f35b50346103395781600319360112610339576020906010549051908152f35b50913461033957602036600319011261033957826113066124b6565b6001600160a01b0381168452600a602052818420548251639c17a18d60e01b8152938492839261133a929091908401612830565b0381305afa9081156113935782809261135c575b505082519182526020820152f35b915091508282813d831161138c575b611375818361260e565b81010312610d82575060208151910151388061134e565b503d61136b565b83513d84823e3d90fd5b50346103395780600319360112610339576020906103de6113bc6124b6565b60243590613ce5565b50346103395760203660031901126103395760209160029082906001600160a01b036113ef6124b6565b168152600a85522001549051908152f35b508290346103b55760203660031901126103b5576101009263ffffffff906001600160a01b03908390826114326124b6565b168152603160205220908154946001830154946002840154906005600386015493860154950154968151988952602089015287015260608601528116608085015260ff8160a01c16151560a085015260a81c1660c083015260e0820152f35b503461033957816003193601126103395760a091608082516114b2816125d8565b82815282602082015282848201528260608201520152601c5490601b5490601d54906020549160215493608083516114e9816125d8565b87815260208101928352848101938452606081019586520194855282519586525160208601525190840152516060830152516080820152f35b5082346103b55760203660031901126103b55761153d6124b6565b61154561257b565b6001600160a01b0390811680855260306020528385205490929060ff16156116a157828552603193846020528086205442106116945783865260306020528520805460ff19169055845b602f80548083101561168857908491866115a885612517565b949054600395861b1c16146115c8575050506115c39061291b565b61158f565b92600097919594929697199384810190811161167557906115fc866115ef61161b94612517565b9054908b1b1c1691612517565b90919082549060031b9160018060a01b03809116831b921b1916179055565b8454918215611665575050019261163184612517565b81939154921b1b19169055555b7f66257bcef574219c04f7c05f7a1c78d599da10491294c92a5805c48b4cdf50098280a280f35b634e487b7160e01b895252602487fd5b634e487b7160e01b8a526011845260248afd5b5050505050905061163e565b516398ccee4b60e01b8152fd5b8351630cbdb7b360e41b8152fd5b5082346103b557826003193601126103b5576116c96127cf565b6116d233612b9c565b338352600a602052818320908251916116ea836125a7565b80548084526001820154602085015260ff600360028401549387870194855201541615156060850152156117d6575142106117c85750519061176a61172f423361388f565b338552600a602052611742838620612818565b6025602052611752838620612818565b600e5460295561176133613aa6565b61055333612ce6565b61179582337f000000000000000000000000000000000000000000000000000000000000000061284b565b519081527f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d560203392a26105b733612f9f565b825163342ad40160e11b8152fd5b508251636086ee6f60e11b8152fd5b5034610339578160031936011261033957602090516a0c685fa11e01ec6f0000008152f35b503461033957816003193601126103395761182361257b565b7fb90cbad5ff8166afd6f4d1cddb15dd6c2e07accef35424f938aafab38c768910808352602e6020528183205480156118e8576203f480908181018091116118d55742106118c55742018042116118b2578394506020817f25004abd8ec665bad2ee0fe374e3b11952166214e204b05d2ea4122417dc2204926008558451908152a18252602e60205281205580f35b634e487b7160e01b845260118552602484fd5b82516394ef5f3560e01b81528590fd5b634e487b7160e01b855260118652602485fd5b825163610a8b2d60e01b81528590fd5b503461033957816003193601126103395761191161257b565b600080516020613ebe833981519152808352602e6020528183205480156118e8576203f48081018091116118b257421061198657829350600160ff1960095416176009557fa8da083c86be6220353772f872cb01a3bc43292309e703a3bd38197ec4d873568380a18252602e60205281205580f35b81516394ef5f3560e01b81528490fd5b50346103395781600319360112610339576020905160128152f35b508290346103b55760209081600319360112611014578235916119d26127cf565b60ff60075416611bc2576119e533612b9c565b6119ee336124fd565b60ff60038201541615611bb25760028101549042821115611ba25780546001968783015493865194611a1f866125a7565b8386528686015286850152876060850152611a3a87836126a5565b60125410611b94575090611a5286611a6c94936126a5565b9055611a6085600e546126a5565b600e55610e94336124fd565b8151918383527fb6f6047ccb2c5eb4dd18dd4204255859ff2dd42986622a68192bad01a6084b549283833392a2338652600a825280862060258352818720818103611b64575b5050600e5480602955600a8352825580862054602155611ad06130e2565b338652600a8252610faf610fa9611b1e838920610f74855191611af2836125a7565b805483528a8101548884015260ff6003600283015492838a8701520154161515606084015242906127f2565b611b2881336139f4565b611b548730337f0000000000000000000000000000000000000000000000000000000000000000612725565b611b5e423361388f565b906127f2565b600360ff8184611b8d955485558a8101548b8601556002810154600286015501541691016126c8565b8680611ab2565b855163172bd6a160e31b8152fd5b83516307b7d7dd60e51b81528690fd5b8251636086ee6f60e11b81528590fd5b815163ab35696f60e01b81528490fd5b5034610339578160031936011261033957602090601b549051908152f35b50919034610d82576060366003190112610d8257611c0c6124b6565b611c146124d1565b916044359360018060a01b038316808352600160205286832033845260205286832054916000198310611c50575b602088610ca9898989612631565b868310611cb8578115611ca1573315611c8a57508252600160209081528683203384528152918690209085900390558290610ca938611c42565b8751634a1406b160e11b8152908101849052602490fd5b875163e602df0560e01b8152908101849052602490fd5b9050611cd6868851938493637dc7a0d960e11b855233908501612687565b0390fd5b509034610d825781600319360112610d8257611cf46124b6565b92611cfd6124d1565b60018060a01b039081811692838552603060205260ff868620541615611d4d57506103de938693600293611d34889460209a612a6f565b95168252603288528282209082528752200154906126a5565b8551630cbdb7b360e41b8152fd5b508290346103b55760203660031901126103b557611d776124b6565b611d7f61257b565b6001600160a01b038116928315611e2557838552603060205260ff8386205416611e1757602f5490600160401b821015611e045750906115fc826001611dc89401602f55612517565b81835260306020528220805460ff191660011790557ff3e4c2c64e71e6ba2eaab9a599bced62f9eb91d2cda610bf41aa8c80ff2cf8268280a280f35b634e487b7160e01b865260419052602485fd5b825163630b374b60e01b8152fd5b825163e6c4247b60e01b8152fd5b50346103395781600319360112610339576020906103de42613932565b503461033957611e5f366124e7565b611e6a9291926127cf565b60ff600754166121ba57611e7d33612b9c565b82156121aa5769d3c21bcecceda1000000831161219a576a0c685fa11e01ec6f000000611ead84610e6a42613932565b1161218a57600f9485548210801561217f575b61217157611ef08430337f0000000000000000000000000000000000000000000000000000000000000000612725565b611efa82426126a5565b91865480151580612166575b612139575b50611f1690426126a5565b90835191611f23836125a7565b858352611f9d602093611f6a8582014281526003898401868152606085019060018252611f4f336124fd565b938651855551600185015551600284015551151591016126c8565b611f7688600e546126a5565b600e558651611f84816125a7565b8981528986820152898882015289606082015233613522565b7f71fc552ee832a9004ea0bdb07cb6dd9d641eb2cb53b3cfe88c8fdcff886734a0855180611fce3394428b846133fd565b0390a2601054904284111561212b57507f167357c41e38a45e1950f61b1f5accf902c878d83f1685f7f72fb666203ce0479495966120ad9161202861201d61201642886127f2565b928a612893565b830b91830b8261350b565b9161205b8751612037816125a7565b84830b815283878201524289820152436060820152338c52600b8752888c20613498565b816120f3575b5050338852600a8352848820602584528589208181036120c1575b5050600e54806029558355600a83528488205460215561209a6130e2565b6001600160801b0316610fa981336139f4565b82519485528401523392a26105b733612f9f565b600360ff81846120ec95548555600181015460018601556002810154600286015501541691016126c8565b388061207c565b858a52600c855261210b878b2092835480930b613438565b6001600160801b03166001600160801b0319919091161790553880612061565b845163e2d8438b60e01b8152fd5b8110801561215b575b61214c5738611f0b565b508251630f962f3d60e31b8152fd5b506010548111612142565b506010541515611f06565b8251630f962f3d60e31b8152fd5b506010548211611ec0565b8151633c92a01b60e11b81528590fd5b815163172bd6a160e31b81528590fd5b815163162908e360e11b81528590fd5b815163ab35696f60e01b81528590fd5b50346103395760203660031901126103395760209181906001600160a01b036121f16124b6565b16815280845220549051908152f35b5034610339576020906103de612215366124e7565b906128b3565b503461033957806003193601126103395760028160209361223a6124b6565b6122426124d1565b6001600160a01b039182168352603287528383209116825285522001549051908152f35b503461033957602036600319011261033957823561228261257b565b601c5490601b54811015610bb6578015610bb6577f513e0cb9f7e6f20f3331a3d6bc5a2070854a399222885cccf74ac523949f0b3a93945080601c5582519182526020820152a180f35b503461033957816003193601126103395760209060ff6009541690519015158152f35b5082346103b557816003193601126103b5576123096124b6565b602435903315612382576001600160a01b031691821561236b57508083602095338152600187528181208582528752205582519081527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925843392a35160018152f35b8351634a1406b160e11b8152908101859052602490fd5b835163e602df0560e01b8152808401869052602490fd5b9293905034611014578360031936011261101457600354600181811c9186908281168015612463575b6020958686108214612450575084885290811561242e57506001146123f3575b61107d8686611073828b038361260e565b929550600383528583205b82841061241b575050508261107d946110739282010194386123e2565b80548685018801529286019281016123fe565b60ff191687860152505050151560051b83010192506110738261107d386123e2565b634e487b7160e01b845260229052602483fd5b93607f16936123c2565b6020808252825181830181905290939260005b8281106124a257505060409293506000838284010152601f8019910116010190565b818101860151848201604001528501612480565b600435906001600160a01b03821682036124cc57565b600080fd5b602435906001600160a01b03821682036124cc57565b60409060031901126124cc576004359060243590565b6001600160a01b03166000908152600a6020526040902090565b602f5481101561253257602f60005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b60245481101561253257602460005260206000200190600090565b80548210156125325760005260206000200190600090565b6005546001600160a01b0316330361258f57565b60405163118cdaa760e01b8152336004820152602490fd5b608081019081106001600160401b038211176125c257604052565b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b038211176125c257604052565b604081019081106001600160401b038211176125c257604052565b601f909101601f19168101906001600160401b038211908210176125c257604052565b91906001600160a01b038084161561266e578116156126555761265392612eb1565b565b60405163ec442f0560e01b815260006004820152602490fd5b604051634b637e8f60e11b815260006004820152602490fd5b604091949392606082019560018060a01b0316825260208201520152565b919082018092116126b257565b634e487b7160e01b600052601160045260246000fd5b9060ff801983541691151516179055565b6001600160a01b031690811561265557600080516020613f3e8339815191526020826127096000946002546126a5565b60025584845283825260408420818154019055604051908152a3565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261265391612767826125d8565b906000602091828151910182855af1156127c3576000513d6127ba57506001600160a01b0381163b155b6127985750565b604051635274afe760e01b81526001600160a01b039091166004820152602490fd5b60011415612791565b6040513d6000823e3d90fd5b6002600654146127e0576002600655565b604051633ee5aeb560e01b8152600490fd5b919082039182116126b257565b906001600160a01b0382161561266e5761265391612ddf565b60036000918281558260018201558260028201550155565b6001600160a01b039091168152602081019190915260400190565b612767612653939261287260405194859263a9059cbb60e01b602085015260248401612830565b03601f19810184528361260e565b818102929181159184041417156126b257565b811561289d570490565b634e487b7160e01b600052601260045260246000fd5b801580156128ee575b6128e7576128d76128dc92601054928382116128df57612880565b612893565b90565b839150612880565b5050600090565b5081156128bc565b60405190612903826125a7565b60006060838281528260208201528260408201520152565b60001981146126b25760010190565b6001600160a01b0390811660009081526031602052604080822090516101008101949392906001600160401b03861181871017612a5b5760e093949560405282549283825260018101549360208301948552600282015492836040820152600560038401549363ffffffff606084019a868c526004830154908116608086015260ff8160a01c16151560a086015260a81c1660c0840152015496879101528515612a5157804210600014612a4b575042905b82821115612a415750906129ef916127f2565b91612a06670de0b6b3a76400009384925190612880565b04828102928184041490151715612a2d57506128dc9291612a2691612893565b90516126a5565b634e487b7160e01b81526011600452602490fd5b9550505050505090565b906129dc565b5094505050505090565b634e487b7160e01b82526041600452602482fd5b9060018060a01b0391828216600090808252603060205260409460ff868420541615612afb576060866128dc9796948694612af594612a269816825260326020528282209082526020522063ffffffff6003885192612acd846125a7565b80548452600181015499602085019a8b52600282015490850152015416918291015282613ce5565b50612b0c565b8551630cbdb7b360e41b8152600490fd5b670de0b6b3a764000091612b92612b989260018060a01b0380821660005260326020526040600020908416600052602052612b8a612b8460406000209263ffffffff600360405195612b5d876125a7565b80548752600181015460208801526002810154604088015201541690816060860152613ce5565b9361292a565b9051906127f2565b90612880565b0490565b60005b602f54811015612ce25780612bb6612c2992612517565b9060018060a01b03809154600393841b1c16908160005260209260308452604060ff816000205416156108be57603185528060002093612bf58161292a565b938554804210600014612cdd5750425b6002870180548211612cd0575b505089169586612c2e575b5050505050505061291b565b612b9f565b612c9092876000526032825280600020836000528252806000209485019763ffffffff97886004818c541692015460a81c168110600014612cbc57612c73908d613ce5565b928460005260338152826000209160005252600020555b88612b0c565b612c9f600183019182546126a5565b905555431663ffffffff1982541617905538808080808080612c1d565b509190603382526000209160005252612c8a565b8686890155553880612c12565b612c05565b5050565b6001600160a01b0390808216908115612dcd5760005b602f54811015612dc757808385612d15612d6794612517565b90549060031b1c168060005260206030815260409060ff82600020541615612dbe578360005260328152816000208360005281528160002091600183019081549182612d6c575050505050505061291b565b612cfc565b7f540798df468d7b23d11f156fdb954cb19ad414d150722a7b6d55ba369dea792e9460006002925501612da08382546126a5565b9055612dad828a8761284b565b51908152a383388080808080612c1d565b5050505061291b565b50505050565b60405163e6c4247b60e01b8152600490fd5b9091906001600160a01b038116908115808015612ea9575b612e0d57604051638cd22d1960e01b8152600490fd5b15612e495750600080516020613f3e833981519152602084612e34600095966002546126a5565b6002555b8060025403600255604051908152a3565b92600082815280602052604081205494828610612e8a575081816040600080516020613f3e8339815191529460009798876020965283865203912055612e38565b8590611cd68460405193849363391434e360e21b855260048501612687565b506001612df7565b6001600160a01b038082169290918315808015612f95575b612edf57604051638cd22d1960e01b8152600490fd5b15612f395750600080516020613f3e83398151915291602091612f04866002546126a5565b6002555b169384612f215780600254036002555b604051908152a3565b84600052600082526040600020818154019055612f18565b60009084825281602052604082205490868210612f785750918160408760209588600080516020613f3e83398151915298965283875203912055612f08565b611cd68760405193849363391434e360e21b855260048501612687565b5083831615612ec9565b612fb1612fab82613377565b826139f4565b612fba42613932565b6001600160e01b03908181116130d05761300963ffffffff92834316921691600080516020613ede833981519152604093845190612ff7826125f3565b83825260209482828780950152613991565b8551908152a2600e5481556001600160a01b038481166000818152600a84528481205460215592909161303a6130e2565b835b602f548110156130c65780826130546130b993612517565b919054600392831b1c16908188526030865260ff8989205416156108e0576031865289898920544210156130be576130a191888a52603288528a8a20848b5288528a8a200154168b613ce5565b9087526033855287872086885285528787205561291b565b61303c565b50505061291b565b5050505050505050565b604051632f537ee160e01b8152600490fd5b601d54801561325b57601b5490601c54821061324957601454908115158080613237575b6131b557601f54928161319f575b5061318d57821561317b577f0792cf7388f234e543a10a68aeb7b96568fb90b55ddc2b2945961c80a3c3a082924260145561314f82426126a5565b6015554260165582601755600060185581601955601a5561317660405192839242846133fd565b0390a1565b6040516319a2a9bd60e01b8152600490fd5b60405163f0aaee6560e01b8152600490fd5b6131ad9150601954906126a5565b421038613114565b5050601f5491504210801561322c575b61321a576016544203806131de575b5060175542601655565b601754818102906131ef8383612893565b03613208576018540160185560195401601955386131d4565b60405163f20577e560e01b8152600490fd5b6040516337bf561360e11b8152600490fd5b5060155442116131c5565b5061324282846126a5565b4210613106565b60405163151843ad60e21b8152600490fd5b60405163a8c60b8160e01b8152600490fd5b91909182158015613340575b61333657670de0b6b3a764000092838202918083048514901517156126b2576132a191612893565b66038d7ea4c68000811061333657606082015190838202918083048514901517156126b2576132dd8491612b9261330d94608087015190612893565b048251936132fb6132f460208601968751906127f2565b8093612880565b049080821161332e575b5083516126a5565b9151808310613328575051808211613323575090565b905090565b91505090565b905038613305565b5060209150015190565b50608082015115613279565b610e6a6133619284928382116128df57612880565b6000198101919082116126b2576128dc91612893565b6001600160a01b03166000908152600a60205260409020600381015460ff161580156133c7575b6133c157806133b560026128dc93015442906127f2565b9054906010549161334c565b50600090565b50600281015442101561339e565b818110156133eb5780156133eb57600f55601055565b604051630f962f3d60e31b8152600490fd5b6040919493926060820195825260208201520152565b600f91820b910b039060016001607f1b0319821260016001607f1b038313176126b257565b600f91820b910b019060016001607f1b0319821260016001607f1b038313176126b257565b600d5481101561253257600d6000526003602060002091020190600090565b8054821015612532576000526003602060002091020190600090565b8054600160401b8110156125c2576134b59160018201815561347c565b9190916134f5578051602082015160801b6001600160801b0319166001600160801b03909116178255604081015160018301556060015160029190910155565b634e487b7160e01b600052600060045260246000fd5b90600f0b90600f0b029081600f0b9182036126b257565b929192604091825192613534846125a7565b60009586855260209485810190888252428482015260609543878301528484019088848c8451894282116137c2575b505050505060018060a01b03168a52600b885261358282868c20613498565b61358a6128f6565b50600d549387851561379e5750600019850185811161378a57906135ae899261345d565b50978c8b8a5480600f0b9060801d8b51926135c8846125a7565b82845281600f0b90840152428c84015243878401526135ec6001849e0154426127f2565b9182613756575b50505050505b8281015115158061374a575b6136e1575b500151151590816136d5575b5061369f575b5050600160401b81101561368b5780600161363a9201600d5561345d565b9490946136775782519083015160801b6001600160801b0319166001600160801b0390911617845581015160018401550151600291909101559050565b634e487b7160e01b87526004879052602487fd5b634e487b7160e01b87526041600452602487fd5b51906136b2600f92830b8651840b613438565b820b855251810b906136ca878601928351830b613438565b900b9052388061361c565b90504290511138613616565b6136ee42898301516127f2565b81516010546001600160801b039261372c92849161370e9184919061334c565b16936137228d600f96870b9051870b613413565b850b8d5251612893565b16810b906137408c8b01928351830b613413565b900b90523861360a565b50428882015111613605565b61376861376e928694600f0b9061350b565b90613413565b600f0b80835212613782575b8080806135f3565b528c3861377a565b634e487b7160e01b8c52601160045260248cfd5b9086516137aa816125a7565b8c81528c8b82015242888201524383820152976135f9565b6137fb926137d46138329342906127f2565b8d8c51908d6137e86010548095819561334c565b60018060801b0380998195829451612893565b1699600f9a8b0b905216880b8c52848101924284511161384d575b50505050600c8a51860b9689518352522093845480940b613438565b6001600160801b0319909216911617905588848c3889613563565b6138579151612893565b16860b90518252600c87528282209061387482549182890b613413565b6001600160801b031990911690861617905538848e82613816565b6001600160a01b03166000908152600b60205260408120805491929190811561391857600019820191821161391e57906138c89161347c565b506001810154828111613918576138e56138f4916138fd946127f2565b915491600f0b8260801d61350b565b90600f0b613413565b908082600f0b1360001461332357506001600160801b031690565b50505090565b634e487b7160e01b84526011600452602484fd5b600d5480156128e75760001981019081116126b2576139509061345d565b506001810154828111613989576138e56138f49161396d946127f2565b60008082600f0b1360001461332357506001600160801b031690565b505050600090565b602454600160401b8110156125c2578060016139b09201602455612548565b9190916134f557805160209182015190911b63ffffffff191663ffffffff91909116179055565b8054600160401b8110156125c2576139b091600182018155612563565b6001600160e01b03918281116130d0576001600160a01b03909116914363ffffffff1691908315613a6b5791604091613a5e600080516020613efe8339815191529486600052602260205284600020855191613a4f836125f3565b858352841660208301526139d7565b82519182526020820152a2565b600080516020613ede83398151915292935060209116613a9d604051613a90816125f3565b8581528284820152613991565b604051908152a2565b6001600160a01b03164363ffffffff168115613b08576040600080516020613efe83398151915291836000526022602052613af982600020835190613aea826125f3565b838252600060208301526139d7565b815190815260006020820152a2565b9050613b28604051613b19816125f3565b82815260006020820152613991565b600080516020613ede833981519152602060405160008152a2565b438111613c9a5760248054801561398957600090600019808201828111613c8657905b818410613c15575050811015613c005781600052602060002001549163ffffffff831691818314613bf757600c820291808304600c1490151715613be357600c830292808404600c1490151715613be3575081811115613bdb576128dc9291613bce916127f2565b602b54809260201c613cac565b505060201c90565b634e487b7160e01b60009081526011600452fd5b50505060201c90565b50634e487b7160e01b60009081526032600452fd5b9092613c2184826126a5565b6001808201809211613c71571c908663ffffffff613c3e84612548565b50541611613c4f5750925b90613b66565b935081810190811115613c495784634e487b7160e01b60005260116004526000fd5b86634e487b7160e01b60005260116004526000fd5b5050634e487b7160e01b8252506011600452fd5b604051631391e11b60e21b8152600490fd5b9181811015613cdc57613361928492610e6a9260009181811115613cd457612b9292506127f2565b505090612880565b50505050600090565b438211613c9a5760018060a01b03166000918183526025602052604083209060405192613d11846125a7565b82549081855260019160ff6003848701549660208901978852600281015460408a0152015416159081159182606089015291613eb4575b50613eac57855260226020526040852080548015613ea357869260001991808301908111613e7b57939291905b848410613e2f575050613d889250612563565b50548163ffffffff821614613e245750438103613dcf575042905b519283821115613dc857506128dc92613dbb916127f2565b905190602b548092613cac565b9250505090565b8381430391124382128116904383139015161761391e5783811315613e12575b600c810290808204600c149015171561391e57613e0c90426127f2565b90613da3565b600160ff1b811461391e578303613def565b935050505060201c90565b909192613e3c85826126a5565b828101809111613e8f57821c908663ffffffff613e598488612563565b50541611613e6d5750935b93929190613d75565b945082810190811115613e64575b634e487b7160e01b89526011600452602489fd5b634e487b7160e01b8a52601160045260248afd5b50505050505090565b505050505090565b90501538613d4856fe34937d7722678a23b9c1078911aa0d40eec7326d87ab5d725c6e06c2ae06fbabb45c44c56db4e898aff83acd229edf5e8e6ef1ecc211e8775a7203a310225b379d362ba40ca7e8092153f1352b7c262010bd99054fac4b75a4d86b4be14ecffa8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220960b35d3660ef61e09b8f55a36abadcd1c42458724ab25d9d868f951cf4770a864736f6c63430008140033",
1614
1948
  "linkReferences": {},
1615
1949
  "deployedLinkReferences": {}
1616
1950
  }