@pendle/core-v2 0.6.3 → 0.6.5

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 (434) hide show
  1. package/build/artifacts/contracts/SuperComposableYield/ISuperComposableYield.sol/ISuperComposableYield.dbg.json +4 -0
  2. package/build/artifacts/contracts/SuperComposableYield/ISuperComposableYield.sol/ISuperComposableYield.json +482 -0
  3. package/build/artifacts/contracts/SuperComposableYield/SCYUtils.sol/SCYUtils.dbg.json +4 -0
  4. package/build/artifacts/contracts/SuperComposableYield/SCYUtils.sol/SCYUtils.json +10 -0
  5. package/build/artifacts/contracts/SuperComposableYield/implementations/IRewardManager.sol/IRewardManager.dbg.json +4 -0
  6. package/build/artifacts/contracts/SuperComposableYield/implementations/IRewardManager.sol/IRewardManager.json +77 -0
  7. package/build/artifacts/contracts/SuperComposableYield/implementations/RewardManager.sol/RewardManager.dbg.json +4 -0
  8. package/build/artifacts/contracts/SuperComposableYield/implementations/RewardManager.sol/RewardManager.json +90 -0
  9. package/build/artifacts/contracts/SuperComposableYield/implementations/SCYBase.sol/SCYBase.dbg.json +4 -0
  10. package/build/artifacts/contracts/SuperComposableYield/implementations/SCYBase.sol/SCYBase.json +543 -0
  11. package/build/artifacts/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.dbg.json +4 -0
  12. package/build/artifacts/contracts/SuperComposableYield/implementations/SCYBaseWithRewards.sol/SCYBaseWithRewards.json +628 -0
  13. package/build/artifacts/contracts/core/PendleBaseToken.sol/PendleBaseToken.dbg.json +4 -0
  14. package/build/artifacts/contracts/core/PendleBaseToken.sol/PendleBaseToken.json +333 -0
  15. package/build/artifacts/contracts/core/PendleMarket.sol/PendleMarket.dbg.json +4 -0
  16. package/build/artifacts/contracts/core/PendleMarket.sol/PendleMarket.json +837 -0
  17. package/build/artifacts/contracts/core/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +4 -0
  18. package/build/artifacts/contracts/core/PendleMarketFactory.sol/PendleMarketFactory.json +239 -0
  19. package/build/artifacts/contracts/core/PendleOwnershipToken.sol/PendleOwnershipToken.dbg.json +4 -0
  20. package/build/artifacts/contracts/core/PendleOwnershipToken.sol/PendleOwnershipToken.json +439 -0
  21. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.dbg.json +4 -0
  22. package/build/artifacts/contracts/core/PendleRouter.sol/PendleRouter.json +230 -0
  23. package/build/artifacts/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.dbg.json +4 -0
  24. package/build/artifacts/contracts/core/PendleSCYImpl/AaveV3/PendleAaveV3SCY.sol/PendleAaveV3SCY.json +765 -0
  25. package/build/artifacts/contracts/core/PendleSCYImpl/AaveV3/WadRayMath.sol/WadRayMath.dbg.json +4 -0
  26. package/build/artifacts/contracts/core/PendleSCYImpl/AaveV3/WadRayMath.sol/WadRayMath.json +10 -0
  27. package/build/artifacts/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol/PendleBenQiErc20SCY.dbg.json +4 -0
  28. package/build/artifacts/contracts/core/PendleSCYImpl/PendleBenQiErc20SCY.sol/PendleBenQiErc20SCY.json +761 -0
  29. package/build/artifacts/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol/PendleBtrflyScy.dbg.json +4 -0
  30. package/build/artifacts/contracts/core/PendleSCYImpl/PendleBtrflySCY.sol/PendleBtrflyScy.json +636 -0
  31. package/build/artifacts/contracts/core/PendleSCYImpl/PendleStETHSCY.sol/PendleStEthSCY.dbg.json +4 -0
  32. package/build/artifacts/contracts/core/PendleSCYImpl/PendleStETHSCY.sol/PendleStEthSCY.json +618 -0
  33. package/build/artifacts/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol/PendleYearnVaultScy.dbg.json +4 -0
  34. package/build/artifacts/contracts/core/PendleSCYImpl/PendleYearnVaultSCY.sol/PendleYearnVaultScy.json +618 -0
  35. package/build/artifacts/contracts/core/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +4 -0
  36. package/build/artifacts/contracts/core/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +339 -0
  37. package/build/artifacts/contracts/core/PendleYieldToken.sol/PendleYieldToken.dbg.json +4 -0
  38. package/build/artifacts/contracts/core/PendleYieldToken.sol/PendleYieldToken.json +808 -0
  39. package/build/artifacts/contracts/core/RouterStatic.sol/RouterStatic.dbg.json +4 -0
  40. package/build/artifacts/contracts/core/RouterStatic.sol/RouterStatic.json +246 -0
  41. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.dbg.json +4 -0
  42. package/build/artifacts/contracts/core/actions/ActionCallback.sol/ActionCallback.json +58 -0
  43. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.dbg.json +4 -0
  44. package/build/artifacts/contracts/core/actions/ActionCore.sol/ActionCore.json +714 -0
  45. package/build/artifacts/contracts/core/actions/ActionRedeem.sol/PendleRouterRedeemUpg.dbg.json +4 -0
  46. package/build/artifacts/contracts/core/actions/ActionRedeem.sol/PendleRouterRedeemUpg.json +55 -0
  47. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.dbg.json +4 -0
  48. package/build/artifacts/contracts/core/actions/ActionYT.sol/ActionYT.json +485 -0
  49. package/build/artifacts/contracts/core/actions/base/ActionSCYAndOTBase.sol/ActionSCYAndOTBase.dbg.json +4 -0
  50. package/build/artifacts/contracts/core/actions/base/ActionSCYAndOTBase.sol/ActionSCYAndOTBase.json +10 -0
  51. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYOBase.sol/ActionSCYAndYOBase.dbg.json +4 -0
  52. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYOBase.sol/ActionSCYAndYOBase.json +185 -0
  53. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.dbg.json +4 -0
  54. package/build/artifacts/contracts/core/actions/base/ActionSCYAndYTBase.sol/ActionSCYAndYTBase.json +210 -0
  55. package/build/artifacts/contracts/core/actions/base/ActionType.sol/ActionType.dbg.json +4 -0
  56. package/build/artifacts/contracts/core/actions/base/ActionType.sol/ActionType.json +10 -0
  57. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +4 -0
  58. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.json +213 -0
  59. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +4 -0
  60. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.json +87 -0
  61. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +4 -0
  62. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.json +59 -0
  63. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +4 -0
  64. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.json +44 -0
  65. package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.dbg.json +4 -0
  66. package/build/artifacts/contracts/interfaces/IJoePair.sol/IJoePair.json +662 -0
  67. package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.dbg.json +4 -0
  68. package/build/artifacts/contracts/interfaces/IJoeRouter01.sol/IJoeRouter01.json +760 -0
  69. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.dbg.json +4 -0
  70. package/build/artifacts/contracts/interfaces/IPActionCore.sol/IPActionCore.json +519 -0
  71. package/build/artifacts/contracts/interfaces/IPActionRedeem.sol/IPActionRedeem.dbg.json +4 -0
  72. package/build/artifacts/contracts/interfaces/IPActionRedeem.sol/IPActionRedeem.json +55 -0
  73. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.dbg.json +4 -0
  74. package/build/artifacts/contracts/interfaces/IPActionYT.sol/IPActionYT.json +270 -0
  75. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +4 -0
  76. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +822 -0
  77. package/build/artifacts/contracts/interfaces/IPBaseToken.sol/IPBaseToken.dbg.json +4 -0
  78. package/build/artifacts/contracts/interfaces/IPBaseToken.sol/IPBaseToken.json +259 -0
  79. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +4 -0
  80. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.json +24 -0
  81. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +4 -0
  82. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.json +670 -0
  83. package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.dbg.json +4 -0
  84. package/build/artifacts/contracts/interfaces/IPMarketAddRemoveCallback.sol/IPMarketAddRemoveCallback.json +67 -0
  85. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +4 -0
  86. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +96 -0
  87. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +4 -0
  88. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.json +34 -0
  89. package/build/artifacts/contracts/interfaces/IPOwnershipToken.sol/IPOwnershipToken.dbg.json +4 -0
  90. package/build/artifacts/contracts/interfaces/IPOwnershipToken.sol/IPOwnershipToken.json +334 -0
  91. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +4 -0
  92. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.json +24 -0
  93. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +4 -0
  94. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +204 -0
  95. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +4 -0
  96. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.json +206 -0
  97. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +4 -0
  98. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +595 -0
  99. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +4 -0
  100. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.json +258 -0
  101. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +4 -0
  102. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.json +207 -0
  103. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +4 -0
  104. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.json +92 -0
  105. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +4 -0
  106. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.json +252 -0
  107. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +4 -0
  108. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.json +119 -0
  109. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +4 -0
  110. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.json +62 -0
  111. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +4 -0
  112. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.json +62 -0
  113. package/build/artifacts/contracts/libraries/JoeLibrary.sol/JoeLibrary.dbg.json +4 -0
  114. package/build/artifacts/contracts/libraries/JoeLibrary.sol/JoeLibrary.json +10 -0
  115. package/build/artifacts/contracts/libraries/SCYIndex.sol/SCYIndexLib.dbg.json +4 -0
  116. package/build/artifacts/contracts/libraries/SCYIndex.sol/SCYIndexLib.json +10 -0
  117. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +4 -0
  118. package/build/artifacts/contracts/libraries/helpers/ExpiryUtilsLib.sol/ExpiryUtils.json +10 -0
  119. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +4 -0
  120. package/build/artifacts/contracts/libraries/math/LogExpMath.sol/LogExpMath.json +10 -0
  121. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.dbg.json +4 -0
  122. package/build/artifacts/contracts/libraries/math/MarketApproxLib.sol/MarketApproxLib.json +10 -0
  123. package/build/artifacts/contracts/libraries/math/MarketMathAux.sol/MarketMathAux.dbg.json +4 -0
  124. package/build/artifacts/contracts/libraries/math/MarketMathAux.sol/MarketMathAux.json +10 -0
  125. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.dbg.json +4 -0
  126. package/build/artifacts/contracts/libraries/math/MarketMathCore.sol/MarketMathCore.json +10 -0
  127. package/build/artifacts/contracts/libraries/math/Math.sol/Math.dbg.json +4 -0
  128. package/build/artifacts/contracts/libraries/math/Math.sol/Math.json +10 -0
  129. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.dbg.json +4 -0
  130. package/build/artifacts/contracts/periphery/PendleGovernanceManager.sol/PendleGovernanceManager.json +87 -0
  131. package/build/artifacts/contracts/periphery/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.dbg.json +4 -0
  132. package/build/artifacts/contracts/periphery/PendleJoeSwapHelperUpg.sol/PendleJoeSwapHelperUpg.json +37 -0
  133. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.dbg.json +4 -0
  134. package/build/artifacts/contracts/periphery/PermissionsV2Upg.sol/PermissionsV2Upg.json +24 -0
  135. package/deployments/kovan.json +31 -0
  136. package/package.json +4 -2
  137. package/typechain-types/ActionCallback.ts +5 -5
  138. package/typechain-types/ActionCore.ts +280 -232
  139. package/typechain-types/{ActionSCYAndPYBase.ts → ActionSCYAndYOBase.ts} +54 -54
  140. package/typechain-types/ActionSCYAndYTBase.ts +49 -49
  141. package/typechain-types/ActionYT.ts +140 -92
  142. package/typechain-types/AggregatorV2V3Interface.ts +380 -0
  143. package/typechain-types/BenqiChainlinkOracle.ts +362 -0
  144. package/typechain-types/BoringOwnable.ts +194 -0
  145. package/typechain-types/BoringOwnableData.ts +100 -0
  146. package/typechain-types/BoringOwnableUpg.ts +194 -0
  147. package/typechain-types/BoringOwnableUpgData.ts +100 -0
  148. package/typechain-types/Comptroller.ts +2860 -0
  149. package/typechain-types/ComptrollerErrorReporter.ts +70 -0
  150. package/typechain-types/ComptrollerInterface.ts +881 -0
  151. package/typechain-types/ComptrollerVXStorage.ts +781 -0
  152. package/typechain-types/CrosschainContract.ts +113 -0
  153. package/typechain-types/CrosschainReceiver.ts +347 -0
  154. package/typechain-types/CrosschainSender.ts +210 -0
  155. package/typechain-types/EIP20Interface.ts +337 -0
  156. package/typechain-types/EIP20NonStandardInterface.ts +298 -0
  157. package/typechain-types/ERC20Burnable.ts +473 -0
  158. package/typechain-types/ERC20Locker.ts +91 -0
  159. package/typechain-types/ERC20Premined.ts +473 -0
  160. package/typechain-types/ERC20PresetFixedSupply.ts +473 -0
  161. package/typechain-types/EpochController.ts +195 -0
  162. package/typechain-types/FundKeeper.ts +347 -0
  163. package/typechain-types/GaugeTypeControllerAbstract.ts +546 -0
  164. package/typechain-types/GaugeTypeControllerCrosschain.ts +733 -0
  165. package/typechain-types/GaugeTypeControllerMainchain.ts +604 -0
  166. package/typechain-types/IGaugeController.ts +99 -0
  167. package/typechain-types/ILiquidYieldToken.ts +639 -0
  168. package/typechain-types/ILiquidYieldTokenWrap.ts +790 -0
  169. package/typechain-types/IMessageBus.ts +543 -0
  170. package/typechain-types/IMessageReceiverApp.ts +110 -0
  171. package/typechain-types/IPActionCore.ts +231 -183
  172. package/typechain-types/IPActionYT.ts +91 -43
  173. package/typechain-types/IPAllAction.ts +322 -204
  174. package/typechain-types/IPFlashCallback.ts +115 -0
  175. package/typechain-types/IPLiquidYieldToken.ts +641 -0
  176. package/typechain-types/IPMarket.ts +55 -55
  177. package/typechain-types/IPMarketAddRemoveCallback.ts +10 -10
  178. package/typechain-types/IPMarketCallback.ts +107 -0
  179. package/typechain-types/IPMarketFactory.ts +3 -3
  180. package/typechain-types/IPMarketSwapCallback.ts +5 -5
  181. package/typechain-types/{IPPrincipalToken.ts → IPOwnershipToken.ts} +5 -5
  182. package/typechain-types/IPRouterCore.ts +769 -0
  183. package/typechain-types/IPRouterRedeem.ts +155 -0
  184. package/typechain-types/IPRouterStatic.ts +49 -529
  185. package/typechain-types/IPRouterYT.ts +489 -0
  186. package/typechain-types/IPYieldContractFactory.ts +19 -19
  187. package/typechain-types/IPYieldToken.ts +29 -29
  188. package/typechain-types/IPermissionsV2.ts +87 -0
  189. package/typechain-types/IRainbowBridge.ts +91 -0
  190. package/typechain-types/ISCYRewardIndex.ts +695 -0
  191. package/typechain-types/ISuperComposableYield.ts +0 -13
  192. package/typechain-types/IVEPendleToken.ts +121 -0
  193. package/typechain-types/IXPendle.ts +114 -0
  194. package/typechain-types/InterestRateModel.ts +178 -0
  195. package/typechain-types/JumpRateModel.ts +347 -0
  196. package/typechain-types/LYTBase.ts +721 -0
  197. package/typechain-types/LYTBaseWithRewards.ts +806 -0
  198. package/typechain-types/LYTWrap.ts +872 -0
  199. package/typechain-types/LYTWrapWithRewards.ts +979 -0
  200. package/typechain-types/LiquidityMining.ts +468 -0
  201. package/typechain-types/Maximillion.ts +145 -0
  202. package/typechain-types/Ownable.ts +160 -0
  203. package/typechain-types/PendleAaveV3LYT.ts +808 -0
  204. package/typechain-types/PendleAaveV3SCY.ts +0 -13
  205. package/typechain-types/PendleBaseToken.ts +1 -1
  206. package/typechain-types/PendleBenQiErc20LYT.ts +901 -0
  207. package/typechain-types/PendleBenQiErc20SCY.ts +20 -14
  208. package/typechain-types/PendleBenqiLiquidYieldToken.ts +1013 -0
  209. package/typechain-types/PendleBtrflyLYT.ts +781 -0
  210. package/typechain-types/PendleBtrflyScy.ts +20 -14
  211. package/typechain-types/PendleGauge.ts +469 -0
  212. package/typechain-types/PendleGovernanceManager.ts +5 -5
  213. package/typechain-types/PendleJoeSwapHelper.ts +92 -0
  214. package/typechain-types/PendleLYTMockYT.ts +894 -0
  215. package/typechain-types/PendleLiquidYieldToken.ts +814 -0
  216. package/typechain-types/PendleLiquidYieldTokenBase.ts +941 -0
  217. package/typechain-types/PendleMarket.ts +105 -102
  218. package/typechain-types/PendleMarketFactory.ts +8 -48
  219. package/typechain-types/{PendlePrincipalToken.ts → PendleOwnershipToken.ts} +6 -15
  220. package/typechain-types/PendleRouter01.ts +184 -0
  221. package/typechain-types/PendleRouter02.ts +564 -0
  222. package/typechain-types/PendleRouter03.ts +224 -0
  223. package/typechain-types/PendleRouterBase.ts +126 -0
  224. package/typechain-types/PendleRouterCore.ts +328 -0
  225. package/typechain-types/PendleRouterCoreUpg.ts +798 -0
  226. package/typechain-types/PendleRouterLytAndForge.ts +331 -0
  227. package/typechain-types/PendleRouterMarketBase.ts +82 -0
  228. package/typechain-types/PendleRouterOT.ts +463 -0
  229. package/typechain-types/PendleRouterProxy.ts +335 -0
  230. package/typechain-types/PendleRouterRawTokenOT.ts +865 -0
  231. package/typechain-types/PendleRouterRawTokenYT.ts +520 -0
  232. package/typechain-types/{ActionRedeem.ts → PendleRouterRedeemUpg.ts} +5 -5
  233. package/typechain-types/PendleRouterSCYAndForgeBaseUpg.ts +98 -0
  234. package/typechain-types/PendleRouterStaticUpg.ts +399 -0
  235. package/typechain-types/PendleRouterYT.ts +227 -0
  236. package/typechain-types/PendleRouterYTBaseUpg.ts +134 -0
  237. package/typechain-types/PendleRouterYTUpg.ts +537 -0
  238. package/typechain-types/PendleStEthSCY.ts +23 -15
  239. package/typechain-types/PendleYTLYTBenqi.ts +863 -0
  240. package/typechain-types/PendleYearnVaultLYT.ts +723 -0
  241. package/typechain-types/PendleYearnVaultScy.ts +23 -15
  242. package/typechain-types/PendleYieldContractFactory.ts +28 -28
  243. package/typechain-types/PendleYieldToken.ts +30 -30
  244. package/typechain-types/PermissionsV2.ts +87 -0
  245. package/typechain-types/PermlessAbstract.ts +57 -0
  246. package/typechain-types/PglStakingContract.ts +662 -0
  247. package/typechain-types/PglStakingContractProxy.ts +256 -0
  248. package/typechain-types/PglStakingContractProxyStorage.ts +136 -0
  249. package/typechain-types/PglStakingContractStorage.ts +397 -0
  250. package/typechain-types/PriceOracle.ts +116 -0
  251. package/typechain-types/ProtocolFakeUser.ts +105 -0
  252. package/typechain-types/Qi.ts +760 -0
  253. package/typechain-types/QiAvax.ts +1720 -0
  254. package/typechain-types/QiDelegateInterface.ts +145 -0
  255. package/typechain-types/QiDelegationStorage.ts +82 -0
  256. package/typechain-types/QiDelegatorInterface.ts +149 -0
  257. package/typechain-types/QiErc20.ts +1846 -0
  258. package/typechain-types/QiErc20Delegate.ts +1926 -0
  259. package/typechain-types/QiErc20Delegator.ts +1885 -0
  260. package/typechain-types/QiErc20Interface.ts +382 -0
  261. package/typechain-types/QiErc20Storage.ts +79 -0
  262. package/typechain-types/QiToken.ts +1475 -0
  263. package/typechain-types/QiTokenInterface.ts +1419 -0
  264. package/typechain-types/QiTokenSaleDistributor.ts +771 -0
  265. package/typechain-types/QiTokenSaleDistributorProxy.ts +256 -0
  266. package/typechain-types/QiTokenSaleDistributorProxyStorage.ts +136 -0
  267. package/typechain-types/QiTokenSaleDistributorStorage.ts +401 -0
  268. package/typechain-types/QiTokenStorage.ts +311 -0
  269. package/typechain-types/ReentrancyGuard.ts +52 -0
  270. package/typechain-types/RouterStatic.ts +50 -530
  271. package/typechain-types/SCYBase.ts +0 -13
  272. package/typechain-types/SCYBaseWithRewards.ts +0 -13
  273. package/typechain-types/SingleGaugeTypeController.ts +478 -0
  274. package/typechain-types/TokenErrorReporter.ts +70 -0
  275. package/typechain-types/Unitroller.ts +356 -0
  276. package/typechain-types/UnitrollerAdminStorage.ts +143 -0
  277. package/typechain-types/VePendle.ts +1156 -0
  278. package/typechain-types/VePendleCrosschain.ts +969 -0
  279. package/typechain-types/VePendleToken.ts +688 -0
  280. package/typechain-types/VotingController.ts +883 -0
  281. package/typechain-types/WETH9.ts +414 -0
  282. package/typechain-types/WhitePaperInterestRateModel.ts +304 -0
  283. package/typechain-types/XPendle.ts +618 -0
  284. package/typechain-types/factories/ActionCallback__factory.ts +2 -2
  285. package/typechain-types/factories/ActionCore__factory.ts +91 -127
  286. package/typechain-types/factories/{ActionSCYAndPYBase__factory.ts → ActionSCYAndYOBase__factory.ts} +20 -20
  287. package/typechain-types/factories/ActionSCYAndYTBase__factory.ts +12 -12
  288. package/typechain-types/factories/ActionYT__factory.ts +68 -104
  289. package/typechain-types/factories/AggregatorV2V3Interface__factory.ts +288 -0
  290. package/typechain-types/factories/BenqiChainlinkOracle__factory.ts +311 -0
  291. package/typechain-types/factories/BoringOwnableData__factory.ts +90 -0
  292. package/typechain-types/factories/BoringOwnableUpgData__factory.ts +94 -0
  293. package/typechain-types/factories/BoringOwnableUpg__factory.ts +139 -0
  294. package/typechain-types/factories/BoringOwnable__factory.ts +149 -0
  295. package/typechain-types/factories/ComptrollerErrorReporter__factory.ts +93 -0
  296. package/typechain-types/factories/ComptrollerInterface__factory.ts +595 -0
  297. package/typechain-types/factories/ComptrollerVXStorage__factory.ts +610 -0
  298. package/typechain-types/factories/Comptroller__factory.ts +2189 -0
  299. package/typechain-types/factories/CrosschainContract__factory.ts +52 -0
  300. package/typechain-types/factories/CrosschainReceiver__factory.ts +187 -0
  301. package/typechain-types/factories/CrosschainSender__factory.ts +104 -0
  302. package/typechain-types/factories/EIP20Interface__factory.ts +248 -0
  303. package/typechain-types/factories/EIP20NonStandardInterface__factory.ts +213 -0
  304. package/typechain-types/factories/ERC20Burnable__factory.ts +324 -0
  305. package/typechain-types/factories/ERC20Locker__factory.ts +73 -0
  306. package/typechain-types/factories/ERC20Premined__factory.ts +393 -0
  307. package/typechain-types/factories/ERC20PresetFixedSupply__factory.ts +422 -0
  308. package/typechain-types/factories/EpochController__factory.ts +170 -0
  309. package/typechain-types/factories/FundKeeper__factory.ts +212 -0
  310. package/typechain-types/factories/GaugeTypeControllerAbstract__factory.ts +387 -0
  311. package/typechain-types/factories/GaugeTypeControllerCrosschain__factory.ts +522 -0
  312. package/typechain-types/factories/GaugeTypeControllerMainchain__factory.ts +431 -0
  313. package/typechain-types/factories/IGaugeController__factory.ts +45 -0
  314. package/typechain-types/factories/ILiquidYieldTokenWrap__factory.ts +533 -0
  315. package/typechain-types/factories/ILiquidYieldToken__factory.ts +429 -0
  316. package/typechain-types/factories/IMessageBus__factory.ts +396 -0
  317. package/typechain-types/factories/IMessageReceiverApp__factory.ts +55 -0
  318. package/typechain-types/factories/IPActionCore__factory.ts +78 -114
  319. package/typechain-types/factories/IPActionYT__factory.ts +54 -90
  320. package/typechain-types/factories/IPAllAction__factory.ts +138 -210
  321. package/typechain-types/factories/IPFlashCallback__factory.ts +49 -0
  322. package/typechain-types/factories/IPLiquidYieldToken__factory.ts +433 -0
  323. package/typechain-types/factories/IPMarketAddRemoveCallback__factory.ts +2 -2
  324. package/typechain-types/factories/IPMarketCallback__factory.ts +55 -0
  325. package/typechain-types/factories/IPMarketFactory__factory.ts +1 -1
  326. package/typechain-types/factories/IPMarketSwapCallback__factory.ts +1 -1
  327. package/typechain-types/factories/IPMarket__factory.ts +14 -14
  328. package/typechain-types/factories/{IPPrincipalToken__factory.ts → IPOwnershipToken__factory.ts} +8 -8
  329. package/typechain-types/factories/IPRouterCore__factory.ts +531 -0
  330. package/typechain-types/factories/IPRouterRedeem__factory.ts +72 -0
  331. package/typechain-types/factories/IPRouterStatic__factory.ts +10 -626
  332. package/typechain-types/factories/IPRouterYT__factory.ts +305 -0
  333. package/typechain-types/factories/IPYieldContractFactory__factory.ts +3 -3
  334. package/typechain-types/factories/IPYieldToken__factory.ts +5 -5
  335. package/typechain-types/factories/IPermissionsV2__factory.ts +39 -0
  336. package/typechain-types/factories/IRainbowBridge__factory.ts +76 -0
  337. package/typechain-types/factories/ISCYRewardIndex__factory.ts +465 -0
  338. package/typechain-types/factories/ISuperComposableYield__factory.ts +0 -13
  339. package/typechain-types/factories/IVEPendleToken__factory.ts +71 -0
  340. package/typechain-types/factories/IXPendle__factory.ts +61 -0
  341. package/typechain-types/factories/InterestRateModel__factory.ts +108 -0
  342. package/typechain-types/factories/JumpRateModel__factory.ts +334 -0
  343. package/typechain-types/factories/LYTBaseWithRewards__factory.ts +530 -0
  344. package/typechain-types/factories/LYTBase__factory.ts +474 -0
  345. package/typechain-types/factories/LYTWrapWithRewards__factory.ts +643 -0
  346. package/typechain-types/factories/LYTWrap__factory.ts +574 -0
  347. package/typechain-types/factories/LiquidityMining__factory.ts +367 -0
  348. package/typechain-types/factories/Maximillion__factory.ts +125 -0
  349. package/typechain-types/factories/Ownable__factory.ts +75 -0
  350. package/typechain-types/factories/PendleAaveV3LYT__factory.ts +657 -0
  351. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +1 -24
  352. package/typechain-types/factories/PendleBaseToken__factory.ts +1 -1
  353. package/typechain-types/factories/PendleBenQiErc20LYT__factory.ts +748 -0
  354. package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +15 -25
  355. package/typechain-types/factories/PendleBenqiLiquidYieldToken__factory.ts +785 -0
  356. package/typechain-types/factories/PendleBtrflyLYT__factory.ts +647 -0
  357. package/typechain-types/factories/PendleBtrflyScy__factory.ts +15 -25
  358. package/typechain-types/factories/PendleGauge__factory.ts +383 -0
  359. package/typechain-types/factories/PendleGovernanceManager__factory.ts +2 -2
  360. package/typechain-types/factories/PendleJoeSwapHelper__factory.ts +52 -0
  361. package/typechain-types/factories/PendleLYTMockYT__factory.ts +732 -0
  362. package/typechain-types/factories/PendleLiquidYieldTokenBase__factory.ts +603 -0
  363. package/typechain-types/factories/PendleLiquidYieldToken__factory.ts +510 -0
  364. package/typechain-types/factories/PendleMarketFactory__factory.ts +3 -29
  365. package/typechain-types/factories/PendleMarket__factory.ts +54 -59
  366. package/typechain-types/factories/PendleOwnershipToken__factory.ts +527 -0
  367. package/typechain-types/factories/PendleRouter01__factory.ts +152 -0
  368. package/typechain-types/factories/PendleRouter02__factory.ts +438 -0
  369. package/typechain-types/factories/PendleRouter03__factory.ts +190 -0
  370. package/typechain-types/factories/PendleRouterBase__factory.ts +68 -0
  371. package/typechain-types/factories/PendleRouterCoreUpg__factory.ts +635 -0
  372. package/typechain-types/factories/PendleRouterCore__factory.ts +268 -0
  373. package/typechain-types/factories/PendleRouterLytAndForge__factory.ts +294 -0
  374. package/typechain-types/factories/PendleRouterMarketBase__factory.ts +43 -0
  375. package/typechain-types/factories/PendleRouterOT__factory.ts +372 -0
  376. package/typechain-types/factories/PendleRouterProxy__factory.ts +285 -0
  377. package/typechain-types/factories/PendleRouterRawTokenOT__factory.ts +697 -0
  378. package/typechain-types/factories/PendleRouterRawTokenYT__factory.ts +431 -0
  379. package/typechain-types/factories/{ActionRedeem__factory.ts → PendleRouterRedeemUpg__factory.ts} +26 -19
  380. package/typechain-types/factories/PendleRouterSCYAndForgeBaseUpg__factory.ts +56 -0
  381. package/typechain-types/factories/PendleRouterStaticUpg__factory.ts +315 -0
  382. package/typechain-types/factories/PendleRouterYTBaseUpg__factory.ts +66 -0
  383. package/typechain-types/factories/PendleRouterYTUpg__factory.ts +422 -0
  384. package/typechain-types/factories/PendleRouterYT__factory.ts +184 -0
  385. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  386. package/typechain-types/factories/PendleStEthSCY__factory.ts +17 -27
  387. package/typechain-types/factories/PendleYTLYTBenqi__factory.ts +713 -0
  388. package/typechain-types/factories/PendleYearnVaultLYT__factory.ts +586 -0
  389. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +16 -26
  390. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +6 -6
  391. package/typechain-types/factories/PendleYieldToken__factory.ts +12 -12
  392. package/typechain-types/factories/PermissionsV2__factory.ts +36 -0
  393. package/typechain-types/factories/PermlessAbstract__factory.ts +30 -0
  394. package/typechain-types/factories/PglStakingContractProxyStorage__factory.ts +130 -0
  395. package/typechain-types/factories/PglStakingContractProxy__factory.ts +187 -0
  396. package/typechain-types/factories/PglStakingContractStorage__factory.ts +309 -0
  397. package/typechain-types/factories/PglStakingContract__factory.ts +446 -0
  398. package/typechain-types/factories/PriceOracle__factory.ts +59 -0
  399. package/typechain-types/factories/ProtocolFakeUser__factory.ts +87 -0
  400. package/typechain-types/factories/QiAvax__factory.ts +1471 -0
  401. package/typechain-types/factories/QiDelegateInterface__factory.ts +65 -0
  402. package/typechain-types/factories/QiDelegationStorage__factory.ts +79 -0
  403. package/typechain-types/factories/QiDelegatorInterface__factory.ts +89 -0
  404. package/typechain-types/factories/QiErc20Delegate__factory.ts +1563 -0
  405. package/typechain-types/factories/QiErc20Delegator__factory.ts +1648 -0
  406. package/typechain-types/factories/QiErc20Interface__factory.ts +239 -0
  407. package/typechain-types/factories/QiErc20Storage__factory.ts +79 -0
  408. package/typechain-types/factories/QiErc20__factory.ts +1515 -0
  409. package/typechain-types/factories/QiTokenInterface__factory.ts +1182 -0
  410. package/typechain-types/factories/QiTokenSaleDistributorProxyStorage__factory.ts +124 -0
  411. package/typechain-types/factories/QiTokenSaleDistributorProxy__factory.ts +171 -0
  412. package/typechain-types/factories/QiTokenSaleDistributorStorage__factory.ts +289 -0
  413. package/typechain-types/factories/QiTokenSaleDistributor__factory.ts +480 -0
  414. package/typechain-types/factories/QiTokenStorage__factory.ts +274 -0
  415. package/typechain-types/factories/QiToken__factory.ts +1219 -0
  416. package/typechain-types/factories/Qi__factory.ts +648 -0
  417. package/typechain-types/factories/ReentrancyGuard__factory.ts +69 -0
  418. package/typechain-types/factories/RouterStatic__factory.ts +13 -629
  419. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +0 -13
  420. package/typechain-types/factories/SCYBase__factory.ts +0 -13
  421. package/typechain-types/factories/SingleGaugeTypeController__factory.ts +341 -0
  422. package/typechain-types/factories/TokenErrorReporter__factory.ts +89 -0
  423. package/typechain-types/factories/UnitrollerAdminStorage__factory.ts +128 -0
  424. package/typechain-types/factories/Unitroller__factory.ts +305 -0
  425. package/typechain-types/factories/VePendleCrosschain__factory.ts +727 -0
  426. package/typechain-types/factories/VePendleToken__factory.ts +494 -0
  427. package/typechain-types/factories/VePendle__factory.ts +800 -0
  428. package/typechain-types/factories/VotingController__factory.ts +610 -0
  429. package/typechain-types/factories/WETH9__factory.ts +342 -0
  430. package/typechain-types/factories/WhitePaperInterestRateModel__factory.ts +281 -0
  431. package/typechain-types/factories/XPendle__factory.ts +473 -0
  432. package/typechain-types/hardhat.d.ts +20 -20
  433. package/typechain-types/index.ts +8 -8
  434. package/typechain-types/factories/PendlePrincipalToken__factory.ts +0 -540
@@ -0,0 +1,339 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "PendleYieldContractFactory",
4
+ "sourceName": "contracts/core/PendleYieldContractFactory.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "uint256",
10
+ "name": "_expiryDivisor",
11
+ "type": "uint256"
12
+ },
13
+ {
14
+ "internalType": "uint256",
15
+ "name": "_interestFeeRate",
16
+ "type": "uint256"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_treasury",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_governanceManager",
26
+ "type": "address"
27
+ }
28
+ ],
29
+ "stateMutability": "nonpayable",
30
+ "type": "constructor"
31
+ },
32
+ {
33
+ "anonymous": false,
34
+ "inputs": [
35
+ {
36
+ "indexed": true,
37
+ "internalType": "address",
38
+ "name": "SCY",
39
+ "type": "address"
40
+ },
41
+ {
42
+ "indexed": false,
43
+ "internalType": "address",
44
+ "name": "OT",
45
+ "type": "address"
46
+ },
47
+ {
48
+ "indexed": false,
49
+ "internalType": "address",
50
+ "name": "YT",
51
+ "type": "address"
52
+ },
53
+ {
54
+ "indexed": false,
55
+ "internalType": "uint256",
56
+ "name": "expiry",
57
+ "type": "uint256"
58
+ }
59
+ ],
60
+ "name": "CreateYieldContract",
61
+ "type": "event"
62
+ },
63
+ {
64
+ "anonymous": false,
65
+ "inputs": [
66
+ {
67
+ "indexed": false,
68
+ "internalType": "uint256",
69
+ "name": "newExpiryDivisor",
70
+ "type": "uint256"
71
+ }
72
+ ],
73
+ "name": "SetExpiryDivisor",
74
+ "type": "event"
75
+ },
76
+ {
77
+ "anonymous": false,
78
+ "inputs": [
79
+ {
80
+ "indexed": false,
81
+ "internalType": "uint256",
82
+ "name": "newInterestFeeRate",
83
+ "type": "uint256"
84
+ }
85
+ ],
86
+ "name": "SetInterestFeeRate",
87
+ "type": "event"
88
+ },
89
+ {
90
+ "anonymous": false,
91
+ "inputs": [
92
+ {
93
+ "indexed": true,
94
+ "internalType": "address",
95
+ "name": "treasury",
96
+ "type": "address"
97
+ }
98
+ ],
99
+ "name": "SetTreasury",
100
+ "type": "event"
101
+ },
102
+ {
103
+ "inputs": [],
104
+ "name": "OT_PREFIX",
105
+ "outputs": [
106
+ {
107
+ "internalType": "string",
108
+ "name": "",
109
+ "type": "string"
110
+ }
111
+ ],
112
+ "stateMutability": "view",
113
+ "type": "function"
114
+ },
115
+ {
116
+ "inputs": [],
117
+ "name": "YT_PREFIX",
118
+ "outputs": [
119
+ {
120
+ "internalType": "string",
121
+ "name": "",
122
+ "type": "string"
123
+ }
124
+ ],
125
+ "stateMutability": "view",
126
+ "type": "function"
127
+ },
128
+ {
129
+ "inputs": [
130
+ {
131
+ "internalType": "address",
132
+ "name": "SCY",
133
+ "type": "address"
134
+ },
135
+ {
136
+ "internalType": "uint256",
137
+ "name": "expiry",
138
+ "type": "uint256"
139
+ }
140
+ ],
141
+ "name": "createYieldContract",
142
+ "outputs": [
143
+ {
144
+ "internalType": "address",
145
+ "name": "OT",
146
+ "type": "address"
147
+ },
148
+ {
149
+ "internalType": "address",
150
+ "name": "YT",
151
+ "type": "address"
152
+ }
153
+ ],
154
+ "stateMutability": "nonpayable",
155
+ "type": "function"
156
+ },
157
+ {
158
+ "inputs": [],
159
+ "name": "expiryDivisor",
160
+ "outputs": [
161
+ {
162
+ "internalType": "uint256",
163
+ "name": "",
164
+ "type": "uint256"
165
+ }
166
+ ],
167
+ "stateMutability": "view",
168
+ "type": "function"
169
+ },
170
+ {
171
+ "inputs": [
172
+ {
173
+ "internalType": "address",
174
+ "name": "",
175
+ "type": "address"
176
+ },
177
+ {
178
+ "internalType": "uint256",
179
+ "name": "",
180
+ "type": "uint256"
181
+ }
182
+ ],
183
+ "name": "getOT",
184
+ "outputs": [
185
+ {
186
+ "internalType": "address",
187
+ "name": "",
188
+ "type": "address"
189
+ }
190
+ ],
191
+ "stateMutability": "view",
192
+ "type": "function"
193
+ },
194
+ {
195
+ "inputs": [
196
+ {
197
+ "internalType": "address",
198
+ "name": "",
199
+ "type": "address"
200
+ },
201
+ {
202
+ "internalType": "uint256",
203
+ "name": "",
204
+ "type": "uint256"
205
+ }
206
+ ],
207
+ "name": "getYT",
208
+ "outputs": [
209
+ {
210
+ "internalType": "address",
211
+ "name": "",
212
+ "type": "address"
213
+ }
214
+ ],
215
+ "stateMutability": "view",
216
+ "type": "function"
217
+ },
218
+ {
219
+ "inputs": [],
220
+ "name": "governanceManager",
221
+ "outputs": [
222
+ {
223
+ "internalType": "address",
224
+ "name": "",
225
+ "type": "address"
226
+ }
227
+ ],
228
+ "stateMutability": "view",
229
+ "type": "function"
230
+ },
231
+ {
232
+ "inputs": [],
233
+ "name": "interestFeeRate",
234
+ "outputs": [
235
+ {
236
+ "internalType": "uint256",
237
+ "name": "",
238
+ "type": "uint256"
239
+ }
240
+ ],
241
+ "stateMutability": "view",
242
+ "type": "function"
243
+ },
244
+ {
245
+ "inputs": [
246
+ {
247
+ "internalType": "address",
248
+ "name": "",
249
+ "type": "address"
250
+ }
251
+ ],
252
+ "name": "isOT",
253
+ "outputs": [
254
+ {
255
+ "internalType": "bool",
256
+ "name": "",
257
+ "type": "bool"
258
+ }
259
+ ],
260
+ "stateMutability": "view",
261
+ "type": "function"
262
+ },
263
+ {
264
+ "inputs": [
265
+ {
266
+ "internalType": "address",
267
+ "name": "",
268
+ "type": "address"
269
+ }
270
+ ],
271
+ "name": "isYT",
272
+ "outputs": [
273
+ {
274
+ "internalType": "bool",
275
+ "name": "",
276
+ "type": "bool"
277
+ }
278
+ ],
279
+ "stateMutability": "view",
280
+ "type": "function"
281
+ },
282
+ {
283
+ "inputs": [
284
+ {
285
+ "internalType": "uint256",
286
+ "name": "newExpiryDivisor",
287
+ "type": "uint256"
288
+ }
289
+ ],
290
+ "name": "setExpiryDivisor",
291
+ "outputs": [],
292
+ "stateMutability": "nonpayable",
293
+ "type": "function"
294
+ },
295
+ {
296
+ "inputs": [
297
+ {
298
+ "internalType": "uint256",
299
+ "name": "newInterestFeeRate",
300
+ "type": "uint256"
301
+ }
302
+ ],
303
+ "name": "setInterestFeeRate",
304
+ "outputs": [],
305
+ "stateMutability": "nonpayable",
306
+ "type": "function"
307
+ },
308
+ {
309
+ "inputs": [
310
+ {
311
+ "internalType": "address",
312
+ "name": "newTreasury",
313
+ "type": "address"
314
+ }
315
+ ],
316
+ "name": "setTreasury",
317
+ "outputs": [],
318
+ "stateMutability": "nonpayable",
319
+ "type": "function"
320
+ },
321
+ {
322
+ "inputs": [],
323
+ "name": "treasury",
324
+ "outputs": [
325
+ {
326
+ "internalType": "address",
327
+ "name": "",
328
+ "type": "address"
329
+ }
330
+ ],
331
+ "stateMutability": "view",
332
+ "type": "function"
333
+ }
334
+ ],
335
+ "bytecode": "0x60a06040523480156200001157600080fd5b5060405162005b5c38038062005b5c8339810160408190526200003491620000d2565b806001600160a01b0381166200007f5760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b604482015260640160405180910390fd5b6001600160a01b0390811660805260009490945550600191909155600280546001600160a01b031916919092161790556200011d565b80516001600160a01b0381168114620000cd57600080fd5b919050565b60008060008060808587031215620000e957600080fd5b84519350602085015192506200010260408601620000b5565b91506200011260608601620000b5565b905092959194509250565b608051615a1c62000140600039600081816102870152610a6a0152615a1c6000f3fe60806040523480156200001157600080fd5b5060043610620000ca5760003560e01c806313d54e7a14620000cf5780632469b116146200010957806335e46e9a146200014f57806361d027b3146200018657806371846aa8146200019a5780637497395814620001c05780637d379a4814620001d95780638c9f796214620001f0578063950f57271462000227578063be0f2fb1146200025f578063d2e6d1c31462000281578063dd86fea114620002a9578063e9e5f3cf14620002c2578063f0f4426014620002cc575b600080fd5b620000f16040518060400160405280600281526020016113d560f21b81525081565b6040516200010091906200134b565b60405180910390f35b620001406200011a36600462001380565b60036020908152600092835260408084209091529082529020546001600160a01b031681565b604051620001009190620013af565b6200017562000160366004620013c3565b60056020526000908152604090205460ff1681565b604051901515815260200162000100565b60025462000140906001600160a01b031681565b62000175620001ab366004620013c3565b60066020526000908152604090205460ff1681565b620001d7620001d1366004620013e3565b620002e3565b005b620001d7620001ea366004620013e3565b62000365565b620001406200020136600462001380565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6200023e6200023836600462001380565b620003d8565b604080516001600160a01b0393841681529290911660208301520162000100565b620000f160405180604001604052806002815260200161165560f21b81525081565b620001407f000000000000000000000000000000000000000000000000000000000000000081565b620002b360015481565b60405190815260200162000100565b620002b360005481565b620001d7620002dd366004620013c3565b620009df565b620002ed62000a66565b6001600160a01b0316336001600160a01b031614620003295760405162461bcd60e51b81526004016200032090620013fd565b60405180910390fd5b60008190556040518181527fdaf60f79a59eb1d8c1748ab26dc83c44f364ce8c1fc497ec2df45d9538a1aa11906020015b60405180910390a150565b6200036f62000a66565b6001600160a01b0316336001600160a01b031614620003a25760405162461bcd60e51b81526004016200032090620013fd565b60018190556040518181527fa9d618683ded3ac7317e1717ad10e9e3b92041092a8e97ceb038c699cc54d640906020016200035a565b60008060005483620003eb91906200143c565b15620004385760405162461bcd60e51b815260206004820152601b60248201527a36bab9ba1031329036bab63a34b836329037b3103234bb34b9b7b960291b604482015260640162000320565b6001600160a01b03848116600090815260036020908152604080832087845290915290205416156200049a5760405162461bcd60e51b815260206004820152600a60248201526913d517d1561254d5115160b21b604482015260640162000320565b60008490506000816001600160a01b031663c2d416016040518163ffffffff1660e01b815260040160206040518083038186803b158015620004db57600080fd5b505afa158015620004f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000516919062001453565b905085620005dd836001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156200055757600080fd5b505afa1580156200056c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200059691908101906200148e565b87604051806040016040528060018152602001600160fd1b8152506040518060400160405280600281526020016113d560f21b81525062000b02909392919063ffffffff16565b620006a1846001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156200061b57600080fd5b505afa15801562000630573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200065a91908101906200148e565b88604051806040016040528060018152602001602d60f81b8152506040518060400160405280600281526020016113d560f21b81525062000b02909392919063ffffffff16565b8388604051620006b190620012ce565b620006c195949392919062001546565b604051809103906000f080158015620006de573d6000803e3d6000fd5b5093508584620007a7846001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156200072157600080fd5b505afa15801562000736573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200076091908101906200148e565b88604051806040016040528060018152602001600160fd1b81525060405180604001604052806002815260200161165560f21b81525062000b02909392919063ffffffff16565b6200086b856001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015620007e557600080fd5b505afa158015620007fa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200082491908101906200148e565b89604051806040016040528060018152602001602d60f81b81525060405180604001604052806002815260200161165560f21b81525062000b02909392919063ffffffff16565b84896040516200087b90620012dc565b6200088c9695949392919062001598565b604051809103906000f080158015620008a9573d6000803e3d6000fd5b5060405163189acdbd60e31b81529093506001600160a01b0385169063c4d66de890620008db908690600401620013af565b600060405180830381600087803b158015620008f657600080fd5b505af11580156200090b573d6000803e3d6000fd5b505050506001600160a01b0386811660008181526003602090815260408083208a8452825280832080548a87166001600160a01b03199182168117909255858552600484528285208c865284528285208054978b16979091168717905580845260058352818420805460ff1990811660019081179092558786526006855294839020805490951617909355805192835290820193909352918201879052907f7c10d2914fa2900a53b0058359f4d5581f2b83982b0964c38c182079e884ba2f9060600160405180910390a250509250929050565b620009e962000a66565b6001600160a01b0316336001600160a01b03161462000a1c5760405162461bcd60e51b81526004016200032090620013fd565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fcb7ef3e545f5cdb893f5c568ba710fe08f336375a2d9fd66e161033f8fc09ef390600090a250565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801562000ac257600080fd5b505afa15801562000ad7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000afd9190620015f3565b905090565b60608482858462000b138762000b42565b60405160200162000b2995949392919062001613565b6040516020818303038152906040529050949350505050565b6060600062000b518362000bc0565b9050600062000b67826040015160ff1662000d75565b9050600062000b768362000eac565b9050600062000b8d846000015161ffff1662000d75565b905082828260405160200162000ba69392919062001688565b604051602081830303815290604052945050505050919050565b6040805160608101825260008082526020820181905291810182905290808062000bea8562001036565b61ffff16845262000bfd6107b26200114f565b845162000c0e9061ffff166200114f565b62000c1a9190620016e7565b915062000c2c826301e2850062001701565b62000c38908462001723565b9250816107b2856000015162000c4f91906200173e565b61ffff1662000c5f9190620016e7565b62000c6f906301e1338062001701565b62000c7b908462001723565b92506000600191505b600c8260ff161162000cfa5762000ca0828660000151620011a6565b62000cb29060ff166201518062001701565b90508562000cc1858362001723565b111562000cd75760ff8216602086015262000cfa565b62000ce3818562001723565b93508162000cf18162001764565b92505062000c84565b600191505b62000d1385602001518660000151620011a6565b60ff168260ff161162000d6c578562000d30856201518062001723565b111562000d465760ff8216604086015262000d6c565b62000d55620151808562001723565b93508162000d638162001764565b92505062000cff565b50505050919050565b60608162000d9a5750506040805180820190915260018152600360fc1b602082015290565b8160005b811562000dca578062000db18162001787565b915062000dc29050600a83620017a5565b915062000d9e565b6000816001600160401b0381111562000de75762000de762001478565b6040519080825280601f01601f19166020018201604052801562000e12576020820181803683370190505b509050600062000e24600184620016e7565b90505b851562000ea35762000e3b600a876200143c565b62000e4890603062001723565b60f81b82828151811062000e605762000e60620017bc565b60200101906001600160f81b031916908160001a905350801562000e8e578062000e8a81620017d2565b9150505b62000e9b600a87620017a5565b955062000e27565b50949350505050565b604080516101c08101825260036101808201818152622520a760e91b6101a0840152825282518084018452818152622322a160e91b60208281019190915280840191909152835180850185528281526226a0a960e91b8183015283850152835180850185528281526220a82960e91b8183015260608481019190915284518086018652838152624d415960e81b8184015260808501528451808601865283815262252aa760e91b8184015260a0850152845180860186528381526212955360ea1b8184015260c0850152845180860186528381526241554760e81b8184015260e0850152845180860186528381526205345560ec1b81840152610100850152845180860186528381526213d0d560ea1b8184015261012085015284518086018652838152622727ab60e91b8184015261014085015284518086019095529184526244454360e81b848201526101608301939093529183015181906200101490600190620017ec565b60ff16600c81106200102a576200102a620017bc565b60200201519392505050565b60008080806200104b6301e1338086620017a5565b62001059906107b262001723565b9150620010686107b26200114f565b620010778361ffff166200114f565b620010839190620016e7565b905062001095816301e2850062001701565b620010a1908462001723565b925080620010b26107b2846200173e565b61ffff16620010c29190620016e7565b620010d2906301e1338062001701565b620010de908462001723565b92505b84831115620011475762001101620010fb6001846200173e565b6200127e565b156200111f57620011176301e2850084620016e7565b925062001132565b6200112f6301e1338084620016e7565b92505b6200113f6001836200173e565b9150620010e1565b509392505050565b60006200115e600183620016e7565b91506200116e61019083620017a5565b6200117b606484620017a5565b62001188600485620017a5565b620011949190620016e7565b620011a0919062001723565b92915050565b60008260ff1660011480620011be57508260ff166003145b80620011cd57508260ff166005145b80620011dc57508260ff166007145b80620011eb57508260ff166008145b80620011fa57508260ff16600a145b806200120957508260ff16600c145b15620012185750601f620011a0565b8260ff16600414806200122e57508260ff166006145b806200123d57508260ff166009145b806200124c57508260ff16600b145b156200125b5750601e620011a0565b62001266826200127e565b15620012755750601d620011a0565b50601c92915050565b60006200128d60048362001812565b61ffff16158015620012ae5750620012a760648362001812565b61ffff1615155b80620011a05750620012c36101908362001812565b61ffff161592915050565b611134806200183783390190565b61307c806200296b83390190565b60005b8381101562001307578181015183820152602001620012ed565b8381111562001317576000848401525b50505050565b6000815180845262001337816020860160208601620012ea565b601f01601f19169290920160200192915050565b6020815260006200136060208301846200131d565b9392505050565b6001600160a01b03811681146200137d57600080fd5b50565b600080604083850312156200139457600080fd5b8235620013a18162001367565b946020939093013593505050565b6001600160a01b0391909116815260200190565b600060208284031215620013d657600080fd5b8135620013608162001367565b600060208284031215620013f657600080fd5b5035919050565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b6000826200144e576200144e62001426565b500690565b6000602082840312156200146657600080fd5b815160ff811681146200136057600080fd5b634e487b7160e01b600052604160045260246000fd5b600060208284031215620014a157600080fd5b81516001600160401b0380821115620014b957600080fd5b818401915084601f830112620014ce57600080fd5b815181811115620014e357620014e362001478565b604051601f8201601f19908116603f011681019083821181831017156200150e576200150e62001478565b816040528281528760208487010111156200152857600080fd5b6200153b836020830160208801620012ea565b979650505050505050565b6001600160a01b038616815260a0602082018190526000906200156c908301876200131d565b82810360408401526200158081876200131d565b60ff9590951660608401525050608001529392505050565b6001600160a01b0387811682528616602082015260c060408201819052600090620015c6908301876200131d565b8281036060840152620015da81876200131d565b60ff959095166080840152505060a00152949350505050565b6000602082840312156200160657600080fd5b8151620013608162001367565b6000865162001627818460208b01620012ea565b8651908301906200163d818360208b01620012ea565b865191019062001652818360208a01620012ea565b855191019062001667818360208901620012ea565b84519101906200167c818360208801620012ea565b01979650505050505050565b600084516200169c818460208901620012ea565b845190830190620016b2818360208901620012ea565b8451910190620016c7818360208801620012ea565b0195945050505050565b634e487b7160e01b600052601160045260246000fd5b600082821015620016fc57620016fc620016d1565b500390565b60008160001904831182151516156200171e576200171e620016d1565b500290565b60008219821115620017395762001739620016d1565b500190565b600061ffff838116908316818110156200175c576200175c620016d1565b039392505050565b600060ff821660ff8114156200177e576200177e620016d1565b60010192915050565b60006000198214156200179e576200179e620016d1565b5060010190565b600082620017b757620017b762001426565b500490565b634e487b7160e01b600052603260045260246000fd5b600081620017e457620017e4620016d1565b506000190190565b600060ff821660ff841680821015620018095762001809620016d1565b90039392505050565b600061ffff808416806200182a576200182a62001426565b9216919091069291505056fe6101206040523480156200001257600080fd5b506040516200113438038062001134833981016040819052620000359162000250565b838383838383816003908051906020019062000053929190620000dd565b50805162000069906004906020840190620000dd565b505050428111620000b15760405162461bcd60e51b815260206004820152600e60248201526d494e56414c49445f45585049525960901b604482015260640160405180910390fd5b60ff9091166080524260a05260c05250503360e052505050506001600160a01b0316610100526200033d565b828054620000eb9062000300565b90600052602060002090601f0160209004810192826200010f57600085556200015a565b82601f106200012a57805160ff19168380011785556200015a565b828001600101855582156200015a579182015b828111156200015a5782518255916020019190600101906200013d565b50620001689291506200016c565b5090565b5b808211156200016857600081556001016200016d565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ab57600080fd5b81516001600160401b0380821115620001c857620001c862000183565b604051601f8301601f19908116603f01168101908282118183101715620001f357620001f362000183565b816040528381526020925086838588010111156200021057600080fd5b600091505b8382101562000234578582018301518183018401529082019062000215565b83821115620002465760008385830101525b9695505050505050565b600080600080600060a086880312156200026957600080fd5b85516001600160a01b03811681146200028157600080fd5b60208701519095506001600160401b03808211156200029f57600080fd5b620002ad89838a0162000199565b95506040880151915080821115620002c457600080fd5b50620002d38882890162000199565b935050606086015160ff81168114620002eb57600080fd5b80925050608086015190509295509295909350565b600181811c908216806200031557607f821691505b602082108114156200033757634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161010051610da46200039060003960006101ee0152600081816102aa015261057c01526000818161017e01526102f70152600061031e015260006101ac0152610da46000f3fe608060405234801561001057600080fd5b50600436106100fc5760003560e01c806306fdde0314610101578063095ea7b31461011f57806312a31dcc1461014257806318160ddd1461015757806323b872dd146101695780632f13b60c1461017c578063313ce567146101a557806339509351146101d657806347bfac62146101e957806370a0823114610228578063781c18db1461025157806395d89b4114610264578063a457c2d71461026c578063a9059cbb1461027f578063b64761f914610292578063c45a0155146102a5578063c4d66de8146102cc578063dd62ed3e146102df578063e184c9be146102f2578063f1653f6e14610319575b600080fd5b610109610340565b6040516101169190610b81565b60405180910390f35b61013261012d366004610bf2565b6103d2565b6040519015158152602001610116565b610155610150366004610bf2565b6103ea565b005b6002545b604051908152602001610116565b610132610177366004610c1c565b61042b565b7f0000000000000000000000000000000000000000000000000000000000000000421015610132565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610116565b6101326101e4366004610bf2565b61044f565b6102107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610116565b61015b610236366004610c58565b6001600160a01b031660009081526020819052604090205490565b600554610210906001600160a01b031681565b61010961048e565b61013261027a366004610bf2565b61049d565b61013261028d366004610bf2565b61052f565b6101556102a0366004610bf2565b61053d565b6102107f000000000000000000000000000000000000000000000000000000000000000081565b6101556102da366004610c58565b610571565b61015b6102ed366004610c7a565b6105fa565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60606003805461034f90610cad565b80601f016020809104026020016040519081016040528092919081815260200182805461037b90610cad565b80156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b5050505050905090565b6000336103e0818585610625565b5060019392505050565b6005546001600160a01b0316331461041d5760405162461bcd60e51b815260040161041490610ce8565b60405180910390fd5b610427828261074a565b5050565b600033610439858285610817565b610444858585610891565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906103e09082908690610489908790610d1f565b610625565b60606004805461034f90610cad565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156105225760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610414565b6104448286868403610625565b6000336103e0818585610891565b6005546001600160a01b031633146105675760405162461bcd60e51b815260040161041490610ce8565b6104278282610a4d565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105d85760405162461bcd60e51b815260206004820152600c60248201526b4f4e4c595f464143544f525960a01b6044820152606401610414565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166106875760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610414565b6001600160a01b0382166106e85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610414565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382166107a05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610414565b80600260008282546107b29190610d1f565b90915550506001600160a01b038216600090815260208190526040812080548392906107df908490610d1f565b90915550506040518181526001600160a01b03831690600090600080516020610d4f8339815191529060200160405180910390a35050565b600061082384846105fa565b9050600019811461088b578181101561087e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610414565b61088b8484848403610625565b50505050565b6001600160a01b0383166108f55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610414565b6001600160a01b0382166109575760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610414565b6001600160a01b038316600090815260208190526040902054818110156109cf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610414565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610a06908490610d1f565b92505081905550826001600160a01b0316846001600160a01b0316600080516020610d4f83398151915284604051610a4091815260200190565b60405180910390a361088b565b6001600160a01b038216610aad5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610414565b6001600160a01b03821660009081526020819052604090205481811015610b215760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610414565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610b50908490610d37565b90915550506040518281526000906001600160a01b03851690600080516020610d4f8339815191529060200161073d565b600060208083528351808285015260005b81811015610bae57858101830151858201604001528201610b92565b81811115610bc0576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610bed57600080fd5b919050565b60008060408385031215610c0557600080fd5b610c0e83610bd6565b946020939093013593505050565b600080600060608486031215610c3157600080fd5b610c3a84610bd6565b9250610c4860208501610bd6565b9150604084013590509250925092565b600060208284031215610c6a57600080fd5b610c7382610bd6565b9392505050565b60008060408385031215610c8d57600080fd5b610c9683610bd6565b9150610ca460208401610bd6565b90509250929050565b600181811c90821680610cc157607f821691505b60208210811415610ce257634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526007908201526613d3931657d65560ca1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115610d3257610d32610d09565b500190565b600082821015610d4957610d49610d09565b50039056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206dfbd3dbf4f2d2990ecb59f955386865d92d5c1257323522b7d7c9302386f34f64736f6c634300080900336101406040523480156200001257600080fd5b506040516200307c3803806200307c833981016040819052620000359162000279565b838383838383816003908051906020019062000053929190620000e9565b50805162000069906004906020840190620000e9565b505050428111620000b15760405162461bcd60e51b815260206004820152600e60248201526d494e56414c49445f45585049525960901b604482015260640160405180910390fd5b60ff9091166080524260a05260c05250503360e0525050600160085550506001600160a01b039182166101005216610120526200036a565b828054620000f7906200032d565b90600052602060002090601f0160209004810192826200011b576000855562000166565b82601f106200013657805160ff191683800117855562000166565b8280016001018555821562000166579182015b828111156200016657825182559160200191906001019062000149565b506200017492915062000178565b5090565b5b8082111562000174576000815560010162000179565b80516001600160a01b0381168114620001a757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001d457600080fd5b81516001600160401b0380821115620001f157620001f1620001ac565b604051601f8301601f19908116603f011681019082821181831017156200021c576200021c620001ac565b816040528381526020925086838588010111156200023957600080fd5b600091505b838210156200025d57858201830151818301840152908201906200023e565b838211156200026f5760008385830101525b9695505050505050565b60008060008060008060c087890312156200029357600080fd5b6200029e876200018f565b9550620002ae602088016200018f565b60408801519095506001600160401b0380821115620002cc57600080fd5b620002da8a838b01620001c2565b95506060890151915080821115620002f157600080fd5b506200030089828a01620001c2565b935050608087015160ff811681146200031857600080fd5b8092505060a087015190509295509295509295565b600181811c908216806200034257607f821691505b602082108114156200036457634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161012051612c4462000438600039600081816104b00152818161094401528181610a0c0152610ec401526000818161027e015281816107f801528181610aad01528181610b1601528181610d480152818161102001528181611197015281816112400152818161179401528181611d5901528181611de80152818161202d015261214701526000818161046101528181610b6a01526116d6015260008181610513015261067d015260006105890152600061023c0152612c446000f3fe608060405234801561001057600080fd5b50600436106101c25760003560e01c806306fdde03146101c7578063095ea7b3146101e557806318160ddd1461020857806323b872dd1461021a5780632f13b60c1461022d578063313ce56714610235578063395093511461026657806347bfac62146102795780635ab764ed146102ad578063649a00d61461031557806366247a721461032857806370a082311461033b57806371fd241f1461034e5780637695caa21461037f57806379e6ea161461038957806380a7c9ac146103a957806388611f35146103bc57806395d89b41146103c55780639c9fdc3b146103cd578063a090ee50146103d6578063a457c2d7146103de578063a9059cbb146103f1578063aa1fb97014610404578063afb442e914610417578063b9d9a4531461042a578063ba50154d14610432578063bdaba5361461043b578063c45a01551461045c578063c4f59f9b14610483578063c6d6916c14610498578063c836545a146104ab578063d86e0302146104d2578063dcda874d146104db578063dd62ed3e146104fb578063e184c9be1461050e578063eded816114610535578063f04818141461053e578063f1653f6e14610584575b600080fd5b6101cf6105ab565b6040516101dc919061266c565b60405180910390f35b6101f86101f33660046126b4565b61063d565b60405190151581526020016101dc565b6002545b6040519081526020016101dc565b6101f86102283660046126e0565b610655565b6101f861067b565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101dc565b6101f86102743660046126b4565b6106a2565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516101dc9190612721565b6103006102bb366004612735565b6001600160a01b039182166000908152600760209081526040808320939094168252918252829020825180840190935280548084526001909101549290910182905291565b604080519283526020830191909152016101dc565b61020c61032336600461276e565b6106e1565b61020c61033636600461276e565b610740565b61020c61034936600461276e565b6107cb565b61030061035c36600461276e565b6001600160a01b03166000908152600e6020526040902080546001909101549091565b6103876107e6565b005b61039c61039736600461276e565b61089a565b6040516101dc91906127c6565b61020c6103b736600461276e565b610900565b61020c600d5481565b6101cf610ae8565b61020c600a5481565b610387610af7565b6101f86103ec3660046126b4565b610db7565b6101f86103ff3660046126b4565b610e54565b61020c610412366004612735565b610e62565b61038761042536600461276e565b610f3a565b61030061101b565b61020c60055481565b61044e61044936600461276e565b6110d2565b6040516101dc9291906127d9565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b61048b611193565b6040516101dc91906127f2565b6103876104a636600461276e565b61122f565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b61020c60095481565b61020c6104e936600461276e565b600b6020526000908152604090205481565b61020c610509366004612735565b6112ec565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b61020c600c5481565b61030061054c36600461276e565b6001600160a01b0316600090815260066020908152604091829020825180840190935280548084526001909101549290910182905291565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b6060600380546105ba9061283f565b80601f01602080910402602001604051908101604052809291908181526020018280546105e69061283f565b80156106335780601f1061060857610100808354040283529160200191610633565b820191906000526020600020905b81548152906001019060200180831161061657829003601f168201915b5050505050905090565b60003361064b818585611317565b5060019392505050565b60003361066385828561143b565b61066e8585856114b5565b60019150505b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000042101590565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061064b90829086906106dc908790612890565b611317565b6001600160a01b0381166000908152600e6020526040812054806107085750600092915050565b6001600160a01b0383166000908152600e602052604090206001015461073682610731866107cb565b61167c565b6106749190612890565b60006002600854141561076e5760405162461bcd60e51b8152600401610765906128a8565b60405180910390fd5b600260085561077c8261122f565b61078582610f3a565b61078e8261169b565b9050816001600160a01b0316600080516020612bcf833981519152826040516107b991815260200190565b60405180910390a26001600855919050565b6001600160a01b031660009081526020819052604090205490565b60006107f0611193565b9050610897817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016108429190612721565b60206040518083038186803b15801561085a57600080fd5b505afa15801561086e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089291906128df565b6117cb565b50565b6060600260085414156108bf5760405162461bcd60e51b8152600401610765906128a8565b60026008556108cd8261122f565b6108d78283611971565b9050816001600160a01b0316600080516020612baf833981519152826040516107b991906127c6565b6000600260085414156109255760405162461bcd60e51b8152600401610765906128a8565b60026008556040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610979903090600401612721565b60206040518083038186803b15801561099157600080fd5b505afa1580156109a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c991906128df565b90506109d361067b565b6109f5576109e9816109e4306107cb565b611b4e565b90506109f53082611b64565b60405163b64761f960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b64761f990610a4390309085906004016128f8565b600060405180830381600087803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b505050506000610a8082611cac565b809250819450505080600c6000828254610a9a9190612890565b90915550610ad490506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611cec565b610adc611d42565b50506001600855919050565b6060600480546105ba9061283f565b6000610b01611193565b9050610b0b61067b565b15610b6057610b60817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016108429190612721565b60008151905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc157600080fd5b505afa158015610bd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf99190612911565b90506000826001600160401b03811115610c1557610c1561292e565b604051908082528060200260200182016040528015610c3e578160200160208202803683370190505b50905060005b83811015610d16576000858281518110610c6057610c60612944565b6020908102919091018101516001600160a01b0381166000908152600b9092526040909120549091508015610cc657610cc68582898681518110610ca657610ca6612944565b60200260200101516001600160a01b0316611cec9092919063ffffffff16565b6001600160a01b0382166000908152600b602052604081205583518190859085908110610cf557610cf5612944565b60200260200101818152505050508080610d0e9061295a565b915050610c44565b506000600c54600d54610d299190612890565b6000600c819055600d5590508015610d7757610d6f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168483611cec565b610d77611d42565b7f1f8d4ebdbc9b09c20d70cab598013079424b00c1e028075b6d5d5eaee6e5c1228282604051610da8929190612975565b60405180910390a15050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610e3c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610765565b610e498286868403611317565b506001949350505050565b60003361064b8185856114b5565b600060026008541415610e875760405162461bcd60e51b8152600401610765906128a8565b60026008556000610e96611de3565b9050610ea181611ed9565b9150610ead8383611ef1565b6040516304a8c77360e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906312a31dcc90610efb90879086906004016128f8565b600060405180830381600087803b158015610f1557600080fd5b505af1158015610f29573d6000803e3d6000fd5b505060016008555091949350505050565b6001600160a01b0381166000908152600e602052604081205490610f5c61101b565b91505080821415610f6c57505050565b81610f91576001600160a01b039092166000908152600e602052604090209190915550565b6000610f9c846107cb565b90506000610fc7610fad8486612997565b610fb786866129b6565b610fc19085612997565b90611fcb565b6001600160a01b0386166000908152600e6020526040812060010180549293508392909190610ff7908490612890565b9091555050506001600160a01b039093166000908152600e60205260409020555050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f65d6fc86040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561107957600080fd5b505af115801561108d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b191906128df565b91506110bb61067b565b156110c85750600a549091565b50600a8190558091565b60006060600260085414156110f95760405162461bcd60e51b8152600401610765906128a8565b60026008556111078361122f565b61111083610f3a565b61111a8384611971565b90506111258361169b565b9150826001600160a01b0316600080516020612baf8339815191528260405161114e91906127c6565b60405180910390a2826001600160a01b0316600080516020612bcf8339815191528360405161117f91815260200190565b60405180910390a260016008559092909150565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4f59f9b6040518163ffffffff1660e01b815260040160006040518083038186803b1580156111ee57600080fd5b505afa158015611202573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261122a9190810190612a20565b905090565b600061123a826106e1565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161128a9190612721565b60206040518083038186803b1580156112a257600080fd5b505afa1580156112b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112da91906128df565b90506112e7838383611ffa565b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166113795760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610765565b6001600160a01b0382166113da5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610765565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061144784846112ec565b905060001981146114af57818110156114a25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610765565b6114af8484848403611317565b50505050565b6001600160a01b0383166115195760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610765565b6001600160a01b03821661157b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610765565b61158683838361201b565b6001600160a01b038316600090815260208190526040902054818110156115fe5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610765565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611635908490612890565b92505081905550826001600160a01b0316846001600160a01b0316600080516020612bef8339815191528460405161166f91815260200190565b60405180910390a36114af565b600082611691670de0b6b3a764000084612997565b6106749190612ac9565b6001600160a01b038082166000908152600e60209081526040808320600101805490849055815163dd86fea160e01b815291519394909385937f00000000000000000000000000000000000000000000000000000000000000009092169263dd86fea1926004808301939192829003018186803b15801561171b57600080fd5b505afa15801561172f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175391906128df565b9050600061176183836120f6565b905080600d60008282546117759190612890565b90915550611785905081846129b6565b93506117bb6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168686611cec565b6117c3611d42565b505050919050565b6117d3612114565b6117db575050565b6117e3612130565b6117ec826121d2565b60006117f661067b565b905060005b83518110156114af57600084828151811061181857611818612944565b602002602001015190506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016118509190612721565b60206040518083038186803b15801561186857600080fd5b505afa15801561187c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a091906128df565b6001600160a01b038316600090815260066020526040812060010154919250906118ca90836129b6565b90508415611905576001600160a01b0383166000908152600b6020526040812080548392906118fa908490612890565b909155506119439050565b8515611943576119158187611fcb565b6001600160a01b0384166000908152600660205260408120805490919061193d908490612890565b90915550505b506001600160a01b0390911660009081526006602052604090206001015561196a8161295a565b90506117fb565b6060600061197d611193565b905080516001600160401b038111156119985761199861292e565b6040519080825280602002602001820160405280156119c1578160200160208202803683370190505b50915060005b8151811015611b465760008282815181106119e4576119e4612944565b6020026020010151905060076000876001600160a01b03166001600160a01b031681526020019081526020016000206000826001600160a01b03166001600160a01b0316815260200190815260200160002060010154848381518110611a4c57611a4c612944565b6020908102919091018101919091526001600160a01b0380881660009081526007835260408082209285168252919092528120600101558351849083908110611a9757611a97612944565b602002602001015160066000836001600160a01b03166001600160a01b031681526020019081526020016000206001016000828254611ad691906129b6565b92505081905550838281518110611aef57611aef612944565b6020026020010151600014611b3557611b3585858481518110611b1457611b14612944565b6020026020010151836001600160a01b0316611cec9092919063ffffffff16565b50611b3f8161295a565b90506119c7565b505092915050565b6000818310611b5d5781610674565b5090919050565b6001600160a01b038216611bc45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610765565b611bd08260008361201b565b6001600160a01b03821660009081526020819052604090205481811015611c445760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610765565b6001600160a01b0383166000908152602081905260408120838303905560028054849290611c739084906129b6565b90915550506040518281526000906001600160a01b03851690600080516020612bef8339815191529060200160405180910390a3505050565b600080600080611cba61101b565b915091506000611cca828761167c565b9050611cd6838761167c565b9450611ce285826129b6565b9350505050915091565b6112e78363a9059cbb60e01b8484604051602401611d0b9291906128f8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612275565b6040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190611d8e903090600401612721565b60206040518083038186803b158015611da657600080fd5b505afa158015611dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dde91906128df565b600955565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611e329190612721565b60206040518083038186803b158015611e4a57600080fd5b505afa158015611e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8291906128df565b905060095481611e9291906129b6565b915060008211611ed35760405162461bcd60e51b815260206004820152600c60248201526b524543454956455f5a45524f60a01b6044820152606401610765565b60095590565b600080611ee461101b565b9150506106748184612347565b6001600160a01b038216611f475760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610765565b611f536000838361201b565b8060026000828254611f659190612890565b90915550506001600160a01b03821660009081526020819052604081208054839290611f92908490612890565b90915550506040518181526001600160a01b03831690600090600080516020612bef8339815191529060200160405180910390a35b5050565b600080611fe0670de0b6b3a764000085612997565b9050828181611ff157611ff1612ab3565b04949350505050565b6000612004611193565b905061201081836117cb565b6114af81858561235c565b6000612025611193565b9050612077817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016108429190612721565b6001600160a01b0384161580159061209857506001600160a01b0384163014155b156120b9576120a684610f3a565b6120b981856120b4876106e1565b61235c565b6001600160a01b038316158015906120da57506001600160a01b0383163014155b156114af576120e883610f3a565b6114af81846120b4866106e1565b6000806121038385612997565b9050670de0b6b3a764000081611ff1565b60004360055414156121265750600090565b5043600555600190565b6040516359436f3b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b286de769061217c903090600401612721565b600060405180830381600087803b15801561219657600080fd5b505af11580156121aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108979190810190612aeb565b60005b8151811015611fc757600660008383815181106121f4576121f4612944565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154600014156122655760016006600084848151811061224057612240612944565b6020908102919091018101516001600160a01b03168252810191909152604001600020555b61226e8161295a565b90506121d5565b60006122ca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166124bf9092919063ffffffff16565b8051909150156112e757808060200190518101906122e89190612b70565b6112e75760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610765565b6000670de0b6b3a76400006116918484612997565b60005b83518110156114af57600084828151811061237c5761237c612944565b6020908102919091018101516001600160a01b038087166000908152600784526040808220928416825291845281812054600690945220549092508114156123c55750506124af565b8061240157506001600160a01b0390811660008181526006602090815260408083205494881683526007825280832093835292905220556124af565b6001600160a01b0382166000908152600660205260408120546124259083906129b6565b9050600061243386836120f6565b6001600160a01b038089166000908152600760209081526040808320938916835292905290812060010180549293508392909190612472908490612890565b9091555050506001600160a01b03928316600081815260066020908152604080832054968a16835260078252808320938352929052209290925550505b6124b88161295a565b905061235f565b60606124ce84846000856124d6565b949350505050565b6060824710156125375760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610765565b6001600160a01b0385163b61258e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610765565b600080866001600160a01b031685876040516125aa9190612b92565b60006040518083038185875af1925050503d80600081146125e7576040519150601f19603f3d011682016040523d82523d6000602084013e6125ec565b606091505b50915091506125fc828286612607565b979650505050505050565b60608315612616575081610674565b8251156126265782518084602001fd5b8160405162461bcd60e51b8152600401610765919061266c565b60005b8381101561265b578181015183820152602001612643565b838111156114af5750506000910152565b602081526000825180602084015261268b816040850160208701612640565b601f01601f19169190910160400192915050565b6001600160a01b038116811461089757600080fd5b600080604083850312156126c757600080fd5b82356126d28161269f565b946020939093013593505050565b6000806000606084860312156126f557600080fd5b83356127008161269f565b925060208401356127108161269f565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b6000806040838503121561274857600080fd5b82356127538161269f565b915060208301356127638161269f565b809150509250929050565b60006020828403121561278057600080fd5b81356106748161269f565b600081518084526020808501945080840160005b838110156127bb5781518752958201959082019060010161279f565b509495945050505050565b602081526000610674602083018461278b565b8281526040602082015260006124ce604083018461278b565b6020808252825182820181905260009190848201906040850190845b818110156128335783516001600160a01b03168352928401929184019160010161280e565b50909695505050505050565b600181811c9082168061285357607f821691505b6020821081141561287457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156128a3576128a361287a565b500190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000602082840312156128f157600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561292357600080fd5b81516106748161269f565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060001982141561296e5761296e61287a565b5060010190565b604081526000612988604083018561278b565b90508260208301529392505050565b60008160001904831182151516156129b1576129b161287a565b500290565b6000828210156129c8576129c861287a565b500390565b604051601f8201601f191681016001600160401b03811182821017156129f5576129f561292e565b604052919050565b60006001600160401b03821115612a1657612a1661292e565b5060051b60200190565b60006020808385031215612a3357600080fd5b82516001600160401b03811115612a4957600080fd5b8301601f81018513612a5a57600080fd5b8051612a6d612a68826129fd565b6129cd565b81815260059190911b82018301908381019087831115612a8c57600080fd5b928401925b828410156125fc578351612aa48161269f565b82529284019290840190612a91565b634e487b7160e01b600052601260045260246000fd5b600082612ae657634e487b7160e01b600052601260045260246000fd5b500490565b60006020808385031215612afe57600080fd5b82516001600160401b03811115612b1457600080fd5b8301601f81018513612b2557600080fd5b8051612b33612a68826129fd565b81815260059190911b82018301908381019087831115612b5257600080fd5b928401925b828410156125fc57835182529284019290840190612b57565b600060208284031215612b8257600080fd5b8151801515811461067457600080fd5b60008251612ba4818460208701612640565b919091019291505056fe3a77fed7c9a4917745bde0b97b576d95b02425a5222ff309ebb6e1d34c18a10f83a945bd12c713615b59a6e48a3467c05d1a7442350600d6f7fce6af9f7190e9ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122082b1b2a5cd3200d8fb7581ccb0ec45ff370f1ef55dde3988c198efb20445a29464736f6c63430008090033a2646970667358221220e0fbee124e02e74bfc77a60e909b8355d8db137299642c0075632258236c4a6164736f6c63430008090033",
336
+ "deployedBytecode": "0x60806040523480156200001157600080fd5b5060043610620000ca5760003560e01c806313d54e7a14620000cf5780632469b116146200010957806335e46e9a146200014f57806361d027b3146200018657806371846aa8146200019a5780637497395814620001c05780637d379a4814620001d95780638c9f796214620001f0578063950f57271462000227578063be0f2fb1146200025f578063d2e6d1c31462000281578063dd86fea114620002a9578063e9e5f3cf14620002c2578063f0f4426014620002cc575b600080fd5b620000f16040518060400160405280600281526020016113d560f21b81525081565b6040516200010091906200134b565b60405180910390f35b620001406200011a36600462001380565b60036020908152600092835260408084209091529082529020546001600160a01b031681565b604051620001009190620013af565b6200017562000160366004620013c3565b60056020526000908152604090205460ff1681565b604051901515815260200162000100565b60025462000140906001600160a01b031681565b62000175620001ab366004620013c3565b60066020526000908152604090205460ff1681565b620001d7620001d1366004620013e3565b620002e3565b005b620001d7620001ea366004620013e3565b62000365565b620001406200020136600462001380565b60046020908152600092835260408084209091529082529020546001600160a01b031681565b6200023e6200023836600462001380565b620003d8565b604080516001600160a01b0393841681529290911660208301520162000100565b620000f160405180604001604052806002815260200161165560f21b81525081565b620001407f000000000000000000000000000000000000000000000000000000000000000081565b620002b360015481565b60405190815260200162000100565b620002b360005481565b620001d7620002dd366004620013c3565b620009df565b620002ed62000a66565b6001600160a01b0316336001600160a01b031614620003295760405162461bcd60e51b81526004016200032090620013fd565b60405180910390fd5b60008190556040518181527fdaf60f79a59eb1d8c1748ab26dc83c44f364ce8c1fc497ec2df45d9538a1aa11906020015b60405180910390a150565b6200036f62000a66565b6001600160a01b0316336001600160a01b031614620003a25760405162461bcd60e51b81526004016200032090620013fd565b60018190556040518181527fa9d618683ded3ac7317e1717ad10e9e3b92041092a8e97ceb038c699cc54d640906020016200035a565b60008060005483620003eb91906200143c565b15620004385760405162461bcd60e51b815260206004820152601b60248201527a36bab9ba1031329036bab63a34b836329037b3103234bb34b9b7b960291b604482015260640162000320565b6001600160a01b03848116600090815260036020908152604080832087845290915290205416156200049a5760405162461bcd60e51b815260206004820152600a60248201526913d517d1561254d5115160b21b604482015260640162000320565b60008490506000816001600160a01b031663c2d416016040518163ffffffff1660e01b815260040160206040518083038186803b158015620004db57600080fd5b505afa158015620004f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000516919062001453565b905085620005dd836001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156200055757600080fd5b505afa1580156200056c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200059691908101906200148e565b87604051806040016040528060018152602001600160fd1b8152506040518060400160405280600281526020016113d560f21b81525062000b02909392919063ffffffff16565b620006a1846001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156200061b57600080fd5b505afa15801562000630573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200065a91908101906200148e565b88604051806040016040528060018152602001602d60f81b8152506040518060400160405280600281526020016113d560f21b81525062000b02909392919063ffffffff16565b8388604051620006b190620012ce565b620006c195949392919062001546565b604051809103906000f080158015620006de573d6000803e3d6000fd5b5093508584620007a7846001600160a01b03166306fdde036040518163ffffffff1660e01b815260040160006040518083038186803b1580156200072157600080fd5b505afa15801562000736573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200076091908101906200148e565b88604051806040016040528060018152602001600160fd1b81525060405180604001604052806002815260200161165560f21b81525062000b02909392919063ffffffff16565b6200086b856001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b158015620007e557600080fd5b505afa158015620007fa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526200082491908101906200148e565b89604051806040016040528060018152602001602d60f81b81525060405180604001604052806002815260200161165560f21b81525062000b02909392919063ffffffff16565b84896040516200087b90620012dc565b6200088c9695949392919062001598565b604051809103906000f080158015620008a9573d6000803e3d6000fd5b5060405163189acdbd60e31b81529093506001600160a01b0385169063c4d66de890620008db908690600401620013af565b600060405180830381600087803b158015620008f657600080fd5b505af11580156200090b573d6000803e3d6000fd5b505050506001600160a01b0386811660008181526003602090815260408083208a8452825280832080548a87166001600160a01b03199182168117909255858552600484528285208c865284528285208054978b16979091168717905580845260058352818420805460ff1990811660019081179092558786526006855294839020805490951617909355805192835290820193909352918201879052907f7c10d2914fa2900a53b0058359f4d5581f2b83982b0964c38c182079e884ba2f9060600160405180910390a250509250929050565b620009e962000a66565b6001600160a01b0316336001600160a01b03161462000a1c5760405162461bcd60e51b81526004016200032090620013fd565b600280546001600160a01b0319166001600160a01b0383169081179091556040517fcb7ef3e545f5cdb893f5c568ba710fe08f336375a2d9fd66e161033f8fc09ef390600090a250565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635aa6e6756040518163ffffffff1660e01b815260040160206040518083038186803b15801562000ac257600080fd5b505afa15801562000ad7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000afd9190620015f3565b905090565b60608482858462000b138762000b42565b60405160200162000b2995949392919062001613565b6040516020818303038152906040529050949350505050565b6060600062000b518362000bc0565b9050600062000b67826040015160ff1662000d75565b9050600062000b768362000eac565b9050600062000b8d846000015161ffff1662000d75565b905082828260405160200162000ba69392919062001688565b604051602081830303815290604052945050505050919050565b6040805160608101825260008082526020820181905291810182905290808062000bea8562001036565b61ffff16845262000bfd6107b26200114f565b845162000c0e9061ffff166200114f565b62000c1a9190620016e7565b915062000c2c826301e2850062001701565b62000c38908462001723565b9250816107b2856000015162000c4f91906200173e565b61ffff1662000c5f9190620016e7565b62000c6f906301e1338062001701565b62000c7b908462001723565b92506000600191505b600c8260ff161162000cfa5762000ca0828660000151620011a6565b62000cb29060ff166201518062001701565b90508562000cc1858362001723565b111562000cd75760ff8216602086015262000cfa565b62000ce3818562001723565b93508162000cf18162001764565b92505062000c84565b600191505b62000d1385602001518660000151620011a6565b60ff168260ff161162000d6c578562000d30856201518062001723565b111562000d465760ff8216604086015262000d6c565b62000d55620151808562001723565b93508162000d638162001764565b92505062000cff565b50505050919050565b60608162000d9a5750506040805180820190915260018152600360fc1b602082015290565b8160005b811562000dca578062000db18162001787565b915062000dc29050600a83620017a5565b915062000d9e565b6000816001600160401b0381111562000de75762000de762001478565b6040519080825280601f01601f19166020018201604052801562000e12576020820181803683370190505b509050600062000e24600184620016e7565b90505b851562000ea35762000e3b600a876200143c565b62000e4890603062001723565b60f81b82828151811062000e605762000e60620017bc565b60200101906001600160f81b031916908160001a905350801562000e8e578062000e8a81620017d2565b9150505b62000e9b600a87620017a5565b955062000e27565b50949350505050565b604080516101c08101825260036101808201818152622520a760e91b6101a0840152825282518084018452818152622322a160e91b60208281019190915280840191909152835180850185528281526226a0a960e91b8183015283850152835180850185528281526220a82960e91b8183015260608481019190915284518086018652838152624d415960e81b8184015260808501528451808601865283815262252aa760e91b8184015260a0850152845180860186528381526212955360ea1b8184015260c0850152845180860186528381526241554760e81b8184015260e0850152845180860186528381526205345560ec1b81840152610100850152845180860186528381526213d0d560ea1b8184015261012085015284518086018652838152622727ab60e91b8184015261014085015284518086019095529184526244454360e81b848201526101608301939093529183015181906200101490600190620017ec565b60ff16600c81106200102a576200102a620017bc565b60200201519392505050565b60008080806200104b6301e1338086620017a5565b62001059906107b262001723565b9150620010686107b26200114f565b620010778361ffff166200114f565b620010839190620016e7565b905062001095816301e2850062001701565b620010a1908462001723565b925080620010b26107b2846200173e565b61ffff16620010c29190620016e7565b620010d2906301e1338062001701565b620010de908462001723565b92505b84831115620011475762001101620010fb6001846200173e565b6200127e565b156200111f57620011176301e2850084620016e7565b925062001132565b6200112f6301e1338084620016e7565b92505b6200113f6001836200173e565b9150620010e1565b509392505050565b60006200115e600183620016e7565b91506200116e61019083620017a5565b6200117b606484620017a5565b62001188600485620017a5565b620011949190620016e7565b620011a0919062001723565b92915050565b60008260ff1660011480620011be57508260ff166003145b80620011cd57508260ff166005145b80620011dc57508260ff166007145b80620011eb57508260ff166008145b80620011fa57508260ff16600a145b806200120957508260ff16600c145b15620012185750601f620011a0565b8260ff16600414806200122e57508260ff166006145b806200123d57508260ff166009145b806200124c57508260ff16600b145b156200125b5750601e620011a0565b62001266826200127e565b15620012755750601d620011a0565b50601c92915050565b60006200128d60048362001812565b61ffff16158015620012ae5750620012a760648362001812565b61ffff1615155b80620011a05750620012c36101908362001812565b61ffff161592915050565b611134806200183783390190565b61307c806200296b83390190565b60005b8381101562001307578181015183820152602001620012ed565b8381111562001317576000848401525b50505050565b6000815180845262001337816020860160208601620012ea565b601f01601f19169290920160200192915050565b6020815260006200136060208301846200131d565b9392505050565b6001600160a01b03811681146200137d57600080fd5b50565b600080604083850312156200139457600080fd5b8235620013a18162001367565b946020939093013593505050565b6001600160a01b0391909116815260200190565b600060208284031215620013d657600080fd5b8135620013608162001367565b600060208284031215620013f657600080fd5b5035919050565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b6000826200144e576200144e62001426565b500690565b6000602082840312156200146657600080fd5b815160ff811681146200136057600080fd5b634e487b7160e01b600052604160045260246000fd5b600060208284031215620014a157600080fd5b81516001600160401b0380821115620014b957600080fd5b818401915084601f830112620014ce57600080fd5b815181811115620014e357620014e362001478565b604051601f8201601f19908116603f011681019083821181831017156200150e576200150e62001478565b816040528281528760208487010111156200152857600080fd5b6200153b836020830160208801620012ea565b979650505050505050565b6001600160a01b038616815260a0602082018190526000906200156c908301876200131d565b82810360408401526200158081876200131d565b60ff9590951660608401525050608001529392505050565b6001600160a01b0387811682528616602082015260c060408201819052600090620015c6908301876200131d565b8281036060840152620015da81876200131d565b60ff959095166080840152505060a00152949350505050565b6000602082840312156200160657600080fd5b8151620013608162001367565b6000865162001627818460208b01620012ea565b8651908301906200163d818360208b01620012ea565b865191019062001652818360208a01620012ea565b855191019062001667818360208901620012ea565b84519101906200167c818360208801620012ea565b01979650505050505050565b600084516200169c818460208901620012ea565b845190830190620016b2818360208901620012ea565b8451910190620016c7818360208801620012ea565b0195945050505050565b634e487b7160e01b600052601160045260246000fd5b600082821015620016fc57620016fc620016d1565b500390565b60008160001904831182151516156200171e576200171e620016d1565b500290565b60008219821115620017395762001739620016d1565b500190565b600061ffff838116908316818110156200175c576200175c620016d1565b039392505050565b600060ff821660ff8114156200177e576200177e620016d1565b60010192915050565b60006000198214156200179e576200179e620016d1565b5060010190565b600082620017b757620017b762001426565b500490565b634e487b7160e01b600052603260045260246000fd5b600081620017e457620017e4620016d1565b506000190190565b600060ff821660ff841680821015620018095762001809620016d1565b90039392505050565b600061ffff808416806200182a576200182a62001426565b9216919091069291505056fe6101206040523480156200001257600080fd5b506040516200113438038062001134833981016040819052620000359162000250565b838383838383816003908051906020019062000053929190620000dd565b50805162000069906004906020840190620000dd565b505050428111620000b15760405162461bcd60e51b815260206004820152600e60248201526d494e56414c49445f45585049525960901b604482015260640160405180910390fd5b60ff9091166080524260a05260c05250503360e052505050506001600160a01b0316610100526200033d565b828054620000eb9062000300565b90600052602060002090601f0160209004810192826200010f57600085556200015a565b82601f106200012a57805160ff19168380011785556200015a565b828001600101855582156200015a579182015b828111156200015a5782518255916020019190600101906200013d565b50620001689291506200016c565b5090565b5b808211156200016857600081556001016200016d565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001ab57600080fd5b81516001600160401b0380821115620001c857620001c862000183565b604051601f8301601f19908116603f01168101908282118183101715620001f357620001f362000183565b816040528381526020925086838588010111156200021057600080fd5b600091505b8382101562000234578582018301518183018401529082019062000215565b83821115620002465760008385830101525b9695505050505050565b600080600080600060a086880312156200026957600080fd5b85516001600160a01b03811681146200028157600080fd5b60208701519095506001600160401b03808211156200029f57600080fd5b620002ad89838a0162000199565b95506040880151915080821115620002c457600080fd5b50620002d38882890162000199565b935050606086015160ff81168114620002eb57600080fd5b80925050608086015190509295509295909350565b600181811c908216806200031557607f821691505b602082108114156200033757634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161010051610da46200039060003960006101ee0152600081816102aa015261057c01526000818161017e01526102f70152600061031e015260006101ac0152610da46000f3fe608060405234801561001057600080fd5b50600436106100fc5760003560e01c806306fdde0314610101578063095ea7b31461011f57806312a31dcc1461014257806318160ddd1461015757806323b872dd146101695780632f13b60c1461017c578063313ce567146101a557806339509351146101d657806347bfac62146101e957806370a0823114610228578063781c18db1461025157806395d89b4114610264578063a457c2d71461026c578063a9059cbb1461027f578063b64761f914610292578063c45a0155146102a5578063c4d66de8146102cc578063dd62ed3e146102df578063e184c9be146102f2578063f1653f6e14610319575b600080fd5b610109610340565b6040516101169190610b81565b60405180910390f35b61013261012d366004610bf2565b6103d2565b6040519015158152602001610116565b610155610150366004610bf2565b6103ea565b005b6002545b604051908152602001610116565b610132610177366004610c1c565b61042b565b7f0000000000000000000000000000000000000000000000000000000000000000421015610132565b60405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152602001610116565b6101326101e4366004610bf2565b61044f565b6102107f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610116565b61015b610236366004610c58565b6001600160a01b031660009081526020819052604090205490565b600554610210906001600160a01b031681565b61010961048e565b61013261027a366004610bf2565b61049d565b61013261028d366004610bf2565b61052f565b6101556102a0366004610bf2565b61053d565b6102107f000000000000000000000000000000000000000000000000000000000000000081565b6101556102da366004610c58565b610571565b61015b6102ed366004610c7a565b6105fa565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b61015b7f000000000000000000000000000000000000000000000000000000000000000081565b60606003805461034f90610cad565b80601f016020809104026020016040519081016040528092919081815260200182805461037b90610cad565b80156103c85780601f1061039d576101008083540402835291602001916103c8565b820191906000526020600020905b8154815290600101906020018083116103ab57829003601f168201915b5050505050905090565b6000336103e0818585610625565b5060019392505050565b6005546001600160a01b0316331461041d5760405162461bcd60e51b815260040161041490610ce8565b60405180910390fd5b610427828261074a565b5050565b600033610439858285610817565b610444858585610891565b506001949350505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906103e09082908690610489908790610d1f565b610625565b60606004805461034f90610cad565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156105225760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610414565b6104448286868403610625565b6000336103e0818585610891565b6005546001600160a01b031633146105675760405162461bcd60e51b815260040161041490610ce8565b6104278282610a4d565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105d85760405162461bcd60e51b815260206004820152600c60248201526b4f4e4c595f464143544f525960a01b6044820152606401610414565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166106875760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610414565b6001600160a01b0382166106e85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610414565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b0382166107a05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610414565b80600260008282546107b29190610d1f565b90915550506001600160a01b038216600090815260208190526040812080548392906107df908490610d1f565b90915550506040518181526001600160a01b03831690600090600080516020610d4f8339815191529060200160405180910390a35050565b600061082384846105fa565b9050600019811461088b578181101561087e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610414565b61088b8484848403610625565b50505050565b6001600160a01b0383166108f55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610414565b6001600160a01b0382166109575760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610414565b6001600160a01b038316600090815260208190526040902054818110156109cf5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610414565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610a06908490610d1f565b92505081905550826001600160a01b0316846001600160a01b0316600080516020610d4f83398151915284604051610a4091815260200190565b60405180910390a361088b565b6001600160a01b038216610aad5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610414565b6001600160a01b03821660009081526020819052604090205481811015610b215760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610414565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610b50908490610d37565b90915550506040518281526000906001600160a01b03851690600080516020610d4f8339815191529060200161073d565b600060208083528351808285015260005b81811015610bae57858101830151858201604001528201610b92565b81811115610bc0576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610bed57600080fd5b919050565b60008060408385031215610c0557600080fd5b610c0e83610bd6565b946020939093013593505050565b600080600060608486031215610c3157600080fd5b610c3a84610bd6565b9250610c4860208501610bd6565b9150604084013590509250925092565b600060208284031215610c6a57600080fd5b610c7382610bd6565b9392505050565b60008060408385031215610c8d57600080fd5b610c9683610bd6565b9150610ca460208401610bd6565b90509250929050565b600181811c90821680610cc157607f821691505b60208210811415610ce257634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526007908201526613d3931657d65560ca1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115610d3257610d32610d09565b500190565b600082821015610d4957610d49610d09565b50039056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206dfbd3dbf4f2d2990ecb59f955386865d92d5c1257323522b7d7c9302386f34f64736f6c634300080900336101406040523480156200001257600080fd5b506040516200307c3803806200307c833981016040819052620000359162000279565b838383838383816003908051906020019062000053929190620000e9565b50805162000069906004906020840190620000e9565b505050428111620000b15760405162461bcd60e51b815260206004820152600e60248201526d494e56414c49445f45585049525960901b604482015260640160405180910390fd5b60ff9091166080524260a05260c05250503360e0525050600160085550506001600160a01b039182166101005216610120526200036a565b828054620000f7906200032d565b90600052602060002090601f0160209004810192826200011b576000855562000166565b82601f106200013657805160ff191683800117855562000166565b8280016001018555821562000166579182015b828111156200016657825182559160200191906001019062000149565b506200017492915062000178565b5090565b5b8082111562000174576000815560010162000179565b80516001600160a01b0381168114620001a757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112620001d457600080fd5b81516001600160401b0380821115620001f157620001f1620001ac565b604051601f8301601f19908116603f011681019082821181831017156200021c576200021c620001ac565b816040528381526020925086838588010111156200023957600080fd5b600091505b838210156200025d57858201830151818301840152908201906200023e565b838211156200026f5760008385830101525b9695505050505050565b60008060008060008060c087890312156200029357600080fd5b6200029e876200018f565b9550620002ae602088016200018f565b60408801519095506001600160401b0380821115620002cc57600080fd5b620002da8a838b01620001c2565b95506060890151915080821115620002f157600080fd5b506200030089828a01620001c2565b935050608087015160ff811681146200031857600080fd5b8092505060a087015190509295509295509295565b600181811c908216806200034257607f821691505b602082108114156200036457634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e0516101005161012051612c4462000438600039600081816104b00152818161094401528181610a0c0152610ec401526000818161027e015281816107f801528181610aad01528181610b1601528181610d480152818161102001528181611197015281816112400152818161179401528181611d5901528181611de80152818161202d015261214701526000818161046101528181610b6a01526116d6015260008181610513015261067d015260006105890152600061023c0152612c446000f3fe608060405234801561001057600080fd5b50600436106101c25760003560e01c806306fdde03146101c7578063095ea7b3146101e557806318160ddd1461020857806323b872dd1461021a5780632f13b60c1461022d578063313ce56714610235578063395093511461026657806347bfac62146102795780635ab764ed146102ad578063649a00d61461031557806366247a721461032857806370a082311461033b57806371fd241f1461034e5780637695caa21461037f57806379e6ea161461038957806380a7c9ac146103a957806388611f35146103bc57806395d89b41146103c55780639c9fdc3b146103cd578063a090ee50146103d6578063a457c2d7146103de578063a9059cbb146103f1578063aa1fb97014610404578063afb442e914610417578063b9d9a4531461042a578063ba50154d14610432578063bdaba5361461043b578063c45a01551461045c578063c4f59f9b14610483578063c6d6916c14610498578063c836545a146104ab578063d86e0302146104d2578063dcda874d146104db578063dd62ed3e146104fb578063e184c9be1461050e578063eded816114610535578063f04818141461053e578063f1653f6e14610584575b600080fd5b6101cf6105ab565b6040516101dc919061266c565b60405180910390f35b6101f86101f33660046126b4565b61063d565b60405190151581526020016101dc565b6002545b6040519081526020016101dc565b6101f86102283660046126e0565b610655565b6101f861067b565b60405160ff7f00000000000000000000000000000000000000000000000000000000000000001681526020016101dc565b6101f86102743660046126b4565b6106a2565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516101dc9190612721565b6103006102bb366004612735565b6001600160a01b039182166000908152600760209081526040808320939094168252918252829020825180840190935280548084526001909101549290910182905291565b604080519283526020830191909152016101dc565b61020c61032336600461276e565b6106e1565b61020c61033636600461276e565b610740565b61020c61034936600461276e565b6107cb565b61030061035c36600461276e565b6001600160a01b03166000908152600e6020526040902080546001909101549091565b6103876107e6565b005b61039c61039736600461276e565b61089a565b6040516101dc91906127c6565b61020c6103b736600461276e565b610900565b61020c600d5481565b6101cf610ae8565b61020c600a5481565b610387610af7565b6101f86103ec3660046126b4565b610db7565b6101f86103ff3660046126b4565b610e54565b61020c610412366004612735565b610e62565b61038761042536600461276e565b610f3a565b61030061101b565b61020c60055481565b61044e61044936600461276e565b6110d2565b6040516101dc9291906127d9565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b61048b611193565b6040516101dc91906127f2565b6103876104a636600461276e565b61122f565b6102a07f000000000000000000000000000000000000000000000000000000000000000081565b61020c60095481565b61020c6104e936600461276e565b600b6020526000908152604090205481565b61020c610509366004612735565b6112ec565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b61020c600c5481565b61030061054c36600461276e565b6001600160a01b0316600090815260066020908152604091829020825180840190935280548084526001909101549290910182905291565b61020c7f000000000000000000000000000000000000000000000000000000000000000081565b6060600380546105ba9061283f565b80601f01602080910402602001604051908101604052809291908181526020018280546105e69061283f565b80156106335780601f1061060857610100808354040283529160200191610633565b820191906000526020600020905b81548152906001019060200180831161061657829003601f168201915b5050505050905090565b60003361064b818585611317565b5060019392505050565b60003361066385828561143b565b61066e8585856114b5565b60019150505b9392505050565b7f000000000000000000000000000000000000000000000000000000000000000042101590565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061064b90829086906106dc908790612890565b611317565b6001600160a01b0381166000908152600e6020526040812054806107085750600092915050565b6001600160a01b0383166000908152600e602052604090206001015461073682610731866107cb565b61167c565b6106749190612890565b60006002600854141561076e5760405162461bcd60e51b8152600401610765906128a8565b60405180910390fd5b600260085561077c8261122f565b61078582610f3a565b61078e8261169b565b9050816001600160a01b0316600080516020612bcf833981519152826040516107b991815260200190565b60405180910390a26001600855919050565b6001600160a01b031660009081526020819052604090205490565b60006107f0611193565b9050610897817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016108429190612721565b60206040518083038186803b15801561085a57600080fd5b505afa15801561086e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061089291906128df565b6117cb565b50565b6060600260085414156108bf5760405162461bcd60e51b8152600401610765906128a8565b60026008556108cd8261122f565b6108d78283611971565b9050816001600160a01b0316600080516020612baf833981519152826040516107b991906127c6565b6000600260085414156109255760405162461bcd60e51b8152600401610765906128a8565b60026008556040516370a0823160e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190610979903090600401612721565b60206040518083038186803b15801561099157600080fd5b505afa1580156109a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c991906128df565b90506109d361067b565b6109f5576109e9816109e4306107cb565b611b4e565b90506109f53082611b64565b60405163b64761f960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b64761f990610a4390309085906004016128f8565b600060405180830381600087803b158015610a5d57600080fd5b505af1158015610a71573d6000803e3d6000fd5b505050506000610a8082611cac565b809250819450505080600c6000828254610a9a9190612890565b90915550610ad490506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168585611cec565b610adc611d42565b50506001600855919050565b6060600480546105ba9061283f565b6000610b01611193565b9050610b0b61067b565b15610b6057610b60817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016108429190612721565b60008151905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166361d027b36040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc157600080fd5b505afa158015610bd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf99190612911565b90506000826001600160401b03811115610c1557610c1561292e565b604051908082528060200260200182016040528015610c3e578160200160208202803683370190505b50905060005b83811015610d16576000858281518110610c6057610c60612944565b6020908102919091018101516001600160a01b0381166000908152600b9092526040909120549091508015610cc657610cc68582898681518110610ca657610ca6612944565b60200260200101516001600160a01b0316611cec9092919063ffffffff16565b6001600160a01b0382166000908152600b602052604081205583518190859085908110610cf557610cf5612944565b60200260200101818152505050508080610d0e9061295a565b915050610c44565b506000600c54600d54610d299190612890565b6000600c819055600d5590508015610d7757610d6f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168483611cec565b610d77611d42565b7f1f8d4ebdbc9b09c20d70cab598013079424b00c1e028075b6d5d5eaee6e5c1228282604051610da8929190612975565b60405180910390a15050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610e3c5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610765565b610e498286868403611317565b506001949350505050565b60003361064b8185856114b5565b600060026008541415610e875760405162461bcd60e51b8152600401610765906128a8565b60026008556000610e96611de3565b9050610ea181611ed9565b9150610ead8383611ef1565b6040516304a8c77360e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906312a31dcc90610efb90879086906004016128f8565b600060405180830381600087803b158015610f1557600080fd5b505af1158015610f29573d6000803e3d6000fd5b505060016008555091949350505050565b6001600160a01b0381166000908152600e602052604081205490610f5c61101b565b91505080821415610f6c57505050565b81610f91576001600160a01b039092166000908152600e602052604090209190915550565b6000610f9c846107cb565b90506000610fc7610fad8486612997565b610fb786866129b6565b610fc19085612997565b90611fcb565b6001600160a01b0386166000908152600e6020526040812060010180549293508392909190610ff7908490612890565b9091555050506001600160a01b039093166000908152600e60205260409020555050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663f65d6fc86040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561107957600080fd5b505af115801561108d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b191906128df565b91506110bb61067b565b156110c85750600a549091565b50600a8190558091565b60006060600260085414156110f95760405162461bcd60e51b8152600401610765906128a8565b60026008556111078361122f565b61111083610f3a565b61111a8384611971565b90506111258361169b565b9150826001600160a01b0316600080516020612baf8339815191528260405161114e91906127c6565b60405180910390a2826001600160a01b0316600080516020612bcf8339815191528360405161117f91815260200190565b60405180910390a260016008559092909150565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c4f59f9b6040518163ffffffff1660e01b815260040160006040518083038186803b1580156111ee57600080fd5b505afa158015611202573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261122a9190810190612a20565b905090565b600061123a826106e1565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161128a9190612721565b60206040518083038186803b1580156112a257600080fd5b505afa1580156112b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112da91906128df565b90506112e7838383611ffa565b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0383166113795760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610765565b6001600160a01b0382166113da5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610765565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061144784846112ec565b905060001981146114af57818110156114a25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610765565b6114af8484848403611317565b50505050565b6001600160a01b0383166115195760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610765565b6001600160a01b03821661157b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610765565b61158683838361201b565b6001600160a01b038316600090815260208190526040902054818110156115fe5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610765565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290611635908490612890565b92505081905550826001600160a01b0316846001600160a01b0316600080516020612bef8339815191528460405161166f91815260200190565b60405180910390a36114af565b600082611691670de0b6b3a764000084612997565b6106749190612ac9565b6001600160a01b038082166000908152600e60209081526040808320600101805490849055815163dd86fea160e01b815291519394909385937f00000000000000000000000000000000000000000000000000000000000000009092169263dd86fea1926004808301939192829003018186803b15801561171b57600080fd5b505afa15801561172f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061175391906128df565b9050600061176183836120f6565b905080600d60008282546117759190612890565b90915550611785905081846129b6565b93506117bb6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168686611cec565b6117c3611d42565b505050919050565b6117d3612114565b6117db575050565b6117e3612130565b6117ec826121d2565b60006117f661067b565b905060005b83518110156114af57600084828151811061181857611818612944565b602002602001015190506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016118509190612721565b60206040518083038186803b15801561186857600080fd5b505afa15801561187c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a091906128df565b6001600160a01b038316600090815260066020526040812060010154919250906118ca90836129b6565b90508415611905576001600160a01b0383166000908152600b6020526040812080548392906118fa908490612890565b909155506119439050565b8515611943576119158187611fcb565b6001600160a01b0384166000908152600660205260408120805490919061193d908490612890565b90915550505b506001600160a01b0390911660009081526006602052604090206001015561196a8161295a565b90506117fb565b6060600061197d611193565b905080516001600160401b038111156119985761199861292e565b6040519080825280602002602001820160405280156119c1578160200160208202803683370190505b50915060005b8151811015611b465760008282815181106119e4576119e4612944565b6020026020010151905060076000876001600160a01b03166001600160a01b031681526020019081526020016000206000826001600160a01b03166001600160a01b0316815260200190815260200160002060010154848381518110611a4c57611a4c612944565b6020908102919091018101919091526001600160a01b0380881660009081526007835260408082209285168252919092528120600101558351849083908110611a9757611a97612944565b602002602001015160066000836001600160a01b03166001600160a01b031681526020019081526020016000206001016000828254611ad691906129b6565b92505081905550838281518110611aef57611aef612944565b6020026020010151600014611b3557611b3585858481518110611b1457611b14612944565b6020026020010151836001600160a01b0316611cec9092919063ffffffff16565b50611b3f8161295a565b90506119c7565b505092915050565b6000818310611b5d5781610674565b5090919050565b6001600160a01b038216611bc45760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610765565b611bd08260008361201b565b6001600160a01b03821660009081526020819052604090205481811015611c445760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610765565b6001600160a01b0383166000908152602081905260408120838303905560028054849290611c739084906129b6565b90915550506040518281526000906001600160a01b03851690600080516020612bef8339815191529060200160405180910390a3505050565b600080600080611cba61101b565b915091506000611cca828761167c565b9050611cd6838761167c565b9450611ce285826129b6565b9350505050915091565b6112e78363a9059cbb60e01b8484604051602401611d0b9291906128f8565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612275565b6040516370a0823160e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190611d8e903090600401612721565b60206040518083038186803b158015611da657600080fd5b505afa158015611dba573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dde91906128df565b600955565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611e329190612721565b60206040518083038186803b158015611e4a57600080fd5b505afa158015611e5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8291906128df565b905060095481611e9291906129b6565b915060008211611ed35760405162461bcd60e51b815260206004820152600c60248201526b524543454956455f5a45524f60a01b6044820152606401610765565b60095590565b600080611ee461101b565b9150506106748184612347565b6001600160a01b038216611f475760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610765565b611f536000838361201b565b8060026000828254611f659190612890565b90915550506001600160a01b03821660009081526020819052604081208054839290611f92908490612890565b90915550506040518181526001600160a01b03831690600090600080516020612bef8339815191529060200160405180910390a35b5050565b600080611fe0670de0b6b3a764000085612997565b9050828181611ff157611ff1612ab3565b04949350505050565b6000612004611193565b905061201081836117cb565b6114af81858561235c565b6000612025611193565b9050612077817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016108429190612721565b6001600160a01b0384161580159061209857506001600160a01b0384163014155b156120b9576120a684610f3a565b6120b981856120b4876106e1565b61235c565b6001600160a01b038316158015906120da57506001600160a01b0383163014155b156114af576120e883610f3a565b6114af81846120b4866106e1565b6000806121038385612997565b9050670de0b6b3a764000081611ff1565b60004360055414156121265750600090565b5043600555600190565b6040516359436f3b60e11b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b286de769061217c903090600401612721565b600060405180830381600087803b15801561219657600080fd5b505af11580156121aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108979190810190612aeb565b60005b8151811015611fc757600660008383815181106121f4576121f4612944565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060000154600014156122655760016006600084848151811061224057612240612944565b6020908102919091018101516001600160a01b03168252810191909152604001600020555b61226e8161295a565b90506121d5565b60006122ca826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166124bf9092919063ffffffff16565b8051909150156112e757808060200190518101906122e89190612b70565b6112e75760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610765565b6000670de0b6b3a76400006116918484612997565b60005b83518110156114af57600084828151811061237c5761237c612944565b6020908102919091018101516001600160a01b038087166000908152600784526040808220928416825291845281812054600690945220549092508114156123c55750506124af565b8061240157506001600160a01b0390811660008181526006602090815260408083205494881683526007825280832093835292905220556124af565b6001600160a01b0382166000908152600660205260408120546124259083906129b6565b9050600061243386836120f6565b6001600160a01b038089166000908152600760209081526040808320938916835292905290812060010180549293508392909190612472908490612890565b9091555050506001600160a01b03928316600081815260066020908152604080832054968a16835260078252808320938352929052209290925550505b6124b88161295a565b905061235f565b60606124ce84846000856124d6565b949350505050565b6060824710156125375760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610765565b6001600160a01b0385163b61258e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610765565b600080866001600160a01b031685876040516125aa9190612b92565b60006040518083038185875af1925050503d80600081146125e7576040519150601f19603f3d011682016040523d82523d6000602084013e6125ec565b606091505b50915091506125fc828286612607565b979650505050505050565b60608315612616575081610674565b8251156126265782518084602001fd5b8160405162461bcd60e51b8152600401610765919061266c565b60005b8381101561265b578181015183820152602001612643565b838111156114af5750506000910152565b602081526000825180602084015261268b816040850160208701612640565b601f01601f19169190910160400192915050565b6001600160a01b038116811461089757600080fd5b600080604083850312156126c757600080fd5b82356126d28161269f565b946020939093013593505050565b6000806000606084860312156126f557600080fd5b83356127008161269f565b925060208401356127108161269f565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b6000806040838503121561274857600080fd5b82356127538161269f565b915060208301356127638161269f565b809150509250929050565b60006020828403121561278057600080fd5b81356106748161269f565b600081518084526020808501945080840160005b838110156127bb5781518752958201959082019060010161279f565b509495945050505050565b602081526000610674602083018461278b565b8281526040602082015260006124ce604083018461278b565b6020808252825182820181905260009190848201906040850190845b818110156128335783516001600160a01b03168352928401929184019160010161280e565b50909695505050505050565b600181811c9082168061285357607f821691505b6020821081141561287457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156128a3576128a361287a565b500190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6000602082840312156128f157600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561292357600080fd5b81516106748161269f565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600060001982141561296e5761296e61287a565b5060010190565b604081526000612988604083018561278b565b90508260208301529392505050565b60008160001904831182151516156129b1576129b161287a565b500290565b6000828210156129c8576129c861287a565b500390565b604051601f8201601f191681016001600160401b03811182821017156129f5576129f561292e565b604052919050565b60006001600160401b03821115612a1657612a1661292e565b5060051b60200190565b60006020808385031215612a3357600080fd5b82516001600160401b03811115612a4957600080fd5b8301601f81018513612a5a57600080fd5b8051612a6d612a68826129fd565b6129cd565b81815260059190911b82018301908381019087831115612a8c57600080fd5b928401925b828410156125fc578351612aa48161269f565b82529284019290840190612a91565b634e487b7160e01b600052601260045260246000fd5b600082612ae657634e487b7160e01b600052601260045260246000fd5b500490565b60006020808385031215612afe57600080fd5b82516001600160401b03811115612b1457600080fd5b8301601f81018513612b2557600080fd5b8051612b33612a68826129fd565b81815260059190911b82018301908381019087831115612b5257600080fd5b928401925b828410156125fc57835182529284019290840190612b57565b600060208284031215612b8257600080fd5b8151801515811461067457600080fd5b60008251612ba4818460208701612640565b919091019291505056fe3a77fed7c9a4917745bde0b97b576d95b02425a5222ff309ebb6e1d34c18a10f83a945bd12c713615b59a6e48a3467c05d1a7442350600d6f7fce6af9f7190e9ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122082b1b2a5cd3200d8fb7581ccb0ec45ff370f1ef55dde3988c198efb20445a29464736f6c63430008090033a2646970667358221220e0fbee124e02e74bfc77a60e909b8355d8db137299642c0075632258236c4a6164736f6c63430008090033",
337
+ "linkReferences": {},
338
+ "deployedLinkReferences": {}
339
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/461138e3609309c7ead9bef75ae9654f.json"
4
+ }