@pendle/core-v2 2.7.0-mainnet → 2.8.0-mainnet

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 (243) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  16. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  19. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  24. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  28. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  30. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  34. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  36. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  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 +2 -2
  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/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  47. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +4 -0
  48. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +1145 -0
  49. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +4 -0
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +1145 -0
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +4 -0
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +1145 -0
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +4 -0
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +1145 -0
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +4 -0
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/{PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.json → PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.json} +7 -54
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  81. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  84. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  86. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  88. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  90. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  91. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  92. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  93. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  94. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  95. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  96. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +7 -2
  97. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/Frax/IFrxEthMinter.sol/IFrxEthMinter.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  105. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  107. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  108. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  115. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  116. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  117. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  118. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  119. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  120. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  121. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  122. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  123. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  124. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  125. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  126. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  127. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  128. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  129. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  130. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  131. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  132. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  133. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  134. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  135. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  136. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  137. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  138. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  139. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  140. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  141. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  142. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  143. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  144. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  145. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  146. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  147. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  148. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  149. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  150. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  151. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  152. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  153. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +1 -1
  154. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.dbg.json +1 -1
  155. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.json +2 -2
  156. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.dbg.json +1 -1
  157. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.json +2 -2
  158. package/contracts/core/StandardizedYield/implementations/BalancerStable/{PendleAuraWethAnkrethSY.sol → PendleAuraWethAnkrethSYV2.sol} +23 -15
  159. package/contracts/core/StandardizedYield/implementations/BalancerStable/{PendleAuraWethRethSY.sol → PendleAuraWethRocketEthSYV2.sol} +34 -25
  160. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol +135 -0
  161. package/contracts/core/StandardizedYield/implementations/BalancerStable/{PendleAuraWethWstethSY.sol → PendleAuraWethWstethSYV2.sol} +23 -15
  162. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/{PendleAuraBalancerStableLPSY.sol → PendleAuraBalancerStableLPSYV2.sol} +76 -33
  163. package/contracts/core/libraries/Errors.sol +2 -0
  164. package/contracts/interfaces/Balancer/IVault.sol +21 -4
  165. package/deployments/1-markets/BALANCER-LP-AURA-ANKRETH-WETH-SEP-26-2024.json +11 -0
  166. package/deployments/1-markets/BALANCER-LP-AURA-RETH-WETH-DEC-26-2024.json +11 -0
  167. package/deployments/1-markets/BALANCER-LP-AURA-STAFI-RETH-WETH-JUNE-27-2024.json +11 -0
  168. package/package.json +3 -3
  169. package/typechain-types/PendleAuraBalancerStableLPSYV2.ts +1457 -0
  170. package/typechain-types/PendleAuraWethAnkrethSYV2.ts +1456 -0
  171. package/typechain-types/PendleAuraWethRocketEthSYV2.ts +1456 -0
  172. package/typechain-types/PendleAuraWethStafiEthSY.ts +1456 -0
  173. package/typechain-types/PendleAuraWethWstethSYV2.ts +1456 -0
  174. package/typechain-types/PendleStafiEthSY.ts +100 -0
  175. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  176. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  177. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  178. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  179. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  180. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  181. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  182. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  183. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  184. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  185. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  186. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  187. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  188. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  189. package/typechain-types/factories/Errors__factory.ts +6 -1
  190. package/typechain-types/factories/MetaStablePreview__factory.ts +1 -1
  191. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  192. package/typechain-types/factories/PendleAuraBalancerStableLPSYV2__factory.ts +1143 -0
  193. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1218 -0
  194. package/typechain-types/factories/PendleAuraWethAnkrethSY__factory.ts +1 -1
  195. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
  196. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1218 -0
  197. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1218 -0
  198. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1218 -0
  199. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -1
  200. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  201. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  202. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  203. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  204. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  205. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  206. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  207. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  208. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  209. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  210. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  211. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  212. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  213. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  214. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  215. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  216. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  217. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  218. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  219. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  220. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  221. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  222. package/typechain-types/factories/PendleStafiEthSY__factory.ts +118 -0
  223. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  224. package/typechain-types/factories/PendleSwapArbitrum__factory.ts +1 -1
  225. package/typechain-types/factories/PendleSwapEthereum__factory.ts +1 -1
  226. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  227. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  228. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  229. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  230. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  231. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  232. package/typechain-types/factories/SAPE__factory.ts +1 -1
  233. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  234. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  235. package/typechain-types/hardhat.d.ts +45 -0
  236. package/typechain-types/index.ts +10 -0
  237. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.dbg.json +0 -4
  238. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.json +0 -1192
  239. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +0 -4
  240. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +0 -1218
  241. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +0 -4
  242. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +0 -1192
  243. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +0 -4
@@ -69,8 +69,8 @@
69
69
  "type": "receive"
70
70
  }
71
71
  ],
72
- "bytecode": "0x608060405234801561001057600080fd5b5061305b806100206000396000f3fe6080604052600436106100225760003560e01c80632bdb823c1461002e57600080fd5b3661002957005b600080fd5b61004161003c366004611402565b610043565b005b61005c836100576040840160208501611461565b61011b565b61011561006f608083016060840161148c565b6100ba5761008060408301836114a9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100dd92505050565b6100dd6100ca60208401846114f6565b6100d760408501856114a9565b866101df565b6001600160a01b038516156100f35760006100f5565b835b6101056040850160208601611461565b6001600160a01b03169190610240565b50505050565b6001600160a01b03821661012d575050565b61013f60026001600160601b03611543565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015610198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bc9190611576565b10156101db576101ce82826000610270565b6101db8282600019610270565b5050565b606060018560038111156101f5576101f561158f565b0361020c5761020584848461037f565b9050610238565b60028560038111156102205761022061158f565b0361023057610205848484610553565b6102386115a5565b949350505050565b6060610266848484604051806060016040528060298152602001612ffd6029913961079e565b90505b9392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916102cc91906115df565b6000604051808303816000865af19150503d8060008114610309576040519150601f19603f3d011682016040523d82523d6000602084013e61030e565b606091505b50915091508180156103385750805115806103385750808060200190518101906103389190611606565b6103785760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064015b60405180910390fd5b5050505050565b606060006103906004828688611623565b6103999161164d565b9050631de02f1760e01b6001600160e01b03198216016104565760006103c28560048189611623565b8101906103cf9190611a58565b90506103f881606001518260400151866103f38560600151610120015160206108cf565b6108db565b82606001836040018290528290525050818160405160240161041a9190611ca3565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529250610269915050565b63750fcc0560e01b6001600160e01b03198216016104ff576000808080610480886004818c611623565b81019061048d9190611d24565b93509350935093506104a283838960016108db565b604051919450925085906104c0908690869086908690602401611dbe565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529550610269945050505050565b60405162461bcd60e51b8152602060048201526024808201527f496e7075745363616c696e6748656c7065723a20496e76616c69642073656c6560448201526331ba37b960e11b606482015260840161036f565b606060006105646004828688611623565b61056d9161164d565b9050600061057e8560048189611623565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050506001600160e01b0319821663086fe1cb60e31b0161065757600080600080848060200190518101906105e79190611e63565b93509350935093506105fa82848a610949565b915087925085848484846040516024016106179493929190611ebb565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152965061026995505050505050565b63ed55c35160e01b6001600160e01b03198316016106c957600080600080848060200190518101906106899190611f2d565b93509350935093506106a48360a0015184608001518a610949565b60a0840152608083018890526040518690610617908690869086908690602401612025565b6308723dad60e01b6001600160e01b0319831601610772576000806000806000858060200190518101906106fd91906120aa565b9450945094509450945061071282848b610949565b9150889250868585858585604051602401610731959493929190612122565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506102699650505050505050565b60405163a7dd6a9560e01b8152600160048201526001600160e01b03198316602482015260440161036f565b6060824710156107ff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161036f565b6001600160a01b0385163b6108565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161036f565b600080866001600160a01b0316858760405161087291906115df565b60006040518083038185875af1925050503d80600081146108af576040519150601f19603f3d011682016040523d82523d6000602084013e6108b4565b606091505b50915091506108c4828286610960565b979650505050505050565b81811615155b92915050565b6108e3611365565b60e08501516060908481036108fe5786869250925050610940565b83156109245761090f878287610999565b61091a878388610af8565b9250925050610940565b61092f878287610999565b61093a878388610c25565b92509250505b94509492505050565b600082610956838661215c565b6102669190612173565b6060831561096f575081610269565b82511561097f5782518084602001fd5b8160405162461bcd60e51b815260040161036f9190612187565b6109a1611365565b610100840151836109b2848361215c565b6109bc9190612173565b61010086015280158015906109d45750610100850151155b156109e25760016101008601525b60e085018390526040850151516000036109ff5784915050610269565b6000805b866040015151811015610aed576001876040015151610a22919061219a565b8103610a5957610a32828661219a565b87606001518281518110610a4857610a486121ad565b602002602001018181525050610ab0565b858588606001518381518110610a7157610a716121ad565b6020026020010151610a83919061215c565b610a8d9190612173565b87606001518281518110610aa357610aa36121ad565b6020026020010181815250505b86606001518181518110610ac657610ac66121ad565b602002602001015182610ad991906121c3565b915080610ae5816121d6565b915050610a03565b509495945050505050565b6060600084806020019051810190610b1091906122dd565b8051519091506000805b82811015610bf857610b2d60018461219a565b8103610b6457610b3d828761219a565b84602001518281518110610b5357610b536121ad565b602002602001018181525050610bbb565b868685602001518381518110610b7c57610b7c6121ad565b6020026020010151610b8e919061215c565b610b989190612173565b84602001518281518110610bae57610bae6121ad565b6020026020010181815250505b83602001518181518110610bd157610bd16121ad565b602002602001015182610be491906121c3565b915080610bf0816121d6565b915050610b1a565b5082604051602001610c0a91906123b0565b60405160208183030381529060405293505050509392505050565b6060600084806020019051810190610c3d91906125e9565b905083838260600151610c50919061215c565b610c5a9190612173565b606082015260005b815151811015610f2057600082600001518281518110610c8457610c846121ad565b6020026020010151600081518110610c9e57610c9e6121ad565b60209081029190910181015190810151909150630be1a7a360e21b6001600160e01b0319821601610cdd578151610cd6908888610f4b565b8252610f0b565b6301b966ef60e71b6001600160e01b0319821601610d02578151610cd6908888610f96565b633409dd2d60e01b6001600160e01b0319821601610d27578151610cd6908888610fe1565b63b6bb37eb60e01b6001600160e01b0319821601610d4c578151610cd6908888610f4b565b63617556cb60e01b6001600160e01b0319821601610d71578151610cd690888861102c565b6308c49cdf60e11b6001600160e01b0319821601610da15760405162461bcd60e51b815260040161036f906126c0565b635a2f8d7160e01b6001600160e01b0319821601610dc6578151610cd69088886110df565b6375a256f160e01b6001600160e01b0319821601610deb578151610cd6908888611174565b63a7c1a92960e01b6001600160e01b0319821601610e10578151610cd69088886111bf565b6360fabb9d60e01b6001600160e01b0319821601610e35578151610cd690888861122b565b63873c52e160e01b6001600160e01b0319821601610e5a578151610cd69088886112da565b630590bce960e11b6001600160e01b0319821601610e8a5760405162461bcd60e51b815260040161036f906126c0565b6310262a3d60e01b6001600160e01b0319821601610eaf578151610cd6908888610f4b565b60405162461bcd60e51b815260206004820152602b60248201527f4167677265676174696f6e4578656375746f723a204465782074797065206e6f60448201526a1d081cdd5c1c1bdc9d195960aa1b606482015260840161036f565b50508080610f18906121d6565b915050610c62565b5080604051602001610f32919061270a565b6040516020818303038152906040529150509392505050565b6060600084806020019051810190610f639190612858565b905083838260800151610f76919061215c565b610f809190612173565b6080820152604051610f32908290602001612900565b6060600084806020019051810190610fae91906129b4565b905083838260a00151610fc1919061215c565b610fcb9190612173565b60a0820152604051610f32908290602001612a5c565b6060600084806020019051810190610ff99190612b18565b905083838260a0015161100c919061215c565b6110169190612173565b60a0820152604051610f32908290602001612bb5565b60606000848060200190518101906110449190612c4f565b905083838260800151611057919061215c565b6110619190612173565b6080820152604051610f3290829060200160006101008201905060018060a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401526080840151608084015260a084015160a08401528060c08501511660c08401525060e0830151151560e083015292915050565b60606000848060200190518101906110f79190612ce9565b90508383826080015161110a919061215c565b6111149190612173565b6080820152604051610f3290829060200181516001600160a01b03908116825260208084015190830152604080840151821690830152606080840151909116908201526080808301519082015260a0918201519181019190915260c00190565b606060008480602001905181019061118c9190612d7a565b90508383826080015161119f919061215c565b6111a99190612173565b6080820152604051610f32908290602001612e04565b60606000848060200190518101906111d79190612e86565b9050838382602001516111ea919061215c565b6111f49190612173565b60208281019182526040805184516001600160a01b0316928101929092529151818301529082015115156060820152608001610f32565b60606000848060200190518101906112439190612eee565b905083838260800151611256919061215c565b6112609190612173565b6080820152604051610f3290829060200160006101008201905060018060a01b0380845116835280602085015116602084015280604085015116604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e0830151151560e083015292915050565b60606000848060200190518101906112f29190612f6e565b905083838260600151611305919061215c565b61130f9190612173565b6060820152604051610f3290829060200181516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015190830152608092830151169181019190915260a00190565b60405180610160016040528060006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160608152602001606081526020016060815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b6001600160a01b03811681146113ef57600080fd5b50565b80356113fd816113da565b919050565b60008060006060848603121561141757600080fd5b8335611422816113da565b92506020840135915060408401356001600160401b0381111561144457600080fd5b84016080818703121561145657600080fd5b809150509250925092565b60006020828403121561147357600080fd5b8135610269816113da565b80151581146113ef57600080fd5b60006020828403121561149e57600080fd5b81356102698161147e565b6000808335601e198436030181126114c057600080fd5b8301803591506001600160401b038211156114da57600080fd5b6020019150368190038213156114ef57600080fd5b9250929050565b60006020828403121561150857600080fd5b81356004811061026957600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160601b038381168061155d5761155d611517565b92169190910492915050565b6001600160a01b03169052565b60006020828403121561158857600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156115d65781810151838201526020016115be565b50506000910152565b600082516115f18184602087016115bb565b9190910192915050565b80516113fd8161147e565b60006020828403121561161857600080fd5b81516102698161147e565b6000808585111561163357600080fd5b8386111561164057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116755780818660040360031b1b83161692505b505092915050565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b03811182821017156116b6576116b661167d565b60405290565b60405160a081016001600160401b03811182821017156116b6576116b661167d565b60405160e081016001600160401b03811182821017156116b6576116b661167d565b604080519081016001600160401b03811182821017156116b6576116b661167d565b60405161012081016001600160401b03811182821017156116b6576116b661167d565b60405161014081016001600160401b03811182821017156116b6576116b661167d565b60405161010081016001600160401b03811182821017156116b6576116b661167d565b604051601f8201601f191681016001600160401b03811182821017156117b3576117b361167d565b604052919050565b60006001600160401b038211156117d4576117d461167d565b50601f01601f191660200190565b600082601f8301126117f357600080fd5b8135611806611801826117bb565b61178b565b81815284602083860101111561181b57600080fd5b816020850160208301376000918101602001919091529392505050565b60006001600160401b038211156118515761185161167d565b5060051b60200190565b600082601f83011261186c57600080fd5b8135602061187c61180183611838565b82815260059290921b8401810191818101908684111561189b57600080fd5b8286015b848110156118bf5780356118b2816113da565b835291830191830161189f565b509695505050505050565b600082601f8301126118db57600080fd5b813560206118eb61180183611838565b82815260059290921b8401810191818101908684111561190a57600080fd5b8286015b848110156118bf578035835291830191830161190e565b6000610160828403121561193857600080fd5b611940611693565b905061194b826113f2565b8152611959602083016113f2565b602082015260408201356001600160401b038082111561197857600080fd5b6119848583860161185b565b6040840152606084013591508082111561199d57600080fd5b6119a9858386016118ca565b606084015260808401359150808211156119c257600080fd5b6119ce8583860161185b565b608084015260a08401359150808211156119e757600080fd5b6119f3858386016118ca565b60a0840152611a0460c085016113f2565b60c084015260e084810135908401526101008085013590840152610120808501359084015261014091508184013581811115611a3f57600080fd5b611a4b868287016117e2565b8385015250505092915050565b600060208284031215611a6a57600080fd5b81356001600160401b0380821115611a8157600080fd5b9083019060a08286031215611a9557600080fd5b611a9d6116bc565b611aa6836113f2565b8152611ab4602084016113f2565b6020820152604083013582811115611acb57600080fd5b611ad7878286016117e2565b604083015250606083013582811115611aef57600080fd5b611afb87828601611925565b606083015250608083013582811115611b1357600080fd5b611b1f878286016117e2565b60808301525095945050505050565b60008151808452611b468160208601602086016115bb565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610aed5781516001600160a01b031687529582019590820190600101611b6e565b600081518084526020808501945080840160005b83811015610aed57815187529582019590820190600101611ba7565b6000610160611bd3848451611569565b6020830151611be56020860182611569565b506040830151816040860152611bfd82860182611b5a565b91505060608301518482036060860152611c178282611b93565b91505060808301518482036080860152611c318282611b5a565b91505060a083015184820360a0860152611c4b8282611b93565b91505060c0830151611c6060c0860182611569565b5060e08381015190850152610100808401519085015261012080840151908501526101408084015185830382870152611c998382611b2e565b9695505050505050565b60208152600060018060a01b0380845116602084015280602085015116604084015250604083015160a06060840152611cdf60c0840182611b2e565b90506060840151601f1980858403016080860152611cfd8383611bc3565b925060808601519150808584030160a086015250611d1b8282611b2e565b95945050505050565b60008060008060808587031215611d3a57600080fd5b8435611d45816113da565b935060208501356001600160401b0380821115611d6157600080fd5b611d6d88838901611925565b94506040870135915080821115611d8357600080fd5b611d8f888389016117e2565b93506060870135915080821115611da557600080fd5b50611db2878288016117e2565b91505092959194509250565b6001600160a01b0385168152608060208201819052600090611de290830186611bc3565b8281036040840152611df48186611b2e565b905082810360608401526108c48185611b2e565b600082601f830112611e1957600080fd5b81516020611e2961180183611838565b82815260059290921b84018101918181019086841115611e4857600080fd5b8286015b848110156118bf5780518352918301918301611e4c565b60008060008060808587031215611e7957600080fd5b8451611e84816113da565b60208601516040870151606088015192965090945092506001600160401b03811115611eaf57600080fd5b611db287828801611e08565b60018060a01b0385168152836020820152826040820152608060608201526000611c996080830184611b93565b600082601f830112611ef957600080fd5b8151611f07611801826117bb565b818152846020838601011115611f1c57600080fd5b6102388260208301602087016115bb565b600080600080848603610140811215611f4557600080fd5b8551611f50816113da565b945060e0601f1982011215611f6457600080fd5b50611f6d6116de565b6020860151611f7b816113da565b81526040860151611f8b816113da565b60208201526060860151611f9e816113da565b60408201526080860151611fb1816113da565b606082015260a086810151608083015260c0808801519183019190915260e0870151908201526101008601519093506001600160401b0380821115611ff557600080fd5b61200188838901611ee8565b935061012087015191508082111561201857600080fd5b50611db287828801611ee8565b600061014060018060a01b03808816845280875116602085015280602088015116604085015280604088015116606085015280606088015116608085015250608086015160a084015260a086015160c084015260c086015160e08401528061010084015261209581840186611b2e565b90508281036101208401526108c48185611b2e565b600080600080600060a086880312156120c257600080fd5b85516120cd816113da565b60208701519095506120de816113da565b60408701516060880151608089015192965090945092506001600160401b0381111561210957600080fd5b61211588828901611e08565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906108c490830184611b93565b80820281158282048414176108d5576108d561152d565b60008261218257612182611517565b500490565b6020815260006102696020830184611b2e565b818103818111156108d5576108d561152d565b634e487b7160e01b600052603260045260246000fd5b808201808211156108d5576108d561152d565b6000600182016121e8576121e861152d565b5060010190565b80516113fd816113da565b600082601f83011261220b57600080fd5b8151602061221b61180183611838565b82815260059290921b8401810191818101908684111561223a57600080fd5b8286015b848110156118bf578051612251816113da565b835291830191830161223e565b600082601f83011261226f57600080fd5b8151602061227f61180183611838565b82815260059290921b8401810191818101908684111561229e57600080fd5b8286015b848110156118bf5780516001600160401b038111156122c15760008081fd5b6122cf8986838b0101611ee8565b8452509183019183016122a2565b6000602082840312156122ef57600080fd5b81516001600160401b038082111561230657600080fd5b9083019060a0828603121561231a57600080fd5b6123226116bc565b82518281111561233157600080fd5b61233d878286016121fa565b82525060208301518281111561235257600080fd5b61235e87828601611e08565b60208301525060408301518281111561237657600080fd5b6123828782860161225e565b604083015250606083015160608201526080830151828111156123a457600080fd5b611b1f87828601611ee8565b60006020808352835160a0828501526123cc60c0850182611b5a565b905081850151601f19808684030160408701526123e98383611b93565b60408801518782038301606089015280518083529194508501925084840190600581901b8501860160005b82811015612440578487830301845261242e828751611b2e565b95880195938801939150600101612414565b5060608a015160808a015260808a01519650838982030160a08a01526124668188611b2e565b9a9950505050505050505050565b600082601f83011261248557600080fd5b815161249361180182611838565b808282526020820191508560208460051b87010111156124b257600080fd5b602085015b60208460051b8701018110156125df5780516001600160401b038111156124dd57600080fd5b8601603f810188136124ee57600080fd5b60208101516124ff61180182611838565b808282526020820191508a60408460051b860101111561251e57600080fd5b604084015b60408460051b8601018110156125c95780516001600160401b0381111561254957600080fd5b60408682018e03603f1901121561255f57600080fd5b612567611700565b868201604001516001600160401b0381111561258257600080fd5b6125938f604083868c010101611ee8565b82525090860160600151906001600160e01b0319821682146125b457600080fd5b60208181019290925284529283019201612523565b50865250506020938401939190910190506124b7565b5095945050505050565b6000602082840312156125fb57600080fd5b81516001600160401b038082111561261257600080fd5b9083019060e0828603121561262657600080fd5b61262e6116de565b82518281111561263d57600080fd5b61264987828601612474565b825250612658602084016121ef565b6020820152612669604084016121ef565b604082015260608301516060820152612684608084016121ef565b608082015260a083015160a082015260c0830151828111156126a557600080fd5b6126b187828601611ee8565b60c08301525095945050505050565b6020808252602a908201527f496e7075745363616c696e6748656c7065723a2043616e206e6f74207363616c6040820152690652052465120737761760b41b606082015260800190565b6020808252825160e0838301528051610100840181905260009291600582811b860161012090810193928501929087019186805b838110156127d25789870361011f1901855285518051808952908901908989019080861b8a018b01855b828110156127bc57601f198c830301845284516040815181855261278e82860182611b2e565b91505063ffffffff60e01b8f830151168f85015280935050508c850194508c84019350600181019050612768565b509950505095880195509387019360010161273e565b5050505050508185015191506127eb6040850183611569565b604085015191506127ff6060850183611569565b606085015160808501526080850151915061281d60a0850183611569565b60a085015160c085015260c08501519150601f198482030160e0850152611d1b8183611b2e565b805163ffffffff811681146113fd57600080fd5b6000610120828403121561286b57600080fd5b612873611722565b61287c836121ef565b815261288a602084016121ef565b602082015261289b604084016121ef565b60408201526128ac606084016121ef565b60608201526080830151608082015260a083015160a08201526128d160c08401612844565b60c08201526128e260e08401612844565b60e08201526101006128f5818501612844565b908201529392505050565b81516001600160a01b0390811682526020808401519091169082015260408083015161012083019161293490840182611569565b5060608301516129476060840182611569565b506080830151608083015260a083015160a083015260c083015161297360c084018263ffffffff169052565b5060e083015161298b60e084018263ffffffff169052565b506101008381015163ffffffff811684830152611675565b805160ff811681146113fd57600080fd5b600061014082840312156129c757600080fd5b6129cf611745565b6129d8836121ef565b81526129e6602084016121ef565b60208201526129f7604084016121ef565b6040820152612a08606084016129a3565b6060820152612a19608084016129a3565b608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100612a4a8185016121ef565b908201526101206128f58482016115fb565b600061014082019050612a70828451611569565b6020830151612a826020840182611569565b506040830151612a956040840182611569565b506060830151612aaa606084018260ff169052565b506080830151612abf608084018260ff169052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151612af182850182611569565b50506101208381015180151584830152611675565b8051600f81900b81146113fd57600080fd5b60006101208284031215612b2b57600080fd5b612b33611722565b612b3c836121ef565b8152612b4a602084016121ef565b6020820152612b5b604084016121ef565b6040820152612b6c60608401612b06565b6060820152612b7d60808401612b06565b608082015260a083015160a082015260c083015160c0820152612ba260e084016115fb565b60e08201526101006128f58185016115fb565b81516001600160a01b03908116825260208084015190911690820152604080830151610120830191612be990840182611569565b506060830151612bfe6060840182600f0b9052565b506080830151612c136080840182600f0b9052565b5060a083015160a083015260c083015160c083015260e0830151612c3b60e084018215159052565b506101008381015180151584830152611675565b60006101008284031215612c6257600080fd5b612c6a611768565b8251612c75816113da565b81526020830151612c85816113da565b6020820152612c96604084016121ef565b6040820152612ca7606084016121ef565b60608201526080830151608082015260a083015160a0820152612ccc60c084016121ef565b60c0820152612cdd60e084016115fb565b60e08201529392505050565b600060c08284031215612cfb57600080fd5b60405160c081016001600160401b0381118282101715612d1d57612d1d61167d565b6040528251612d2b816113da565b8152602083810151908201526040830151612d45816113da565b60408201526060830151612d58816113da565b60608201526080838101519082015260a0928301519281019290925250919050565b60006101208284031215612d8d57600080fd5b612d95611722565b612d9e836121ef565b8152612dac602084016121ef565b6020820152612dbd604084016121ef565b6040820152612dce606084016121ef565b60608201526080830151608082015260a083015160a0820152612df360c084016121ef565b60c0820152612ba260e084016115fb565b81516001600160a01b03908116825260208084015190911690820152604080830151610120830191612e3890840182611569565b506060830151612e4b6060840182611569565b506080830151608083015260a083015160a083015260c0830151612e7260c0840182611569565b5060e0830151612c3b60e084018215159052565b600060608284031215612e9857600080fd5b604051606081016001600160401b0381118282101715612eba57612eba61167d565b6040528251612ec8816113da565b8152602083810151908201526040830151612ee28161147e565b60408201529392505050565b60006101008284031215612f0157600080fd5b612f09611768565b8251612f14816113da565b81526020830151612f24816113da565b6020820152612f35604084016121ef565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c0820152612cdd60e084016115fb565b600060a08284031215612f8057600080fd5b60405160a081016001600160401b0381118282101715612fa257612fa261167d565b6040528251612fb0816113da565b81526020830151612fc0816113da565b60208201526040830151612fd3816113da565b6040820152606083810151908201526080830151612ff0816113da565b6080820152939250505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220eaf866b2177a0829dd12ca3eefa46fb136feab300bfd7e4d69cb1b9a2944012064736f6c63430008110033",
73
- "deployedBytecode": "0x6080604052600436106100225760003560e01c80632bdb823c1461002e57600080fd5b3661002957005b600080fd5b61004161003c366004611402565b610043565b005b61005c836100576040840160208501611461565b61011b565b61011561006f608083016060840161148c565b6100ba5761008060408301836114a9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100dd92505050565b6100dd6100ca60208401846114f6565b6100d760408501856114a9565b866101df565b6001600160a01b038516156100f35760006100f5565b835b6101056040850160208601611461565b6001600160a01b03169190610240565b50505050565b6001600160a01b03821661012d575050565b61013f60026001600160601b03611543565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015610198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bc9190611576565b10156101db576101ce82826000610270565b6101db8282600019610270565b5050565b606060018560038111156101f5576101f561158f565b0361020c5761020584848461037f565b9050610238565b60028560038111156102205761022061158f565b0361023057610205848484610553565b6102386115a5565b949350505050565b6060610266848484604051806060016040528060298152602001612ffd6029913961079e565b90505b9392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916102cc91906115df565b6000604051808303816000865af19150503d8060008114610309576040519150601f19603f3d011682016040523d82523d6000602084013e61030e565b606091505b50915091508180156103385750805115806103385750808060200190518101906103389190611606565b6103785760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064015b60405180910390fd5b5050505050565b606060006103906004828688611623565b6103999161164d565b9050631de02f1760e01b6001600160e01b03198216016104565760006103c28560048189611623565b8101906103cf9190611a58565b90506103f881606001518260400151866103f38560600151610120015160206108cf565b6108db565b82606001836040018290528290525050818160405160240161041a9190611ca3565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529250610269915050565b63750fcc0560e01b6001600160e01b03198216016104ff576000808080610480886004818c611623565b81019061048d9190611d24565b93509350935093506104a283838960016108db565b604051919450925085906104c0908690869086908690602401611dbe565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529550610269945050505050565b60405162461bcd60e51b8152602060048201526024808201527f496e7075745363616c696e6748656c7065723a20496e76616c69642073656c6560448201526331ba37b960e11b606482015260840161036f565b606060006105646004828688611623565b61056d9161164d565b9050600061057e8560048189611623565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050506001600160e01b0319821663086fe1cb60e31b0161065757600080600080848060200190518101906105e79190611e63565b93509350935093506105fa82848a610949565b915087925085848484846040516024016106179493929190611ebb565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152965061026995505050505050565b63ed55c35160e01b6001600160e01b03198316016106c957600080600080848060200190518101906106899190611f2d565b93509350935093506106a48360a0015184608001518a610949565b60a0840152608083018890526040518690610617908690869086908690602401612025565b6308723dad60e01b6001600160e01b0319831601610772576000806000806000858060200190518101906106fd91906120aa565b9450945094509450945061071282848b610949565b9150889250868585858585604051602401610731959493929190612122565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506102699650505050505050565b60405163a7dd6a9560e01b8152600160048201526001600160e01b03198316602482015260440161036f565b6060824710156107ff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161036f565b6001600160a01b0385163b6108565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161036f565b600080866001600160a01b0316858760405161087291906115df565b60006040518083038185875af1925050503d80600081146108af576040519150601f19603f3d011682016040523d82523d6000602084013e6108b4565b606091505b50915091506108c4828286610960565b979650505050505050565b81811615155b92915050565b6108e3611365565b60e08501516060908481036108fe5786869250925050610940565b83156109245761090f878287610999565b61091a878388610af8565b9250925050610940565b61092f878287610999565b61093a878388610c25565b92509250505b94509492505050565b600082610956838661215c565b6102669190612173565b6060831561096f575081610269565b82511561097f5782518084602001fd5b8160405162461bcd60e51b815260040161036f9190612187565b6109a1611365565b610100840151836109b2848361215c565b6109bc9190612173565b61010086015280158015906109d45750610100850151155b156109e25760016101008601525b60e085018390526040850151516000036109ff5784915050610269565b6000805b866040015151811015610aed576001876040015151610a22919061219a565b8103610a5957610a32828661219a565b87606001518281518110610a4857610a486121ad565b602002602001018181525050610ab0565b858588606001518381518110610a7157610a716121ad565b6020026020010151610a83919061215c565b610a8d9190612173565b87606001518281518110610aa357610aa36121ad565b6020026020010181815250505b86606001518181518110610ac657610ac66121ad565b602002602001015182610ad991906121c3565b915080610ae5816121d6565b915050610a03565b509495945050505050565b6060600084806020019051810190610b1091906122dd565b8051519091506000805b82811015610bf857610b2d60018461219a565b8103610b6457610b3d828761219a565b84602001518281518110610b5357610b536121ad565b602002602001018181525050610bbb565b868685602001518381518110610b7c57610b7c6121ad565b6020026020010151610b8e919061215c565b610b989190612173565b84602001518281518110610bae57610bae6121ad565b6020026020010181815250505b83602001518181518110610bd157610bd16121ad565b602002602001015182610be491906121c3565b915080610bf0816121d6565b915050610b1a565b5082604051602001610c0a91906123b0565b60405160208183030381529060405293505050509392505050565b6060600084806020019051810190610c3d91906125e9565b905083838260600151610c50919061215c565b610c5a9190612173565b606082015260005b815151811015610f2057600082600001518281518110610c8457610c846121ad565b6020026020010151600081518110610c9e57610c9e6121ad565b60209081029190910181015190810151909150630be1a7a360e21b6001600160e01b0319821601610cdd578151610cd6908888610f4b565b8252610f0b565b6301b966ef60e71b6001600160e01b0319821601610d02578151610cd6908888610f96565b633409dd2d60e01b6001600160e01b0319821601610d27578151610cd6908888610fe1565b63b6bb37eb60e01b6001600160e01b0319821601610d4c578151610cd6908888610f4b565b63617556cb60e01b6001600160e01b0319821601610d71578151610cd690888861102c565b6308c49cdf60e11b6001600160e01b0319821601610da15760405162461bcd60e51b815260040161036f906126c0565b635a2f8d7160e01b6001600160e01b0319821601610dc6578151610cd69088886110df565b6375a256f160e01b6001600160e01b0319821601610deb578151610cd6908888611174565b63a7c1a92960e01b6001600160e01b0319821601610e10578151610cd69088886111bf565b6360fabb9d60e01b6001600160e01b0319821601610e35578151610cd690888861122b565b63873c52e160e01b6001600160e01b0319821601610e5a578151610cd69088886112da565b630590bce960e11b6001600160e01b0319821601610e8a5760405162461bcd60e51b815260040161036f906126c0565b6310262a3d60e01b6001600160e01b0319821601610eaf578151610cd6908888610f4b565b60405162461bcd60e51b815260206004820152602b60248201527f4167677265676174696f6e4578656375746f723a204465782074797065206e6f60448201526a1d081cdd5c1c1bdc9d195960aa1b606482015260840161036f565b50508080610f18906121d6565b915050610c62565b5080604051602001610f32919061270a565b6040516020818303038152906040529150509392505050565b6060600084806020019051810190610f639190612858565b905083838260800151610f76919061215c565b610f809190612173565b6080820152604051610f32908290602001612900565b6060600084806020019051810190610fae91906129b4565b905083838260a00151610fc1919061215c565b610fcb9190612173565b60a0820152604051610f32908290602001612a5c565b6060600084806020019051810190610ff99190612b18565b905083838260a0015161100c919061215c565b6110169190612173565b60a0820152604051610f32908290602001612bb5565b60606000848060200190518101906110449190612c4f565b905083838260800151611057919061215c565b6110619190612173565b6080820152604051610f3290829060200160006101008201905060018060a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401526080840151608084015260a084015160a08401528060c08501511660c08401525060e0830151151560e083015292915050565b60606000848060200190518101906110f79190612ce9565b90508383826080015161110a919061215c565b6111149190612173565b6080820152604051610f3290829060200181516001600160a01b03908116825260208084015190830152604080840151821690830152606080840151909116908201526080808301519082015260a0918201519181019190915260c00190565b606060008480602001905181019061118c9190612d7a565b90508383826080015161119f919061215c565b6111a99190612173565b6080820152604051610f32908290602001612e04565b60606000848060200190518101906111d79190612e86565b9050838382602001516111ea919061215c565b6111f49190612173565b60208281019182526040805184516001600160a01b0316928101929092529151818301529082015115156060820152608001610f32565b60606000848060200190518101906112439190612eee565b905083838260800151611256919061215c565b6112609190612173565b6080820152604051610f3290829060200160006101008201905060018060a01b0380845116835280602085015116602084015280604085015116604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e0830151151560e083015292915050565b60606000848060200190518101906112f29190612f6e565b905083838260600151611305919061215c565b61130f9190612173565b6060820152604051610f3290829060200181516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015190830152608092830151169181019190915260a00190565b60405180610160016040528060006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160608152602001606081526020016060815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b6001600160a01b03811681146113ef57600080fd5b50565b80356113fd816113da565b919050565b60008060006060848603121561141757600080fd5b8335611422816113da565b92506020840135915060408401356001600160401b0381111561144457600080fd5b84016080818703121561145657600080fd5b809150509250925092565b60006020828403121561147357600080fd5b8135610269816113da565b80151581146113ef57600080fd5b60006020828403121561149e57600080fd5b81356102698161147e565b6000808335601e198436030181126114c057600080fd5b8301803591506001600160401b038211156114da57600080fd5b6020019150368190038213156114ef57600080fd5b9250929050565b60006020828403121561150857600080fd5b81356004811061026957600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160601b038381168061155d5761155d611517565b92169190910492915050565b6001600160a01b03169052565b60006020828403121561158857600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156115d65781810151838201526020016115be565b50506000910152565b600082516115f18184602087016115bb565b9190910192915050565b80516113fd8161147e565b60006020828403121561161857600080fd5b81516102698161147e565b6000808585111561163357600080fd5b8386111561164057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116755780818660040360031b1b83161692505b505092915050565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b03811182821017156116b6576116b661167d565b60405290565b60405160a081016001600160401b03811182821017156116b6576116b661167d565b60405160e081016001600160401b03811182821017156116b6576116b661167d565b604080519081016001600160401b03811182821017156116b6576116b661167d565b60405161012081016001600160401b03811182821017156116b6576116b661167d565b60405161014081016001600160401b03811182821017156116b6576116b661167d565b60405161010081016001600160401b03811182821017156116b6576116b661167d565b604051601f8201601f191681016001600160401b03811182821017156117b3576117b361167d565b604052919050565b60006001600160401b038211156117d4576117d461167d565b50601f01601f191660200190565b600082601f8301126117f357600080fd5b8135611806611801826117bb565b61178b565b81815284602083860101111561181b57600080fd5b816020850160208301376000918101602001919091529392505050565b60006001600160401b038211156118515761185161167d565b5060051b60200190565b600082601f83011261186c57600080fd5b8135602061187c61180183611838565b82815260059290921b8401810191818101908684111561189b57600080fd5b8286015b848110156118bf5780356118b2816113da565b835291830191830161189f565b509695505050505050565b600082601f8301126118db57600080fd5b813560206118eb61180183611838565b82815260059290921b8401810191818101908684111561190a57600080fd5b8286015b848110156118bf578035835291830191830161190e565b6000610160828403121561193857600080fd5b611940611693565b905061194b826113f2565b8152611959602083016113f2565b602082015260408201356001600160401b038082111561197857600080fd5b6119848583860161185b565b6040840152606084013591508082111561199d57600080fd5b6119a9858386016118ca565b606084015260808401359150808211156119c257600080fd5b6119ce8583860161185b565b608084015260a08401359150808211156119e757600080fd5b6119f3858386016118ca565b60a0840152611a0460c085016113f2565b60c084015260e084810135908401526101008085013590840152610120808501359084015261014091508184013581811115611a3f57600080fd5b611a4b868287016117e2565b8385015250505092915050565b600060208284031215611a6a57600080fd5b81356001600160401b0380821115611a8157600080fd5b9083019060a08286031215611a9557600080fd5b611a9d6116bc565b611aa6836113f2565b8152611ab4602084016113f2565b6020820152604083013582811115611acb57600080fd5b611ad7878286016117e2565b604083015250606083013582811115611aef57600080fd5b611afb87828601611925565b606083015250608083013582811115611b1357600080fd5b611b1f878286016117e2565b60808301525095945050505050565b60008151808452611b468160208601602086016115bb565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610aed5781516001600160a01b031687529582019590820190600101611b6e565b600081518084526020808501945080840160005b83811015610aed57815187529582019590820190600101611ba7565b6000610160611bd3848451611569565b6020830151611be56020860182611569565b506040830151816040860152611bfd82860182611b5a565b91505060608301518482036060860152611c178282611b93565b91505060808301518482036080860152611c318282611b5a565b91505060a083015184820360a0860152611c4b8282611b93565b91505060c0830151611c6060c0860182611569565b5060e08381015190850152610100808401519085015261012080840151908501526101408084015185830382870152611c998382611b2e565b9695505050505050565b60208152600060018060a01b0380845116602084015280602085015116604084015250604083015160a06060840152611cdf60c0840182611b2e565b90506060840151601f1980858403016080860152611cfd8383611bc3565b925060808601519150808584030160a086015250611d1b8282611b2e565b95945050505050565b60008060008060808587031215611d3a57600080fd5b8435611d45816113da565b935060208501356001600160401b0380821115611d6157600080fd5b611d6d88838901611925565b94506040870135915080821115611d8357600080fd5b611d8f888389016117e2565b93506060870135915080821115611da557600080fd5b50611db2878288016117e2565b91505092959194509250565b6001600160a01b0385168152608060208201819052600090611de290830186611bc3565b8281036040840152611df48186611b2e565b905082810360608401526108c48185611b2e565b600082601f830112611e1957600080fd5b81516020611e2961180183611838565b82815260059290921b84018101918181019086841115611e4857600080fd5b8286015b848110156118bf5780518352918301918301611e4c565b60008060008060808587031215611e7957600080fd5b8451611e84816113da565b60208601516040870151606088015192965090945092506001600160401b03811115611eaf57600080fd5b611db287828801611e08565b60018060a01b0385168152836020820152826040820152608060608201526000611c996080830184611b93565b600082601f830112611ef957600080fd5b8151611f07611801826117bb565b818152846020838601011115611f1c57600080fd5b6102388260208301602087016115bb565b600080600080848603610140811215611f4557600080fd5b8551611f50816113da565b945060e0601f1982011215611f6457600080fd5b50611f6d6116de565b6020860151611f7b816113da565b81526040860151611f8b816113da565b60208201526060860151611f9e816113da565b60408201526080860151611fb1816113da565b606082015260a086810151608083015260c0808801519183019190915260e0870151908201526101008601519093506001600160401b0380821115611ff557600080fd5b61200188838901611ee8565b935061012087015191508082111561201857600080fd5b50611db287828801611ee8565b600061014060018060a01b03808816845280875116602085015280602088015116604085015280604088015116606085015280606088015116608085015250608086015160a084015260a086015160c084015260c086015160e08401528061010084015261209581840186611b2e565b90508281036101208401526108c48185611b2e565b600080600080600060a086880312156120c257600080fd5b85516120cd816113da565b60208701519095506120de816113da565b60408701516060880151608089015192965090945092506001600160401b0381111561210957600080fd5b61211588828901611e08565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906108c490830184611b93565b80820281158282048414176108d5576108d561152d565b60008261218257612182611517565b500490565b6020815260006102696020830184611b2e565b818103818111156108d5576108d561152d565b634e487b7160e01b600052603260045260246000fd5b808201808211156108d5576108d561152d565b6000600182016121e8576121e861152d565b5060010190565b80516113fd816113da565b600082601f83011261220b57600080fd5b8151602061221b61180183611838565b82815260059290921b8401810191818101908684111561223a57600080fd5b8286015b848110156118bf578051612251816113da565b835291830191830161223e565b600082601f83011261226f57600080fd5b8151602061227f61180183611838565b82815260059290921b8401810191818101908684111561229e57600080fd5b8286015b848110156118bf5780516001600160401b038111156122c15760008081fd5b6122cf8986838b0101611ee8565b8452509183019183016122a2565b6000602082840312156122ef57600080fd5b81516001600160401b038082111561230657600080fd5b9083019060a0828603121561231a57600080fd5b6123226116bc565b82518281111561233157600080fd5b61233d878286016121fa565b82525060208301518281111561235257600080fd5b61235e87828601611e08565b60208301525060408301518281111561237657600080fd5b6123828782860161225e565b604083015250606083015160608201526080830151828111156123a457600080fd5b611b1f87828601611ee8565b60006020808352835160a0828501526123cc60c0850182611b5a565b905081850151601f19808684030160408701526123e98383611b93565b60408801518782038301606089015280518083529194508501925084840190600581901b8501860160005b82811015612440578487830301845261242e828751611b2e565b95880195938801939150600101612414565b5060608a015160808a015260808a01519650838982030160a08a01526124668188611b2e565b9a9950505050505050505050565b600082601f83011261248557600080fd5b815161249361180182611838565b808282526020820191508560208460051b87010111156124b257600080fd5b602085015b60208460051b8701018110156125df5780516001600160401b038111156124dd57600080fd5b8601603f810188136124ee57600080fd5b60208101516124ff61180182611838565b808282526020820191508a60408460051b860101111561251e57600080fd5b604084015b60408460051b8601018110156125c95780516001600160401b0381111561254957600080fd5b60408682018e03603f1901121561255f57600080fd5b612567611700565b868201604001516001600160401b0381111561258257600080fd5b6125938f604083868c010101611ee8565b82525090860160600151906001600160e01b0319821682146125b457600080fd5b60208181019290925284529283019201612523565b50865250506020938401939190910190506124b7565b5095945050505050565b6000602082840312156125fb57600080fd5b81516001600160401b038082111561261257600080fd5b9083019060e0828603121561262657600080fd5b61262e6116de565b82518281111561263d57600080fd5b61264987828601612474565b825250612658602084016121ef565b6020820152612669604084016121ef565b604082015260608301516060820152612684608084016121ef565b608082015260a083015160a082015260c0830151828111156126a557600080fd5b6126b187828601611ee8565b60c08301525095945050505050565b6020808252602a908201527f496e7075745363616c696e6748656c7065723a2043616e206e6f74207363616c6040820152690652052465120737761760b41b606082015260800190565b6020808252825160e0838301528051610100840181905260009291600582811b860161012090810193928501929087019186805b838110156127d25789870361011f1901855285518051808952908901908989019080861b8a018b01855b828110156127bc57601f198c830301845284516040815181855261278e82860182611b2e565b91505063ffffffff60e01b8f830151168f85015280935050508c850194508c84019350600181019050612768565b509950505095880195509387019360010161273e565b5050505050508185015191506127eb6040850183611569565b604085015191506127ff6060850183611569565b606085015160808501526080850151915061281d60a0850183611569565b60a085015160c085015260c08501519150601f198482030160e0850152611d1b8183611b2e565b805163ffffffff811681146113fd57600080fd5b6000610120828403121561286b57600080fd5b612873611722565b61287c836121ef565b815261288a602084016121ef565b602082015261289b604084016121ef565b60408201526128ac606084016121ef565b60608201526080830151608082015260a083015160a08201526128d160c08401612844565b60c08201526128e260e08401612844565b60e08201526101006128f5818501612844565b908201529392505050565b81516001600160a01b0390811682526020808401519091169082015260408083015161012083019161293490840182611569565b5060608301516129476060840182611569565b506080830151608083015260a083015160a083015260c083015161297360c084018263ffffffff169052565b5060e083015161298b60e084018263ffffffff169052565b506101008381015163ffffffff811684830152611675565b805160ff811681146113fd57600080fd5b600061014082840312156129c757600080fd5b6129cf611745565b6129d8836121ef565b81526129e6602084016121ef565b60208201526129f7604084016121ef565b6040820152612a08606084016129a3565b6060820152612a19608084016129a3565b608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100612a4a8185016121ef565b908201526101206128f58482016115fb565b600061014082019050612a70828451611569565b6020830151612a826020840182611569565b506040830151612a956040840182611569565b506060830151612aaa606084018260ff169052565b506080830151612abf608084018260ff169052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151612af182850182611569565b50506101208381015180151584830152611675565b8051600f81900b81146113fd57600080fd5b60006101208284031215612b2b57600080fd5b612b33611722565b612b3c836121ef565b8152612b4a602084016121ef565b6020820152612b5b604084016121ef565b6040820152612b6c60608401612b06565b6060820152612b7d60808401612b06565b608082015260a083015160a082015260c083015160c0820152612ba260e084016115fb565b60e08201526101006128f58185016115fb565b81516001600160a01b03908116825260208084015190911690820152604080830151610120830191612be990840182611569565b506060830151612bfe6060840182600f0b9052565b506080830151612c136080840182600f0b9052565b5060a083015160a083015260c083015160c083015260e0830151612c3b60e084018215159052565b506101008381015180151584830152611675565b60006101008284031215612c6257600080fd5b612c6a611768565b8251612c75816113da565b81526020830151612c85816113da565b6020820152612c96604084016121ef565b6040820152612ca7606084016121ef565b60608201526080830151608082015260a083015160a0820152612ccc60c084016121ef565b60c0820152612cdd60e084016115fb565b60e08201529392505050565b600060c08284031215612cfb57600080fd5b60405160c081016001600160401b0381118282101715612d1d57612d1d61167d565b6040528251612d2b816113da565b8152602083810151908201526040830151612d45816113da565b60408201526060830151612d58816113da565b60608201526080838101519082015260a0928301519281019290925250919050565b60006101208284031215612d8d57600080fd5b612d95611722565b612d9e836121ef565b8152612dac602084016121ef565b6020820152612dbd604084016121ef565b6040820152612dce606084016121ef565b60608201526080830151608082015260a083015160a0820152612df360c084016121ef565b60c0820152612ba260e084016115fb565b81516001600160a01b03908116825260208084015190911690820152604080830151610120830191612e3890840182611569565b506060830151612e4b6060840182611569565b506080830151608083015260a083015160a083015260c0830151612e7260c0840182611569565b5060e0830151612c3b60e084018215159052565b600060608284031215612e9857600080fd5b604051606081016001600160401b0381118282101715612eba57612eba61167d565b6040528251612ec8816113da565b8152602083810151908201526040830151612ee28161147e565b60408201529392505050565b60006101008284031215612f0157600080fd5b612f09611768565b8251612f14816113da565b81526020830151612f24816113da565b6020820152612f35604084016121ef565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c0820152612cdd60e084016115fb565b600060a08284031215612f8057600080fd5b60405160a081016001600160401b0381118282101715612fa257612fa261167d565b6040528251612fb0816113da565b81526020830151612fc0816113da565b60208201526040830151612fd3816113da565b6040820152606083810151908201526080830151612ff0816113da565b6080820152939250505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220eaf866b2177a0829dd12ca3eefa46fb136feab300bfd7e4d69cb1b9a2944012064736f6c63430008110033",
72
+ "bytecode": "0x608060405234801561001057600080fd5b5061305b806100206000396000f3fe6080604052600436106100225760003560e01c80632bdb823c1461002e57600080fd5b3661002957005b600080fd5b61004161003c366004611402565b610043565b005b61005c836100576040840160208501611461565b61011b565b61011561006f608083016060840161148c565b6100ba5761008060408301836114a9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100dd92505050565b6100dd6100ca60208401846114f6565b6100d760408501856114a9565b866101df565b6001600160a01b038516156100f35760006100f5565b835b6101056040850160208601611461565b6001600160a01b03169190610240565b50505050565b6001600160a01b03821661012d575050565b61013f60026001600160601b03611543565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015610198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bc9190611576565b10156101db576101ce82826000610270565b6101db8282600019610270565b5050565b606060018560038111156101f5576101f561158f565b0361020c5761020584848461037f565b9050610238565b60028560038111156102205761022061158f565b0361023057610205848484610553565b6102386115a5565b949350505050565b6060610266848484604051806060016040528060298152602001612ffd6029913961079e565b90505b9392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916102cc91906115df565b6000604051808303816000865af19150503d8060008114610309576040519150601f19603f3d011682016040523d82523d6000602084013e61030e565b606091505b50915091508180156103385750805115806103385750808060200190518101906103389190611606565b6103785760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064015b60405180910390fd5b5050505050565b606060006103906004828688611623565b6103999161164d565b9050631de02f1760e01b6001600160e01b03198216016104565760006103c28560048189611623565b8101906103cf9190611a58565b90506103f881606001518260400151866103f38560600151610120015160206108cf565b6108db565b82606001836040018290528290525050818160405160240161041a9190611ca3565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529250610269915050565b63750fcc0560e01b6001600160e01b03198216016104ff576000808080610480886004818c611623565b81019061048d9190611d24565b93509350935093506104a283838960016108db565b604051919450925085906104c0908690869086908690602401611dbe565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529550610269945050505050565b60405162461bcd60e51b8152602060048201526024808201527f496e7075745363616c696e6748656c7065723a20496e76616c69642073656c6560448201526331ba37b960e11b606482015260840161036f565b606060006105646004828688611623565b61056d9161164d565b9050600061057e8560048189611623565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050506001600160e01b0319821663086fe1cb60e31b0161065757600080600080848060200190518101906105e79190611e63565b93509350935093506105fa82848a610949565b915087925085848484846040516024016106179493929190611ebb565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152965061026995505050505050565b63ed55c35160e01b6001600160e01b03198316016106c957600080600080848060200190518101906106899190611f2d565b93509350935093506106a48360a0015184608001518a610949565b60a0840152608083018890526040518690610617908690869086908690602401612025565b6308723dad60e01b6001600160e01b0319831601610772576000806000806000858060200190518101906106fd91906120aa565b9450945094509450945061071282848b610949565b9150889250868585858585604051602401610731959493929190612122565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506102699650505050505050565b60405163a7dd6a9560e01b8152600160048201526001600160e01b03198316602482015260440161036f565b6060824710156107ff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161036f565b6001600160a01b0385163b6108565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161036f565b600080866001600160a01b0316858760405161087291906115df565b60006040518083038185875af1925050503d80600081146108af576040519150601f19603f3d011682016040523d82523d6000602084013e6108b4565b606091505b50915091506108c4828286610960565b979650505050505050565b81811615155b92915050565b6108e3611365565b60e08501516060908481036108fe5786869250925050610940565b83156109245761090f878287610999565b61091a878388610af8565b9250925050610940565b61092f878287610999565b61093a878388610c25565b92509250505b94509492505050565b600082610956838661215c565b6102669190612173565b6060831561096f575081610269565b82511561097f5782518084602001fd5b8160405162461bcd60e51b815260040161036f9190612187565b6109a1611365565b610100840151836109b2848361215c565b6109bc9190612173565b61010086015280158015906109d45750610100850151155b156109e25760016101008601525b60e085018390526040850151516000036109ff5784915050610269565b6000805b866040015151811015610aed576001876040015151610a22919061219a565b8103610a5957610a32828661219a565b87606001518281518110610a4857610a486121ad565b602002602001018181525050610ab0565b858588606001518381518110610a7157610a716121ad565b6020026020010151610a83919061215c565b610a8d9190612173565b87606001518281518110610aa357610aa36121ad565b6020026020010181815250505b86606001518181518110610ac657610ac66121ad565b602002602001015182610ad991906121c3565b915080610ae5816121d6565b915050610a03565b509495945050505050565b6060600084806020019051810190610b1091906122dd565b8051519091506000805b82811015610bf857610b2d60018461219a565b8103610b6457610b3d828761219a565b84602001518281518110610b5357610b536121ad565b602002602001018181525050610bbb565b868685602001518381518110610b7c57610b7c6121ad565b6020026020010151610b8e919061215c565b610b989190612173565b84602001518281518110610bae57610bae6121ad565b6020026020010181815250505b83602001518181518110610bd157610bd16121ad565b602002602001015182610be491906121c3565b915080610bf0816121d6565b915050610b1a565b5082604051602001610c0a91906123b0565b60405160208183030381529060405293505050509392505050565b6060600084806020019051810190610c3d91906125e9565b905083838260600151610c50919061215c565b610c5a9190612173565b606082015260005b815151811015610f2057600082600001518281518110610c8457610c846121ad565b6020026020010151600081518110610c9e57610c9e6121ad565b60209081029190910181015190810151909150630be1a7a360e21b6001600160e01b0319821601610cdd578151610cd6908888610f4b565b8252610f0b565b6301b966ef60e71b6001600160e01b0319821601610d02578151610cd6908888610f96565b633409dd2d60e01b6001600160e01b0319821601610d27578151610cd6908888610fe1565b63b6bb37eb60e01b6001600160e01b0319821601610d4c578151610cd6908888610f4b565b63617556cb60e01b6001600160e01b0319821601610d71578151610cd690888861102c565b6308c49cdf60e11b6001600160e01b0319821601610da15760405162461bcd60e51b815260040161036f906126c0565b635a2f8d7160e01b6001600160e01b0319821601610dc6578151610cd69088886110df565b6375a256f160e01b6001600160e01b0319821601610deb578151610cd6908888611174565b63a7c1a92960e01b6001600160e01b0319821601610e10578151610cd69088886111bf565b6360fabb9d60e01b6001600160e01b0319821601610e35578151610cd690888861122b565b63873c52e160e01b6001600160e01b0319821601610e5a578151610cd69088886112da565b630590bce960e11b6001600160e01b0319821601610e8a5760405162461bcd60e51b815260040161036f906126c0565b6310262a3d60e01b6001600160e01b0319821601610eaf578151610cd6908888610f4b565b60405162461bcd60e51b815260206004820152602b60248201527f4167677265676174696f6e4578656375746f723a204465782074797065206e6f60448201526a1d081cdd5c1c1bdc9d195960aa1b606482015260840161036f565b50508080610f18906121d6565b915050610c62565b5080604051602001610f32919061270a565b6040516020818303038152906040529150509392505050565b6060600084806020019051810190610f639190612858565b905083838260800151610f76919061215c565b610f809190612173565b6080820152604051610f32908290602001612900565b6060600084806020019051810190610fae91906129b4565b905083838260a00151610fc1919061215c565b610fcb9190612173565b60a0820152604051610f32908290602001612a5c565b6060600084806020019051810190610ff99190612b18565b905083838260a0015161100c919061215c565b6110169190612173565b60a0820152604051610f32908290602001612bb5565b60606000848060200190518101906110449190612c4f565b905083838260800151611057919061215c565b6110619190612173565b6080820152604051610f3290829060200160006101008201905060018060a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401526080840151608084015260a084015160a08401528060c08501511660c08401525060e0830151151560e083015292915050565b60606000848060200190518101906110f79190612ce9565b90508383826080015161110a919061215c565b6111149190612173565b6080820152604051610f3290829060200181516001600160a01b03908116825260208084015190830152604080840151821690830152606080840151909116908201526080808301519082015260a0918201519181019190915260c00190565b606060008480602001905181019061118c9190612d7a565b90508383826080015161119f919061215c565b6111a99190612173565b6080820152604051610f32908290602001612e04565b60606000848060200190518101906111d79190612e86565b9050838382602001516111ea919061215c565b6111f49190612173565b60208281019182526040805184516001600160a01b0316928101929092529151818301529082015115156060820152608001610f32565b60606000848060200190518101906112439190612eee565b905083838260800151611256919061215c565b6112609190612173565b6080820152604051610f3290829060200160006101008201905060018060a01b0380845116835280602085015116602084015280604085015116604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e0830151151560e083015292915050565b60606000848060200190518101906112f29190612f6e565b905083838260600151611305919061215c565b61130f9190612173565b6060820152604051610f3290829060200181516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015190830152608092830151169181019190915260a00190565b60405180610160016040528060006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160608152602001606081526020016060815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b6001600160a01b03811681146113ef57600080fd5b50565b80356113fd816113da565b919050565b60008060006060848603121561141757600080fd5b8335611422816113da565b92506020840135915060408401356001600160401b0381111561144457600080fd5b84016080818703121561145657600080fd5b809150509250925092565b60006020828403121561147357600080fd5b8135610269816113da565b80151581146113ef57600080fd5b60006020828403121561149e57600080fd5b81356102698161147e565b6000808335601e198436030181126114c057600080fd5b8301803591506001600160401b038211156114da57600080fd5b6020019150368190038213156114ef57600080fd5b9250929050565b60006020828403121561150857600080fd5b81356004811061026957600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160601b038381168061155d5761155d611517565b92169190910492915050565b6001600160a01b03169052565b60006020828403121561158857600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156115d65781810151838201526020016115be565b50506000910152565b600082516115f18184602087016115bb565b9190910192915050565b80516113fd8161147e565b60006020828403121561161857600080fd5b81516102698161147e565b6000808585111561163357600080fd5b8386111561164057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116755780818660040360031b1b83161692505b505092915050565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b03811182821017156116b6576116b661167d565b60405290565b60405160a081016001600160401b03811182821017156116b6576116b661167d565b60405160e081016001600160401b03811182821017156116b6576116b661167d565b604080519081016001600160401b03811182821017156116b6576116b661167d565b60405161012081016001600160401b03811182821017156116b6576116b661167d565b60405161014081016001600160401b03811182821017156116b6576116b661167d565b60405161010081016001600160401b03811182821017156116b6576116b661167d565b604051601f8201601f191681016001600160401b03811182821017156117b3576117b361167d565b604052919050565b60006001600160401b038211156117d4576117d461167d565b50601f01601f191660200190565b600082601f8301126117f357600080fd5b8135611806611801826117bb565b61178b565b81815284602083860101111561181b57600080fd5b816020850160208301376000918101602001919091529392505050565b60006001600160401b038211156118515761185161167d565b5060051b60200190565b600082601f83011261186c57600080fd5b8135602061187c61180183611838565b82815260059290921b8401810191818101908684111561189b57600080fd5b8286015b848110156118bf5780356118b2816113da565b835291830191830161189f565b509695505050505050565b600082601f8301126118db57600080fd5b813560206118eb61180183611838565b82815260059290921b8401810191818101908684111561190a57600080fd5b8286015b848110156118bf578035835291830191830161190e565b6000610160828403121561193857600080fd5b611940611693565b905061194b826113f2565b8152611959602083016113f2565b602082015260408201356001600160401b038082111561197857600080fd5b6119848583860161185b565b6040840152606084013591508082111561199d57600080fd5b6119a9858386016118ca565b606084015260808401359150808211156119c257600080fd5b6119ce8583860161185b565b608084015260a08401359150808211156119e757600080fd5b6119f3858386016118ca565b60a0840152611a0460c085016113f2565b60c084015260e084810135908401526101008085013590840152610120808501359084015261014091508184013581811115611a3f57600080fd5b611a4b868287016117e2565b8385015250505092915050565b600060208284031215611a6a57600080fd5b81356001600160401b0380821115611a8157600080fd5b9083019060a08286031215611a9557600080fd5b611a9d6116bc565b611aa6836113f2565b8152611ab4602084016113f2565b6020820152604083013582811115611acb57600080fd5b611ad7878286016117e2565b604083015250606083013582811115611aef57600080fd5b611afb87828601611925565b606083015250608083013582811115611b1357600080fd5b611b1f878286016117e2565b60808301525095945050505050565b60008151808452611b468160208601602086016115bb565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610aed5781516001600160a01b031687529582019590820190600101611b6e565b600081518084526020808501945080840160005b83811015610aed57815187529582019590820190600101611ba7565b6000610160611bd3848451611569565b6020830151611be56020860182611569565b506040830151816040860152611bfd82860182611b5a565b91505060608301518482036060860152611c178282611b93565b91505060808301518482036080860152611c318282611b5a565b91505060a083015184820360a0860152611c4b8282611b93565b91505060c0830151611c6060c0860182611569565b5060e08381015190850152610100808401519085015261012080840151908501526101408084015185830382870152611c998382611b2e565b9695505050505050565b60208152600060018060a01b0380845116602084015280602085015116604084015250604083015160a06060840152611cdf60c0840182611b2e565b90506060840151601f1980858403016080860152611cfd8383611bc3565b925060808601519150808584030160a086015250611d1b8282611b2e565b95945050505050565b60008060008060808587031215611d3a57600080fd5b8435611d45816113da565b935060208501356001600160401b0380821115611d6157600080fd5b611d6d88838901611925565b94506040870135915080821115611d8357600080fd5b611d8f888389016117e2565b93506060870135915080821115611da557600080fd5b50611db2878288016117e2565b91505092959194509250565b6001600160a01b0385168152608060208201819052600090611de290830186611bc3565b8281036040840152611df48186611b2e565b905082810360608401526108c48185611b2e565b600082601f830112611e1957600080fd5b81516020611e2961180183611838565b82815260059290921b84018101918181019086841115611e4857600080fd5b8286015b848110156118bf5780518352918301918301611e4c565b60008060008060808587031215611e7957600080fd5b8451611e84816113da565b60208601516040870151606088015192965090945092506001600160401b03811115611eaf57600080fd5b611db287828801611e08565b60018060a01b0385168152836020820152826040820152608060608201526000611c996080830184611b93565b600082601f830112611ef957600080fd5b8151611f07611801826117bb565b818152846020838601011115611f1c57600080fd5b6102388260208301602087016115bb565b600080600080848603610140811215611f4557600080fd5b8551611f50816113da565b945060e0601f1982011215611f6457600080fd5b50611f6d6116de565b6020860151611f7b816113da565b81526040860151611f8b816113da565b60208201526060860151611f9e816113da565b60408201526080860151611fb1816113da565b606082015260a086810151608083015260c0808801519183019190915260e0870151908201526101008601519093506001600160401b0380821115611ff557600080fd5b61200188838901611ee8565b935061012087015191508082111561201857600080fd5b50611db287828801611ee8565b600061014060018060a01b03808816845280875116602085015280602088015116604085015280604088015116606085015280606088015116608085015250608086015160a084015260a086015160c084015260c086015160e08401528061010084015261209581840186611b2e565b90508281036101208401526108c48185611b2e565b600080600080600060a086880312156120c257600080fd5b85516120cd816113da565b60208701519095506120de816113da565b60408701516060880151608089015192965090945092506001600160401b0381111561210957600080fd5b61211588828901611e08565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906108c490830184611b93565b80820281158282048414176108d5576108d561152d565b60008261218257612182611517565b500490565b6020815260006102696020830184611b2e565b818103818111156108d5576108d561152d565b634e487b7160e01b600052603260045260246000fd5b808201808211156108d5576108d561152d565b6000600182016121e8576121e861152d565b5060010190565b80516113fd816113da565b600082601f83011261220b57600080fd5b8151602061221b61180183611838565b82815260059290921b8401810191818101908684111561223a57600080fd5b8286015b848110156118bf578051612251816113da565b835291830191830161223e565b600082601f83011261226f57600080fd5b8151602061227f61180183611838565b82815260059290921b8401810191818101908684111561229e57600080fd5b8286015b848110156118bf5780516001600160401b038111156122c15760008081fd5b6122cf8986838b0101611ee8565b8452509183019183016122a2565b6000602082840312156122ef57600080fd5b81516001600160401b038082111561230657600080fd5b9083019060a0828603121561231a57600080fd5b6123226116bc565b82518281111561233157600080fd5b61233d878286016121fa565b82525060208301518281111561235257600080fd5b61235e87828601611e08565b60208301525060408301518281111561237657600080fd5b6123828782860161225e565b604083015250606083015160608201526080830151828111156123a457600080fd5b611b1f87828601611ee8565b60006020808352835160a0828501526123cc60c0850182611b5a565b905081850151601f19808684030160408701526123e98383611b93565b60408801518782038301606089015280518083529194508501925084840190600581901b8501860160005b82811015612440578487830301845261242e828751611b2e565b95880195938801939150600101612414565b5060608a015160808a015260808a01519650838982030160a08a01526124668188611b2e565b9a9950505050505050505050565b600082601f83011261248557600080fd5b815161249361180182611838565b808282526020820191508560208460051b87010111156124b257600080fd5b602085015b60208460051b8701018110156125df5780516001600160401b038111156124dd57600080fd5b8601603f810188136124ee57600080fd5b60208101516124ff61180182611838565b808282526020820191508a60408460051b860101111561251e57600080fd5b604084015b60408460051b8601018110156125c95780516001600160401b0381111561254957600080fd5b60408682018e03603f1901121561255f57600080fd5b612567611700565b868201604001516001600160401b0381111561258257600080fd5b6125938f604083868c010101611ee8565b82525090860160600151906001600160e01b0319821682146125b457600080fd5b60208181019290925284529283019201612523565b50865250506020938401939190910190506124b7565b5095945050505050565b6000602082840312156125fb57600080fd5b81516001600160401b038082111561261257600080fd5b9083019060e0828603121561262657600080fd5b61262e6116de565b82518281111561263d57600080fd5b61264987828601612474565b825250612658602084016121ef565b6020820152612669604084016121ef565b604082015260608301516060820152612684608084016121ef565b608082015260a083015160a082015260c0830151828111156126a557600080fd5b6126b187828601611ee8565b60c08301525095945050505050565b6020808252602a908201527f496e7075745363616c696e6748656c7065723a2043616e206e6f74207363616c6040820152690652052465120737761760b41b606082015260800190565b6020808252825160e0838301528051610100840181905260009291600582811b860161012090810193928501929087019186805b838110156127d25789870361011f1901855285518051808952908901908989019080861b8a018b01855b828110156127bc57601f198c830301845284516040815181855261278e82860182611b2e565b91505063ffffffff60e01b8f830151168f85015280935050508c850194508c84019350600181019050612768565b509950505095880195509387019360010161273e565b5050505050508185015191506127eb6040850183611569565b604085015191506127ff6060850183611569565b606085015160808501526080850151915061281d60a0850183611569565b60a085015160c085015260c08501519150601f198482030160e0850152611d1b8183611b2e565b805163ffffffff811681146113fd57600080fd5b6000610120828403121561286b57600080fd5b612873611722565b61287c836121ef565b815261288a602084016121ef565b602082015261289b604084016121ef565b60408201526128ac606084016121ef565b60608201526080830151608082015260a083015160a08201526128d160c08401612844565b60c08201526128e260e08401612844565b60e08201526101006128f5818501612844565b908201529392505050565b81516001600160a01b0390811682526020808401519091169082015260408083015161012083019161293490840182611569565b5060608301516129476060840182611569565b506080830151608083015260a083015160a083015260c083015161297360c084018263ffffffff169052565b5060e083015161298b60e084018263ffffffff169052565b506101008381015163ffffffff811684830152611675565b805160ff811681146113fd57600080fd5b600061014082840312156129c757600080fd5b6129cf611745565b6129d8836121ef565b81526129e6602084016121ef565b60208201526129f7604084016121ef565b6040820152612a08606084016129a3565b6060820152612a19608084016129a3565b608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100612a4a8185016121ef565b908201526101206128f58482016115fb565b600061014082019050612a70828451611569565b6020830151612a826020840182611569565b506040830151612a956040840182611569565b506060830151612aaa606084018260ff169052565b506080830151612abf608084018260ff169052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151612af182850182611569565b50506101208381015180151584830152611675565b8051600f81900b81146113fd57600080fd5b60006101208284031215612b2b57600080fd5b612b33611722565b612b3c836121ef565b8152612b4a602084016121ef565b6020820152612b5b604084016121ef565b6040820152612b6c60608401612b06565b6060820152612b7d60808401612b06565b608082015260a083015160a082015260c083015160c0820152612ba260e084016115fb565b60e08201526101006128f58185016115fb565b81516001600160a01b03908116825260208084015190911690820152604080830151610120830191612be990840182611569565b506060830151612bfe6060840182600f0b9052565b506080830151612c136080840182600f0b9052565b5060a083015160a083015260c083015160c083015260e0830151612c3b60e084018215159052565b506101008381015180151584830152611675565b60006101008284031215612c6257600080fd5b612c6a611768565b8251612c75816113da565b81526020830151612c85816113da565b6020820152612c96604084016121ef565b6040820152612ca7606084016121ef565b60608201526080830151608082015260a083015160a0820152612ccc60c084016121ef565b60c0820152612cdd60e084016115fb565b60e08201529392505050565b600060c08284031215612cfb57600080fd5b60405160c081016001600160401b0381118282101715612d1d57612d1d61167d565b6040528251612d2b816113da565b8152602083810151908201526040830151612d45816113da565b60408201526060830151612d58816113da565b60608201526080838101519082015260a0928301519281019290925250919050565b60006101208284031215612d8d57600080fd5b612d95611722565b612d9e836121ef565b8152612dac602084016121ef565b6020820152612dbd604084016121ef565b6040820152612dce606084016121ef565b60608201526080830151608082015260a083015160a0820152612df360c084016121ef565b60c0820152612ba260e084016115fb565b81516001600160a01b03908116825260208084015190911690820152604080830151610120830191612e3890840182611569565b506060830151612e4b6060840182611569565b506080830151608083015260a083015160a083015260c0830151612e7260c0840182611569565b5060e0830151612c3b60e084018215159052565b600060608284031215612e9857600080fd5b604051606081016001600160401b0381118282101715612eba57612eba61167d565b6040528251612ec8816113da565b8152602083810151908201526040830151612ee28161147e565b60408201529392505050565b60006101008284031215612f0157600080fd5b612f09611768565b8251612f14816113da565b81526020830151612f24816113da565b6020820152612f35604084016121ef565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c0820152612cdd60e084016115fb565b600060a08284031215612f8057600080fd5b60405160a081016001600160401b0381118282101715612fa257612fa261167d565b6040528251612fb0816113da565b81526020830151612fc0816113da565b60208201526040830151612fd3816113da565b6040820152606083810151908201526080830151612ff0816113da565b6080820152939250505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212204eff065f6d51033c03b4c0c5e01303bfa9dafdd147cbc6f651114823543daff364736f6c63430008110033",
73
+ "deployedBytecode": "0x6080604052600436106100225760003560e01c80632bdb823c1461002e57600080fd5b3661002957005b600080fd5b61004161003c366004611402565b610043565b005b61005c836100576040840160208501611461565b61011b565b61011561006f608083016060840161148c565b6100ba5761008060408301836114a9565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506100dd92505050565b6100dd6100ca60208401846114f6565b6100d760408501856114a9565b866101df565b6001600160a01b038516156100f35760006100f5565b835b6101056040850160208601611461565b6001600160a01b03169190610240565b50505050565b6001600160a01b03821661012d575050565b61013f60026001600160601b03611543565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015610198573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101bc9190611576565b10156101db576101ce82826000610270565b6101db8282600019610270565b5050565b606060018560038111156101f5576101f561158f565b0361020c5761020584848461037f565b9050610238565b60028560038111156102205761022061158f565b0361023057610205848484610553565b6102386115a5565b949350505050565b6060610266848484604051806060016040528060298152602001612ffd6029913961079e565b90505b9392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b17905291516000928392908716916102cc91906115df565b6000604051808303816000865af19150503d8060008114610309576040519150601f19603f3d011682016040523d82523d6000602084013e61030e565b606091505b50915091508180156103385750805115806103385750808060200190518101906103389190611606565b6103785760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b60448201526064015b60405180910390fd5b5050505050565b606060006103906004828688611623565b6103999161164d565b9050631de02f1760e01b6001600160e01b03198216016104565760006103c28560048189611623565b8101906103cf9190611a58565b90506103f881606001518260400151866103f38560600151610120015160206108cf565b6108db565b82606001836040018290528290525050818160405160240161041a9190611ca3565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529250610269915050565b63750fcc0560e01b6001600160e01b03198216016104ff576000808080610480886004818c611623565b81019061048d9190611d24565b93509350935093506104a283838960016108db565b604051919450925085906104c0908690869086908690602401611dbe565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529550610269945050505050565b60405162461bcd60e51b8152602060048201526024808201527f496e7075745363616c696e6748656c7065723a20496e76616c69642073656c6560448201526331ba37b960e11b606482015260840161036f565b606060006105646004828688611623565b61056d9161164d565b9050600061057e8560048189611623565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509293505050506001600160e01b0319821663086fe1cb60e31b0161065757600080600080848060200190518101906105e79190611e63565b93509350935093506105fa82848a610949565b915087925085848484846040516024016106179493929190611ebb565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152965061026995505050505050565b63ed55c35160e01b6001600160e01b03198316016106c957600080600080848060200190518101906106899190611f2d565b93509350935093506106a48360a0015184608001518a610949565b60a0840152608083018890526040518690610617908690869086908690602401612025565b6308723dad60e01b6001600160e01b0319831601610772576000806000806000858060200190518101906106fd91906120aa565b9450945094509450945061071282848b610949565b9150889250868585858585604051602401610731959493929190612122565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915297506102699650505050505050565b60405163a7dd6a9560e01b8152600160048201526001600160e01b03198316602482015260440161036f565b6060824710156107ff5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161036f565b6001600160a01b0385163b6108565760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161036f565b600080866001600160a01b0316858760405161087291906115df565b60006040518083038185875af1925050503d80600081146108af576040519150601f19603f3d011682016040523d82523d6000602084013e6108b4565b606091505b50915091506108c4828286610960565b979650505050505050565b81811615155b92915050565b6108e3611365565b60e08501516060908481036108fe5786869250925050610940565b83156109245761090f878287610999565b61091a878388610af8565b9250925050610940565b61092f878287610999565b61093a878388610c25565b92509250505b94509492505050565b600082610956838661215c565b6102669190612173565b6060831561096f575081610269565b82511561097f5782518084602001fd5b8160405162461bcd60e51b815260040161036f9190612187565b6109a1611365565b610100840151836109b2848361215c565b6109bc9190612173565b61010086015280158015906109d45750610100850151155b156109e25760016101008601525b60e085018390526040850151516000036109ff5784915050610269565b6000805b866040015151811015610aed576001876040015151610a22919061219a565b8103610a5957610a32828661219a565b87606001518281518110610a4857610a486121ad565b602002602001018181525050610ab0565b858588606001518381518110610a7157610a716121ad565b6020026020010151610a83919061215c565b610a8d9190612173565b87606001518281518110610aa357610aa36121ad565b6020026020010181815250505b86606001518181518110610ac657610ac66121ad565b602002602001015182610ad991906121c3565b915080610ae5816121d6565b915050610a03565b509495945050505050565b6060600084806020019051810190610b1091906122dd565b8051519091506000805b82811015610bf857610b2d60018461219a565b8103610b6457610b3d828761219a565b84602001518281518110610b5357610b536121ad565b602002602001018181525050610bbb565b868685602001518381518110610b7c57610b7c6121ad565b6020026020010151610b8e919061215c565b610b989190612173565b84602001518281518110610bae57610bae6121ad565b6020026020010181815250505b83602001518181518110610bd157610bd16121ad565b602002602001015182610be491906121c3565b915080610bf0816121d6565b915050610b1a565b5082604051602001610c0a91906123b0565b60405160208183030381529060405293505050509392505050565b6060600084806020019051810190610c3d91906125e9565b905083838260600151610c50919061215c565b610c5a9190612173565b606082015260005b815151811015610f2057600082600001518281518110610c8457610c846121ad565b6020026020010151600081518110610c9e57610c9e6121ad565b60209081029190910181015190810151909150630be1a7a360e21b6001600160e01b0319821601610cdd578151610cd6908888610f4b565b8252610f0b565b6301b966ef60e71b6001600160e01b0319821601610d02578151610cd6908888610f96565b633409dd2d60e01b6001600160e01b0319821601610d27578151610cd6908888610fe1565b63b6bb37eb60e01b6001600160e01b0319821601610d4c578151610cd6908888610f4b565b63617556cb60e01b6001600160e01b0319821601610d71578151610cd690888861102c565b6308c49cdf60e11b6001600160e01b0319821601610da15760405162461bcd60e51b815260040161036f906126c0565b635a2f8d7160e01b6001600160e01b0319821601610dc6578151610cd69088886110df565b6375a256f160e01b6001600160e01b0319821601610deb578151610cd6908888611174565b63a7c1a92960e01b6001600160e01b0319821601610e10578151610cd69088886111bf565b6360fabb9d60e01b6001600160e01b0319821601610e35578151610cd690888861122b565b63873c52e160e01b6001600160e01b0319821601610e5a578151610cd69088886112da565b630590bce960e11b6001600160e01b0319821601610e8a5760405162461bcd60e51b815260040161036f906126c0565b6310262a3d60e01b6001600160e01b0319821601610eaf578151610cd6908888610f4b565b60405162461bcd60e51b815260206004820152602b60248201527f4167677265676174696f6e4578656375746f723a204465782074797065206e6f60448201526a1d081cdd5c1c1bdc9d195960aa1b606482015260840161036f565b50508080610f18906121d6565b915050610c62565b5080604051602001610f32919061270a565b6040516020818303038152906040529150509392505050565b6060600084806020019051810190610f639190612858565b905083838260800151610f76919061215c565b610f809190612173565b6080820152604051610f32908290602001612900565b6060600084806020019051810190610fae91906129b4565b905083838260a00151610fc1919061215c565b610fcb9190612173565b60a0820152604051610f32908290602001612a5c565b6060600084806020019051810190610ff99190612b18565b905083838260a0015161100c919061215c565b6110169190612173565b60a0820152604051610f32908290602001612bb5565b60606000848060200190518101906110449190612c4f565b905083838260800151611057919061215c565b6110619190612173565b6080820152604051610f3290829060200160006101008201905060018060a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401526080840151608084015260a084015160a08401528060c08501511660c08401525060e0830151151560e083015292915050565b60606000848060200190518101906110f79190612ce9565b90508383826080015161110a919061215c565b6111149190612173565b6080820152604051610f3290829060200181516001600160a01b03908116825260208084015190830152604080840151821690830152606080840151909116908201526080808301519082015260a0918201519181019190915260c00190565b606060008480602001905181019061118c9190612d7a565b90508383826080015161119f919061215c565b6111a99190612173565b6080820152604051610f32908290602001612e04565b60606000848060200190518101906111d79190612e86565b9050838382602001516111ea919061215c565b6111f49190612173565b60208281019182526040805184516001600160a01b0316928101929092529151818301529082015115156060820152608001610f32565b60606000848060200190518101906112439190612eee565b905083838260800151611256919061215c565b6112609190612173565b6080820152604051610f3290829060200160006101008201905060018060a01b0380845116835280602085015116602084015280604085015116604084015250606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e0830151151560e083015292915050565b60606000848060200190518101906112f29190612f6e565b905083838260600151611305919061215c565b61130f9190612173565b6060820152604051610f3290829060200181516001600160a01b03908116825260208084015182169083015260408084015182169083015260608084015190830152608092830151169181019190915260a00190565b60405180610160016040528060006001600160a01b0316815260200160006001600160a01b031681526020016060815260200160608152602001606081526020016060815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b6001600160a01b03811681146113ef57600080fd5b50565b80356113fd816113da565b919050565b60008060006060848603121561141757600080fd5b8335611422816113da565b92506020840135915060408401356001600160401b0381111561144457600080fd5b84016080818703121561145657600080fd5b809150509250925092565b60006020828403121561147357600080fd5b8135610269816113da565b80151581146113ef57600080fd5b60006020828403121561149e57600080fd5b81356102698161147e565b6000808335601e198436030181126114c057600080fd5b8301803591506001600160401b038211156114da57600080fd5b6020019150368190038213156114ef57600080fd5b9250929050565b60006020828403121561150857600080fd5b81356004811061026957600080fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001600160601b038381168061155d5761155d611517565b92169190910492915050565b6001600160a01b03169052565b60006020828403121561158857600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052600160045260246000fd5b60005b838110156115d65781810151838201526020016115be565b50506000910152565b600082516115f18184602087016115bb565b9190910192915050565b80516113fd8161147e565b60006020828403121561161857600080fd5b81516102698161147e565b6000808585111561163357600080fd5b8386111561164057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156116755780818660040360031b1b83161692505b505092915050565b634e487b7160e01b600052604160045260246000fd5b60405161016081016001600160401b03811182821017156116b6576116b661167d565b60405290565b60405160a081016001600160401b03811182821017156116b6576116b661167d565b60405160e081016001600160401b03811182821017156116b6576116b661167d565b604080519081016001600160401b03811182821017156116b6576116b661167d565b60405161012081016001600160401b03811182821017156116b6576116b661167d565b60405161014081016001600160401b03811182821017156116b6576116b661167d565b60405161010081016001600160401b03811182821017156116b6576116b661167d565b604051601f8201601f191681016001600160401b03811182821017156117b3576117b361167d565b604052919050565b60006001600160401b038211156117d4576117d461167d565b50601f01601f191660200190565b600082601f8301126117f357600080fd5b8135611806611801826117bb565b61178b565b81815284602083860101111561181b57600080fd5b816020850160208301376000918101602001919091529392505050565b60006001600160401b038211156118515761185161167d565b5060051b60200190565b600082601f83011261186c57600080fd5b8135602061187c61180183611838565b82815260059290921b8401810191818101908684111561189b57600080fd5b8286015b848110156118bf5780356118b2816113da565b835291830191830161189f565b509695505050505050565b600082601f8301126118db57600080fd5b813560206118eb61180183611838565b82815260059290921b8401810191818101908684111561190a57600080fd5b8286015b848110156118bf578035835291830191830161190e565b6000610160828403121561193857600080fd5b611940611693565b905061194b826113f2565b8152611959602083016113f2565b602082015260408201356001600160401b038082111561197857600080fd5b6119848583860161185b565b6040840152606084013591508082111561199d57600080fd5b6119a9858386016118ca565b606084015260808401359150808211156119c257600080fd5b6119ce8583860161185b565b608084015260a08401359150808211156119e757600080fd5b6119f3858386016118ca565b60a0840152611a0460c085016113f2565b60c084015260e084810135908401526101008085013590840152610120808501359084015261014091508184013581811115611a3f57600080fd5b611a4b868287016117e2565b8385015250505092915050565b600060208284031215611a6a57600080fd5b81356001600160401b0380821115611a8157600080fd5b9083019060a08286031215611a9557600080fd5b611a9d6116bc565b611aa6836113f2565b8152611ab4602084016113f2565b6020820152604083013582811115611acb57600080fd5b611ad7878286016117e2565b604083015250606083013582811115611aef57600080fd5b611afb87828601611925565b606083015250608083013582811115611b1357600080fd5b611b1f878286016117e2565b60808301525095945050505050565b60008151808452611b468160208601602086016115bb565b601f01601f19169290920160200192915050565b600081518084526020808501945080840160005b83811015610aed5781516001600160a01b031687529582019590820190600101611b6e565b600081518084526020808501945080840160005b83811015610aed57815187529582019590820190600101611ba7565b6000610160611bd3848451611569565b6020830151611be56020860182611569565b506040830151816040860152611bfd82860182611b5a565b91505060608301518482036060860152611c178282611b93565b91505060808301518482036080860152611c318282611b5a565b91505060a083015184820360a0860152611c4b8282611b93565b91505060c0830151611c6060c0860182611569565b5060e08381015190850152610100808401519085015261012080840151908501526101408084015185830382870152611c998382611b2e565b9695505050505050565b60208152600060018060a01b0380845116602084015280602085015116604084015250604083015160a06060840152611cdf60c0840182611b2e565b90506060840151601f1980858403016080860152611cfd8383611bc3565b925060808601519150808584030160a086015250611d1b8282611b2e565b95945050505050565b60008060008060808587031215611d3a57600080fd5b8435611d45816113da565b935060208501356001600160401b0380821115611d6157600080fd5b611d6d88838901611925565b94506040870135915080821115611d8357600080fd5b611d8f888389016117e2565b93506060870135915080821115611da557600080fd5b50611db2878288016117e2565b91505092959194509250565b6001600160a01b0385168152608060208201819052600090611de290830186611bc3565b8281036040840152611df48186611b2e565b905082810360608401526108c48185611b2e565b600082601f830112611e1957600080fd5b81516020611e2961180183611838565b82815260059290921b84018101918181019086841115611e4857600080fd5b8286015b848110156118bf5780518352918301918301611e4c565b60008060008060808587031215611e7957600080fd5b8451611e84816113da565b60208601516040870151606088015192965090945092506001600160401b03811115611eaf57600080fd5b611db287828801611e08565b60018060a01b0385168152836020820152826040820152608060608201526000611c996080830184611b93565b600082601f830112611ef957600080fd5b8151611f07611801826117bb565b818152846020838601011115611f1c57600080fd5b6102388260208301602087016115bb565b600080600080848603610140811215611f4557600080fd5b8551611f50816113da565b945060e0601f1982011215611f6457600080fd5b50611f6d6116de565b6020860151611f7b816113da565b81526040860151611f8b816113da565b60208201526060860151611f9e816113da565b60408201526080860151611fb1816113da565b606082015260a086810151608083015260c0808801519183019190915260e0870151908201526101008601519093506001600160401b0380821115611ff557600080fd5b61200188838901611ee8565b935061012087015191508082111561201857600080fd5b50611db287828801611ee8565b600061014060018060a01b03808816845280875116602085015280602088015116604085015280604088015116606085015280606088015116608085015250608086015160a084015260a086015160c084015260c086015160e08401528061010084015261209581840186611b2e565b90508281036101208401526108c48185611b2e565b600080600080600060a086880312156120c257600080fd5b85516120cd816113da565b60208701519095506120de816113da565b60408701516060880151608089015192965090945092506001600160401b0381111561210957600080fd5b61211588828901611e08565b9150509295509295909350565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906108c490830184611b93565b80820281158282048414176108d5576108d561152d565b60008261218257612182611517565b500490565b6020815260006102696020830184611b2e565b818103818111156108d5576108d561152d565b634e487b7160e01b600052603260045260246000fd5b808201808211156108d5576108d561152d565b6000600182016121e8576121e861152d565b5060010190565b80516113fd816113da565b600082601f83011261220b57600080fd5b8151602061221b61180183611838565b82815260059290921b8401810191818101908684111561223a57600080fd5b8286015b848110156118bf578051612251816113da565b835291830191830161223e565b600082601f83011261226f57600080fd5b8151602061227f61180183611838565b82815260059290921b8401810191818101908684111561229e57600080fd5b8286015b848110156118bf5780516001600160401b038111156122c15760008081fd5b6122cf8986838b0101611ee8565b8452509183019183016122a2565b6000602082840312156122ef57600080fd5b81516001600160401b038082111561230657600080fd5b9083019060a0828603121561231a57600080fd5b6123226116bc565b82518281111561233157600080fd5b61233d878286016121fa565b82525060208301518281111561235257600080fd5b61235e87828601611e08565b60208301525060408301518281111561237657600080fd5b6123828782860161225e565b604083015250606083015160608201526080830151828111156123a457600080fd5b611b1f87828601611ee8565b60006020808352835160a0828501526123cc60c0850182611b5a565b905081850151601f19808684030160408701526123e98383611b93565b60408801518782038301606089015280518083529194508501925084840190600581901b8501860160005b82811015612440578487830301845261242e828751611b2e565b95880195938801939150600101612414565b5060608a015160808a015260808a01519650838982030160a08a01526124668188611b2e565b9a9950505050505050505050565b600082601f83011261248557600080fd5b815161249361180182611838565b808282526020820191508560208460051b87010111156124b257600080fd5b602085015b60208460051b8701018110156125df5780516001600160401b038111156124dd57600080fd5b8601603f810188136124ee57600080fd5b60208101516124ff61180182611838565b808282526020820191508a60408460051b860101111561251e57600080fd5b604084015b60408460051b8601018110156125c95780516001600160401b0381111561254957600080fd5b60408682018e03603f1901121561255f57600080fd5b612567611700565b868201604001516001600160401b0381111561258257600080fd5b6125938f604083868c010101611ee8565b82525090860160600151906001600160e01b0319821682146125b457600080fd5b60208181019290925284529283019201612523565b50865250506020938401939190910190506124b7565b5095945050505050565b6000602082840312156125fb57600080fd5b81516001600160401b038082111561261257600080fd5b9083019060e0828603121561262657600080fd5b61262e6116de565b82518281111561263d57600080fd5b61264987828601612474565b825250612658602084016121ef565b6020820152612669604084016121ef565b604082015260608301516060820152612684608084016121ef565b608082015260a083015160a082015260c0830151828111156126a557600080fd5b6126b187828601611ee8565b60c08301525095945050505050565b6020808252602a908201527f496e7075745363616c696e6748656c7065723a2043616e206e6f74207363616c6040820152690652052465120737761760b41b606082015260800190565b6020808252825160e0838301528051610100840181905260009291600582811b860161012090810193928501929087019186805b838110156127d25789870361011f1901855285518051808952908901908989019080861b8a018b01855b828110156127bc57601f198c830301845284516040815181855261278e82860182611b2e565b91505063ffffffff60e01b8f830151168f85015280935050508c850194508c84019350600181019050612768565b509950505095880195509387019360010161273e565b5050505050508185015191506127eb6040850183611569565b604085015191506127ff6060850183611569565b606085015160808501526080850151915061281d60a0850183611569565b60a085015160c085015260c08501519150601f198482030160e0850152611d1b8183611b2e565b805163ffffffff811681146113fd57600080fd5b6000610120828403121561286b57600080fd5b612873611722565b61287c836121ef565b815261288a602084016121ef565b602082015261289b604084016121ef565b60408201526128ac606084016121ef565b60608201526080830151608082015260a083015160a08201526128d160c08401612844565b60c08201526128e260e08401612844565b60e08201526101006128f5818501612844565b908201529392505050565b81516001600160a01b0390811682526020808401519091169082015260408083015161012083019161293490840182611569565b5060608301516129476060840182611569565b506080830151608083015260a083015160a083015260c083015161297360c084018263ffffffff169052565b5060e083015161298b60e084018263ffffffff169052565b506101008381015163ffffffff811684830152611675565b805160ff811681146113fd57600080fd5b600061014082840312156129c757600080fd5b6129cf611745565b6129d8836121ef565b81526129e6602084016121ef565b60208201526129f7604084016121ef565b6040820152612a08606084016129a3565b6060820152612a19608084016129a3565b608082015260a083015160a082015260c083015160c082015260e083015160e0820152610100612a4a8185016121ef565b908201526101206128f58482016115fb565b600061014082019050612a70828451611569565b6020830151612a826020840182611569565b506040830151612a956040840182611569565b506060830151612aaa606084018260ff169052565b506080830151612abf608084018260ff169052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151612af182850182611569565b50506101208381015180151584830152611675565b8051600f81900b81146113fd57600080fd5b60006101208284031215612b2b57600080fd5b612b33611722565b612b3c836121ef565b8152612b4a602084016121ef565b6020820152612b5b604084016121ef565b6040820152612b6c60608401612b06565b6060820152612b7d60808401612b06565b608082015260a083015160a082015260c083015160c0820152612ba260e084016115fb565b60e08201526101006128f58185016115fb565b81516001600160a01b03908116825260208084015190911690820152604080830151610120830191612be990840182611569565b506060830151612bfe6060840182600f0b9052565b506080830151612c136080840182600f0b9052565b5060a083015160a083015260c083015160c083015260e0830151612c3b60e084018215159052565b506101008381015180151584830152611675565b60006101008284031215612c6257600080fd5b612c6a611768565b8251612c75816113da565b81526020830151612c85816113da565b6020820152612c96604084016121ef565b6040820152612ca7606084016121ef565b60608201526080830151608082015260a083015160a0820152612ccc60c084016121ef565b60c0820152612cdd60e084016115fb565b60e08201529392505050565b600060c08284031215612cfb57600080fd5b60405160c081016001600160401b0381118282101715612d1d57612d1d61167d565b6040528251612d2b816113da565b8152602083810151908201526040830151612d45816113da565b60408201526060830151612d58816113da565b60608201526080838101519082015260a0928301519281019290925250919050565b60006101208284031215612d8d57600080fd5b612d95611722565b612d9e836121ef565b8152612dac602084016121ef565b6020820152612dbd604084016121ef565b6040820152612dce606084016121ef565b60608201526080830151608082015260a083015160a0820152612df360c084016121ef565b60c0820152612ba260e084016115fb565b81516001600160a01b03908116825260208084015190911690820152604080830151610120830191612e3890840182611569565b506060830151612e4b6060840182611569565b506080830151608083015260a083015160a083015260c0830151612e7260c0840182611569565b5060e0830151612c3b60e084018215159052565b600060608284031215612e9857600080fd5b604051606081016001600160401b0381118282101715612eba57612eba61167d565b6040528251612ec8816113da565b8152602083810151908201526040830151612ee28161147e565b60408201529392505050565b60006101008284031215612f0157600080fd5b612f09611768565b8251612f14816113da565b81526020830151612f24816113da565b6020820152612f35604084016121ef565b6040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c0820152612cdd60e084016115fb565b600060a08284031215612f8057600080fd5b60405160a081016001600160401b0381118282101715612fa257612fa261167d565b6040528251612fb0816113da565b81526020830151612fc0816113da565b60208201526040830151612fd3816113da565b6040820152606083810151908201526080830151612ff0816113da565b6080820152939250505056fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a26469706673582212204eff065f6d51033c03b4c0c5e01303bfa9dafdd147cbc6f651114823543daff364736f6c63430008110033",
74
74
  "linkReferences": {},
75
75
  "deployedLinkReferences": {}
76
76
  }
@@ -1,11 +1,11 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity 0.8.17;
3
3
 
4
- import "./base/PendleAuraBalancerStableLPSY.sol";
4
+ import "./base/PendleAuraBalancerStableLPSYV2.sol";
5
5
  import "../../../../interfaces/IWETH.sol";
6
6
  import "./base/MetaStable/MetaStablePreview.sol";
7
7
 
8
- contract PendleAuraWethAnkrethSY is PendleAuraBalancerStableLPSY {
8
+ contract PendleAuraWethAnkrethSYV2 is PendleAuraBalancerStableLPSYV2 {
9
9
  address internal constant ANKRETH = 0xE95A203B1a91a908F9B9CE46459d101078c2c3cb;
10
10
  address internal constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
11
11
 
@@ -16,12 +16,14 @@ contract PendleAuraWethAnkrethSY is PendleAuraBalancerStableLPSY {
16
16
  string memory _name,
17
17
  string memory _symbol,
18
18
  MetaStablePreview _previewHelper
19
- ) PendleAuraBalancerStableLPSY(_name, _symbol, LP, AURA_PID, _previewHelper) {}
19
+ ) PendleAuraBalancerStableLPSYV2(_name, _symbol, LP, AURA_PID, _previewHelper) {}
20
20
 
21
- function _deposit(
22
- address tokenIn,
23
- uint256 amount
24
- ) internal virtual override returns (uint256 amountSharesOut) {
21
+ function _deposit(address tokenIn, uint256 amount)
22
+ internal
23
+ virtual
24
+ override
25
+ returns (uint256 amountSharesOut)
26
+ {
25
27
  if (tokenIn == NATIVE) {
26
28
  IWETH(WETH).deposit{ value: amount }();
27
29
  amountSharesOut = super._deposit(WETH, amount);
@@ -45,10 +47,13 @@ contract PendleAuraWethAnkrethSY is PendleAuraBalancerStableLPSY {
45
47
  }
46
48
  }
47
49
 
48
- function _previewDeposit(
49
- address tokenIn,
50
- uint256 amountTokenToDeposit
51
- ) internal view virtual override returns (uint256 amountSharesOut) {
50
+ function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
51
+ internal
52
+ view
53
+ virtual
54
+ override
55
+ returns (uint256 amountSharesOut)
56
+ {
52
57
  if (tokenIn == NATIVE) {
53
58
  amountSharesOut = super._previewDeposit(WETH, amountTokenToDeposit);
54
59
  } else {
@@ -56,10 +61,13 @@ contract PendleAuraWethAnkrethSY is PendleAuraBalancerStableLPSY {
56
61
  }
57
62
  }
58
63
 
59
- function _previewRedeem(
60
- address tokenOut,
61
- uint256 amountSharesToRedeem
62
- ) internal view virtual override returns (uint256 amountTokenOut) {
64
+ function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
65
+ internal
66
+ view
67
+ virtual
68
+ override
69
+ returns (uint256 amountTokenOut)
70
+ {
63
71
  if (tokenOut == NATIVE) {
64
72
  amountTokenOut = super._previewRedeem(WETH, amountSharesToRedeem);
65
73
  } else {
@@ -1,13 +1,13 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
2
  pragma solidity 0.8.17;
3
3
 
4
- import "./base/PendleAuraBalancerStableLPSY.sol";
4
+ import "./base/PendleAuraBalancerStableLPSYV2.sol";
5
5
  import "../../../../interfaces/IWETH.sol";
6
6
  import "./base/MetaStable/MetaStablePreview.sol";
7
7
 
8
- contract PendleAuraWethRethSY is PendleAuraBalancerStableLPSY {
9
- address public constant RETH = 0xae78736Cd615f374D3085123A210448E74Fc6393;
10
- address public constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
8
+ contract PendleAuraWethRocketEthSYV2 is PendleAuraBalancerStableLPSYV2 {
9
+ address internal constant ROCKET_ETH = 0xae78736Cd615f374D3085123A210448E74Fc6393;
10
+ address internal constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
11
11
 
12
12
  uint256 internal constant AURA_PID = 15;
13
13
  address internal constant LP = 0x1E19CF2D73a72Ef1332C882F20534B6519Be0276;
@@ -16,12 +16,14 @@ contract PendleAuraWethRethSY is PendleAuraBalancerStableLPSY {
16
16
  string memory _name,
17
17
  string memory _symbol,
18
18
  MetaStablePreview _previewHelper
19
- ) PendleAuraBalancerStableLPSY(_name, _symbol, LP, AURA_PID, _previewHelper) {}
19
+ ) PendleAuraBalancerStableLPSYV2(_name, _symbol, LP, AURA_PID, _previewHelper) {}
20
20
 
21
- function _deposit(
22
- address tokenIn,
23
- uint256 amount
24
- ) internal virtual override returns (uint256 amountSharesOut) {
21
+ function _deposit(address tokenIn, uint256 amount)
22
+ internal
23
+ virtual
24
+ override
25
+ returns (uint256 amountSharesOut)
26
+ {
25
27
  if (tokenIn == NATIVE) {
26
28
  IWETH(WETH).deposit{ value: amount }();
27
29
  amountSharesOut = super._deposit(WETH, amount);
@@ -34,20 +36,24 @@ contract PendleAuraWethRethSY is PendleAuraBalancerStableLPSY {
34
36
  address receiver,
35
37
  address tokenOut,
36
38
  uint256 amountSharesToRedeem
37
- ) internal virtual override returns (uint256 amountTokenOut) {
39
+ ) internal virtual override returns (uint256) {
38
40
  if (tokenOut == NATIVE) {
39
- amountTokenOut = super._redeem(address(this), WETH, amountSharesToRedeem);
41
+ uint256 amountTokenOut = super._redeem(address(this), WETH, amountSharesToRedeem);
40
42
  IWETH(WETH).withdraw(amountTokenOut);
41
43
  _transferOut(NATIVE, receiver, amountTokenOut);
44
+ return amountTokenOut;
42
45
  } else {
43
- amountTokenOut = super._redeem(receiver, tokenOut, amountSharesToRedeem);
46
+ return super._redeem(receiver, tokenOut, amountSharesToRedeem);
44
47
  }
45
48
  }
46
49
 
47
- function _previewDeposit(
48
- address tokenIn,
49
- uint256 amountTokenToDeposit
50
- ) internal view virtual override returns (uint256 amountSharesOut) {
50
+ function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
51
+ internal
52
+ view
53
+ virtual
54
+ override
55
+ returns (uint256 amountSharesOut)
56
+ {
51
57
  if (tokenIn == NATIVE) {
52
58
  amountSharesOut = super._previewDeposit(WETH, amountTokenToDeposit);
53
59
  } else {
@@ -55,10 +61,13 @@ contract PendleAuraWethRethSY is PendleAuraBalancerStableLPSY {
55
61
  }
56
62
  }
57
63
 
58
- function _previewRedeem(
59
- address tokenOut,
60
- uint256 amountSharesToRedeem
61
- ) internal view virtual override returns (uint256 amountTokenOut) {
64
+ function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
65
+ internal
66
+ view
67
+ virtual
68
+ override
69
+ returns (uint256 amountTokenOut)
70
+ {
62
71
  if (tokenOut == NATIVE) {
63
72
  amountTokenOut = super._previewRedeem(WETH, amountSharesToRedeem);
64
73
  } else {
@@ -74,7 +83,7 @@ contract PendleAuraWethRethSY is PendleAuraBalancerStableLPSY {
74
83
  returns (address[] memory res)
75
84
  {
76
85
  res = new address[](2);
77
- res[0] = RETH;
86
+ res[0] = ROCKET_ETH;
78
87
  res[1] = WETH;
79
88
  }
80
89
 
@@ -103,7 +112,7 @@ contract PendleAuraWethRethSY is PendleAuraBalancerStableLPSY {
103
112
  function getTokensIn() public view virtual override returns (address[] memory res) {
104
113
  res = new address[](4);
105
114
  res[0] = LP;
106
- res[1] = RETH;
115
+ res[1] = ROCKET_ETH;
107
116
  res[2] = WETH;
108
117
  res[3] = NATIVE;
109
118
  }
@@ -111,16 +120,16 @@ contract PendleAuraWethRethSY is PendleAuraBalancerStableLPSY {
111
120
  function getTokensOut() public view virtual override returns (address[] memory res) {
112
121
  res = new address[](4);
113
122
  res[0] = LP;
114
- res[1] = RETH;
123
+ res[1] = ROCKET_ETH;
115
124
  res[2] = WETH;
116
125
  res[3] = NATIVE;
117
126
  }
118
127
 
119
128
  function isValidTokenIn(address token) public view virtual override returns (bool) {
120
- return (token == LP || token == RETH || token == WETH || token == NATIVE);
129
+ return (token == LP || token == ROCKET_ETH || token == WETH || token == NATIVE);
121
130
  }
122
131
 
123
132
  function isValidTokenOut(address token) public view virtual override returns (bool) {
124
- return (token == LP || token == RETH || token == WETH || token == NATIVE);
133
+ return (token == LP || token == ROCKET_ETH || token == WETH || token == NATIVE);
125
134
  }
126
135
  }
@@ -0,0 +1,135 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "./base/PendleAuraBalancerStableLPSYV2.sol";
5
+ import "../../../../interfaces/IWETH.sol";
6
+ import "./base/MetaStable/MetaStablePreview.sol";
7
+
8
+ contract PendleAuraWethStafiEthSY is PendleAuraBalancerStableLPSYV2 {
9
+ address internal constant STAFI_ETH = 0x9559Aaa82d9649C7A7b220E7c461d2E74c9a3593;
10
+ address internal constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
11
+
12
+ uint256 internal constant AURA_PID = 63;
13
+ address internal constant LP = 0xB08885e6026bab4333A80024Ec25a1a3e1FF2b8A;
14
+
15
+ constructor(
16
+ string memory _name,
17
+ string memory _symbol,
18
+ MetaStablePreview _previewHelper
19
+ ) PendleAuraBalancerStableLPSYV2(_name, _symbol, LP, AURA_PID, _previewHelper) {}
20
+
21
+ function _deposit(address tokenIn, uint256 amount)
22
+ internal
23
+ virtual
24
+ override
25
+ returns (uint256 amountSharesOut)
26
+ {
27
+ if (tokenIn == NATIVE) {
28
+ IWETH(WETH).deposit{ value: amount }();
29
+ amountSharesOut = super._deposit(WETH, amount);
30
+ } else {
31
+ amountSharesOut = super._deposit(tokenIn, amount);
32
+ }
33
+ }
34
+
35
+ function _redeem(
36
+ address receiver,
37
+ address tokenOut,
38
+ uint256 amountSharesToRedeem
39
+ ) internal virtual override returns (uint256) {
40
+ if (tokenOut == NATIVE) {
41
+ uint256 amountTokenOut = super._redeem(address(this), WETH, amountSharesToRedeem);
42
+ IWETH(WETH).withdraw(amountTokenOut);
43
+ _transferOut(NATIVE, receiver, amountTokenOut);
44
+ return amountTokenOut;
45
+ } else {
46
+ return super._redeem(receiver, tokenOut, amountSharesToRedeem);
47
+ }
48
+ }
49
+
50
+ function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
51
+ internal
52
+ view
53
+ virtual
54
+ override
55
+ returns (uint256 amountSharesOut)
56
+ {
57
+ if (tokenIn == NATIVE) {
58
+ amountSharesOut = super._previewDeposit(WETH, amountTokenToDeposit);
59
+ } else {
60
+ amountSharesOut = super._previewDeposit(tokenIn, amountTokenToDeposit);
61
+ }
62
+ }
63
+
64
+ function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
65
+ internal
66
+ view
67
+ virtual
68
+ override
69
+ returns (uint256 amountTokenOut)
70
+ {
71
+ if (tokenOut == NATIVE) {
72
+ amountTokenOut = super._previewRedeem(WETH, amountSharesToRedeem);
73
+ } else {
74
+ amountTokenOut = super._previewRedeem(tokenOut, amountSharesToRedeem);
75
+ }
76
+ }
77
+
78
+ function _getPoolTokenAddresses()
79
+ internal
80
+ view
81
+ virtual
82
+ override
83
+ returns (address[] memory res)
84
+ {
85
+ res = new address[](2);
86
+ res[0] = STAFI_ETH;
87
+ res[1] = WETH;
88
+ }
89
+
90
+ function _getRateProviders() internal view virtual returns (address[] memory res) {
91
+ res = new address[](2);
92
+ res[0] = 0x3D40f9dd83bd404fA4047c15da494E58C3c1f1ac;
93
+ res[1] = 0x0000000000000000000000000000000000000000;
94
+ }
95
+
96
+ function _getRawScalingFactors() internal view virtual returns (uint256[] memory res) {
97
+ res = new uint256[](2);
98
+ res[0] = 1e18;
99
+ res[1] = 1e18;
100
+ }
101
+
102
+ function _getImmutablePoolData() internal view virtual override returns (bytes memory) {
103
+ MetaStablePreview.ImmutableData memory res;
104
+ res.LP = LP;
105
+ res.poolTokens = _getPoolTokenAddresses();
106
+ res.rateProviders = _getRateProviders();
107
+ res.rawScalingFactors = _getRawScalingFactors();
108
+
109
+ return abi.encode(res);
110
+ }
111
+
112
+ function getTokensIn() public view virtual override returns (address[] memory res) {
113
+ res = new address[](4);
114
+ res[0] = LP;
115
+ res[1] = STAFI_ETH;
116
+ res[2] = WETH;
117
+ res[3] = NATIVE;
118
+ }
119
+
120
+ function getTokensOut() public view virtual override returns (address[] memory res) {
121
+ res = new address[](4);
122
+ res[0] = LP;
123
+ res[1] = STAFI_ETH;
124
+ res[2] = WETH;
125
+ res[3] = NATIVE;
126
+ }
127
+
128
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
129
+ return (token == LP || token == STAFI_ETH || token == WETH || token == NATIVE);
130
+ }
131
+
132
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
133
+ return (token == LP || token == STAFI_ETH || token == WETH || token == NATIVE);
134
+ }
135
+ }
@@ -2,11 +2,11 @@
2
2
  pragma solidity 0.8.17;
3
3
 
4
4
  import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
5
- import "./base/PendleAuraBalancerStableLPSY.sol";
5
+ import "./base/PendleAuraBalancerStableLPSYV2.sol";
6
6
  import "../../StEthHelper.sol";
7
7
  import "./base/MetaStable/MetaStablePreview.sol";
8
8
 
9
- contract PendleAuraWethWstethSY is PendleAuraBalancerStableLPSY, StEthHelper {
9
+ contract PendleAuraWethWstethSYV2 is PendleAuraBalancerStableLPSYV2, StEthHelper {
10
10
  uint256 internal constant AURA_PID = 29;
11
11
  address internal constant LP = 0x32296969Ef14EB0c6d29669C550D4a0449130230;
12
12
 
@@ -14,12 +14,14 @@ contract PendleAuraWethWstethSY is PendleAuraBalancerStableLPSY, StEthHelper {
14
14
  string memory _name,
15
15
  string memory _symbol,
16
16
  MetaStablePreview _previewHelper
17
- ) PendleAuraBalancerStableLPSY(_name, _symbol, LP, AURA_PID, _previewHelper) StEthHelper() {}
17
+ ) PendleAuraBalancerStableLPSYV2(_name, _symbol, LP, AURA_PID, _previewHelper) StEthHelper() {}
18
18
 
19
- function _deposit(
20
- address tokenIn,
21
- uint256 amount
22
- ) internal virtual override returns (uint256 amountSharesOut) {
19
+ function _deposit(address tokenIn, uint256 amount)
20
+ internal
21
+ virtual
22
+ override
23
+ returns (uint256 amountSharesOut)
24
+ {
23
25
  if (tokenIn == NATIVE) {
24
26
  IWETH(WETH).deposit{ value: amount }();
25
27
  amountSharesOut = super._deposit(WETH, amount);
@@ -48,10 +50,13 @@ contract PendleAuraWethWstethSY is PendleAuraBalancerStableLPSY, StEthHelper {
48
50
  }
49
51
  }
50
52
 
51
- function _previewDeposit(
52
- address tokenIn,
53
- uint256 amountTokenToDeposit
54
- ) internal view virtual override returns (uint256 amountSharesOut) {
53
+ function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
54
+ internal
55
+ view
56
+ virtual
57
+ override
58
+ returns (uint256 amountSharesOut)
59
+ {
55
60
  if (tokenIn == NATIVE) {
56
61
  amountSharesOut = super._previewDeposit(WETH, amountTokenToDeposit);
57
62
  } else if (tokenIn == STETH) {
@@ -62,10 +67,13 @@ contract PendleAuraWethWstethSY is PendleAuraBalancerStableLPSY, StEthHelper {
62
67
  }
63
68
  }
64
69
 
65
- function _previewRedeem(
66
- address tokenOut,
67
- uint256 amountSharesToRedeem
68
- ) internal view virtual override returns (uint256 amountTokenOut) {
70
+ function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
71
+ internal
72
+ view
73
+ virtual
74
+ override
75
+ returns (uint256 amountTokenOut)
76
+ {
69
77
  if (tokenOut == NATIVE) {
70
78
  amountTokenOut = super._previewRedeem(WETH, amountSharesToRedeem);
71
79
  } else if (tokenOut == STETH) {