@pendle/core-v2 0.8.0-beta-2 → 0.8.0-beta-3

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 (258) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +1 -1
  2. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +50 -2
  3. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +1 -1
  4. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/AaveV3/WadRayMath.sol/WadRayMath.json +2 -2
  5. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  6. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  7. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +1 -1
  8. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +50 -2
  9. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.dbg.json +1 -1
  10. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleERC4626SCY.sol/PendleERC4626SCY.json +50 -2
  11. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +1 -1
  12. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +50 -2
  13. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.dbg.json +1 -1
  14. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleYearnVaultScy.sol/PendleYearnVaultSCY.json +50 -2
  15. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +1 -1
  16. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.json +48 -0
  17. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +1 -1
  18. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +48 -0
  19. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerReceiverUpg.sol/CelerReceiverUpg.dbg.json +1 -1
  20. package/build/artifacts/contracts/core/LiquidityMining/CelerAbstracts/CelerSenderUpg.sol/CelerSenderUpg.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +0 -13
  23. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  24. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchain.sol/PendleGaugeControllerMainchainUpg.json +2 -15
  25. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechain.sol/PendleGaugeControllerSidechainUpg.json +2 -15
  27. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +60 -58
  30. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +39 -24
  32. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +4 -29
  34. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +3 -22
  36. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +1 -20
  38. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +30 -105
  40. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  42. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.json +2 -2
  44. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  46. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +2 -2
  48. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  51. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  53. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +137 -18
  55. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +2 -2
  57. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +206 -16
  59. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +12 -117
  61. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPTBase.sol/ActionSCYAndPTBase.json +0 -148
  63. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/actions/base/ActionSCYAndPYBase.sol/ActionSCYAndPYBase.json +0 -148
  65. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.json +0 -173
  67. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  68. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  69. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  70. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  71. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  72. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  73. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  74. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  75. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  76. package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.dbg.json +1 -1
  77. package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.dbg.json +1 -1
  78. package/build/artifacts/contracts/interfaces/IJoeRouter02.sol/IJoeRouter02.dbg.json +1 -1
  79. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +1 -1
  80. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.json +338 -0
  81. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +1 -1
  82. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.json +68 -0
  83. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  84. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +406 -0
  85. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  86. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +28 -28
  91. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +31 -2
  97. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.json +0 -19
  99. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPVotingEscrow.sol/IPVotingEscrow.json +1 -7
  102. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +97 -16
  105. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.json +48 -0
  112. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.json +74 -1
  117. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +1 -1
  118. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  119. package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.dbg.json +1 -1
  120. package/build/artifacts/contracts/libraries/SCY/SCYIndex.sol/SCYIndexLib.json +2 -2
  121. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +1 -1
  122. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.json +2 -2
  123. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  124. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  125. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  126. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  127. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  128. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.json +2 -2
  129. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  130. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.json +2 -2
  131. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  132. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.json +2 -2
  133. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.dbg.json +1 -1
  134. package/build/artifacts/contracts/libraries/helpers/SSTORE2Deployer.sol/SSTORE2Deployer.json +2 -2
  135. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  136. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  137. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
  138. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +1 -1
  139. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +2 -2
  140. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  141. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +2 -2
  142. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +1 -1
  143. package/build/artifacts/contracts/libraries/math/Math.sol/Math.json +2 -2
  144. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +1 -1
  145. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.json +2 -2
  146. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.dbg.json +1 -1
  147. package/build/artifacts/contracts/libraries/solmate/SSTORE2.sol/SSTORE2.json +2 -2
  148. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.dbg.json +1 -1
  149. package/build/artifacts/contracts/libraries/traderjoe/JoeLibrary.sol/JoeLibrary.json +2 -2
  150. package/build/artifacts/contracts/libraries/traderjoe/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +1 -1
  151. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  152. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +249 -4
  153. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +1 -1
  154. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.json +2 -2
  155. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +1 -1
  156. package/package.json +1 -1
  157. package/typechain-types/ActionCore.ts +180 -38
  158. package/typechain-types/ActionSCYAndPTBase.ts +3 -129
  159. package/typechain-types/ActionSCYAndPYBase.ts +3 -129
  160. package/typechain-types/ActionSCYAndYTBase.ts +3 -149
  161. package/typechain-types/ActionYT.ts +31 -117
  162. package/typechain-types/IPActionCore.ts +271 -3
  163. package/typechain-types/IPActionYT.ts +63 -3
  164. package/typechain-types/IPAllAction.ts +329 -3
  165. package/typechain-types/IPMarket.ts +38 -38
  166. package/typechain-types/IPRouterStatic.ts +61 -16
  167. package/typechain-types/IPVeToken.ts +0 -31
  168. package/typechain-types/IPVotingEscrow.ts +3 -7
  169. package/typechain-types/IPYieldToken.ts +107 -30
  170. package/typechain-types/ISuperComposableYield.ts +78 -0
  171. package/typechain-types/IYearnVault.ts +100 -9
  172. package/typechain-types/PendleAaveV3SCY.ts +78 -0
  173. package/typechain-types/PendleERC4626SCY.ts +78 -0
  174. package/typechain-types/PendleGaugeControllerBaseUpg.ts +0 -13
  175. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +0 -13
  176. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +0 -13
  177. package/typechain-types/PendleMarket.ts +38 -142
  178. package/typechain-types/PendleQiTokenSCY.ts +78 -0
  179. package/typechain-types/PendleVotingControllerUpg.ts +139 -132
  180. package/typechain-types/PendleWstEthSCY.ts +78 -0
  181. package/typechain-types/PendleYearnVaultSCY.ts +78 -0
  182. package/typechain-types/PendleYieldToken.ts +186 -39
  183. package/typechain-types/RouterStatic.ts +402 -16
  184. package/typechain-types/SCYBase.ts +78 -0
  185. package/typechain-types/SCYBaseWithRewards.ts +78 -0
  186. package/typechain-types/VotingControllerStorageUpg.ts +93 -64
  187. package/typechain-types/VotingEscrowPendleMainchain.ts +11 -46
  188. package/typechain-types/VotingEscrowPendleSidechain.ts +8 -39
  189. package/typechain-types/VotingEscrowTokenBase.ts +8 -39
  190. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  191. package/typechain-types/factories/ActionCore__factory.ts +205 -15
  192. package/typechain-types/factories/ActionSCYAndPTBase__factory.ts +0 -148
  193. package/typechain-types/factories/ActionSCYAndPYBase__factory.ts +0 -148
  194. package/typechain-types/factories/ActionSCYAndYTBase__factory.ts +0 -173
  195. package/typechain-types/factories/ActionYT__factory.ts +11 -116
  196. package/typechain-types/factories/ERC20__factory.ts +1 -1
  197. package/typechain-types/factories/IPActionCore__factory.ts +338 -0
  198. package/typechain-types/factories/IPActionYT__factory.ts +68 -0
  199. package/typechain-types/factories/IPAllAction__factory.ts +406 -0
  200. package/typechain-types/factories/IPMarket__factory.ts +28 -28
  201. package/typechain-types/factories/IPRouterStatic__factory.ts +31 -2
  202. package/typechain-types/factories/IPVeToken__factory.ts +0 -19
  203. package/typechain-types/factories/IPVotingEscrow__factory.ts +1 -7
  204. package/typechain-types/factories/IPYieldToken__factory.ts +97 -16
  205. package/typechain-types/factories/ISuperComposableYield__factory.ts +48 -0
  206. package/typechain-types/factories/IYearnVault__factory.ts +74 -1
  207. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +49 -1
  208. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  209. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  210. package/typechain-types/factories/PendleERC4626SCY__factory.ts +49 -1
  211. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +0 -13
  212. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -14
  213. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -14
  214. package/typechain-types/factories/PendleGovernanceManager__factory.ts +1 -1
  215. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  216. package/typechain-types/factories/PendleMarket__factory.ts +29 -104
  217. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  218. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  219. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +49 -1
  220. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  221. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +59 -57
  222. package/typechain-types/factories/PendleWstEthSCY__factory.ts +49 -1
  223. package/typechain-types/factories/PendleYearnVaultSCY__factory.ts +49 -1
  224. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  225. package/typechain-types/factories/PendleYieldToken__factory.ts +136 -17
  226. package/typechain-types/factories/RouterStatic__factory.ts +248 -3
  227. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +48 -0
  228. package/typechain-types/factories/SCYBase__factory.ts +48 -0
  229. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +39 -24
  230. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +3 -28
  231. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +2 -21
  232. package/typechain-types/factories/VotingEscrowTokenBase__factory.ts +1 -20
  233. package/typechain-types/CelerReceiver.ts +0 -267
  234. package/typechain-types/CelerSender.ts +0 -164
  235. package/typechain-types/IPMarketAddRemoveCallback.ts +0 -169
  236. package/typechain-types/IPVotingEscrowController.ts +0 -154
  237. package/typechain-types/PendleBtrflyScy.ts +0 -822
  238. package/typechain-types/PendleGaugeController.ts +0 -282
  239. package/typechain-types/PendleGaugeControllerMainchain.ts +0 -346
  240. package/typechain-types/PendleGaugeControllerSidechain.ts +0 -460
  241. package/typechain-types/PendleJoeLpSCY.ts +0 -835
  242. package/typechain-types/PendleVotingController.ts +0 -865
  243. package/typechain-types/VotingControllerStorage.ts +0 -410
  244. package/typechain-types/VotingEscrowController.ts +0 -154
  245. package/typechain-types/VotingEscrowToken.ts +0 -335
  246. package/typechain-types/factories/CelerReceiver__factory.ts +0 -140
  247. package/typechain-types/factories/CelerSender__factory.ts +0 -67
  248. package/typechain-types/factories/IPMarketAddRemoveCallback__factory.ts +0 -86
  249. package/typechain-types/factories/IPVotingEscrowController__factory.ts +0 -80
  250. package/typechain-types/factories/PendleBtrflyScy__factory.ts +0 -728
  251. package/typechain-types/factories/PendleGaugeControllerMainchain__factory.ts +0 -269
  252. package/typechain-types/factories/PendleGaugeControllerSidechain__factory.ts +0 -328
  253. package/typechain-types/factories/PendleGaugeController__factory.ts +0 -149
  254. package/typechain-types/factories/PendleJoeLpSCY__factory.ts +0 -732
  255. package/typechain-types/factories/PendleVotingController__factory.ts +0 -584
  256. package/typechain-types/factories/VotingControllerStorage__factory.ts +0 -298
  257. package/typechain-types/factories/VotingEscrowController__factory.ts +0 -80
  258. package/typechain-types/factories/VotingEscrowToken__factory.ts +0 -225
@@ -308,6 +308,19 @@
308
308
  "stateMutability": "payable",
309
309
  "type": "function"
310
310
  },
311
+ {
312
+ "inputs": [
313
+ {
314
+ "internalType": "address",
315
+ "name": "pool",
316
+ "type": "address"
317
+ }
318
+ ],
319
+ "name": "applyPoolSlopeChanges",
320
+ "outputs": [],
321
+ "stateMutability": "nonpayable",
322
+ "type": "function"
323
+ },
311
324
  {
312
325
  "inputs": [
313
326
  {
@@ -379,7 +392,7 @@
379
392
  },
380
393
  {
381
394
  "inputs": [],
382
- "name": "getAllPools",
395
+ "name": "getAllAcitvePools",
383
396
  "outputs": [
384
397
  {
385
398
  "internalType": "address[]",
@@ -390,6 +403,35 @@
390
403
  "stateMutability": "view",
391
404
  "type": "function"
392
405
  },
406
+ {
407
+ "inputs": [
408
+ {
409
+ "internalType": "uint256",
410
+ "name": "start",
411
+ "type": "uint256"
412
+ },
413
+ {
414
+ "internalType": "uint256",
415
+ "name": "end",
416
+ "type": "uint256"
417
+ }
418
+ ],
419
+ "name": "getAllRemovedPools",
420
+ "outputs": [
421
+ {
422
+ "internalType": "uint256",
423
+ "name": "lengthOfRemovedPools",
424
+ "type": "uint256"
425
+ },
426
+ {
427
+ "internalType": "address[]",
428
+ "name": "arr",
429
+ "type": "address[]"
430
+ }
431
+ ],
432
+ "stateMutability": "view",
433
+ "type": "function"
434
+ },
393
435
  {
394
436
  "inputs": [],
395
437
  "name": "getAllSidechainContracts",
@@ -467,7 +509,7 @@
467
509
  "type": "tuple"
468
510
  }
469
511
  ],
470
- "internalType": "struct VotingControllerStorageUpg.UserPoolInfo",
512
+ "internalType": "struct VotingControllerStorageUpg.UserPoolData",
471
513
  "name": "",
472
514
  "type": "tuple"
473
515
  }
@@ -517,25 +559,6 @@
517
559
  "stateMutability": "view",
518
560
  "type": "function"
519
561
  },
520
- {
521
- "inputs": [
522
- {
523
- "internalType": "uint128",
524
- "name": "",
525
- "type": "uint128"
526
- }
527
- ],
528
- "name": "isEpochFinalized",
529
- "outputs": [
530
- {
531
- "internalType": "bool",
532
- "name": "",
533
- "type": "bool"
534
- }
535
- ],
536
- "stateMutability": "view",
537
- "type": "function"
538
- },
539
562
  {
540
563
  "inputs": [],
541
564
  "name": "pendlePerSec",
@@ -557,7 +580,7 @@
557
580
  "type": "address"
558
581
  }
559
582
  ],
560
- "name": "poolInfo",
583
+ "name": "poolData",
561
584
  "outputs": [
562
585
  {
563
586
  "internalType": "uint64",
@@ -566,7 +589,7 @@
566
589
  },
567
590
  {
568
591
  "internalType": "uint128",
569
- "name": "lastUpdated",
592
+ "name": "lastSlopeChangeAppliedAt",
570
593
  "type": "uint128"
571
594
  },
572
595
  {
@@ -583,7 +606,7 @@
583
606
  }
584
607
  ],
585
608
  "internalType": "struct VeBalance",
586
- "name": "vote",
609
+ "name": "totalVote",
587
610
  "type": "tuple"
588
611
  }
589
612
  ],
@@ -642,32 +665,6 @@
642
665
  "stateMutability": "nonpayable",
643
666
  "type": "function"
644
667
  },
645
- {
646
- "inputs": [
647
- {
648
- "internalType": "address",
649
- "name": "pool",
650
- "type": "address"
651
- }
652
- ],
653
- "name": "unvote",
654
- "outputs": [],
655
- "stateMutability": "nonpayable",
656
- "type": "function"
657
- },
658
- {
659
- "inputs": [
660
- {
661
- "internalType": "address",
662
- "name": "pool",
663
- "type": "address"
664
- }
665
- ],
666
- "name": "updatePoolVotes",
667
- "outputs": [],
668
- "stateMutability": "nonpayable",
669
- "type": "function"
670
- },
671
668
  {
672
669
  "inputs": [
673
670
  {
@@ -734,14 +731,14 @@
734
731
  {
735
732
  "inputs": [
736
733
  {
737
- "internalType": "address",
738
- "name": "pool",
739
- "type": "address"
734
+ "internalType": "address[]",
735
+ "name": "pools",
736
+ "type": "address[]"
740
737
  },
741
738
  {
742
- "internalType": "uint64",
743
- "name": "weight",
744
- "type": "uint64"
739
+ "internalType": "uint64[]",
740
+ "name": "weights",
741
+ "type": "uint64[]"
745
742
  }
746
743
  ],
747
744
  "name": "vote",
@@ -759,6 +756,11 @@
759
756
  ],
760
757
  "name": "weekData",
761
758
  "outputs": [
759
+ {
760
+ "internalType": "bool",
761
+ "name": "isEpochFinalized",
762
+ "type": "bool"
763
+ },
762
764
  {
763
765
  "internalType": "uint128",
764
766
  "name": "totalVotes",
@@ -769,8 +771,8 @@
769
771
  "type": "function"
770
772
  }
771
773
  ],
772
- "bytecode": "0x6101006040523060e0523480156200001657600080fd5b5060405162003cd638038062003cd6833981016040819052620000399162000119565b8181806001600160a01b038116620000865760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015260640160405180910390fd5b6001600160a01b03908116608052821660a05250620000b0620000c6602090811b6200169617901c565b6001600160801b031660c05250620001c4915050565b6000620000d342620000d8565b905090565b600062093a80620000ea818462000151565b620000f6919062000186565b92915050565b80516001600160a01b03811681146200011457600080fd5b919050565b600080604083850312156200012d57600080fd5b6200013883620000fc565b91506200014860208401620000fc565b90509250929050565b60006001600160801b03838116806200017a57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006001600160801b0382811684821681151582840482111615620001bb57634e487b7160e01b600052601160045260246000fd5b02949350505050565b60805160a05160c05160e051613aa062000236600039600081816109dc01528181610a7201528181610d3001528181610dc60152610ebd0152600081816104ca0152611ed40152600081816103ac015281816108fa015261275501526000818161062401526116a50152613aa06000f3fe6080604052600436106101e35760003560e01c8063aed2377d11610102578063c9430f4811610095578063d88ff1f411610064578063d88ff1f414610686578063f4359ce51461069b578063f7f03fea146106b2578063fa78668f146106d257600080fd5b8063c9430f48146105e5578063d2e6d1c314610612578063d569c7b714610646578063d68ffecb1461066657600080fd5b8063c2811e2a116100d1578063c2811e2a14610558578063c291230d14610578578063c4c30dc21461058b578063c8910913146105ae57600080fd5b8063aed2377d14610498578063b292bf95146104b8578063bfa5b32414610504578063c0202a441461052257600080fd5b806352d1902d1161017a57806382ae9ef71161014957806382ae9ef71461038557806382dabb211461039a57806383fd4d42146103ce5780639a7b5f111461040e57600080fd5b806352d1902d146102dd57806359255706146103005780635cc0496814610320578063646fb67c1461035857600080fd5b80633659cfe6116101b65780633659cfe6146102775780633b7d0946146102975780634e91d0cb146102b75780634f1ef286146102ca57600080fd5b80631c62997b146101e85780631c9bdb491461022257806323342c3814610237578063317f838d14610257575b600080fd5b3480156101f457600080fd5b50610204670de0b6b3a764000081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b6102356102303660046132fc565b6106ea565b005b34801561024357600080fd5b5061023561025236600461335a565b610759565b34801561026357600080fd5b50610235610272366004613377565b6107ed565b34801561028357600080fd5b5061023561029236600461335a565b6109d2565b3480156102a357600080fd5b506102356102b236600461335a565b610b6f565b6102356102c53660046133ac565b610cbc565b6102356102d83660046133ee565b610d26565b3480156102e957600080fd5b506102f2610eb0565b604051908152602001610219565b34801561030c57600080fd5b5061023561031b3660046134b2565b610f75565b34801561032c57600080fd5b50606454610340906001600160a01b031681565b6040516001600160a01b039091168152602001610219565b34801561036457600080fd5b506103786103733660046134cf565b61103b565b6040516102199190613508565b34801561039157600080fd5b506102356110b4565b3480156103a657600080fd5b506103407f000000000000000000000000000000000000000000000000000000000000000081565b3480156103da57600080fd5b506103fe6103e93660046134b2565b60d36020526000908152604090205460ff1681565b6040519015158152602001610219565b34801561041a57600080fd5b5061048961042936600461335a565b60d060209081526000918252604091829020805483518085019094526001909101546001600160801b038082168552600160801b90910481169284019290925267ffffffffffffffff811692680100000000000000009091049091169083565b60405161021993929190613543565b3480156104a457600080fd5b506102356104b336600461335a565b6110f4565b3480156104c457600080fd5b506104ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160801b039091168152602001610219565b34801561051057600080fd5b506104ec69d3c21bcecceda100000081565b34801561052e57600080fd5b506104ec61053d3660046134b2565b60d1602052600090815260409020546001600160801b031681565b34801561056457600080fd5b506104ec61057336600461358e565b61113c565b6102356105863660046135be565b611180565b34801561059757600080fd5b506105a061120e565b60405161021992919061364d565b3480156105ba57600080fd5b506102046105c936600461335a565b60d26020526000908152604090205467ffffffffffffffff1681565b3480156105f157600080fd5b506106056106003660046135be565b611324565b6040516102199190613672565b34801561061e57600080fd5b506103407f000000000000000000000000000000000000000000000000000000000000000081565b34801561065257600080fd5b5061023561066136600461335a565b611349565b34801561067257600080fd5b50610235610681366004613685565b611562565b34801561069257600080fd5b50610605611685565b3480156106a757600080fd5b506104ec62093a8081565b3480156106be57600080fd5b5060cc546104ec906001600160801b031681565b3480156106de57600080fd5b506104ec6303bfc40081565b6106f26116a1565b6001600160a01b0316336001600160a01b0316146107495760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b60448201526064015b60405180910390fd5b610754838383611725565b505050565b6107616116a1565b6001600160a01b0316336001600160a01b0316146107b35760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b606480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3367ffffffffffffffff82166000036108485760405162461bcd60e51b815260206004820152600b60248201527f7a65726f207765696768740000000000000000000000000000000000000000006044820152606401610740565b6001600160a01b038316600090815260d060205260409020546801000000000000000090046001600160801b03166108c25760405162461bcd60e51b815260206004820152600c60248201527f696e76616c696420706f6f6c00000000000000000000000000000000000000006044820152606401610740565b6040517fd4d938760000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063d4d9387690602401602060405180830381865afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096591906136a1565b156109b25760405162461bcd60e51b815260206004820152601560248201527f7573657220706f736974696f6e206578706972656400000000000000000000006044820152606401610740565b6109bb83611349565b6109c7818460006119fc565b610754818484611b09565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a705760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610acb7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614610b475760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610740565b610b5081611b7d565b60408051600080825260208201909252610b6c91839190611bd7565b50565b610b776116a1565b6001600160a01b0316336001600160a01b031614610bc95760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b6001600160a01b038116600090815260d060205260409020546801000000000000000090046001600160801b0316610c435760405162461bcd60e51b815260206004820152600c60248201527f696e76616c696420706f6f6c00000000000000000000000000000000000000006044820152606401610740565b6001600160a01b038116600090815260d0602052604090205467ffffffffffffffff16610c6f82611349565b610c7882611d77565b6040516001600160a01b0383169067ffffffffffffffff8316907ff2e3b584c4d1ed5ead9a4b7de2a8225fd42d13f09e417cd294d03f1dd07fc91490600090a35050565b610cc46116a1565b6001600160a01b0316336001600160a01b031614610d165760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b61075460658284611e99565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610dc45760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e1f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614610e9b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610740565b610ea482611b7d565b610d2282826001611bd7565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f505760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610740565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610f7d6116a1565b6001600160a01b0316336001600160a01b031614610fcf5760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b60cc80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001600160801b0383169081179091556040519081527ffe870af61f024df0d7f960ad100676f3ffaa7ea6a44bc6c7adf2756cb8cf4b389060200160405180910390a150565b61104361327a565b506001600160a01b03808316600090815260d2602090815260408083209385168352600193840182529182902082518084018452815467ffffffffffffffff16815283518085019094529301546001600160801b038082168452600160801b90910416828201528201525b92915050565b60006110c060cd611eaf565b905060005b818110156110eb576110db61066160cd83611eb9565b6110e4816136d9565b90506110c5565b50610b6c611ec5565b6001600160a01b038116600090815260d060205260409020546801000000000000000090046001600160801b0316156111305761113081611349565b610b6c338260016119fc565b6001600160a01b03808416600090815260d4602090815260408083209386168352929052908120611176906001600160801b038416611f87565b90505b9392505050565b600061118a611696565b6001600160801b038116600090815260d3602052604090205490915060ff166111f55760405162461bcd60e51b815260206004820152601360248201527f65706f6368206e6f742066696e616c697a6564000000000000000000000000006044820152606401610740565b60cc54610d2290839083906001600160801b0316611725565b606080600061121d60656120c7565b90508067ffffffffffffffff811115611238576112386133d8565b604051908082528060200260200182016040528015611261578160200160208202803683370190505b5092508067ffffffffffffffff81111561127d5761127d6133d8565b6040519080825280602002602001820160405280156112a6578160200160208202803683370190505b50915060005b8181101561131e576112bf6065826120d2565b8583815181106112d1576112d16136f3565b602002602001018584815181106112ea576112ea6136f3565b60200260200101826001600160a01b03166001600160a01b031681525082815250505080611317906136d9565b90506112ac565b50509091565b67ffffffffffffffff8116600090815260cf602052604090206060906110ae906120ee565b6001600160a01b038116600090815260d060205260409020546801000000000000000090046001600160801b03166113c35760405162461bcd60e51b815260206004820152600c60248201527f696e76616c696420706f6f6c00000000000000000000000000000000000000006044820152606401610740565b6001600160a01b038116600090815260d060205260408120546801000000000000000090046001600160801b0316906113fa611696565b9050806001600160801b0316826001600160801b03161061141a57505050565b6001600160a01b038316600090815260d060209081526040918290208251808401909352600101546001600160801b038082168452600160801b90910416908201525b816001600160801b0316836001600160801b031610156114e35761148462093a8084613709565b6001600160a01b038516600090815260d0602090815260408083206001600160801b0380861685526002909101909252909120549194506114c891839116856120fb565b90506114de84846114d98482612155565b612173565b61145d565b6001600160a01b038416600090815260d0602090815260409091208251918301516001600160801b03908116600160801b02928116929092176001820155805491851668010000000000000000027fffffffffffffffff00000000000000000000000000000000ffffffffffffffff9092169190911790555b50505050565b61156a6116a1565b6001600160a01b0316336001600160a01b0316146115bc5760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b6001600160a01b038116600090815260d060205260409020546801000000000000000090046001600160801b0316156116375760405162461bcd60e51b815260206004820152601260248201527f706f6f6c20616c726561647920616464656400000000000000000000000000006044820152606401610740565b611641828261221b565b6040516001600160a01b0382169067ffffffffffffffff8416907f336f0b3cc523e98d21e261389542b62abaffc094a21a82f1eec2779d7c8323cb90600090a35050565b606061169160cd6120ee565b905090565b600061169142612374565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116919190613734565b6001600160801b03808316600090815260d16020526040812054909116908190036117505750505050565b67ffffffffffffffff8416600090815260cf6020526040812061177290611eaf565b905080600003611783575050505050565b67ffffffffffffffff8516600090815260cf602052604081206117a5906120ee565b905060008267ffffffffffffffff8111156117c2576117c26133d8565b6040519080825280602002602001820160405280156117eb578160200160208202803683370190505b50905060005b838110156118c357600060d16000896001600160801b03166001600160801b031681526020019081526020016000206001016000858481518110611837576118376136f3565b6020908102919091018101516001600160a01b031682528101919091526040016000908120546001600160801b03908116925087906118799084908b16613751565b6118839190613786565b905061189262093a8082613751565b8484815181106118a4576118a46136f3565b6020026020010181815250505050806118bc906136d9565b90506117f1565b50468767ffffffffffffffff16036119705760006118ec606567ffffffffffffffff8a1661238e565b6040517f72cbf8700000000000000000000000000000000000000000000000000000000081529091506001600160a01b038216906372cbf87090611938908a908790879060040161379a565b600060405180830381600087803b15801561195257600080fd5b505af1158015611966573d6000803e3d6000fd5b50505050506119a7565b6119a78767ffffffffffffffff168784846040516020016119939392919061379a565b60405160208183030381529060405261239a565b6040516001600160801b03868116825287169067ffffffffffffffff8916907fc78a580f215ba474e75ecbd7636c375e8d2cd25edb0f2467f99b2d0752e104ba9060200160405180910390a350505050505050565b6001600160a01b03838116600090815260d26020908152604080832093861680845260019485018352818420825180840184529501546001600160801b038082168752600160801b90910481168685015290845260d0909252909120546801000000000000000090041615158015611a785750611a78816124d6565b15611a8757611a878382612513565b611a9184846125ed565b8115611ab8576040805180820190915260008082526020820152611ab8908590859061268d565b826001600160a01b0316846001600160a01b03167f9db2ca6056cbab558dc5c95284cdb4a39392d13ab84d0dda66e2895c1919ce4483604051611afb91906137d8565b60405180910390a350505050565b6000611b1584836126bc565b9050611b21838261281a565b611b2d848484846128cb565b611b3884848361268d565b826001600160a01b0316846001600160a01b03167fc71e393f1527f71ce01b78ea87c9bd4fca84f1482359ce7ac9b73f358c61b1e18484604051611afb9291906137fc565b611b856116a1565b6001600160a01b0316336001600160a01b031614610b6c5760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611c0a57610754836129f6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c64575060408051601f3d908101601f19168201909252611c6191810190613830565b60015b611cd65760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610740565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611d6b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610740565b50610754838383612acc565b6001600160a01b038116600090815260d0602090815260408083205467ffffffffffffffff1680845260cf909252909120611db29083612af1565b611dfe5760405162461bcd60e51b815260206004820152601d60248201527f49453a20636861696e506f6f6c732072656d6f76616c206661696c65640000006044820152606401610740565b611e0960cd83612af1565b611e555760405162461bcd60e51b815260206004820152601b60248201527f49453a20616c6c506f6f6c732072656d6f76616c206661696c656400000000006044820152606401610740565b506001600160a01b0316600090815260d06020526040812080547fffffffffffffffff00000000000000000000000000000000000000000000000016815560010155565b600061117684846001600160a01b038516612b06565b60006110ae825490565b60006111798383612b23565b6000611ecf611696565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316816001600160801b031610158015611f2d57506001600160801b038116600090815260d3602052604090205460ff16155b15610b6c576001600160801b038116600090815260d36020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611f8062093a8082613849565b9050611ed2565b6000428210611fd85760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610740565b825460005b8181101561204e5760006002611ff38484613871565b611ffd9190613786565b905084866000018281548110612015576120156136f3565b600091825260209091206002909102015463ffffffff16111561203a57809250612048565b612045816001613871565b91505b50611fdd565b81156120bb576120b685612063600185613889565b81548110612073576120736136f3565b60009182526020918290206040805180820190915260029290920201600101546001600160801b038082168352600160801b909104169181019190915285612155565b6120be565b60005b95945050505050565b60006110ae82612b4d565b60008080806120e18686612b58565b9097909650945050505050565b6060600061117983612b83565b604080518082019091526000808252602082015282846020015161211f9190613849565b6001600160801b0316602082015261213782846138a0565b84516121439190613849565b6001600160801b031681529392505050565b600081836020015161216791906138a0565b83516111799190613849565b6001600160801b03808316600090815260d1602052604081208054849391929161219f91859116613709565b82546101009290920a6001600160801b03818102199093169183160217909155928316600090815260d1602090815260408083206001600160a01b0397909716835260019690960190529390932080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000169190921617905550565b6001600160a01b038116600090815260d060205260409020805467ffffffffffffffff191667ffffffffffffffff8416179055612256611696565b6001600160a01b038216600090815260d06020908152604080832080546001600160801b039590951668010000000000000000027fffffffffffffffff00000000000000000000000000000000ffffffffffffffff9095169490941790935567ffffffffffffffff8516825260cf9052206122d19082612bdf565b61231d5760405162461bcd60e51b815260206004820152601960248201527f49453a20636861696e506f6f6c73206475706c696361746564000000000000006044820152606401610740565b61232860cd82612bdf565b610d225760405162461bcd60e51b815260206004820152601760248201527f49453a20616c6c506f6f6c73206475706c6963617465640000000000000000006044820152606401610740565b600062093a8061238481846138cf565b6110ae91906138a0565b60006111798383612bf4565b6123a5606583612c64565b6123b1576123b16138f5565b60006123be60658461238e565b6064546040517f5335dca20000000000000000000000000000000000000000000000000000000081529192506000916001600160a01b0390911690635335dca29061240d908690600401613963565b602060405180830381865afa15801561242a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244e9190613830565b6064546040517f9f3ce55a0000000000000000000000000000000000000000000000000000000081529192506001600160a01b031690639f3ce55a90839061249e90869089908990600401613976565b6000604051808303818588803b1580156124b757600080fd5b505af11580156124cb573d6000803e3d6000fd5b505050505050505050565b600081602001516001600160801b03166000141580156110ae575061250c6124fd83612c70565b6001600160801b031642101590565b1592915050565b6001600160a01b038216600090815260d06020908152604091829020825180840190935260018101546001600160801b038082168552600160801b9091041691830191909152906125649083612ce0565b80516020918201516001600160801b03908116600160801b02911617600183015582015160028201600061259785612c70565b6001600160801b03908116825260208201929092526040016000908120805490926125c491859116613849565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550505050565b6001600160a01b03808316600090815260d260209081526040808320938516835260018401909152812054825467ffffffffffffffff91821692849290916126379185911661399e565b825467ffffffffffffffff9182166101009390930a9283029190920219909116179055506001600160a01b039091166000908152600191820160205260408120805467ffffffffffffffff191681559091015550565b6001600160a01b03808416600090815260d4602090815260408083209386168352929052206107549082612d35565b60408051808201909152600080825260208201526000806126db6116a1565b6001600160a01b0316856001600160a01b03160361271d5769d3c21bcecceda100000091506127166127116303bfc40042613709565b612374565b90506127c5565b6040517fcb6b4f3c0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063cb6b4f3c906024016040805180830381865afa15801561279b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bf91906139bf565b90925090505b6127fe670de0b6b3a76400006127ee67ffffffffffffffff87166001600160801b038616613751565b6127f89190613786565b82612e5c565b6001600160801b03908116602086015216835250909392505050565b6001600160a01b038216600090815260d06020908152604091829020825180840190935260018101546001600160801b038082168552600160801b90910416918301919091529061286b9083612ea4565b80516020918201516001600160801b03908116600160801b02911617600183015582015160028201600061289e85612c70565b6001600160801b03908116825260208201929092526040016000908120805490926125c491859116613709565b6001600160a01b038416600090815260d26020526040812080549091849183919061290190849067ffffffffffffffff166139ee565b82546101009290920a67ffffffffffffffff8181021990931691831602179091558254670de0b6b3a764000091161115905061297f5760405162461bcd60e51b815260206004820152601360248201527f6578636565646564206d617820776569676874000000000000000000000000006044820152606401610740565b60408051808201825267ffffffffffffffff948516815260208082019485526001600160a01b039096166000908152600193840187529190912090518154941667ffffffffffffffff19909416939093178355905180519301516001600160801b03908116600160801b0293169290921791015550565b6001600160a01b0381163b612a735760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610740565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b612ad583612ee5565b600082511180612ae25750805b156107545761155c8383612f25565b6000611179836001600160a01b038416613027565b600082815260028401602052604081208290556111768484613121565b6000826000018281548110612b3a57612b3a6136f3565b9060005260206000200154905092915050565b60006110ae82611eaf565b60008080612b668585611eb9565b600081815260029690960160205260409095205494959350505050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612bd357602002820191906000526020600020905b815481526020019060010190808311612bbf575b50505050509050919050565b6000611179836001600160a01b038416613129565b600081815260028301602052604081205480151580612c185750612c188484613178565b6111795760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610740565b60006111798383613178565b600081602001516001600160801b0316600003612ccf5760405162461bcd60e51b815260206004820152600a60248201527f7a65726f20736c6f7065000000000000000000000000000000000000000000006044820152606401610740565b602082015182516110ae91906138cf565b604080518082019091526000808252602082015281518351612d029190613849565b6001600160801b0316815260208083015190840151612d219190613849565b6001600160801b0316602082015292915050565b81548015801590612d7757504283612d4e600184613889565b81548110612d5e57612d5e6136f3565b600091825260209091206002909102015463ffffffff16145b15612dd6578183612d89600184613889565b81548110612d9957612d996136f3565b6000918252602091829020835193909201516001600160801b03908116600160801b02931692909217600160029093029091019190910155505050565b6040805180820190915263ffffffff428116825260208083018581528654600181810189556000898152849020955160029092029095018054919094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161783555180519101516001600160801b03908116600160801b02911617910155505050565b6000806000612e906040518060400160405280876001600160801b03168152602001866001600160801b0316815250613184565b805160209091015190969095509350505050565b604080518082019091526000808252602082015281518351612ec69190613709565b6001600160801b0316815260208083015190840151612d219190613709565b612eee816129f6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b612fa45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610740565b600080846001600160a01b031684604051612fbf9190613a11565b600060405180830381855af49150503d8060008114612ffa576040519150601f19603f3d011682016040523d82523d6000602084013e612fff565b606091505b50915091506120be8282604051806060016040528060278152602001613a4460279139613229565b6000818152600183016020526040812054801561311057600061304b600183613889565b855490915060009061305f90600190613889565b90508181146130c457600086600001828154811061307f5761307f6136f3565b90600052602060002001549050808760000184815481106130a2576130a26136f3565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806130d5576130d5613a2d565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506110ae565b60009150506110ae565b5092915050565b600061117983835b6000818152600183016020526040812054613170575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556110ae565b5060006110ae565b60006111798383613262565b604080518082019091526000808252602082015281516131a9906303bfc400906138cf565b6001600160801b0316602082018190526132055760405162461bcd60e51b815260206004820152600a60248201527f7a65726f20736c6f7065000000000000000000000000000000000000000000006044820152606401610740565b8160200151816020015161321991906138a0565b6001600160801b03168152919050565b60608315613238575081611179565b8251156132485782518084602001fd5b8160405162461bcd60e51b81526004016107409190613963565b60008181526001830160205260408120541515611179565b6040518060400160405280600067ffffffffffffffff1681526020016132c5604051806040016040528060006001600160801b0316815260200160006001600160801b031681525090565b905290565b803567ffffffffffffffff811681146132e257600080fd5b919050565b6001600160801b0381168114610b6c57600080fd5b60008060006060848603121561331157600080fd5b61331a846132ca565b9250602084013561332a816132e7565b9150604084013561333a816132e7565b809150509250925092565b6001600160a01b0381168114610b6c57600080fd5b60006020828403121561336c57600080fd5b813561117981613345565b6000806040838503121561338a57600080fd5b823561339581613345565b91506133a3602084016132ca565b90509250929050565b600080604083850312156133bf57600080fd5b82356133ca81613345565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561340157600080fd5b823561340c81613345565b9150602083013567ffffffffffffffff8082111561342957600080fd5b818501915085601f83011261343d57600080fd5b81358181111561344f5761344f6133d8565b604051601f8201601f19908116603f01168101908382118183101715613477576134776133d8565b8160405282815288602084870101111561349057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000602082840312156134c457600080fd5b8135611179816132e7565b600080604083850312156134e257600080fd5b82356134ed81613345565b915060208301356134fd81613345565b809150509250929050565b815167ffffffffffffffff168152602080830151606083019161311a9084018280516001600160801b03908116835260209182015116910152565b67ffffffffffffffff841681526001600160801b038316602082015260808101613586604083018480516001600160801b03908116835260209182015116910152565b949350505050565b6000806000606084860312156135a357600080fd5b83356135ae81613345565b9250602084013561332a81613345565b6000602082840312156135d057600080fd5b611179826132ca565b600081518084526020808501945080840160005b83811015613609578151875295820195908201906001016135ed565b509495945050505050565b600081518084526020808501945080840160005b838110156136095781516001600160a01b031687529582019590820190600101613628565b60408152600061366060408301856135d9565b82810360208401526120be8185613614565b6020815260006111796020830184613614565b6000806040838503121561369857600080fd5b6134ed836132ca565b6000602082840312156136b357600080fd5b8151801515811461117957600080fd5b634e487b7160e01b600052601160045260246000fd5b600060001982036136ec576136ec6136c3565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60006001600160801b0380831681851680830382111561372b5761372b6136c3565b01949350505050565b60006020828403121561374657600080fd5b815161117981613345565b600081600019048311821515161561376b5761376b6136c3565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261379557613795613770565b500490565b6001600160801b03841681526060602082015260006137bc6060830185613614565b82810360408401526137ce81856135d9565b9695505050505050565b604081016110ae828480516001600160801b03908116835260209182015116910152565b67ffffffffffffffff8316815260608101611179602083018480516001600160801b03908116835260209182015116910152565b60006020828403121561384257600080fd5b5051919050565b60006001600160801b0383811690831681811015613869576138696136c3565b039392505050565b60008219821115613884576138846136c3565b500190565b60008282101561389b5761389b6136c3565b500390565b60006001600160801b03808316818516818304811182151516156138c6576138c66136c3565b02949350505050565b60006001600160801b03808416806138e9576138e9613770565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60005b8381101561392657818101518382015260200161390e565b8381111561155c5750506000910152565b6000815180845261394f81602086016020860161390b565b601f01601f19169290920160200192915050565b6020815260006111796020830184613937565b6001600160a01b03841681528260208201526060604082015260006120be6060830184613937565b600067ffffffffffffffff83811690831681811015613869576138696136c3565b600080604083850312156139d257600080fd5b82516139dd816132e7565b60208401519092506134fd816132e7565b600067ffffffffffffffff80831681851680830382111561372b5761372b6136c3565b60008251613a2381846020870161390b565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204e7a999c490b02d7babb438ca656f41bafb96ae7e9cbac17bd1d20007777987e64736f6c634300080d0033",
773
- "deployedBytecode": "0x6080604052600436106101e35760003560e01c8063aed2377d11610102578063c9430f4811610095578063d88ff1f411610064578063d88ff1f414610686578063f4359ce51461069b578063f7f03fea146106b2578063fa78668f146106d257600080fd5b8063c9430f48146105e5578063d2e6d1c314610612578063d569c7b714610646578063d68ffecb1461066657600080fd5b8063c2811e2a116100d1578063c2811e2a14610558578063c291230d14610578578063c4c30dc21461058b578063c8910913146105ae57600080fd5b8063aed2377d14610498578063b292bf95146104b8578063bfa5b32414610504578063c0202a441461052257600080fd5b806352d1902d1161017a57806382ae9ef71161014957806382ae9ef71461038557806382dabb211461039a57806383fd4d42146103ce5780639a7b5f111461040e57600080fd5b806352d1902d146102dd57806359255706146103005780635cc0496814610320578063646fb67c1461035857600080fd5b80633659cfe6116101b65780633659cfe6146102775780633b7d0946146102975780634e91d0cb146102b75780634f1ef286146102ca57600080fd5b80631c62997b146101e85780631c9bdb491461022257806323342c3814610237578063317f838d14610257575b600080fd5b3480156101f457600080fd5b50610204670de0b6b3a764000081565b60405167ffffffffffffffff90911681526020015b60405180910390f35b6102356102303660046132fc565b6106ea565b005b34801561024357600080fd5b5061023561025236600461335a565b610759565b34801561026357600080fd5b50610235610272366004613377565b6107ed565b34801561028357600080fd5b5061023561029236600461335a565b6109d2565b3480156102a357600080fd5b506102356102b236600461335a565b610b6f565b6102356102c53660046133ac565b610cbc565b6102356102d83660046133ee565b610d26565b3480156102e957600080fd5b506102f2610eb0565b604051908152602001610219565b34801561030c57600080fd5b5061023561031b3660046134b2565b610f75565b34801561032c57600080fd5b50606454610340906001600160a01b031681565b6040516001600160a01b039091168152602001610219565b34801561036457600080fd5b506103786103733660046134cf565b61103b565b6040516102199190613508565b34801561039157600080fd5b506102356110b4565b3480156103a657600080fd5b506103407f000000000000000000000000000000000000000000000000000000000000000081565b3480156103da57600080fd5b506103fe6103e93660046134b2565b60d36020526000908152604090205460ff1681565b6040519015158152602001610219565b34801561041a57600080fd5b5061048961042936600461335a565b60d060209081526000918252604091829020805483518085019094526001909101546001600160801b038082168552600160801b90910481169284019290925267ffffffffffffffff811692680100000000000000009091049091169083565b60405161021993929190613543565b3480156104a457600080fd5b506102356104b336600461335a565b6110f4565b3480156104c457600080fd5b506104ec7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160801b039091168152602001610219565b34801561051057600080fd5b506104ec69d3c21bcecceda100000081565b34801561052e57600080fd5b506104ec61053d3660046134b2565b60d1602052600090815260409020546001600160801b031681565b34801561056457600080fd5b506104ec61057336600461358e565b61113c565b6102356105863660046135be565b611180565b34801561059757600080fd5b506105a061120e565b60405161021992919061364d565b3480156105ba57600080fd5b506102046105c936600461335a565b60d26020526000908152604090205467ffffffffffffffff1681565b3480156105f157600080fd5b506106056106003660046135be565b611324565b6040516102199190613672565b34801561061e57600080fd5b506103407f000000000000000000000000000000000000000000000000000000000000000081565b34801561065257600080fd5b5061023561066136600461335a565b611349565b34801561067257600080fd5b50610235610681366004613685565b611562565b34801561069257600080fd5b50610605611685565b3480156106a757600080fd5b506104ec62093a8081565b3480156106be57600080fd5b5060cc546104ec906001600160801b031681565b3480156106de57600080fd5b506104ec6303bfc40081565b6106f26116a1565b6001600160a01b0316336001600160a01b0316146107495760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b60448201526064015b60405180910390fd5b610754838383611725565b505050565b6107616116a1565b6001600160a01b0316336001600160a01b0316146107b35760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b606480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3367ffffffffffffffff82166000036108485760405162461bcd60e51b815260206004820152600b60248201527f7a65726f207765696768740000000000000000000000000000000000000000006044820152606401610740565b6001600160a01b038316600090815260d060205260409020546801000000000000000090046001600160801b03166108c25760405162461bcd60e51b815260206004820152600c60248201527f696e76616c696420706f6f6c00000000000000000000000000000000000000006044820152606401610740565b6040517fd4d938760000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063d4d9387690602401602060405180830381865afa158015610941573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061096591906136a1565b156109b25760405162461bcd60e51b815260206004820152601560248201527f7573657220706f736974696f6e206578706972656400000000000000000000006044820152606401610740565b6109bb83611349565b6109c7818460006119fc565b610754818484611b09565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a705760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610acb7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614610b475760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610740565b610b5081611b7d565b60408051600080825260208201909252610b6c91839190611bd7565b50565b610b776116a1565b6001600160a01b0316336001600160a01b031614610bc95760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b6001600160a01b038116600090815260d060205260409020546801000000000000000090046001600160801b0316610c435760405162461bcd60e51b815260206004820152600c60248201527f696e76616c696420706f6f6c00000000000000000000000000000000000000006044820152606401610740565b6001600160a01b038116600090815260d0602052604090205467ffffffffffffffff16610c6f82611349565b610c7882611d77565b6040516001600160a01b0383169067ffffffffffffffff8316907ff2e3b584c4d1ed5ead9a4b7de2a8225fd42d13f09e417cd294d03f1dd07fc91490600090a35050565b610cc46116a1565b6001600160a01b0316336001600160a01b031614610d165760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b61075460658284611e99565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610dc45760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c00000000000000000000000000000000000000006064820152608401610740565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610e1f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614610e9b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f787900000000000000000000000000000000000000006064820152608401610740565b610ea482611b7d565b610d2282826001611bd7565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610f505760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610740565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610f7d6116a1565b6001600160a01b0316336001600160a01b031614610fcf5760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b60cc80547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001600160801b0383169081179091556040519081527ffe870af61f024df0d7f960ad100676f3ffaa7ea6a44bc6c7adf2756cb8cf4b389060200160405180910390a150565b61104361327a565b506001600160a01b03808316600090815260d2602090815260408083209385168352600193840182529182902082518084018452815467ffffffffffffffff16815283518085019094529301546001600160801b038082168452600160801b90910416828201528201525b92915050565b60006110c060cd611eaf565b905060005b818110156110eb576110db61066160cd83611eb9565b6110e4816136d9565b90506110c5565b50610b6c611ec5565b6001600160a01b038116600090815260d060205260409020546801000000000000000090046001600160801b0316156111305761113081611349565b610b6c338260016119fc565b6001600160a01b03808416600090815260d4602090815260408083209386168352929052908120611176906001600160801b038416611f87565b90505b9392505050565b600061118a611696565b6001600160801b038116600090815260d3602052604090205490915060ff166111f55760405162461bcd60e51b815260206004820152601360248201527f65706f6368206e6f742066696e616c697a6564000000000000000000000000006044820152606401610740565b60cc54610d2290839083906001600160801b0316611725565b606080600061121d60656120c7565b90508067ffffffffffffffff811115611238576112386133d8565b604051908082528060200260200182016040528015611261578160200160208202803683370190505b5092508067ffffffffffffffff81111561127d5761127d6133d8565b6040519080825280602002602001820160405280156112a6578160200160208202803683370190505b50915060005b8181101561131e576112bf6065826120d2565b8583815181106112d1576112d16136f3565b602002602001018584815181106112ea576112ea6136f3565b60200260200101826001600160a01b03166001600160a01b031681525082815250505080611317906136d9565b90506112ac565b50509091565b67ffffffffffffffff8116600090815260cf602052604090206060906110ae906120ee565b6001600160a01b038116600090815260d060205260409020546801000000000000000090046001600160801b03166113c35760405162461bcd60e51b815260206004820152600c60248201527f696e76616c696420706f6f6c00000000000000000000000000000000000000006044820152606401610740565b6001600160a01b038116600090815260d060205260408120546801000000000000000090046001600160801b0316906113fa611696565b9050806001600160801b0316826001600160801b03161061141a57505050565b6001600160a01b038316600090815260d060209081526040918290208251808401909352600101546001600160801b038082168452600160801b90910416908201525b816001600160801b0316836001600160801b031610156114e35761148462093a8084613709565b6001600160a01b038516600090815260d0602090815260408083206001600160801b0380861685526002909101909252909120549194506114c891839116856120fb565b90506114de84846114d98482612155565b612173565b61145d565b6001600160a01b038416600090815260d0602090815260409091208251918301516001600160801b03908116600160801b02928116929092176001820155805491851668010000000000000000027fffffffffffffffff00000000000000000000000000000000ffffffffffffffff9092169190911790555b50505050565b61156a6116a1565b6001600160a01b0316336001600160a01b0316146115bc5760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b6001600160a01b038116600090815260d060205260409020546801000000000000000090046001600160801b0316156116375760405162461bcd60e51b815260206004820152601260248201527f706f6f6c20616c726561647920616464656400000000000000000000000000006044820152606401610740565b611641828261221b565b6040516001600160a01b0382169067ffffffffffffffff8416907f336f0b3cc523e98d21e261389542b62abaffc094a21a82f1eec2779d7c8323cb90600090a35050565b606061169160cd6120ee565b905090565b600061169142612374565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116919190613734565b6001600160801b03808316600090815260d16020526040812054909116908190036117505750505050565b67ffffffffffffffff8416600090815260cf6020526040812061177290611eaf565b905080600003611783575050505050565b67ffffffffffffffff8516600090815260cf602052604081206117a5906120ee565b905060008267ffffffffffffffff8111156117c2576117c26133d8565b6040519080825280602002602001820160405280156117eb578160200160208202803683370190505b50905060005b838110156118c357600060d16000896001600160801b03166001600160801b031681526020019081526020016000206001016000858481518110611837576118376136f3565b6020908102919091018101516001600160a01b031682528101919091526040016000908120546001600160801b03908116925087906118799084908b16613751565b6118839190613786565b905061189262093a8082613751565b8484815181106118a4576118a46136f3565b6020026020010181815250505050806118bc906136d9565b90506117f1565b50468767ffffffffffffffff16036119705760006118ec606567ffffffffffffffff8a1661238e565b6040517f72cbf8700000000000000000000000000000000000000000000000000000000081529091506001600160a01b038216906372cbf87090611938908a908790879060040161379a565b600060405180830381600087803b15801561195257600080fd5b505af1158015611966573d6000803e3d6000fd5b50505050506119a7565b6119a78767ffffffffffffffff168784846040516020016119939392919061379a565b60405160208183030381529060405261239a565b6040516001600160801b03868116825287169067ffffffffffffffff8916907fc78a580f215ba474e75ecbd7636c375e8d2cd25edb0f2467f99b2d0752e104ba9060200160405180910390a350505050505050565b6001600160a01b03838116600090815260d26020908152604080832093861680845260019485018352818420825180840184529501546001600160801b038082168752600160801b90910481168685015290845260d0909252909120546801000000000000000090041615158015611a785750611a78816124d6565b15611a8757611a878382612513565b611a9184846125ed565b8115611ab8576040805180820190915260008082526020820152611ab8908590859061268d565b826001600160a01b0316846001600160a01b03167f9db2ca6056cbab558dc5c95284cdb4a39392d13ab84d0dda66e2895c1919ce4483604051611afb91906137d8565b60405180910390a350505050565b6000611b1584836126bc565b9050611b21838261281a565b611b2d848484846128cb565b611b3884848361268d565b826001600160a01b0316846001600160a01b03167fc71e393f1527f71ce01b78ea87c9bd4fca84f1482359ce7ac9b73f358c61b1e18484604051611afb9291906137fc565b611b856116a1565b6001600160a01b0316336001600160a01b031614610b6c5760405162461bcd60e51b815260206004820152600f60248201526e4f4e4c595f474f5645524e414e434560881b6044820152606401610740565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611c0a57610754836129f6565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611c64575060408051601f3d908101601f19168201909252611c6191810190613830565b60015b611cd65760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401610740565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611d6b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401610740565b50610754838383612acc565b6001600160a01b038116600090815260d0602090815260408083205467ffffffffffffffff1680845260cf909252909120611db29083612af1565b611dfe5760405162461bcd60e51b815260206004820152601d60248201527f49453a20636861696e506f6f6c732072656d6f76616c206661696c65640000006044820152606401610740565b611e0960cd83612af1565b611e555760405162461bcd60e51b815260206004820152601b60248201527f49453a20616c6c506f6f6c732072656d6f76616c206661696c656400000000006044820152606401610740565b506001600160a01b0316600090815260d06020526040812080547fffffffffffffffff00000000000000000000000000000000000000000000000016815560010155565b600061117684846001600160a01b038516612b06565b60006110ae825490565b60006111798383612b23565b6000611ecf611696565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316816001600160801b031610158015611f2d57506001600160801b038116600090815260d3602052604090205460ff16155b15610b6c576001600160801b038116600090815260d36020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611f8062093a8082613849565b9050611ed2565b6000428210611fd85760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610740565b825460005b8181101561204e5760006002611ff38484613871565b611ffd9190613786565b905084866000018281548110612015576120156136f3565b600091825260209091206002909102015463ffffffff16111561203a57809250612048565b612045816001613871565b91505b50611fdd565b81156120bb576120b685612063600185613889565b81548110612073576120736136f3565b60009182526020918290206040805180820190915260029290920201600101546001600160801b038082168352600160801b909104169181019190915285612155565b6120be565b60005b95945050505050565b60006110ae82612b4d565b60008080806120e18686612b58565b9097909650945050505050565b6060600061117983612b83565b604080518082019091526000808252602082015282846020015161211f9190613849565b6001600160801b0316602082015261213782846138a0565b84516121439190613849565b6001600160801b031681529392505050565b600081836020015161216791906138a0565b83516111799190613849565b6001600160801b03808316600090815260d1602052604081208054849391929161219f91859116613709565b82546101009290920a6001600160801b03818102199093169183160217909155928316600090815260d1602090815260408083206001600160a01b0397909716835260019690960190529390932080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000169190921617905550565b6001600160a01b038116600090815260d060205260409020805467ffffffffffffffff191667ffffffffffffffff8416179055612256611696565b6001600160a01b038216600090815260d06020908152604080832080546001600160801b039590951668010000000000000000027fffffffffffffffff00000000000000000000000000000000ffffffffffffffff9095169490941790935567ffffffffffffffff8516825260cf9052206122d19082612bdf565b61231d5760405162461bcd60e51b815260206004820152601960248201527f49453a20636861696e506f6f6c73206475706c696361746564000000000000006044820152606401610740565b61232860cd82612bdf565b610d225760405162461bcd60e51b815260206004820152601760248201527f49453a20616c6c506f6f6c73206475706c6963617465640000000000000000006044820152606401610740565b600062093a8061238481846138cf565b6110ae91906138a0565b60006111798383612bf4565b6123a5606583612c64565b6123b1576123b16138f5565b60006123be60658461238e565b6064546040517f5335dca20000000000000000000000000000000000000000000000000000000081529192506000916001600160a01b0390911690635335dca29061240d908690600401613963565b602060405180830381865afa15801561242a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061244e9190613830565b6064546040517f9f3ce55a0000000000000000000000000000000000000000000000000000000081529192506001600160a01b031690639f3ce55a90839061249e90869089908990600401613976565b6000604051808303818588803b1580156124b757600080fd5b505af11580156124cb573d6000803e3d6000fd5b505050505050505050565b600081602001516001600160801b03166000141580156110ae575061250c6124fd83612c70565b6001600160801b031642101590565b1592915050565b6001600160a01b038216600090815260d06020908152604091829020825180840190935260018101546001600160801b038082168552600160801b9091041691830191909152906125649083612ce0565b80516020918201516001600160801b03908116600160801b02911617600183015582015160028201600061259785612c70565b6001600160801b03908116825260208201929092526040016000908120805490926125c491859116613849565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550505050565b6001600160a01b03808316600090815260d260209081526040808320938516835260018401909152812054825467ffffffffffffffff91821692849290916126379185911661399e565b825467ffffffffffffffff9182166101009390930a9283029190920219909116179055506001600160a01b039091166000908152600191820160205260408120805467ffffffffffffffff191681559091015550565b6001600160a01b03808416600090815260d4602090815260408083209386168352929052206107549082612d35565b60408051808201909152600080825260208201526000806126db6116a1565b6001600160a01b0316856001600160a01b03160361271d5769d3c21bcecceda100000091506127166127116303bfc40042613709565b612374565b90506127c5565b6040517fcb6b4f3c0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063cb6b4f3c906024016040805180830381865afa15801561279b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127bf91906139bf565b90925090505b6127fe670de0b6b3a76400006127ee67ffffffffffffffff87166001600160801b038616613751565b6127f89190613786565b82612e5c565b6001600160801b03908116602086015216835250909392505050565b6001600160a01b038216600090815260d06020908152604091829020825180840190935260018101546001600160801b038082168552600160801b90910416918301919091529061286b9083612ea4565b80516020918201516001600160801b03908116600160801b02911617600183015582015160028201600061289e85612c70565b6001600160801b03908116825260208201929092526040016000908120805490926125c491859116613709565b6001600160a01b038416600090815260d26020526040812080549091849183919061290190849067ffffffffffffffff166139ee565b82546101009290920a67ffffffffffffffff8181021990931691831602179091558254670de0b6b3a764000091161115905061297f5760405162461bcd60e51b815260206004820152601360248201527f6578636565646564206d617820776569676874000000000000000000000000006044820152606401610740565b60408051808201825267ffffffffffffffff948516815260208082019485526001600160a01b039096166000908152600193840187529190912090518154941667ffffffffffffffff19909416939093178355905180519301516001600160801b03908116600160801b0293169290921791015550565b6001600160a01b0381163b612a735760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401610740565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b612ad583612ee5565b600082511180612ae25750805b156107545761155c8383612f25565b6000611179836001600160a01b038416613027565b600082815260028401602052604081208290556111768484613121565b6000826000018281548110612b3a57612b3a6136f3565b9060005260206000200154905092915050565b60006110ae82611eaf565b60008080612b668585611eb9565b600081815260029690960160205260409095205494959350505050565b606081600001805480602002602001604051908101604052809291908181526020018280548015612bd357602002820191906000526020600020905b815481526020019060010190808311612bbf575b50505050509050919050565b6000611179836001600160a01b038416613129565b600081815260028301602052604081205480151580612c185750612c188484613178565b6111795760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610740565b60006111798383613178565b600081602001516001600160801b0316600003612ccf5760405162461bcd60e51b815260206004820152600a60248201527f7a65726f20736c6f7065000000000000000000000000000000000000000000006044820152606401610740565b602082015182516110ae91906138cf565b604080518082019091526000808252602082015281518351612d029190613849565b6001600160801b0316815260208083015190840151612d219190613849565b6001600160801b0316602082015292915050565b81548015801590612d7757504283612d4e600184613889565b81548110612d5e57612d5e6136f3565b600091825260209091206002909102015463ffffffff16145b15612dd6578183612d89600184613889565b81548110612d9957612d996136f3565b6000918252602091829020835193909201516001600160801b03908116600160801b02931692909217600160029093029091019190910155505050565b6040805180820190915263ffffffff428116825260208083018581528654600181810189556000898152849020955160029092029095018054919094167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161783555180519101516001600160801b03908116600160801b02911617910155505050565b6000806000612e906040518060400160405280876001600160801b03168152602001866001600160801b0316815250613184565b805160209091015190969095509350505050565b604080518082019091526000808252602082015281518351612ec69190613709565b6001600160801b0316815260208083015190840151612d219190613709565b612eee816129f6565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b612fa45760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f60448201527f6e747261637400000000000000000000000000000000000000000000000000006064820152608401610740565b600080846001600160a01b031684604051612fbf9190613a11565b600060405180830381855af49150503d8060008114612ffa576040519150601f19603f3d011682016040523d82523d6000602084013e612fff565b606091505b50915091506120be8282604051806060016040528060278152602001613a4460279139613229565b6000818152600183016020526040812054801561311057600061304b600183613889565b855490915060009061305f90600190613889565b90508181146130c457600086600001828154811061307f5761307f6136f3565b90600052602060002001549050808760000184815481106130a2576130a26136f3565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806130d5576130d5613a2d565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506110ae565b60009150506110ae565b5092915050565b600061117983835b6000818152600183016020526040812054613170575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556110ae565b5060006110ae565b60006111798383613262565b604080518082019091526000808252602082015281516131a9906303bfc400906138cf565b6001600160801b0316602082018190526132055760405162461bcd60e51b815260206004820152600a60248201527f7a65726f20736c6f7065000000000000000000000000000000000000000000006044820152606401610740565b8160200151816020015161321991906138a0565b6001600160801b03168152919050565b60608315613238575081611179565b8251156132485782518084602001fd5b8160405162461bcd60e51b81526004016107409190613963565b60008181526001830160205260408120541515611179565b6040518060400160405280600067ffffffffffffffff1681526020016132c5604051806040016040528060006001600160801b0316815260200160006001600160801b031681525090565b905290565b803567ffffffffffffffff811681146132e257600080fd5b919050565b6001600160801b0381168114610b6c57600080fd5b60008060006060848603121561331157600080fd5b61331a846132ca565b9250602084013561332a816132e7565b9150604084013561333a816132e7565b809150509250925092565b6001600160a01b0381168114610b6c57600080fd5b60006020828403121561336c57600080fd5b813561117981613345565b6000806040838503121561338a57600080fd5b823561339581613345565b91506133a3602084016132ca565b90509250929050565b600080604083850312156133bf57600080fd5b82356133ca81613345565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561340157600080fd5b823561340c81613345565b9150602083013567ffffffffffffffff8082111561342957600080fd5b818501915085601f83011261343d57600080fd5b81358181111561344f5761344f6133d8565b604051601f8201601f19908116603f01168101908382118183101715613477576134776133d8565b8160405282815288602084870101111561349057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000602082840312156134c457600080fd5b8135611179816132e7565b600080604083850312156134e257600080fd5b82356134ed81613345565b915060208301356134fd81613345565b809150509250929050565b815167ffffffffffffffff168152602080830151606083019161311a9084018280516001600160801b03908116835260209182015116910152565b67ffffffffffffffff841681526001600160801b038316602082015260808101613586604083018480516001600160801b03908116835260209182015116910152565b949350505050565b6000806000606084860312156135a357600080fd5b83356135ae81613345565b9250602084013561332a81613345565b6000602082840312156135d057600080fd5b611179826132ca565b600081518084526020808501945080840160005b83811015613609578151875295820195908201906001016135ed565b509495945050505050565b600081518084526020808501945080840160005b838110156136095781516001600160a01b031687529582019590820190600101613628565b60408152600061366060408301856135d9565b82810360208401526120be8185613614565b6020815260006111796020830184613614565b6000806040838503121561369857600080fd5b6134ed836132ca565b6000602082840312156136b357600080fd5b8151801515811461117957600080fd5b634e487b7160e01b600052601160045260246000fd5b600060001982036136ec576136ec6136c3565b5060010190565b634e487b7160e01b600052603260045260246000fd5b60006001600160801b0380831681851680830382111561372b5761372b6136c3565b01949350505050565b60006020828403121561374657600080fd5b815161117981613345565b600081600019048311821515161561376b5761376b6136c3565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261379557613795613770565b500490565b6001600160801b03841681526060602082015260006137bc6060830185613614565b82810360408401526137ce81856135d9565b9695505050505050565b604081016110ae828480516001600160801b03908116835260209182015116910152565b67ffffffffffffffff8316815260608101611179602083018480516001600160801b03908116835260209182015116910152565b60006020828403121561384257600080fd5b5051919050565b60006001600160801b0383811690831681811015613869576138696136c3565b039392505050565b60008219821115613884576138846136c3565b500190565b60008282101561389b5761389b6136c3565b500390565b60006001600160801b03808316818516818304811182151516156138c6576138c66136c3565b02949350505050565b60006001600160801b03808416806138e9576138e9613770565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60005b8381101561392657818101518382015260200161390e565b8381111561155c5750506000910152565b6000815180845261394f81602086016020860161390b565b601f01601f19169290920160200192915050565b6020815260006111796020830184613937565b6001600160a01b03841681528260208201526060604082015260006120be6060830184613937565b600067ffffffffffffffff83811690831681811015613869576138696136c3565b600080604083850312156139d257600080fd5b82516139dd816132e7565b60208401519092506134fd816132e7565b600067ffffffffffffffff80831681851680830382111561372b5761372b6136c3565b60008251613a2381846020870161390b565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212204e7a999c490b02d7babb438ca656f41bafb96ae7e9cbac17bd1d20007777987e64736f6c634300080d0033",
774
+ "bytecode": "0x6101006040523060e0523480156200001657600080fd5b50604051620038ec380380620038ec833981016040819052620000399162000119565b8181806001600160a01b038116620000865760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015260640160405180910390fd5b6001600160a01b03908116608052821660a05250620000b0620000c6602090811b6200149d17901c565b6001600160801b031660c05250620001c4915050565b6000620000d342620000d8565b905090565b600062093a80620000ea818462000151565b620000f6919062000186565b92915050565b80516001600160a01b03811681146200011457600080fd5b919050565b600080604083850312156200012d57600080fd5b6200013883620000fc565b91506200014860208401620000fc565b90509250929050565b60006001600160801b03838116806200017a57634e487b7160e01b600052601260045260246000fd5b92169190910492915050565b60006001600160801b0382811684821681151582840482111615620001bb57634e487b7160e01b600052601160045260246000fd5b02949350505050565b60805160a05160c05160e0516136b662000236600039600081816107120152818161075201528181610a9b01528181610adb0152610b530152600081816104230152611fd70152600081816103ef01528181610d5a01526126ae0152600081816105bb01526114ac01526136b66000f3fe6080604052600436106101685760003560e01c8063136efb7a1461016d5780631c62997b146101fa5780631c9bdb491461022e57806323342c38146102435780632c730351146102635780633659cfe61461028557806338b8765c146102a55780633b7d0946146102c55780634e91d0cb146102e55780634f1ef286146102f857806352d1902d1461030b578063592557061461032e5780635cc049681461034e578063646fb67c1461037b578063698766ee146103a857806382ae9ef7146103c857806382dabb21146103dd578063b292bf9514610411578063bfa5b32414610452578063c0202a4414610470578063c2811e2a146104cf578063c291230d146104ef578063c4c30dc214610502578063c891091314610525578063c9430f481461055b578063cc88370e1461057b578063d2e6d1c3146105a9578063d68ffecb146105dd578063f4359ce5146105fd578063f7f03fea14610614578063fa78668f14610634575b600080fd5b34801561017957600080fd5b506101e2610188366004612d6d565b60d260209081526000918252604091829020805483518085019094526001909101546001600160801b038082168552600160801b9091048116928401929092526001600160401b03811692600160401b9091049091169083565b6040516101f193929190612da5565b60405180910390f35b34801561020657600080fd5b50610216670de0b6b3a764000081565b6040516001600160401b0390911681526020016101f1565b61024161023c366004612e0a565b61064c565b005b34801561024f57600080fd5b5061024161025e366004612d6d565b61069d565b34801561026f57600080fd5b506102786106f7565b6040516101f19190612e97565b34801561029157600080fd5b506102416102a0366004612d6d565b610708565b3480156102b157600080fd5b506102416102c0366004612d6d565b6107d0565b3480156102d157600080fd5b506102416102e0366004612d6d565b610975565b6102416102f3366004612eaa565b610a49565b610241610306366004612eec565b610a91565b34801561031757600080fd5b50610320610b46565b6040519081526020016101f1565b34801561033a57600080fd5b50610241610349366004612faf565b610bf4565b34801561035a57600080fd5b5060645461036e906001600160a01b031681565b6040516101f19190612fcc565b34801561038757600080fd5b5061039b610396366004612fe0565b610c82565b6040516101f19190613019565b3480156103b457600080fd5b506102416103c3366004613081565b610cfa565b3480156103d457600080fd5b5061024161106b565b3480156103e957600080fd5b5061036e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041d57600080fd5b506104457f000000000000000000000000000000000000000000000000000000000000000081565b6040516101f191906130ec565b34801561045e57600080fd5b5061044569d3c21bcecceda100000081565b34801561047c57600080fd5b506104b061048b366004612faf565b60d36020526000908152604090205460ff81169061010090046001600160801b031682565b6040805192151583526001600160801b039091166020830152016101f1565b3480156104db57600080fd5b506104456104ea366004613100565b6110ab565b6102416104fd366004613130565b6110ef565b34801561050e57600080fd5b50610517611173565b6040516101f192919061317b565b34801561053157600080fd5b50610216610540366004612d6d565b60d4602052600090815260409020546001600160401b031681565b34801561056757600080fd5b50610278610576366004613130565b611287565b34801561058757600080fd5b5061059b6105963660046131a0565b6112ab565b6040516101f19291906131c2565b3480156105b557600080fd5b5061036e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e957600080fd5b506102416105f83660046131db565b61136b565b34801561060957600080fd5b5061044562093a8081565b34801561062057600080fd5b5060cc54610445906001600160801b031681565b34801561064057600080fd5b506104456303bfc40081565b6106546114a8565b6001600160a01b0316336001600160a01b03161461068d5760405162461bcd60e51b8152600401610684906131f7565b60405180910390fd5b61069883838361152c565b505050565b6106a56114a8565b6001600160a01b0316336001600160a01b0316146106d55760405162461bcd60e51b8152600401610684906131f7565b606480546001600160a01b0319166001600160a01b0392909216919091179055565b606061070360cd6117e8565b905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107505760405162461bcd60e51b815260040161068490613220565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107826117f5565b6001600160a01b0316146107a85760405162461bcd60e51b81526004016106849061325a565b6107b181611811565b604080516000808252602082019092526107cd91839190611849565b50565b6107d9816119b4565b6107f55760405162461bcd60e51b815260040161068490613294565b6001600160a01b038116600090815260d26020526040812054600160401b90046001600160801b03169061082761149d565b9050806001600160801b0316826001600160801b03161061084757505050565b6001600160a01b038316600090815260d260209081526040918290208251808401909352600101546001600160801b038082168452600160801b90910416908201525b816001600160801b0316836001600160801b03161015610910576108b162093a80846132d0565b6001600160a01b038516600090815260d2602090815260408083206001600160801b0380861685526002909101909252909120549194506108f591839116856119c1565b905061090b84846109068482611a0f565b611a2d565b61088a565b6001600160a01b038416600090815260d2602090815260409091208251918301516001600160801b03908116600160801b029281169290921760018201558054918516600160401b02600160401b600160c01b03199092169190911790555b50505050565b61097d6114a8565b6001600160a01b0316336001600160a01b0316146109ad5760405162461bcd60e51b8152600401610684906131f7565b6109b6816119b4565b6109d25760405162461bcd60e51b815260040161068490613294565b6001600160a01b038116600090815260d260205260409020546001600160401b03166109fd826107d0565b610a0682611ac2565b6040516001600160a01b038316906001600160401b038316907ff2e3b584c4d1ed5ead9a4b7de2a8225fd42d13f09e417cd294d03f1dd07fc91490600090a35050565b610a516114a8565b6001600160a01b0316336001600160a01b031614610a815760405162461bcd60e51b8152600401610684906131f7565b61069860658284611b92565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ad95760405162461bcd60e51b815260040161068490613220565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b0b6117f5565b6001600160a01b031614610b315760405162461bcd60e51b81526004016106849061325a565b610b3a82611811565b610a8d82826001611849565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610be15760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610684565b5060008051602061363a83398151915290565b610bfc6114a8565b6001600160a01b0316336001600160a01b031614610c2c5760405162461bcd60e51b8152600401610684906131f7565b60cc80546001600160801b0319166001600160801b0383161790556040517ffe870af61f024df0d7f960ad100676f3ffaa7ea6a44bc6c7adf2756cb8cf4b3890610c779083906130ec565b60405180910390a150565b610c8a612d19565b506001600160a01b03808316600090815260d460209081526040808320938516835260019384018252918290208251808401845281546001600160401b0316815283518085019094529301546001600160801b038082168452600160801b90910416828201528201525b92915050565b33818414610d405760405162461bcd60e51b81526020600482015260136024820152720d2dcecc2d2c840c2e4e4c2f240d8cadccee8d606b1b6044820152606401610684565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610d8f908590600401612fcc565b602060405180830381865afa158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd091906132fb565b6001600160801b031611610e1e5760405162461bcd60e51b81526020600482015260156024820152747a65726f20766570656e646c652062616c616e636560581b6044820152606401610684565b6001600160a01b038116600090815260d460205260408120905b85811015610eae57610e6f878783818110610e5557610e55613318565b9050602002016020810190610e6a9190612d6d565b6119b4565b15610e9e57610e9e878783818110610e8957610e89613318565b90506020020160208101906102c09190612d6d565b610ea78161332e565b9050610e38565b5060005b85811015610fa857848482818110610ecc57610ecc613318565b9050602002016020810190610ee19190613130565b6001600160401b0316826001016000898985818110610f0257610f02613318565b9050602002016020810190610f179190612d6d565b6001600160a01b031681526020810191909152604001600020546001600160401b031611610f9857610f9683888884818110610f5557610f55613318565b9050602002016020810190610f6a9190612d6d565b878785818110610f7c57610f7c613318565b9050602002016020810190610f919190613130565b611ba8565b505b610fa18161332e565b9050610eb2565b5060005b8581101561106257848482818110610fc657610fc6613318565b9050602002016020810190610fdb9190613130565b6001600160401b0316826001016000898985818110610ffc57610ffc613318565b90506020020160208101906110119190612d6d565b6001600160a01b031681526020810191909152604001600020546001600160401b031611156110525761105083888884818110610f5557610f55613318565b505b61105b8161332e565b9050610fac565b50505050505050565b600061107760cd611fb2565b905060005b818110156110a2576110926102c060cd83611fbc565b61109b8161332e565b905061107c565b506107cd611fc8565b6001600160a01b03808416600090815260d56020908152604080832093861683529290529081206110e5906001600160801b03841661206c565b90505b9392505050565b60006110f961149d565b6001600160801b038116600090815260d3602052604090205490915060ff1661115a5760405162461bcd60e51b8152602060048201526013602482015272195c1bd8da081b9bdd08199a5b985b1a5e9959606a1b6044820152606401610684565b60cc54610a8d90839083906001600160801b031661152c565b606080600061118260656121ac565b9050806001600160401b0381111561119c5761119c612ed6565b6040519080825280602002602001820160405280156111c5578160200160208202803683370190505b509250806001600160401b038111156111e0576111e0612ed6565b604051908082528060200260200182016040528015611209578160200160208202803683370190505b50915060005b81811015611281576112226065826121b7565b85838151811061123457611234613318565b6020026020010185848151811061124d5761124d613318565b60200260200101826001600160a01b03166001600160a01b03168152508281525050508061127a9061332e565b905061120f565b50509091565b6001600160401b038116600090815260d160205260409020606090610cf4906117e8565b600060606112b98484613347565b6112c490600161335e565b6001600160401b038111156112db576112db612ed6565b604051908082528060200260200182016040528015611304578160200160208202803683370190505b509050835b8381116113575761131b60cf82611fbc565b82828151811061132d5761132d613318565b6001600160a01b03909216602092830291909101909101528061134f8161332e565b915050611309565b5061136260cf611fb2565b91509250929050565b6113736114a8565b6001600160a01b0316336001600160a01b0316146113a35760405162461bcd60e51b8152600401610684906131f7565b6113ac816119b4565b156113ee5760405162461bcd60e51b81526020600482015260126024820152711c1bdbdb08185b1c9958591e48185919195960721b6044820152606401610684565b6113f960cf826121d5565b156114505760405162461bcd60e51b815260206004820152602160248201527f6e6f7420616c6c6f77656420746f2061646420612072656d6f76656420706f6f6044820152601b60fa1b6064820152608401610684565b61145a82826121ea565b6040516001600160a01b038216906001600160401b038416907f336f0b3cc523e98d21e261389542b62abaffc094a21a82f1eec2779d7c8323cb90600090a35050565b6000610703426122cd565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107039190613376565b6001600160801b03808316600090815260d3602052604081205461010090049091169081900361155c5750505050565b6001600160401b038416600090815260d16020526040812061157d90611fb2565b90508060000361158e575050505050565b6001600160401b038516600090815260d1602052604081206115af906117e8565b90506000826001600160401b038111156115cb576115cb612ed6565b6040519080825280602002602001820160405280156115f4578160200160208202803683370190505b50905060005b838110156116cc57600060d36000896001600160801b03166001600160801b03168152602001908152602001600020600101600085848151811061164057611640613318565b6020908102919091018101516001600160a01b031682528101919091526040016000908120546001600160801b03908116925087906116829084908b16613393565b61168c91906133c8565b905061169b62093a8082613393565b8484815181106116ad576116ad613318565b6020026020010181815250505050806116c59061332e565b90506115fa565b5046876001600160401b03160361175e5760006116f360656001600160401b038a166122e7565b60405163072cbf8760e41b81529091506001600160a01b038216906372cbf87090611726908a90879087906004016133dc565b600060405180830381600087803b15801561174057600080fd5b505af1158015611754573d6000803e3d6000fd5b5050505050611794565b611794876001600160401b0316878484604051602001611780939291906133dc565b6040516020818303038152906040526122f3565b856001600160801b0316876001600160401b03167fc78a580f215ba474e75ecbd7636c375e8d2cd25edb0f2467f99b2d0752e104ba876040516117d791906130ec565b60405180910390a350505050505050565b606060006110e8836123fd565b60008051602061363a833981519152546001600160a01b031690565b6118196114a8565b6001600160a01b0316336001600160a01b0316146107cd5760405162461bcd60e51b8152600401610684906131f7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561187c5761069883612459565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156118d6575060408051601f3d908101601f191682019092526118d39181019061341c565b60015b6119395760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610684565b60008051602061363a83398151915281146119a85760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610684565b506106988383836124f3565b6000610cf460cd836121d5565b6119c9612d41565b8284602001516119d99190613435565b6001600160801b031660208201526119f1828461345d565b84516119fd9190613435565b6001600160801b031681529392505050565b6000818360200151611a21919061345d565b83516110e89190613435565b6001600160801b03808316600090815260d36020526040902080548392600191611a5e9185916101009004166132d0565b82546101009290920a6001600160801b03818102199093169183160217909155928316600090815260d3602090815260408083206001600160a01b0397909716835260019690960190529390932080546001600160801b0319169190921617905550565b6001600160a01b038116600090815260d260209081526040808320546001600160401b031680845260d1909252909120611afc9083612518565b611b185760405162461bcd60e51b81526004016106849061348c565b611b2360cd83612518565b611b3f5760405162461bcd60e51b81526004016106849061348c565b611b4a60cf8361252d565b611b665760405162461bcd60e51b81526004016106849061348c565b506001600160a01b0316600090815260d26020526040812080546001600160c01b031916815560010155565b60006110e584846001600160a01b038516612542565b611bb0612d41565b6001600160a01b03808516600090815260d460209081526040808320938716835260d2825280832060018086018452938290208251808401909352909301546001600160801b03808216808452600160801b90920416928201929092529015611d7257611c1c866119b4565b8015611c2c5750611c2c8161255f565b15611cea576040805180820190915260018301546001600160801b038082168352600160801b909104166020820152611c65908261259c565b80516020918201516001600160801b03908116600160801b029116176001840155810151600283016000611c98846125e5565b6001600160801b0390811682526020820192909252604001600090812080549092611cc591859116613435565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038616600090815260018401602052604081205484546001600160401b039182169286929091611d23918591166134a8565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b038616600090815260018481016020526040822080546001600160401b031916815501555b6001600160401b03851615611f7957611d8a866119b4565b611dc85760405162461bcd60e51b815260206004820152600f60248201526e706f6f6c206e6f742061637469766560881b6044820152606401610684565b611dd28786612642565b6040805180820190915260018401546001600160801b038082168352600160801b909104166020820152909450611e09908561277d565b80516020918201516001600160801b03908116600160801b029116176001840155840151600283016000611e3c876125e5565b6001600160801b0390811682526020820192909252604001600090812080549092611e69918591166132d0565b82546001600160801b039182166101009390930a9283029282021916919091179091556040805180820182526001600160401b03808a16825260208083018a81526001600160a01b038d16600090815260018b81018452958120945185549085166001600160401b0319909116178555905180519201518616600160801b02919095161791909201558554889350869291611f06918591166134c8565b82546101009290920a6001600160401b038181021990931691831602179091558454670de0b6b3a7640000911611159050611f795760405162461bcd60e51b8152602060048201526013602482015272195e18d959591959081b585e081dd95a59da1d606a1b6044820152606401610684565b6001600160a01b03808816600090815260d560209081526040808320938a16835292905220611fa890856127b2565b5050509392505050565b6000610cf4825490565b60006110e883836128be565b6000611fd261149d565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316816001600160801b03161015801561203057506001600160801b038116600090815260d3602052604090205460ff16155b156107cd576001600160801b038116600090815260d360205260409020805460ff1916600117905561206562093a8082613435565b9050611fd5565b60004282106120bd5760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610684565b825460005b8181101561213357600060026120d8848461335e565b6120e291906133c8565b9050848660000182815481106120fa576120fa613318565b600091825260209091206002909102015463ffffffff16111561211f5780925061212d565b61212a81600161335e565b91505b506120c2565b81156121a05761219b85612148600185613347565b8154811061215857612158613318565b60009182526020918290206040805180820190915260029290920201600101546001600160801b038082168352600160801b909104169181019190915285611a0f565b6121a3565b60005b95945050505050565b6000610cf4826128e8565b60008080806121c686866128f3565b909450925050505b9250929050565b60006110e8836001600160a01b03841661291e565b6001600160401b038216600090815260d16020526040902061220c908261252d565b6122285760405162461bcd60e51b81526004016106849061348c565b61223360cd8261252d565b61224f5760405162461bcd60e51b81526004016106849061348c565b6001600160a01b038116600090815260d26020526040902080546001600160401b0319166001600160401b03841617905561228861149d565b6001600160a01b03909116600090815260d26020526040902080546001600160801b0392909216600160401b02600160401b600160c01b031990921691909117905550565b600062093a806122dd81846134ea565b610cf4919061345d565b60006110e88383612936565b6122fe6065836129a6565b61230a5761230a613510565b60006123176065846122e7565b60645460405163299aee5160e11b81529192506000916001600160a01b0390911690635335dca29061234d90869060040161357e565b602060405180830381865afa15801561236a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238e919061341c565b606454604051634f9e72ad60e11b81529192506001600160a01b031690639f3ce55a9083906123c590869089908990600401613591565b6000604051808303818588803b1580156123de57600080fd5b505af11580156123f2573d6000803e3d6000fd5b505050505050505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561244d57602002820191906000526020600020905b815481526020019060010190808311612439575b50505050509050919050565b612462816129b2565b6124c45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610684565b60008051602061363a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6124fc836129c1565b6000825111806125095750805b156106985761096f8383612a01565b60006110e8836001600160a01b038416612aea565b60006110e8836001600160a01b038416612be4565b600082815260028401602052604081208290556110e58484612c2e565b600081602001516001600160801b0316600014158015610cf45750612595612586836125e5565b6001600160801b031642101590565b1592915050565b6125a4612d41565b815183516125b29190613435565b6001600160801b03168152602080830151908401516125d19190613435565b6001600160801b0316602082015292915050565b600081602001516001600160801b03166000036126315760405162461bcd60e51b815260206004820152600a6024820152697a65726f20736c6f706560b01b6044820152606401610684565b60208201518251610cf491906134ea565b61264a612d41565b6000806126556114a8565b6001600160a01b0316856001600160a01b0316036126975769d3c21bcecceda1000000915061269061268b6303bfc400426132d0565b6122cd565b9050612729565b6040516332dad3cf60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cb6b4f3c906126e3908890600401612fcc565b6040805180830381865afa1580156126ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272391906135b8565b90925090505b612761670de0b6b3a76400006127516001600160401b0387166001600160801b038616613393565b61275b91906133c8565b82612c3a565b6001600160801b03908116602086015216835250909392505050565b612785612d41565b8151835161279391906132d0565b6001600160801b03168152602080830151908401516125d191906132d0565b815480158015906127f4575042836127cb600184613347565b815481106127db576127db613318565b600091825260209091206002909102015463ffffffff16145b15612853578183612806600184613347565b8154811061281657612816613318565b6000918252602091829020835193909201516001600160801b03908116600160801b02931692909217600160029093029091019190910155505050565b6040805180820190915263ffffffff4281168252602080830185815286546001818101895560008981528490209551600290920290950180549190941663ffffffff199091161783555180519101516001600160801b03908116600160801b02911617910155505050565b60008260000182815481106128d5576128d5613318565b9060005260206000200154905092915050565b6000610cf482611fb2565b600080806129018585611fbc565b600081815260029690960160205260409095205494959350505050565b60009081526001919091016020526040902054151590565b60008181526002830160205260408120548015158061295a575061295a8484612c82565b6110e85760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610684565b60006110e88383612c82565b6001600160a01b03163b151590565b6129ca81612459565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612a0c836129b2565b612a675760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610684565b600080846001600160a01b031684604051612a8291906135e7565b600060405180830381855af49150503d8060008114612abd576040519150601f19603f3d011682016040523d82523d6000602084013e612ac2565b606091505b50915091506121a3828260405180606001604052806027815260200161365a60279139612c8e565b60008181526001830160205260408120548015612bd3576000612b0e600183613347565b8554909150600090612b2290600190613347565b9050818114612b87576000866000018281548110612b4257612b42613318565b9060005260206000200154905080876000018481548110612b6557612b65613318565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612b9857612b98613603565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cf4565b6000915050610cf4565b5092915050565b6000612bf0838361291e565b612c2657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cf4565b506000610cf4565b60006110e88383612be4565b6000806000612c6e6040518060400160405280876001600160801b03168152602001866001600160801b0316815250612cc7565b805160209091015190969095509350505050565b60006110e88383612d0d565b60608315612c9d5750816110e8565b825115612cad5782518084602001fd5b8160405162461bcd60e51b8152600401610684919061357e565b612ccf612d41565b8151612ce0906303bfc400906134ea565b6001600160801b03166020808301829052830151612cfd9161345d565b6001600160801b03168152919050565b60006110e8838361291e565b604051806040016040528060006001600160401b03168152602001612d3c612d41565b905290565b604080518082019091526000808252602082015290565b6001600160a01b03811681146107cd57600080fd5b600060208284031215612d7f57600080fd5b81356110e881612d58565b80516001600160801b03908116835260209182015116910152565b6001600160401b03841681526001600160801b038316602082015260808101612dd16040830184612d8a565b949350505050565b80356001600160401b0381168114612df057600080fd5b919050565b6001600160801b03811681146107cd57600080fd5b600080600060608486031215612e1f57600080fd5b612e2884612dd9565b92506020840135612e3881612df5565b91506040840135612e4881612df5565b809150509250925092565b600081518084526020808501945080840160005b83811015612e8c5781516001600160a01b031687529582019590820190600101612e67565b509495945050505050565b6020815260006110e86020830184612e53565b60008060408385031215612ebd57600080fd5b8235612ec881612d58565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612eff57600080fd5b8235612f0a81612d58565b915060208301356001600160401b0380821115612f2657600080fd5b818501915085601f830112612f3a57600080fd5b813581811115612f4c57612f4c612ed6565b604051601f8201601f19908116603f01168101908382118183101715612f7457612f74612ed6565b81604052828152886020848701011115612f8d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215612fc157600080fd5b81356110e881612df5565b6001600160a01b0391909116815260200190565b60008060408385031215612ff357600080fd5b8235612ffe81612d58565b9150602083013561300e81612d58565b809150509250929050565b81516001600160401b031681526020808301516060830191612bdd90840182612d8a565b60008083601f84011261304f57600080fd5b5081356001600160401b0381111561306657600080fd5b6020830191508360208260051b85010111156121ce57600080fd5b6000806000806040858703121561309757600080fd5b84356001600160401b03808211156130ae57600080fd5b6130ba8883890161303d565b909650945060208701359150808211156130d357600080fd5b506130e08782880161303d565b95989497509550505050565b6001600160801b0391909116815260200190565b60008060006060848603121561311557600080fd5b833561312081612d58565b92506020840135612e3881612d58565b60006020828403121561314257600080fd5b6110e882612dd9565b600081518084526020808501945080840160005b83811015612e8c5781518752958201959082019060010161315f565b60408152600061318e604083018561314b565b82810360208401526121a38185612e53565b600080604083850312156131b357600080fd5b50508035926020909101359150565b8281526040602082015260006110e56040830184612e53565b600080604083850312156131ee57600080fd5b612ffe83612dd9565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b6020808252602c9082015260008051602061361a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061361a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600c908201526b1a5b9d985b1a59081c1bdbdb60a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b038281168482168083038211156132f2576132f26132ba565b01949350505050565b60006020828403121561330d57600080fd5b81516110e881612df5565b634e487b7160e01b600052603260045260246000fd5b600060018201613340576133406132ba565b5060010190565b600082821015613359576133596132ba565b500390565b60008219821115613371576133716132ba565b500190565b60006020828403121561338857600080fd5b81516110e881612d58565b60008160001904831182151516156133ad576133ad6132ba565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826133d7576133d76133b2565b500490565b6001600160801b038416815260606020820181905260009061340090830185612e53565b8281036040840152613412818561314b565b9695505050505050565b60006020828403121561342e57600080fd5b5051919050565b60006001600160801b0383811690831681811015613455576134556132ba565b039392505050565b60006001600160801b0382811684821681151582840482111615613483576134836132ba565b02949350505050565b602080825260029082015261494560f01b604082015260600190565b60006001600160401b0383811690831681811015613455576134556132ba565b60006001600160401b038281168482168083038211156132f2576132f26132ba565b60006001600160801b0383811680613504576135046133b2565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60005b83811015613541578181015183820152602001613529565b8381111561096f5750506000910152565b6000815180845261356a816020860160208601613526565b601f01601f19169290920160200192915050565b6020815260006110e86020830184613552565b60018060a01b03841681528260208201526060604082015260006121a36060830184613552565b600080604083850312156135cb57600080fd5b82516135d681612df5565b602084015190925061300e81612df5565b600082516135f9818460208701613526565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a603d06dd64eb647155abae241dff025fe55b1c46b78dea23b8b1cd9a7d1d3ac64736f6c634300080f0033",
775
+ "deployedBytecode": "0x6080604052600436106101685760003560e01c8063136efb7a1461016d5780631c62997b146101fa5780631c9bdb491461022e57806323342c38146102435780632c730351146102635780633659cfe61461028557806338b8765c146102a55780633b7d0946146102c55780634e91d0cb146102e55780634f1ef286146102f857806352d1902d1461030b578063592557061461032e5780635cc049681461034e578063646fb67c1461037b578063698766ee146103a857806382ae9ef7146103c857806382dabb21146103dd578063b292bf9514610411578063bfa5b32414610452578063c0202a4414610470578063c2811e2a146104cf578063c291230d146104ef578063c4c30dc214610502578063c891091314610525578063c9430f481461055b578063cc88370e1461057b578063d2e6d1c3146105a9578063d68ffecb146105dd578063f4359ce5146105fd578063f7f03fea14610614578063fa78668f14610634575b600080fd5b34801561017957600080fd5b506101e2610188366004612d6d565b60d260209081526000918252604091829020805483518085019094526001909101546001600160801b038082168552600160801b9091048116928401929092526001600160401b03811692600160401b9091049091169083565b6040516101f193929190612da5565b60405180910390f35b34801561020657600080fd5b50610216670de0b6b3a764000081565b6040516001600160401b0390911681526020016101f1565b61024161023c366004612e0a565b61064c565b005b34801561024f57600080fd5b5061024161025e366004612d6d565b61069d565b34801561026f57600080fd5b506102786106f7565b6040516101f19190612e97565b34801561029157600080fd5b506102416102a0366004612d6d565b610708565b3480156102b157600080fd5b506102416102c0366004612d6d565b6107d0565b3480156102d157600080fd5b506102416102e0366004612d6d565b610975565b6102416102f3366004612eaa565b610a49565b610241610306366004612eec565b610a91565b34801561031757600080fd5b50610320610b46565b6040519081526020016101f1565b34801561033a57600080fd5b50610241610349366004612faf565b610bf4565b34801561035a57600080fd5b5060645461036e906001600160a01b031681565b6040516101f19190612fcc565b34801561038757600080fd5b5061039b610396366004612fe0565b610c82565b6040516101f19190613019565b3480156103b457600080fd5b506102416103c3366004613081565b610cfa565b3480156103d457600080fd5b5061024161106b565b3480156103e957600080fd5b5061036e7f000000000000000000000000000000000000000000000000000000000000000081565b34801561041d57600080fd5b506104457f000000000000000000000000000000000000000000000000000000000000000081565b6040516101f191906130ec565b34801561045e57600080fd5b5061044569d3c21bcecceda100000081565b34801561047c57600080fd5b506104b061048b366004612faf565b60d36020526000908152604090205460ff81169061010090046001600160801b031682565b6040805192151583526001600160801b039091166020830152016101f1565b3480156104db57600080fd5b506104456104ea366004613100565b6110ab565b6102416104fd366004613130565b6110ef565b34801561050e57600080fd5b50610517611173565b6040516101f192919061317b565b34801561053157600080fd5b50610216610540366004612d6d565b60d4602052600090815260409020546001600160401b031681565b34801561056757600080fd5b50610278610576366004613130565b611287565b34801561058757600080fd5b5061059b6105963660046131a0565b6112ab565b6040516101f19291906131c2565b3480156105b557600080fd5b5061036e7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105e957600080fd5b506102416105f83660046131db565b61136b565b34801561060957600080fd5b5061044562093a8081565b34801561062057600080fd5b5060cc54610445906001600160801b031681565b34801561064057600080fd5b506104456303bfc40081565b6106546114a8565b6001600160a01b0316336001600160a01b03161461068d5760405162461bcd60e51b8152600401610684906131f7565b60405180910390fd5b61069883838361152c565b505050565b6106a56114a8565b6001600160a01b0316336001600160a01b0316146106d55760405162461bcd60e51b8152600401610684906131f7565b606480546001600160a01b0319166001600160a01b0392909216919091179055565b606061070360cd6117e8565b905090565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107505760405162461bcd60e51b815260040161068490613220565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107826117f5565b6001600160a01b0316146107a85760405162461bcd60e51b81526004016106849061325a565b6107b181611811565b604080516000808252602082019092526107cd91839190611849565b50565b6107d9816119b4565b6107f55760405162461bcd60e51b815260040161068490613294565b6001600160a01b038116600090815260d26020526040812054600160401b90046001600160801b03169061082761149d565b9050806001600160801b0316826001600160801b03161061084757505050565b6001600160a01b038316600090815260d260209081526040918290208251808401909352600101546001600160801b038082168452600160801b90910416908201525b816001600160801b0316836001600160801b03161015610910576108b162093a80846132d0565b6001600160a01b038516600090815260d2602090815260408083206001600160801b0380861685526002909101909252909120549194506108f591839116856119c1565b905061090b84846109068482611a0f565b611a2d565b61088a565b6001600160a01b038416600090815260d2602090815260409091208251918301516001600160801b03908116600160801b029281169290921760018201558054918516600160401b02600160401b600160c01b03199092169190911790555b50505050565b61097d6114a8565b6001600160a01b0316336001600160a01b0316146109ad5760405162461bcd60e51b8152600401610684906131f7565b6109b6816119b4565b6109d25760405162461bcd60e51b815260040161068490613294565b6001600160a01b038116600090815260d260205260409020546001600160401b03166109fd826107d0565b610a0682611ac2565b6040516001600160a01b038316906001600160401b038316907ff2e3b584c4d1ed5ead9a4b7de2a8225fd42d13f09e417cd294d03f1dd07fc91490600090a35050565b610a516114a8565b6001600160a01b0316336001600160a01b031614610a815760405162461bcd60e51b8152600401610684906131f7565b61069860658284611b92565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610ad95760405162461bcd60e51b815260040161068490613220565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b0b6117f5565b6001600160a01b031614610b315760405162461bcd60e51b81526004016106849061325a565b610b3a82611811565b610a8d82826001611849565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610be15760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610684565b5060008051602061363a83398151915290565b610bfc6114a8565b6001600160a01b0316336001600160a01b031614610c2c5760405162461bcd60e51b8152600401610684906131f7565b60cc80546001600160801b0319166001600160801b0383161790556040517ffe870af61f024df0d7f960ad100676f3ffaa7ea6a44bc6c7adf2756cb8cf4b3890610c779083906130ec565b60405180910390a150565b610c8a612d19565b506001600160a01b03808316600090815260d460209081526040808320938516835260019384018252918290208251808401845281546001600160401b0316815283518085019094529301546001600160801b038082168452600160801b90910416828201528201525b92915050565b33818414610d405760405162461bcd60e51b81526020600482015260136024820152720d2dcecc2d2c840c2e4e4c2f240d8cadccee8d606b1b6044820152606401610684565b6040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610d8f908590600401612fcc565b602060405180830381865afa158015610dac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd091906132fb565b6001600160801b031611610e1e5760405162461bcd60e51b81526020600482015260156024820152747a65726f20766570656e646c652062616c616e636560581b6044820152606401610684565b6001600160a01b038116600090815260d460205260408120905b85811015610eae57610e6f878783818110610e5557610e55613318565b9050602002016020810190610e6a9190612d6d565b6119b4565b15610e9e57610e9e878783818110610e8957610e89613318565b90506020020160208101906102c09190612d6d565b610ea78161332e565b9050610e38565b5060005b85811015610fa857848482818110610ecc57610ecc613318565b9050602002016020810190610ee19190613130565b6001600160401b0316826001016000898985818110610f0257610f02613318565b9050602002016020810190610f179190612d6d565b6001600160a01b031681526020810191909152604001600020546001600160401b031611610f9857610f9683888884818110610f5557610f55613318565b9050602002016020810190610f6a9190612d6d565b878785818110610f7c57610f7c613318565b9050602002016020810190610f919190613130565b611ba8565b505b610fa18161332e565b9050610eb2565b5060005b8581101561106257848482818110610fc657610fc6613318565b9050602002016020810190610fdb9190613130565b6001600160401b0316826001016000898985818110610ffc57610ffc613318565b90506020020160208101906110119190612d6d565b6001600160a01b031681526020810191909152604001600020546001600160401b031611156110525761105083888884818110610f5557610f55613318565b505b61105b8161332e565b9050610fac565b50505050505050565b600061107760cd611fb2565b905060005b818110156110a2576110926102c060cd83611fbc565b61109b8161332e565b905061107c565b506107cd611fc8565b6001600160a01b03808416600090815260d56020908152604080832093861683529290529081206110e5906001600160801b03841661206c565b90505b9392505050565b60006110f961149d565b6001600160801b038116600090815260d3602052604090205490915060ff1661115a5760405162461bcd60e51b8152602060048201526013602482015272195c1bd8da081b9bdd08199a5b985b1a5e9959606a1b6044820152606401610684565b60cc54610a8d90839083906001600160801b031661152c565b606080600061118260656121ac565b9050806001600160401b0381111561119c5761119c612ed6565b6040519080825280602002602001820160405280156111c5578160200160208202803683370190505b509250806001600160401b038111156111e0576111e0612ed6565b604051908082528060200260200182016040528015611209578160200160208202803683370190505b50915060005b81811015611281576112226065826121b7565b85838151811061123457611234613318565b6020026020010185848151811061124d5761124d613318565b60200260200101826001600160a01b03166001600160a01b03168152508281525050508061127a9061332e565b905061120f565b50509091565b6001600160401b038116600090815260d160205260409020606090610cf4906117e8565b600060606112b98484613347565b6112c490600161335e565b6001600160401b038111156112db576112db612ed6565b604051908082528060200260200182016040528015611304578160200160208202803683370190505b509050835b8381116113575761131b60cf82611fbc565b82828151811061132d5761132d613318565b6001600160a01b03909216602092830291909101909101528061134f8161332e565b915050611309565b5061136260cf611fb2565b91509250929050565b6113736114a8565b6001600160a01b0316336001600160a01b0316146113a35760405162461bcd60e51b8152600401610684906131f7565b6113ac816119b4565b156113ee5760405162461bcd60e51b81526020600482015260126024820152711c1bdbdb08185b1c9958591e48185919195960721b6044820152606401610684565b6113f960cf826121d5565b156114505760405162461bcd60e51b815260206004820152602160248201527f6e6f7420616c6c6f77656420746f2061646420612072656d6f76656420706f6f6044820152601b60fa1b6064820152608401610684565b61145a82826121ea565b6040516001600160a01b038216906001600160401b038416907f336f0b3cc523e98d21e261389542b62abaffc094a21a82f1eec2779d7c8323cb90600090a35050565b6000610703426122cd565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b8152600401602060405180830381865afa158015611508573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107039190613376565b6001600160801b03808316600090815260d3602052604081205461010090049091169081900361155c5750505050565b6001600160401b038416600090815260d16020526040812061157d90611fb2565b90508060000361158e575050505050565b6001600160401b038516600090815260d1602052604081206115af906117e8565b90506000826001600160401b038111156115cb576115cb612ed6565b6040519080825280602002602001820160405280156115f4578160200160208202803683370190505b50905060005b838110156116cc57600060d36000896001600160801b03166001600160801b03168152602001908152602001600020600101600085848151811061164057611640613318565b6020908102919091018101516001600160a01b031682528101919091526040016000908120546001600160801b03908116925087906116829084908b16613393565b61168c91906133c8565b905061169b62093a8082613393565b8484815181106116ad576116ad613318565b6020026020010181815250505050806116c59061332e565b90506115fa565b5046876001600160401b03160361175e5760006116f360656001600160401b038a166122e7565b60405163072cbf8760e41b81529091506001600160a01b038216906372cbf87090611726908a90879087906004016133dc565b600060405180830381600087803b15801561174057600080fd5b505af1158015611754573d6000803e3d6000fd5b5050505050611794565b611794876001600160401b0316878484604051602001611780939291906133dc565b6040516020818303038152906040526122f3565b856001600160801b0316876001600160401b03167fc78a580f215ba474e75ecbd7636c375e8d2cd25edb0f2467f99b2d0752e104ba876040516117d791906130ec565b60405180910390a350505050505050565b606060006110e8836123fd565b60008051602061363a833981519152546001600160a01b031690565b6118196114a8565b6001600160a01b0316336001600160a01b0316146107cd5760405162461bcd60e51b8152600401610684906131f7565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561187c5761069883612459565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156118d6575060408051601f3d908101601f191682019092526118d39181019061341c565b60015b6119395760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610684565b60008051602061363a83398151915281146119a85760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610684565b506106988383836124f3565b6000610cf460cd836121d5565b6119c9612d41565b8284602001516119d99190613435565b6001600160801b031660208201526119f1828461345d565b84516119fd9190613435565b6001600160801b031681529392505050565b6000818360200151611a21919061345d565b83516110e89190613435565b6001600160801b03808316600090815260d36020526040902080548392600191611a5e9185916101009004166132d0565b82546101009290920a6001600160801b03818102199093169183160217909155928316600090815260d3602090815260408083206001600160a01b0397909716835260019690960190529390932080546001600160801b0319169190921617905550565b6001600160a01b038116600090815260d260209081526040808320546001600160401b031680845260d1909252909120611afc9083612518565b611b185760405162461bcd60e51b81526004016106849061348c565b611b2360cd83612518565b611b3f5760405162461bcd60e51b81526004016106849061348c565b611b4a60cf8361252d565b611b665760405162461bcd60e51b81526004016106849061348c565b506001600160a01b0316600090815260d26020526040812080546001600160c01b031916815560010155565b60006110e584846001600160a01b038516612542565b611bb0612d41565b6001600160a01b03808516600090815260d460209081526040808320938716835260d2825280832060018086018452938290208251808401909352909301546001600160801b03808216808452600160801b90920416928201929092529015611d7257611c1c866119b4565b8015611c2c5750611c2c8161255f565b15611cea576040805180820190915260018301546001600160801b038082168352600160801b909104166020820152611c65908261259c565b80516020918201516001600160801b03908116600160801b029116176001840155810151600283016000611c98846125e5565b6001600160801b0390811682526020820192909252604001600090812080549092611cc591859116613435565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b6001600160a01b038616600090815260018401602052604081205484546001600160401b039182169286929091611d23918591166134a8565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b038616600090815260018481016020526040822080546001600160401b031916815501555b6001600160401b03851615611f7957611d8a866119b4565b611dc85760405162461bcd60e51b815260206004820152600f60248201526e706f6f6c206e6f742061637469766560881b6044820152606401610684565b611dd28786612642565b6040805180820190915260018401546001600160801b038082168352600160801b909104166020820152909450611e09908561277d565b80516020918201516001600160801b03908116600160801b029116176001840155840151600283016000611e3c876125e5565b6001600160801b0390811682526020820192909252604001600090812080549092611e69918591166132d0565b82546001600160801b039182166101009390930a9283029282021916919091179091556040805180820182526001600160401b03808a16825260208083018a81526001600160a01b038d16600090815260018b81018452958120945185549085166001600160401b0319909116178555905180519201518616600160801b02919095161791909201558554889350869291611f06918591166134c8565b82546101009290920a6001600160401b038181021990931691831602179091558454670de0b6b3a7640000911611159050611f795760405162461bcd60e51b8152602060048201526013602482015272195e18d959591959081b585e081dd95a59da1d606a1b6044820152606401610684565b6001600160a01b03808816600090815260d560209081526040808320938a16835292905220611fa890856127b2565b5050509392505050565b6000610cf4825490565b60006110e883836128be565b6000611fd261149d565b90505b7f00000000000000000000000000000000000000000000000000000000000000006001600160801b0316816001600160801b03161015801561203057506001600160801b038116600090815260d3602052604090205460ff16155b156107cd576001600160801b038116600090815260d360205260409020805460ff1916600117905561206562093a8082613435565b9050611fd5565b60004282106120bd5760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e65646044820152606401610684565b825460005b8181101561213357600060026120d8848461335e565b6120e291906133c8565b9050848660000182815481106120fa576120fa613318565b600091825260209091206002909102015463ffffffff16111561211f5780925061212d565b61212a81600161335e565b91505b506120c2565b81156121a05761219b85612148600185613347565b8154811061215857612158613318565b60009182526020918290206040805180820190915260029290920201600101546001600160801b038082168352600160801b909104169181019190915285611a0f565b6121a3565b60005b95945050505050565b6000610cf4826128e8565b60008080806121c686866128f3565b909450925050505b9250929050565b60006110e8836001600160a01b03841661291e565b6001600160401b038216600090815260d16020526040902061220c908261252d565b6122285760405162461bcd60e51b81526004016106849061348c565b61223360cd8261252d565b61224f5760405162461bcd60e51b81526004016106849061348c565b6001600160a01b038116600090815260d26020526040902080546001600160401b0319166001600160401b03841617905561228861149d565b6001600160a01b03909116600090815260d26020526040902080546001600160801b0392909216600160401b02600160401b600160c01b031990921691909117905550565b600062093a806122dd81846134ea565b610cf4919061345d565b60006110e88383612936565b6122fe6065836129a6565b61230a5761230a613510565b60006123176065846122e7565b60645460405163299aee5160e11b81529192506000916001600160a01b0390911690635335dca29061234d90869060040161357e565b602060405180830381865afa15801561236a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061238e919061341c565b606454604051634f9e72ad60e11b81529192506001600160a01b031690639f3ce55a9083906123c590869089908990600401613591565b6000604051808303818588803b1580156123de57600080fd5b505af11580156123f2573d6000803e3d6000fd5b505050505050505050565b60608160000180548060200260200160405190810160405280929190818152602001828054801561244d57602002820191906000526020600020905b815481526020019060010190808311612439575b50505050509050919050565b612462816129b2565b6124c45760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610684565b60008051602061363a83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6124fc836129c1565b6000825111806125095750805b156106985761096f8383612a01565b60006110e8836001600160a01b038416612aea565b60006110e8836001600160a01b038416612be4565b600082815260028401602052604081208290556110e58484612c2e565b600081602001516001600160801b0316600014158015610cf45750612595612586836125e5565b6001600160801b031642101590565b1592915050565b6125a4612d41565b815183516125b29190613435565b6001600160801b03168152602080830151908401516125d19190613435565b6001600160801b0316602082015292915050565b600081602001516001600160801b03166000036126315760405162461bcd60e51b815260206004820152600a6024820152697a65726f20736c6f706560b01b6044820152606401610684565b60208201518251610cf491906134ea565b61264a612d41565b6000806126556114a8565b6001600160a01b0316856001600160a01b0316036126975769d3c21bcecceda1000000915061269061268b6303bfc400426132d0565b6122cd565b9050612729565b6040516332dad3cf60e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cb6b4f3c906126e3908890600401612fcc565b6040805180830381865afa1580156126ff573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061272391906135b8565b90925090505b612761670de0b6b3a76400006127516001600160401b0387166001600160801b038616613393565b61275b91906133c8565b82612c3a565b6001600160801b03908116602086015216835250909392505050565b612785612d41565b8151835161279391906132d0565b6001600160801b03168152602080830151908401516125d191906132d0565b815480158015906127f4575042836127cb600184613347565b815481106127db576127db613318565b600091825260209091206002909102015463ffffffff16145b15612853578183612806600184613347565b8154811061281657612816613318565b6000918252602091829020835193909201516001600160801b03908116600160801b02931692909217600160029093029091019190910155505050565b6040805180820190915263ffffffff4281168252602080830185815286546001818101895560008981528490209551600290920290950180549190941663ffffffff199091161783555180519101516001600160801b03908116600160801b02911617910155505050565b60008260000182815481106128d5576128d5613318565b9060005260206000200154905092915050565b6000610cf482611fb2565b600080806129018585611fbc565b600081815260029690960160205260409095205494959350505050565b60009081526001919091016020526040902054151590565b60008181526002830160205260408120548015158061295a575061295a8484612c82565b6110e85760405162461bcd60e51b815260206004820152601e60248201527f456e756d657261626c654d61703a206e6f6e6578697374656e74206b657900006044820152606401610684565b60006110e88383612c82565b6001600160a01b03163b151590565b6129ca81612459565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060612a0c836129b2565b612a675760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610684565b600080846001600160a01b031684604051612a8291906135e7565b600060405180830381855af49150503d8060008114612abd576040519150601f19603f3d011682016040523d82523d6000602084013e612ac2565b606091505b50915091506121a3828260405180606001604052806027815260200161365a60279139612c8e565b60008181526001830160205260408120548015612bd3576000612b0e600183613347565b8554909150600090612b2290600190613347565b9050818114612b87576000866000018281548110612b4257612b42613318565b9060005260206000200154905080876000018481548110612b6557612b65613318565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612b9857612b98613603565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610cf4565b6000915050610cf4565b5092915050565b6000612bf0838361291e565b612c2657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610cf4565b506000610cf4565b60006110e88383612be4565b6000806000612c6e6040518060400160405280876001600160801b03168152602001866001600160801b0316815250612cc7565b805160209091015190969095509350505050565b60006110e88383612d0d565b60608315612c9d5750816110e8565b825115612cad5782518084602001fd5b8160405162461bcd60e51b8152600401610684919061357e565b612ccf612d41565b8151612ce0906303bfc400906134ea565b6001600160801b03166020808301829052830151612cfd9161345d565b6001600160801b03168152919050565b60006110e8838361291e565b604051806040016040528060006001600160401b03168152602001612d3c612d41565b905290565b604080518082019091526000808252602082015290565b6001600160a01b03811681146107cd57600080fd5b600060208284031215612d7f57600080fd5b81356110e881612d58565b80516001600160801b03908116835260209182015116910152565b6001600160401b03841681526001600160801b038316602082015260808101612dd16040830184612d8a565b949350505050565b80356001600160401b0381168114612df057600080fd5b919050565b6001600160801b03811681146107cd57600080fd5b600080600060608486031215612e1f57600080fd5b612e2884612dd9565b92506020840135612e3881612df5565b91506040840135612e4881612df5565b809150509250925092565b600081518084526020808501945080840160005b83811015612e8c5781516001600160a01b031687529582019590820190600101612e67565b509495945050505050565b6020815260006110e86020830184612e53565b60008060408385031215612ebd57600080fd5b8235612ec881612d58565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215612eff57600080fd5b8235612f0a81612d58565b915060208301356001600160401b0380821115612f2657600080fd5b818501915085601f830112612f3a57600080fd5b813581811115612f4c57612f4c612ed6565b604051601f8201601f19908116603f01168101908382118183101715612f7457612f74612ed6565b81604052828152886020848701011115612f8d57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215612fc157600080fd5b81356110e881612df5565b6001600160a01b0391909116815260200190565b60008060408385031215612ff357600080fd5b8235612ffe81612d58565b9150602083013561300e81612d58565b809150509250929050565b81516001600160401b031681526020808301516060830191612bdd90840182612d8a565b60008083601f84011261304f57600080fd5b5081356001600160401b0381111561306657600080fd5b6020830191508360208260051b85010111156121ce57600080fd5b6000806000806040858703121561309757600080fd5b84356001600160401b03808211156130ae57600080fd5b6130ba8883890161303d565b909650945060208701359150808211156130d357600080fd5b506130e08782880161303d565b95989497509550505050565b6001600160801b0391909116815260200190565b60008060006060848603121561311557600080fd5b833561312081612d58565b92506020840135612e3881612d58565b60006020828403121561314257600080fd5b6110e882612dd9565b600081518084526020808501945080840160005b83811015612e8c5781518752958201959082019060010161315f565b60408152600061318e604083018561314b565b82810360208401526121a38185612e53565b600080604083850312156131b357600080fd5b50508035926020909101359150565b8281526040602082015260006110e56040830184612e53565b600080604083850312156131ee57600080fd5b612ffe83612dd9565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b6020808252602c9082015260008051602061361a83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061361a83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6020808252600c908201526b1a5b9d985b1a59081c1bdbdb60a21b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b038281168482168083038211156132f2576132f26132ba565b01949350505050565b60006020828403121561330d57600080fd5b81516110e881612df5565b634e487b7160e01b600052603260045260246000fd5b600060018201613340576133406132ba565b5060010190565b600082821015613359576133596132ba565b500390565b60008219821115613371576133716132ba565b500190565b60006020828403121561338857600080fd5b81516110e881612d58565b60008160001904831182151516156133ad576133ad6132ba565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826133d7576133d76133b2565b500490565b6001600160801b038416815260606020820181905260009061340090830185612e53565b8281036040840152613412818561314b565b9695505050505050565b60006020828403121561342e57600080fd5b5051919050565b60006001600160801b0383811690831681811015613455576134556132ba565b039392505050565b60006001600160801b0382811684821681151582840482111615613483576134836132ba565b02949350505050565b602080825260029082015261494560f01b604082015260600190565b60006001600160401b0383811690831681811015613455576134556132ba565b60006001600160401b038281168482168083038211156132f2576132f26132ba565b60006001600160801b0383811680613504576135046133b2565b92169190910492915050565b634e487b7160e01b600052600160045260246000fd5b60005b83811015613541578181015183820152602001613529565b8381111561096f5750506000910152565b6000815180845261356a816020860160208601613526565b601f01601f19169290920160200192915050565b6020815260006110e86020830184613552565b60018060a01b03841681528260208201526060604082015260006121a36060830184613552565b600080604083850312156135cb57600080fd5b82516135d681612df5565b602084015190925061300e81612df5565b600082516135f9818460208701613526565b9190910192915050565b634e487b7160e01b600052603160045260246000fdfe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a603d06dd64eb647155abae241dff025fe55b1c46b78dea23b8b1cd9a7d1d3ac64736f6c634300080f0033",
774
776
  "linkReferences": {},
775
777
  "deployedLinkReferences": {}
776
778
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/e23516cf79859ddf49794b9fff76abac.json"
3
+ "buildInfo": "../../../../../build-info/e7b3e6f2a5d6184a47ffed58494b1475.json"
4
4
  }
@@ -70,7 +70,7 @@
70
70
  },
71
71
  {
72
72
  "inputs": [],
73
- "name": "getAllPools",
73
+ "name": "getAllAcitvePools",
74
74
  "outputs": [
75
75
  {
76
76
  "internalType": "address[]",
@@ -81,6 +81,35 @@
81
81
  "stateMutability": "view",
82
82
  "type": "function"
83
83
  },
84
+ {
85
+ "inputs": [
86
+ {
87
+ "internalType": "uint256",
88
+ "name": "start",
89
+ "type": "uint256"
90
+ },
91
+ {
92
+ "internalType": "uint256",
93
+ "name": "end",
94
+ "type": "uint256"
95
+ }
96
+ ],
97
+ "name": "getAllRemovedPools",
98
+ "outputs": [
99
+ {
100
+ "internalType": "uint256",
101
+ "name": "lengthOfRemovedPools",
102
+ "type": "uint256"
103
+ },
104
+ {
105
+ "internalType": "address[]",
106
+ "name": "arr",
107
+ "type": "address[]"
108
+ }
109
+ ],
110
+ "stateMutability": "view",
111
+ "type": "function"
112
+ },
84
113
  {
85
114
  "inputs": [
86
115
  {
@@ -140,7 +169,7 @@
140
169
  "type": "tuple"
141
170
  }
142
171
  ],
143
- "internalType": "struct VotingControllerStorageUpg.UserPoolInfo",
172
+ "internalType": "struct VotingControllerStorageUpg.UserPoolData",
144
173
  "name": "",
145
174
  "type": "tuple"
146
175
  }
@@ -177,25 +206,6 @@
177
206
  "stateMutability": "view",
178
207
  "type": "function"
179
208
  },
180
- {
181
- "inputs": [
182
- {
183
- "internalType": "uint128",
184
- "name": "",
185
- "type": "uint128"
186
- }
187
- ],
188
- "name": "isEpochFinalized",
189
- "outputs": [
190
- {
191
- "internalType": "bool",
192
- "name": "",
193
- "type": "bool"
194
- }
195
- ],
196
- "stateMutability": "view",
197
- "type": "function"
198
- },
199
209
  {
200
210
  "inputs": [],
201
211
  "name": "pendlePerSec",
@@ -217,7 +227,7 @@
217
227
  "type": "address"
218
228
  }
219
229
  ],
220
- "name": "poolInfo",
230
+ "name": "poolData",
221
231
  "outputs": [
222
232
  {
223
233
  "internalType": "uint64",
@@ -226,7 +236,7 @@
226
236
  },
227
237
  {
228
238
  "internalType": "uint128",
229
- "name": "lastUpdated",
239
+ "name": "lastSlopeChangeAppliedAt",
230
240
  "type": "uint128"
231
241
  },
232
242
  {
@@ -243,7 +253,7 @@
243
253
  }
244
254
  ],
245
255
  "internalType": "struct VeBalance",
246
- "name": "vote",
256
+ "name": "totalVote",
247
257
  "type": "tuple"
248
258
  }
249
259
  ],
@@ -292,6 +302,11 @@
292
302
  ],
293
303
  "name": "weekData",
294
304
  "outputs": [
305
+ {
306
+ "internalType": "bool",
307
+ "name": "isEpochFinalized",
308
+ "type": "bool"
309
+ },
295
310
  {
296
311
  "internalType": "uint128",
297
312
  "name": "totalVotes",
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/e23516cf79859ddf49794b9fff76abac.json"
3
+ "buildInfo": "../../../../../build-info/e7b3e6f2a5d6184a47ffed58494b1475.json"
4
4
  }