@pendle/core-v2 2.17.7-tradingbot → 2.18.0-tradingbot

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 (216) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  19. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  20. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  21. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  22. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  23. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  24. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  25. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  26. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  27. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  28. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/TradingBot/BotActionCallback.sol/BotActionCallback.json +32 -17
  68. package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/TradingBot/BotActionHelper.sol/BotActionHelper.json +32 -17
  70. package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/TradingBot/BotSimulationLib.sol/BotSimulationLib.json +2 -2
  72. package/build/artifacts/contracts/core/TradingBot/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.dbg.json +4 -0
  73. package/build/artifacts/contracts/core/TradingBot/LongYieldDecisionHelper.sol/LongYieldDecisionHelper.json +1190 -0
  74. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/TradingBot/LongYieldTradingBot.sol/LongYieldTradingBot.json +301 -397
  76. package/build/artifacts/contracts/core/TradingBot/MarketExtLib.sol/MarketExtLib.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/TradingBot/SpecSegmentLib.sol/SpecSegmentLib.dbg.json +4 -0
  78. package/build/artifacts/contracts/core/TradingBot/SpecSegmentLib.sol/SpecSegmentLib.json +10 -0
  79. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/TradingBot/TradingBotBase.sol/TradingBotBase.json +32 -17
  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/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  84. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  90. package/build/artifacts/contracts/core/libraries/TokenAmountLib.sol/TokenAmountLib.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
  96. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
  97. package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  101. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  102. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.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/IPGauge.sol/IPGauge.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/TradingBot/IBotDecisionHelper.sol/IBotDecisionHelper.json +542 -581
  119. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol/ILongYieldTradingBot.json +256 -325
  121. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/TradingBot/ITradingBotBase.sol/ITradingBotBase.json +6 -17
  123. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  124. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  125. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  126. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  127. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  128. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  129. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  130. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  131. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  132. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  133. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  134. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  135. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  136. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  137. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  138. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  139. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
  140. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  141. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  142. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  143. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  144. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  145. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  146. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  147. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  148. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  149. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  150. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  151. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  152. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  153. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  154. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  155. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +1 -1
  156. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IHashflow.sol/IHashflow.dbg.json +1 -1
  157. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  158. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +1 -1
  159. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +1 -1
  160. package/contracts/core/TradingBot/BotActionCallback.sol +1 -1
  161. package/contracts/core/TradingBot/BotActionHelper.sol +1 -3
  162. package/contracts/core/TradingBot/BotSimulationLib.sol +2 -1
  163. package/contracts/core/TradingBot/LongYieldDecisionHelper.sol +413 -0
  164. package/contracts/core/TradingBot/LongYieldTradingBot.sol +63 -91
  165. package/contracts/core/TradingBot/SpecSegmentLib.sol +62 -0
  166. package/contracts/core/TradingBot/TradingBotBase.sol +14 -9
  167. package/contracts/interfaces/TradingBot/IBotDecisionHelper.sol +41 -57
  168. package/contracts/interfaces/TradingBot/ILongYieldTradingBot.sol +24 -34
  169. package/contracts/interfaces/TradingBot/ITradingBotBase.sol +1 -3
  170. package/package.json +1 -1
  171. package/typechain-types/BotActionCallback.ts +40 -22
  172. package/typechain-types/BotActionHelper.ts +40 -22
  173. package/typechain-types/BotDecisionHelper.ts +221 -187
  174. package/typechain-types/IAnkrBNB.ts +150 -0
  175. package/typechain-types/IAnkrLiquidStaking.ts +253 -0
  176. package/typechain-types/IBotDecisionHelper.ts +142 -212
  177. package/typechain-types/ILongYieldTradingBot.ts +147 -230
  178. package/typechain-types/ISwETH.ts +123 -0
  179. package/typechain-types/ITradingBotBase.ts +14 -22
  180. package/typechain-types/LongYieldDecisionHelper.ts +598 -0
  181. package/typechain-types/LongYieldTradingBot.ts +191 -248
  182. package/typechain-types/PendleAnkrBNBSY.ts +1235 -0
  183. package/typechain-types/PendleAuraWstethAnkreth.ts +1511 -0
  184. package/typechain-types/PendleSwETH.ts +1216 -0
  185. package/typechain-types/PendleThenaSY.ts +153 -0
  186. package/typechain-types/PendleWbEthSY.ts +1229 -0
  187. package/typechain-types/ThenaLpHelper.ts +19 -0
  188. package/typechain-types/ThenaMath.ts +87 -0
  189. package/typechain-types/ThenaPreview.ts +19 -0
  190. package/typechain-types/TradingBotBase.ts +40 -22
  191. package/typechain-types/factories/BotActionCallback__factory.ts +31 -16
  192. package/typechain-types/factories/BotActionHelper__factory.ts +31 -16
  193. package/typechain-types/factories/BotDecisionHelper__factory.ts +490 -421
  194. package/typechain-types/factories/IAnkrBNB__factory.ts +74 -0
  195. package/typechain-types/factories/IAnkrLiquidStaking__factory.ts +123 -0
  196. package/typechain-types/factories/IBotDecisionHelper__factory.ts +540 -579
  197. package/typechain-types/factories/ILongYieldTradingBot__factory.ts +255 -324
  198. package/typechain-types/factories/ISwETH__factory.ts +53 -0
  199. package/typechain-types/factories/ITradingBotBase__factory.ts +6 -17
  200. package/typechain-types/factories/LongYieldDecisionHelper__factory.ts +1247 -0
  201. package/typechain-types/factories/LongYieldTradingBot__factory.ts +301 -393
  202. package/typechain-types/factories/PendleAnkrBNBSY__factory.ts +1100 -0
  203. package/typechain-types/factories/PendleAuraWstethAnkreth__factory.ts +1244 -0
  204. package/typechain-types/factories/PendleSwETH__factory.ts +1022 -0
  205. package/typechain-types/factories/PendleThenaSY__factory.ts +85 -1
  206. package/typechain-types/factories/PendleWbEthSY__factory.ts +1049 -0
  207. package/typechain-types/factories/PtAndLpToAsset__factory.ts +1 -1
  208. package/typechain-types/factories/ThenaLpHelper__factory.ts +13 -0
  209. package/typechain-types/factories/ThenaMath__factory.ts +36 -0
  210. package/typechain-types/factories/ThenaPreview__factory.ts +14 -1
  211. package/typechain-types/factories/TradingBotBase__factory.ts +31 -16
  212. package/typechain-types/hardhat.d.ts +4 -40
  213. package/typechain-types/index.ts +2 -10
  214. package/build/artifacts/contracts/core/TradingBot/BotDecisionHelper.sol/BotDecisionHelper.dbg.json +0 -4
  215. package/build/artifacts/contracts/core/TradingBot/BotDecisionHelper.sol/BotDecisionHelper.json +0 -1070
  216. package/contracts/core/TradingBot/BotDecisionHelper.sol +0 -306
@@ -1,1070 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "BotDecisionHelper",
4
- "sourceName": "contracts/core/TradingBot/BotDecisionHelper.sol",
5
- "abi": [
6
- {
7
- "inputs": [],
8
- "name": "ApproxFail",
9
- "type": "error"
10
- },
11
- {
12
- "inputs": [
13
- {
14
- "internalType": "uint256",
15
- "name": "guessMin",
16
- "type": "uint256"
17
- },
18
- {
19
- "internalType": "uint256",
20
- "name": "guessMax",
21
- "type": "uint256"
22
- },
23
- {
24
- "internalType": "uint256",
25
- "name": "eps",
26
- "type": "uint256"
27
- }
28
- ],
29
- "name": "ApproxParamsInvalid",
30
- "type": "error"
31
- },
32
- {
33
- "inputs": [],
34
- "name": "BotBinarySearchFail",
35
- "type": "error"
36
- },
37
- {
38
- "inputs": [
39
- {
40
- "internalType": "uint256",
41
- "name": "action",
42
- "type": "uint256"
43
- },
44
- {
45
- "internalType": "uint256",
46
- "name": "guessMin",
47
- "type": "uint256"
48
- }
49
- ],
50
- "name": "BotBinarySearchGuessMinInvalid",
51
- "type": "error"
52
- },
53
- {
54
- "inputs": [
55
- {
56
- "internalType": "uint256",
57
- "name": "action",
58
- "type": "uint256"
59
- },
60
- {
61
- "internalType": "uint256",
62
- "name": "guessMin",
63
- "type": "uint256"
64
- },
65
- {
66
- "internalType": "uint256",
67
- "name": "guessMax",
68
- "type": "uint256"
69
- }
70
- ],
71
- "name": "BotBinarySearchInvalidRange",
72
- "type": "error"
73
- },
74
- {
75
- "inputs": [
76
- {
77
- "internalType": "int256",
78
- "name": "exchangeRate",
79
- "type": "int256"
80
- }
81
- ],
82
- "name": "MarketExchangeRateBelowOne",
83
- "type": "error"
84
- },
85
- {
86
- "inputs": [],
87
- "name": "MarketExpired",
88
- "type": "error"
89
- },
90
- {
91
- "inputs": [
92
- {
93
- "internalType": "int256",
94
- "name": "currentAmount",
95
- "type": "int256"
96
- },
97
- {
98
- "internalType": "int256",
99
- "name": "requiredAmount",
100
- "type": "int256"
101
- }
102
- ],
103
- "name": "MarketInsufficientPtForTrade",
104
- "type": "error"
105
- },
106
- {
107
- "inputs": [],
108
- "name": "MarketProportionMustNotEqualOne",
109
- "type": "error"
110
- },
111
- {
112
- "inputs": [
113
- {
114
- "internalType": "int256",
115
- "name": "proportion",
116
- "type": "int256"
117
- },
118
- {
119
- "internalType": "int256",
120
- "name": "maxProportion",
121
- "type": "int256"
122
- }
123
- ],
124
- "name": "MarketProportionTooHigh",
125
- "type": "error"
126
- },
127
- {
128
- "inputs": [
129
- {
130
- "internalType": "int256",
131
- "name": "rateScalar",
132
- "type": "int256"
133
- }
134
- ],
135
- "name": "MarketRateScalarBelowZero",
136
- "type": "error"
137
- },
138
- {
139
- "inputs": [],
140
- "name": "MarketZeroLnImpliedRate",
141
- "type": "error"
142
- },
143
- {
144
- "inputs": [
145
- {
146
- "internalType": "int256",
147
- "name": "totalPt",
148
- "type": "int256"
149
- },
150
- {
151
- "internalType": "int256",
152
- "name": "totalAsset",
153
- "type": "int256"
154
- }
155
- ],
156
- "name": "MarketZeroTotalPtOrTotalAsset",
157
- "type": "error"
158
- },
159
- {
160
- "inputs": [
161
- {
162
- "components": [
163
- {
164
- "internalType": "uint256",
165
- "name": "lpBalance",
166
- "type": "uint256"
167
- },
168
- {
169
- "internalType": "uint256",
170
- "name": "ytBalance",
171
- "type": "uint256"
172
- },
173
- {
174
- "internalType": "uint256",
175
- "name": "syBalance",
176
- "type": "uint256"
177
- }
178
- ],
179
- "internalType": "struct BotState",
180
- "name": "botState",
181
- "type": "tuple"
182
- },
183
- {
184
- "components": [
185
- {
186
- "internalType": "enum StrategyFlag",
187
- "name": "iyFlag",
188
- "type": "uint8"
189
- },
190
- {
191
- "internalType": "enum StrategyFlag",
192
- "name": "syRatioFlag",
193
- "type": "uint8"
194
- }
195
- ],
196
- "internalType": "struct StrategyState",
197
- "name": "currentState",
198
- "type": "tuple"
199
- }
200
- ],
201
- "name": "actionToTake",
202
- "outputs": [
203
- {
204
- "internalType": "enum ActionType",
205
- "name": "",
206
- "type": "uint8"
207
- }
208
- ],
209
- "stateMutability": "pure",
210
- "type": "function"
211
- },
212
- {
213
- "inputs": [
214
- {
215
- "components": [
216
- {
217
- "internalType": "uint256",
218
- "name": "lpBalance",
219
- "type": "uint256"
220
- },
221
- {
222
- "internalType": "uint256",
223
- "name": "ytBalance",
224
- "type": "uint256"
225
- },
226
- {
227
- "internalType": "uint256",
228
- "name": "syBalance",
229
- "type": "uint256"
230
- }
231
- ],
232
- "internalType": "struct BotState",
233
- "name": "bot",
234
- "type": "tuple"
235
- },
236
- {
237
- "components": [
238
- {
239
- "components": [
240
- {
241
- "internalType": "int256",
242
- "name": "totalPt",
243
- "type": "int256"
244
- },
245
- {
246
- "internalType": "int256",
247
- "name": "totalSy",
248
- "type": "int256"
249
- },
250
- {
251
- "internalType": "int256",
252
- "name": "totalLp",
253
- "type": "int256"
254
- },
255
- {
256
- "internalType": "address",
257
- "name": "treasury",
258
- "type": "address"
259
- },
260
- {
261
- "internalType": "int256",
262
- "name": "scalarRoot",
263
- "type": "int256"
264
- },
265
- {
266
- "internalType": "uint256",
267
- "name": "expiry",
268
- "type": "uint256"
269
- },
270
- {
271
- "internalType": "uint256",
272
- "name": "lnFeeRateRoot",
273
- "type": "uint256"
274
- },
275
- {
276
- "internalType": "uint256",
277
- "name": "reserveFeePercent",
278
- "type": "uint256"
279
- },
280
- {
281
- "internalType": "uint256",
282
- "name": "lastLnImpliedRate",
283
- "type": "uint256"
284
- }
285
- ],
286
- "internalType": "struct MarketState",
287
- "name": "state",
288
- "type": "tuple"
289
- },
290
- {
291
- "internalType": "PYIndex",
292
- "name": "index",
293
- "type": "uint256"
294
- },
295
- {
296
- "internalType": "uint256",
297
- "name": "blockTime",
298
- "type": "uint256"
299
- }
300
- ],
301
- "internalType": "struct MarketExtState",
302
- "name": "marketExt",
303
- "type": "tuple"
304
- }
305
- ],
306
- "name": "botExtStats",
307
- "outputs": [
308
- {
309
- "internalType": "uint256",
310
- "name": "tvlInSy",
311
- "type": "uint256"
312
- },
313
- {
314
- "internalType": "uint256",
315
- "name": "iy",
316
- "type": "uint256"
317
- },
318
- {
319
- "internalType": "uint256",
320
- "name": "currentSyRatio",
321
- "type": "uint256"
322
- },
323
- {
324
- "internalType": "uint256",
325
- "name": "currentYtPtRatio",
326
- "type": "uint256"
327
- }
328
- ],
329
- "stateMutability": "pure",
330
- "type": "function"
331
- },
332
- {
333
- "inputs": [
334
- {
335
- "components": [
336
- {
337
- "internalType": "uint256",
338
- "name": "lpBalance",
339
- "type": "uint256"
340
- },
341
- {
342
- "internalType": "uint256",
343
- "name": "ytBalance",
344
- "type": "uint256"
345
- },
346
- {
347
- "internalType": "uint256",
348
- "name": "syBalance",
349
- "type": "uint256"
350
- }
351
- ],
352
- "internalType": "struct BotState",
353
- "name": "botData",
354
- "type": "tuple"
355
- },
356
- {
357
- "components": [
358
- {
359
- "components": [
360
- {
361
- "internalType": "int256",
362
- "name": "totalPt",
363
- "type": "int256"
364
- },
365
- {
366
- "internalType": "int256",
367
- "name": "totalSy",
368
- "type": "int256"
369
- },
370
- {
371
- "internalType": "int256",
372
- "name": "totalLp",
373
- "type": "int256"
374
- },
375
- {
376
- "internalType": "address",
377
- "name": "treasury",
378
- "type": "address"
379
- },
380
- {
381
- "internalType": "int256",
382
- "name": "scalarRoot",
383
- "type": "int256"
384
- },
385
- {
386
- "internalType": "uint256",
387
- "name": "expiry",
388
- "type": "uint256"
389
- },
390
- {
391
- "internalType": "uint256",
392
- "name": "lnFeeRateRoot",
393
- "type": "uint256"
394
- },
395
- {
396
- "internalType": "uint256",
397
- "name": "reserveFeePercent",
398
- "type": "uint256"
399
- },
400
- {
401
- "internalType": "uint256",
402
- "name": "lastLnImpliedRate",
403
- "type": "uint256"
404
- }
405
- ],
406
- "internalType": "struct MarketState",
407
- "name": "state",
408
- "type": "tuple"
409
- },
410
- {
411
- "internalType": "PYIndex",
412
- "name": "index",
413
- "type": "uint256"
414
- },
415
- {
416
- "internalType": "uint256",
417
- "name": "blockTime",
418
- "type": "uint256"
419
- }
420
- ],
421
- "internalType": "struct MarketExtState",
422
- "name": "marketExtData",
423
- "type": "tuple"
424
- },
425
- {
426
- "internalType": "enum ActionType",
427
- "name": "action",
428
- "type": "uint8"
429
- },
430
- {
431
- "internalType": "uint256",
432
- "name": "botParam",
433
- "type": "uint256"
434
- },
435
- {
436
- "components": [
437
- {
438
- "internalType": "uint256",
439
- "name": "guessMin",
440
- "type": "uint256"
441
- },
442
- {
443
- "internalType": "uint256",
444
- "name": "guessMax",
445
- "type": "uint256"
446
- },
447
- {
448
- "internalType": "uint256",
449
- "name": "guessOffchain",
450
- "type": "uint256"
451
- },
452
- {
453
- "internalType": "uint256",
454
- "name": "maxIteration",
455
- "type": "uint256"
456
- },
457
- {
458
- "internalType": "uint256",
459
- "name": "eps",
460
- "type": "uint256"
461
- }
462
- ],
463
- "internalType": "struct ApproxParams",
464
- "name": "swapApproxParams",
465
- "type": "tuple"
466
- }
467
- ],
468
- "name": "previewAction",
469
- "outputs": [
470
- {
471
- "internalType": "bool",
472
- "name": "success",
473
- "type": "bool"
474
- },
475
- {
476
- "components": [
477
- {
478
- "internalType": "uint256",
479
- "name": "lpBalance",
480
- "type": "uint256"
481
- },
482
- {
483
- "internalType": "uint256",
484
- "name": "ytBalance",
485
- "type": "uint256"
486
- },
487
- {
488
- "internalType": "uint256",
489
- "name": "syBalance",
490
- "type": "uint256"
491
- }
492
- ],
493
- "internalType": "struct BotState",
494
- "name": "bot",
495
- "type": "tuple"
496
- },
497
- {
498
- "components": [
499
- {
500
- "components": [
501
- {
502
- "internalType": "int256",
503
- "name": "totalPt",
504
- "type": "int256"
505
- },
506
- {
507
- "internalType": "int256",
508
- "name": "totalSy",
509
- "type": "int256"
510
- },
511
- {
512
- "internalType": "int256",
513
- "name": "totalLp",
514
- "type": "int256"
515
- },
516
- {
517
- "internalType": "address",
518
- "name": "treasury",
519
- "type": "address"
520
- },
521
- {
522
- "internalType": "int256",
523
- "name": "scalarRoot",
524
- "type": "int256"
525
- },
526
- {
527
- "internalType": "uint256",
528
- "name": "expiry",
529
- "type": "uint256"
530
- },
531
- {
532
- "internalType": "uint256",
533
- "name": "lnFeeRateRoot",
534
- "type": "uint256"
535
- },
536
- {
537
- "internalType": "uint256",
538
- "name": "reserveFeePercent",
539
- "type": "uint256"
540
- },
541
- {
542
- "internalType": "uint256",
543
- "name": "lastLnImpliedRate",
544
- "type": "uint256"
545
- }
546
- ],
547
- "internalType": "struct MarketState",
548
- "name": "state",
549
- "type": "tuple"
550
- },
551
- {
552
- "internalType": "PYIndex",
553
- "name": "index",
554
- "type": "uint256"
555
- },
556
- {
557
- "internalType": "uint256",
558
- "name": "blockTime",
559
- "type": "uint256"
560
- }
561
- ],
562
- "internalType": "struct MarketExtState",
563
- "name": "marketExt",
564
- "type": "tuple"
565
- }
566
- ],
567
- "stateMutability": "pure",
568
- "type": "function"
569
- },
570
- {
571
- "inputs": [
572
- {
573
- "components": [
574
- {
575
- "internalType": "uint256",
576
- "name": "lpBalance",
577
- "type": "uint256"
578
- },
579
- {
580
- "internalType": "uint256",
581
- "name": "ytBalance",
582
- "type": "uint256"
583
- },
584
- {
585
- "internalType": "uint256",
586
- "name": "syBalance",
587
- "type": "uint256"
588
- }
589
- ],
590
- "internalType": "struct BotState",
591
- "name": "bot",
592
- "type": "tuple"
593
- },
594
- {
595
- "components": [
596
- {
597
- "components": [
598
- {
599
- "internalType": "int256",
600
- "name": "totalPt",
601
- "type": "int256"
602
- },
603
- {
604
- "internalType": "int256",
605
- "name": "totalSy",
606
- "type": "int256"
607
- },
608
- {
609
- "internalType": "int256",
610
- "name": "totalLp",
611
- "type": "int256"
612
- },
613
- {
614
- "internalType": "address",
615
- "name": "treasury",
616
- "type": "address"
617
- },
618
- {
619
- "internalType": "int256",
620
- "name": "scalarRoot",
621
- "type": "int256"
622
- },
623
- {
624
- "internalType": "uint256",
625
- "name": "expiry",
626
- "type": "uint256"
627
- },
628
- {
629
- "internalType": "uint256",
630
- "name": "lnFeeRateRoot",
631
- "type": "uint256"
632
- },
633
- {
634
- "internalType": "uint256",
635
- "name": "reserveFeePercent",
636
- "type": "uint256"
637
- },
638
- {
639
- "internalType": "uint256",
640
- "name": "lastLnImpliedRate",
641
- "type": "uint256"
642
- }
643
- ],
644
- "internalType": "struct MarketState",
645
- "name": "state",
646
- "type": "tuple"
647
- },
648
- {
649
- "internalType": "PYIndex",
650
- "name": "index",
651
- "type": "uint256"
652
- },
653
- {
654
- "internalType": "uint256",
655
- "name": "blockTime",
656
- "type": "uint256"
657
- }
658
- ],
659
- "internalType": "struct MarketExtState",
660
- "name": "marketExt",
661
- "type": "tuple"
662
- },
663
- {
664
- "components": [
665
- {
666
- "internalType": "uint256",
667
- "name": "lowerIyLimit",
668
- "type": "uint256"
669
- },
670
- {
671
- "internalType": "uint256",
672
- "name": "upperIyLimit",
673
- "type": "uint256"
674
- },
675
- {
676
- "internalType": "uint256",
677
- "name": "floatingSyRatioLimit",
678
- "type": "uint256"
679
- },
680
- {
681
- "internalType": "uint256",
682
- "name": "floatingSyRatioTarget",
683
- "type": "uint256"
684
- },
685
- {
686
- "internalType": "uint256",
687
- "name": "ytPtRatioLimit",
688
- "type": "uint256"
689
- },
690
- {
691
- "internalType": "uint256",
692
- "name": "ytPtRatioTarget",
693
- "type": "uint256"
694
- }
695
- ],
696
- "internalType": "struct LongTradingSpecs",
697
- "name": "specs",
698
- "type": "tuple"
699
- },
700
- {
701
- "internalType": "enum ActionType",
702
- "name": "action",
703
- "type": "uint8"
704
- },
705
- {
706
- "components": [
707
- {
708
- "internalType": "uint256",
709
- "name": "guessMin",
710
- "type": "uint256"
711
- },
712
- {
713
- "internalType": "uint256",
714
- "name": "guessMax",
715
- "type": "uint256"
716
- },
717
- {
718
- "internalType": "uint256",
719
- "name": "guessOffchain",
720
- "type": "uint256"
721
- },
722
- {
723
- "internalType": "uint256",
724
- "name": "maxIteration",
725
- "type": "uint256"
726
- },
727
- {
728
- "internalType": "uint256",
729
- "name": "eps",
730
- "type": "uint256"
731
- }
732
- ],
733
- "internalType": "struct ApproxParams",
734
- "name": "botParams",
735
- "type": "tuple"
736
- },
737
- {
738
- "components": [
739
- {
740
- "internalType": "uint256",
741
- "name": "guessMin",
742
- "type": "uint256"
743
- },
744
- {
745
- "internalType": "uint256",
746
- "name": "guessMax",
747
- "type": "uint256"
748
- },
749
- {
750
- "internalType": "uint256",
751
- "name": "guessOffchain",
752
- "type": "uint256"
753
- },
754
- {
755
- "internalType": "uint256",
756
- "name": "maxIteration",
757
- "type": "uint256"
758
- },
759
- {
760
- "internalType": "uint256",
761
- "name": "eps",
762
- "type": "uint256"
763
- }
764
- ],
765
- "internalType": "struct ApproxParams",
766
- "name": "intParams",
767
- "type": "tuple"
768
- }
769
- ],
770
- "name": "searchForBotParam",
771
- "outputs": [
772
- {
773
- "internalType": "uint256",
774
- "name": "",
775
- "type": "uint256"
776
- },
777
- {
778
- "internalType": "enum IBotDecisionHelper.RebalanceResult",
779
- "name": "",
780
- "type": "uint8"
781
- }
782
- ],
783
- "stateMutability": "pure",
784
- "type": "function"
785
- },
786
- {
787
- "inputs": [
788
- {
789
- "components": [
790
- {
791
- "components": [
792
- {
793
- "internalType": "int256",
794
- "name": "totalPt",
795
- "type": "int256"
796
- },
797
- {
798
- "internalType": "int256",
799
- "name": "totalSy",
800
- "type": "int256"
801
- },
802
- {
803
- "internalType": "int256",
804
- "name": "totalLp",
805
- "type": "int256"
806
- },
807
- {
808
- "internalType": "address",
809
- "name": "treasury",
810
- "type": "address"
811
- },
812
- {
813
- "internalType": "int256",
814
- "name": "scalarRoot",
815
- "type": "int256"
816
- },
817
- {
818
- "internalType": "uint256",
819
- "name": "expiry",
820
- "type": "uint256"
821
- },
822
- {
823
- "internalType": "uint256",
824
- "name": "lnFeeRateRoot",
825
- "type": "uint256"
826
- },
827
- {
828
- "internalType": "uint256",
829
- "name": "reserveFeePercent",
830
- "type": "uint256"
831
- },
832
- {
833
- "internalType": "uint256",
834
- "name": "lastLnImpliedRate",
835
- "type": "uint256"
836
- }
837
- ],
838
- "internalType": "struct MarketState",
839
- "name": "state",
840
- "type": "tuple"
841
- },
842
- {
843
- "internalType": "PYIndex",
844
- "name": "index",
845
- "type": "uint256"
846
- },
847
- {
848
- "internalType": "uint256",
849
- "name": "blockTime",
850
- "type": "uint256"
851
- }
852
- ],
853
- "internalType": "struct MarketExtState",
854
- "name": "marketExt",
855
- "type": "tuple"
856
- },
857
- {
858
- "internalType": "enum ActionType",
859
- "name": "action",
860
- "type": "uint8"
861
- },
862
- {
863
- "internalType": "uint256",
864
- "name": "botParam",
865
- "type": "uint256"
866
- },
867
- {
868
- "components": [
869
- {
870
- "internalType": "uint256",
871
- "name": "guessMin",
872
- "type": "uint256"
873
- },
874
- {
875
- "internalType": "uint256",
876
- "name": "guessMax",
877
- "type": "uint256"
878
- },
879
- {
880
- "internalType": "uint256",
881
- "name": "guessOffchain",
882
- "type": "uint256"
883
- },
884
- {
885
- "internalType": "uint256",
886
- "name": "maxIteration",
887
- "type": "uint256"
888
- },
889
- {
890
- "internalType": "uint256",
891
- "name": "eps",
892
- "type": "uint256"
893
- }
894
- ],
895
- "internalType": "struct ApproxParams",
896
- "name": "intParams",
897
- "type": "tuple"
898
- }
899
- ],
900
- "name": "searchForIntParam",
901
- "outputs": [
902
- {
903
- "internalType": "uint256",
904
- "name": "",
905
- "type": "uint256"
906
- }
907
- ],
908
- "stateMutability": "pure",
909
- "type": "function"
910
- },
911
- {
912
- "inputs": [
913
- {
914
- "components": [
915
- {
916
- "internalType": "uint256",
917
- "name": "lpBalance",
918
- "type": "uint256"
919
- },
920
- {
921
- "internalType": "uint256",
922
- "name": "ytBalance",
923
- "type": "uint256"
924
- },
925
- {
926
- "internalType": "uint256",
927
- "name": "syBalance",
928
- "type": "uint256"
929
- }
930
- ],
931
- "internalType": "struct BotState",
932
- "name": "bot",
933
- "type": "tuple"
934
- },
935
- {
936
- "components": [
937
- {
938
- "components": [
939
- {
940
- "internalType": "int256",
941
- "name": "totalPt",
942
- "type": "int256"
943
- },
944
- {
945
- "internalType": "int256",
946
- "name": "totalSy",
947
- "type": "int256"
948
- },
949
- {
950
- "internalType": "int256",
951
- "name": "totalLp",
952
- "type": "int256"
953
- },
954
- {
955
- "internalType": "address",
956
- "name": "treasury",
957
- "type": "address"
958
- },
959
- {
960
- "internalType": "int256",
961
- "name": "scalarRoot",
962
- "type": "int256"
963
- },
964
- {
965
- "internalType": "uint256",
966
- "name": "expiry",
967
- "type": "uint256"
968
- },
969
- {
970
- "internalType": "uint256",
971
- "name": "lnFeeRateRoot",
972
- "type": "uint256"
973
- },
974
- {
975
- "internalType": "uint256",
976
- "name": "reserveFeePercent",
977
- "type": "uint256"
978
- },
979
- {
980
- "internalType": "uint256",
981
- "name": "lastLnImpliedRate",
982
- "type": "uint256"
983
- }
984
- ],
985
- "internalType": "struct MarketState",
986
- "name": "state",
987
- "type": "tuple"
988
- },
989
- {
990
- "internalType": "PYIndex",
991
- "name": "index",
992
- "type": "uint256"
993
- },
994
- {
995
- "internalType": "uint256",
996
- "name": "blockTime",
997
- "type": "uint256"
998
- }
999
- ],
1000
- "internalType": "struct MarketExtState",
1001
- "name": "marketExt",
1002
- "type": "tuple"
1003
- },
1004
- {
1005
- "components": [
1006
- {
1007
- "internalType": "uint256",
1008
- "name": "lowerIyLimit",
1009
- "type": "uint256"
1010
- },
1011
- {
1012
- "internalType": "uint256",
1013
- "name": "upperIyLimit",
1014
- "type": "uint256"
1015
- },
1016
- {
1017
- "internalType": "uint256",
1018
- "name": "floatingSyRatioLimit",
1019
- "type": "uint256"
1020
- },
1021
- {
1022
- "internalType": "uint256",
1023
- "name": "floatingSyRatioTarget",
1024
- "type": "uint256"
1025
- },
1026
- {
1027
- "internalType": "uint256",
1028
- "name": "ytPtRatioLimit",
1029
- "type": "uint256"
1030
- },
1031
- {
1032
- "internalType": "uint256",
1033
- "name": "ytPtRatioTarget",
1034
- "type": "uint256"
1035
- }
1036
- ],
1037
- "internalType": "struct LongTradingSpecs",
1038
- "name": "specs",
1039
- "type": "tuple"
1040
- }
1041
- ],
1042
- "name": "strategyState",
1043
- "outputs": [
1044
- {
1045
- "components": [
1046
- {
1047
- "internalType": "enum StrategyFlag",
1048
- "name": "iyFlag",
1049
- "type": "uint8"
1050
- },
1051
- {
1052
- "internalType": "enum StrategyFlag",
1053
- "name": "syRatioFlag",
1054
- "type": "uint8"
1055
- }
1056
- ],
1057
- "internalType": "struct StrategyState",
1058
- "name": "currentState",
1059
- "type": "tuple"
1060
- }
1061
- ],
1062
- "stateMutability": "pure",
1063
- "type": "function"
1064
- }
1065
- ],
1066
- "bytecode": "0x608060405234801561001057600080fd5b506135e2806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063124fdedb1461006757806333cace2a1461013e578063675ea12b1461015e578063896d88d31461017f578063914185af1461019f578063b3a332eb146101c0575b600080fd5b61007a6100753660046130c5565b6101f3565b6040516101359392919060006101e0820190508415158252835160208301526020840151604083015260408401516060830152825180516080840152602081015160a0840152604081015160c084015260018060a01b0360608201511660e08401526080810151610100818186015260a083015161012086015260c083015161014086015260e08301516101608601528083015161018086015250505060208301516101a083015260408301516101c0830152949350505050565b60405180910390f35b61015161014c366004613139565b6102e7565b60405161013591906131df565b61017161016c3660046131f9565b610407565b604051908152602001610135565b61019261018d3660046132d3565b61044f565b604051610135919061332b565b6101b26101ad366004613358565b6104f6565b6040516101359291906133d6565b6101d36101ce3660046133f3565b610802565b604080519485526020850193909352918301526060820152608001610135565b60006101fd612e30565b610205612e51565b61020e88610876565b9150610219876108a2565b9050600086600581111561022f5761022f6131c9565b036102465761023f8282876108e0565b92506102dc565b600186600581111561025a5761025a6131c9565b0361026a5761023f82828761093e565b600286600581111561027e5761027e6131c9565b0361028e5761023f8282876109b1565b60038660058111156102a2576102a26131c9565b036102b25761023f828287610a00565b60048660058111156102c6576102c66131c9565b036102d75761023f82828787610a3b565b600092505b955095509592505050565b60006001825160028111156102fe576102fe6131c9565b036103555760028260200151600281111561031b5761031b6131c9565b0361033c57826040015160000361033457506005610401565b506000610401565b825160000361034d57506005610401565b506004610401565b60008251600281111561036a5761036a6131c9565b036103b057600282602001516002811115610387576103876131c9565b036103a85782604001516000036103a057506005610401565b506001610401565b506005610401565b6002826020015160028111156103c8576103c86131c9565b036103e95782604001516000036103e157506005610401565b506002610401565b82602001516000036103fd57506005610401565b5060035b92915050565b6000600484600581111561041d5761041d6131c9565b036104435760006104398484610432896108a2565b9190610a71565b9250610447915050565b5060005b949350505050565b604080518082019091526000808252602082015260008060006104728787610802565b9350935093505084600001518310156104a4578360015b9081600281111561049c5761049c6131c9565b9052506104cc565b8285602001511080156104ba5750846080015181115b156104c757836002610489565b600084525b84604001518211156104e457600260208501526104ec565b600060208501525b5050509392505050565b600080600060405180608001604052808a815260200189815260200188815260200187600581111561052a5761052a6131c9565b90526040860151909150156105c45760006105618660800151670de0b6b3a7640000610556919061343f565b604088015190610b0e565b9050600161057483886040015188610b31565b6002811115610585576105856131c9565b1480156105ad5750600261059a838388610b31565b60028111156105ab576105ab6131c9565b145b156105c25750505050604082015160016107f7565b505b60006105d18a8a89610b99565b905080866020015111156105e757602086018190525b60208601518651111561063257866005811115610606576106066131c9565b8651602088015160405163f25ccea360e01b815261062993929190600401613452565b60405180910390fd5b600261064383886020015188610b31565b6002811115610654576106546131c9565b036106695750505050602082015160026107f7565b50600061067b82876000015187610b31565b90506000816002811115610691576106916131c9565b036106c5578660058111156106a8576106a86131c9565b8651604051630cf4fb5360e31b8152610629929190600401613468565b60018160028111156106d9576106d96131c9565b036106ed57505083519150600190506107f7565b5060005b85606001518110156107dd576000600287600001518860200151610715919061343f565b61071f919061348c565b875161072b91906134a0565b9050600261073a848389610b31565b600281111561074b5761074b6131c9565b0361075857808752610760565b602087018190525b610777876000015188602001518960800151610c54565b156107cc57600061078d84896000015189610b31565b600281111561079e5761079e6131c9565b036107bc5786516107b0848289610b31565b945094505050506107f7565b60208701516107b0848289610b31565b506107d6816134b3565b90506106f1565b5060405163fef33c9d60e01b815260040160405180910390fd5b965096945050505050565b60008080806108118686610c87565b935061081c85610d60565b604087015190935061082e9085610dad565b915060006108498760000151610843886108a2565b90610dd3565b91505080156108665760208701516108619082610dad565b61086a565b6000195b91505092959194509250565b61087e612e30565b50604080516060810182528251815260208084015190820152918101519082015290565b6108aa612e51565b60405180606001604052806108c28460000151610e8a565b81526020018360200151815260200183604001518152509050919050565b6000806108ed8484610f07565b90508460400151811115610905576000915050610937565b8085604001818151610917919061343f565b90525060208501805184919061092e9083906134a0565b90525060019150505b9392505050565b6000836040015182111561095457506000610937565b6000806109618585610f57565b915091508386604001818151610977919061343f565b90525085518290879061098b9083906134a0565b9052506020860180518291906109a29083906134a0565b90525060019695505050505050565b600080806109bf8585610fe3565b9150915085604001518111156109da57600092505050610937565b80866040018181516109ec919061343f565b9052508551829087906109a29083906134a0565b60008080610a0e8585611066565b915091508560200151811115610a2957600092505050610937565b80866020018181516109ec919061343f565b8351600090831115610a4f57506000610447565b6000610a5c858585610a71565b509050838660000181815161098b919061343f565b600080600080610a818787610dd3565b915091506000610a9e83896020015161116a90919063ffffffff16565b90506000610aac82846134a0565b90506000610ad28a60200151838c60400151610ac78c611176565b8e51939291906111ea565b5060208c015160408d01518d51929950929350610af0928990611300565b5050508083610aff91906134a0565b96505050505050935093915050565b600080610b1b83856134cc565b9050670de0b6b3a7640000815b04949350505050565b600080600080610b5087600001518860200151896060015189896101f3565b92509250925082610b675760009350505050610937565b610b7b828289604001518a60600151611351565b15610b8c5760019350505050610937565b5060029695505050505050565b600080826005811115610bae57610bae6131c9565b03610bc357610bbc8361149d565b9050610937565b6001826005811115610bd757610bd76131c9565b03610be757506040830151610937565b6002826005811115610bfb57610bfb6131c9565b03610c0957610bbc836114d8565b6003826005811115610c1d57610c1d6131c9565b03610c2b57610bbc836114d8565b6004826005811115610c3f57610c3f6131c9565b03610c4c57508251610937565b506000610937565b60008284111580156104475750610c7c83610c7784670de0b6b3a764000061343f565b610b0e565b841015949350505050565b600080610c93836108a2565b9050600080610caf866000015184610dd390919063ffffffff16565b915091506000828760400151610cc591906134a0565b905086602001518211610d1357610cdc84836114fe565b610ce690826134a0565b9050610d02828860200151610cfb919061343f565b8590611510565b610d0c90826134a0565b9050610d56565b6020870151610d239085906114fe565b610d2d90826134a0565b9050610d49876020015183610d42919061343f565b859061156b565b610d5390826134a0565b90505b9695505050505050565b6000670de0b6b3a7640000610da3610d948460400151856000015160a00151610d89919061343f565b6301e1338090610dad565b610d9d8561158f565b906115dc565b610401919061343f565b600080610dc2670de0b6b3a7640000856134cc565b9050828181610b2857610b28613476565b6000806000610de184611785565b85516040810151602090910151919250600091610dfe90846134e3565b610e089190613513565b865160408101519051919250600091610e2190856134e3565b610e2b9190613513565b875160400151909150610e3e908461179f565b875160400152865151610e51908261179f565b875152865160200151610e64908361179f565b875160200152610e73826117e6565b610e7c826117e6565b945094505050509250929050565b610e92612e78565b60405180610120016040528083600001518152602001836020015181526020018360400151815260200183606001516001600160a01b03168152602001836080015181526020018360a0015181526020018360c0015181526020018360e0015181526020018361010001518152509050919050565b6020820151604083015183516000928392610f259291908690611300565b505090506000610f428486602001516117f590919063ffffffff16565b9050610f4e8183611801565b95945050505050565b6000806000610f7b610f708660000151602001516117e6565b60208701519061116a565b855151610f87906117e6565b610f9191906134a0565b855151610f9d906117e6565b610fa790866134cc565b610fb1919061348c565b6020860151909150610fc3908261116a565b9150610fd985610fd3838761343f565b84611818565b9250509250929050565b600080600061100b856020015185876040015188600001516119ee909392919063ffffffff16565b505085515190915060009061101f906117e6565b86516020015161102e906117e6565b61103890876134cc565b611042919061348c565b905061104f868287611818565b935061105b81836134a0565b925050509250929050565b600080600061108e856020015185876040015188600001516119ee909392919063ffffffff16565b5050602086015190915060006110a482846134cc565b6110b6670de0b6b3a7640000886134cc565b6110c0919061343f565b8751519091506000906110d2906117e6565b836110e48a60000151602001516117e6565b6110ee91906134cc565b6110f8919061348c565b61110a90670de0b6b3a76400006134a0565b90506000611118828461348c565b9050611124818961343f565b9550600061113f878b60200151611a1c90919063ffffffff16565b9050600061114d878361343f565b905061115a8b8285611818565b9850505050505050509250929050565b60006109378383611a28565b6111a86040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052808360000151815260200183602001518152602001836040015181526020018360600151815260200183608001518152509050919050565b60008080806111fa898988611a47565b9050846040015160000361123c5784516112149088611b41565b8552602085015161122e906112298b84611b57565b611bdb565b602086015261123c85611bea565b60005b85606001518110156112e65760006112578783611c38565b90506000806112688d868e86611ca4565b509092509050600061127a8d8461116a565b90506000611288828661343f565b90508c81116112bf576112a0818e8d60800151610c54565b156112b7575097509195509093506102dc92505050565b848b526112d0565b6112ca60018661343f565b60208c01525b5050505050806112df906134b3565b905061123f565b50604051637d388ed960e11b815260040160405180910390fd5b60008060008060008061131d8a8a6113178b611cd5565b8a611cec565b92509250925061132c836117e6565b9550611337826117e6565b9450611342816117e6565b93505050509450945094915050565b60008060028460200151856000015161136a91906134a0565b611374919061348c565b905060008060006113858989610802565b91955093509150600090508660058111156113a2576113a26131c9565b036113c55783831015806113ba575086606001518211155b945050505050610447565b60018660058111156113d9576113d96131c9565b036113f1578660600151821115945050505050610447565b6002866005811115611405576114056131c9565b0361143657838311158061141d575086606001518211155b806113ba57508660a00151811115945050505050610447565b600386600581111561144a5761144a6131c9565b0361146c5783831115806113ba57508660a00151811115945050505050610447565b6004866005811115611480576114806131c9565b0361149057505010159050610447565b6001945050505050610447565b805160208201516040830151600092600a926114c3926114be918391611a47565b611b57565b6114ce9060096134cc565b610401919061348c565b602081015160408201518251600092610401926114f6929190611a47565b835151611d7f565b60208201516000906109379083611a1c565b602082015160408301518351600092839261152e92919086906119ee565b50509050600061154b828660200151611e1e90919063ffffffff16565b90506000611559828661343f565b6020870151909150610d569082611a1c565b602082015160408301518351600092611585928590611300565b5090949350505050565b60208101516040820151825160009283926115ab929190611a47565b905060006115d18460000151600001518360200151846000015185604001516000611e2b565b9050610447816117e6565b6000816000036115f55750670de0b6b3a7640000610401565b8260000361160557506000610401565b600160ff1b831061164a5760405162461bcd60e51b815260206004820152600f60248201526e78206f7574206f6620626f756e647360881b6044820152606401610629565b82770bce5086492111aea88f4bb1ca6bcf584181ea8059f7653283106116a45760405162461bcd60e51b815260206004820152600f60248201526e79206f7574206f6620626f756e647360881b6044820152606401610629565b826000670c7d713b49da0000831380156116c55750670f43fc2c04ee000083125b156116fc5760006116d584611edc565b9050670de0b6b3a764000080820784020583670de0b6b3a76400008305020191505061170a565b8161170684611ffb565b0290505b670de0b6b3a76400009005680238fd42c5cf03ffff198112801590611738575068070c1cc73b00c800008113155b61177c5760405162461bcd60e51b815260206004820152601560248201527470726f64756374206f7574206f6620626f756e647360581b6044820152606401610629565b610d568161239e565b60006001600160ff1b0382111561179b57600080fd5b5090565b6000818312156117dc5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610629565b6109378284613541565b60008082121561179b57600080fd5b600061093783836127b3565b600081831015611812576000610937565b50900390565b825160a001516040840151600091116118725760405162461bcd60e51b815260206004820152601c60248201527b13585c9ad95d115e1d131a588e88195e1c1a5c9959081b585c9ad95d60221b6044820152606401610629565b8351604001516000126118be5760405162461bcd60e51b815260206004820152601460248201527304d61726b65744578744c69623a204c50203c20360641b6044820152606401610629565b60006118c984611785565b905060006118d684611785565b90506000806000808960000151600001518a6000015160400151866118fb91906134e3565b6119059190613513565b8a51602081015160409091015191925060009161192290896134e3565b61192c9190613513565b905080821215611967578a51604081015160209091015192955086945085926119569084906134e3565b6119609190613513565b9250611990565b8a516040810151905191955087935085916119839083906134e3565b61198d9190613513565b93505b828b600001516020018181516119a69190613568565b9052508a5180518591906119bb908390613568565b9052508a5160400180518691906119d3908390613568565b9052506119df856117e6565b9b9a5050505050505050505050565b600080600080600080611a058a8a6113178b611785565b92509250925061132c611a17846127df565b6117e6565b600061093783836127ed565b6000670de0b6b3a7640000611a3d84846134cc565b610937919061348c565b611a726040518060800160405280600081526020016000815260200160008152602001600081525090565b60a08401518210611a965760405163b2094b5960e01b815260040160405180910390fd5b6000828560a00151611aa8919061343f565b9050611ab48582612802565b82526020850151611ac6908590612863565b602083015284511580611adb57506020820151155b15611b02578451602083015160405163b1c4aefb60e01b8152610629929190600401613468565b611b208560000151866101000151846020015185600001518561289a565b604083015260c0850151611b34908261291b565b6060830152509392505050565b6000818311611b505781610937565b5090919050565b60008060009050600060018460200151611b71919061343f565b90505b808214611bd35760006002611b8983856134a0565b611b949060016134a0565b611b9e919061348c565b90506000611bb18688600001518461294f565b1215611bc957611bc260018261343f565b9150611bcd565b8092505b50611b74565b509392505050565b6000818310611b505781610937565b602081015181511180611c085750670de0b6b3a76400008160800151115b15611c3557805160208201516080830151604051632cc06bc160e21b815261062993929190600401613452565b50565b600081158015611c4b5750604083015115155b15611c5b57506040820151610401565b6020830151835111611c8b5760208301518351600291611c7a916134a0565b611c84919061348c565b9050610401565b604051637d388ed960e11b815260040160405180910390fd5b60008080808080611cc28989611cb98a613590565b8d929190612a41565b919c909b50909950975050505050505050565b6000611ce082611785565b610401906000196134e3565b6000806000611cff8760a0015185101590565b15611d1d5760405163b2094b5960e01b815260040160405180910390fd5b86518512611d43578651604051632185509b60e21b815261062991908790600401613468565b6000611d50888887611a47565b9050611d5e88828989612a41565b91955093509150611d748882898988878b612b95565b509450945094915050565b600080611dac611da7856000015186604001518760600151611da19190613541565b90612c27565b61239e565b90506000611dcc611dc5670de0b6b3a764000084613568565b8390612c4a565b90506000611dea866020015186611de39190613568565b8390612c27565b90506000611df88287613541565b90506103e8611e09826103e76134cc565b611e13919061348c565b979650505050505050565b6000826104478184612c70565b600080611e38878461179f565b90506000611e49611dc5888a613568565b9050670d529ae9e8600000811315611e805780670d529ae9e8600000604051637e34684f60e11b8152600401610629929190613468565b6000611e8b82612c88565b905085611e988289612c4a565b611ea29190613568565b9350670de0b6b3a7640000841215611ed05760405163329e322960e21b815260048101859052602401610629565b50505095945050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281611f1d57611f1d613476565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561203c57612033826a0c097ce7bc90715b34b9f160241b8161202d5761202d613476565b05611ffb565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126120875772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126120be576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612106576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612141576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261217857693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126121af57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126121e45768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261220f57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612244576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612279576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126122ad576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126122e1576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161230a5761230a613476565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000680238fd42c5cf03ffff1982121580156123c3575068070c1cc73b00c800008213155b6124025760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610629565b600082121561243a576124178260000361239e565b6a0c097ce7bc90715b34b9f160241b8161243357612433613476565b0592915050565b60006806f05b59d3b2000000831261247857506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6124ae565b6803782dace9d900000083126124aa57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806124ae565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126124fe5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261253a576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261257457682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126125ae576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126125e757680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126126205768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612659576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126126925768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000826001816127cb670de0b6b3a7640000866134cc565b6127d591906134a0565b611a3d919061343f565b6000610401826000196134e3565b600082611a3d670de0b6b3a7640000846134cc565b600061280d82611785565b61282461281f6201518061016d6134cc565b611785565b846080015161283391906134e3565b61283d9190613513565b90506000811361040157604051630e520c3b60e11b815260048101829052602401610629565b60008060008312612875576001612879565b6000195b905061289061281f8561288b86612cdb565b611a28565b61044790826134e3565b6000806128a7868461291b565b9050670de0b6b3a76400008112156128d55760405163329e322960e21b815260048101829052602401610629565b60006128eb6128e4878a613568565b8990612c4a565b905060006128f882612c88565b90506129048187612c4a565b61290e9084613541565b9998505050505050505050565b60008061292d6201518061016d6134cc565b61293784866134cc565b612941919061348c565b9050610447611da782611785565b6000808285602001516129629190613541565b905060006129708585613568565b90506000821380156129825750600081135b6129c35760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610629565b60006129f16129d284846134e3565b60208901516129e19089613568565b6129eb90886134e3565b90612c4a565b90506000612a07612a028486612c4a565b612cf2565b8851909150600090612a2290670de0b6b3a764000090612c4a565b9050612a3281611da18486613541565b896040015161290e9190613541565b600080600080612a648860000151886020015189600001518a6040015189611e2b565b90506000612a7a612a758784612c4a565b6127df565b60608901519091506000871315612ae9576000612a978483612c4a565b9050670de0b6b3a7640000811215612ac55760405163329e322960e21b815260048101829052602401610629565b612ae1612ada83670de0b6b3a7640000613541565b8490612c27565b915050612b16565b612b1381612aff81670de0b6b3a7640000613541565b612b0990856134e3565b612a759190613513565b90505b60006064612b278c60e00151611785565b612b3190846134e3565b612b3b9190613513565b90506000612b498385613541565b905060008112612b6257612b5d8a82612d83565b612b6c565b612b6c8a82612db0565b9750612b788a84612d83565b9650612b848a83612d83565b955050505050509450945094915050565b6000818860a00151612ba7919061343f565b8851909150612bb6908661179f565b8852612bd0612bc58486613568565b60208a01519061179f565b602089018190528851612bf591612be8908990612863565b895160408b015185612ddd565b6101008901819052600003612c1d57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b600080612c3483856134e3565b9050670de0b6b3a7640000815b05949350505050565b600080612c5f670de0b6b3a7640000856134e3565b9050828181612c4157612c41613476565b6000670de0b6b3a76400006001816127cb86866134cc565b6000670de0b6b3a76400008203612cb25760405163a9c8b14d60e01b815260040160405180910390fd5b6000612cd0612cc984670de0b6b3a7640000613541565b8490612c4a565b905061093781612cf2565b600080821361179b57612ced82613590565b610401565b6000808213612d335760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610629565b670c7d713b49da000082138015612d515750670f43fc2c04ee000082125b15612d7557670de0b6b3a7640000612d6883611edc565b8161243357612433613476565b61040182611ffb565b919050565b60008060008312612d95576001612d99565b6000195b905061289061281f85612dab86612cdb565b6127ed565b60008060008312612dc2576001612dc6565b6000195b905061289061281f85612dd886612cdb565b6127b3565b600080612dee878787876000611e2b565b90506000612dfe611a1783612cf2565b905083612e106201518061016d6134cc565b612e1a90836134cc565b612e24919061348c565b98975050505050505050565b60405180606001604052806000815260200160008152602001600081525090565b6040518060600160405280612e64612e78565b815260200160008152602001600081525090565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051606081016001600160401b0381118282101715612efd57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612efd57634e487b7160e01b600052604160045260246000fd5b600060608284031215612f4657600080fd5b612f4e612ecd565b905081358152602082013560208201526040820135604082015292915050565b80356001600160a01b0381168114612d7e57600080fd5b6000818303610160811215612f9957600080fd5b612fa1612ecd565b915061012080821215612fb357600080fd5b612fbb612f03565b9150833582526020840135602083015260408401356040830152612fe160608501612f6e565b60608301526080840135608083015260a084013560a083015260c084013560c083015260e084013560e08301526101008085013581840152508183528084013560208401525050610140820135604082015292915050565b803560068110612d7e57600080fd5b600060a0828403121561305a57600080fd5b60405160a081016001600160401b038111828210171561308a57634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b60008060008060006102a086880312156130de57600080fd5b6130e88787612f34565b94506130f78760608801612f85565b93506131066101c08701613039565b92506101e0860135915061311e876102008801613048565b90509295509295909350565b803560038110612d7e57600080fd5b60008082840360a081121561314d57600080fd5b6131578585612f34565b92506040605f198201121561316b57600080fd5b50604080519081016001600160401b038111828210171561319c57634e487b7160e01b600052604160045260246000fd5b6040526131ab6060850161312a565b81526131b96080850161312a565b6020820152809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600683106131f3576131f36131c9565b91905290565b600080600080610240858703121561321057600080fd5b61321a8686612f85565b93506132296101608601613039565b92506101808501359150613241866101a08701613048565b905092959194509250565b600060c0828403121561325e57600080fd5b60405160c081016001600160401b038111828210171561328e57634e487b7160e01b600052604160045260246000fd5b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201525092915050565b600080600061028084860312156132e957600080fd5b6132f38585612f34565b92506133028560608601612f85565b9150613312856101c0860161324c565b90509250925092565b60038110611c3557611c356131c9565b8151604082019061333b8161331b565b8252602083015161334b8161331b565b8060208401525092915050565b6000806000806000806103e0878903121561337257600080fd5b61337c8888612f34565b955061338b8860608901612f85565b945061339b886101c0890161324c565b93506133aa6102808801613039565b92506133ba886102a08901613048565b91506133ca886103408901613048565b90509295509295509295565b828152604081016133e68361331b565b8260208301529392505050565b6000806101c0838503121561340757600080fd5b6134118484612f34565b91506134208460608501612f85565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561040157610401613429565b9283526020830191909152604082015260600190565b918252602082015260400190565b634e487b7160e01b600052601260045260246000fd5b60008261349b5761349b613476565b500490565b8082018082111561040157610401613429565b6000600182016134c5576134c5613429565b5060010190565b808202811582820484141761040157610401613429565b80820260008212600160ff1b841416156134ff576134ff613429565b818105831482151761040157610401613429565b60008261352257613522613476565b600160ff1b82146000198414161561353c5761353c613429565b500590565b818103600083128015838313168383128216171561356157613561613429565b5092915050565b808201828112600083128015821682158216171561358857613588613429565b505092915050565b6000600160ff1b82016135a5576135a5613429565b506000039056fea2646970667358221220ac9ca2b8ff0c6b372d5d03bdc3a20671c07c3a53f062c1972d206973a5bf6cb864736f6c63430008110033",
1067
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063124fdedb1461006757806333cace2a1461013e578063675ea12b1461015e578063896d88d31461017f578063914185af1461019f578063b3a332eb146101c0575b600080fd5b61007a6100753660046130c5565b6101f3565b6040516101359392919060006101e0820190508415158252835160208301526020840151604083015260408401516060830152825180516080840152602081015160a0840152604081015160c084015260018060a01b0360608201511660e08401526080810151610100818186015260a083015161012086015260c083015161014086015260e08301516101608601528083015161018086015250505060208301516101a083015260408301516101c0830152949350505050565b60405180910390f35b61015161014c366004613139565b6102e7565b60405161013591906131df565b61017161016c3660046131f9565b610407565b604051908152602001610135565b61019261018d3660046132d3565b61044f565b604051610135919061332b565b6101b26101ad366004613358565b6104f6565b6040516101359291906133d6565b6101d36101ce3660046133f3565b610802565b604080519485526020850193909352918301526060820152608001610135565b60006101fd612e30565b610205612e51565b61020e88610876565b9150610219876108a2565b9050600086600581111561022f5761022f6131c9565b036102465761023f8282876108e0565b92506102dc565b600186600581111561025a5761025a6131c9565b0361026a5761023f82828761093e565b600286600581111561027e5761027e6131c9565b0361028e5761023f8282876109b1565b60038660058111156102a2576102a26131c9565b036102b25761023f828287610a00565b60048660058111156102c6576102c66131c9565b036102d75761023f82828787610a3b565b600092505b955095509592505050565b60006001825160028111156102fe576102fe6131c9565b036103555760028260200151600281111561031b5761031b6131c9565b0361033c57826040015160000361033457506005610401565b506000610401565b825160000361034d57506005610401565b506004610401565b60008251600281111561036a5761036a6131c9565b036103b057600282602001516002811115610387576103876131c9565b036103a85782604001516000036103a057506005610401565b506001610401565b506005610401565b6002826020015160028111156103c8576103c86131c9565b036103e95782604001516000036103e157506005610401565b506002610401565b82602001516000036103fd57506005610401565b5060035b92915050565b6000600484600581111561041d5761041d6131c9565b036104435760006104398484610432896108a2565b9190610a71565b9250610447915050565b5060005b949350505050565b604080518082019091526000808252602082015260008060006104728787610802565b9350935093505084600001518310156104a4578360015b9081600281111561049c5761049c6131c9565b9052506104cc565b8285602001511080156104ba5750846080015181115b156104c757836002610489565b600084525b84604001518211156104e457600260208501526104ec565b600060208501525b5050509392505050565b600080600060405180608001604052808a815260200189815260200188815260200187600581111561052a5761052a6131c9565b90526040860151909150156105c45760006105618660800151670de0b6b3a7640000610556919061343f565b604088015190610b0e565b9050600161057483886040015188610b31565b6002811115610585576105856131c9565b1480156105ad5750600261059a838388610b31565b60028111156105ab576105ab6131c9565b145b156105c25750505050604082015160016107f7565b505b60006105d18a8a89610b99565b905080866020015111156105e757602086018190525b60208601518651111561063257866005811115610606576106066131c9565b8651602088015160405163f25ccea360e01b815261062993929190600401613452565b60405180910390fd5b600261064383886020015188610b31565b6002811115610654576106546131c9565b036106695750505050602082015160026107f7565b50600061067b82876000015187610b31565b90506000816002811115610691576106916131c9565b036106c5578660058111156106a8576106a86131c9565b8651604051630cf4fb5360e31b8152610629929190600401613468565b60018160028111156106d9576106d96131c9565b036106ed57505083519150600190506107f7565b5060005b85606001518110156107dd576000600287600001518860200151610715919061343f565b61071f919061348c565b875161072b91906134a0565b9050600261073a848389610b31565b600281111561074b5761074b6131c9565b0361075857808752610760565b602087018190525b610777876000015188602001518960800151610c54565b156107cc57600061078d84896000015189610b31565b600281111561079e5761079e6131c9565b036107bc5786516107b0848289610b31565b945094505050506107f7565b60208701516107b0848289610b31565b506107d6816134b3565b90506106f1565b5060405163fef33c9d60e01b815260040160405180910390fd5b965096945050505050565b60008080806108118686610c87565b935061081c85610d60565b604087015190935061082e9085610dad565b915060006108498760000151610843886108a2565b90610dd3565b91505080156108665760208701516108619082610dad565b61086a565b6000195b91505092959194509250565b61087e612e30565b50604080516060810182528251815260208084015190820152918101519082015290565b6108aa612e51565b60405180606001604052806108c28460000151610e8a565b81526020018360200151815260200183604001518152509050919050565b6000806108ed8484610f07565b90508460400151811115610905576000915050610937565b8085604001818151610917919061343f565b90525060208501805184919061092e9083906134a0565b90525060019150505b9392505050565b6000836040015182111561095457506000610937565b6000806109618585610f57565b915091508386604001818151610977919061343f565b90525085518290879061098b9083906134a0565b9052506020860180518291906109a29083906134a0565b90525060019695505050505050565b600080806109bf8585610fe3565b9150915085604001518111156109da57600092505050610937565b80866040018181516109ec919061343f565b9052508551829087906109a29083906134a0565b60008080610a0e8585611066565b915091508560200151811115610a2957600092505050610937565b80866020018181516109ec919061343f565b8351600090831115610a4f57506000610447565b6000610a5c858585610a71565b509050838660000181815161098b919061343f565b600080600080610a818787610dd3565b915091506000610a9e83896020015161116a90919063ffffffff16565b90506000610aac82846134a0565b90506000610ad28a60200151838c60400151610ac78c611176565b8e51939291906111ea565b5060208c015160408d01518d51929950929350610af0928990611300565b5050508083610aff91906134a0565b96505050505050935093915050565b600080610b1b83856134cc565b9050670de0b6b3a7640000815b04949350505050565b600080600080610b5087600001518860200151896060015189896101f3565b92509250925082610b675760009350505050610937565b610b7b828289604001518a60600151611351565b15610b8c5760019350505050610937565b5060029695505050505050565b600080826005811115610bae57610bae6131c9565b03610bc357610bbc8361149d565b9050610937565b6001826005811115610bd757610bd76131c9565b03610be757506040830151610937565b6002826005811115610bfb57610bfb6131c9565b03610c0957610bbc836114d8565b6003826005811115610c1d57610c1d6131c9565b03610c2b57610bbc836114d8565b6004826005811115610c3f57610c3f6131c9565b03610c4c57508251610937565b506000610937565b60008284111580156104475750610c7c83610c7784670de0b6b3a764000061343f565b610b0e565b841015949350505050565b600080610c93836108a2565b9050600080610caf866000015184610dd390919063ffffffff16565b915091506000828760400151610cc591906134a0565b905086602001518211610d1357610cdc84836114fe565b610ce690826134a0565b9050610d02828860200151610cfb919061343f565b8590611510565b610d0c90826134a0565b9050610d56565b6020870151610d239085906114fe565b610d2d90826134a0565b9050610d49876020015183610d42919061343f565b859061156b565b610d5390826134a0565b90505b9695505050505050565b6000670de0b6b3a7640000610da3610d948460400151856000015160a00151610d89919061343f565b6301e1338090610dad565b610d9d8561158f565b906115dc565b610401919061343f565b600080610dc2670de0b6b3a7640000856134cc565b9050828181610b2857610b28613476565b6000806000610de184611785565b85516040810151602090910151919250600091610dfe90846134e3565b610e089190613513565b865160408101519051919250600091610e2190856134e3565b610e2b9190613513565b875160400151909150610e3e908461179f565b875160400152865151610e51908261179f565b875152865160200151610e64908361179f565b875160200152610e73826117e6565b610e7c826117e6565b945094505050509250929050565b610e92612e78565b60405180610120016040528083600001518152602001836020015181526020018360400151815260200183606001516001600160a01b03168152602001836080015181526020018360a0015181526020018360c0015181526020018360e0015181526020018361010001518152509050919050565b6020820151604083015183516000928392610f259291908690611300565b505090506000610f428486602001516117f590919063ffffffff16565b9050610f4e8183611801565b95945050505050565b6000806000610f7b610f708660000151602001516117e6565b60208701519061116a565b855151610f87906117e6565b610f9191906134a0565b855151610f9d906117e6565b610fa790866134cc565b610fb1919061348c565b6020860151909150610fc3908261116a565b9150610fd985610fd3838761343f565b84611818565b9250509250929050565b600080600061100b856020015185876040015188600001516119ee909392919063ffffffff16565b505085515190915060009061101f906117e6565b86516020015161102e906117e6565b61103890876134cc565b611042919061348c565b905061104f868287611818565b935061105b81836134a0565b925050509250929050565b600080600061108e856020015185876040015188600001516119ee909392919063ffffffff16565b5050602086015190915060006110a482846134cc565b6110b6670de0b6b3a7640000886134cc565b6110c0919061343f565b8751519091506000906110d2906117e6565b836110e48a60000151602001516117e6565b6110ee91906134cc565b6110f8919061348c565b61110a90670de0b6b3a76400006134a0565b90506000611118828461348c565b9050611124818961343f565b9550600061113f878b60200151611a1c90919063ffffffff16565b9050600061114d878361343f565b905061115a8b8285611818565b9850505050505050509250929050565b60006109378383611a28565b6111a86040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b6040518060a001604052808360000151815260200183602001518152602001836040015181526020018360600151815260200183608001518152509050919050565b60008080806111fa898988611a47565b9050846040015160000361123c5784516112149088611b41565b8552602085015161122e906112298b84611b57565b611bdb565b602086015261123c85611bea565b60005b85606001518110156112e65760006112578783611c38565b90506000806112688d868e86611ca4565b509092509050600061127a8d8461116a565b90506000611288828661343f565b90508c81116112bf576112a0818e8d60800151610c54565b156112b7575097509195509093506102dc92505050565b848b526112d0565b6112ca60018661343f565b60208c01525b5050505050806112df906134b3565b905061123f565b50604051637d388ed960e11b815260040160405180910390fd5b60008060008060008061131d8a8a6113178b611cd5565b8a611cec565b92509250925061132c836117e6565b9550611337826117e6565b9450611342816117e6565b93505050509450945094915050565b60008060028460200151856000015161136a91906134a0565b611374919061348c565b905060008060006113858989610802565b91955093509150600090508660058111156113a2576113a26131c9565b036113c55783831015806113ba575086606001518211155b945050505050610447565b60018660058111156113d9576113d96131c9565b036113f1578660600151821115945050505050610447565b6002866005811115611405576114056131c9565b0361143657838311158061141d575086606001518211155b806113ba57508660a00151811115945050505050610447565b600386600581111561144a5761144a6131c9565b0361146c5783831115806113ba57508660a00151811115945050505050610447565b6004866005811115611480576114806131c9565b0361149057505010159050610447565b6001945050505050610447565b805160208201516040830151600092600a926114c3926114be918391611a47565b611b57565b6114ce9060096134cc565b610401919061348c565b602081015160408201518251600092610401926114f6929190611a47565b835151611d7f565b60208201516000906109379083611a1c565b602082015160408301518351600092839261152e92919086906119ee565b50509050600061154b828660200151611e1e90919063ffffffff16565b90506000611559828661343f565b6020870151909150610d569082611a1c565b602082015160408301518351600092611585928590611300565b5090949350505050565b60208101516040820151825160009283926115ab929190611a47565b905060006115d18460000151600001518360200151846000015185604001516000611e2b565b9050610447816117e6565b6000816000036115f55750670de0b6b3a7640000610401565b8260000361160557506000610401565b600160ff1b831061164a5760405162461bcd60e51b815260206004820152600f60248201526e78206f7574206f6620626f756e647360881b6044820152606401610629565b82770bce5086492111aea88f4bb1ca6bcf584181ea8059f7653283106116a45760405162461bcd60e51b815260206004820152600f60248201526e79206f7574206f6620626f756e647360881b6044820152606401610629565b826000670c7d713b49da0000831380156116c55750670f43fc2c04ee000083125b156116fc5760006116d584611edc565b9050670de0b6b3a764000080820784020583670de0b6b3a76400008305020191505061170a565b8161170684611ffb565b0290505b670de0b6b3a76400009005680238fd42c5cf03ffff198112801590611738575068070c1cc73b00c800008113155b61177c5760405162461bcd60e51b815260206004820152601560248201527470726f64756374206f7574206f6620626f756e647360581b6044820152606401610629565b610d568161239e565b60006001600160ff1b0382111561179b57600080fd5b5090565b6000818312156117dc5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b6044820152606401610629565b6109378284613541565b60008082121561179b57600080fd5b600061093783836127b3565b600081831015611812576000610937565b50900390565b825160a001516040840151600091116118725760405162461bcd60e51b815260206004820152601c60248201527b13585c9ad95d115e1d131a588e88195e1c1a5c9959081b585c9ad95d60221b6044820152606401610629565b8351604001516000126118be5760405162461bcd60e51b815260206004820152601460248201527304d61726b65744578744c69623a204c50203c20360641b6044820152606401610629565b60006118c984611785565b905060006118d684611785565b90506000806000808960000151600001518a6000015160400151866118fb91906134e3565b6119059190613513565b8a51602081015160409091015191925060009161192290896134e3565b61192c9190613513565b905080821215611967578a51604081015160209091015192955086945085926119569084906134e3565b6119609190613513565b9250611990565b8a516040810151905191955087935085916119839083906134e3565b61198d9190613513565b93505b828b600001516020018181516119a69190613568565b9052508a5180518591906119bb908390613568565b9052508a5160400180518691906119d3908390613568565b9052506119df856117e6565b9b9a5050505050505050505050565b600080600080600080611a058a8a6113178b611785565b92509250925061132c611a17846127df565b6117e6565b600061093783836127ed565b6000670de0b6b3a7640000611a3d84846134cc565b610937919061348c565b611a726040518060800160405280600081526020016000815260200160008152602001600081525090565b60a08401518210611a965760405163b2094b5960e01b815260040160405180910390fd5b6000828560a00151611aa8919061343f565b9050611ab48582612802565b82526020850151611ac6908590612863565b602083015284511580611adb57506020820151155b15611b02578451602083015160405163b1c4aefb60e01b8152610629929190600401613468565b611b208560000151866101000151846020015185600001518561289a565b604083015260c0850151611b34908261291b565b6060830152509392505050565b6000818311611b505781610937565b5090919050565b60008060009050600060018460200151611b71919061343f565b90505b808214611bd35760006002611b8983856134a0565b611b949060016134a0565b611b9e919061348c565b90506000611bb18688600001518461294f565b1215611bc957611bc260018261343f565b9150611bcd565b8092505b50611b74565b509392505050565b6000818310611b505781610937565b602081015181511180611c085750670de0b6b3a76400008160800151115b15611c3557805160208201516080830151604051632cc06bc160e21b815261062993929190600401613452565b50565b600081158015611c4b5750604083015115155b15611c5b57506040820151610401565b6020830151835111611c8b5760208301518351600291611c7a916134a0565b611c84919061348c565b9050610401565b604051637d388ed960e11b815260040160405180910390fd5b60008080808080611cc28989611cb98a613590565b8d929190612a41565b919c909b50909950975050505050505050565b6000611ce082611785565b610401906000196134e3565b6000806000611cff8760a0015185101590565b15611d1d5760405163b2094b5960e01b815260040160405180910390fd5b86518512611d43578651604051632185509b60e21b815261062991908790600401613468565b6000611d50888887611a47565b9050611d5e88828989612a41565b91955093509150611d748882898988878b612b95565b509450945094915050565b600080611dac611da7856000015186604001518760600151611da19190613541565b90612c27565b61239e565b90506000611dcc611dc5670de0b6b3a764000084613568565b8390612c4a565b90506000611dea866020015186611de39190613568565b8390612c27565b90506000611df88287613541565b90506103e8611e09826103e76134cc565b611e13919061348c565b979650505050505050565b6000826104478184612c70565b600080611e38878461179f565b90506000611e49611dc5888a613568565b9050670d529ae9e8600000811315611e805780670d529ae9e8600000604051637e34684f60e11b8152600401610629929190613468565b6000611e8b82612c88565b905085611e988289612c4a565b611ea29190613568565b9350670de0b6b3a7640000841215611ed05760405163329e322960e21b815260048101859052602401610629565b50505095945050505050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281611f1d57611f1d613476565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561203c57612033826a0c097ce7bc90715b34b9f160241b8161202d5761202d613476565b05611ffb565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126120875772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126120be576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312612106576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312612141576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261217857693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126121af57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126121e45768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261220f57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312612244576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312612279576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126122ad576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126122e1576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d63100000808603028161230a5761230a613476565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b6000680238fd42c5cf03ffff1982121580156123c3575068070c1cc73b00c800008213155b6124025760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b6044820152606401610629565b600082121561243a576124178260000361239e565b6a0c097ce7bc90715b34b9f160241b8161243357612433613476565b0592915050565b60006806f05b59d3b2000000831261247857506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6124ae565b6803782dace9d900000083126124aa57506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806124ae565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126124fe5768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d631000000841261253a576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261257457682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126125ae576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126125e757680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126126205768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412612659576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126126925768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000826001816127cb670de0b6b3a7640000866134cc565b6127d591906134a0565b611a3d919061343f565b6000610401826000196134e3565b600082611a3d670de0b6b3a7640000846134cc565b600061280d82611785565b61282461281f6201518061016d6134cc565b611785565b846080015161283391906134e3565b61283d9190613513565b90506000811361040157604051630e520c3b60e11b815260048101829052602401610629565b60008060008312612875576001612879565b6000195b905061289061281f8561288b86612cdb565b611a28565b61044790826134e3565b6000806128a7868461291b565b9050670de0b6b3a76400008112156128d55760405163329e322960e21b815260048101829052602401610629565b60006128eb6128e4878a613568565b8990612c4a565b905060006128f882612c88565b90506129048187612c4a565b61290e9084613541565b9998505050505050505050565b60008061292d6201518061016d6134cc565b61293784866134cc565b612941919061348c565b9050610447611da782611785565b6000808285602001516129629190613541565b905060006129708585613568565b90506000821380156129825750600081135b6129c35760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b6044820152606401610629565b60006129f16129d284846134e3565b60208901516129e19089613568565b6129eb90886134e3565b90612c4a565b90506000612a07612a028486612c4a565b612cf2565b8851909150600090612a2290670de0b6b3a764000090612c4a565b9050612a3281611da18486613541565b896040015161290e9190613541565b600080600080612a648860000151886020015189600001518a6040015189611e2b565b90506000612a7a612a758784612c4a565b6127df565b60608901519091506000871315612ae9576000612a978483612c4a565b9050670de0b6b3a7640000811215612ac55760405163329e322960e21b815260048101829052602401610629565b612ae1612ada83670de0b6b3a7640000613541565b8490612c27565b915050612b16565b612b1381612aff81670de0b6b3a7640000613541565b612b0990856134e3565b612a759190613513565b90505b60006064612b278c60e00151611785565b612b3190846134e3565b612b3b9190613513565b90506000612b498385613541565b905060008112612b6257612b5d8a82612d83565b612b6c565b612b6c8a82612db0565b9750612b788a84612d83565b9650612b848a83612d83565b955050505050509450945094915050565b6000818860a00151612ba7919061343f565b8851909150612bb6908661179f565b8852612bd0612bc58486613568565b60208a01519061179f565b602089018190528851612bf591612be8908990612863565b895160408b015185612ddd565b6101008901819052600003612c1d57604051635534d70f60e11b815260040160405180910390fd5b5050505050505050565b600080612c3483856134e3565b9050670de0b6b3a7640000815b05949350505050565b600080612c5f670de0b6b3a7640000856134e3565b9050828181612c4157612c41613476565b6000670de0b6b3a76400006001816127cb86866134cc565b6000670de0b6b3a76400008203612cb25760405163a9c8b14d60e01b815260040160405180910390fd5b6000612cd0612cc984670de0b6b3a7640000613541565b8490612c4a565b905061093781612cf2565b600080821361179b57612ced82613590565b610401565b6000808213612d335760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b6044820152606401610629565b670c7d713b49da000082138015612d515750670f43fc2c04ee000082125b15612d7557670de0b6b3a7640000612d6883611edc565b8161243357612433613476565b61040182611ffb565b919050565b60008060008312612d95576001612d99565b6000195b905061289061281f85612dab86612cdb565b6127ed565b60008060008312612dc2576001612dc6565b6000195b905061289061281f85612dd886612cdb565b6127b3565b600080612dee878787876000611e2b565b90506000612dfe611a1783612cf2565b905083612e106201518061016d6134cc565b612e1a90836134cc565b612e24919061348c565b98975050505050505050565b60405180606001604052806000815260200160008152602001600081525090565b6040518060600160405280612e64612e78565b815260200160008152602001600081525090565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b604051606081016001600160401b0381118282101715612efd57634e487b7160e01b600052604160045260246000fd5b60405290565b60405161012081016001600160401b0381118282101715612efd57634e487b7160e01b600052604160045260246000fd5b600060608284031215612f4657600080fd5b612f4e612ecd565b905081358152602082013560208201526040820135604082015292915050565b80356001600160a01b0381168114612d7e57600080fd5b6000818303610160811215612f9957600080fd5b612fa1612ecd565b915061012080821215612fb357600080fd5b612fbb612f03565b9150833582526020840135602083015260408401356040830152612fe160608501612f6e565b60608301526080840135608083015260a084013560a083015260c084013560c083015260e084013560e08301526101008085013581840152508183528084013560208401525050610140820135604082015292915050565b803560068110612d7e57600080fd5b600060a0828403121561305a57600080fd5b60405160a081016001600160401b038111828210171561308a57634e487b7160e01b600052604160045260246000fd5b806040525080915082358152602083013560208201526040830135604082015260608301356060820152608083013560808201525092915050565b60008060008060006102a086880312156130de57600080fd5b6130e88787612f34565b94506130f78760608801612f85565b93506131066101c08701613039565b92506101e0860135915061311e876102008801613048565b90509295509295909350565b803560038110612d7e57600080fd5b60008082840360a081121561314d57600080fd5b6131578585612f34565b92506040605f198201121561316b57600080fd5b50604080519081016001600160401b038111828210171561319c57634e487b7160e01b600052604160045260246000fd5b6040526131ab6060850161312a565b81526131b96080850161312a565b6020820152809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600683106131f3576131f36131c9565b91905290565b600080600080610240858703121561321057600080fd5b61321a8686612f85565b93506132296101608601613039565b92506101808501359150613241866101a08701613048565b905092959194509250565b600060c0828403121561325e57600080fd5b60405160c081016001600160401b038111828210171561328e57634e487b7160e01b600052604160045260246000fd5b8060405250809150823581526020830135602082015260408301356040820152606083013560608201526080830135608082015260a083013560a08201525092915050565b600080600061028084860312156132e957600080fd5b6132f38585612f34565b92506133028560608601612f85565b9150613312856101c0860161324c565b90509250925092565b60038110611c3557611c356131c9565b8151604082019061333b8161331b565b8252602083015161334b8161331b565b8060208401525092915050565b6000806000806000806103e0878903121561337257600080fd5b61337c8888612f34565b955061338b8860608901612f85565b945061339b886101c0890161324c565b93506133aa6102808801613039565b92506133ba886102a08901613048565b91506133ca886103408901613048565b90509295509295509295565b828152604081016133e68361331b565b8260208301529392505050565b6000806101c0838503121561340757600080fd5b6134118484612f34565b91506134208460608501612f85565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561040157610401613429565b9283526020830191909152604082015260600190565b918252602082015260400190565b634e487b7160e01b600052601260045260246000fd5b60008261349b5761349b613476565b500490565b8082018082111561040157610401613429565b6000600182016134c5576134c5613429565b5060010190565b808202811582820484141761040157610401613429565b80820260008212600160ff1b841416156134ff576134ff613429565b818105831482151761040157610401613429565b60008261352257613522613476565b600160ff1b82146000198414161561353c5761353c613429565b500590565b818103600083128015838313168383128216171561356157613561613429565b5092915050565b808201828112600083128015821682158216171561358857613588613429565b505092915050565b6000600160ff1b82016135a5576135a5613429565b506000039056fea2646970667358221220ac9ca2b8ff0c6b372d5d03bdc3a20671c07c3a53f062c1972d206973a5bf6cb864736f6c63430008110033",
1068
- "linkReferences": {},
1069
- "deployedLinkReferences": {}
1070
- }