@pendle/core-v2 0.12.2-testnet → 0.13.1-testnet

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 (473) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +4 -0
  2. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +3 -3
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +4 -0
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.json +48 -0
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +4 -0
  6. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +3 -3
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +4 -0
  8. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +4 -0
  10. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/EpochResultManager.sol/EpochResultManager.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +4 -0
  12. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +3 -3
  13. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +4 -0
  14. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +3 -3
  15. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +4 -0
  16. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +4 -0
  18. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +3 -3
  19. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +4 -0
  20. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +3 -3
  21. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +4 -0
  22. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +1084 -0
  23. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +4 -0
  24. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.json +32 -1
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +4 -0
  26. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +3 -3
  27. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +4 -0
  28. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +3 -3
  29. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +4 -0
  30. package/build/artifacts/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +4 -0
  32. package/build/artifacts/contracts/{libraries → LiquidityMining/libraries}/VeBalanceLib.sol/VeBalanceLib.json +3 -3
  33. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +4 -0
  34. package/build/artifacts/contracts/{libraries → LiquidityMining/libraries}/VeHistoryLib.sol/CheckpointHelper.json +3 -3
  35. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +4 -0
  36. package/build/artifacts/contracts/{libraries → LiquidityMining/libraries}/VeHistoryLib.sol/Checkpoints.json +3 -3
  37. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +4 -0
  38. package/build/artifacts/contracts/{libraries/math → LiquidityMining/libraries}/WeekMath.sol/WeekMath.json +3 -3
  39. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +4 -0
  40. package/build/artifacts/contracts/{libraries/math → core/Market}/MarketMathCore.sol/MarketMathCore.json +3 -3
  41. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +4 -0
  42. package/build/artifacts/contracts/{libraries → core/Market}/OracleLib.sol/OracleLib.json +3 -3
  43. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +4 -0
  44. package/build/artifacts/contracts/core/{LiquidityMining → Market}/PendleGauge.sol/PendleGauge.json +1 -1
  45. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +4 -4
  47. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  49. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +4 -0
  50. package/build/artifacts/contracts/{libraries → core/RewardManager}/RewardManager.sol/RewardManager.json +1 -1
  51. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +4 -0
  52. package/build/artifacts/contracts/{libraries → core/RewardManager}/RewardManagerAbstract.sol/RewardManagerAbstract.json +1 -1
  53. package/build/artifacts/contracts/core/SuperComposableYield/PYIndex.sol/PYIndexLib.dbg.json +4 -0
  54. package/build/artifacts/contracts/{libraries/helpers → core/SuperComposableYield}/PYIndex.sol/PYIndexLib.json +3 -3
  55. package/build/artifacts/contracts/core/SuperComposableYield/SCYBase.sol/SCYBase.dbg.json +4 -0
  56. package/build/artifacts/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBase.sol/SCYBase.json +1 -1
  57. package/build/artifacts/contracts/core/SuperComposableYield/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +4 -0
  58. package/build/artifacts/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +1 -1
  59. package/build/artifacts/contracts/core/SuperComposableYield/SCYUtils.sol/SCYUtils.dbg.json +4 -0
  60. package/build/artifacts/contracts/{libraries/SCY → core/SuperComposableYield}/SCYUtils.sol/SCYUtils.json +3 -3
  61. package/build/artifacts/contracts/core/SuperComposableYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +4 -0
  62. package/build/artifacts/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +3 -3
  63. package/build/artifacts/contracts/core/SuperComposableYield/implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +4 -0
  64. package/build/artifacts/contracts/core/SuperComposableYield/implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +1007 -0
  65. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.dbg.json +4 -0
  66. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.json +1030 -0
  67. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.dbg.json +4 -0
  68. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.json +1025 -0
  69. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol/PendleConvexCurveLPSCY.dbg.json +4 -0
  70. package/build/artifacts/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol/PendleConvexCurveLPSCY.json +1 -1
  71. package/build/artifacts/contracts/core/SuperComposableYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +4 -0
  72. package/build/artifacts/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.json +3 -3
  73. package/build/artifacts/contracts/core/SuperComposableYield/implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +4 -0
  74. package/build/artifacts/contracts/core/SuperComposableYield/implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +851 -0
  75. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  78. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  80. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  82. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +4 -0
  83. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +254 -0
  84. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +4 -0
  85. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +329 -0
  86. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +4 -0
  87. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/ArrayLib.sol/ArrayLib.json +3 -3
  88. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +4 -0
  89. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +3 -3
  90. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +4 -0
  91. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/BaseSplitCodeFactory.sol/CodeDeployer.json +3 -3
  92. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +4 -0
  93. package/build/artifacts/contracts/{periphery → core/libraries}/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +1 -1
  94. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +4 -0
  95. package/build/artifacts/contracts/{periphery → core/libraries}/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +3 -3
  96. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +4 -0
  97. package/build/artifacts/contracts/{libraries → core/libraries}/Errors.sol/Errors.json +9 -4
  98. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +4 -0
  99. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/ExpiryUtilsLib.sol/ExpiryUtils.json +3 -3
  100. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +4 -0
  101. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/MiniHelpers.sol/MiniHelpers.json +3 -3
  102. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +4 -0
  103. package/build/artifacts/contracts/{libraries/helpers → core/libraries}/TokenHelper.sol/TokenHelper.json +1 -1
  104. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +4 -0
  105. package/build/artifacts/contracts/{libraries → core/libraries}/math/LogExpMath.sol/LogExpMath.json +3 -3
  106. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +4 -0
  107. package/build/artifacts/contracts/{libraries → core/libraries}/math/Math.sol/Math.json +3 -3
  108. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  109. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  113. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +1 -1
  115. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  117. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +1 -1
  119. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +1 -1
  121. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +1 -1
  123. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  130. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/IPFeeDistributorFactory.sol/IPFeeDistributorFactory.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  146. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.json +31 -0
  148. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  153. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  156. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +1 -1
  157. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  159. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  160. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +1 -1
  168. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  169. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
  170. package/build/artifacts/contracts/offchain-helpers/ImplicitSwapfeeContract.sol/ImplicitSwapfeeContract.dbg.json +4 -0
  171. package/build/artifacts/contracts/offchain-helpers/ImplicitSwapfeeContract.sol/ImplicitSwapfeeContract.json +190 -0
  172. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  173. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +8 -3
  174. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  175. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +60 -89
  176. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +4 -0
  177. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +1237 -0
  178. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +4 -0
  179. package/build/artifacts/contracts/{core/actions → router}/ActionCallback.sol/ActionCallback.json +3 -3
  180. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +4 -0
  181. package/build/artifacts/contracts/{core/actions → router}/ActionMintRedeem.sol/ActionMintRedeem.json +5 -5
  182. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +4 -0
  183. package/build/artifacts/contracts/{core/actions → router}/ActionMisc.sol/ActionMisc.json +3 -3
  184. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +4 -0
  185. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +698 -0
  186. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +4 -0
  187. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +317 -0
  188. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +4 -0
  189. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +645 -0
  190. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +4 -0
  191. package/build/artifacts/contracts/{core → router}/PendleRouter.sol/PendleRouter.json +3 -3
  192. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +4 -0
  193. package/build/artifacts/contracts/{core/actions → router}/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -1
  194. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +4 -0
  195. package/build/artifacts/contracts/{core/actions → router}/base/CallbackHelper.sol/CallbackHelper.json +1 -1
  196. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +4 -0
  197. package/build/artifacts/contracts/{libraries/math → router/base}/MarketApproxLib.sol/MarketApproxPtInLib.json +3 -3
  198. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +4 -0
  199. package/build/artifacts/contracts/{libraries/math → router/base}/MarketApproxLib.sol/MarketApproxPtOutLib.json +3 -3
  200. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +4 -0
  201. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +35 -0
  202. package/build/artifacts/contracts/router/kyberswap/IMultihopRouter.sol/IMultihopRouter.dbg.json +4 -0
  203. package/build/artifacts/contracts/{libraries → router}/kyberswap/IMultihopRouter.sol/IMultihopRouter.json +1 -1
  204. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +4 -0
  205. package/build/artifacts/contracts/{libraries → router}/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +1 -1
  206. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +6 -6
  207. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgReceiverAppUpg.sol +5 -5
  208. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSendEndpointUpg.sol +5 -5
  209. package/contracts/{core/LiquidityMining → LiquidityMining}/CrossChainMsg/PendleMsgSenderAppUpg.sol +4 -4
  210. package/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/EpochResultManager.sol +7 -7
  211. package/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributor.sol +14 -11
  212. package/contracts/{core/LiquidityMining → LiquidityMining}/FeeDistributor/PendleFeeDistributorFactory.sol +6 -4
  213. package/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerBaseUpg.sol +14 -11
  214. package/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerMainchainUpg.sol +2 -2
  215. package/contracts/{core/LiquidityMining → LiquidityMining}/GaugeController/PendleGaugeControllerSidechainUpg.sol +1 -1
  216. package/contracts/{core/LiquidityMining → LiquidityMining}/README.md +0 -0
  217. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingController/PendleVotingControllerUpg.sol +6 -5
  218. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingController/VotingControllerStorageUpg.sol +16 -12
  219. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleMainchain.sol +11 -7
  220. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowPendleSidechain.sol +9 -4
  221. package/contracts/{core/LiquidityMining → LiquidityMining}/VotingEscrow/VotingEscrowTokenBase.sol +9 -7
  222. package/contracts/{libraries → LiquidityMining/libraries}/VeBalanceLib.sol +3 -3
  223. package/contracts/{libraries → LiquidityMining/libraries}/VeHistoryLib.sol +2 -2
  224. package/contracts/{libraries/math → LiquidityMining/libraries}/WeekMath.sol +2 -2
  225. package/contracts/{libraries/math → core/Market}/MarketMathCore.sol +17 -19
  226. package/contracts/{libraries → core/Market}/OracleLib.sol +2 -2
  227. package/contracts/core/{LiquidityMining → Market}/PendleGauge.sol +4 -6
  228. package/contracts/core/Market/PendleMarket.sol +4 -12
  229. package/contracts/core/Market/PendleMarketFactory.sol +5 -5
  230. package/contracts/{libraries → core/RewardManager}/RewardManager.sol +2 -4
  231. package/contracts/{libraries → core/RewardManager}/RewardManagerAbstract.sol +9 -4
  232. package/contracts/{libraries/helpers → core/SuperComposableYield}/PYIndex.sol +4 -3
  233. package/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBase.sol +11 -8
  234. package/contracts/{SuperComposableYield/base-implementations → core/SuperComposableYield}/SCYBaseWithRewards.sol +5 -4
  235. package/contracts/{libraries/SCY → core/SuperComposableYield}/SCYUtils.sol +1 -1
  236. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/BenQi/PendleQiTokenHelper.sol +2 -2
  237. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/BenQi/PendleQiTokenSCY.sol +6 -6
  238. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol +2 -2
  239. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol +1 -1
  240. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol +5 -5
  241. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/Convex/Pendle3CrvHelper.sol +2 -2
  242. package/contracts/{SuperComposableYield/SCY-implementations → core/SuperComposableYield/implementations}/PendleWstEthSCY.sol +6 -5
  243. package/contracts/core/YieldContracts/InterestManagerYT.sol +5 -5
  244. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +6 -4
  245. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +6 -7
  246. package/contracts/core/YieldContracts/PendleYieldToken.sol +11 -10
  247. package/contracts/core/{PendleERC20.sol → erc20/PendleERC20.sol} +0 -0
  248. package/contracts/core/{PendleERC20Permit.sol → erc20/PendleERC20Permit.sol} +0 -0
  249. package/contracts/{libraries/helpers → core/libraries}/ArrayLib.sol +0 -0
  250. package/contracts/{libraries/helpers → core/libraries}/BaseSplitCodeFactory.sol +1 -1
  251. package/contracts/{periphery → core/libraries}/BoringOwnableUpgradeable.sol +1 -1
  252. package/contracts/{libraries → core/libraries}/Errors.sol +2 -2
  253. package/contracts/{libraries/helpers → core/libraries}/ExpiryUtilsLib.sol +1 -1
  254. package/contracts/{libraries/helpers → core/libraries}/MiniHelpers.sol +1 -1
  255. package/contracts/{libraries/helpers → core/libraries}/TokenHelper.sol +1 -16
  256. package/contracts/{libraries → core/libraries}/math/LogExpMath.sol +1 -1
  257. package/contracts/{libraries → core/libraries}/math/Math.sol +2 -2
  258. package/contracts/deployments/43113-core.json +16 -0
  259. package/contracts/deployments/43113-helper.json +3 -0
  260. package/contracts/deployments/43113-markets/benqi-market-QI-USDC-FEB-2ND.json +8 -0
  261. package/contracts/deployments/43113-markets/benqi-market-QI-WETH-DEC-1ST.json +8 -0
  262. package/{deployments → contracts/deployments}/43113-testenv.json +0 -0
  263. package/contracts/deployments/80001-core.json +15 -0
  264. package/contracts/deployments/80001-markets/benqi-market-QI-USDC-FEB-2ND.json +8 -0
  265. package/contracts/deployments/80001-markets/benqi-market-QI-WETH-DEC-1ST.json +8 -0
  266. package/{deployments → contracts/deployments}/80001-testenv.json +0 -0
  267. package/contracts/interfaces/ConvexCurve/IBooster.sol +1 -1
  268. package/contracts/interfaces/ConvexCurve/ICrvDepositor.sol +1 -1
  269. package/contracts/interfaces/ConvexCurve/ICvxCrv.sol +1 -1
  270. package/contracts/interfaces/ConvexCurve/IRewards.sol +1 -1
  271. package/contracts/interfaces/Curve/ICrvPool.sol +1 -1
  272. package/contracts/interfaces/IAToken.sol +1 -1
  273. package/contracts/interfaces/IAavePool.sol +1 -1
  274. package/contracts/interfaces/IAaveRewardsController.sol +1 -1
  275. package/contracts/interfaces/IBenQiComptroller.sol +1 -1
  276. package/contracts/interfaces/IBenQiInterestRateModel.sol +1 -1
  277. package/contracts/interfaces/IBoringOwnableUpgradeable.sol +1 -1
  278. package/contracts/interfaces/IERC4626.sol +1 -1
  279. package/contracts/interfaces/IEulerEToken.sol +1 -1
  280. package/contracts/interfaces/IEulerMarkets.sol +1 -1
  281. package/contracts/interfaces/IPActionAddRemoveLiq.sol +3 -3
  282. package/contracts/interfaces/IPActionMintRedeem.sol +3 -3
  283. package/contracts/interfaces/IPActionMisc.sol +1 -1
  284. package/contracts/interfaces/IPActionSwapPT.sol +3 -3
  285. package/contracts/interfaces/IPActionSwapPTYT.sol +3 -3
  286. package/contracts/interfaces/IPActionSwapYT.sol +3 -3
  287. package/contracts/interfaces/IPAllAction.sol +1 -1
  288. package/contracts/interfaces/IPFeeDistributor.sol +1 -1
  289. package/contracts/interfaces/IPFeeDistributorFactory.sol +1 -1
  290. package/contracts/interfaces/IPGauge.sol +1 -1
  291. package/contracts/interfaces/IPGaugeController.sol +1 -1
  292. package/contracts/interfaces/IPGaugeControllerMainchain.sol +1 -1
  293. package/contracts/interfaces/IPGovernanceManager.sol +1 -1
  294. package/contracts/interfaces/IPInterestManagerYT.sol +1 -1
  295. package/contracts/interfaces/IPMarket.sol +2 -2
  296. package/contracts/interfaces/IPMarketFactory.sol +1 -1
  297. package/contracts/interfaces/IPMarketSwapCallback.sol +1 -1
  298. package/contracts/interfaces/IPPermissionsV2Upg.sol +1 -1
  299. package/contracts/interfaces/IPPrincipalToken.sol +1 -1
  300. package/contracts/interfaces/IPVeToken.sol +1 -1
  301. package/contracts/interfaces/IPVotingController.sol +5 -3
  302. package/contracts/interfaces/IPVotingEscrowMainchain.sol +3 -3
  303. package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
  304. package/contracts/interfaces/IPYieldToken.sol +1 -1
  305. package/contracts/interfaces/IQiAvax.sol +1 -1
  306. package/contracts/interfaces/IQiErc20.sol +1 -1
  307. package/contracts/interfaces/IQiToken.sol +1 -1
  308. package/contracts/interfaces/IREDACTEDStaking.sol +1 -1
  309. package/contracts/interfaces/IRewardManager.sol +1 -1
  310. package/contracts/interfaces/ISAvax.sol +1 -1
  311. package/contracts/interfaces/ISJoe.sol +1 -1
  312. package/contracts/interfaces/IStETH.sol +1 -1
  313. package/contracts/interfaces/IStargateLPStaking.sol +1 -1
  314. package/contracts/interfaces/IStargatePool.sol +1 -1
  315. package/contracts/interfaces/IStargateRouter.sol +1 -1
  316. package/contracts/interfaces/ISuperComposableYield.sol +1 -1
  317. package/contracts/interfaces/IWAvax.sol +1 -1
  318. package/contracts/interfaces/IWETH.sol +1 -1
  319. package/contracts/interfaces/IWXBTRFLY.sol +1 -1
  320. package/contracts/interfaces/IWstETH.sol +1 -1
  321. package/contracts/interfaces/IYearnVault.sol +1 -1
  322. package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +4 -3
  323. package/contracts/offchain-helpers/ImplicitSwapfeeContract.sol +26 -0
  324. package/contracts/offchain-helpers/MarketMathStatic.sol +7 -7
  325. package/contracts/offchain-helpers/RouterStatic.sol +7 -14
  326. package/contracts/{core/actions → router}/ActionAddRemoveLiq.sol +5 -5
  327. package/contracts/{core/actions → router}/ActionCallback.sol +7 -7
  328. package/contracts/{core/actions → router}/ActionMintRedeem.sol +4 -4
  329. package/contracts/{core/actions → router}/ActionMisc.sol +4 -4
  330. package/contracts/{core/actions → router}/ActionSwapPT.sol +5 -5
  331. package/contracts/{core/actions → router}/ActionSwapPTYT.sol +5 -5
  332. package/contracts/{core/actions → router}/ActionSwapYT.sol +5 -5
  333. package/contracts/{core → router}/PendleRouter.sol +3 -3
  334. package/contracts/{core/actions → router}/base/ActionBaseMintRedeem.sol +6 -6
  335. package/contracts/{core/actions → router}/base/CallbackHelper.sol +1 -1
  336. package/contracts/{libraries/math → router/base}/MarketApproxLib.sol +180 -219
  337. package/contracts/{libraries → router}/kyberswap/AggregationRouterHelper.sol +1 -1
  338. package/contracts/{libraries → router}/kyberswap/IMultihopRouter.sol +0 -0
  339. package/contracts/{libraries → router}/kyberswap/KyberSwapHelper.sol +3 -4
  340. package/package.json +4 -4
  341. package/typechain-types/IPVotingController.ts +18 -0
  342. package/typechain-types/ImplicitSwapfeeContract.ts +157 -0
  343. package/typechain-types/PendleMsgReceiverAppUpg.ts +3 -128
  344. package/typechain-types/PendleVotingControllerUpg.ts +18 -0
  345. package/typechain-types/RouterStatic.ts +0 -45
  346. package/typechain-types/VotingControllerStorageUpg.ts +18 -0
  347. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +10 -5
  348. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  349. package/typechain-types/factories/ActionMintRedeem__factory.ts +4 -4
  350. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  351. package/typechain-types/factories/ActionSwapPTYT__factory.ts +7 -2
  352. package/typechain-types/factories/ActionSwapPT__factory.ts +10 -5
  353. package/typechain-types/factories/ActionSwapYT__factory.ts +10 -5
  354. package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
  355. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
  356. package/typechain-types/factories/BaseSplitCodeFactory__factory.ts +1 -1
  357. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  358. package/typechain-types/factories/ERC20__factory.ts +1 -1
  359. package/typechain-types/factories/Errors__factory.ts +7 -2
  360. package/typechain-types/factories/IPVotingController__factory.ts +31 -0
  361. package/typechain-types/factories/ImplicitSwapfeeContract__factory.ts +247 -0
  362. package/typechain-types/factories/MarketMathStatic__factory.ts +7 -2
  363. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  364. package/typechain-types/factories/Pendle3CrvAndTokenSCY__factory.ts +1 -1
  365. package/typechain-types/factories/Pendle3CrvHelper__factory.ts +1 -1
  366. package/typechain-types/factories/PendleConvexCurveLP2PoolSCY__factory.ts +1 -1
  367. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  368. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  369. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +1 -1
  370. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  371. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  372. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  373. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  374. package/typechain-types/factories/PendleMarket__factory.ts +4 -4
  375. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  376. package/typechain-types/factories/PendleMsgReceiverAppUpg__factory.ts +0 -75
  377. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  378. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  379. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  380. package/typechain-types/factories/PendleQiTokenSCY__factory.ts +1 -1
  381. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  382. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +32 -1
  383. package/typechain-types/factories/PendleWstEthSCY__factory.ts +1 -1
  384. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  385. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  386. package/typechain-types/factories/RouterStatic__factory.ts +1 -30
  387. package/typechain-types/factories/VotingControllerStorageUpg__factory.ts +31 -0
  388. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  389. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  390. package/typechain-types/hardhat.d.ts +241 -232
  391. package/typechain-types/index.ts +92 -90
  392. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +0 -4
  393. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.dbg.json +0 -4
  394. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/BenQi/PendleQiTokenSCY.sol/PendleQiTokenSCY.json +0 -1007
  395. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.dbg.json +0 -4
  396. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSCY.sol/Pendle3CrvAndTokenSCY.json +0 -1030
  397. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.dbg.json +0 -4
  398. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLP2PoolSCY.sol/PendleConvexCurveLP2PoolSCY.json +0 -1025
  399. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/ConvexCurveLP/PendleConvexCurveLPSCY.sol/PendleConvexCurveLPSCY.dbg.json +0 -4
  400. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +0 -4
  401. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.dbg.json +0 -4
  402. package/build/artifacts/contracts/SuperComposableYield/SCY-implementations/PendleWstEthSCY.sol/PendleWstEthSCY.json +0 -851
  403. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBase.sol/SCYBase.dbg.json +0 -4
  404. package/build/artifacts/contracts/SuperComposableYield/base-implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +0 -4
  405. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +0 -4
  406. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +0 -4
  407. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.json +0 -123
  408. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +0 -4
  409. package/build/artifacts/contracts/core/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +0 -4
  410. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +0 -4
  411. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +0 -4
  412. package/build/artifacts/contracts/core/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +0 -4
  413. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +0 -4
  414. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +0 -4
  415. package/build/artifacts/contracts/core/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +0 -4
  416. package/build/artifacts/contracts/core/LiquidityMining/PendleGauge.sol/PendleGauge.dbg.json +0 -4
  417. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +0 -4
  418. package/build/artifacts/contracts/core/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +0 -1053
  419. package/build/artifacts/contracts/core/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +0 -4
  420. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +0 -4
  421. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +0 -4
  422. package/build/artifacts/contracts/core/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +0 -4
  423. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.dbg.json +0 -4
  424. package/build/artifacts/contracts/core/PendleERC20.sol/PendleERC20.json +0 -254
  425. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +0 -4
  426. package/build/artifacts/contracts/core/PendleERC20Permit.sol/PendleERC20Permit.json +0 -329
  427. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +0 -4
  428. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +0 -4
  429. package/build/artifacts/contracts/core/actions/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +0 -1232
  430. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +0 -4
  431. package/build/artifacts/contracts/core/actions/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +0 -4
  432. package/build/artifacts/contracts/core/actions/ActionMisc.sol/ActionMisc.dbg.json +0 -4
  433. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.dbg.json +0 -4
  434. package/build/artifacts/contracts/core/actions/ActionSwapPT.sol/ActionSwapPT.json +0 -693
  435. package/build/artifacts/contracts/core/actions/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
  436. package/build/artifacts/contracts/core/actions/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -312
  437. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.dbg.json +0 -4
  438. package/build/artifacts/contracts/core/actions/ActionSwapYT.sol/ActionSwapYT.json +0 -640
  439. package/build/artifacts/contracts/core/actions/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +0 -4
  440. package/build/artifacts/contracts/core/actions/base/CallbackHelper.sol/CallbackHelper.dbg.json +0 -4
  441. package/build/artifacts/contracts/libraries/Errors.sol/Errors.dbg.json +0 -4
  442. package/build/artifacts/contracts/libraries/OracleLib.sol/OracleLib.dbg.json +0 -4
  443. package/build/artifacts/contracts/libraries/RewardManager.sol/RewardManager.dbg.json +0 -4
  444. package/build/artifacts/contracts/libraries/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +0 -4
  445. package/build/artifacts/contracts/libraries/SCY/SCYUtils.sol/SCYUtils.dbg.json +0 -4
  446. package/build/artifacts/contracts/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +0 -4
  447. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +0 -4
  448. package/build/artifacts/contracts/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +0 -4
  449. package/build/artifacts/contracts/libraries/helpers/ArrayLib.sol/ArrayLib.dbg.json +0 -4
  450. package/build/artifacts/contracts/libraries/helpers/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +0 -4
  451. package/build/artifacts/contracts/libraries/helpers/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +0 -4
  452. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +0 -4
  453. package/build/artifacts/contracts/libraries/helpers/MiniHelpers.sol/MiniHelpers.dbg.json +0 -4
  454. package/build/artifacts/contracts/libraries/helpers/PYIndex.sol/PYIndexLib.dbg.json +0 -4
  455. package/build/artifacts/contracts/libraries/helpers/TokenHelper.sol/TokenHelper.dbg.json +0 -4
  456. package/build/artifacts/contracts/libraries/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
  457. package/build/artifacts/contracts/libraries/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -35
  458. package/build/artifacts/contracts/libraries/kyberswap/IMultihopRouter.sol/IMultihopRouter.dbg.json +0 -4
  459. package/build/artifacts/contracts/libraries/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
  460. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +0 -4
  461. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +0 -4
  462. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +0 -4
  463. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +0 -4
  464. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +0 -4
  465. package/build/artifacts/contracts/libraries/math/WeekMath.sol/WeekMath.dbg.json +0 -4
  466. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +0 -4
  467. package/build/artifacts/contracts/periphery/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +0 -4
  468. package/deployments/43113-core.json +0 -16
  469. package/deployments/43113-markets/benqi-market-QI-USDC-FEB-2ND.json +0 -8
  470. package/deployments/43113-markets/benqi-market-QI-WETH-DEC-1ST.json +0 -8
  471. package/deployments/80001-core.json +0 -15
  472. package/deployments/80001-markets/benqi-market-QI-USDC-FEB-2ND.json +0 -8
  473. package/deployments/80001-markets/benqi-market-QI-WETH-DEC-1ST.json +0 -8
@@ -0,0 +1,1237 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ActionAddRemoveLiq",
4
+ "sourceName": "contracts/router/ActionAddRemoveLiq.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_kyberSwapRouter",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "inputs": [],
19
+ "name": "ApproxFail",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [
24
+ {
25
+ "internalType": "uint256",
26
+ "name": "guessMin",
27
+ "type": "uint256"
28
+ },
29
+ {
30
+ "internalType": "uint256",
31
+ "name": "guessMax",
32
+ "type": "uint256"
33
+ },
34
+ {
35
+ "internalType": "uint256",
36
+ "name": "eps",
37
+ "type": "uint256"
38
+ }
39
+ ],
40
+ "name": "ApproxParamsInvalid",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "int256",
47
+ "name": "exchangeRate",
48
+ "type": "int256"
49
+ }
50
+ ],
51
+ "name": "MarketExchangeRateBelowOne",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [],
56
+ "name": "MarketExpired",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [],
61
+ "name": "MarketProportionMustNotEqualOne",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "int256",
68
+ "name": "proportion",
69
+ "type": "int256"
70
+ },
71
+ {
72
+ "internalType": "int256",
73
+ "name": "maxProportion",
74
+ "type": "int256"
75
+ }
76
+ ],
77
+ "name": "MarketProportionTooHigh",
78
+ "type": "error"
79
+ },
80
+ {
81
+ "inputs": [
82
+ {
83
+ "internalType": "int256",
84
+ "name": "rateScalar",
85
+ "type": "int256"
86
+ }
87
+ ],
88
+ "name": "MarketRateScalarBelowZero",
89
+ "type": "error"
90
+ },
91
+ {
92
+ "inputs": [],
93
+ "name": "MarketZeroAmountsInput",
94
+ "type": "error"
95
+ },
96
+ {
97
+ "inputs": [],
98
+ "name": "MarketZeroAmountsOutput",
99
+ "type": "error"
100
+ },
101
+ {
102
+ "inputs": [
103
+ {
104
+ "internalType": "int256",
105
+ "name": "totalPt",
106
+ "type": "int256"
107
+ },
108
+ {
109
+ "internalType": "int256",
110
+ "name": "totalAsset",
111
+ "type": "int256"
112
+ }
113
+ ],
114
+ "name": "MarketZeroTotalPtOrTotalAsset",
115
+ "type": "error"
116
+ },
117
+ {
118
+ "inputs": [
119
+ {
120
+ "internalType": "uint256",
121
+ "name": "actualLpOut",
122
+ "type": "uint256"
123
+ },
124
+ {
125
+ "internalType": "uint256",
126
+ "name": "requiredLpOut",
127
+ "type": "uint256"
128
+ }
129
+ ],
130
+ "name": "RouterInsufficientLpOut",
131
+ "type": "error"
132
+ },
133
+ {
134
+ "inputs": [
135
+ {
136
+ "internalType": "uint256",
137
+ "name": "actualPtOut",
138
+ "type": "uint256"
139
+ },
140
+ {
141
+ "internalType": "uint256",
142
+ "name": "requiredPtOut",
143
+ "type": "uint256"
144
+ }
145
+ ],
146
+ "name": "RouterInsufficientPtOut",
147
+ "type": "error"
148
+ },
149
+ {
150
+ "inputs": [
151
+ {
152
+ "internalType": "uint256",
153
+ "name": "actualScyOut",
154
+ "type": "uint256"
155
+ },
156
+ {
157
+ "internalType": "uint256",
158
+ "name": "requiredScyOut",
159
+ "type": "uint256"
160
+ }
161
+ ],
162
+ "name": "RouterInsufficientScyOut",
163
+ "type": "error"
164
+ },
165
+ {
166
+ "inputs": [
167
+ {
168
+ "internalType": "uint256",
169
+ "name": "actualTokenOut",
170
+ "type": "uint256"
171
+ },
172
+ {
173
+ "internalType": "uint256",
174
+ "name": "requiredTokenOut",
175
+ "type": "uint256"
176
+ }
177
+ ],
178
+ "name": "RouterInsufficientTokenOut",
179
+ "type": "error"
180
+ },
181
+ {
182
+ "anonymous": false,
183
+ "inputs": [
184
+ {
185
+ "indexed": true,
186
+ "internalType": "address",
187
+ "name": "caller",
188
+ "type": "address"
189
+ },
190
+ {
191
+ "indexed": true,
192
+ "internalType": "address",
193
+ "name": "market",
194
+ "type": "address"
195
+ },
196
+ {
197
+ "indexed": true,
198
+ "internalType": "address",
199
+ "name": "receiver",
200
+ "type": "address"
201
+ },
202
+ {
203
+ "indexed": false,
204
+ "internalType": "uint256",
205
+ "name": "netScyUsed",
206
+ "type": "uint256"
207
+ },
208
+ {
209
+ "indexed": false,
210
+ "internalType": "uint256",
211
+ "name": "netPtUsed",
212
+ "type": "uint256"
213
+ },
214
+ {
215
+ "indexed": false,
216
+ "internalType": "uint256",
217
+ "name": "netLpOut",
218
+ "type": "uint256"
219
+ }
220
+ ],
221
+ "name": "AddLiquidityDualScyAndPt",
222
+ "type": "event"
223
+ },
224
+ {
225
+ "anonymous": false,
226
+ "inputs": [
227
+ {
228
+ "indexed": true,
229
+ "internalType": "address",
230
+ "name": "caller",
231
+ "type": "address"
232
+ },
233
+ {
234
+ "indexed": true,
235
+ "internalType": "address",
236
+ "name": "market",
237
+ "type": "address"
238
+ },
239
+ {
240
+ "indexed": true,
241
+ "internalType": "address",
242
+ "name": "receiver",
243
+ "type": "address"
244
+ },
245
+ {
246
+ "indexed": false,
247
+ "internalType": "address",
248
+ "name": "tokenIn",
249
+ "type": "address"
250
+ },
251
+ {
252
+ "indexed": false,
253
+ "internalType": "uint256",
254
+ "name": "tokenUsed",
255
+ "type": "uint256"
256
+ },
257
+ {
258
+ "indexed": false,
259
+ "internalType": "uint256",
260
+ "name": "netPtUsed",
261
+ "type": "uint256"
262
+ },
263
+ {
264
+ "indexed": false,
265
+ "internalType": "uint256",
266
+ "name": "netLpOut",
267
+ "type": "uint256"
268
+ }
269
+ ],
270
+ "name": "AddLiquidityDualTokenAndPt",
271
+ "type": "event"
272
+ },
273
+ {
274
+ "anonymous": false,
275
+ "inputs": [
276
+ {
277
+ "indexed": true,
278
+ "internalType": "address",
279
+ "name": "caller",
280
+ "type": "address"
281
+ },
282
+ {
283
+ "indexed": true,
284
+ "internalType": "address",
285
+ "name": "market",
286
+ "type": "address"
287
+ },
288
+ {
289
+ "indexed": true,
290
+ "internalType": "address",
291
+ "name": "receiver",
292
+ "type": "address"
293
+ },
294
+ {
295
+ "indexed": false,
296
+ "internalType": "uint256",
297
+ "name": "netPtIn",
298
+ "type": "uint256"
299
+ },
300
+ {
301
+ "indexed": false,
302
+ "internalType": "uint256",
303
+ "name": "netLpOut",
304
+ "type": "uint256"
305
+ }
306
+ ],
307
+ "name": "AddLiquiditySinglePt",
308
+ "type": "event"
309
+ },
310
+ {
311
+ "anonymous": false,
312
+ "inputs": [
313
+ {
314
+ "indexed": true,
315
+ "internalType": "address",
316
+ "name": "caller",
317
+ "type": "address"
318
+ },
319
+ {
320
+ "indexed": true,
321
+ "internalType": "address",
322
+ "name": "market",
323
+ "type": "address"
324
+ },
325
+ {
326
+ "indexed": true,
327
+ "internalType": "address",
328
+ "name": "receiver",
329
+ "type": "address"
330
+ },
331
+ {
332
+ "indexed": false,
333
+ "internalType": "uint256",
334
+ "name": "netScyIn",
335
+ "type": "uint256"
336
+ },
337
+ {
338
+ "indexed": false,
339
+ "internalType": "uint256",
340
+ "name": "netLpOut",
341
+ "type": "uint256"
342
+ }
343
+ ],
344
+ "name": "AddLiquiditySingleScy",
345
+ "type": "event"
346
+ },
347
+ {
348
+ "anonymous": false,
349
+ "inputs": [
350
+ {
351
+ "indexed": true,
352
+ "internalType": "address",
353
+ "name": "caller",
354
+ "type": "address"
355
+ },
356
+ {
357
+ "indexed": true,
358
+ "internalType": "address",
359
+ "name": "market",
360
+ "type": "address"
361
+ },
362
+ {
363
+ "indexed": true,
364
+ "internalType": "address",
365
+ "name": "token",
366
+ "type": "address"
367
+ },
368
+ {
369
+ "indexed": false,
370
+ "internalType": "address",
371
+ "name": "receiver",
372
+ "type": "address"
373
+ },
374
+ {
375
+ "indexed": false,
376
+ "internalType": "uint256",
377
+ "name": "netTokenIn",
378
+ "type": "uint256"
379
+ },
380
+ {
381
+ "indexed": false,
382
+ "internalType": "uint256",
383
+ "name": "netLpOut",
384
+ "type": "uint256"
385
+ }
386
+ ],
387
+ "name": "AddLiquiditySingleToken",
388
+ "type": "event"
389
+ },
390
+ {
391
+ "anonymous": false,
392
+ "inputs": [
393
+ {
394
+ "indexed": true,
395
+ "internalType": "address",
396
+ "name": "caller",
397
+ "type": "address"
398
+ },
399
+ {
400
+ "indexed": true,
401
+ "internalType": "address",
402
+ "name": "market",
403
+ "type": "address"
404
+ },
405
+ {
406
+ "indexed": true,
407
+ "internalType": "address",
408
+ "name": "receiver",
409
+ "type": "address"
410
+ },
411
+ {
412
+ "indexed": false,
413
+ "internalType": "uint256",
414
+ "name": "netLpToRemove",
415
+ "type": "uint256"
416
+ },
417
+ {
418
+ "indexed": false,
419
+ "internalType": "uint256",
420
+ "name": "netPtOut",
421
+ "type": "uint256"
422
+ },
423
+ {
424
+ "indexed": false,
425
+ "internalType": "uint256",
426
+ "name": "netScyOut",
427
+ "type": "uint256"
428
+ }
429
+ ],
430
+ "name": "RemoveLiquidityDualScyAndPt",
431
+ "type": "event"
432
+ },
433
+ {
434
+ "anonymous": false,
435
+ "inputs": [
436
+ {
437
+ "indexed": true,
438
+ "internalType": "address",
439
+ "name": "caller",
440
+ "type": "address"
441
+ },
442
+ {
443
+ "indexed": true,
444
+ "internalType": "address",
445
+ "name": "market",
446
+ "type": "address"
447
+ },
448
+ {
449
+ "indexed": true,
450
+ "internalType": "address",
451
+ "name": "receiver",
452
+ "type": "address"
453
+ },
454
+ {
455
+ "indexed": false,
456
+ "internalType": "uint256",
457
+ "name": "netLpToRemove",
458
+ "type": "uint256"
459
+ },
460
+ {
461
+ "indexed": false,
462
+ "internalType": "uint256",
463
+ "name": "netPtOut",
464
+ "type": "uint256"
465
+ },
466
+ {
467
+ "indexed": false,
468
+ "internalType": "address",
469
+ "name": "tokenOut",
470
+ "type": "address"
471
+ },
472
+ {
473
+ "indexed": false,
474
+ "internalType": "uint256",
475
+ "name": "netTokenOut",
476
+ "type": "uint256"
477
+ }
478
+ ],
479
+ "name": "RemoveLiquidityDualTokenAndPt",
480
+ "type": "event"
481
+ },
482
+ {
483
+ "anonymous": false,
484
+ "inputs": [
485
+ {
486
+ "indexed": true,
487
+ "internalType": "address",
488
+ "name": "caller",
489
+ "type": "address"
490
+ },
491
+ {
492
+ "indexed": true,
493
+ "internalType": "address",
494
+ "name": "market",
495
+ "type": "address"
496
+ },
497
+ {
498
+ "indexed": true,
499
+ "internalType": "address",
500
+ "name": "receiver",
501
+ "type": "address"
502
+ },
503
+ {
504
+ "indexed": false,
505
+ "internalType": "uint256",
506
+ "name": "netLpToRemove",
507
+ "type": "uint256"
508
+ },
509
+ {
510
+ "indexed": false,
511
+ "internalType": "uint256",
512
+ "name": "netPtOut",
513
+ "type": "uint256"
514
+ }
515
+ ],
516
+ "name": "RemoveLiquiditySinglePt",
517
+ "type": "event"
518
+ },
519
+ {
520
+ "anonymous": false,
521
+ "inputs": [
522
+ {
523
+ "indexed": true,
524
+ "internalType": "address",
525
+ "name": "caller",
526
+ "type": "address"
527
+ },
528
+ {
529
+ "indexed": true,
530
+ "internalType": "address",
531
+ "name": "market",
532
+ "type": "address"
533
+ },
534
+ {
535
+ "indexed": true,
536
+ "internalType": "address",
537
+ "name": "receiver",
538
+ "type": "address"
539
+ },
540
+ {
541
+ "indexed": false,
542
+ "internalType": "uint256",
543
+ "name": "netLpToRemove",
544
+ "type": "uint256"
545
+ },
546
+ {
547
+ "indexed": false,
548
+ "internalType": "uint256",
549
+ "name": "netScyOut",
550
+ "type": "uint256"
551
+ }
552
+ ],
553
+ "name": "RemoveLiquiditySingleScy",
554
+ "type": "event"
555
+ },
556
+ {
557
+ "anonymous": false,
558
+ "inputs": [
559
+ {
560
+ "indexed": true,
561
+ "internalType": "address",
562
+ "name": "caller",
563
+ "type": "address"
564
+ },
565
+ {
566
+ "indexed": true,
567
+ "internalType": "address",
568
+ "name": "market",
569
+ "type": "address"
570
+ },
571
+ {
572
+ "indexed": true,
573
+ "internalType": "address",
574
+ "name": "token",
575
+ "type": "address"
576
+ },
577
+ {
578
+ "indexed": false,
579
+ "internalType": "address",
580
+ "name": "receiver",
581
+ "type": "address"
582
+ },
583
+ {
584
+ "indexed": false,
585
+ "internalType": "uint256",
586
+ "name": "netLpToRemove",
587
+ "type": "uint256"
588
+ },
589
+ {
590
+ "indexed": false,
591
+ "internalType": "uint256",
592
+ "name": "netTokenOut",
593
+ "type": "uint256"
594
+ }
595
+ ],
596
+ "name": "RemoveLiquiditySingleToken",
597
+ "type": "event"
598
+ },
599
+ {
600
+ "inputs": [
601
+ {
602
+ "internalType": "address",
603
+ "name": "receiver",
604
+ "type": "address"
605
+ },
606
+ {
607
+ "internalType": "address",
608
+ "name": "market",
609
+ "type": "address"
610
+ },
611
+ {
612
+ "internalType": "uint256",
613
+ "name": "netScyDesired",
614
+ "type": "uint256"
615
+ },
616
+ {
617
+ "internalType": "uint256",
618
+ "name": "netPtDesired",
619
+ "type": "uint256"
620
+ },
621
+ {
622
+ "internalType": "uint256",
623
+ "name": "minLpOut",
624
+ "type": "uint256"
625
+ }
626
+ ],
627
+ "name": "addLiquidityDualScyAndPt",
628
+ "outputs": [
629
+ {
630
+ "internalType": "uint256",
631
+ "name": "netLpOut",
632
+ "type": "uint256"
633
+ },
634
+ {
635
+ "internalType": "uint256",
636
+ "name": "netScyUsed",
637
+ "type": "uint256"
638
+ },
639
+ {
640
+ "internalType": "uint256",
641
+ "name": "netPtUsed",
642
+ "type": "uint256"
643
+ }
644
+ ],
645
+ "stateMutability": "nonpayable",
646
+ "type": "function"
647
+ },
648
+ {
649
+ "inputs": [
650
+ {
651
+ "internalType": "address",
652
+ "name": "receiver",
653
+ "type": "address"
654
+ },
655
+ {
656
+ "internalType": "address",
657
+ "name": "market",
658
+ "type": "address"
659
+ },
660
+ {
661
+ "internalType": "address",
662
+ "name": "tokenIn",
663
+ "type": "address"
664
+ },
665
+ {
666
+ "internalType": "uint256",
667
+ "name": "netTokenDesired",
668
+ "type": "uint256"
669
+ },
670
+ {
671
+ "internalType": "uint256",
672
+ "name": "netPtDesired",
673
+ "type": "uint256"
674
+ },
675
+ {
676
+ "internalType": "uint256",
677
+ "name": "minLpOut",
678
+ "type": "uint256"
679
+ }
680
+ ],
681
+ "name": "addLiquidityDualTokenAndPt",
682
+ "outputs": [
683
+ {
684
+ "internalType": "uint256",
685
+ "name": "netLpOut",
686
+ "type": "uint256"
687
+ },
688
+ {
689
+ "internalType": "uint256",
690
+ "name": "netTokenUsed",
691
+ "type": "uint256"
692
+ },
693
+ {
694
+ "internalType": "uint256",
695
+ "name": "netPtUsed",
696
+ "type": "uint256"
697
+ }
698
+ ],
699
+ "stateMutability": "payable",
700
+ "type": "function"
701
+ },
702
+ {
703
+ "inputs": [
704
+ {
705
+ "internalType": "address",
706
+ "name": "receiver",
707
+ "type": "address"
708
+ },
709
+ {
710
+ "internalType": "address",
711
+ "name": "market",
712
+ "type": "address"
713
+ },
714
+ {
715
+ "internalType": "uint256",
716
+ "name": "netPtIn",
717
+ "type": "uint256"
718
+ },
719
+ {
720
+ "internalType": "uint256",
721
+ "name": "minLpOut",
722
+ "type": "uint256"
723
+ },
724
+ {
725
+ "components": [
726
+ {
727
+ "internalType": "uint256",
728
+ "name": "guessMin",
729
+ "type": "uint256"
730
+ },
731
+ {
732
+ "internalType": "uint256",
733
+ "name": "guessMax",
734
+ "type": "uint256"
735
+ },
736
+ {
737
+ "internalType": "uint256",
738
+ "name": "guessOffchain",
739
+ "type": "uint256"
740
+ },
741
+ {
742
+ "internalType": "uint256",
743
+ "name": "maxIteration",
744
+ "type": "uint256"
745
+ },
746
+ {
747
+ "internalType": "uint256",
748
+ "name": "eps",
749
+ "type": "uint256"
750
+ }
751
+ ],
752
+ "internalType": "struct ApproxParams",
753
+ "name": "guessPtSwapToScy",
754
+ "type": "tuple"
755
+ }
756
+ ],
757
+ "name": "addLiquiditySinglePt",
758
+ "outputs": [
759
+ {
760
+ "internalType": "uint256",
761
+ "name": "netLpOut",
762
+ "type": "uint256"
763
+ },
764
+ {
765
+ "internalType": "uint256",
766
+ "name": "netScyFee",
767
+ "type": "uint256"
768
+ }
769
+ ],
770
+ "stateMutability": "nonpayable",
771
+ "type": "function"
772
+ },
773
+ {
774
+ "inputs": [
775
+ {
776
+ "internalType": "address",
777
+ "name": "receiver",
778
+ "type": "address"
779
+ },
780
+ {
781
+ "internalType": "address",
782
+ "name": "market",
783
+ "type": "address"
784
+ },
785
+ {
786
+ "internalType": "uint256",
787
+ "name": "netScyIn",
788
+ "type": "uint256"
789
+ },
790
+ {
791
+ "internalType": "uint256",
792
+ "name": "minLpOut",
793
+ "type": "uint256"
794
+ },
795
+ {
796
+ "components": [
797
+ {
798
+ "internalType": "uint256",
799
+ "name": "guessMin",
800
+ "type": "uint256"
801
+ },
802
+ {
803
+ "internalType": "uint256",
804
+ "name": "guessMax",
805
+ "type": "uint256"
806
+ },
807
+ {
808
+ "internalType": "uint256",
809
+ "name": "guessOffchain",
810
+ "type": "uint256"
811
+ },
812
+ {
813
+ "internalType": "uint256",
814
+ "name": "maxIteration",
815
+ "type": "uint256"
816
+ },
817
+ {
818
+ "internalType": "uint256",
819
+ "name": "eps",
820
+ "type": "uint256"
821
+ }
822
+ ],
823
+ "internalType": "struct ApproxParams",
824
+ "name": "guessPtReceivedFromScy",
825
+ "type": "tuple"
826
+ }
827
+ ],
828
+ "name": "addLiquiditySingleScy",
829
+ "outputs": [
830
+ {
831
+ "internalType": "uint256",
832
+ "name": "netLpOut",
833
+ "type": "uint256"
834
+ },
835
+ {
836
+ "internalType": "uint256",
837
+ "name": "netScyFee",
838
+ "type": "uint256"
839
+ }
840
+ ],
841
+ "stateMutability": "nonpayable",
842
+ "type": "function"
843
+ },
844
+ {
845
+ "inputs": [
846
+ {
847
+ "internalType": "address",
848
+ "name": "receiver",
849
+ "type": "address"
850
+ },
851
+ {
852
+ "internalType": "address",
853
+ "name": "market",
854
+ "type": "address"
855
+ },
856
+ {
857
+ "internalType": "uint256",
858
+ "name": "minLpOut",
859
+ "type": "uint256"
860
+ },
861
+ {
862
+ "components": [
863
+ {
864
+ "internalType": "uint256",
865
+ "name": "guessMin",
866
+ "type": "uint256"
867
+ },
868
+ {
869
+ "internalType": "uint256",
870
+ "name": "guessMax",
871
+ "type": "uint256"
872
+ },
873
+ {
874
+ "internalType": "uint256",
875
+ "name": "guessOffchain",
876
+ "type": "uint256"
877
+ },
878
+ {
879
+ "internalType": "uint256",
880
+ "name": "maxIteration",
881
+ "type": "uint256"
882
+ },
883
+ {
884
+ "internalType": "uint256",
885
+ "name": "eps",
886
+ "type": "uint256"
887
+ }
888
+ ],
889
+ "internalType": "struct ApproxParams",
890
+ "name": "guessPtReceivedFromScy",
891
+ "type": "tuple"
892
+ },
893
+ {
894
+ "components": [
895
+ {
896
+ "internalType": "address",
897
+ "name": "tokenIn",
898
+ "type": "address"
899
+ },
900
+ {
901
+ "internalType": "uint256",
902
+ "name": "netTokenIn",
903
+ "type": "uint256"
904
+ },
905
+ {
906
+ "internalType": "address",
907
+ "name": "tokenMintScy",
908
+ "type": "address"
909
+ },
910
+ {
911
+ "internalType": "bytes",
912
+ "name": "kybercall",
913
+ "type": "bytes"
914
+ }
915
+ ],
916
+ "internalType": "struct TokenInput",
917
+ "name": "input",
918
+ "type": "tuple"
919
+ }
920
+ ],
921
+ "name": "addLiquiditySingleToken",
922
+ "outputs": [
923
+ {
924
+ "internalType": "uint256",
925
+ "name": "netLpOut",
926
+ "type": "uint256"
927
+ },
928
+ {
929
+ "internalType": "uint256",
930
+ "name": "netScyFee",
931
+ "type": "uint256"
932
+ }
933
+ ],
934
+ "stateMutability": "payable",
935
+ "type": "function"
936
+ },
937
+ {
938
+ "inputs": [],
939
+ "name": "kyberSwapRouter",
940
+ "outputs": [
941
+ {
942
+ "internalType": "address",
943
+ "name": "",
944
+ "type": "address"
945
+ }
946
+ ],
947
+ "stateMutability": "view",
948
+ "type": "function"
949
+ },
950
+ {
951
+ "inputs": [
952
+ {
953
+ "internalType": "address",
954
+ "name": "receiver",
955
+ "type": "address"
956
+ },
957
+ {
958
+ "internalType": "address",
959
+ "name": "market",
960
+ "type": "address"
961
+ },
962
+ {
963
+ "internalType": "uint256",
964
+ "name": "netLpToRemove",
965
+ "type": "uint256"
966
+ },
967
+ {
968
+ "internalType": "uint256",
969
+ "name": "minScyOut",
970
+ "type": "uint256"
971
+ },
972
+ {
973
+ "internalType": "uint256",
974
+ "name": "minPtOut",
975
+ "type": "uint256"
976
+ }
977
+ ],
978
+ "name": "removeLiquidityDualScyAndPt",
979
+ "outputs": [
980
+ {
981
+ "internalType": "uint256",
982
+ "name": "netScyOut",
983
+ "type": "uint256"
984
+ },
985
+ {
986
+ "internalType": "uint256",
987
+ "name": "netPtOut",
988
+ "type": "uint256"
989
+ }
990
+ ],
991
+ "stateMutability": "nonpayable",
992
+ "type": "function"
993
+ },
994
+ {
995
+ "inputs": [
996
+ {
997
+ "internalType": "address",
998
+ "name": "receiver",
999
+ "type": "address"
1000
+ },
1001
+ {
1002
+ "internalType": "address",
1003
+ "name": "market",
1004
+ "type": "address"
1005
+ },
1006
+ {
1007
+ "internalType": "uint256",
1008
+ "name": "netLpToRemove",
1009
+ "type": "uint256"
1010
+ },
1011
+ {
1012
+ "internalType": "address",
1013
+ "name": "tokenOut",
1014
+ "type": "address"
1015
+ },
1016
+ {
1017
+ "internalType": "uint256",
1018
+ "name": "minTokenOut",
1019
+ "type": "uint256"
1020
+ },
1021
+ {
1022
+ "internalType": "uint256",
1023
+ "name": "minPtOut",
1024
+ "type": "uint256"
1025
+ }
1026
+ ],
1027
+ "name": "removeLiquidityDualTokenAndPt",
1028
+ "outputs": [
1029
+ {
1030
+ "internalType": "uint256",
1031
+ "name": "netTokenOut",
1032
+ "type": "uint256"
1033
+ },
1034
+ {
1035
+ "internalType": "uint256",
1036
+ "name": "netPtOut",
1037
+ "type": "uint256"
1038
+ }
1039
+ ],
1040
+ "stateMutability": "nonpayable",
1041
+ "type": "function"
1042
+ },
1043
+ {
1044
+ "inputs": [
1045
+ {
1046
+ "internalType": "address",
1047
+ "name": "receiver",
1048
+ "type": "address"
1049
+ },
1050
+ {
1051
+ "internalType": "address",
1052
+ "name": "market",
1053
+ "type": "address"
1054
+ },
1055
+ {
1056
+ "internalType": "uint256",
1057
+ "name": "netLpToRemove",
1058
+ "type": "uint256"
1059
+ },
1060
+ {
1061
+ "internalType": "uint256",
1062
+ "name": "minPtOut",
1063
+ "type": "uint256"
1064
+ },
1065
+ {
1066
+ "components": [
1067
+ {
1068
+ "internalType": "uint256",
1069
+ "name": "guessMin",
1070
+ "type": "uint256"
1071
+ },
1072
+ {
1073
+ "internalType": "uint256",
1074
+ "name": "guessMax",
1075
+ "type": "uint256"
1076
+ },
1077
+ {
1078
+ "internalType": "uint256",
1079
+ "name": "guessOffchain",
1080
+ "type": "uint256"
1081
+ },
1082
+ {
1083
+ "internalType": "uint256",
1084
+ "name": "maxIteration",
1085
+ "type": "uint256"
1086
+ },
1087
+ {
1088
+ "internalType": "uint256",
1089
+ "name": "eps",
1090
+ "type": "uint256"
1091
+ }
1092
+ ],
1093
+ "internalType": "struct ApproxParams",
1094
+ "name": "guessPtOut",
1095
+ "type": "tuple"
1096
+ }
1097
+ ],
1098
+ "name": "removeLiquiditySinglePt",
1099
+ "outputs": [
1100
+ {
1101
+ "internalType": "uint256",
1102
+ "name": "netPtOut",
1103
+ "type": "uint256"
1104
+ },
1105
+ {
1106
+ "internalType": "uint256",
1107
+ "name": "netScyFee",
1108
+ "type": "uint256"
1109
+ }
1110
+ ],
1111
+ "stateMutability": "nonpayable",
1112
+ "type": "function"
1113
+ },
1114
+ {
1115
+ "inputs": [
1116
+ {
1117
+ "internalType": "address",
1118
+ "name": "receiver",
1119
+ "type": "address"
1120
+ },
1121
+ {
1122
+ "internalType": "address",
1123
+ "name": "market",
1124
+ "type": "address"
1125
+ },
1126
+ {
1127
+ "internalType": "uint256",
1128
+ "name": "netLpToRemove",
1129
+ "type": "uint256"
1130
+ },
1131
+ {
1132
+ "internalType": "uint256",
1133
+ "name": "minScyOut",
1134
+ "type": "uint256"
1135
+ }
1136
+ ],
1137
+ "name": "removeLiquiditySingleScy",
1138
+ "outputs": [
1139
+ {
1140
+ "internalType": "uint256",
1141
+ "name": "netScyOut",
1142
+ "type": "uint256"
1143
+ },
1144
+ {
1145
+ "internalType": "uint256",
1146
+ "name": "netScyFee",
1147
+ "type": "uint256"
1148
+ }
1149
+ ],
1150
+ "stateMutability": "nonpayable",
1151
+ "type": "function"
1152
+ },
1153
+ {
1154
+ "inputs": [
1155
+ {
1156
+ "internalType": "address",
1157
+ "name": "receiver",
1158
+ "type": "address"
1159
+ },
1160
+ {
1161
+ "internalType": "address",
1162
+ "name": "market",
1163
+ "type": "address"
1164
+ },
1165
+ {
1166
+ "internalType": "uint256",
1167
+ "name": "netLpToRemove",
1168
+ "type": "uint256"
1169
+ },
1170
+ {
1171
+ "components": [
1172
+ {
1173
+ "internalType": "address",
1174
+ "name": "tokenOut",
1175
+ "type": "address"
1176
+ },
1177
+ {
1178
+ "internalType": "uint256",
1179
+ "name": "minTokenOut",
1180
+ "type": "uint256"
1181
+ },
1182
+ {
1183
+ "internalType": "address",
1184
+ "name": "tokenRedeemScy",
1185
+ "type": "address"
1186
+ },
1187
+ {
1188
+ "internalType": "bytes",
1189
+ "name": "kybercall",
1190
+ "type": "bytes"
1191
+ }
1192
+ ],
1193
+ "internalType": "struct TokenOutput",
1194
+ "name": "output",
1195
+ "type": "tuple"
1196
+ }
1197
+ ],
1198
+ "name": "removeLiquiditySingleToken",
1199
+ "outputs": [
1200
+ {
1201
+ "internalType": "uint256",
1202
+ "name": "netTokenOut",
1203
+ "type": "uint256"
1204
+ },
1205
+ {
1206
+ "internalType": "uint256",
1207
+ "name": "netScyFee",
1208
+ "type": "uint256"
1209
+ }
1210
+ ],
1211
+ "stateMutability": "nonpayable",
1212
+ "type": "function"
1213
+ }
1214
+ ],
1215
+ "bytecode": "0x60a06040523480156200001157600080fd5b5060405162004c2a38038062004c2a833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b608051614b89620000a16000396000818160a301528181612eab0152612f780152614b896000f3fe60806040526004361061008c5760003560e01c80631ef6f327146100915780631f8dfdf0146100db578063226c71f6146101095780633af1f32914610138578063694ab559146101585780637307a7a5146101785780639b4def431461018b578063eda0b715146101ab578063f17b8c4a146101cb578063f3a411b8146101de578063febde725146101fe575b600080fd5b34801561009d57600080fd5b506100c57f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d291906141a8565b60405180910390f35b3480156100e757600080fd5b506100fb6100f63660046141e6565b61021e565b6040516100d2929190614243565b34801561011557600080fd5b50610129610124366004614251565b61031c565b6040516100d2939291906142a2565b34801561014457600080fd5b506100fb6101533660046141e6565b61054d565b34801561016457600080fd5b506100fb6101733660046141e6565b6107fe565b6101296101863660046142b8565b610ad0565b34801561019757600080fd5b506100fb6101a636600461431d565b610ea8565b3480156101b757600080fd5b506100fb6101c6366004614251565b610f34565b6100fb6101d9366004614375565b611070565b3480156101ea57600080fd5b506100fb6101f93660046143f4565b611177565b34801561020a57600080fd5b506100fb610219366004614459565b611379565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610262573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028691906144c4565b9193509091506102a390506001600160a01b038316338a8a61148e565b6102b18989838a8a8a6114ec565b8094508195505050886001600160a01b0316886001600160a01b0316336001600160a01b03167f6420656ef082773859a20b33d5e3ccc7f1a226c9477622c5c819c8cc097823388a88604051610308929190614243565b60405180910390a450509550959350505050565b6000806000806000886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610362573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038691906144c4565b50915091506000896001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f0919061455b565b90506103fe818a8a426116c6565b919850965094505086861015610434578587604051636a1dbf1b60e01b815260040161042b929190614243565b60405180910390fd5b6104496001600160a01b038416338c8861148e565b61045e6001600160a01b038316338c8761148e565b604051630ab714fb60e11b81526001600160a01b038b169063156e29f69061048e908e90899089906004016145dd565b6060604051808303816000875af11580156104ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d191906145fe565b5090965050868610156104e6576104e661462c565b8a6001600160a01b03168a6001600160a01b0316336001600160a01b03167f0db691c6956ae614f5038616009ba884fade551caf94d16b641a94c578841d6088888b604051610537939291906142a2565b60405180910390a4505050955095509592505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b591906144c4565b92509250506000886001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f919061455b565b90506000610653610638846001600160a01b0316611731565b8a42610649368c90038c018c614642565b869392919061179d565b5090915061066e90506001600160a01b038516338c8c61148e565b604080516000808252602082019283905263d8e763c160e01b9092526001600160a01b038c169063d8e763c1906106ac908e90869060248101614701565b60408051808303816000875af11580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ee9190614728565b965090506001600160a01b038b1663156e29f68d8361070d868f614762565b6040518463ffffffff1660e01b815260040161072b939291906145dd565b6060604051808303816000875af115801561074a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076e91906145fe565b509097505088871015610798578689604051636a1dbf1b60e01b815260040161042b929190614243565b8b6001600160a01b03168b6001600160a01b0316336001600160a01b03167fc87b85efc5055ef177e0092af0d4e624fff4b1d57db748857f65e4b7e4a28a368d8b6040516107e7929190614243565b60405180910390a450505050509550959350505050565b6000806000866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610841573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086591906144c4565b925061087f9150506001600160a01b03881633898961148e565b6000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156108c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e4919061455b565b90506000806108f3838a6119a9565b91509150600061092961090e866001600160a01b0316611731565b844261091f368d90038d018d614642565b88939291906119e4565b509050886109378284614775565b1015610963576109478183614775565b89604051634e6ffe4760e11b815260040161042b929190614243565b8a6001600160a01b031663f6b911bc8c8e8d6040518463ffffffff1660e01b815260040161099393929190614788565b60408051808303816000875af11580156109b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d59190614728565b604080516000815260208101918290526307bb0e7160e41b9091529093506001600160a01b038d169150637bb0e71090610a16908f90859060248101614701565b60408051808303816000875af1158015610a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a589190614728565b9650899050610a678284614775565b1015610a7557610a7561462c565b610a7f8183614775565b96508b6001600160a01b03168b6001600160a01b0316336001600160a01b03167fac97b87f5422fa3beec99bff8f336310d8ebc7d33d909b7d534cd7c72f61e8718d8b6040516107e7929190614243565b6000806000806000896001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3a91906144c4565b50915091506000826001600160a01b031663b8f82b268b8b6040518363ffffffff1660e01b8152600401610b6f9291906147ac565b602060405180830381865afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb091906147c5565b90506000808c6001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c18919061455b565b9050610c2681848c426116c6565b919a509097509250505087871015610c55578688604051636a1dbf1b60e01b815260040161042b929190614243565b610c6a6001600160a01b038416338e8861148e565b610c7e82610c78838d6147de565b90611ae7565b95506001600160a01b038b16610d2957610c998b338c611b11565b836001600160a01b03166320e8c565878e8e8a866040518663ffffffff1660e01b8152600401610ccc94939291906147f5565b60206040518083038185885af1158015610cea573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d0f91906147c5565b50610d248b33610d1f898e614762565b611b7d565b610db5565b610d348b3388611b11565b610d3e8b85611c41565b6040516320e8c56560e01b81526001600160a01b038516906320e8c56590610d70908f908f908b9087906004016147f5565b6020604051808303816000875af1158015610d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db391906147c5565b505b8b6001600160a01b031663156e29f68e83886040518463ffffffff1660e01b8152600401610de5939291906145dd565b6060604051808303816000875af1158015610e04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2891906145fe565b509097505087871015610e3d57610e3d61462c565b604080516001600160a01b038d81168252602082018d905291810187905260608101899052818f16918e169033907f7f646a534401967ac0913451efea28d9e170ffc164efa98e3957cde363c0245f9060800160405180910390a45050505096509650969350505050565b600080610ec06001600160a01b03861633878761148e565b610ecc86868686611cf9565b8092508193505050856001600160a01b0316856001600160a01b0316336001600160a01b03167fbc3c499a1de793e234d84bc867d7a02572ffafdb65cb029004f3df0db19e1e108786604051610f23929190614243565b60405180910390a494509492505050565b600080610f4c6001600160a01b03871633888861148e565b604051633dae446f60e21b81526001600160a01b0387169063f6b911bc90610f7c908a9081908a90600401614788565b60408051808303816000875af1158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190614728565b909250905083821015610fe857818460405163cb95352560e01b815260040161042b929190614243565b8281101561100d578083604051634e6ffe4760e11b815260040161042b929190614243565b866001600160a01b0316866001600160a01b0316336001600160a01b03167f5679d08d637341ee04c1fc1dd03601a3a56736e677507260a2ade55bad840b7d88858760405161105e939291906142a2565b60405180910390a49550959350505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d891906144c4565b925050915060006110ec8984600189611db4565b90506110fc8a8a84848c8c6114ec565b909550935061110e602087018761481e565b6001600160a01b0316896001600160a01b0316336001600160a01b03167ff83776e5b667a2b471f92ddfd482749c61b5328b832d375097638c2c08818f3b8d8a602001358a604051611162939291906145dd565b60405180910390a45050509550959350505050565b6000806000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156111ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111de91906144c4565b509091506111f990506001600160a01b038916338a8a61148e565b604051633dae446f60e21b81526000906001600160a01b038a169063f6b911bc9061122c9085908e908d90600401614788565b60408051808303816000875af115801561124a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126e9190614728565b60405163769f8e5d60e01b81529094509091506001600160a01b0383169063769f8e5d906112a9908d9085908c908c9060019060040161483b565b6020604051808303816000875af11580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec91906147c5565b935084831015611313578285604051634e6ffe4760e11b815260040161042b929190614243565b60408051898152602081018590526001600160a01b03898116828401526060820187905291518c8316928c169133917f0eed48ee59ddaf7384d334727280158b7a75d5e84baa5614200f0506f08bb4fb9181900360800190a45050965096945050505050565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156113bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e091906144c4565b509091506113fb90506001600160a01b03871633888861148e565b600061140a8288886001611cf9565b9350905061141c888383886000611f52565b935061142b602086018661481e565b6001600160a01b0316876001600160a01b0316336001600160a01b03167f3fff08e8137afe866dce7ced13ddc12d684db61b80b0ac5cb9e54961c9dd8a218b8a8960405161147b939291906145dd565b60405180910390a4505094509492505050565b6114e6846323b872dd60e01b8585856040516024016114af93929190614788565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612142565b50505050565b6000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611530573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611554919061455b565b9050600061158861156d896001600160a01b0316611731565b884261157e368a90038a018a614642565b8693929190612214565b505060408051600080825260208201928390526307bb0e7160e41b909252919250906001600160a01b038b1690637bb0e710906115cc908d90869060248101614701565b60408051808303816000875af11580156115ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160e9190614728565b945090506001600160a01b038a1663156e29f68c61162c848c614762565b856040518463ffffffff1660e01b815260040161164b939291906145dd565b6060604051808303816000875af115801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168e91906145fe565b5090955050868510156116b8578487604051636a1dbf1b60e01b815260040161042b929190614243565b505050965096945050505050565b6000806000806000806000806116ee8c6116df8d6123d9565b6116e88d6123d9565b8c6123f3565b93509350935093506116ff846125ab565b975061170a836125ab565b9650611715826125ab565b9550611720816125ab565b945050505050945094509450949050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611773573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179791906147c5565b92915050565b60008060008060405180608001604052808a81526020018981526020018881526020018781525090508060000151604001516000036117ee5760405162461bcd60e51b815260040161042b9061486f565b602081015160608201518251600092611806926125ba565b9050600061182f87600061182a866040015161182587602001516126b4565b6126cb565b6126e1565b9050611843816020015184604001516126cb565b602082015260005b81606001518110156119845760008061186e8486886000015160000151866127ac565b915091508161188257602084015250611974565b6000806118998860000151888a6020015186612814565b915091506000806000856118b48c60000151600001516125ab565b6118be9190614775565b90506000868c604001516118d29190614762565b9050600085876118e98f60000151602001516125ab565b6118f39190614762565b6118fd9190614762565b905061190983886147de565b945061191581836147de565b935050505061192982828a60800151612856565b156119435750929a50909850965061199e95505050505050565b80821161195c57611955856001614775565b885261196d565b611967600186614762565b60208901525b5050505050505b61197d81614897565b905061184b565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6000806000806119c1866119bc876123d9565b61289f565b915091506119ce826125ab565b93506119d9816125ab565b925050509250929050565b604080516080810182528681526020810186905290810184905260608101839052600090819081611a168989886125ba565b90506000611a37866000611a328587600001516000015161296a565b612a07565b905060005b8160600151811015611984576000611a548383612a39565b9050600080611a6d876000015187896020015186612aa5565b9150915086604001518211611ab85782855260408701516080860151600091611a9891859190612ac6565b90508015611ab25750919750909550611add945050505050565b50611ac9565b611ac3600184614762565b60208601525b50505080611ad690614897565b9050611a3c565b9550959350505050565b6000816001611af68286614775565b611b009190614762565b611b0a91906148c6565b9392505050565b6001600160a01b038316611b6257803414611b5d5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b604482015260640161042b565b505050565b8015611b5d57611b5d6001600160a01b03841683308461148e565b80600003611b8a57505050565b6001600160a01b038316611c2d576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611be5576040519150601f19603f3d011682016040523d82523d6000602084013e611bea565b606091505b50509050806114e65760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b604482015260640161042b565b611b5d6001600160a01b0384168383612af4565b6001600160a01b038216611c53575050565b611c6560026001600160601b036148da565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015611cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce291906147c5565b1015611cf557611cf58282600019612b13565b5050565b600080846001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5e9190614900565b15611d7557611d6e868686612c27565b9150611d86565b611d80868686612d8b565b90925090505b82821015611dab57818360405163cb95352560e01b815260040161042b929190614243565b94509492505050565b6000611dd1611dc6602084018461481e565b338460200135611b11565b611de1606083016040840161481e565b6001600160a01b0316611df7602084018461481e565b6001600160a01b031614611e6157611e61611e15602084018461481e565b6020840135611e276060860186614922565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ea592505050565b611e7a611e74606084016040850161481e565b85611c41565b6000611e94611e8f606085016040860161481e565b612f9f565b9050600080611ea9606086016040870161481e565b6001600160a01b031614611ebe576000611ec0565b815b90506001600160a01b0386166320e8c5658289611ee36060890160408a0161481e565b868a6040518663ffffffff1660e01b8152600401611f0494939291906147f5565b60206040518083038185885af1158015611f22573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f4791906147c5565b979650505050505050565b60008115611f6f57611f6f6001600160a01b03861633878761148e565b611f7c602084018461481e565b6001600160a01b0316611f95606085016040860161481e565b6001600160a01b031603612035576001600160a01b03851663769f8e5d8786611fc4606088016040890161481e565b876020013560016040518663ffffffff1660e01b8152600401611feb95949392919061483b565b6020604051808303816000875af115801561200a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202e91906147c5565b9050612139565b60006001600160a01b03861663769f8e5d30876120586060890160408a0161481e565b6001806040518663ffffffff1660e01b815260040161207b95949392919061483b565b6020604051808303816000875af115801561209a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120be91906147c5565b90506120e16120d3606086016040870161481e565b82611e276060880188614922565b6120f1611e8f602086018661481e565b915083602001358210156121205781846020013560405163c5b5576d60e01b815260040161042b929190614243565b612137612130602086018661481e565b8884611b7d565b505b95945050505050565b6000612197826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166130299092919063ffffffff16565b805190915015611b5d57808060200190518101906121b59190614900565b611b5d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161042b565b60008060008060405180608001604052808a81526020018981526020018881526020018781525090508060000151604001516000036122655760405162461bcd60e51b815260040161042b9061486f565b60208101516060820151825160009261227d926125ba565b90506000612299876000611a328587600001516000015161296a565b905060005b81606001518110156119845760006122b68383612a39565b90506000806122cf876000015187896020015186612aa5565b9150915086604001518211156122f8576122ea600184614762565b6020860152506123c9915050565b6000806000848a6040015161230d9190614762565b90506000866123238c60000151600001516125ab565b61232d9190614762565b9050600085876123408d602001516125ab565b61234a9190614775565b6123549190614762565b905061236081896147de565b935061236c82846147de565b945050505061238081838960800151612856565b156123995750929950909750955061199e945050505050565b8181116123b2576123ab856001614775565b87526123c3565b6123bd600186614762565b60208801525b50505050505b6123d281614897565b905061229e565b60006001600160ff1b038211156123ef57600080fd5b5090565b6000808080861580612403575085155b15612421576040516325daaec360e01b815260040160405180910390fd5b60c088015185106124455760405163b2094b5960e01b815260040160405180910390fd5b8760400151600003612492576103e861247661247161246c6124678a8c61496f565b6125ab565b613038565b6123d9565b612480919061499f565b92506103e89350869150859050612535565b87516040890151600091906124a7908961496f565b6124b191906149c6565b9050600089602001518a604001518a6124ca919061496f565b6124d491906149c6565b90508082121561250a578194508792508960400151858b602001516124f9919061496f565b61250391906149c6565b9350612532565b8094508893508960400151858b60000151612525919061496f565b61252f91906149c6565b92505b50505b8260000361255657604051631997ea8d60e31b815260040160405180910390fd5b818860200181815161256891906149f4565b90525087518190899061257c9083906149f4565b90525061258984846149f4565b8860400181815161259a91906149f4565b905250929791965094509092509050565b6000808212156123ef57600080fd5b6125e56040518060800160405280600081526020016000815260200160008152602001600081525090565b60c084015182106126095760405163b2094b5960e01b815260040160405180910390fd5b6000828560c0015161261b9190614762565b905061262785826130a8565b82526020850151612639908590613104565b60208301528451158061264e57506020820151155b15612675578451602083015160405163b1c4aefb60e01b815261042b929190600401614243565b6126938560000151866101000151846020015185600001518561313b565b604083015260a08501516126a790826131bc565b6060830152509392505050565b600060016126c1836125ab565b6117979190614762565b60008183106126da5781611b0a565b5090919050565b61271a6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b835161272690846131f0565b8152602084015161273790836126cb565b60208201819052815111806127575750670de0b6b3a76400008460800151115b1561278457835160208501516080860151604051632cc06bc160e21b815261042b939291906004016142a2565b6040808501519082015260608085015190820152608093840151938101939093525090919050565b60008060006127bb8785612a39565b90508660a0015181116127d357600192509050611dab565b60006127e887876127e3856123d9565b6131ff565b905060008112156127ff5750600092509050611dab565b5060a096909601869052506001959350505050565b6000806000806128318787612828886132f1565b8b929190613308565b9150915061283e826125ab565b9350612849816125ab565b9250505094509492505050565b6000836128748461286f85670de0b6b3a7640000614762565b61344e565b1115801561289757506128938361286f84670de0b6b3a7640000614775565b8411155b949350505050565b600080826000036128c3576040516325daaec360e01b815260040160405180910390fd5b604084015160208501516128d7908561496f565b6128e191906149c6565b60408501518551919350906128f6908561496f565b61290091906149c6565b905081158061290d575080155b1561292b57604051631997ea8d60e31b815260040160405180910390fd5b604084015161293a908461346e565b6040850152835161294b908261346e565b8452602084015161295c908361346e565b602090940193909352929050565b60008061299761299285600001518660400151876060015161298c919061499f565b906134b5565b6134d8565b905060006129b76129b0670de0b6b3a7640000846149f4565b83906138ed565b905060006129d58660200151866129ce91906149f4565b83906134b5565b905060006129e3828761499f565b90506103e86129f1826125ab565b6129fd906103e76147de565b611f4791906148c6565b61271a6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081158015612a4c5750604083015115155b15612a5c57506040820151611797565b6020830151835111612a8c5760208301518351600291612a7b91614775565b612a8591906148c6565b9050611797565b604051637d388ed960e11b815260040160405180910390fd5b600080600080612ab98787612828886123d9565b9150915061283e82613913565b60008284111580156128975750612ae98361286f84670de0b6b3a7640000614762565b909310159392505050565b611b5d8363a9059cbb60e01b84846040516024016114af9291906147ac565b600080846001600160a01b031663095ea7b360e01b8585604051602401612b3b9291906147ac565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612b799190614a1c565b6000604051808303816000865af19150503d8060008114612bb6576040519150601f19603f3d011682016040523d82523d6000602084013e612bbb565b606091505b5091509150818015612be5575080511580612be5575080806020019051810190612be59190614900565b612c205760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161042b565b5050505050565b600080836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8c91906144c4565b925050506000846001600160a01b031663f6b911bc8784876040518463ffffffff1660e01b8152600401612cc293929190614788565b60408051808303816000875af1158015612ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d049190614728565b5060405163bcb7ea5d60e01b81529091506001600160a01b0383169063bcb7ea5d90612d349089906004016141a8565b6020604051808303816000875af1158015612d53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d7791906147c5565b612d819082614775565b9695505050505050565b600080600080856001600160a01b031663f6b911bc8888886040518463ffffffff1660e01b8152600401612dc193929190614788565b60408051808303816000875af1158015612ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e039190614728565b604080516000808252602082019283905263d8e763c160e01b909252929450909250906001600160a01b0388169063d8e763c190612e48908b90869060248101614701565b60408051808303816000875af1158015612e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8a9190614728565b94509050612e988184614775565b9450505050935093915050565b612ecf837f0000000000000000000000000000000000000000000000000000000000000000611c41565b60405163726d379760e11b815260009073__$802f57dc5d2627d21bbb7805eff3c348c4$__9063e4da6f2e90612f0b9085908790600401614a38565b600060405180830381865af4158015612f28573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f509190810190614a5a565b9050612c20816001600160a01b03861615612f6c576000612f6e565b845b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190613925565b60006001600160a01b03821615613022576040516370a0823160e01b81526001600160a01b038316906370a0823190612fdc9030906004016141a8565b602060405180830381865afa158015612ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061301d91906147c5565b611797565b4792915050565b60606128978484600085613947565b6000600382111561309957508060006130526002836148c6565b61305d906001614775565b90505b818110156130935790508060028161307881866148c6565b6130829190614775565b61308c91906148c6565b9050613060565b50919050565b81156130a3575060015b919050565b60006130b3826123d9565b6130c56124716201518061016d6147de565b84608001516130d4919061496f565b6130de91906149c6565b90506000811361179757604051630e520c3b60e11b81526004810182905260240161042b565b6000806000831261311657600161311a565b6000195b90506131316124718561312c86613913565b613a6d565b612897908261496f565b60008061314886846131bc565b9050670de0b6b3a76400008112156131765760405163329e322960e21b81526004810182905260240161042b565b600061318c613185878a6149f4565b89906138ed565b9050600061319982613a82565b90506131a581876138ed565b6131af908461499f565b9998505050505050505050565b6000806131ce6201518061016d6147de565b6131d884866147de565b6131e291906148c6565b9050612897612992826123d9565b60008183116126da5781611b0a565b600080828560200151613212919061499f565b9050600061322085856149f4565b90506000821380156132325750600081135b6132735760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b604482015260640161042b565b60006132a1613282848461496f565b602089015161329190896149f4565b61329b908861496f565b906138ed565b905060006132b76132b284866138ed565b613ad1565b88519091506000906132d290670de0b6b3a7640000906138ed565b90506132e28161298c848661499f565b89604001516131af919061499f565b60006132fc826123d9565b6117979060001961496f565b600080600061332a876000015187602001518860000151896040015188613b5d565b9050600061334061333b86846138ed565b613c0e565b606088015190915060008613156133af57600061335d84836138ed565b9050670de0b6b3a764000081121561338b5760405163329e322960e21b81526004810182905260240161042b565b6133a76133a083670de0b6b3a764000061499f565b84906134b5565b9150506133dc565b6133d9816133c581670de0b6b3a764000061499f565b6133cf908561496f565b61333b91906149c6565b90505b600060646133ed8b60e001516123d9565b6133f7908461496f565b61340191906149c6565b9050600061340f838561499f565b905060008112613428576134238982613c1c565b613432565b6134328982613c49565b965061343e8983613c1c565b9550505050505094509492505050565b60008061345b83856147de565b670de0b6b3a76400009004949350505050565b6000818312156134ab5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b604482015260640161042b565b611b0a828461499f565b6000806134c2838561496f565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff1982121580156134fd575068070c1cc73b00c800008213155b61353c5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161042b565b600082121561357457613551826000036134d8565b6a0c097ce7bc90715b34b9f160241b8161356d5761356d6148b0565b0592915050565b60006806f05b59d3b200000083126135b257506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6135e8565b6803782dace9d900000083126135e457506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806135e8565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126136385768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412613674576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126136ae57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126136e8576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261372157680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d63100000841261375a5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412613793576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126137cc5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080613902670de0b6b3a76400008561496f565b90508281816134cf576134cf6148b0565b60008082136123ef5761301d82614afb565b6060612897848484604051806060016040528060298152602001614b2b602991395b6060824710156139a85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161042b565b6001600160a01b0385163b6139ff5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161042b565b600080866001600160a01b03168587604051613a1b9190614a1c565b60006040518083038185875af1925050503d8060008114613a58576040519150601f19603f3d011682016040523d82523d6000602084013e613a5d565b606091505b5091509150611f47828286613c76565b6000670de0b6b3a7640000611b0084846147de565b6000670de0b6b3a76400008203613aac5760405163a9c8b14d60e01b815260040160405180910390fd5b6000613aca613ac384670de0b6b3a764000061499f565b84906138ed565b9050611b0a815b6000808213613b125760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015260640161042b565b670c7d713b49da000082138015613b305750670f43fc2c04ee000082125b15613b5457670de0b6b3a7640000613b4783613caf565b8161356d5761356d6148b0565b61179782613dce565b600080613b6a878461346e565b90506000613b7b6129b0888a6149f4565b9050670d529ae9e8600000811315613bb25780670d529ae9e8600000604051637e34684f60e11b815260040161042b929190614243565b6000613bbd82613a82565b905085613bca82896138ed565b613bd491906149f4565b9350670de0b6b3a7640000841215613c025760405163329e322960e21b81526004810185905260240161042b565b50505095945050505050565b60006117978260001961496f565b60008060008312613c2e576001613c32565b6000195b905061313161247185613c4486613913565b614171565b60008060008312613c5b576001613c5f565b6000195b905061313161247185613c7186613913565b614186565b60608315613c85575081611b0a565b825115613c955782518084602001fd5b8160405162461bcd60e51b815260040161042b9190614b17565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281613cf057613cf06148b0565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215613e0f57613e06826a0c097ce7bc90715b34b9f160241b81613e0057613e006148b0565b05613dce565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312613e5a5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312613e91576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312613ed9576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312613f14576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312613f4b57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312613f8257690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312613fb75768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312613fe257680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312614017576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f1775788937937831261404c576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312614080576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126140b4576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d6310000080860302816140dd576140dd6148b0565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b600082611b00670de0b6b3a7640000846147de565b60008260018161419e670de0b6b3a7640000866147de565b611af69190614775565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146141d157600080fd5b50565b600060a0828403121561309357600080fd5b600080600080600061012086880312156141ff57600080fd5b853561420a816141bc565b9450602086013561421a816141bc565b9350604086013592506060860135915061423787608088016141d4565b90509295509295909350565b918252602082015260400190565b600080600080600060a0868803121561426957600080fd5b8535614274816141bc565b94506020860135614284816141bc565b94979496505050506040830135926060810135926080909101359150565b9283526020830191909152604082015260600190565b60008060008060008060c087890312156142d157600080fd5b86356142dc816141bc565b955060208701356142ec816141bc565b945060408701356142fc816141bc565b959894975094956060810135955060808101359460a0909101359350915050565b6000806000806080858703121561433357600080fd5b843561433e816141bc565b9350602085013561434e816141bc565b93969395505050506040820135916060013590565b60006080828403121561309357600080fd5b6000806000806000610120868803121561438e57600080fd5b8535614399816141bc565b945060208601356143a9816141bc565b9350604086013592506143bf87606088016141d4565b91506101008601356001600160401b038111156143db57600080fd5b6143e788828901614363565b9150509295509295909350565b60008060008060008060c0878903121561440d57600080fd5b8635614418816141bc565b95506020870135614428816141bc565b945060408701359350606087013561443f816141bc565b9598949750929560808101359460a0909101359350915050565b6000806000806080858703121561446f57600080fd5b843561447a816141bc565b9350602085013561448a816141bc565b92506040850135915060608501356001600160401b038111156144ac57600080fd5b6144b887828801614363565b91505092959194509250565b6000806000606084860312156144d957600080fd5b83516144e4816141bc565b60208501519093506144f5816141bc565b6040850151909250614506816141bc565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171561454a5761454a614511565b60405290565b80516130a3816141bc565b6000610120828403121561456e57600080fd5b614576614527565b82518152602083015160208201526040830151604082015261459a60608401614550565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6001600160a01b039390931683526020830191909152604082015260600190565b60008060006060848603121561461357600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052600160045260246000fd5b600060a0828403121561465457600080fd5b60405160a081016001600160401b038111828210171561467657614676614511565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b60005b838110156146cc5781810151838201526020016146b4565b50506000910152565b600081518084526146ed8160208601602086016146b1565b601f01601f19169290920160200192915050565b60018060a01b038416815282602082015260606040820152600061213960608301846146d5565b6000806040838503121561473b57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b818103818111156117975761179761474c565b808201808211156117975761179761474c565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6000602082840312156147d757600080fd5b5051919050565b80820281158282048414176117975761179761474c565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b60006020828403121561483057600080fd5b8135611b0a816141bc565b6001600160a01b03958616815260208101949094529190931660408301526060820192909252901515608082015260a00190565b6020808252600e908201526d06e6f206578697374696e67206c760941b604082015260600190565b6000600182016148a9576148a961474c565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826148d5576148d56148b0565b500490565b60006001600160601b03838116806148f4576148f46148b0565b92169190910492915050565b60006020828403121561491257600080fd5b81518015158114611b0a57600080fd5b6000808335601e1984360301811261493957600080fd5b8301803591506001600160401b0382111561495357600080fd5b60200191503681900382131561496857600080fd5b9250929050565b80820260008212600160ff1b8414161561498b5761498b61474c565b81810583148215176117975761179761474c565b81810360008312801583831316838312821617156149bf576149bf61474c565b5092915050565b6000826149d5576149d56148b0565b600160ff1b8214600019841416156149ef576149ef61474c565b500590565b8082018281126000831280158216821582161715614a1457614a1461474c565b505092915050565b60008251614a2e8184602087016146b1565b9190910192915050565b604081526000614a4b60408301856146d5565b90508260208301529392505050565b600060208284031215614a6c57600080fd5b81516001600160401b0380821115614a8357600080fd5b818401915084601f830112614a9757600080fd5b815181811115614aa957614aa9614511565b604051601f8201601f19908116603f01168101908382118183101715614ad157614ad1614511565b81604052828152876020848701011115614aea57600080fd5b611f478360208301602088016146b1565b6000600160ff1b8201614b1057614b1061474c565b5060000390565b602081526000611b0a60208301846146d556fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220003f718c44c5b0b5af53d962447d83de446d1e09411db3c5f949e714036e737064736f6c63430008110033",
1216
+ "deployedBytecode": "0x60806040526004361061008c5760003560e01c80631ef6f327146100915780631f8dfdf0146100db578063226c71f6146101095780633af1f32914610138578063694ab559146101585780637307a7a5146101785780639b4def431461018b578063eda0b715146101ab578063f17b8c4a146101cb578063f3a411b8146101de578063febde725146101fe575b600080fd5b34801561009d57600080fd5b506100c57f000000000000000000000000000000000000000000000000000000000000000081565b6040516100d291906141a8565b60405180910390f35b3480156100e757600080fd5b506100fb6100f63660046141e6565b61021e565b6040516100d2929190614243565b34801561011557600080fd5b50610129610124366004614251565b61031c565b6040516100d2939291906142a2565b34801561014457600080fd5b506100fb6101533660046141e6565b61054d565b34801561016457600080fd5b506100fb6101733660046141e6565b6107fe565b6101296101863660046142b8565b610ad0565b34801561019757600080fd5b506100fb6101a636600461431d565b610ea8565b3480156101b757600080fd5b506100fb6101c6366004614251565b610f34565b6100fb6101d9366004614375565b611070565b3480156101ea57600080fd5b506100fb6101f93660046143f4565b611177565b34801561020a57600080fd5b506100fb610219366004614459565b611379565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610262573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028691906144c4565b9193509091506102a390506001600160a01b038316338a8a61148e565b6102b18989838a8a8a6114ec565b8094508195505050886001600160a01b0316886001600160a01b0316336001600160a01b03167f6420656ef082773859a20b33d5e3ccc7f1a226c9477622c5c819c8cc097823388a88604051610308929190614243565b60405180910390a450509550959350505050565b6000806000806000886001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610362573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038691906144c4565b50915091506000896001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156103cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f0919061455b565b90506103fe818a8a426116c6565b919850965094505086861015610434578587604051636a1dbf1b60e01b815260040161042b929190614243565b60405180910390fd5b6104496001600160a01b038416338c8861148e565b61045e6001600160a01b038316338c8761148e565b604051630ab714fb60e11b81526001600160a01b038b169063156e29f69061048e908e90899089906004016145dd565b6060604051808303816000875af11580156104ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104d191906145fe565b5090965050868610156104e6576104e661462c565b8a6001600160a01b03168a6001600160a01b0316336001600160a01b03167f0db691c6956ae614f5038616009ba884fade551caf94d16b641a94c578841d6088888b604051610537939291906142a2565b60405180910390a4505050955095509592505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610591573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105b591906144c4565b92509250506000886001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156105fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061f919061455b565b90506000610653610638846001600160a01b0316611731565b8a42610649368c90038c018c614642565b869392919061179d565b5090915061066e90506001600160a01b038516338c8c61148e565b604080516000808252602082019283905263d8e763c160e01b9092526001600160a01b038c169063d8e763c1906106ac908e90869060248101614701565b60408051808303816000875af11580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ee9190614728565b965090506001600160a01b038b1663156e29f68d8361070d868f614762565b6040518463ffffffff1660e01b815260040161072b939291906145dd565b6060604051808303816000875af115801561074a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061076e91906145fe565b509097505088871015610798578689604051636a1dbf1b60e01b815260040161042b929190614243565b8b6001600160a01b03168b6001600160a01b0316336001600160a01b03167fc87b85efc5055ef177e0092af0d4e624fff4b1d57db748857f65e4b7e4a28a368d8b6040516107e7929190614243565b60405180910390a450505050509550959350505050565b6000806000866001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610841573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061086591906144c4565b925061087f9150506001600160a01b03881633898961148e565b6000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa1580156108c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e4919061455b565b90506000806108f3838a6119a9565b91509150600061092961090e866001600160a01b0316611731565b844261091f368d90038d018d614642565b88939291906119e4565b509050886109378284614775565b1015610963576109478183614775565b89604051634e6ffe4760e11b815260040161042b929190614243565b8a6001600160a01b031663f6b911bc8c8e8d6040518463ffffffff1660e01b815260040161099393929190614788565b60408051808303816000875af11580156109b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d59190614728565b604080516000815260208101918290526307bb0e7160e41b9091529093506001600160a01b038d169150637bb0e71090610a16908f90859060248101614701565b60408051808303816000875af1158015610a34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a589190614728565b9650899050610a678284614775565b1015610a7557610a7561462c565b610a7f8183614775565b96508b6001600160a01b03168b6001600160a01b0316336001600160a01b03167fac97b87f5422fa3beec99bff8f336310d8ebc7d33d909b7d534cd7c72f61e8718d8b6040516107e7929190614243565b6000806000806000896001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3a91906144c4565b50915091506000826001600160a01b031663b8f82b268b8b6040518363ffffffff1660e01b8152600401610b6f9291906147ac565b602060405180830381865afa158015610b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb091906147c5565b90506000808c6001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015610bf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c18919061455b565b9050610c2681848c426116c6565b919a509097509250505087871015610c55578688604051636a1dbf1b60e01b815260040161042b929190614243565b610c6a6001600160a01b038416338e8861148e565b610c7e82610c78838d6147de565b90611ae7565b95506001600160a01b038b16610d2957610c998b338c611b11565b836001600160a01b03166320e8c565878e8e8a866040518663ffffffff1660e01b8152600401610ccc94939291906147f5565b60206040518083038185885af1158015610cea573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610d0f91906147c5565b50610d248b33610d1f898e614762565b611b7d565b610db5565b610d348b3388611b11565b610d3e8b85611c41565b6040516320e8c56560e01b81526001600160a01b038516906320e8c56590610d70908f908f908b9087906004016147f5565b6020604051808303816000875af1158015610d8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db391906147c5565b505b8b6001600160a01b031663156e29f68e83886040518463ffffffff1660e01b8152600401610de5939291906145dd565b6060604051808303816000875af1158015610e04573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2891906145fe565b509097505087871015610e3d57610e3d61462c565b604080516001600160a01b038d81168252602082018d905291810187905260608101899052818f16918e169033907f7f646a534401967ac0913451efea28d9e170ffc164efa98e3957cde363c0245f9060800160405180910390a45050505096509650969350505050565b600080610ec06001600160a01b03861633878761148e565b610ecc86868686611cf9565b8092508193505050856001600160a01b0316856001600160a01b0316336001600160a01b03167fbc3c499a1de793e234d84bc867d7a02572ffafdb65cb029004f3df0db19e1e108786604051610f23929190614243565b60405180910390a494509492505050565b600080610f4c6001600160a01b03871633888861148e565b604051633dae446f60e21b81526001600160a01b0387169063f6b911bc90610f7c908a9081908a90600401614788565b60408051808303816000875af1158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190614728565b909250905083821015610fe857818460405163cb95352560e01b815260040161042b929190614243565b8281101561100d578083604051634e6ffe4760e11b815260040161042b929190614243565b866001600160a01b0316866001600160a01b0316336001600160a01b03167f5679d08d637341ee04c1fc1dd03601a3a56736e677507260a2ade55bad840b7d88858760405161105e939291906142a2565b60405180910390a49550959350505050565b600080600080876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d891906144c4565b925050915060006110ec8984600189611db4565b90506110fc8a8a84848c8c6114ec565b909550935061110e602087018761481e565b6001600160a01b0316896001600160a01b0316336001600160a01b03167ff83776e5b667a2b471f92ddfd482749c61b5328b832d375097638c2c08818f3b8d8a602001358a604051611162939291906145dd565b60405180910390a45050509550959350505050565b6000806000876001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156111ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111de91906144c4565b509091506111f990506001600160a01b038916338a8a61148e565b604051633dae446f60e21b81526000906001600160a01b038a169063f6b911bc9061122c9085908e908d90600401614788565b60408051808303816000875af115801561124a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126e9190614728565b60405163769f8e5d60e01b81529094509091506001600160a01b0383169063769f8e5d906112a9908d9085908c908c9060019060040161483b565b6020604051808303816000875af11580156112c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ec91906147c5565b935084831015611313578285604051634e6ffe4760e11b815260040161042b929190614243565b60408051898152602081018590526001600160a01b03898116828401526060820187905291518c8316928c169133917f0eed48ee59ddaf7384d334727280158b7a75d5e84baa5614200f0506f08bb4fb9181900360800190a45050965096945050505050565b6000806000856001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa1580156113bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e091906144c4565b509091506113fb90506001600160a01b03871633888861148e565b600061140a8288886001611cf9565b9350905061141c888383886000611f52565b935061142b602086018661481e565b6001600160a01b0316876001600160a01b0316336001600160a01b03167f3fff08e8137afe866dce7ced13ddc12d684db61b80b0ac5cb9e54961c9dd8a218b8a8960405161147b939291906145dd565b60405180910390a4505094509492505050565b6114e6846323b872dd60e01b8585856040516024016114af93929190614788565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612142565b50505050565b6000806000876001600160a01b0316632778c3346040518163ffffffff1660e01b815260040161012060405180830381865afa158015611530573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611554919061455b565b9050600061158861156d896001600160a01b0316611731565b884261157e368a90038a018a614642565b8693929190612214565b505060408051600080825260208201928390526307bb0e7160e41b909252919250906001600160a01b038b1690637bb0e710906115cc908d90869060248101614701565b60408051808303816000875af11580156115ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160e9190614728565b945090506001600160a01b038a1663156e29f68c61162c848c614762565b856040518463ffffffff1660e01b815260040161164b939291906145dd565b6060604051808303816000875af115801561166a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168e91906145fe565b5090955050868510156116b8578487604051636a1dbf1b60e01b815260040161042b929190614243565b505050965096945050505050565b6000806000806000806000806116ee8c6116df8d6123d9565b6116e88d6123d9565b8c6123f3565b93509350935093506116ff846125ab565b975061170a836125ab565b9650611715826125ab565b9550611720816125ab565b945050505050945094509450949050565b6000816001600160a01b0316631d52edc46040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611773573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061179791906147c5565b92915050565b60008060008060405180608001604052808a81526020018981526020018881526020018781525090508060000151604001516000036117ee5760405162461bcd60e51b815260040161042b9061486f565b602081015160608201518251600092611806926125ba565b9050600061182f87600061182a866040015161182587602001516126b4565b6126cb565b6126e1565b9050611843816020015184604001516126cb565b602082015260005b81606001518110156119845760008061186e8486886000015160000151866127ac565b915091508161188257602084015250611974565b6000806118998860000151888a6020015186612814565b915091506000806000856118b48c60000151600001516125ab565b6118be9190614775565b90506000868c604001516118d29190614762565b9050600085876118e98f60000151602001516125ab565b6118f39190614762565b6118fd9190614762565b905061190983886147de565b945061191581836147de565b935050505061192982828a60800151612856565b156119435750929a50909850965061199e95505050505050565b80821161195c57611955856001614775565b885261196d565b611967600186614762565b60208901525b5050505050505b61197d81614897565b905061184b565b50604051637d388ed960e11b815260040160405180910390fd5b955095509592505050565b6000806000806119c1866119bc876123d9565b61289f565b915091506119ce826125ab565b93506119d9816125ab565b925050509250929050565b604080516080810182528681526020810186905290810184905260608101839052600090819081611a168989886125ba565b90506000611a37866000611a328587600001516000015161296a565b612a07565b905060005b8160600151811015611984576000611a548383612a39565b9050600080611a6d876000015187896020015186612aa5565b9150915086604001518211611ab85782855260408701516080860151600091611a9891859190612ac6565b90508015611ab25750919750909550611add945050505050565b50611ac9565b611ac3600184614762565b60208601525b50505080611ad690614897565b9050611a3c565b9550959350505050565b6000816001611af68286614775565b611b009190614762565b611b0a91906148c6565b9392505050565b6001600160a01b038316611b6257803414611b5d5760405162461bcd60e51b815260206004820152600c60248201526b0cae8d040dad2e6dac2e8c6d60a31b604482015260640161042b565b505050565b8015611b5d57611b5d6001600160a01b03841683308461148e565b80600003611b8a57505050565b6001600160a01b038316611c2d576000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611be5576040519150601f19603f3d011682016040523d82523d6000602084013e611bea565b606091505b50509050806114e65760405162461bcd60e51b815260206004820152600f60248201526e195d1a081cd95b990819985a5b1959608a1b604482015260640161042b565b611b5d6001600160a01b0384168383612af4565b6001600160a01b038216611c53575050565b611c6560026001600160601b036148da565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526001600160601b03929092169184169063dd62ed3e90604401602060405180830381865afa158015611cbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce291906147c5565b1015611cf557611cf58282600019612b13565b5050565b600080846001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5e9190614900565b15611d7557611d6e868686612c27565b9150611d86565b611d80868686612d8b565b90925090505b82821015611dab57818360405163cb95352560e01b815260040161042b929190614243565b94509492505050565b6000611dd1611dc6602084018461481e565b338460200135611b11565b611de1606083016040840161481e565b6001600160a01b0316611df7602084018461481e565b6001600160a01b031614611e6157611e61611e15602084018461481e565b6020840135611e276060860186614922565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612ea592505050565b611e7a611e74606084016040850161481e565b85611c41565b6000611e94611e8f606085016040860161481e565b612f9f565b9050600080611ea9606086016040870161481e565b6001600160a01b031614611ebe576000611ec0565b815b90506001600160a01b0386166320e8c5658289611ee36060890160408a0161481e565b868a6040518663ffffffff1660e01b8152600401611f0494939291906147f5565b60206040518083038185885af1158015611f22573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f4791906147c5565b979650505050505050565b60008115611f6f57611f6f6001600160a01b03861633878761148e565b611f7c602084018461481e565b6001600160a01b0316611f95606085016040860161481e565b6001600160a01b031603612035576001600160a01b03851663769f8e5d8786611fc4606088016040890161481e565b876020013560016040518663ffffffff1660e01b8152600401611feb95949392919061483b565b6020604051808303816000875af115801561200a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202e91906147c5565b9050612139565b60006001600160a01b03861663769f8e5d30876120586060890160408a0161481e565b6001806040518663ffffffff1660e01b815260040161207b95949392919061483b565b6020604051808303816000875af115801561209a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120be91906147c5565b90506120e16120d3606086016040870161481e565b82611e276060880188614922565b6120f1611e8f602086018661481e565b915083602001358210156121205781846020013560405163c5b5576d60e01b815260040161042b929190614243565b612137612130602086018661481e565b8884611b7d565b505b95945050505050565b6000612197826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166130299092919063ffffffff16565b805190915015611b5d57808060200190518101906121b59190614900565b611b5d5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161042b565b60008060008060405180608001604052808a81526020018981526020018881526020018781525090508060000151604001516000036122655760405162461bcd60e51b815260040161042b9061486f565b60208101516060820151825160009261227d926125ba565b90506000612299876000611a328587600001516000015161296a565b905060005b81606001518110156119845760006122b68383612a39565b90506000806122cf876000015187896020015186612aa5565b9150915086604001518211156122f8576122ea600184614762565b6020860152506123c9915050565b6000806000848a6040015161230d9190614762565b90506000866123238c60000151600001516125ab565b61232d9190614762565b9050600085876123408d602001516125ab565b61234a9190614775565b6123549190614762565b905061236081896147de565b935061236c82846147de565b945050505061238081838960800151612856565b156123995750929950909750955061199e945050505050565b8181116123b2576123ab856001614775565b87526123c3565b6123bd600186614762565b60208801525b50505050505b6123d281614897565b905061229e565b60006001600160ff1b038211156123ef57600080fd5b5090565b6000808080861580612403575085155b15612421576040516325daaec360e01b815260040160405180910390fd5b60c088015185106124455760405163b2094b5960e01b815260040160405180910390fd5b8760400151600003612492576103e861247661247161246c6124678a8c61496f565b6125ab565b613038565b6123d9565b612480919061499f565b92506103e89350869150859050612535565b87516040890151600091906124a7908961496f565b6124b191906149c6565b9050600089602001518a604001518a6124ca919061496f565b6124d491906149c6565b90508082121561250a578194508792508960400151858b602001516124f9919061496f565b61250391906149c6565b9350612532565b8094508893508960400151858b60000151612525919061496f565b61252f91906149c6565b92505b50505b8260000361255657604051631997ea8d60e31b815260040160405180910390fd5b818860200181815161256891906149f4565b90525087518190899061257c9083906149f4565b90525061258984846149f4565b8860400181815161259a91906149f4565b905250929791965094509092509050565b6000808212156123ef57600080fd5b6125e56040518060800160405280600081526020016000815260200160008152602001600081525090565b60c084015182106126095760405163b2094b5960e01b815260040160405180910390fd5b6000828560c0015161261b9190614762565b905061262785826130a8565b82526020850151612639908590613104565b60208301528451158061264e57506020820151155b15612675578451602083015160405163b1c4aefb60e01b815261042b929190600401614243565b6126938560000151866101000151846020015185600001518561313b565b604083015260a08501516126a790826131bc565b6060830152509392505050565b600060016126c1836125ab565b6117979190614762565b60008183106126da5781611b0a565b5090919050565b61271a6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b835161272690846131f0565b8152602084015161273790836126cb565b60208201819052815111806127575750670de0b6b3a76400008460800151115b1561278457835160208501516080860151604051632cc06bc160e21b815261042b939291906004016142a2565b6040808501519082015260608085015190820152608093840151938101939093525090919050565b60008060006127bb8785612a39565b90508660a0015181116127d357600192509050611dab565b60006127e887876127e3856123d9565b6131ff565b905060008112156127ff5750600092509050611dab565b5060a096909601869052506001959350505050565b6000806000806128318787612828886132f1565b8b929190613308565b9150915061283e826125ab565b9350612849816125ab565b9250505094509492505050565b6000836128748461286f85670de0b6b3a7640000614762565b61344e565b1115801561289757506128938361286f84670de0b6b3a7640000614775565b8411155b949350505050565b600080826000036128c3576040516325daaec360e01b815260040160405180910390fd5b604084015160208501516128d7908561496f565b6128e191906149c6565b60408501518551919350906128f6908561496f565b61290091906149c6565b905081158061290d575080155b1561292b57604051631997ea8d60e31b815260040160405180910390fd5b604084015161293a908461346e565b6040850152835161294b908261346e565b8452602084015161295c908361346e565b602090940193909352929050565b60008061299761299285600001518660400151876060015161298c919061499f565b906134b5565b6134d8565b905060006129b76129b0670de0b6b3a7640000846149f4565b83906138ed565b905060006129d58660200151866129ce91906149f4565b83906134b5565b905060006129e3828761499f565b90506103e86129f1826125ab565b6129fd906103e76147de565b611f4791906148c6565b61271a6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b600081158015612a4c5750604083015115155b15612a5c57506040820151611797565b6020830151835111612a8c5760208301518351600291612a7b91614775565b612a8591906148c6565b9050611797565b604051637d388ed960e11b815260040160405180910390fd5b600080600080612ab98787612828886123d9565b9150915061283e82613913565b60008284111580156128975750612ae98361286f84670de0b6b3a7640000614762565b909310159392505050565b611b5d8363a9059cbb60e01b84846040516024016114af9291906147ac565b600080846001600160a01b031663095ea7b360e01b8585604051602401612b3b9291906147ac565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051612b799190614a1c565b6000604051808303816000865af19150503d8060008114612bb6576040519150601f19603f3d011682016040523d82523d6000602084013e612bbb565b606091505b5091509150818015612be5575080511580612be5575080806020019051810190612be59190614900565b612c205760405162461bcd60e51b815260206004820152600c60248201526b5361666520417070726f766560a01b604482015260640161042b565b5050505050565b600080836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612c68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8c91906144c4565b925050506000846001600160a01b031663f6b911bc8784876040518463ffffffff1660e01b8152600401612cc293929190614788565b60408051808303816000875af1158015612ce0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d049190614728565b5060405163bcb7ea5d60e01b81529091506001600160a01b0383169063bcb7ea5d90612d349089906004016141a8565b6020604051808303816000875af1158015612d53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d7791906147c5565b612d819082614775565b9695505050505050565b600080600080856001600160a01b031663f6b911bc8888886040518463ffffffff1660e01b8152600401612dc193929190614788565b60408051808303816000875af1158015612ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e039190614728565b604080516000808252602082019283905263d8e763c160e01b909252929450909250906001600160a01b0388169063d8e763c190612e48908b90869060248101614701565b60408051808303816000875af1158015612e66573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e8a9190614728565b94509050612e988184614775565b9450505050935093915050565b612ecf837f0000000000000000000000000000000000000000000000000000000000000000611c41565b60405163726d379760e11b815260009073__$802f57dc5d2627d21bbb7805eff3c348c4$__9063e4da6f2e90612f0b9085908790600401614a38565b600060405180830381865af4158015612f28573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612f509190810190614a5a565b9050612c20816001600160a01b03861615612f6c576000612f6e565b845b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190613925565b60006001600160a01b03821615613022576040516370a0823160e01b81526001600160a01b038316906370a0823190612fdc9030906004016141a8565b602060405180830381865afa158015612ff9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061301d91906147c5565b611797565b4792915050565b60606128978484600085613947565b6000600382111561309957508060006130526002836148c6565b61305d906001614775565b90505b818110156130935790508060028161307881866148c6565b6130829190614775565b61308c91906148c6565b9050613060565b50919050565b81156130a3575060015b919050565b60006130b3826123d9565b6130c56124716201518061016d6147de565b84608001516130d4919061496f565b6130de91906149c6565b90506000811361179757604051630e520c3b60e11b81526004810182905260240161042b565b6000806000831261311657600161311a565b6000195b90506131316124718561312c86613913565b613a6d565b612897908261496f565b60008061314886846131bc565b9050670de0b6b3a76400008112156131765760405163329e322960e21b81526004810182905260240161042b565b600061318c613185878a6149f4565b89906138ed565b9050600061319982613a82565b90506131a581876138ed565b6131af908461499f565b9998505050505050505050565b6000806131ce6201518061016d6147de565b6131d884866147de565b6131e291906148c6565b9050612897612992826123d9565b60008183116126da5781611b0a565b600080828560200151613212919061499f565b9050600061322085856149f4565b90506000821380156132325750600081135b6132735760405162461bcd60e51b81526020600482015260126024820152711a5b9d985b1a59081c1d151bd3585c9ad95d60721b604482015260640161042b565b60006132a1613282848461496f565b602089015161329190896149f4565b61329b908861496f565b906138ed565b905060006132b76132b284866138ed565b613ad1565b88519091506000906132d290670de0b6b3a7640000906138ed565b90506132e28161298c848661499f565b89604001516131af919061499f565b60006132fc826123d9565b6117979060001961496f565b600080600061332a876000015187602001518860000151896040015188613b5d565b9050600061334061333b86846138ed565b613c0e565b606088015190915060008613156133af57600061335d84836138ed565b9050670de0b6b3a764000081121561338b5760405163329e322960e21b81526004810182905260240161042b565b6133a76133a083670de0b6b3a764000061499f565b84906134b5565b9150506133dc565b6133d9816133c581670de0b6b3a764000061499f565b6133cf908561496f565b61333b91906149c6565b90505b600060646133ed8b60e001516123d9565b6133f7908461496f565b61340191906149c6565b9050600061340f838561499f565b905060008112613428576134238982613c1c565b613432565b6134328982613c49565b965061343e8983613c1c565b9550505050505094509492505050565b60008061345b83856147de565b670de0b6b3a76400009004949350505050565b6000818312156134ab5760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b604482015260640161042b565b611b0a828461499f565b6000806134c2838561496f565b9050670de0b6b3a7640000815b05949350505050565b6000680238fd42c5cf03ffff1982121580156134fd575068070c1cc73b00c800008213155b61353c5760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b604482015260640161042b565b600082121561357457613551826000036134d8565b6a0c097ce7bc90715b34b9f160241b8161356d5761356d6148b0565b0592915050565b60006806f05b59d3b200000083126135b257506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b6135e8565b6803782dace9d900000083126135e457506803782dace9d8ffffff19909101906b1425982cf597cd205cef73806135e8565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac6200000084126136385768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412613674576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b1880000084126136ae57682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c40000084126136e8576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261372157680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d63100000841261375a5768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b18800008412613793576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126137cc5768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b600080613902670de0b6b3a76400008561496f565b90508281816134cf576134cf6148b0565b60008082136123ef5761301d82614afb565b6060612897848484604051806060016040528060298152602001614b2b602991395b6060824710156139a85760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840161042b565b6001600160a01b0385163b6139ff5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161042b565b600080866001600160a01b03168587604051613a1b9190614a1c565b60006040518083038185875af1925050503d8060008114613a58576040519150601f19603f3d011682016040523d82523d6000602084013e613a5d565b606091505b5091509150611f47828286613c76565b6000670de0b6b3a7640000611b0084846147de565b6000670de0b6b3a76400008203613aac5760405163a9c8b14d60e01b815260040160405180910390fd5b6000613aca613ac384670de0b6b3a764000061499f565b84906138ed565b9050611b0a815b6000808213613b125760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b604482015260640161042b565b670c7d713b49da000082138015613b305750670f43fc2c04ee000082125b15613b5457670de0b6b3a7640000613b4783613caf565b8161356d5761356d6148b0565b61179782613dce565b600080613b6a878461346e565b90506000613b7b6129b0888a6149f4565b9050670d529ae9e8600000811315613bb25780670d529ae9e8600000604051637e34684f60e11b815260040161042b929190614243565b6000613bbd82613a82565b905085613bca82896138ed565b613bd491906149f4565b9350670de0b6b3a7640000841215613c025760405163329e322960e21b81526004810185905260240161042b565b50505095945050505050565b60006117978260001961496f565b60008060008312613c2e576001613c32565b6000195b905061313161247185613c4486613913565b614171565b60008060008312613c5b576001613c5f565b6000195b905061313161247185613c7186613913565b614186565b60608315613c85575081611b0a565b825115613c955782518084602001fd5b8160405162461bcd60e51b815260040161042b9190614b17565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281613cf057613cf06148b0565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a7640000821215613e0f57613e06826a0c097ce7bc90715b34b9f160241b81613e0057613e006148b0565b05613dce565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b8312613e5a5772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b8312613e91576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312613ed9576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a7008312613f14576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf8508312613f4b57693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e28312613f8257690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d038312613fb75768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb417461211108312613fe257680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312614017576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f1775788937937831261404c576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b2866038312614080576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126140b4576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d6310000080860302816140dd576140dd6148b0565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b600082611b00670de0b6b3a7640000846147de565b60008260018161419e670de0b6b3a7640000866147de565b611af69190614775565b6001600160a01b0391909116815260200190565b6001600160a01b03811681146141d157600080fd5b50565b600060a0828403121561309357600080fd5b600080600080600061012086880312156141ff57600080fd5b853561420a816141bc565b9450602086013561421a816141bc565b9350604086013592506060860135915061423787608088016141d4565b90509295509295909350565b918252602082015260400190565b600080600080600060a0868803121561426957600080fd5b8535614274816141bc565b94506020860135614284816141bc565b94979496505050506040830135926060810135926080909101359150565b9283526020830191909152604082015260600190565b60008060008060008060c087890312156142d157600080fd5b86356142dc816141bc565b955060208701356142ec816141bc565b945060408701356142fc816141bc565b959894975094956060810135955060808101359460a0909101359350915050565b6000806000806080858703121561433357600080fd5b843561433e816141bc565b9350602085013561434e816141bc565b93969395505050506040820135916060013590565b60006080828403121561309357600080fd5b6000806000806000610120868803121561438e57600080fd5b8535614399816141bc565b945060208601356143a9816141bc565b9350604086013592506143bf87606088016141d4565b91506101008601356001600160401b038111156143db57600080fd5b6143e788828901614363565b9150509295509295909350565b60008060008060008060c0878903121561440d57600080fd5b8635614418816141bc565b95506020870135614428816141bc565b945060408701359350606087013561443f816141bc565b9598949750929560808101359460a0909101359350915050565b6000806000806080858703121561446f57600080fd5b843561447a816141bc565b9350602085013561448a816141bc565b92506040850135915060608501356001600160401b038111156144ac57600080fd5b6144b887828801614363565b91505092959194509250565b6000806000606084860312156144d957600080fd5b83516144e4816141bc565b60208501519093506144f5816141bc565b6040850151909250614506816141bc565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171561454a5761454a614511565b60405290565b80516130a3816141bc565b6000610120828403121561456e57600080fd5b614576614527565b82518152602083015160208201526040830151604082015261459a60608401614550565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6001600160a01b039390931683526020830191909152604082015260600190565b60008060006060848603121561461357600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052600160045260246000fd5b600060a0828403121561465457600080fd5b60405160a081016001600160401b038111828210171561467657614676614511565b806040525082358152602083013560208201526040830135604082015260608301356060820152608083013560808201528091505092915050565b60005b838110156146cc5781810151838201526020016146b4565b50506000910152565b600081518084526146ed8160208601602086016146b1565b601f01601f19169290920160200192915050565b60018060a01b038416815282602082015260606040820152600061213960608301846146d5565b6000806040838503121561473b57600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b818103818111156117975761179761474c565b808201808211156117975761179761474c565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6000602082840312156147d757600080fd5b5051919050565b80820281158282048414176117975761179761474c565b6001600160a01b0394851681529290931660208301526040820152606081019190915260800190565b60006020828403121561483057600080fd5b8135611b0a816141bc565b6001600160a01b03958616815260208101949094529190931660408301526060820192909252901515608082015260a00190565b6020808252600e908201526d06e6f206578697374696e67206c760941b604082015260600190565b6000600182016148a9576148a961474c565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826148d5576148d56148b0565b500490565b60006001600160601b03838116806148f4576148f46148b0565b92169190910492915050565b60006020828403121561491257600080fd5b81518015158114611b0a57600080fd5b6000808335601e1984360301811261493957600080fd5b8301803591506001600160401b0382111561495357600080fd5b60200191503681900382131561496857600080fd5b9250929050565b80820260008212600160ff1b8414161561498b5761498b61474c565b81810583148215176117975761179761474c565b81810360008312801583831316838312821617156149bf576149bf61474c565b5092915050565b6000826149d5576149d56148b0565b600160ff1b8214600019841416156149ef576149ef61474c565b500590565b8082018281126000831280158216821582161715614a1457614a1461474c565b505092915050565b60008251614a2e8184602087016146b1565b9190910192915050565b604081526000614a4b60408301856146d5565b90508260208301529392505050565b600060208284031215614a6c57600080fd5b81516001600160401b0380821115614a8357600080fd5b818401915084601f830112614a9757600080fd5b815181811115614aa957614aa9614511565b604051601f8201601f19908116603f01168101908382118183101715614ad157614ad1614511565b81604052828152876020848701011115614aea57600080fd5b611f478360208301602088016146b1565b6000600160ff1b8201614b1057614b1061474c565b5060000390565b602081526000611b0a60208301846146d556fe416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564a2646970667358221220003f718c44c5b0b5af53d962447d83de446d1e09411db3c5f949e714036e737064736f6c63430008110033",
1217
+ "linkReferences": {
1218
+ "contracts/router/kyberswap/AggregationRouterHelper.sol": {
1219
+ "AggregationRouterHelper": [
1220
+ {
1221
+ "length": 20,
1222
+ "start": 12162
1223
+ }
1224
+ ]
1225
+ }
1226
+ },
1227
+ "deployedLinkReferences": {
1228
+ "contracts/router/kyberswap/AggregationRouterHelper.sol": {
1229
+ "AggregationRouterHelper": [
1230
+ {
1231
+ "length": 20,
1232
+ "start": 12001
1233
+ }
1234
+ ]
1235
+ }
1236
+ }
1237
+ }