@raac/rpc 2.0.0-beta.2 → 2.0.0-beta.4

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 (573) hide show
  1. package/dist/RPCLibrary.js +57 -23
  2. package/dist/artifacts/core/collectors/FeeCollector.sol/FeeCollector.json +2 -2
  3. package/dist/artifacts/core/governance/gauges/GaugeController.sol/GaugeController.json +8 -2
  4. package/dist/artifacts/core/governance/gauges/GaugeRewardsDistributor.sol/GaugeRewardsDistributor.json +2 -2
  5. package/dist/artifacts/core/governance/gauges/RAACGauge.sol/RAACGauge.json +2 -2
  6. package/dist/artifacts/core/governance/gauges/RWAGauge.sol/RWAGauge.json +2 -2
  7. package/dist/artifacts/core/lockers/RAACMaturityVault.sol/RAACMaturityVault.json +2 -2
  8. package/dist/artifacts/core/oracles/RAACPrimeRateOracle.sol/RAACPrimeRateOracle.json +2 -2
  9. package/dist/artifacts/core/pools/LendingPool/LendingPool.sol/LendingPool.json +62 -86
  10. package/dist/artifacts/core/pools/StabilityPool/StabilityPool.sol/StabilityPool.json +2 -2
  11. package/dist/artifacts/core/psm/PSMVault.sol/PSMVault.json +2303 -0
  12. package/dist/artifacts/core/psm/RateProvider.sol/RateProvider.json +444 -0
  13. package/dist/artifacts/core/tokens/RToken.sol/RToken.json +2 -2
  14. package/dist/artifacts/core/tokens/veRAACToken.sol/veRAACToken.json +69 -66
  15. package/dist/artifacts/zeno/Auction.sol/Auction.json +278 -120
  16. package/dist/artifacts/zeno/AuctionFactory.sol/AuctionFactory.json +31 -148
  17. package/dist/artifacts/zeno/Zeno.sol/Zeno.json +80 -45
  18. package/dist/artifacts/zeno/ZenoFactory.sol/ZenoFactory.json +11 -88
  19. package/dist/assets/getAsset.js +2 -2
  20. package/dist/assets/getSupply.js +7 -7
  21. package/dist/configs/chains/1.json +15 -0
  22. package/dist/contracts/feeCollector/claimRewardFromPool.js +2 -2
  23. package/dist/contracts/findContract.js +1 -1
  24. package/dist/contracts/getContractAddress.js +1 -2
  25. package/dist/contracts/getTokenMetadata.js +31 -0
  26. package/dist/contracts/governance/_helpers.js +1 -22
  27. package/dist/contracts/governance/distributor/claimAll.js +2 -2
  28. package/dist/contracts/governance/distributor/claimForGauge.js +2 -2
  29. package/dist/contracts/governance/distributor/deposit.js +2 -2
  30. package/dist/contracts/governance/distributor/setController.js +2 -2
  31. package/dist/contracts/governance/distributor/setLastClaimedEpoch.js +2 -2
  32. package/dist/contracts/governance/distributor/setMaxClaimBound.js +2 -2
  33. package/dist/contracts/governance/distributor/withdrawDust.js +2 -2
  34. package/dist/contracts/governance/distributor/withdrawRemovedGaugeRewards.js +2 -2
  35. package/dist/contracts/governance/gauge/claimRewardToken.js +2 -3
  36. package/dist/contracts/governance/gauge/pullRewardsFromDistributor.js +2 -2
  37. package/dist/contracts/governance/gauge/stake.js +2 -3
  38. package/dist/contracts/governance/gauge/updateUserRewards.js +2 -3
  39. package/dist/contracts/governance/gauge/withdraw.js +2 -3
  40. package/dist/contracts/governance/gaugeController/addGauge.js +2 -2
  41. package/dist/contracts/governance/gaugeController/batchVote.js +2 -2
  42. package/dist/contracts/governance/gaugeController/forceCompleteCheckpoint.js +2 -2
  43. package/dist/contracts/governance/gaugeController/getGaugeRelativeWeight.js +2 -2
  44. package/dist/contracts/governance/gaugeController/kick.js +2 -2
  45. package/dist/contracts/governance/gaugeController/removeGauge.js +2 -2
  46. package/dist/contracts/governance/gaugeController/removePowerFromGauge.js +2 -2
  47. package/dist/contracts/governance/gaugeController/setBoostAmplificationEnabled.js +2 -2
  48. package/dist/contracts/governance/gaugeController/setDistributor.js +2 -2
  49. package/dist/contracts/governance/gaugeController/setEmergencyGaugePause.js +2 -2
  50. package/dist/contracts/governance/gaugeController/setEmergencyGaugePauseBatch.js +2 -2
  51. package/dist/contracts/governance/gaugeController/setEmergencyPause.js +2 -2
  52. package/dist/contracts/governance/gaugeController/setMaxVoteBuckets.js +2 -2
  53. package/dist/contracts/governance/gaugeController/vote.js +2 -2
  54. package/dist/contracts/governance/proposals/cancel.js +3 -4
  55. package/dist/contracts/governance/proposals/castVote.js +4 -4
  56. package/dist/contracts/governance/proposals/execute.js +3 -4
  57. package/dist/contracts/governance/proposals/getVoteReceipt.js +0 -1
  58. package/dist/contracts/governance/proposals/propose.js +3 -4
  59. package/dist/contracts/governance/proposals/setParameter.js +3 -4
  60. package/dist/contracts/governance/proposals/setTimelock.js +3 -4
  61. package/dist/contracts/housePrices/getLatestPrice.js +3 -3
  62. package/dist/contracts/housePrices/setOracle.js +3 -4
  63. package/dist/contracts/lockers/liquidLocker/deposit.js +12 -4
  64. package/dist/contracts/lockers/liquidLocker/hasHarvestRole.js +15 -0
  65. package/dist/contracts/pmBlender/getReserveBalance.js +3 -3
  66. package/dist/contracts/pmBlender/getSupportedTokens.js +0 -1
  67. package/dist/contracts/pmBlender/previewDeposit.js +3 -3
  68. package/dist/contracts/pmBlender/previewSwap.js +3 -3
  69. package/dist/contracts/pmBlender/previewWithdraw.js +3 -3
  70. package/dist/contracts/pmMarket/getMarketConfig.js +3 -3
  71. package/dist/contracts/pmTreasury/getCollateralRatio.js +4 -2
  72. package/dist/contracts/pmTreasury/getCurrentNav.js +4 -2
  73. package/dist/contracts/pmTreasury/getLeverageRatio.js +4 -2
  74. package/dist/contracts/pmTreasury/getMaxMintablePMUSD.js +4 -2
  75. package/dist/contracts/pmTreasury/getMaxMintablePMUSDWithoutBaseToken.js +4 -2
  76. package/dist/contracts/pmTreasury/getMaxMintableXPM.js +4 -2
  77. package/dist/contracts/pmTreasury/getMaxRedeemablePMUSD.js +4 -2
  78. package/dist/contracts/pmTreasury/getMaxRedeemableXPM.js +4 -2
  79. package/dist/contracts/pmTreasury/getTotalBaseToken.js +4 -2
  80. package/dist/contracts/psm/_helpers.js +68 -0
  81. package/dist/contracts/psm/cancelExit.js +20 -0
  82. package/dist/contracts/psm/deposit.js +25 -0
  83. package/dist/contracts/psm/getVaultInfo.js +126 -0
  84. package/dist/contracts/psm/previewDeposit.js +21 -0
  85. package/dist/contracts/psm/previewProportionalSplit.js +19 -0
  86. package/dist/contracts/psm/previewRedeem.js +21 -0
  87. package/dist/contracts/psm/previewSwap.js +21 -0
  88. package/dist/contracts/psm/redeem.js +25 -0
  89. package/dist/contracts/psm/requestExit.js +20 -0
  90. package/dist/contracts/psm/swap.js +24 -0
  91. package/dist/contracts/tokens/veRAAC/_helpers.js +0 -2
  92. package/dist/contracts/tokens/veRAAC/claimReward.js +3 -4
  93. package/dist/contracts/tokens/veRAAC/distributeRewards.js +3 -4
  94. package/dist/contracts/tokens/veRAAC/extend.js +3 -4
  95. package/dist/contracts/tokens/veRAAC/finalizeRagequit.js +3 -4
  96. package/dist/contracts/tokens/veRAAC/getRewardTokens.js +34 -0
  97. package/dist/contracts/tokens/veRAAC/getTotalSupply.js +0 -1
  98. package/dist/contracts/tokens/veRAAC/getTotalSupplyAt.js +1 -1
  99. package/dist/contracts/tokens/veRAAC/increase.js +3 -4
  100. package/dist/contracts/tokens/veRAAC/lock.js +3 -4
  101. package/dist/contracts/tokens/veRAAC/ragequitAll.js +3 -4
  102. package/dist/contracts/tokens/veRAAC/ragequitLock.js +3 -4
  103. package/dist/contracts/tokens/veRAAC/withdraw.js +3 -4
  104. package/dist/contracts/zeno/createAuction.js +30 -15
  105. package/dist/contracts/zeno/createZeno.js +23 -12
  106. package/dist/contracts/zeno/getAuctions.js +35 -33
  107. package/dist/contracts/zeno/getZenos.js +32 -16
  108. package/dist/generated/errors.json +3537 -0
  109. package/dist/index.js +1 -0
  110. package/dist/methods/approveToken.js +2 -4
  111. package/dist/methods/commons/checkAllowance.js +2 -3
  112. package/dist/methods/commons/estimateGasPrice.js +0 -1
  113. package/dist/methods/getAssetBalance.js +4 -4
  114. package/dist/nfts/approveNFT.js +3 -5
  115. package/dist/nfts/getAllTokens.js +3 -4
  116. package/dist/nfts/getApprovalForAll.js +3 -4
  117. package/dist/nfts/getBaseUri.js +3 -4
  118. package/dist/nfts/getHousePrice.js +3 -3
  119. package/dist/nfts/getMintFeePercentage.js +3 -3
  120. package/dist/nfts/getMintPrice.js +3 -3
  121. package/dist/nfts/getNFTApproval.js +3 -4
  122. package/dist/nfts/getOwnerOfNFT.js +3 -5
  123. package/dist/nfts/getTokenURI.js +3 -4
  124. package/dist/nfts/getTokensByOwner.js +3 -4
  125. package/dist/nfts/getTotalPropertiesCount.js +3 -4
  126. package/dist/nfts/mint.js +3 -5
  127. package/dist/nfts/setApprovalForAll.js +3 -5
  128. package/dist/nfts/setBaseUri.js +3 -4
  129. package/dist/nfts/totalNFTSupply.js +3 -3
  130. package/dist/oracles/houses/request.js +2 -15
  131. package/dist/oracles/houses/simulate.js +0 -3
  132. package/dist/oracles/prime-rate/request.js +2 -16
  133. package/dist/oracles/prime-rate/simulate.js +0 -4
  134. package/dist/pools/lendingPool/adapters/erc20/getERC20AdapterBalance.js +2 -2
  135. package/dist/pools/lendingPool/adapters/erc20/getERC20AdapterInfo.js +4 -2
  136. package/dist/pools/lendingPool/adapters/erc721/getERC721AdapterDeposits.js +4 -3
  137. package/dist/pools/lendingPool/adapters/erc721/getERC721AdapterInfo.js +4 -3
  138. package/dist/pools/lendingPool/borrowFromLendingPool.js +4 -2
  139. package/dist/pools/lendingPool/borrowFromLendingPoolWithInsurance.js +3 -8
  140. package/dist/pools/lendingPool/calculateInsuranceFee.js +4 -2
  141. package/dist/pools/lendingPool/closeLiquidation.js +4 -2
  142. package/dist/pools/lendingPool/depositAssetToLendingPool.js +4 -2
  143. package/dist/pools/lendingPool/depositToLendingPool.js +4 -6
  144. package/dist/pools/lendingPool/getAdapters.js +4 -2
  145. package/dist/pools/lendingPool/getEligibleUserDeposits.js +4 -2
  146. package/dist/pools/lendingPool/getHealthFactor.js +4 -2
  147. package/dist/pools/lendingPool/getHousePrice.js +3 -3
  148. package/dist/pools/lendingPool/getLendingPoolInfo.js +3 -2
  149. package/dist/pools/lendingPool/getLendingPoolTotalLiquidity.js +4 -2
  150. package/dist/pools/lendingPool/getParameters.js +4 -2
  151. package/dist/pools/lendingPool/getPositionDebt.js +4 -2
  152. package/dist/pools/lendingPool/getPositionScaledDebt.js +4 -2
  153. package/dist/pools/lendingPool/getPositionView.js +4 -2
  154. package/dist/pools/lendingPool/getPositionsScaledDebt.js +4 -2
  155. package/dist/pools/lendingPool/getRawUserDepositsInLendingPool.js +4 -2
  156. package/dist/pools/lendingPool/getUserCollateralValue.js +4 -2
  157. package/dist/pools/lendingPool/initializeLiquidation.js +4 -2
  158. package/dist/pools/lendingPool/openVaultPosition.js +4 -6
  159. package/dist/pools/lendingPool/repayToLendingPool.js +4 -2
  160. package/dist/pools/lendingPool/vaultOpened.js +4 -2
  161. package/dist/pools/lendingPool/withdrawAssetFromLendingPool.js +4 -2
  162. package/dist/pools/lendingPool/withdrawFromLendingPool.js +3 -4
  163. package/dist/pools/liquidityPool/getLiquidityPoolInfo.js +3 -3
  164. package/dist/pools/rwaVault/adapters/erc20/getERC20VaultAdapterAssetValue.js +2 -2
  165. package/dist/pools/rwaVault/adapters/erc20/getERC20VaultAdapterInfo.js +2 -2
  166. package/dist/pools/rwaVault/adapters/erc20/getERC20VaultAdapterTotalValue.js +2 -2
  167. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterAssetValue.js +2 -2
  168. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterDeposits.js +2 -2
  169. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterInfo.js +2 -2
  170. package/dist/pools/rwaVault/adapters/erc721/getERC721VaultAdapterTotalValue.js +2 -2
  171. package/dist/pools/rwaVault/checkRedeemEligibility.js +46 -0
  172. package/dist/pools/rwaVault/depositToRWAVault.js +4 -4
  173. package/dist/pools/rwaVault/getAdapters.js +2 -2
  174. package/dist/pools/rwaVault/getNextRandomNFT.js +4 -2
  175. package/dist/pools/rwaVault/getRWAVaultInfo.js +4 -2
  176. package/dist/pools/rwaVault/previewDeposit.js +4 -2
  177. package/dist/pools/rwaVault/previewWithdraw.js +4 -2
  178. package/dist/pools/rwaVault/redeemNFTFromRWAVault.js +4 -4
  179. package/dist/pools/rwaVault/requestRandomSeed.js +4 -4
  180. package/dist/pools/stabilityPool/depositToStabilityPool.js +4 -4
  181. package/dist/pools/stabilityPool/getRawUserDepositsInStabilityPool.js +4 -2
  182. package/dist/pools/stabilityPool/getStabilityPoolInfo.js +4 -2
  183. package/dist/pools/stabilityPool/getStabilityPoolTotalDeposits.js +4 -2
  184. package/dist/pools/stabilityPool/getWithdrawRequestInfo.js +4 -2
  185. package/dist/pools/stabilityPool/getWithdrawTimelockConfig.js +25 -0
  186. package/dist/pools/stabilityPool/requestWithdraw.js +4 -4
  187. package/dist/pools/stabilityPool/withdrawFromStabilityPool.js +4 -4
  188. package/dist/prices/computeStakingAPY.js +12 -0
  189. package/dist/prices/getCurveLPPriceUSD.js +46 -0
  190. package/dist/prices/getPrices.js +10 -8
  191. package/dist/prices/getStakingTokenPriceUSD.js +25 -0
  192. package/dist/prices/getWrapperPriceUSD.js +33 -0
  193. package/dist/prices/tokenPricesUSD.js +20 -0
  194. package/dist/scripts/generateErrorCatalogue.js +237 -0
  195. package/dist/types/RPCLibrary.d.ts +42 -8
  196. package/dist/types/configs/chains/index.d.ts +30 -0
  197. package/dist/types/configs/index.d.ts +15 -0
  198. package/dist/types/contracts/getTokenMetadata.d.ts +13 -0
  199. package/dist/types/contracts/governance/_helpers.d.ts +0 -20
  200. package/dist/types/contracts/governance/proposals/castVote.d.ts +1 -2
  201. package/dist/types/contracts/lockers/liquidLocker/hasHarvestRole.d.ts +8 -0
  202. package/dist/types/contracts/psm/_helpers.d.ts +18 -0
  203. package/dist/types/contracts/psm/cancelExit.d.ts +4 -0
  204. package/dist/types/contracts/psm/deposit.d.ts +9 -0
  205. package/dist/types/contracts/psm/getVaultInfo.d.ts +77 -0
  206. package/dist/types/contracts/psm/previewDeposit.d.ts +7 -0
  207. package/dist/types/contracts/psm/previewProportionalSplit.d.ts +9 -0
  208. package/dist/types/contracts/psm/previewRedeem.d.ts +7 -0
  209. package/dist/types/contracts/psm/previewSwap.d.ts +7 -0
  210. package/dist/types/contracts/psm/redeem.d.ts +9 -0
  211. package/dist/types/contracts/psm/requestExit.d.ts +4 -0
  212. package/dist/types/contracts/psm/swap.d.ts +8 -0
  213. package/dist/types/contracts/tokens/veRAAC/getRewardTokens.d.ts +10 -0
  214. package/dist/types/contracts/zeno/createAuction.d.ts +15 -5
  215. package/dist/types/contracts/zeno/createZeno.d.ts +10 -1
  216. package/dist/types/contracts/zeno/getAuctions.d.ts +10 -11
  217. package/dist/types/contracts/zeno/getZenos.d.ts +25 -2
  218. package/dist/types/index.d.ts +1 -0
  219. package/dist/types/pools/rwaVault/checkRedeemEligibility.d.ts +15 -0
  220. package/dist/types/pools/stabilityPool/getWithdrawTimelockConfig.d.ts +14 -0
  221. package/dist/types/prices/computeStakingAPY.d.ts +2 -0
  222. package/dist/types/prices/getCurveLPPriceUSD.d.ts +3 -0
  223. package/dist/types/prices/getPrices.d.ts +4 -8
  224. package/dist/types/prices/getStakingTokenPriceUSD.d.ts +16 -0
  225. package/dist/types/prices/getWrapperPriceUSD.d.ts +7 -0
  226. package/dist/types/prices/tokenPricesUSD.d.ts +7 -0
  227. package/dist/types/scripts/generateErrorCatalogue.d.ts +45 -0
  228. package/dist/types/typechain-types/@openzeppelin/contracts/index.d.ts +2 -0
  229. package/dist/types/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.d.ts +65 -0
  230. package/dist/types/typechain-types/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
  231. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.d.ts +36 -0
  232. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.d.ts +20 -0
  233. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +2 -0
  234. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/Proxy.d.ts +20 -0
  235. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts +25 -0
  236. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/beacon/index.d.ts +1 -0
  237. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/index.d.ts +7 -0
  238. package/dist/types/typechain-types/{contracts/core/governance/gauges/VeBoostProxy.d.ts → @openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts} +24 -47
  239. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.d.ts +80 -0
  240. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.d.ts +51 -0
  241. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +2 -0
  242. package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/index.d.ts +3 -0
  243. package/dist/types/typechain-types/contracts/core/governance/gauges/GaugeController.d.ts +29 -2
  244. package/dist/types/typechain-types/contracts/core/governance/gauges/index.d.ts +0 -2
  245. package/dist/types/typechain-types/contracts/core/lockers/RAACBotLocker.d.ts +1 -9
  246. package/dist/types/typechain-types/contracts/core/lockers/RAACLiquidLocker.d.ts +47 -2
  247. package/dist/types/typechain-types/contracts/core/lockers/RAACMaturityVault.d.ts +24 -10
  248. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LendingPool.d.ts +42 -43
  249. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LendingPoolStorage.d.ts +7 -3
  250. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LiquidationProxy.d.ts +7 -3
  251. package/dist/types/typechain-types/contracts/core/pools/LendingPool/VaultProxy.d.ts +7 -3
  252. package/dist/types/typechain-types/contracts/core/tokens/VeRAACToken.d.ts +59 -12
  253. package/dist/types/typechain-types/contracts/core/tokens/VeRAACTokenStorage.d.ts +47 -12
  254. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IGaugeController.d.ts +29 -2
  255. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/index.d.ts +0 -2
  256. package/dist/types/typechain-types/contracts/interfaces/core/lockers/IRAACBotLocker.d.ts +1 -9
  257. package/dist/types/typechain-types/contracts/interfaces/core/lockers/IRaacLiquidLocker.d.ts +82 -15
  258. package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/ILendingPool.d.ts +32 -6
  259. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IDebtToken.d.ts +5 -1
  260. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IveRAACToken.d.ts +47 -12
  261. package/dist/types/typechain-types/contracts/interfaces/zeno/IAuction.d.ts +43 -39
  262. package/dist/types/typechain-types/contracts/interfaces/zeno/IZENO.d.ts +28 -22
  263. package/dist/types/typechain-types/contracts/libraries/math/TimeWeightedAverage.d.ts +2 -36
  264. package/dist/types/typechain-types/contracts/mocks/core/governance/gauges/MockGaugeStub.d.ts +33 -0
  265. package/dist/types/typechain-types/contracts/mocks/core/governance/gauges/index.d.ts +1 -0
  266. package/dist/types/typechain-types/contracts/mocks/core/lockers/LockerSimMocks.sol/SimToken.d.ts +173 -0
  267. package/dist/types/typechain-types/contracts/mocks/core/lockers/LockerSimMocks.sol/SimVault.d.ts +53 -0
  268. package/dist/types/typechain-types/contracts/mocks/core/lockers/LockerSimMocks.sol/SimVe.d.ts +91 -0
  269. package/dist/types/typechain-types/contracts/mocks/core/lockers/LockerSimMocks.sol/index.d.ts +3 -0
  270. package/dist/types/typechain-types/contracts/mocks/core/lockers/index.d.ts +2 -0
  271. package/dist/types/typechain-types/contracts/mocks/core/pools/MockLendingPoolDebtToken.d.ts +32 -6
  272. package/dist/types/typechain-types/contracts/mocks/libraries/governance/PowerCheckpointMock.d.ts +6 -2
  273. package/dist/types/typechain-types/contracts/zeno/Auction.d.ts +200 -108
  274. package/dist/types/typechain-types/contracts/zeno/AuctionFactory.d.ts +21 -105
  275. package/dist/types/typechain-types/contracts/zeno/ZENO.d.ts +46 -40
  276. package/dist/types/typechain-types/contracts/zeno/ZENOFactory.d.ts +10 -57
  277. package/dist/types/typechain-types/factories/@openzeppelin/contracts/index.d.ts +1 -0
  278. package/dist/types/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.d.ts +42 -0
  279. package/dist/types/typechain-types/factories/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
  280. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts +71 -0
  281. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.d.ts +50 -0
  282. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +2 -0
  283. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.d.ts +10 -0
  284. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts +17 -0
  285. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.d.ts +1 -0
  286. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/index.d.ts +4 -0
  287. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +115 -0
  288. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.d.ts +56 -0
  289. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +102 -0
  290. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +2 -0
  291. package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts +2 -0
  292. package/dist/types/typechain-types/factories/contracts/core/collectors/FeeCollector__factory.d.ts +1 -1
  293. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeController__factory.d.ts +26 -1
  294. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeRewardsDistributor__factory.d.ts +1 -1
  295. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RAACGauge__factory.d.ts +1 -1
  296. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RWAGauge__factory.d.ts +1 -1
  297. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/index.d.ts +0 -2
  298. package/dist/types/typechain-types/factories/contracts/core/lockers/RAACBotLocker__factory.d.ts +1 -11
  299. package/dist/types/typechain-types/factories/contracts/core/lockers/RAACLiquidLocker__factory.d.ts +66 -1
  300. package/dist/types/typechain-types/factories/contracts/core/lockers/RAACMaturityVault__factory.d.ts +25 -9
  301. package/dist/types/typechain-types/factories/contracts/core/oracles/RAACPrimeRateOracle__factory.d.ts +1 -1
  302. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LendingPoolStorage__factory.d.ts +12 -2
  303. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LendingPool__factory.d.ts +43 -60
  304. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LiquidationProxy__factory.d.ts +12 -2
  305. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/VaultProxy__factory.d.ts +12 -2
  306. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/LiquidationStrategyProxy__factory.d.ts +1 -1
  307. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/StabilityPoolStorage__factory.d.ts +1 -1
  308. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/StabilityPool__factory.d.ts +1 -1
  309. package/dist/types/typechain-types/factories/contracts/core/tokens/DebtToken__factory.d.ts +1 -1
  310. package/dist/types/typechain-types/factories/contracts/core/tokens/RToken__factory.d.ts +1 -1
  311. package/dist/types/typechain-types/factories/contracts/core/tokens/VeRAACTokenStorage__factory.d.ts +47 -18
  312. package/dist/types/typechain-types/factories/contracts/core/tokens/VeRAACToken__factory.d.ts +58 -19
  313. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IGaugeController__factory.d.ts +25 -0
  314. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/index.d.ts +0 -2
  315. package/dist/types/typechain-types/factories/contracts/interfaces/core/lockers/IRAACBotLocker__factory.d.ts +0 -10
  316. package/dist/types/typechain-types/factories/contracts/interfaces/core/lockers/IRaacLiquidLocker__factory.d.ts +91 -6
  317. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/ILendingPool__factory.d.ts +30 -0
  318. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IDebtToken__factory.d.ts +10 -0
  319. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IveRAACToken__factory.d.ts +47 -18
  320. package/dist/types/typechain-types/factories/contracts/interfaces/zeno/IAuction__factory.d.ts +52 -30
  321. package/dist/types/typechain-types/factories/contracts/interfaces/zeno/IZENO__factory.d.ts +36 -8
  322. package/dist/types/typechain-types/factories/contracts/libraries/governance/BoostCalculator__factory.d.ts +1 -1
  323. package/dist/types/typechain-types/factories/contracts/libraries/governance/LockManager__factory.d.ts +1 -1
  324. package/dist/types/typechain-types/factories/contracts/libraries/governance/PowerCheckpoint__factory.d.ts +1 -1
  325. package/dist/types/typechain-types/factories/contracts/libraries/governance/RagequitLib__factory.d.ts +1 -1
  326. package/dist/types/typechain-types/factories/contracts/libraries/governance/RewardLib__factory.d.ts +1 -1
  327. package/dist/types/typechain-types/factories/contracts/libraries/math/TimeWeightedAverage__factory.d.ts +1 -36
  328. package/dist/types/typechain-types/factories/contracts/libraries/pools/LendingPoolFeeLibrary__factory.d.ts +1 -1
  329. package/dist/types/typechain-types/factories/contracts/libraries/pools/ReserveLibrary__factory.d.ts +1 -1
  330. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/gauges/MockGaugeStub__factory.d.ts +42 -0
  331. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/gauges/index.d.ts +1 -0
  332. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/libraries/LockManagerMock__factory.d.ts +1 -1
  333. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LockerSimMocks.sol/SimToken__factory.d.ts +306 -0
  334. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LockerSimMocks.sol/SimVault__factory.d.ts +68 -0
  335. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LockerSimMocks.sol/SimVe__factory.d.ts +149 -0
  336. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LockerSimMocks.sol/index.d.ts +3 -0
  337. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/index.d.ts +1 -0
  338. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockOracle__factory.d.ts +1 -1
  339. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/TestRAACPrimeRateOracle__factory.d.ts +1 -1
  340. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPoolDebtToken__factory.d.ts +31 -1
  341. package/dist/types/typechain-types/factories/contracts/mocks/libraries/MockTimeUtils__factory.d.ts +1 -1
  342. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/BoostCalculatorMock__factory.d.ts +1 -1
  343. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/PowerCheckpointMock__factory.d.ts +5 -1
  344. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/RagequitHarness__factory.d.ts +1 -1
  345. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/RewardIntegralCalculatorMock.sol/MockRewardIntegralCalculator__factory.d.ts +1 -1
  346. package/dist/types/typechain-types/factories/contracts/mocks/libraries/math/TimeWeightedAverageMock__factory.d.ts +2 -9
  347. package/dist/types/typechain-types/factories/contracts/mocks/libraries/pools/ReserveLibraryMockCalculation__factory.d.ts +1 -1
  348. package/dist/types/typechain-types/factories/contracts/mocks/libraries/pools/ReserveLibraryMock__factory.d.ts +1 -1
  349. package/dist/types/typechain-types/factories/contracts/mocks/tests/VeRAACFuzzHelper__factory.d.ts +1 -1
  350. package/dist/types/typechain-types/factories/contracts/zeno/AuctionFactory__factory.d.ts +26 -118
  351. package/dist/types/typechain-types/factories/contracts/zeno/Auction__factory.d.ts +230 -106
  352. package/dist/types/typechain-types/factories/contracts/zeno/ZENOFactory__factory.d.ts +9 -68
  353. package/dist/types/typechain-types/factories/contracts/zeno/ZENO__factory.d.ts +66 -38
  354. package/dist/types/typechain-types/index.d.ts +24 -8
  355. package/dist/types/typechain-types/psm/PSMVault.d.ts +1503 -0
  356. package/dist/types/typechain-types/psm/RateProvider.d.ts +228 -0
  357. package/dist/types/typechain-types/psm/common.d.ts +46 -0
  358. package/dist/types/typechain-types/psm/factories/PSMVault__factory.d.ts +1795 -0
  359. package/dist/types/typechain-types/psm/factories/RateProvider__factory.d.ts +299 -0
  360. package/dist/types/typechain-types/psm/factories/imports.sol/PSMProxyAdmin__factory.d.ts +117 -0
  361. package/dist/types/typechain-types/psm/factories/imports.sol/PSMTransparentProxy__factory.d.ts +108 -0
  362. package/dist/types/typechain-types/psm/factories/imports.sol/index.d.ts +2 -0
  363. package/dist/types/typechain-types/psm/factories/index.d.ts +8 -0
  364. package/dist/types/typechain-types/psm/factories/interfaces/IBaseAssetNav__factory.d.ts +21 -0
  365. package/dist/types/typechain-types/psm/factories/interfaces/IRateProvider__factory.d.ts +65 -0
  366. package/dist/types/typechain-types/psm/factories/interfaces/IRebalancer__factory.d.ts +25 -0
  367. package/dist/types/typechain-types/{factories/contracts/interfaces/core/governance/gauges/IVeBoost__factory.d.ts → psm/factories/interfaces/ISavingsToken__factory.d.ts} +215 -192
  368. package/dist/types/typechain-types/psm/factories/interfaces/index.d.ts +6 -0
  369. package/dist/types/typechain-types/psm/factories/interfaces/v2/IRebalancerV2__factory.d.ts +21 -0
  370. package/dist/types/typechain-types/psm/factories/interfaces/v2/index.d.ts +1 -0
  371. package/dist/types/typechain-types/psm/factories/interfaces/v3/IRateProviderV3__factory.d.ts +65 -0
  372. package/dist/types/typechain-types/psm/factories/interfaces/v3/index.d.ts +1 -0
  373. package/dist/types/typechain-types/psm/factories/mocks/MockBaseAssetModule__factory.d.ts +450 -0
  374. package/dist/types/typechain-types/psm/factories/mocks/MockChainlinkFeed__factory.d.ts +106 -0
  375. package/dist/types/typechain-types/psm/factories/mocks/MockERC20__factory.d.ts +288 -0
  376. package/dist/types/typechain-types/psm/factories/mocks/MockFeeOnTransferERC20__factory.d.ts +356 -0
  377. package/dist/types/typechain-types/psm/factories/mocks/MockPmUSD__factory.d.ts +326 -0
  378. package/dist/types/typechain-types/psm/factories/mocks/MockProxy__factory.d.ts +108 -0
  379. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancer.sol/IMockMintable__factory.d.ts +21 -0
  380. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancer.sol/MockRebalancer__factory.d.ts +138 -0
  381. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancer.sol/index.d.ts +2 -0
  382. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancerV2.sol/IMockMintable__factory.d.ts +21 -0
  383. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancerV2.sol/MockRebalancerV2__factory.d.ts +134 -0
  384. package/dist/types/typechain-types/psm/factories/mocks/MockRebalancerV2.sol/index.d.ts +2 -0
  385. package/dist/types/typechain-types/psm/factories/mocks/MockSavingsToken__factory.d.ts +330 -0
  386. package/dist/types/typechain-types/psm/factories/mocks/index.d.ts +9 -0
  387. package/dist/types/typechain-types/psm/factories/utils/index.d.ts +1 -0
  388. package/dist/types/typechain-types/psm/factories/utils/zap/AladdinZap__factory.d.ts +322 -0
  389. package/dist/types/typechain-types/psm/factories/utils/zap/TokenZapLogic__factory.d.ts +73 -0
  390. package/dist/types/typechain-types/psm/factories/utils/zap/index.d.ts +3 -0
  391. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IBalancerPool__factory.d.ts +91 -0
  392. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IBalancerVault__factory.d.ts +261 -0
  393. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IConvexCRVDepositor__factory.d.ts +49 -0
  394. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveAPool.sol/ICurveA2Pool__factory.d.ts +305 -0
  395. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveAPool.sol/ICurveA3Pool__factory.d.ts +305 -0
  396. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveAPool.sol/ICurveA4Pool__factory.d.ts +305 -0
  397. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveAPool.sol/ICurveAPool__factory.d.ts +305 -0
  398. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveAPool.sol/index.d.ts +4 -0
  399. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase2Pool__factory.d.ts +39 -0
  400. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase3Pool__factory.d.ts +39 -0
  401. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase4Pool__factory.d.ts +39 -0
  402. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveBasePool.sol/ICurveBasePool__factory.d.ts +175 -0
  403. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveBasePool.sol/index.d.ts +4 -0
  404. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveCryptoPool.sol/ICurveCryptoPool__factory.d.ts +301 -0
  405. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveCryptoPool.sol/ICurveTriCryptoPool__factory.d.ts +165 -0
  406. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveCryptoPool.sol/IZapCurveMetaCryptoPool__factory.d.ts +181 -0
  407. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveCryptoPool.sol/index.d.ts +3 -0
  408. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveETHPool__factory.d.ts +155 -0
  409. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap3Pool__factory.d.ts +99 -0
  410. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap4Pool__factory.d.ts +99 -0
  411. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap__factory.d.ts +55 -0
  412. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveFactoryMetaPool__factory.d.ts +193 -0
  413. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryMetaPool.sol/index.d.ts +4 -0
  414. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain2Pool__factory.d.ts +183 -0
  415. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain3Pool__factory.d.ts +183 -0
  416. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain4Pool__factory.d.ts +183 -0
  417. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlainPool__factory.d.ts +147 -0
  418. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveFactoryPlainPool.sol/index.d.ts +4 -0
  419. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveMetaPool.sol/ICurveMetaPoolDeposit__factory.d.ts +141 -0
  420. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveMetaPool.sol/ICurveMetaPoolSwap__factory.d.ts +227 -0
  421. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveMetaPool.sol/index.d.ts +2 -0
  422. package/dist/types/typechain-types/{factories/contracts/interfaces/core/governance/gauges/IVeBoostProxy__factory.d.ts → psm/factories/utils/zap/interfaces/ICurvePoolRegistry__factory.d.ts} +13 -24
  423. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY2PoolDeposit__factory.d.ts +165 -0
  424. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY2PoolSwap__factory.d.ts +193 -0
  425. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY3PoolDeposit__factory.d.ts +165 -0
  426. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY3PoolSwap__factory.d.ts +193 -0
  427. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY4PoolDeposit__factory.d.ts +165 -0
  428. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveY4PoolSwap__factory.d.ts +193 -0
  429. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveYPoolDeposit__factory.d.ts +165 -0
  430. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/ICurveYPoolSwap__factory.d.ts +193 -0
  431. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ICurveYPool.sol/index.d.ts +8 -0
  432. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ILidoStETH__factory.d.ts +35 -0
  433. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/ILidoWstETH__factory.d.ts +83 -0
  434. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IUniswapV2Pair__factory.d.ts +95 -0
  435. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IUniswapV3Pool__factory.d.ts +115 -0
  436. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IUniswapV3Router__factory.d.ts +54 -0
  437. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IWETH__factory.d.ts +23 -0
  438. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/IZap__factory.d.ts +107 -0
  439. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/concentrator/IAladdinCRV__factory.d.ts +401 -0
  440. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/concentrator/IAladdinCompounder__factory.d.ts +350 -0
  441. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/concentrator/index.d.ts +2 -0
  442. package/dist/types/typechain-types/psm/factories/utils/zap/interfaces/index.d.ts +20 -0
  443. package/dist/types/typechain-types/psm/factories/v2/PSMVaultV2__factory.d.ts +1846 -0
  444. package/dist/types/typechain-types/psm/factories/v2/RebalancerV2.sol/IPSMVaultView__factory.d.ts +17 -0
  445. package/dist/types/typechain-types/psm/factories/v2/RebalancerV2.sol/IRateOracle__factory.d.ts +31 -0
  446. package/dist/types/typechain-types/psm/factories/v2/RebalancerV2.sol/IZap__factory.d.ts +33 -0
  447. package/dist/types/typechain-types/psm/factories/v2/RebalancerV2.sol/RebalancerV2__factory.d.ts +506 -0
  448. package/dist/types/typechain-types/psm/factories/v2/RebalancerV2.sol/index.d.ts +4 -0
  449. package/dist/types/typechain-types/psm/factories/v2/index.d.ts +2 -0
  450. package/dist/types/typechain-types/psm/factories/v3/PSMVaultV3__factory.d.ts +1955 -0
  451. package/dist/types/typechain-types/psm/factories/v3/RateProviderComposed__factory.d.ts +303 -0
  452. package/dist/types/typechain-types/psm/factories/v3/RateProviderDirect__factory.d.ts +293 -0
  453. package/dist/types/typechain-types/psm/factories/v3/index.d.ts +3 -0
  454. package/dist/types/typechain-types/psm/imports.sol/PSMProxyAdmin.d.ts +96 -0
  455. package/dist/types/typechain-types/psm/imports.sol/PSMTransparentProxy.d.ts +51 -0
  456. package/dist/types/typechain-types/psm/imports.sol/index.d.ts +2 -0
  457. package/dist/types/typechain-types/psm/index.d.ts +157 -0
  458. package/dist/types/typechain-types/psm/interfaces/IBaseAssetNav.d.ts +33 -0
  459. package/dist/types/typechain-types/psm/interfaces/IRateProvider.d.ts +75 -0
  460. package/dist/types/typechain-types/psm/interfaces/IRebalancer.d.ts +39 -0
  461. package/dist/types/typechain-types/psm/interfaces/ISavingsToken.d.ts +400 -0
  462. package/dist/types/typechain-types/psm/interfaces/index.d.ts +8 -0
  463. package/dist/types/typechain-types/psm/interfaces/v2/IRebalancerV2.d.ts +35 -0
  464. package/dist/types/typechain-types/psm/interfaces/v2/index.d.ts +1 -0
  465. package/dist/types/typechain-types/psm/interfaces/v3/IRateProviderV3.d.ts +75 -0
  466. package/dist/types/typechain-types/psm/interfaces/v3/index.d.ts +1 -0
  467. package/dist/types/typechain-types/psm/mocks/MockBaseAssetModule.d.ts +311 -0
  468. package/dist/types/typechain-types/psm/mocks/MockChainlinkFeed.d.ts +91 -0
  469. package/dist/types/typechain-types/psm/mocks/MockERC20.d.ts +179 -0
  470. package/dist/types/typechain-types/psm/mocks/MockFeeOnTransferERC20.d.ts +247 -0
  471. package/dist/types/typechain-types/psm/mocks/MockPmUSD.d.ts +213 -0
  472. package/dist/types/typechain-types/psm/mocks/MockProxy.d.ts +51 -0
  473. package/dist/types/typechain-types/psm/mocks/MockRebalancer.sol/IMockMintable.d.ts +35 -0
  474. package/dist/types/typechain-types/psm/mocks/MockRebalancer.sol/MockRebalancer.d.ts +125 -0
  475. package/dist/types/typechain-types/psm/mocks/MockRebalancer.sol/index.d.ts +2 -0
  476. package/dist/types/typechain-types/psm/mocks/MockRebalancerV2.sol/IMockMintable.d.ts +35 -0
  477. package/dist/types/typechain-types/psm/mocks/MockRebalancerV2.sol/MockRebalancerV2.d.ts +121 -0
  478. package/dist/types/typechain-types/psm/mocks/MockRebalancerV2.sol/index.d.ts +2 -0
  479. package/dist/types/typechain-types/psm/mocks/MockSavingsToken.d.ts +213 -0
  480. package/dist/types/typechain-types/psm/mocks/index.d.ts +11 -0
  481. package/dist/types/typechain-types/psm/utils/index.d.ts +2 -0
  482. package/dist/types/typechain-types/psm/utils/zap/AladdinZap.d.ts +276 -0
  483. package/dist/types/typechain-types/psm/utils/zap/TokenZapLogic.d.ts +59 -0
  484. package/dist/types/typechain-types/psm/utils/zap/index.d.ts +4 -0
  485. package/dist/types/typechain-types/psm/utils/zap/interfaces/IBalancerPool.d.ts +101 -0
  486. package/dist/types/typechain-types/psm/utils/zap/interfaces/IBalancerVault.d.ts +199 -0
  487. package/dist/types/typechain-types/psm/utils/zap/interfaces/IConvexCRVDepositor.d.ts +61 -0
  488. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveAPool.sol/ICurveA2Pool.d.ts +245 -0
  489. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveAPool.sol/ICurveA3Pool.d.ts +245 -0
  490. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveAPool.sol/ICurveA4Pool.d.ts +245 -0
  491. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveAPool.sol/ICurveAPool.d.ts +245 -0
  492. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveAPool.sol/index.d.ts +4 -0
  493. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase2Pool.d.ts +49 -0
  494. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase3Pool.d.ts +49 -0
  495. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveBasePool.sol/ICurveBase4Pool.d.ts +49 -0
  496. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveBasePool.sol/ICurveBasePool.d.ts +159 -0
  497. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveBasePool.sol/index.d.ts +4 -0
  498. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveCryptoPool.sol/ICurveCryptoPool.d.ts +249 -0
  499. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveCryptoPool.sol/ICurveTriCryptoPool.d.ts +153 -0
  500. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveCryptoPool.sol/IZapCurveMetaCryptoPool.d.ts +165 -0
  501. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveCryptoPool.sol/index.d.ts +3 -0
  502. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveETHPool.d.ts +135 -0
  503. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap.d.ts +55 -0
  504. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap3Pool.d.ts +87 -0
  505. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveDepositZap4Pool.d.ts +87 -0
  506. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryMetaPool.sol/ICurveFactoryMetaPool.d.ts +159 -0
  507. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryMetaPool.sol/index.d.ts +4 -0
  508. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain2Pool.d.ts +159 -0
  509. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain3Pool.d.ts +159 -0
  510. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlain4Pool.d.ts +159 -0
  511. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryPlainPool.sol/ICurveFactoryPlainPool.d.ts +131 -0
  512. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveFactoryPlainPool.sol/index.d.ts +4 -0
  513. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveMetaPool.sol/ICurveMetaPoolDeposit.d.ts +133 -0
  514. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveMetaPool.sol/ICurveMetaPoolSwap.d.ts +191 -0
  515. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveMetaPool.sol/index.d.ts +2 -0
  516. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurvePoolRegistry.d.ts +45 -0
  517. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY2PoolDeposit.d.ts +163 -0
  518. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY2PoolSwap.d.ts +179 -0
  519. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY3PoolDeposit.d.ts +163 -0
  520. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY3PoolSwap.d.ts +179 -0
  521. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY4PoolDeposit.d.ts +163 -0
  522. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveY4PoolSwap.d.ts +179 -0
  523. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveYPoolDeposit.d.ts +163 -0
  524. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/ICurveYPoolSwap.d.ts +179 -0
  525. package/dist/types/typechain-types/psm/utils/zap/interfaces/ICurveYPool.sol/index.d.ts +8 -0
  526. package/dist/types/typechain-types/psm/utils/zap/interfaces/ILidoStETH.d.ts +45 -0
  527. package/dist/types/typechain-types/psm/utils/zap/interfaces/ILidoWstETH.d.ts +89 -0
  528. package/dist/types/typechain-types/psm/utils/zap/interfaces/IUniswapV2Pair.d.ts +103 -0
  529. package/dist/types/typechain-types/psm/utils/zap/interfaces/IUniswapV3Pool.d.ts +113 -0
  530. package/dist/types/typechain-types/psm/utils/zap/interfaces/IUniswapV3Router.d.ts +55 -0
  531. package/dist/types/typechain-types/psm/utils/zap/interfaces/IWETH.d.ts +43 -0
  532. package/dist/types/typechain-types/psm/utils/zap/interfaces/IZap.d.ts +91 -0
  533. package/dist/types/typechain-types/psm/utils/zap/interfaces/concentrator/IAladdinCRV.d.ts +361 -0
  534. package/dist/types/typechain-types/psm/utils/zap/interfaces/concentrator/IAladdinCompounder.d.ts +290 -0
  535. package/dist/types/typechain-types/psm/utils/zap/interfaces/concentrator/index.d.ts +2 -0
  536. package/dist/types/typechain-types/psm/utils/zap/interfaces/index.d.ts +28 -0
  537. package/dist/types/typechain-types/psm/v2/PSMVaultV2.d.ts +1528 -0
  538. package/dist/types/typechain-types/psm/v2/RebalancerV2.sol/IPSMVaultView.d.ts +31 -0
  539. package/dist/types/typechain-types/psm/v2/RebalancerV2.sol/IRateOracle.d.ts +43 -0
  540. package/dist/types/typechain-types/psm/v2/RebalancerV2.sol/IZap.d.ts +39 -0
  541. package/dist/types/typechain-types/psm/v2/RebalancerV2.sol/RebalancerV2.d.ts +387 -0
  542. package/dist/types/typechain-types/psm/v2/RebalancerV2.sol/index.d.ts +4 -0
  543. package/dist/types/typechain-types/psm/v2/index.d.ts +3 -0
  544. package/dist/types/typechain-types/psm/v3/PSMVaultV3.d.ts +1631 -0
  545. package/dist/types/typechain-types/psm/v3/RateProviderComposed.d.ts +228 -0
  546. package/dist/types/typechain-types/psm/v3/RateProviderDirect.d.ts +218 -0
  547. package/dist/types/typechain-types/psm/v3/index.d.ts +3 -0
  548. package/dist/types/utils/artifacts.d.ts +244 -102
  549. package/dist/types/utils/contracts.d.ts +30 -0
  550. package/dist/types/utils/errorDecoder.d.ts +29 -28
  551. package/dist/types/utils/rpcError.d.ts +52 -0
  552. package/dist/utils/artifacts.js +6 -0
  553. package/dist/utils/chain.js +2 -1
  554. package/dist/utils/config.js +0 -1
  555. package/dist/utils/contracts.js +1 -1
  556. package/dist/utils/errorDecoder.js +69 -117
  557. package/dist/utils/rpcError.js +159 -0
  558. package/dist/wallet/assets/approveAsset.js +10 -12
  559. package/dist/wallet/assets/burnAsset.js +14 -16
  560. package/dist/wallet/assets/getAllowance.js +4 -4
  561. package/dist/wallet/assets/getAsset.js +2 -2
  562. package/dist/wallet/assets/getBalance.js +4 -3
  563. package/dist/wallet/assets/mintAsset.js +14 -17
  564. package/dist/wallet/assets/transferAsset.js +7 -10
  565. package/package.json +4 -3
  566. package/dist/generated/errorMap.json +0 -3945
  567. package/dist/scripts/generateErrorMap.js +0 -180
  568. package/dist/types/scripts/generateErrorMap.d.ts +0 -1
  569. package/dist/types/typechain-types/contracts/core/governance/gauges/VeBoost.d.ts +0 -518
  570. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IVeBoost.d.ts +0 -311
  571. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IVeBoostProxy.d.ts +0 -50
  572. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/VeBoostProxy__factory.d.ts +0 -152
  573. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/VeBoost__factory.d.ts +0 -716
@@ -14,7 +14,7 @@ export declare class RAACLiquidLocker__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): RAACLiquidLocker__factory;
17
- static readonly bytecode = "0x6080806040523460aa575f516020615a345f395f51905f525460ff8160401c16609b576002600160401b03196001600160401b038216016049575b60405161598590816100af8239f35b6001600160401b0319166001600160401b039081175f516020615a345f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80603a565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60a06040526004361015610011575f80fd5b5f3560e01c8063018ee9b714612bb857806301ffc9a714612b625780630261fa3814612aef5780630858cf9814612ad257806308d43ff714612a6a5780630af885741461288d5780630d392cd9146128125780630f7acc87146127bf5780631959a002146127265780631fdcf32b146126fe57806320583c001461266d57806323a35de9146123b3578063248a9ca31461238d57806325cc4fe714612365578063262d61521461233d578063279cdb66146122cf5780632e84deff146122a75780632f2ff15d1461227657806335c807e61461220e57806336568abe146121ca578063371fd8e614612042578063381386c0146120255780633b35269c14611ff65780633ca4d9f414611f4f5780633dbe439114611f155780633f4ba83a14611e97578063409f521a14611e7a5780634296cfd814611d775780634b69c6b214611d5a5780634c09f37c14611d3d5780634e143baf14611ce55780635078a03014611cbd5780635804810a14611c7957806358d7bf8014611c5c5780635c975abb14611c2e5780635fe1437414611c115780636119b1b114611be957806361d027b314611bc15780636386c1c714611b8357806364e2113214611afd5780636919db5c14611ad55780636a42372714611ab85780636ba42aaa14611a7b5780636fcd112b14611958578063715018a6146119045780637f51bb1f1461189c578063808355bf1461186257806383dd4f69146118455780638456cb59146117825780638cd01307146114cd5780638da5cb5b1461149957806391d1485414611444578063939d623714611427578063949ba627146113375780639995a334146112725780639e42157d14611255578063a217fddf1461123b578063a3845efc146111d9578063a3b6aeda146110de578063b6b55f2514611087578063b758ba8814611060578063b97dd9e214611040578063c3ade01214611023578063c4d381df14611006578063c9d2ff9d14610c56578063d09729ad14610c2c578063d1b5172f14610bd9578063d547741f14610ba3578063d5c8ff9814610b7c578063d8b09c0c14610b14578063e36a6b8314610abc578063e63a391f14610a9e578063e63ab1e914610a77578063e668efe214610603578063ed4a7084146105dc578063f14faf6f14610574578063f2eda13b146103d4578063f2fde38b146103a95763fbb12d071461037e575f80fd5b346103a5575f3660031901126103a55760206040515f5160206158105f395f51905f528152f35b5f80fd5b346103a55760203660031901126103a5576103d26103c5613405565b6103cd614266565b613b7a565b005b346103a5576103e2366134af565b916103eb61443c565b6103f3613bd8565b821561056557600490610404613c3b565b60035460405163c4f59f9b60e01b8152925f9184919082906001600160a01b03165afa918215610536575f92610541575b5091926001600160a01b03831692905f5b8351811015610480576001600160a01b0361046182866135e4565b5116851461047157600101610446565b63c1ab6dc160e01b5f5260045ffd5b50846104a382828761049483303384614b0e565b61049e8282613d6a565b613e1c565b6001600160a01b031691823b156103a55760405163534a7e1d60e11b815260048101839052915f8360248183885af1928315610536577f57a6edf74f7cdf69723cf14427405d5ab3e4b8e1600a4d8b7e01ea3c95ccd3a093610526575b50610510604051928392836137b9565b0390a260015f5160206158d05f395f51905f5255005b5f61053091613520565b84610500565b6040513d5f823e3d90fd5b61055e9192503d805f833e6105568183613520565b81019061355a565b9084610435565b63e320176b60e01b5f5260045ffd5b346103a55760203660031901126103a557600435610590613bff565b610598613bd8565b8015610565576105c9906105aa61443c565b5f546105c4908290309033906001600160a01b0316614b0e565b61409d565b60015f5160206158d05f395f51905f5255005b346103a5575f3660031901126103a5575f546040516001600160a01b039091168152602090f35b346103a5576101c03660031901126103a55761061d613405565b61062561341b565b9061062e613447565b9161063761345d565b90610640613431565b60a435906001600160a01b03821682036103a55760c4356001600160a01b03811681036103a55760e4356001600160a01b03811681036103a55761010435916001600160a01b03831683036103a5575f5160206159305f395f51905f5254976101643594906101a4359061018435906001600160401b038c161580610a69575b6001600160401b038d166001149081610a5f575b159081610a56575b50610a47575f5160206159305f395f51905f5280546001600160401b031916600117905560408c901c60ff1615610a23575b610716615784565b61071e615784565b61072733613b7a565b61072f615784565b610737615784565b61073f615784565b60015f5160206158d05f395f51905f5255610758615784565b6001600160a01b03169b8c15610a14576001600160a01b0316988915610a14576001600160a01b0316998a15610a14576001600160a01b0316928315610a14576001600160a01b0316968715610a14576001600160a01b03891615610a14576001600160a01b03851615610a14576001600160a01b03861615610a14576001600160a01b03871615610a1457631dcd65006101243511610a05576305f5e1006101443511610a0557610124356108178461081285856135f8565b6135f8565b036109f65760115560125560135560405163f1380ea960e01b8152976060896004818b5afa8015610536575f995f916109ac575b5064ffffffffff8a1615908115610997575b506109885760018054600380546001600160a01b0319908116909b1790555f80548b16909d17909c55600280548a1692909217909155600480548916929092179091556010805488166001600160a01b039384161790556015805488169383169390931790925560148054871693821693909317909255600c8054909516929092179093556001600160c81b031990951660a09390931b64ffffffffff60a01b169290921791161790915561012435600f5561014435600e55631dcd6500600b5560ff9061092a33614299565b5060401c161561093657005b60ff60401b195f5160206159305f395f51905f5254165f5160206159305f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b630acb7f6b60e41b5f5260045ffd5b62093a80915064ffffffffff1614158c61085d565b9950506060893d6060116109ee575b816109c860609383613520565b810103126103a5576109e860406109e160208c01613b68565b9a01613b68565b8c61084b565b3d91506109bb565b638b9126fd60e01b5f5260045ffd5b637e2df70960e11b5f5260045ffd5b63d92e233d60e01b5f5260045ffd5b5f5160206159305f395f51905f52805460ff60401b1916600160401b17905561070e565b63f92ee8a960e01b5f5260045ffd5b9050158e6106dc565b303b1591506106d4565b5060ff8c60401c16156106c0565b346103a5575f3660031901126103a55760206040515f5160206158505f395f51905f528152f35b346103a5575f3660031901126103a5576020604051633b9aca008152f35b346103a55760203660031901126103a557600435610ad8614266565b6305f5e1008111610a05576020817fc69cbab065ddb19d4ee1f9cfe242c82b8facbd1e93c89e5830dfe0d4fb25985392600e55604051908152a1005b346103a55760203660031901126103a557610b2d613405565b610b35614266565b6001600160a01b03168015610a1457601480546001600160a01b031916821790557fbd89165bc0f9810151bd7f1a3ec6e5a9c70832f15628e9416507ef061525d1a35f80a2005b346103a5575f3660031901126103a557602064ffffffffff60015460a01c16604051908152f35b346103a55760403660031901126103a5576103d2600435610bc261341b565b90610bd4610bcf82613772565b613c97565b6143a0565b346103a5575f3660031901126103a557335f52601660205260ff60405f20541615610c1e57610c0661443c565b610c0e613bd8565b610c16614fea565b6105c96150e9565b6282b42960e81b5f5260045ffd5b346103a55760203660031901126103a5576004355f526018602052602060405f2054604051908152f35b346103a55760203660031901126103a557600435801561056557610c7861443c565b610c80613bd8565b610c89336144b0565b610c92336149e3565b335f52600a602052610ccc60405f2060018060701b0360028201541690610cc68461081260018060801b0384541693614f91565b91614f50565b15610ff757335f52600a60205260405f20906004820190815491600462093a8042049183602060018060a01b03600354166040519485809263089cc3b760e31b82525afa928315610536575f93610fc3575b505f9694965060025f95015460e01c945b86861080610fba575b15610ede57610d478684614474565b5080546001600160801b03811692919083158015610ec7575b610eb957610d729060801c809461365f565b8015610eb957808b10610e9357610da090935b6001600160801b0390610d999086906135f8565b168261448d565b600101546001600160401b031662093a80818102929180840490911490151715610e7f578290825f52601860205260405f205415610e28575b610dfa925f52601860205260405f20610df38382546135f8565b90556135f8565b97808210610e16575050610e0f5f5b95613764565b9496610d2f565b610e0f91610e239161365f565b610e09565b601a549150600160401b821015610e6b57610dfa92610e50836001879501601a55601a61349a565b81549060031b9083821b915f19901b19161790559250610dd9565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b86610e9e8c8361365f565b1015610eaf57610da0905b93610d85565b50610da08a610ea9565b50509795610e0f9150613764565b5060018201546001600160401b0316881015610d60565b90808210908115610f3d575b50610f2e576040519081527f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f160203392a260015f5160206158d05f395f51905f5255005b633e9b09d160e01b5f5260045ffd5b60035460405163089cc3b760e31b81529250602090839060049082906001600160a01b03165afa908115610536575f91610f84575b610f7c92506135f8565b811182610eea565b90506020823d602011610fb2575b81610f9f60209383613520565b810103126103a557610f7c915190610f72565b3d9150610f92565b50871515610d38565b9092506020813d602011610fef575b81610fdf60209383613520565b810103126103a557519187610d1e565b3d9150610fd2565b633a23d82560e01b5f5260045ffd5b346103a5575f3660031901126103a5576020600954604051908152f35b346103a5575f3660031901126103a5576020600754604051908152f35b346103a5575f3660031901126103a557602062093a804204604051908152f35b346103a5575f3660031901126103a55760206040515f5160206157d05f395f51905f528152f35b346103a55760203660031901126103a5576004358015610565576105c9906110ad61443c565b6110b5613bd8565b6110be336144b0565b5f546110d8908290309033906001600160a01b0316614b0e565b33614bf3565b346103a55760803660031901126103a5576110f7613405565b60243590611103613447565b9161110c61345d565b92611115613c3b565b811561056557611123613bd8565b6040516362d1e52360e11b81526001600160a01b03948516600482018190526024820193909352928416604484018190529293166020846064815f855af1928315610536575f936111a4575b602094507ff296c40090a5aae193d87e3a7d65806ef8931893887d285677e13e3eeff4d37485604051868152a4604051908152f35b92506020843d6020116111d1575b816111bf60209383613520565b810103126103a557602093519261116f565b3d91506111b2565b346103a55760203660031901126103a5576004358015158091036103a55760207f5685997059f4946afa042494c1c056331326a8443eb0a65a4f2667510be11cf791611223613bff565b60ff19601e541660ff821617601e55604051908152a1005b346103a5575f3660031901126103a55760206040515f8152f35b346103a5575f3660031901126103a5576020600554604051908152f35b346103a557611280366134af565b6010549092906001600160a01b03163303610c1e5761129d613bd8565b6001600160a01b0316908115610a14576001600160a01b038116928315610a1457823b156103a5575f816112e6936040519485928392632fba5def60e11b84526004840161366c565b038183875af1908115610536577f5966fa360f56e87c95a4fdc802065489925e68179cbdc1d4b19834ca5827e84092602092611327575b50604051908152a3005b5f61133191613520565b8561131d565b346103a55760603660031901126103a557611350613405565b602435604435918215158093036103a5576010546001600160a01b03163303610c1e5761137b613bd8565b6001600160a01b0316908115610a1457604051916315373e3d60e01b83528160048401528360248401526020836044815f855af1928315610536575f936113e4575b505f5160206158f05f395f51905f52604060209581519081528587820152a3604051908152f35b9392506020843d60201161141f575b8161140060209383613520565b810103126103a557925191925f5160206158f05f395f51905f526113bd565b3d91506113f3565b346103a5575f3660031901126103a5576020600854604051908152f35b346103a55760403660031901126103a55761145d61341b565b6004355f525f5160206158905f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346103a5575f3660031901126103a5575f5160206157f05f395f51905f52546040516001600160a01b039091168152602090f35b346103a55760403660031901126103a5576004356114e9613473565b8115610565576114f761443c565b6114ff613bd8565b611508336144b0565b611511336149e3565b335f908152600a60205260409020805460801c8381106116a65761154b91906001600160801b039061154490869061365f565b169061448d565b1561164d576002546004546001600160a01b039081169116803b156103a5576040516340c10f1960e01b8152915f838061158987306004840161366c565b038183865af1918215610536576115a793859361163d575b50613e1c565b6004546001600160a01b0316803b156103a5575f60405180926317a790f160e11b82528183816115db88336004840161366c565b03925af180156105365761162d575b505b60405190815233907f312a5e5e1079f5dda4e95dbbd0b908b291fd5b992ef22073643ab691572c5b5260203392a360015f5160206158d05f395f51905f5255005b5f61163791613520565b816115ea565b5f61164791613520565b856115a1565b6002546001600160a01b0316803b156103a5575f60405180926340c10f1960e01b825281838161168188336004840161366c565b03925af1801561053657611696575b506115ec565b5f6116a091613520565b81611690565b81546001600160801b031682556116bd908461365f565b806116ca575b505061154b565b600282015482546001600160801b031692906001600160701b03166116ee82614f91565b90818111156117775761170d916117049161365f565b600b549061362e565b61171783856135f8565b90633b9aca00820291808304633b9aca001490151715610e7f5710610ff75761176d926001600160801b039081906117509085906135f8565b83546001600160801b0319169116919091161790556007546135f8565b60075582806116c3565b505061170d5f611704565b346103a5575f3660031901126103a557335f9081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff1615611821576117d0613bd8565b600160ff195f5160206158b05f395f51905f525416175f5160206158b05f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b63e2517d3f60e01b5f52336004525f5160206158505f395f51905f5260245260445ffd5b346103a5575f3660031901126103a5576020601254604051908152f35b346103a55760203660031901126103a5576020611892611888611883613405565b6137ea565b5091929050614f50565b6040519015158152f35b346103a55760203660031901126103a5576118b5613405565b6118bd614266565b6001600160a01b03168015610a1457601080546001600160a01b031916821790557f1f54d231bb9d500b1923e4a1cb25e600f366a8368873d9af7c1c623814df19fc5f80a2005b346103a5575f3660031901126103a55761191c614266565b5f5160206157f05f395f51905f5280546001600160a01b031981169091555f906001600160a01b03165f5160206158705f395f51905f528280a3005b346103a5575f3660031901126103a55761197061443c565b611978613bd8565b611981336144b0565b61198a336149e3565b335f52600a60205260405f206002810190815460018060701b038160701c16918215611a6c57546119f0916119d2916001600160801b0316906001600160701b031684614b52565b8454600160701b600160e01b0319169094556006549093929061365f565b60065580611a5c575b5080611a125760015f5160206158d05f395f51905f5255005b5f54611a2a90829033906001600160a01b0316613d30565b6040519081527f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436460203392a2806105c9565b611a669033614bf3565b816119f9565b6313424e8d60e31b5f5260045ffd5b346103a55760203660031901126103a5576001600160a01b03611a9c613405565b165f526016602052602060ff60405f2054166040519015158152f35b346103a5575f3660031901126103a5576020600e54604051908152f35b346103a5575f3660031901126103a5576014546040516001600160a01b039091168152602090f35b346103a5575f3660031901126103a5575f546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa8015610536575f90611b50575b602090604051908152f35b506020813d602011611b7b575b81611b6a60209383613520565b810103126103a55760209051611b45565b3d9150611b5d565b346103a55760203660031901126103a55760a0611ba1611883613405565b926040929192519485526020850152604084015260608301526080820152f35b346103a5575f3660031901126103a5576010546040516001600160a01b039091168152602090f35b346103a5575f3660031901126103a5576004546040516001600160a01b039091168152602090f35b346103a5575f3660031901126103a5576020601754604051908152f35b346103a5575f3660031901126103a557602060ff5f5160206158b05f395f51905f5254166040519015158152f35b346103a5575f3660031901126103a5576020600b54604051908152f35b346103a55760203660031901126103a5576004356001600160401b038116908190036103a5575f526019602052602060018060401b0360405f205416604051908152f35b346103a5575f3660031901126103a5576001546040516001600160a01b039091168152602090f35b346103a55760203660031901126103a557600435611d01614266565b6305f5e1008111610a05576020817f2131421f1667d3206b261152a6f4fb7037f9790b64a6bb0154cf17c6265b6acb92600d55604051908152a1005b346103a5575f3660031901126103a5576020600f54604051908152f35b346103a5575f3660031901126103a5576020600654604051908152f35b346103a55760a03660031901126103a557611d90613405565b611d9861341b565b60443591611da4613431565b91611dad613bd8565b611db561443c565b831561056557611dc3613c3b565b6001600160a01b03831615610a14576001600160a01b031692833b156103a557604051632e1a7d4d60e01b8152600481018290525f8160248183895af1801561053657611e6a575b506064358110611e5b577f6121f81122dd3b5439a5eceba3952f7457af801dc975675861d69c3f488c1e5992611e4c9082906001600160a01b038516613d30565b610510604051928392836137b9565b63bb2875c360e01b5f5260045ffd5b5f611e7491613520565b84611e0b565b346103a5575f3660031901126103a5576020601354604051908152f35b346103a5575f3660031901126103a557611eaf614266565b5f5160206158b05f395f51905f525460ff811615611f065760ff19165f5160206158b05f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b346103a5575f3660031901126103a55760206040517f362a445c70d77815b624f5a6cc74953d94aaf7101c9d0facdcff0dac594b80ce8152f35b346103a55760403660031901126103a557611f68613405565b602435611f7361443c565b611f7b613bd8565b336001600160a01b038316141580611fbe575b610c1e5781611f9f6105c9936144b0565b5f54611fb9908390309033906001600160a01b0316614b0e565b614bf3565b50335f9081527fcefab08a000590e672d943fcf088128d1be97c1c08b29f5e8036c045c753e7f4602052604090205460ff1615611f8e565b346103a55760203660031901126103a5576040612019612014613405565b613790565b82519182526020820152f35b346103a5575f3660031901126103a5576020601154604051908152f35b346103a55760203660031901126103a55760043580156105655761206461443c565b61206c613bd8565b612075336144b0565b61207e336149e3565b335f52600a60205260405f2060018060801b038154169160075490836120b15760015f5160206158d05f395f51905f5255005b838111156121c157506120dc835b633b9aca006120d0600d548361362e565b04908161219c5761365f565b9260018060a01b036002541690813b156103a5575f604051809363079cc67960e41b82528183816121118b336004840161366c565b03925af191821561053657858092612132926121389561218c575b5061365f565b9261365f565b926040519081527f5c16de4f8b59bd9caf0f49a545f25819a895ed223294290b408242e72a59423160203392a281546001600160801b0319166001600160801b0391909116179055600755808080806105c9565b5f61219691613520565b8861212c565b6002546010546121bc9184916001600160a01b0390811691339116614b0e565b61365f565b6120dc906120bf565b346103a55760403660031901126103a5576121e361341b565b336001600160a01b038216036121ff576103d2906004356143a0565b63334bd91960e11b5f5260045ffd5b346103a55760203660031901126103a557612227613405565b61222f614266565b6001600160a01b03168015610a1457600c80546001600160a01b031916821790557f03e59dbc22b06c47327d520cddc8bf2923ac525a1742732bf344562d7f72d0f55f80a2005b346103a55760403660031901126103a5576103d260043561229561341b565b906122a2610bcf82613772565b61430f565b346103a5575f3660031901126103a5576002546040516001600160a01b039091168152602090f35b346103a55760203660031901126103a557600435601a548110156103a557601a5481101561232957601a5f527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e0154604051908152602090f35b634e487b7160e01b5f52603260045260245ffd5b346103a5575f3660031901126103a557600c546040516001600160a01b039091168152602090f35b346103a5575f3660031901126103a5576003546040516001600160a01b039091168152602090f35b346103a55760203660031901126103a55760206123ab600435613772565b604051908152f35b346103a55760203660031901126103a5576001600160a01b036123d4613405565b165f52600a60205261247060405f20604051906123f0826134e9565b80546001600160801b0381168352608090811c60208401526001820154604084015260028201546001600160701b038082166060860152607082901c169184019190915260e01c60a0830190815260038201546001600160401b031660c084015260049091018054909261246382613543565b9160405195869384613520565b80835260208301945f5260205f205f905b82821061261f5760e08401859052855163ffffffff16855f62093a804204835b83518110156124e557816001600160401b0360406124bf84886135e4565b51015116116124d1575b6001016124a1565b916124dd600191613764565b9290506124c9565b50926124f082613543565b916124fe6040519384613520565b80835261250d601f1991613543565b015f5b8181106125f65750505f905b835181101561258157846001600160401b03604061253a84886135e4565b510151161161254c575b60010161251c565b9061257960019161255d84876135e4565b5161256882876135e4565b5261257381866135e4565b50613764565b919050612544565b826040518091602082016020835281518091526020604084019201905f5b8181106125ad575050500390f35b825180516001600160801b039081168652602082810151909116818701526040918201516001600160401b0316918601919091528695506060909401939092019160010161259f565b60209060405161260581613505565b5f81525f838201525f604082015282828701015201612510565b9193509193946002602060019260405161263881613505565b8554858060801b038116825260801c83820152848060401b038587015416604082015281520192019201869391959492612481565b346103a55760803660031901126103a557604435602435600435606435612692614266565b6126a08461081285856135f8565b631dcd65008211610a055781036109f6577f0e517b12ad92714324ac71e14f9443dee3b82d6ab434a8e543e0d35ba1ab86239360809382600f55836011558060125581601355604051938452602084015260408301526060820152a1005b346103a5575f3660031901126103a5576015546040516001600160a01b039091168152602090f35b346103a55760203660031901126103a5576001600160a01b03612747613405565b165f908152600a602090815260409182902080546001820154600283015460039093015485516001600160801b0384168152608093841c95810195909552948401526001600160701b038083166060850152607083901c169083015260e090811c60a08301526001600160401b0390921660c0820152f35b346103a5575f3660031901126103a557600354604051632c9aab9b60e11b815230600482015290602090829060249082906001600160a01b03165afa8015610536575f90611b5057602090604051908152f35b346103a55760403660031901126103a55761282b613405565b7f08b2c0469ecd1d7a21d7e1492f0fc75fc7e8e0fa4fdf4275949c90875f5ebdf56020612856613473565b9261285f614266565b60018060a01b031692835f526016825260405f209015159060ff1981541660ff8316179055604051908152a2005b346103a55760203660031901126103a5576128a6613405565b6128ae614266565b6001600160a01b038116908115610a1457600c545f805460405163d85c32c760e01b81526001600160a01b039182169593909116929181806128f488886004840161374a565b0381865afa908115610536575f91612a50575b5051156129b75760035460405163c4f59f9b60e01b815294905f90869060049082906001600160a01b03165afa948515610536575f95612a34575b505f5b85518110156129fb57846001600160a01b0361296183896135e4565b511684811480156129f2575b6129e85760405163d85c32c760e01b8152915f918391829161299391906004840161374a565b0381885afa908115610536575f916129c6575b5051156129b7576001905b01612945565b6304aaa4ed60e11b5f5260045ffd5b6129e291503d805f833e6129da8183613520565b8101906136d1565b876129a6565b50506001906129b1565b5083811461296d565b600180546001600160a01b03191684179055827f324fd48573b0802abed4c31efc8338504f98ae1bd2b045423422dba22c1554255f80a2005b612a499195503d805f833e6105568183613520565b9385612942565b612a6491503d805f833e6129da8183613520565b85612907565b346103a55760203660031901126103a557612a83613405565b612a8b614266565b6001600160a01b03168015610a1457601580546001600160a01b031916821790557f6ed4d486ce0e38e85cb51baae9e1cb00e9083a1639004e21a191b499a4ffdb455f80a2005b346103a5575f3660031901126103a5576020600d54604051908152f35b346103a55760203660031901126103a557600435612b0b613bff565b606481118015612b5a575b612b4b576020817f3285e7df8e4a902e771144cbca2ec22e5df9da9f9adcb76e9bbab012819c5e8c92601d55604051908152a1005b63162908e360e11b5f5260045ffd5b508015612b16565b346103a55760203660031901126103a55760043563ffffffff60e01b81168091036103a557602090637965db0b60e01b8114908115612ba7575b506040519015158152f35b6301ffc9a760e01b14905082612b9c565b346103a55760403660031901126103a557612bd1613405565b612bd9613bd8565b335f9081527f746b0a0656f1e921a3c755e7657adb0436c6a5319b34f1edafabefd764826119602052604090205460ff16156133e15760035460405163c4f59f9b60e01b8152905f90829060049082906001600160a01b03165afa908115610536575f916133c7575b5060018060a01b035f541690612c588151613cdd565b925f9160ff601e5416915f5b8251811015612f62576001600160a01b03612c7f82856135e4565b516040516370a0823160e01b8152306004820152929116602083602481845afa928315610536575f93612f2f575b5060035460405163a88557c560e01b81526001600160a01b03909116979060208180612cdd86306004840161374a565b03818c5afa908115610536575f91612efe575b50808115612eea578880612edf575b15612eab5750612d2f9082601d54612d17828261365f565b831115612ea457612d28925061365f565b80926135f8565b975b803b156103a5576040516305d38c7160e21b8152915f918391829084908290612d5e90896004840161366c565b03925af19081612e94575b50612de857600192507f2d5fb609dbfa835eb28ecbbdf51204e96ee9af7cafdcc13c8a82323c158b48cf612db08a5f612daa86612da46136a2565b936135e4565b52613ed3565b5060408051809260208252612dd48151809281602086015260208686019101613d0f565b601f01601f19168101030190a25b01612c64565b6040516370a0823160e01b815230600482015292602084602481855afa8015610536578a945f91612e5e575b5083600195612e51612e497f7aa3ce5172359784bf5bceffaa37a2c70ac97903138f07c51fa940da3750968b9560209561365f565b9283926135e4565b52604051908152a2612de2565b9450506020843d8211612e8c575b81612e7960209383613520565b810103126103a557925189939083612e14565b3d9150612e6c565b5f612e9e91613520565b8a612d69565b5050612d28565b919890508780612ed3575b15612d3157505050600191505f612ecd828a6135e4565b52612de2565b50601d54891015612eb6565b50601d548310612cff565b5050965050600191505f612ecd828a6135e4565b90506020813d8211612f27575b81612f1860209383613520565b810103126103a557518b612cf0565b3d9150612f0b565b9092506020813d8211612f5a575b81612f4a60209383613520565b810103126103a557519189612cad565b3d9150612f3d565b50848680518451036133b857600c546001600160a01b0316935f9283929190835b82518110156130a9576001600160a01b03612f9e82856135e4565b5116612faa82866135e4565b519081612fbe575b50506001905b01612f83565b600154929791926001600160a01b03168114613094575f546001600160a01b03168103612ff85750600191612ff2916135f8565b95612fb8565b909695918061300a6020928c85613d30565b6001546040516349df439160e01b81529384928392613039926001600160a01b03909116919060048501613605565b03815f8d5af1908115610536575f91613062575b5061305a906001926135f8565b949089612fb2565b90506020813d821161308c575b8161307c60209383613520565b810103126103a55751600161304d565b3d915061306f565b5095946001916130a3916135f8565b94612fb8565b50858486838a8361331f575b50506024358210611e5b576130c9916135f8565b600f54909182918015613314576130e5633b9aca00918561362e565b049360115494601254936131056130fc86896135f8565b601354906135f8565b90821561330557508061312c6131316131389361312c613125878c61365f565b998761362e565b613641565b988461362e565b95613147816121bc898561365f565b806132e8575b50806132cb575b50856131e2575b60209550905b600e5492836131b3575b50506131768361409d565b6040519283528483015260408201527f4534f107610758c3931de9ad1e176476fcfb8c74adf920167e1d54ee84fcfe7660603392a2604051908152f35b936131db9194633b9aca006131cb6131d5968461362e565b049485809361365f565b95613d30565b858061316b565b6014546131f8906001600160a01b031683613d6a565b6014546132109087906001600160a01b031684613e1c565b6014546001600160a01b0316803b156103a5575f604051809263d5a4ee6f60e01b82528183816132448d8a6004840161366c565b03925af190816132bb575b506132b25760036132666132616136a2565b613ed3565b9050145f1461328d57601054602096613288916001600160a01b031684613d30565b61315b565b6014546132a3906001600160a01b031683613d6a565b63159b7a7d60e31b5f5260045ffd5b6020955061315b565b5f6132c591613520565b8761324f565b6015546132e291906001600160a01b031684613d30565b86613154565b6010546132ff91906001600160a01b031685613d30565b8761314d565b94505050602094505f90613161565b506020935f90613161565b90818461333d61336b959660209560018060a01b0360015416613d30565b6001546040516349df439160e01b815295869485935f9385939291906001600160a01b031660048501613605565b03925af1908115610536575f91613386575b509083856130b5565b90506020813d6020116133b0575b816133a160209383613520565b810103126103a557518461337d565b3d9150613394565b63251f56a160e21b5f5260045ffd5b6133db91503d805f833e6105568183613520565b82612c42565b63e2517d3f60e01b5f52336004525f5160206158105f395f51905f5260245260445ffd5b600435906001600160a01b03821682036103a557565b602435906001600160a01b03821682036103a557565b608435906001600160a01b03821682036103a557565b604435906001600160a01b03821682036103a557565b606435906001600160a01b03821682036103a557565b6024359081151582036103a557565b601b5481101561232957601b5f5260205f2001905f90565b8054821015612329575f5260205f2001905f90565b60609060031901126103a5576004356001600160a01b03811681036103a557906024356001600160a01b03811681036103a5579060443590565b61010081019081106001600160401b03821117610e6b57604052565b606081019081106001600160401b03821117610e6b57604052565b601f909101601f19168101906001600160401b03821190821017610e6b57604052565b6001600160401b038111610e6b5760051b60200190565b6020818303126103a5578051906001600160401b0382116103a557019080601f830112156103a55781519061358e82613543565b9261359c6040519485613520565b82845260208085019360051b8201019182116103a557602001915b8183106135c45750505090565b82516001600160a01b03811681036103a5578152602092830192016135b7565b80518210156123295760209160051b010190565b91908201809211610e7f57565b6001600160a01b039182168152602081019290925290911660408201525f606082015260800190565b81810292918115918404141715610e7f57565b811561364b570490565b634e487b7160e01b5f52601260045260245ffd5b91908203918211610e7f57565b6001600160a01b039091168152602081019190915260400190565b6001600160401b038111610e6b57601f01601f191660200190565b3d156136cc573d906136b382613687565b916136c16040519384613520565b82523d5f602084013e565b606090565b6020818303126103a5578051906001600160401b0382116103a557019080601f830112156103a557815161370481613543565b926137126040519485613520565b81845260208085019260051b8201019283116103a557602001905b82821061373a5750505090565b815181526020918201910161372d565b6001600160a01b0391821681529116602082015260400190565b5f198114610e7f5760010190565b5f525f5160206158905f395f51905f52602052600160405f20015490565b613799906137ea565b5091509182156137b0576137ac92614b52565b9091565b5050505f905f90565b9081526001600160a01b03909116602082015260400190565b6001600160401b039081165f190191908211610e7f57565b6001600160a01b03165f908152600a6020526040808220905161380c816134e9565b81549260018060801b0384168252602082019360801c8452600183015490604083019182526002840154606084019160018060701b03821683526004608086019660018060701b038460701c16885260a087019360e01c845260018060401b0360038201541660c08801520192835461388481613543565b946138926040519687613520565b81865260208601905f5260205f205f915b838310613b1e575050505060e086018490525194519551915193516001600160801b03909616956001600160701b039586169562093a8042049591949316929063ffffffff165b8151811015613aba576138fd81836135e4565b516040810180519091906001600160401b03168810613a8e5760200180519091906001600160801b031661394f575b50505b60018101809111156138ea57634e487b7160e01b5f52601160045260245ffd5b519597919590949190613976906001600160401b03906139709082166137d2565b16614dc0565b8a516007546001600160801b039091169a91998290808c1115613a865761399d908c61365f565b9b5b809c80151580613a7d575b613a55575b505080613a13575b50506001600160801b038111612b4b576001600160801b038a11612b4b576001600160801b03998a168b528551908a1699613a0a936139f992909116906135f8565b94516001600160801b03169061365f565b95935f8061392c565b909a90808210613a3c575090613a2c81613a329361365f565b9a61365f565b505f5b5f806139b7565b90915061212c82613a4d949c61365f565b975f98613a35565b613a75929d50613a6e86670de0b6b3a76400009261362e565b04906135f8565b9a5f806139af565b508515156139aa565b505f9b61399f565b602001516001600160801b0316905080613aa9575b5061392f565b613ab391936135f8565b915f613aa3565b50509584979350613a6e613af093929695613aeb670de0b6b3a76400009360018060801b039051169460085461365f565b61362e565b9082613af9575b565b9190818110613b105790613b0c9161365f565b5f91565b613b199161365f565b905f90565b60026020600192999e99604051613b3481613505565b8554858060801b038116825260801c83820152848060401b03858701541660408201528152019201920191909b969b6138a3565b519064ffffffffff821682036103a557565b6001600160a01b03168015613bc5575f5160206157f05f395f51905f5280546001600160a01b0319811683179091556001600160a01b03165f5160206158705f395f51905f525f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b60ff5f5160206158b05f395f51905f525416613bf057565b63d93c066560e01b5f5260045ffd5b335f9081525f5160206158305f395f51905f52602052604090205460ff1615613c2457565b63e2517d3f60e01b5f52336004525f60245260445ffd5b335f9081527f1e7544249be4928fb5cf2beb807aabc803ed444c9068375a77ce1bbd0a7dbef7602052604090205460ff1615613c7357565b63e2517d3f60e01b5f52336004525f5160206157d05f395f51905f5260245260445ffd5b5f8181525f5160206158905f395f51905f526020908152604080832033845290915290205460ff1615613cc75750565b63e2517d3f60e01b5f523360045260245260445ffd5b90613ce782613543565b613cf46040519182613520565b8281528092613d05601f1991613543565b0190602036910137565b5f5b838110613d205750505f910152565b8181015183820152602001613d11565b613d65613af79392613d5760405194859263a9059cbb60e01b60208501526024840161366c565b03601f198101845283613520565b6155be565b6040519060205f8184019463095ea7b360e01b865260018060a01b03169485602486015281604486015260448552613da3606486613520565b84519082855af15f513d82613df7575b505015613dbf57505050565b613d65613af7936040519063095ea7b360e01b602083015260248201525f604482015260448152613df1606482613520565b826155be565b909150613e1457506001600160a01b0381163b15155b5f80613db3565b600114613e0d565b91909160205f60405193613e5385613e458582019363095ea7b360e01b8552896024840161366c565b03601f198101875286613520565b84519082855af15f513d82613eae575b505015613e6f57505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044808501919091528352613af792613d6590613df1606482613520565b909150613ecb57506001600160a01b0381163b15155b5f80613e63565b600114613ec4565b60048151106140675760208101516001600160e01b0319169062461bcd60e51b8214613faa5750634e487b7160e01b8103613f385750604051613f17604082613520565b600e81526d50616e69632875696e743235362960901b602082015290600290565b633a7be37b60e01b14613f7557604051613f53604082613520565b601081526f2ab732bc3832b1ba32b21032b93937b960811b6020820152905f90565b604051613f83604082613520565b6014815273496e76616c6964546f74616c536861726573282960601b602082015290600390565b9050604481511015613fee5750604051613fc5604082613520565b6017815276115c9c9bdc8a1cdd1c9a5b99ca481b585b199bdc9b5959604a1b6020820152905f90565b60048101518101602481019190602090829003126103a5576024810151906001600160401b0382116103a55701816043820112156103a557602481015161403481613687565b926140426040519485613520565b818452604483830101116103a557614061916044602085019101613d0f565b90600190565b50604051614076604082613520565b60158152742932bb32b93a103bb4ba34103737903932b0b9b7b760591b6020820152905f90565b6140a5614fea565b6005545f90829080614185575b50506004545f546001600160a01b0391821693916140d4918391869116613e1c565b6004546001600160a01b0316803b156103a557604051631f72642160e31b8152915f91839182908490829061410d90306004840161366c565b03925af19081614170575b5061416c575461413192506001600160a01b0316613d6a565b60405162461bcd60e51b8152602060048201526013602482015272111a5cdd1c9a589d5d1a5bdb8819985a5b1959606a1b6044820152606490fd5b5050565b61417d9192505f90613520565b5f905f614118565b909192506009549061419783836135f8565b90670de0b6b3a7640000820291808304670de0b6b3a76400001490151715610e7f576141c291613641565b9081156142555750906141da6141e6926008546135f8565b600855600954906135f8565b905f60095562093a804204805f52601c60205260405f20541561421b575b600854905f52601c60205260405f20555f806140b2565b601b54600160401b811015610e6b5780600161423c9201601b55601b61349a565b81549060031b9083821b915f19901b1916179055614204565b905061426192506135f8565b600955565b5f5160206157f05f395f51905f52546001600160a01b0316330361428657565b63118cdaa760e01b5f523360045260245ffd5b6001600160a01b0381165f9081525f5160206158305f395f51905f52602052604090205460ff1661430a576001600160a01b03165f8181525f5160206158305f395f51905f5260205260408120805460ff191660011790553391905f5160206157b05f395f51905f528180a4600190565b505f90565b5f8181525f5160206158905f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661439a575f8181525f5160206158905f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291905f5160206157b05f395f51905f529080a4600190565b50505f90565b5f8181525f5160206158905f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561439a575f8181525f5160206158905f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60025f5160206158d05f395f51905f5254146144655760025f5160206158d05f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b8054821015612329575f5260205f209060011b01905f90565b80546001600160801b031660809290921b6001600160801b031916919091179055565b6144b8614fea565b6001600160a01b03165f908152600a602052604090206002810160808190525460038201805460e09290921c9392909162093a8042049160048101916001600160401b031683106149d45764ffffffffff60015460a01c1661451981613cdd565b5f195f928554908a5b82811061462d575b5050505f1981036145d1575b505050508054945b858110806145b5575b1561456c57600181018091111561453e57634e487b7160e01b5f52601160045260245ffd5b60805180546001600160e01b031660e09290921b6001600160e01b0319169190911790555081546001600160401b0319166001600160401b039091161790559050613af76150e9565b506145c08183614474565b50546001600160801b031615614547565b828111614536576145e281836135e4565b5190816145f9575b6145f49150613764565b6145d1565b60018701808811610e7f576145f492614628916001600160401b03906146209085906135f8565b169087615657565b6145ea565b6146378189614474565b5080546001600160801b0381169182156149c05760018101546001600160401b031691828d106149b75761466f9060801c809461365f565b9280614814575b505f905581614695575b505060018101809111610e7f57915b91614522565b5f9d959a979b939c949699929d98919852601960205260018060401b0360405f2054165b6001600160401b038116908882116147fe57505f908152601960205260409020546001600160401b0316806146b9579c919895939b929a9699949c9790975b8a6001600160401b03821615614788575b61471b916001600160401b031661365f565b5f19810191908211610e7f5783821015614775575b6147449061473e83896135e4565b516135f8565b61474e82886135e4565b5284811061476d575b868111614765575b80614680565b95505f61475f565b935083614757565b90505f198301838111610e7f5790614730565b505064ffffffffff60015460a01c1662093a8081029080820462093a801490151715610e7f576147b890426135f8565b8a6147c282615616565b918211156147f5575062093a7f198101908111610e7f578a61471b915b62093a8090046001600160401b03169150614709565b61471b916147df565b90509c919895939b929a9699949c9790976146f8565b6148286001600160401b03613970856137d2565b608080515460018e01548e5460075494936001600160801b038216936001600160701b031692849290911c90808611156149af57614866908661365f565b925b8193801515806149a6575b614984575b50505080614944575b5090916001600160801b038311612b4b576001600160801b038211612b4b5760018f01558d546001600160801b0319166001600160801b03928316178e556148ca91168d61448d565b600755608051546148e890829060701c6001600160701b03166135f8565b6080518054600160701b600160e01b0319811660709390931b600160701b600160e01b03169290921790556001600160701b0391829161492a9190831661365f565b161660018060701b0319608051541617608051555f614676565b80821061496c57509061495a816149609361365f565b9361365f565b915f915b91905f614881565b9361497c92508161495a9161365f565b905f90614964565b61499d939450670de0b6b3a764000091613a6e9161362e565b905f8080614878565b50811515614873565b505f92614868565b5050505061452a565b50505060018101809111610e7f579161468f565b63b7d0949760e01b5f5260045ffd5b6001600160a01b03165f908152600a60205260409020600754815460085460018401805493946001600160801b03841694909392919080831115614b0657614a2b908361365f565b925b60801c9280151580614af0575b614ac4575b505582614a8d575b6001600160801b038311612b4b576001600160801b038111612b4b5781546001600160801b0319166001600160801b03938416178255614a8892169061448d565b600755565b90929190818110614aae579061213281614aa69361365f565b915f91614a47565b61495a81614abd93959461365f565b905f614a47565b92670de0b6b3a7640000613a6e614ae9939560018060701b036002890154169061362e565b915f614a3f565b5060028501546001600160701b03161515614a3a565b505f92614a2d565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152613af791613d65608483613520565b905f9280155f14614ba157505f5b808210614b77575b505081614b749161365f565b91565b614b8292935061365f565b81811115614b985750614b74815b91905f614b68565b614b7490614b90565b633b9aca008102908104633b9aca0003610e7f57614bc2600b5480926135f8565b5f19810191908211610e7f57614bd791613641565b614b60565b90815264ffffffffff909116602082015260400190565b90614bfd826149e3565b5f8054600354919391614c1e9184916001600160a01b039081169116613e1c565b60035460015460a01c64ffffffffff16906001600160a01b0316803b156103a557604051630f069e4160e01b8152915f918391829084908290614c65908a60048401614bdc565b03925af1801561053657614dab575b506001600160a01b0316808352600a60205260408320600281018054929491926001600160701b0390811685821601908111614d975781546001600160701b0319166001600160701b039190911617905560015462093a8060a09190911c64ffffffffff1681810292918115918404141715614d775783614d07614d00614cfb85426135f8565b615616565b93426135f8565b831115614d8b575062093a7f198201918211614d7757509082614d3a925b62093a8090046001600160401b031691615657565b614d46816005546135f8565b6005556040519081527f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f6260203392a3565b634e487b7160e01b81526011600452602490fd5b9050614d3a9291614d25565b634e487b7160e01b83526011600452602483fd5b614db89193505f90613520565b5f915f614c74565b601b54919082614dd057505f9150565b601b541561232957601b5f527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1548110614f4a575f198301928311610e7f575f928060018116614f345760011c9190915b915b60018501808611610e7f57811115614f055781614e3f84613482565b90549060031b1c145f14614e70575050614e5a919250613482565b90549060031b1c5f52601c60205260405f205490565b81614e7c849394613482565b90549060031b1c115f14614edf57505b6001614e9882866135f8565b16614eb257614ea781856135f8565b60011c5b9190614e23565b614ebc81856135f8565b60011c6001810180911115614eab57634e487b7160e01b5f52601160045260245ffd5b9082614eea82613482565b90549060031b1c10614efd575b50614e8c565b93505f614ef7565b9150929192614f1382613482565b90549060031b1c1115614f2a5750614e5a90613482565b614e5a9150613482565b60011c60018101809111610e7f57919091614e21565b505f9150565b90919081811115614f8657614f68916117049161365f565b633b9aca00820291808304633b9aca001490151715610e7f57101590565b5050614f685f611704565b905f9160048101906002825491015460e01c915b818310614fb157505050565b90929193614fbf8583614474565b505460801c908115614fe157600191614fd7916135f8565b9401919290614fa5565b94509192505050565b6040519081826020601a549283815201601a5f5260205f20925f5b8181106150d057505061501a92500383613520565b601754805b83518110156150ca5761503281856135e4565b51805f52601860205260405f205481421015615053575b505060010161501f565b815f52601860205260405f2054615098575b5050808214615076575b5f80615049565b90615090600191615088601754613764565b601755613764565b91905061506f565b806150a86150b39260055461365f565b6005556006546135f8565b6006555f5260186020525f60408120555f80615065565b50509050565b8454835260019485019487945060209093019201615005565b60035460405163719f308960e01b8152306004820152905f90829060249082906001600160a01b03165afa908115610536575f916154e0575b5064ffffffffff60015460a01c1662093a8081029080820462093a801490151715610e7f5761515e615157614cfb83426135f8565b91426135f8565b8111156154d65762093a7f198101908111610e7f5762093a80905b045f5b82518110156154ce57602061519182856135e4565b51015162093a8064ffffffffff918216908104909116919042106151de575f9182526019602052604090912080546001600160401b0319166001600160401b03841617905560010161517c565b505050505b5f546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610536575f9161549c575b50600354604051633ccfd60b60e01b815290602090829060049082905f906001600160a01b03165af1908161546d575b506152545750565b5f546040516370a0823160e01b81523060048201526001600160a01b0390911691602082602481865afa8015610536575f90615439575b615295925061365f565b6152a4600654600954906135f8565b6040516370a0823160e01b81523060048201529290602084602481855afa938415610536575f94615405575b505f938181116153f2575b505060035460405163089cc3b760e31b81526001600160a01b039091169190602081600481865afa908115610536575f916153c0575b50841015615338575b50505f5160206159105f395f51905f529150602090604051908152a1565b615343918491613e1c565b60018060a01b03600354169164ffffffffff60015460a01c16833b156103a557615386935f9283604051809781958294630f069e4160e01b845260048401614bdc565b03925af1908115610536575f5160206159105f395f51905f52926020926153b0575b81925061531a565b5f6153ba91613520565b5f6153a8565b90506020813d6020116153ea575b816153db60209383613520565b810103126103a557515f615311565b3d91506153ce565b6153fd92945061365f565b915f806152db565b9093506020813d602011615431575b8161542160209383613520565b810103126103a55751925f6152d0565b3d9150615414565b506020823d602011615465575b8161545360209383613520565b810103126103a557615295915161528b565b3d9150615446565b6020813d602011615494575b8161548660209383613520565b810103126103a5575161524c565b3d9150615479565b90506020813d6020116154c6575b816154b760209383613520565b810103126103a557515f61521c565b3d91506154aa565b5050506151e3565b62093a8090615179565b90503d805f833e6154f18183613520565b8101906020818303126103a5578051906001600160401b0382116103a5570181601f820112156103a55780519061552782613543565b926155356040519485613520565b82845260208085019360061b830101918183116103a557602001925b82841061556257505050505f615122565b6040848303126103a55760408051919082016001600160401b03811183821017610e6b576040528451906001600160701b03821682036103a55782602092604094526155af838801613b68565b83820152815201930192615551565b905f602091828151910182855af115610536575f513d61560d57506001600160a01b0381163b155b6155ed5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156155e6565b62093a80810462093a8081029080820462093a801490151715610e7f5762093a8061564a9206155f1461564d575f906135f8565b90565b62093a80906135f8565b60040180549192909180615723575b506040519261567484613505565b6001600160801b031683525f602084019081526001600160401b0390911660408401908152825491929091600160401b811015610e6b576156ba91600182018155614474565b939093615710575183546001600160801b0319166001600160801b0391821617845591516001926156ec91168461448d565b818060401b0390511691019060018060401b031660018060401b0319825416179055565b634e487b7160e01b5f525f60045260245ffd5b5f198101908111610e7f576157389083614474565b5060018101546001600160401b039081169083160361566657805490936001600160801b03935083925061576d9183166135f8565b83546001600160801b031916911691909116179055565b60ff5f5160206159305f395f51905f525460401c16156157a057565b631afcd79f60e31b5f5260045ffdfe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d62229496573be0b0846a2fb48a94de962b501adb0b8eaf7f99924b10a81a19fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090ff0fdc2a5e2f52090b2c8a629804c58d5c1156b5405c8437a00da5abba239cb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f001a24d9e293955b2f174e8efe4262a5c3d06777298ea45a1a260bfef613edf4e00543f5a965a495a7e9851f0c93e6a59699d038592d1ea9f4396bce934929efd0f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a264697066735822122054767e1c5fa6aa6c5de95b18b764452afc12c6fcf6cdecb10c1b572eb750fab964736f6c634300081e0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00";
17
+ static readonly bytecode = "0x6080806040523460aa575f516020615d475f395f51905f525460ff8160401c16609b576002600160401b03196001600160401b038216016049575b604051615c9890816100af8239f35b6001600160401b0319166001600160401b039081175f516020615d475f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80603a565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60a06040526004361015610011575f80fd5b5f3560e01c8063018ee9b714612d6f57806301ffc9a714612d195780630261fa3814612ca65780630858cf9814612c8957806308d43ff714612c215780630af8857414612a445780630d392cd9146129c95780630f7acc87146129765780631959a002146128dd5780631fdcf32b146128b557806320583c001461282457806323a35de91461256a578063248a9ca31461254457806325cc4fe71461251c578063262d6152146124f4578063279cdb66146124865780632e84deff1461245e5780632f2ff15d1461242d57806335c807e6146123c557806336568abe14612381578063371fd8e6146121f9578063381386c0146121dc5780633b35269c146121ad5780633ca4d9f4146121195780633dbe4391146120f25780633f4ba83a14612074578063409f521a146120575780634296cfd814611f545780634b69c6b214611f375780634c09f37c14611f1a5780634e143baf14611ec25780635078a03014611e9a57806354d2429714611dcf5780635804810a14611d8b57806358d7bf8014611d6e5780635c975abb14611d405780635fe1437414611d235780636119b1b114611cfb57806361d027b314611cd35780636386c1c714611c9557806364e2113214611c0f57806367faae7814611bf75780636919db5c14611bcf5780636a42372714611bb25780636ba42aaa14611b755780636fcd112b14611a52578063715018a6146119fe5780637f51bb1f14611996578063808355bf1461195c57806383dd4f691461193f5780638456cb591461187c5780638cd01307146115c75780638da5cb5b1461159357806391d148541461153e578063939d623714611521578063949ba6271461143b5780639995a334146113825780639da882ac146112f75780639e42157d146112da578063a217fddf146112c0578063a3845efc1461125e578063a3b6aeda14611163578063b6b55f251461110c578063b758ba88146110e5578063b97dd9e2146110c5578063c0ba241b1461109e578063c3ade01214611081578063c4d381df14611064578063c9d2ff9d14610cb4578063d09729ad14610c8a578063d1b5172f14610c37578063d547741f14610c01578063d5c8ff9814610bda578063d8b09c0c14610b72578063e36a6b8314610b1a578063e63a391f14610afc578063e63ab1e914610ad5578063e668efe214610661578063ed4a70841461063a578063f14faf6f146105d2578063f2eda13b14610432578063f2fde38b14610407578063f5b541a6146103e05763fbb12d07146103b5575f80fd5b346103dc575f3660031901126103dc5760206040515f516020615ae35f395f51905f528152f35b5f80fd5b346103dc575f3660031901126103dc5760206040515f516020615b235f395f51905f528152f35b346103dc5760203660031901126103dc576104306104236135bc565b61042b614479565b613d31565b005b346103dc5761044036613666565b916104496146cf565b610451613d8f565b82156105c357600490610462613df2565b60035460405163c4f59f9b60e01b8152925f9184919082906001600160a01b03165afa918215610594575f9261059f575b5091926001600160a01b03831692905f5b83518110156104de576001600160a01b036104bf828661379b565b511685146104cf576001016104a4565b63c1ab6dc160e01b5f5260045ffd5b50846105018282876104f283303384614da1565b6104fc8282613f7d565b61402f565b6001600160a01b031691823b156103dc5760405163534a7e1d60e11b815260048101839052915f8360248183885af1928315610594577f57a6edf74f7cdf69723cf14427405d5ab3e4b8e1600a4d8b7e01ea3c95ccd3a093610584575b5061056e60405192839283613970565b0390a260015f516020615bc35f395f51905f5255005b5f61058e916136d7565b8461055e565b6040513d5f823e3d90fd5b6105bc9192503d805f833e6105b481836136d7565b810190613711565b9084610493565b63e320176b60e01b5f5260045ffd5b346103dc5760203660031901126103dc576004356105ee613db6565b6105f6613d8f565b80156105c357610627906106086146cf565b5f54610622908290309033906001600160a01b0316614da1565b6142b0565b60015f516020615bc35f395f51905f5255005b346103dc575f3660031901126103dc575f546040516001600160a01b039091168152602090f35b346103dc576101c03660031901126103dc5761067b6135bc565b6106836135d2565b9061068c6135fe565b91610695613614565b9061069e6135e8565b60a435906001600160a01b03821682036103dc5760c4356001600160a01b03811681036103dc5760e4356001600160a01b03811681036103dc5761010435916001600160a01b03831683036103dc575f516020615c435f395f51905f5254976101643594906101a4359061018435906001600160401b038c161580610ac7575b6001600160401b038d166001149081610abd575b159081610ab4575b50610aa5575f516020615c435f395f51905f5280546001600160401b031916600117905560408c901c60ff1615610a81575b610774615a17565b61077c615a17565b61078533613d31565b61078d615a17565b610795615a17565b61079d615a17565b60015f516020615bc35f395f51905f52556107b6615a17565b6001600160a01b03169b8c15610a72576001600160a01b0316988915610a72576001600160a01b0316998a15610a72576001600160a01b0316928315610a72576001600160a01b0316968715610a72576001600160a01b03891615610a72576001600160a01b03851615610a72576001600160a01b03861615610a72576001600160a01b03871615610a7257631dcd65006101243511610a63576305f5e1006101443511610a6357610124356108758461087085856137af565b6137af565b03610a545760115560125560135560405163f1380ea960e01b8152976060896004818b5afa8015610594575f995f91610a0a575b5064ffffffffff8a16159081156109f5575b506109e65760018054600380546001600160a01b0319908116909b1790555f80548b16909d17909c55600280548a1692909217909155600480548916929092179091556010805488166001600160a01b039384161790556015805488169383169390931790925560148054871693821693909317909255600c8054909516929092179093556001600160c81b031990951660a09390931b64ffffffffff60a01b169290921791161790915561012435600f5561014435600e55631dcd6500600b5560ff9061098833614531565b5060401c161561099457005b60ff60401b195f516020615c435f395f51905f5254165f516020615c435f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b630acb7f6b60e41b5f5260045ffd5b62093a80915064ffffffffff1614158c6108bb565b9950506060893d606011610a4c575b81610a26606093836136d7565b810103126103dc57610a466040610a3f60208c01613d1f565b9a01613d1f565b8c6108a9565b3d9150610a19565b638b9126fd60e01b5f5260045ffd5b637e2df70960e11b5f5260045ffd5b63d92e233d60e01b5f5260045ffd5b5f516020615c435f395f51905f52805460ff60401b1916600160401b17905561076c565b63f92ee8a960e01b5f5260045ffd5b9050158e61073a565b303b159150610732565b5060ff8c60401c161561071e565b346103dc575f3660031901126103dc5760206040515f516020615b435f395f51905f528152f35b346103dc575f3660031901126103dc576020604051633b9aca008152f35b346103dc5760203660031901126103dc57600435610b36614479565b6305f5e1008111610a63576020817fc69cbab065ddb19d4ee1f9cfe242c82b8facbd1e93c89e5830dfe0d4fb25985392600e55604051908152a1005b346103dc5760203660031901126103dc57610b8b6135bc565b610b93614479565b6001600160a01b03168015610a7257601480546001600160a01b031916821790557fbd89165bc0f9810151bd7f1a3ec6e5a9c70832f15628e9416507ef061525d1a35f80a2005b346103dc575f3660031901126103dc57602064ffffffffff60015460a01c16604051908152f35b346103dc5760403660031901126103dc57610430600435610c206135d2565b90610c32610c2d82613929565b613eaa565b614633565b346103dc575f3660031901126103dc57335f52601660205260ff60405f20541615610c7c57610c646146cf565b610c6c613d8f565b610c746151e3565b61062761537c565b6282b42960e81b5f5260045ffd5b346103dc5760203660031901126103dc576004355f526018602052602060405f2054604051908152f35b346103dc5760203660031901126103dc5760043580156105c357610cd66146cf565b610cde613d8f565b610ce733614743565b610cf033614c76565b335f52600a602052610d2a60405f2060018060701b0360028201541690610d248461087060018060801b0384541693615323565b916152e2565b1561105557335f52600a60205260405f20906004820190815491600462093a8042049183602060018060a01b03600354166040519485809263089cc3b760e31b82525afa928315610594575f93611021575b505f9694965060025f95015460e01c945b86861080611018575b15610f3c57610da58684614707565b5080546001600160801b03811692919083158015610f25575b610f1757610dd09060801c8094613816565b8015610f1757808b10610ef157610dfe90935b6001600160801b0390610df79086906137af565b1682614720565b600101546001600160401b031662093a80818102929180840490911490151715610edd578290825f52601860205260405f205415610e86575b610e58925f52601860205260405f20610e518382546137af565b90556137af565b97808210610e74575050610e6d5f5b9561391b565b9496610d8d565b610e6d91610e8191613816565b610e67565b601a549150600160401b821015610ec957610e5892610eae836001879501601a55601a613651565b81549060031b9083821b915f19901b19161790559250610e37565b634e487b7160e01b5f52604160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b86610efc8c83613816565b1015610f0d57610dfe905b93610de3565b50610dfe8a610f07565b50509795610e6d915061391b565b5060018201546001600160401b0316881015610dbe565b90808210908115610f9b575b50610f8c576040519081527f6381d9813cabeb57471b5a7e05078e64845ccdb563146a6911d536f24ce960f160203392a260015f516020615bc35f395f51905f5255005b633e9b09d160e01b5f5260045ffd5b60035460405163089cc3b760e31b81529250602090839060049082906001600160a01b03165afa908115610594575f91610fe2575b610fda92506137af565b811182610f48565b90506020823d602011611010575b81610ffd602093836136d7565b810103126103dc57610fda915190610fd0565b3d9150610ff0565b50871515610d96565b9092506020813d60201161104d575b8161103d602093836136d7565b810103126103dc57519187610d7c565b3d9150611030565b633a23d82560e01b5f5260045ffd5b346103dc575f3660031901126103dc576020600954604051908152f35b346103dc575f3660031901126103dc576020600754604051908152f35b346103dc575f3660031901126103dc5760206040515f516020615c035f395f51905f528152f35b346103dc575f3660031901126103dc57602062093a804204604051908152f35b346103dc575f3660031901126103dc5760206040515f516020615a835f395f51905f528152f35b346103dc5760203660031901126103dc5760043580156105c357610627906111326146cf565b61113a613d8f565b61114333614743565b5f5461115d908290309033906001600160a01b0316614da1565b33614e86565b346103dc5760803660031901126103dc5761117c6135bc565b602435906111886135fe565b91611191613614565b9261119a613df2565b81156105c3576111a8613d8f565b6040516362d1e52360e11b81526001600160a01b03948516600482018190526024820193909352928416604484018190529293166020846064815f855af1928315610594575f93611229575b602094507ff296c40090a5aae193d87e3a7d65806ef8931893887d285677e13e3eeff4d37485604051868152a4604051908152f35b92506020843d602011611256575b81611244602093836136d7565b810103126103dc5760209351926111f4565b3d9150611237565b346103dc5760203660031901126103dc576004358015158091036103dc5760207f5685997059f4946afa042494c1c056331326a8443eb0a65a4f2667510be11cf7916112a8613db6565b60ff19601e541660ff821617601e55604051908152a1005b346103dc575f3660031901126103dc5760206040515f8152f35b346103dc575f3660031901126103dc576020600554604051908152f35b346103dc5760203660031901126103dc576113106135bc565b335f9081527f448256db8f8fb95ee3eaaf89c1051414494e85cebb6057fcf996cc3d0ccfb456602052604090205460ff161561135e576001600160a01b03811615610a7257610430906144ac565b63e2517d3f60e01b5f52336004525f516020615b235f395f51905f5260245260445ffd5b346103dc5761139036613666565b91611399613e4e565b6113a1613d8f565b6001600160a01b0316908115610a72576001600160a01b038116928315610a7257823b156103dc575f816113ea936040519485928392632fba5def60e11b845260048401613823565b038183875af1908115610594577f5966fa360f56e87c95a4fdc802065489925e68179cbdc1d4b19834ca5827e8409260209261142b575b50604051908152a3005b5f611435916136d7565b85611421565b346103dc5760603660031901126103dc576114546135bc565b602435604435918215158093036103dc5761146d613e4e565b611475613d8f565b6001600160a01b0316908115610a7257604051916315373e3d60e01b83528160048401528360248401526020836044815f855af1928315610594575f936114de575b505f516020615be35f395f51905f52604060209581519081528587820152a3604051908152f35b9392506020843d602011611519575b816114fa602093836136d7565b810103126103dc57925191925f516020615be35f395f51905f526114b7565b3d91506114ed565b346103dc575f3660031901126103dc576020600854604051908152f35b346103dc5760403660031901126103dc576115576135d2565b6004355f525f516020615b835f395f51905f5260205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b346103dc575f3660031901126103dc575f516020615ac35f395f51905f52546040516001600160a01b039091168152602090f35b346103dc5760403660031901126103dc576004356115e361362a565b81156105c3576115f16146cf565b6115f9613d8f565b61160233614743565b61160b33614c76565b335f908152600a60205260409020805460801c8381106117a05761164591906001600160801b039061163e908690613816565b1690614720565b15611747576002546004546001600160a01b039081169116803b156103dc576040516340c10f1960e01b8152915f8380611683873060048401613823565b038183865af1918215610594576116a1938593611737575b5061402f565b6004546001600160a01b0316803b156103dc575f60405180926317a790f160e11b82528183816116d5883360048401613823565b03925af1801561059457611727575b505b60405190815233907f312a5e5e1079f5dda4e95dbbd0b908b291fd5b992ef22073643ab691572c5b5260203392a360015f516020615bc35f395f51905f5255005b5f611731916136d7565b816116e4565b5f611741916136d7565b8561169b565b6002546001600160a01b0316803b156103dc575f60405180926340c10f1960e01b825281838161177b883360048401613823565b03925af1801561059457611790575b506116e6565b5f61179a916136d7565b8161178a565b81546001600160801b031682556117b79084613816565b806117c4575b5050611645565b600282015482546001600160801b031692906001600160701b03166117e882615323565b908181111561187157611807916117fe91613816565b600b54906137e5565b61181183856137af565b90633b9aca00820291808304633b9aca001490151715610edd571061105557611867926001600160801b0390819061184a9085906137af565b83546001600160801b0319169116919091161790556007546137af565b60075582806117bd565b50506118075f6117fe565b346103dc575f3660031901126103dc57335f9081527f75442b0a96088b5456bc4ed01394c96a4feec0f883c9494257d76b96ab1c9b6b602052604090205460ff161561191b576118ca613d8f565b600160ff195f516020615ba35f395f51905f525416175f516020615ba35f395f51905f52557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b63e2517d3f60e01b5f52336004525f516020615b435f395f51905f5260245260445ffd5b346103dc575f3660031901126103dc576020601254604051908152f35b346103dc5760203660031901126103dc57602061198c61198261197d6135bc565b6139a1565b50919290506152e2565b6040519015158152f35b346103dc5760203660031901126103dc576119af6135bc565b6119b7614479565b6001600160a01b03168015610a7257601080546001600160a01b031916821790557f1f54d231bb9d500b1923e4a1cb25e600f366a8368873d9af7c1c623814df19fc5f80a2005b346103dc575f3660031901126103dc57611a16614479565b5f516020615ac35f395f51905f5280546001600160a01b031981169091555f906001600160a01b03165f516020615b635f395f51905f528280a3005b346103dc575f3660031901126103dc57611a6a6146cf565b611a72613d8f565b611a7b33614743565b611a8433614c76565b335f52600a60205260405f206002810190815460018060701b038160701c16918215611b665754611aea91611acc916001600160801b0316906001600160701b031684614de5565b8454600160701b600160e01b03191690945560065490939290613816565b60065580611b56575b5080611b0c5760015f516020615bc35f395f51905f5255005b5f54611b2490829033906001600160a01b0316613f43565b6040519081527f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a942436460203392a280610627565b611b609033614e86565b81611af3565b6313424e8d60e31b5f5260045ffd5b346103dc5760203660031901126103dc576001600160a01b03611b966135bc565b165f526016602052602060ff60405f2054166040519015158152f35b346103dc575f3660031901126103dc576020600e54604051908152f35b346103dc575f3660031901126103dc576014546040516001600160a01b039091168152602090f35b346103dc575f3660031901126103dc576104306151e3565b346103dc575f3660031901126103dc575f546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa8015610594575f90611c62575b602090604051908152f35b506020813d602011611c8d575b81611c7c602093836136d7565b810103126103dc5760209051611c57565b3d9150611c6f565b346103dc5760203660031901126103dc5760a0611cb361197d6135bc565b926040929192519485526020850152604084015260608301526080820152f35b346103dc575f3660031901126103dc576010546040516001600160a01b039091168152602090f35b346103dc575f3660031901126103dc576004546040516001600160a01b039091168152602090f35b346103dc575f3660031901126103dc576020601754604051908152f35b346103dc575f3660031901126103dc57602060ff5f516020615ba35f395f51905f5254166040519015158152f35b346103dc575f3660031901126103dc576020600b54604051908152f35b346103dc5760203660031901126103dc576004356001600160401b038116908190036103dc575f526019602052602060018060401b0360405f205416604051908152f35b346103dc5760403660031901126103dc57611de86135bc565b611df06135d2565b90611df9613d8f565b611e01613e4e565b6001600160a01b031680158015611e89575b610a7257803b156103dc57604051630780b26560e51b81526001600160a01b0390921660048301819052915f8160248183865af1801561059457611e79575b507f676a234ac20b569dd9609f7b1f611d2a55415a8ca51c68dd1e64220b22d87ea05f80a3005b5f611e83916136d7565b82611e52565b506001600160a01b03821615611e13565b346103dc575f3660031901126103dc576001546040516001600160a01b039091168152602090f35b346103dc5760203660031901126103dc57600435611ede614479565b6305f5e1008111610a63576020817f2131421f1667d3206b261152a6f4fb7037f9790b64a6bb0154cf17c6265b6acb92600d55604051908152a1005b346103dc575f3660031901126103dc576020600f54604051908152f35b346103dc575f3660031901126103dc576020600654604051908152f35b346103dc5760a03660031901126103dc57611f6d6135bc565b611f756135d2565b60443591611f816135e8565b91611f8a613d8f565b611f926146cf565b83156105c357611fa0613df2565b6001600160a01b03831615610a72576001600160a01b031692833b156103dc57604051632e1a7d4d60e01b8152600481018290525f8160248183895af1801561059457612047575b506064358110612038577f6121f81122dd3b5439a5eceba3952f7457af801dc975675861d69c3f488c1e59926120299082906001600160a01b038516613f43565b61056e60405192839283613970565b63bb2875c360e01b5f5260045ffd5b5f612051916136d7565b84611fe8565b346103dc575f3660031901126103dc576020601354604051908152f35b346103dc575f3660031901126103dc5761208c614479565b5f516020615ba35f395f51905f525460ff8116156120e35760ff19165f516020615ba35f395f51905f52557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b638dfc202b60e01b5f5260045ffd5b346103dc575f3660031901126103dc5760206040515f516020615aa35f395f51905f528152f35b346103dc5760403660031901126103dc576121326135bc565b60243561213d6146cf565b612145613d8f565b336001600160a01b038316141580612188575b610c7c578161216961062793614743565b5f54612183908390309033906001600160a01b0316614da1565b614e86565b50335f9081525f516020615a635f395f51905f52602052604090205460ff1615612158565b346103dc5760203660031901126103dc5760406121d06121cb6135bc565b613947565b82519182526020820152f35b346103dc575f3660031901126103dc576020601154604051908152f35b346103dc5760203660031901126103dc5760043580156105c35761221b6146cf565b612223613d8f565b61222c33614743565b61223533614c76565b335f52600a60205260405f2060018060801b038154169160075490836122685760015f516020615bc35f395f51905f5255005b838111156123785750612293835b633b9aca00612287600d54836137e5565b04908161235357613816565b9260018060a01b036002541690813b156103dc575f604051809363079cc67960e41b82528183816122c88b3360048401613823565b03925af1918215610594578580926122e9926122ef95612343575b50613816565b92613816565b926040519081527f5c16de4f8b59bd9caf0f49a545f25819a895ed223294290b408242e72a59423160203392a281546001600160801b0319166001600160801b039190911617905560075580808080610627565b5f61234d916136d7565b886122e3565b6002546010546123739184916001600160a01b0390811691339116614da1565b613816565b61229390612276565b346103dc5760403660031901126103dc5761239a6135d2565b336001600160a01b038216036123b65761043090600435614633565b63334bd91960e11b5f5260045ffd5b346103dc5760203660031901126103dc576123de6135bc565b6123e6614479565b6001600160a01b03168015610a7257600c80546001600160a01b031916821790557f03e59dbc22b06c47327d520cddc8bf2923ac525a1742732bf344562d7f72d0f55f80a2005b346103dc5760403660031901126103dc5761043060043561244c6135d2565b90612459610c2d82613929565b6145a2565b346103dc575f3660031901126103dc576002546040516001600160a01b039091168152602090f35b346103dc5760203660031901126103dc57600435601a548110156103dc57601a548110156124e057601a5f527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e0154604051908152602090f35b634e487b7160e01b5f52603260045260245ffd5b346103dc575f3660031901126103dc57600c546040516001600160a01b039091168152602090f35b346103dc575f3660031901126103dc576003546040516001600160a01b039091168152602090f35b346103dc5760203660031901126103dc576020612562600435613929565b604051908152f35b346103dc5760203660031901126103dc576001600160a01b0361258b6135bc565b165f52600a60205261262760405f20604051906125a7826136a0565b80546001600160801b0381168352608090811c60208401526001820154604084015260028201546001600160701b038082166060860152607082901c169184019190915260e01c60a0830190815260038201546001600160401b031660c084015260049091018054909261261a826136fa565b91604051958693846136d7565b80835260208301945f5260205f205f905b8282106127d65760e08401859052855163ffffffff16855f62093a804204835b835181101561269c57816001600160401b036040612676848861379b565b5101511611612688575b600101612658565b9161269460019161391b565b929050612680565b50926126a7826136fa565b916126b560405193846136d7565b8083526126c4601f19916136fa565b015f5b8181106127ad5750505f905b835181101561273857846001600160401b0360406126f1848861379b565b5101511611612703575b6001016126d3565b90612730600191612714848761379b565b5161271f828761379b565b5261272a818661379b565b5061391b565b9190506126fb565b826040518091602082016020835281518091526020604084019201905f5b818110612764575050500390f35b825180516001600160801b039081168652602082810151909116818701526040918201516001600160401b03169186019190915286955060609094019390920191600101612756565b6020906040516127bc816136bc565b5f81525f838201525f6040820152828287010152016126c7565b919350919394600260206001926040516127ef816136bc565b8554858060801b038116825260801c83820152848060401b038587015416604082015281520192019201869391959492612638565b346103dc5760803660031901126103dc57604435602435600435606435612849614479565b6128578461087085856137af565b631dcd65008211610a63578103610a54577f0e517b12ad92714324ac71e14f9443dee3b82d6ab434a8e543e0d35ba1ab86239360809382600f55836011558060125581601355604051938452602084015260408301526060820152a1005b346103dc575f3660031901126103dc576015546040516001600160a01b039091168152602090f35b346103dc5760203660031901126103dc576001600160a01b036128fe6135bc565b165f908152600a602090815260409182902080546001820154600283015460039093015485516001600160801b0384168152608093841c95810195909552948401526001600160701b038083166060850152607083901c169083015260e090811c60a08301526001600160401b0390921660c0820152f35b346103dc575f3660031901126103dc57600354604051632c9aab9b60e11b815230600482015290602090829060249082906001600160a01b03165afa8015610594575f90611c6257602090604051908152f35b346103dc5760403660031901126103dc576129e26135bc565b7f08b2c0469ecd1d7a21d7e1492f0fc75fc7e8e0fa4fdf4275949c90875f5ebdf56020612a0d61362a565b92612a16614479565b60018060a01b031692835f526016825260405f209015159060ff1981541660ff8316179055604051908152a2005b346103dc5760203660031901126103dc57612a5d6135bc565b612a65614479565b6001600160a01b038116908115610a7257600c545f805460405163d85c32c760e01b81526001600160a01b03918216959390911692918180612aab888860048401613901565b0381865afa908115610594575f91612c07575b505115612b6e5760035460405163c4f59f9b60e01b815294905f90869060049082906001600160a01b03165afa948515610594575f95612beb575b505f5b8551811015612bb257846001600160a01b03612b18838961379b565b51168481148015612ba9575b612b9f5760405163d85c32c760e01b8152915f9183918291612b4a919060048401613901565b0381885afa908115610594575f91612b7d575b505115612b6e576001905b01612afc565b6304aaa4ed60e11b5f5260045ffd5b612b9991503d805f833e612b9181836136d7565b810190613888565b87612b5d565b5050600190612b68565b50838114612b24565b600180546001600160a01b03191684179055827f324fd48573b0802abed4c31efc8338504f98ae1bd2b045423422dba22c1554255f80a2005b612c009195503d805f833e6105b481836136d7565b9385612af9565b612c1b91503d805f833e612b9181836136d7565b85612abe565b346103dc5760203660031901126103dc57612c3a6135bc565b612c42614479565b6001600160a01b03168015610a7257601580546001600160a01b031916821790557f6ed4d486ce0e38e85cb51baae9e1cb00e9083a1639004e21a191b499a4ffdb455f80a2005b346103dc575f3660031901126103dc576020600d54604051908152f35b346103dc5760203660031901126103dc57600435612cc2613db6565b606481118015612d11575b612d02576020817f3285e7df8e4a902e771144cbca2ec22e5df9da9f9adcb76e9bbab012819c5e8c92601d55604051908152a1005b63162908e360e11b5f5260045ffd5b508015612ccd565b346103dc5760203660031901126103dc5760043563ffffffff60e01b81168091036103dc57602090637965db0b60e01b8114908115612d5e575b506040519015158152f35b6301ffc9a760e01b14905082612d53565b346103dc5760403660031901126103dc57612d886135bc565b612d90613d8f565b335f9081527f746b0a0656f1e921a3c755e7657adb0436c6a5319b34f1edafabefd764826119602052604090205460ff16156135985760035460405163c4f59f9b60e01b8152905f90829060049082906001600160a01b03165afa908115610594575f9161357e575b5060018060a01b035f541690612e0f8151613ef0565b925f9160ff601e5416915f5b8251811015613119576001600160a01b03612e36828561379b565b516040516370a0823160e01b8152306004820152929116602083602481845afa928315610594575f936130e6575b5060035460405163a88557c560e01b81526001600160a01b03909116979060208180612e94863060048401613901565b03818c5afa908115610594575f916130b5575b508081156130a1578880613096575b156130625750612ee69082601d54612ece8282613816565b83111561305b57612edf9250613816565b80926137af565b975b803b156103dc576040516305d38c7160e21b8152915f918391829084908290612f15908960048401613823565b03925af1908161304b575b50612f9f57600192507f2d5fb609dbfa835eb28ecbbdf51204e96ee9af7cafdcc13c8a82323c158b48cf612f678a5f612f6186612f5b613859565b9361379b565b526140e6565b5060408051809260208252612f8b8151809281602086015260208686019101613f22565b601f01601f19168101030190a25b01612e1b565b6040516370a0823160e01b815230600482015292602084602481855afa8015610594578a945f91613015575b50836001956130086130007f7aa3ce5172359784bf5bceffaa37a2c70ac97903138f07c51fa940da3750968b95602095613816565b92839261379b565b52604051908152a2612f99565b9450506020843d8211613043575b81613030602093836136d7565b810103126103dc57925189939083612fcb565b3d9150613023565b5f613055916136d7565b8a612f20565b5050612edf565b91989050878061308a575b15612ee857505050600191505f613084828a61379b565b52612f99565b50601d5489101561306d565b50601d548310612eb6565b5050965050600191505f613084828a61379b565b90506020813d82116130de575b816130cf602093836136d7565b810103126103dc57518b612ea7565b3d91506130c2565b9092506020813d8211613111575b81613101602093836136d7565b810103126103dc57519189612e64565b3d91506130f4565b508486805184510361356f57600c546001600160a01b0316935f9283929190835b8251811015613260576001600160a01b03613155828561379b565b5116613161828661379b565b519081613175575b50506001905b0161313a565b600154929791926001600160a01b0316811461324b575f546001600160a01b031681036131af57506001916131a9916137af565b9561316f565b90969591806131c16020928c85613f43565b6001546040516349df439160e01b815293849283926131f0926001600160a01b039091169190600485016137bc565b03815f8d5af1908115610594575f91613219575b50613211906001926137af565b949089613169565b90506020813d8211613243575b81613233602093836136d7565b810103126103dc57516001613204565b3d9150613226565b50959460019161325a916137af565b9461316f565b50858486838a836134d6575b5050602435821061203857613280916137af565b600f549091829180156134cb5761329c633b9aca0091856137e5565b049360115494601254936132bc6132b386896137af565b601354906137af565b9082156134bc5750806132e36132e86132ef936132e36132dc878c613816565b99876137e5565b6137f8565b98846137e5565b956132fe816123738985613816565b8061349f575b5080613482575b5085613399575b60209550905b600e54928361336a575b505061332d836142b0565b6040519283528483015260408201527f4534f107610758c3931de9ad1e176476fcfb8c74adf920167e1d54ee84fcfe7660603392a2604051908152f35b936133929194633b9aca0061338261338c96846137e5565b0494858093613816565b95613f43565b8580613322565b6014546133af906001600160a01b031683613f7d565b6014546133c79087906001600160a01b03168461402f565b6014546001600160a01b0316803b156103dc575f604051809263d5a4ee6f60e01b82528183816133fb8d8a60048401613823565b03925af19081613472575b5061346957600361341d613418613859565b6140e6565b9050145f146134445760105460209661343f916001600160a01b031684613f43565b613312565b60145461345a906001600160a01b031683613f7d565b63159b7a7d60e31b5f5260045ffd5b60209550613312565b5f61347c916136d7565b87613406565b60155461349991906001600160a01b031684613f43565b8661330b565b6010546134b691906001600160a01b031685613f43565b87613304565b94505050602094505f90613318565b506020935f90613318565b9081846134f4613522959660209560018060a01b0360015416613f43565b6001546040516349df439160e01b815295869485935f9385939291906001600160a01b0316600485016137bc565b03925af1908115610594575f9161353d575b5090838561326c565b90506020813d602011613567575b81613558602093836136d7565b810103126103dc575184613534565b3d915061354b565b63251f56a160e21b5f5260045ffd5b61359291503d805f833e6105b481836136d7565b82612df9565b63e2517d3f60e01b5f52336004525f516020615ae35f395f51905f5260245260445ffd5b600435906001600160a01b03821682036103dc57565b602435906001600160a01b03821682036103dc57565b608435906001600160a01b03821682036103dc57565b604435906001600160a01b03821682036103dc57565b606435906001600160a01b03821682036103dc57565b6024359081151582036103dc57565b601b548110156124e057601b5f5260205f2001905f90565b80548210156124e0575f5260205f2001905f90565b60609060031901126103dc576004356001600160a01b03811681036103dc57906024356001600160a01b03811681036103dc579060443590565b61010081019081106001600160401b03821117610ec957604052565b606081019081106001600160401b03821117610ec957604052565b601f909101601f19168101906001600160401b03821190821017610ec957604052565b6001600160401b038111610ec95760051b60200190565b6020818303126103dc578051906001600160401b0382116103dc57019080601f830112156103dc57815190613745826136fa565b9261375360405194856136d7565b82845260208085019360051b8201019182116103dc57602001915b81831061377b5750505090565b82516001600160a01b03811681036103dc5781526020928301920161376e565b80518210156124e05760209160051b010190565b91908201809211610edd57565b6001600160a01b039182168152602081019290925290911660408201525f606082015260800190565b81810292918115918404141715610edd57565b8115613802570490565b634e487b7160e01b5f52601260045260245ffd5b91908203918211610edd57565b6001600160a01b039091168152602081019190915260400190565b6001600160401b038111610ec957601f01601f191660200190565b3d15613883573d9061386a8261383e565b9161387860405193846136d7565b82523d5f602084013e565b606090565b6020818303126103dc578051906001600160401b0382116103dc57019080601f830112156103dc5781516138bb816136fa565b926138c960405194856136d7565b81845260208085019260051b8201019283116103dc57602001905b8282106138f15750505090565b81518152602091820191016138e4565b6001600160a01b0391821681529116602082015260400190565b5f198114610edd5760010190565b5f525f516020615b835f395f51905f52602052600160405f20015490565b613950906139a1565b5091509182156139675761396392614de5565b9091565b5050505f905f90565b9081526001600160a01b03909116602082015260400190565b6001600160401b039081165f190191908211610edd57565b6001600160a01b03165f908152600a602052604080822090516139c3816136a0565b81549260018060801b0384168252602082019360801c8452600183015490604083019182526002840154606084019160018060701b03821683526004608086019660018060701b038460701c16885260a087019360e01c845260018060401b0360038201541660c088015201928354613a3b816136fa565b94613a4960405196876136d7565b81865260208601905f5260205f205f915b838310613cd5575050505060e086018490525194519551915193516001600160801b03909616956001600160701b039586169562093a8042049591949316929063ffffffff165b8151811015613c7157613ab4818361379b565b516040810180519091906001600160401b03168810613c455760200180519091906001600160801b0316613b06575b50505b6001810180911115613aa157634e487b7160e01b5f52601160045260245ffd5b519597919590949190613b2d906001600160401b0390613b27908216613989565b16615053565b8a516007546001600160801b039091169a91998290808c1115613c3d57613b54908c613816565b9b5b809c80151580613c34575b613c0c575b505080613bca575b50506001600160801b038111612d02576001600160801b038a11612d02576001600160801b03998a168b528551908a1699613bc193613bb092909116906137af565b94516001600160801b031690613816565b95935f80613ae3565b909a90808210613bf3575090613be381613be993613816565b9a613816565b505f5b5f80613b6e565b9091506122e382613c04949c613816565b975f98613bec565b613c2c929d50613c2586670de0b6b3a7640000926137e5565b04906137af565b9a5f80613b66565b50851515613b61565b505f9b613b56565b602001516001600160801b0316905080613c60575b50613ae6565b613c6a91936137af565b915f613c5a565b50509584979350613c25613ca793929695613ca2670de0b6b3a76400009360018060801b0390511694600854613816565b6137e5565b9082613cb0575b565b9190818110613cc75790613cc391613816565b5f91565b613cd091613816565b905f90565b60026020600192999e99604051613ceb816136bc565b8554858060801b038116825260801c83820152848060401b03858701541660408201528152019201920191909b969b613a5a565b519064ffffffffff821682036103dc57565b6001600160a01b03168015613d7c575f516020615ac35f395f51905f5280546001600160a01b0319811683179091556001600160a01b03165f516020615b635f395f51905f525f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b60ff5f516020615ba35f395f51905f525416613da757565b63d93c066560e01b5f5260045ffd5b335f9081525f516020615b035f395f51905f52602052604090205460ff1615613ddb57565b63e2517d3f60e01b5f52336004525f60245260445ffd5b335f9081527f1e7544249be4928fb5cf2beb807aabc803ed444c9068375a77ce1bbd0a7dbef7602052604090205460ff1615613e2a57565b63e2517d3f60e01b5f52336004525f516020615a835f395f51905f5260245260445ffd5b335f9081527f929104cac10fc3be0db0df1684913d54755d39633d8fd43ad3cc6c4d5486ccce602052604090205460ff1615613e8657565b63e2517d3f60e01b5f52336004525f516020615c035f395f51905f5260245260445ffd5b5f8181525f516020615b835f395f51905f526020908152604080832033845290915290205460ff1615613eda5750565b63e2517d3f60e01b5f523360045260245260445ffd5b90613efa826136fa565b613f0760405191826136d7565b8281528092613f18601f19916136fa565b0190602036910137565b5f5b838110613f335750505f910152565b8181015183820152602001613f24565b613f78613cae9392613f6a60405194859263a9059cbb60e01b602085015260248401613823565b03601f1981018452836136d7565b615851565b6040519060205f8184019463095ea7b360e01b865260018060a01b03169485602486015281604486015260448552613fb66064866136d7565b84519082855af15f513d8261400a575b505015613fd257505050565b613f78613cae936040519063095ea7b360e01b602083015260248201525f6044820152604481526140046064826136d7565b82615851565b90915061402757506001600160a01b0381163b15155b5f80613fc6565b600114614020565b91909160205f60405193614066856140588582019363095ea7b360e01b85528960248401613823565b03601f1981018752866136d7565b84519082855af15f513d826140c1575b50501561408257505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044808501919091528352613cae92613f78906140046064826136d7565b9091506140de57506001600160a01b0381163b15155b5f80614076565b6001146140d7565b600481511061427a5760208101516001600160e01b0319169062461bcd60e51b82146141bd5750634e487b7160e01b810361414b575060405161412a6040826136d7565b600e81526d50616e69632875696e743235362960901b602082015290600290565b633a7be37b60e01b14614188576040516141666040826136d7565b601081526f2ab732bc3832b1ba32b21032b93937b960811b6020820152905f90565b6040516141966040826136d7565b6014815273496e76616c6964546f74616c536861726573282960601b602082015290600390565b905060448151101561420157506040516141d86040826136d7565b6017815276115c9c9bdc8a1cdd1c9a5b99ca481b585b199bdc9b5959604a1b6020820152905f90565b60048101518101602481019190602090829003126103dc576024810151906001600160401b0382116103dc5701816043820112156103dc5760248101516142478161383e565b9261425560405194856136d7565b818452604483830101116103dc57614274916044602085019101613f22565b90600190565b506040516142896040826136d7565b60158152742932bb32b93a103bb4ba34103737903932b0b9b7b760591b6020820152905f90565b6142b86151e3565b6005545f90829080614398575b50506004545f546001600160a01b0391821693916142e791839186911661402f565b6004546001600160a01b0316803b156103dc57604051631f72642160e31b8152915f918391829084908290614320903060048401613823565b03925af19081614383575b5061437f575461434492506001600160a01b0316613f7d565b60405162461bcd60e51b8152602060048201526013602482015272111a5cdd1c9a589d5d1a5bdb8819985a5b1959606a1b6044820152606490fd5b5050565b6143909192505f906136d7565b5f905f61432b565b90919250600954906143aa83836137af565b90670de0b6b3a7640000820291808304670de0b6b3a76400001490151715610edd576143d5916137f8565b9081156144685750906143ed6143f9926008546137af565b600855600954906137af565b905f60095562093a804204805f52601c60205260405f20541561442e575b600854905f52601c60205260405f20555f806142c5565b601b54600160401b811015610ec95780600161444f9201601b55601b613651565b81549060031b9083821b915f19901b1916179055614417565b905061447492506137af565b600955565b5f516020615ac35f395f51905f52546001600160a01b0316330361449957565b63118cdaa760e01b5f523360045260245ffd5b6001600160a01b0381165f9081525f516020615a635f395f51905f52602052604090205460ff1661452c576001600160a01b03165f8181525f516020615a635f395f51905f5260205260408120805460ff191660011790553391905f516020615aa35f395f51905f52905f516020615a435f395f51905f529080a4600190565b505f90565b6001600160a01b0381165f9081525f516020615b035f395f51905f52602052604090205460ff1661452c576001600160a01b03165f8181525f516020615b035f395f51905f5260205260408120805460ff191660011790553391905f516020615a435f395f51905f528180a4600190565b5f8181525f516020615b835f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff1661462d575f8181525f516020615b835f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291905f516020615a435f395f51905f529080a4600190565b50505f90565b5f8181525f516020615b835f395f51905f52602090815260408083206001600160a01b038616845290915290205460ff161561462d575f8181525f516020615b835f395f51905f52602090815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60025f516020615bc35f395f51905f5254146146f85760025f516020615bc35f395f51905f5255565b633ee5aeb560e01b5f5260045ffd5b80548210156124e0575f5260205f209060011b01905f90565b80546001600160801b031660809290921b6001600160801b031916919091179055565b61474b6151e3565b6001600160a01b03165f908152600a602052604090206002810160808190525460038201805460e09290921c9392909162093a8042049160048101916001600160401b03168310614c675764ffffffffff60015460a01c166147ac81613ef0565b5f195f928554908a5b8281106148c0575b5050505f198103614864575b505050508054945b85811080614848575b156147ff5760018101809111156147d157634e487b7160e01b5f52601160045260245ffd5b60805180546001600160e01b031660e09290921b6001600160e01b0319169190911790555081546001600160401b0319166001600160401b039091161790559050613cae61537c565b506148538183614707565b50546001600160801b0316156147da565b8281116147c957614875818361379b565b51908161488c575b614887915061391b565b614864565b60018701808811610edd57614887926148bb916001600160401b03906148b39085906137af565b1690876158ea565b61487d565b6148ca8189614707565b5080546001600160801b038116918215614c535760018101546001600160401b031691828d10614c4a576149029060801c8094613816565b9280614aa7575b505f905581614928575b505060018101809111610edd57915b916147b5565b5f9d959a979b939c949699929d98919852601960205260018060401b0360405f2054165b6001600160401b03811690888211614a9157505f908152601960205260409020546001600160401b03168061494c579c919895939b929a9699949c9790975b8a6001600160401b03821615614a1b575b6149ae916001600160401b0316613816565b5f19810191908211610edd5783821015614a08575b6149d7906149d1838961379b565b516137af565b6149e1828861379b565b52848110614a00575b8681116149f8575b80614913565b95505f6149f2565b9350836149ea565b90505f198301838111610edd57906149c3565b505064ffffffffff60015460a01c1662093a8081029080820462093a801490151715610edd57614a4b90426137af565b8a614a55826158a9565b91821115614a88575062093a7f198101908111610edd578a6149ae915b62093a8090046001600160401b0316915061499c565b6149ae91614a72565b90509c919895939b929a9699949c97909761498b565b614abb6001600160401b03613b2785613989565b608080515460018e01548e5460075494936001600160801b038216936001600160701b031692849290911c9080861115614c4257614af99086613816565b925b819380151580614c39575b614c17575b50505080614bd7575b5090916001600160801b038311612d02576001600160801b038211612d025760018f01558d546001600160801b0319166001600160801b03928316178e55614b5d91168d614720565b60075560805154614b7b90829060701c6001600160701b03166137af565b6080518054600160701b600160e01b0319811660709390931b600160701b600160e01b03169290921790556001600160701b03918291614bbd91908316613816565b161660018060701b0319608051541617608051555f614909565b808210614bff575090614bed81614bf393613816565b93613816565b915f915b91905f614b14565b93614c0f925081614bed91613816565b905f90614bf7565b614c30939450670de0b6b3a764000091613c25916137e5565b905f8080614b0b565b50811515614b06565b505f92614afb565b505050506147bd565b50505060018101809111610edd5791614922565b63b7d0949760e01b5f5260045ffd5b6001600160a01b03165f908152600a60205260409020600754815460085460018401805493946001600160801b03841694909392919080831115614d9957614cbe9083613816565b925b60801c9280151580614d83575b614d57575b505582614d20575b6001600160801b038311612d02576001600160801b038111612d025781546001600160801b0319166001600160801b03938416178255614d1b921690614720565b600755565b90929190818110614d4157906122e981614d3993613816565b915f91614cda565b614bed81614d50939594613816565b905f614cda565b92670de0b6b3a7640000613c25614d7c939560018060701b03600289015416906137e5565b915f614cd2565b5060028501546001600160701b03161515614ccd565b505f92614cc0565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606480830193909352918152613cae91613f786084836136d7565b905f9280155f14614e3457505f5b808210614e0a575b505081614e0791613816565b91565b614e15929350613816565b81811115614e2b5750614e07815b91905f614dfb565b614e0790614e23565b633b9aca008102908104633b9aca0003610edd57614e55600b5480926137af565b5f19810191908211610edd57614e6a916137f8565b614df3565b90815264ffffffffff909116602082015260400190565b90614e9082614c76565b5f8054600354919391614eb19184916001600160a01b03908116911661402f565b60035460015460a01c64ffffffffff16906001600160a01b0316803b156103dc57604051630f069e4160e01b8152915f918391829084908290614ef8908a60048401614e6f565b03925af180156105945761503e575b506001600160a01b0316808352600a60205260408320600281018054929491926001600160701b039081168582160190811161502a5781546001600160701b0319166001600160701b039190911617905560015462093a8060a09190911c64ffffffffff168181029291811591840414171561500a5783614f9a614f93614f8e85426137af565b6158a9565b93426137af565b83111561501e575062093a7f19820191821161500a57509082614fcd925b62093a8090046001600160401b0316916158ea565b614fd9816005546137af565b6005556040519081527f5548c837ab068cf56a2c2479df0882a4922fd203edb7517321831d95078c5f6260203392a3565b634e487b7160e01b81526011600452602490fd5b9050614fcd9291614fb8565b634e487b7160e01b83526011600452602483fd5b61504b9193505f906136d7565b5f915f614f07565b601b5491908261506357505f9150565b601b54156124e057601b5f527f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc15481106151dd575f198301928311610edd575f9280600181166151c75760011c9190915b915b60018501808611610edd5781111561519857816150d284613639565b90549060031b1c145f146151035750506150ed919250613639565b90549060031b1c5f52601c60205260405f205490565b8161510f849394613639565b90549060031b1c115f1461517257505b600161512b82866137af565b166151455761513a81856137af565b60011c5b91906150b6565b61514f81856137af565b60011c600181018091111561513e57634e487b7160e01b5f52601160045260245ffd5b908261517d82613639565b90549060031b1c10615190575b5061511f565b93505f61518a565b91509291926151a682613639565b90549060031b1c11156151bd57506150ed90613639565b6150ed9150613639565b60011c60018101809111610edd579190916150b4565b505f9150565b6040519081826020601a549283815201601a5f5260205f20925f5b8181106152c9575050615213925003836136d7565b601754805b83518110156152c35761522b818561379b565b51805f52601860205260405f20548142101561524c575b5050600101615218565b815f52601860205260405f2054615291575b505080821461526f575b5f80615242565b9061528960019161528160175461391b565b60175561391b565b919050615268565b806152a16152ac92600554613816565b6005556006546137af565b6006555f5260186020525f60408120555f8061525e565b50509050565b84548352600194850194879450602090930192016151fe565b90919081811115615318576152fa916117fe91613816565b633b9aca00820291808304633b9aca001490151715610edd57101590565b50506152fa5f6117fe565b905f9160048101906002825491015460e01c915b81831061534357505050565b909291936153518583614707565b505460801c90811561537357600191615369916137af565b9401919290615337565b94509192505050565b60035460405163719f308960e01b8152306004820152905f90829060249082906001600160a01b03165afa908115610594575f91615773575b5064ffffffffff60015460a01c1662093a8081029080820462093a801490151715610edd576153f16153ea614f8e83426137af565b91426137af565b8111156157695762093a7f198101908111610edd5762093a80905b045f5b8251811015615761576020615424828561379b565b51015162093a8064ffffffffff91821690810490911691904210615471575f9182526019602052604090912080546001600160401b0319166001600160401b03841617905560010161540f565b505050505b5f546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610594575f9161572f575b50600354604051633ccfd60b60e01b815290602090829060049082905f906001600160a01b03165af19081615700575b506154e75750565b5f546040516370a0823160e01b81523060048201526001600160a01b0390911691602082602481865afa8015610594575f906156cc575b6155289250613816565b615537600654600954906137af565b6040516370a0823160e01b81523060048201529290602084602481855afa938415610594575f94615698575b505f93818111615685575b505060035460405163089cc3b760e31b81526001600160a01b039091169190602081600481865afa908115610594575f91615653575b508410156155cb575b50505f516020615c235f395f51905f529150602090604051908152a1565b6155d691849161402f565b60018060a01b03600354169164ffffffffff60015460a01c16833b156103dc57615619935f9283604051809781958294630f069e4160e01b845260048401614e6f565b03925af1908115610594575f516020615c235f395f51905f5292602092615643575b8192506155ad565b5f61564d916136d7565b5f61563b565b90506020813d60201161567d575b8161566e602093836136d7565b810103126103dc57515f6155a4565b3d9150615661565b615690929450613816565b915f8061556e565b9093506020813d6020116156c4575b816156b4602093836136d7565b810103126103dc5751925f615563565b3d91506156a7565b506020823d6020116156f8575b816156e6602093836136d7565b810103126103dc57615528915161551e565b3d91506156d9565b6020813d602011615727575b81615719602093836136d7565b810103126103dc57516154df565b3d915061570c565b90506020813d602011615759575b8161574a602093836136d7565b810103126103dc57515f6154af565b3d915061573d565b505050615476565b62093a809061540c565b90503d805f833e61578481836136d7565b8101906020818303126103dc578051906001600160401b0382116103dc570181601f820112156103dc578051906157ba826136fa565b926157c860405194856136d7565b82845260208085019360061b830101918183116103dc57602001925b8284106157f557505050505f6153b5565b6040848303126103dc5760408051919082016001600160401b03811183821017610ec9576040528451906001600160701b03821682036103dc578260209260409452615842838801613d1f565b838201528152019301926157e4565b905f602091828151910182855af115610594575f513d6158a057506001600160a01b0381163b155b6158805750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415615879565b62093a80810462093a8081029080820462093a801490151715610edd5762093a806158dd9206155f146158e0575f906137af565b90565b62093a80906137af565b600401805491929091806159b6575b5060405192615907846136bc565b6001600160801b031683525f602084019081526001600160401b0390911660408401908152825491929091600160401b811015610ec95761594d91600182018155614707565b9390936159a3575183546001600160801b0319166001600160801b03918216178455915160019261597f911684614720565b818060401b0390511691019060018060401b031660018060401b0319825416179055565b634e487b7160e01b5f525f60045260245ffd5b5f198101908111610edd576159cb9083614707565b5060018101546001600160401b03908116908316036158f957805490936001600160801b039350839250615a009183166137af565b83546001600160801b031916911691909116179055565b60ff5f516020615c435f395f51905f525460401c1615615a3357565b631afcd79f60e31b5f5260045ffdfe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dcefab08a000590e672d943fcf088128d1be97c1c08b29f5e8036c045c753e7f462229496573be0b0846a2fb48a94de962b501adb0b8eaf7f99924b10a81a19fe362a445c70d77815b624f5a6cc74953d94aaf7101c9d0facdcff0dac594b80ce9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930090ff0fdc2a5e2f52090b2c8a629804c58d5c1156b5405c8437a00da5abba239cb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92965d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f001a24d9e293955b2f174e8efe4262a5c3d06777298ea45a1a260bfef613edf4e01a82baf2b928242f69f7147fb92490c6288d044f7257b88817e6284f1eec0f150543f5a965a495a7e9851f0c93e6a59699d038592d1ea9f4396bce934929efd0f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220ab9e9e4f623cf1acbdd6bc9a3bc6625f16ab951a1b3791ceb8f89f51862102ca64736f6c634300081e0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly stateMutability: "nonpayable";
@@ -283,6 +283,21 @@ export declare class RAACLiquidLocker__factory extends ContractFactory {
283
283
  }];
284
284
  readonly name: "DepositedToGauge";
285
285
  readonly type: "event";
286
+ }, {
287
+ readonly anonymous: false;
288
+ readonly inputs: readonly [{
289
+ readonly indexed: true;
290
+ readonly internalType: "address";
291
+ readonly name: "_controller";
292
+ readonly type: "address";
293
+ }, {
294
+ readonly indexed: true;
295
+ readonly internalType: "address";
296
+ readonly name: "_gauge";
297
+ readonly type: "address";
298
+ }];
299
+ readonly name: "GaugePowerRemoved";
300
+ readonly type: "event";
286
301
  }, {
287
302
  readonly anonymous: false;
288
303
  readonly inputs: readonly [{
@@ -743,6 +758,16 @@ export declare class RAACLiquidLocker__factory extends ContractFactory {
743
758
  }];
744
759
  readonly stateMutability: "view";
745
760
  readonly type: "function";
761
+ }, {
762
+ readonly inputs: readonly [];
763
+ readonly name: "DELEGATE_ROLE";
764
+ readonly outputs: readonly [{
765
+ readonly internalType: "bytes32";
766
+ readonly name: "";
767
+ readonly type: "bytes32";
768
+ }];
769
+ readonly stateMutability: "view";
770
+ readonly type: "function";
746
771
  }, {
747
772
  readonly inputs: readonly [];
748
773
  readonly name: "FEE_PRECISION";
@@ -773,6 +798,16 @@ export declare class RAACLiquidLocker__factory extends ContractFactory {
773
798
  }];
774
799
  readonly stateMutability: "view";
775
800
  readonly type: "function";
801
+ }, {
802
+ readonly inputs: readonly [];
803
+ readonly name: "OPERATOR_ROLE";
804
+ readonly outputs: readonly [{
805
+ readonly internalType: "bytes32";
806
+ readonly name: "";
807
+ readonly type: "bytes32";
808
+ }];
809
+ readonly stateMutability: "view";
810
+ readonly type: "function";
776
811
  }, {
777
812
  readonly inputs: readonly [];
778
813
  readonly name: "PAUSER_ROLE";
@@ -793,6 +828,16 @@ export declare class RAACLiquidLocker__factory extends ContractFactory {
793
828
  }];
794
829
  readonly stateMutability: "view";
795
830
  readonly type: "function";
831
+ }, {
832
+ readonly inputs: readonly [{
833
+ readonly internalType: "address";
834
+ readonly name: "_gauge";
835
+ readonly type: "address";
836
+ }];
837
+ readonly name: "addGauge";
838
+ readonly outputs: readonly [];
839
+ readonly stateMutability: "nonpayable";
840
+ readonly type: "function";
796
841
  }, {
797
842
  readonly inputs: readonly [{
798
843
  readonly internalType: "uint256";
@@ -1338,6 +1383,20 @@ export declare class RAACLiquidLocker__factory extends ContractFactory {
1338
1383
  }];
1339
1384
  readonly stateMutability: "view";
1340
1385
  readonly type: "function";
1386
+ }, {
1387
+ readonly inputs: readonly [{
1388
+ readonly internalType: "address";
1389
+ readonly name: "_controller";
1390
+ readonly type: "address";
1391
+ }, {
1392
+ readonly internalType: "address";
1393
+ readonly name: "_gauge";
1394
+ readonly type: "address";
1395
+ }];
1396
+ readonly name: "removePowerFromGauge";
1397
+ readonly outputs: readonly [];
1398
+ readonly stateMutability: "nonpayable";
1399
+ readonly type: "function";
1341
1400
  }, {
1342
1401
  readonly inputs: readonly [];
1343
1402
  readonly name: "renounceOwnership";
@@ -1564,6 +1623,12 @@ export declare class RAACLiquidLocker__factory extends ContractFactory {
1564
1623
  readonly outputs: readonly [];
1565
1624
  readonly stateMutability: "nonpayable";
1566
1625
  readonly type: "function";
1626
+ }, {
1627
+ readonly inputs: readonly [];
1628
+ readonly name: "updateGlobals";
1629
+ readonly outputs: readonly [];
1630
+ readonly stateMutability: "nonpayable";
1631
+ readonly type: "function";
1567
1632
  }, {
1568
1633
  readonly inputs: readonly [{
1569
1634
  readonly internalType: "uint256";
@@ -14,7 +14,7 @@ export declare class RAACMaturityVault__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): RAACMaturityVault__factory;
17
- static readonly bytecode = "0x6080806040523460aa575f516020611f6e5f395f51905f525460ff8160401c16609b576002600160401b03196001600160401b038216016049575b604051611ebf90816100af8239f35b6001600160401b0319166001600160401b039081175f516020611f6e5f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80603a565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c8063018ee9b714610e005780630c340a2414610dd85780631959a00214610d755780631e83409a14610d505780632e84deff14610d285780632f4f21e214610ce15780633af32abf14610ca45780633fb266fc14610c7c5780634bde38c814610c5457806362f384ad14610bba5780636386c1c714610b8b5780636572872814610b5f5780636a42372714610b42578063715018a614610aee57806374b2e90b14610ace5780637d1c581914610ab65780638da5cb5b14610a82578063a293da0f14610a1a578063a6d150e014610847578063b2cc17391461081f578063b42652e9146107d3578063b6b55f2514610793578063b76719b814610773578063c9f6707214610727578063cdd78cfc1461070a578063d7c41c79146104e9578063dd035223146103bb578063e36a6b8314610363578063e4830153146102fc578063ed4a7084146102d5578063f2fde38b146102ac578063f3fef3a314610278578063f49b218b14610256578063fa09e630146102135763fb9321081461019a575f80fd5b3461020f57604036600319011261020f576101b3610f32565b602435335f52600660205260ff60405f205416156102015780156101f2576101f0916101eb8260018060a01b035f54168330916118e8565b61148d565b005b63e320176b60e01b5f5260045ffd5b6282b42960e81b5f5260045ffd5b5f80fd5b3461020f57602036600319011261020f576101f061022f610f32565b6102383361161b565b335f908152600560205260409020546001600160801b031690611b42565b3461020f575f36600319011261020f576020610270611232565b604051908152f35b3461020f57604036600319011261020f57610291610f32565b60243580156101f2576101f0916102a73361161b565b611b42565b3461020f57602036600319011261020f576101f06102c8610f32565b6102d0611b0f565b6111d4565b3461020f575f36600319011261020f575f546040516001600160a01b039091168152602090f35b3461020f57602036600319011261020f57600435610318611b0f565b631dcd65008111610354576020817f9f143d1158804dce75cd6feac5b8fde3c0d57c70d176355a6ab516a2524fcb9f92600755604051908152a1005b631f3b85d360e01b5f5260045ffd5b3461020f57602036600319011261020f5760043561037f611b0f565b6305f5e1008111610354576020817fc69cbab065ddb19d4ee1f9cfe242c82b8facbd1e93c89e5830dfe0d4fb25985392600855604051908152a1005b3461020f57602036600319011261020f5760043563ffffffff81169081810361020f576002546001600160a01b0316331415806104c8575b61020157816020917f4e8e44f9ae8346a3518fe6bfc29de80ad178df8c4db6d6f5cc91b7e79c8a64c8931561044f575b600a805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055604051908152a1005b610457611303565b61045f61118c565b65ffffffffffff6060820151169081421061047c575b5050610423565b61048a61049b924290610fb1565b90516001600160801b031690610fd2565b806104b9575b50600a80546001600160801b03191690558480610475565b6104c290611c2f565b846104a1565b505f516020611e2a5f395f51905f52546001600160a01b03163314156103f3565b3461020f5760c036600319011261020f57610502610f32565b6024356001600160a01b0381169081900361020f576044356001600160a01b0381169081900361020f576064356001600160a01b0381169081900361020f576084359160a435935f516020611e6a5f395f51905f52549560ff8760401c16159660018060401b03811680159081610702575b60011490816106f8575b1590816106ef575b506106e0576001600160401b031981166001175f516020611e6a5f395f51905f5255876106b8575b506105b7611dc1565b6105bf611dc1565b6105c8336111d4565b6001600160a01b031680156106a95781156106a95782156106a95783156106a957631dcd65008511610354576305f5e1008611610354575f80546001600160a01b0319908116929092179055600180548216929092179091556009805482169290921790915560028054821692909217909155600a80549091166102a360871b17905560075560085561065757005b60ff60401b195f516020611e6a5f395f51905f5254165f516020611e6a5f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63d92e233d60e01b5f5260045ffd5b6001600160481b0319166001600160401b01175f516020611e6a5f395f51905f5255876105ae565b63f92ee8a960e01b5f5260045ffd5b90501589610586565b303b15915061057e565b899150610574565b3461020f575f36600319011261020f576020600754604051908152f35b3461020f575f36600319011261020f576080600a5460405190600180841b038116825263ffffffff81841c16602083015265ffffffffffff8160a01c16604083015260d01c6060820152f35b3461020f575f36600319011261020f57602060035460801c604051908152f35b3461020f57602036600319011261020f5760043580156101f2576001546101f091906107cd908290309033906001600160a01b03166118e8565b3361192c565b3461020f57602036600319011261020f576101f06107ef610f32565b6107f83361161b565b335f9081526005602052604090205461081a906001600160801b031682611b42565b6117fb565b3461020f575f36600319011261020f576004546040516001600160801b039091168152602090f35b3461020f57604036600319011261020f576004356001600160401b03811161020f573660238201121561020f57806004013561088281610f9a565b916108906040519384610f77565b8183526024602084019260051b8201019036821161020f57602401915b8183106109fa57836024356001600160401b03811161020f573660238201121561020f5780600401356108df81610f9a565b916108ed6040519384610f77565b8183526024602084019260051b8201019036821161020f57602401915b8183106109e15750505061091c611b0f565b81518151036109d2575f5b82518110156101f0576001600160a01b036109428285611142565b5116156106a9578061095660019284611142565b511515828060a01b036109698387611142565b51165f52600660205260405f209060ff80198354169116179055818060a01b036109938286611142565b51167f08b2c0469ecd1d7a21d7e1492f0fc75fc7e8e0fa4fdf4275949c90875f5ebdf560206109c28487611142565b511515604051908152a201610927565b63251f56a160e21b5f5260045ffd5b8235801515810361020f5781526020928301920161090a565b82356001600160a01b038116810361020f578152602092830192016108ad565b3461020f57602036600319011261020f57610a33610f32565b610a3b611b0f565b6001600160a01b031680156106a957600980546001600160a01b031916821790557f43412ddbc9c884a0be720e21657a878716d21710438ad24f74f7e99699df82fc5f80a2005b3461020f575f36600319011261020f575f516020611e2a5f395f51905f52546040516001600160a01b039091168152602090f35b3461020f575f36600319011261020f576101f0611303565b3461020f575f36600319011261020f57602060045460c01c604051908152f35b3461020f575f36600319011261020f57610b06611b0f565b5f516020611e2a5f395f51905f5280546001600160a01b031981169091555f906001600160a01b03165f516020611e4a5f395f51905f528280a3005b3461020f575f36600319011261020f576020600854604051908152f35b3461020f575f36600319011261020f5760045460405160809190911c6001600160401b03168152602090f35b3461020f57602036600319011261020f576040610bae610ba9610f32565b611035565b82519182526020820152f35b3461020f57602036600319011261020f57610bd3610f32565b60025490336001600160a01b038316141580610c33575b610201576001600160a01b03169081156106a9576001600160a01b03191681176002557f49e8ccdfbc26d458bf9e9a05311a53187820bf3c43fc5da574ddfb40e87135395f80a2005b505f516020611e2a5f395f51905f52546001600160a01b0316331415610bea565b3461020f575f36600319011261020f576009546040516001600160a01b039091168152602090f35b3461020f575f36600319011261020f576003546040516001600160801b039091168152602090f35b3461020f57602036600319011261020f576001600160a01b03610cc5610f32565b165f526006602052602060ff60405f2054166040519015158152f35b3461020f57604036600319011261020f57610cfa610f32565b60243580156101f2576001546101f09290610d23908390309033906001600160a01b03166118e8565b61192c565b3461020f575f36600319011261020f576001546040516001600160a01b039091168152602090f35b3461020f57602036600319011261020f576101f0610d6c610f32565b61081a3361161b565b3461020f57602036600319011261020f576001600160a01b03610d96610f32565b165f526005602052608060405f206001815491015460405191600180851b0381168352831c602083015260018060c01b038116604083015260c01c6060820152f35b3461020f575f36600319011261020f576002546040516001600160a01b039091168152602090f35b3461020f57604036600319011261020f57610e19610f32565b335f52600660205260ff60405f2054161561020157602090610e39611303565b610e50610e44611232565b60035460801c90610fb1565b906040518281527fc9695243a805adb74c91f28311176c65b417e842d5699893cef56d18bfa48cba843392a281610e8b575b50604051908152f35b610eae9082908360075480610eed575b505060085480610eb4575b50503061148d565b82610e82565b91610ed3633b9aca00610ecb83610ee69596610fd2565b048092610fb1565b5f549093906001600160a01b0316611444565b8480610ea6565b610f2a929350633b9aca0091610f0291610fd2565b5f546009549290910491610f249183916001600160a01b039081169116611444565b84610fb1565b908386610e9b565b600435906001600160a01b038216820361020f57565b608081019081106001600160401b03821117610f6357604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b03821190821017610f6357604052565b6001600160401b038111610f635760051b60200190565b91908203918211610fbe57565b634e487b7160e01b5f52601160045260245ffd5b81810292918115918404141715610fbe57565b8115610fef570490565b634e487b7160e01b5f52601260045260245ffd5b6001600160801b039182169082160391908211610fbe57565b6001600160801b039182169082160191908211610fbe57565b60018060a01b03165f52600560205260405f20906040519161105683610f48565b80546001600160801b03811680855260809190911c602085019081526001909201546001600160c01b038116604086015260c081811c6060870181905260045493929184901c11156110d1575050925190519192506110c1916001600160801b03908116911661101c565b5f916001600160801b0390911690565b6110f3926110ee926001600160801b039283169290911690611a58565b611ade565b92516001600160801b0390811690841681111561113a575b906111198461112a93611003565b90516001600160801b03169061101c565b6001600160801b03928316921690565b92508261110b565b80518210156111565760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b600a80546001600160801b0319166001600160801b0392909216919091179055565b6040519061119982610f48565b600a546001600160801b0381168352608081901c63ffffffff16602084015260a081901c65ffffffffffff16604084015260d01c6060830152565b6001600160a01b0316801561121f575f516020611e2a5f395f51905f5280546001600160a01b0319811683179091556001600160a01b03165f516020611e4a5f395f51905f525f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b602461123c61118c565b5f9063ffffffff6020820151166112d1575b505f546040516370a0823160e01b81523060048201529260209184919082906001600160a01b03165afa80156112c6575f90611292575b61128f9250610fb1565b90565b506020823d6020116112be575b816112ac60209383610f77565b8101031261020f5761128f9151611285565b3d915061129f565b6040513d5f823e3d90fd5b65ffffffffffff6060820151168042106112ec575b5061124e565b6112fc925061048a904290610fb1565b5f806112e6565b61130b61118c565b602081019063ffffffff825116611320575050565b6060810165ffffffffffff815116428111611422575b604083019065ffffffffffff82511690818110155f146114175761136e9161135d91610fb1565b84516001600160801b031690610fd2565b928361137c575b5050505050565b4265ffffffffffff169091525161140d936113d19163ffffffff91906113aa906001600160801b031661116a565b5116600a805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055565b600a805491516001600160a01b039092164260a01b65ffffffffffff60a01b161760d09290921b6001600160d01b031916919091179055611c2f565b5f80808080611375565b505061136e5f61135d565b5042611336565b6001600160a01b039091168152602081019190915260400190565b61147961147e939261146b60405194859263a9059cbb60e01b602085015260248401611429565b03601f198101845283610f77565b611d69565b565b91908201809211610fbe57565b60207fc1d32ad5cca423e7dda2123dbf8c482f8e77d00b631c06e903a47f2cec1334df916114b9611303565b6114c161118c565b8281019063ffffffff825116155f146114f25750506114df84611c2f565b6040519384526001600160a01b031692a2565b61156e63ffffffff606083019365ffffffffffff855116804210155f146115ac575080516001600160801b039061152f906110ee9085168c610fe5565b1684525b6113aa604085019465ffffffffffff421686526115538484511642611480565b65ffffffffffff8116909752516001600160801b031661116a565b51600a80546001600160a01b031660a09290921b65ffffffffffff60a01b169190911760d09290921b6001600160d01b0319169190911790556114df565b6115ce6115bd6115d4924290610fb1565b86516001600160801b031690610fd2565b8a611480565b81516001600160801b03916115f0916110ee9190861690610fe5565b168452611533565b80546001600160801b031660809290921b6001600160801b031916919091179055565b611623611303565b6001600160a01b03165f818152600560205260409081902090519161164783610f48565b81546001600160801b03808216808652608092831c602087019081526001909501546001600160c01b038116604088015260c081811c60608901819052600454948516979585901c6001600160401b031696959490911c11156117435750509351935161147e946001929161171e916116cc916001600160801b03908116911661101c565b604051926116d984610f48565b5f808552608086901b869003928316602080870191825260408088019a8b5260608801998a5293835260059052919020935184548319169083161784555116826115f8565b9251915160c01b6001600160c01b0319166001600160c01b0390921691909117910155565b926117606110ee61147e989388600197888060801b031691611a58565b91848060801b039051169283858060801b03841610156117f3575b61179d9061178d8461171e9596611003565b90868060801b039051169061101c565b90604051936117ab85610f48565b608086901b869003908116855291821660208086019182526040808701998a52606087019889525f9384526005909152909120935184548319169083161784555116826115f8565b83925061177b565b335f52600560205260405f205460801c60035460018060801b0319611823838360801c610fb1565b60801b169060018060801b031617600355335f52600560205260405f2060018060801b038154169055611860818360018060a01b035f5416611444565b6001546001600160a01b031690813b1561020f575f8092602460405180958193630852cd8d60e31b83528660048401525af19081156112c6577f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd987068926118d3926118d8575b50604051918291339583611429565b0390a2565b5f6118e291610f77565b5f6118c4565b6040516323b872dd60e01b60208201526001600160a01b03928316602482015292909116604483015260648083019390935291815261147e91611479608483610f77565b9060207fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9161195a8461161b565b6003548060801c906119738261196e611232565b610fb1565b838110611a395750611a2b6110ee5f93611a166110ee879a5b60018060a01b03169a8b5f5260058a526119c36119b36110ee60405f205460801c84611480565b8d5f5260058c5260405f206115f8565b5f8c815260058b5260409020546119e7906110ee906001600160801b03168a611480565b5f8d815260058c526040902080546001600160801b03929092166001600160801b031992831617905593611480565b60801b16936001600160801b03938416611480565b1617600355604051908152a2565b916110ee611a2b91611a166110ee611a518789610fb1565b969a61198c565b906001600160801b031680611ad85750600160801b915b6001600160801b031680611ad25750600160801b905b6001600160801b0316611a988382610fd2565b8215610fef57829006611ab75761128f92611ab291610fd2565b610fe5565b611ac492611ab291610fd2565b60018101809111610fbe5790565b90611a85565b91611a6f565b6001600160801b038111611af8576001600160801b031690565b6306dfcc6560e41b5f52608060045260245260445ffd5b5f516020611e2a5f395f51905f52546001600160a01b03163303611b2f57565b63118cdaa760e01b5f523360045260245ffd5b90335f52600560205260018060801b0360405f2054168111611c2057335f908152600560205260409020547f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb916118d3916001600160801b0390611ba99083908316610fb1565b335f90815260056020526040902080546001600160801b0319166001600160801b0393909216831691909117905560035490611be783838316610fb1565b6001600160801b0319909216911617600355600154611c1290829086906001600160a01b0316611444565b604051918291339583611429565b631e9acf1760e31b5f5260045ffd5b60045490608082901c6001600160401b03908116600101908111610fbe57600160801b600160c01b03608091821b16600160801b600160c01b0319841681176004556003546001600160801b03811694921c92848110611cd157506001600160801b031993611ca4936110ee93509150611480565b60801b1660035560048054600160801b600160c01b03811660409190911b6001600160c01b031916179055565b919390929091611d16916001600160801b03611ced8386610fb1565b16906001600160801b031990611d08906110ee908590611480565b60801b161760035582610fb1565b908160801b91808304600160801b1490151715610fbe576001600160801b0391611d5791611d48916110ee9190610fe5565b6001600160801b038516611dec565b169160018060c01b0319161717600455565b905f602091828151910182855af1156112c6575f513d611db857506001600160a01b0381163b155b611d985750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415611d91565b60ff5f516020611e6a5f395f51905f525460401c1615611ddd57565b631afcd79f60e31b5f5260045ffd5b906001600160801b038216908115611e23576001600160801b0316908115611e1e57611e189250610fd2565b60801c90565b505090565b9150509056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220ddcf5f38b057e7f09f160b8d5f5715f7a88e3ce7e11aaf61daae1c1dddc3720764736f6c634300081e0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00";
17
+ static readonly bytecode = "0x6080806040523460aa575f5160206122d85f395f51905f525460ff8160401c16609b576002600160401b03196001600160401b038216016049575b60405161222990816100af8239f35b6001600160401b0319166001600160401b039081175f5160206122d85f395f51905f525581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80603a565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c9081630c340a2414610f69575080630e5c011e14610e375780631959a00214610dd45780631e83409a14610daf5780632e84deff14610d875780632f4f21e214610d405780633af32abf14610d035780633fb266fc14610cdb5780634bde38c814610cb357806362f384ad14610c195780636386c1c714610bea5780636572872814610bbe5780636a42372714610ba15780636af2a68814610b84578063715018a614610b3057806374b2e90b14610b105780637d1c581914610af85780638da5cb5b14610ac4578063a293da0f14610a5c578063a6d150e014610889578063b2cc173914610861578063b42652e914610815578063b6b55f25146107d5578063b76719b8146107b5578063c9f6707214610769578063cdd78cfc1461074c578063d7c41c791461052b578063dab680dc14610502578063dd035223146103d4578063e36a6b831461037c578063e483015314610315578063ed4a7084146102ee578063f2fde38b146102c5578063f3fef3a314610291578063f49b218b1461026f578063fa09e6301461022c5763fb932108146101b3575f80fd5b34610228576040366003190112610228576101cc610f8c565b602435335f52600660205260ff60405f2054161561021a57801561020b57610209916102048260018060a01b035f5416833091611955565b6114fa565b005b63e320176b60e01b5f5260045ffd5b6282b42960e81b5f5260045ffd5b5f80fd5b3461022857602036600319011261022857610209610248610f8c565b61025133611688565b335f908152600560205260409020546001600160801b031690611db4565b34610228575f36600319011261022857602061028961129f565b604051908152f35b34610228576040366003190112610228576102aa610f8c565b602435801561020b57610209916102c033611688565b611db4565b34610228576020366003190112610228576102096102e1610f8c565b6102e9611d81565b611241565b34610228575f366003190112610228575f546040516001600160a01b039091168152602090f35b3461022857602036600319011261022857600435610331611d81565b631dcd6500811161036d576020817f9f143d1158804dce75cd6feac5b8fde3c0d57c70d176355a6ab516a2524fcb9f92600755604051908152a1005b631f3b85d360e01b5f5260045ffd5b3461022857602036600319011261022857600435610398611d81565b6305f5e100811161036d576020817fc69cbab065ddb19d4ee1f9cfe242c82b8facbd1e93c89e5830dfe0d4fb25985392600855604051908152a1005b346102285760203660031901126102285760043563ffffffff811690818103610228576002546001600160a01b0316331415806104e1575b61021a57816020917f4e8e44f9ae8346a3518fe6bfc29de80ad178df8c4db6d6f5cc91b7e79c8a64c89315610468575b600a805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055604051908152a1005b610470611370565b6104786111f9565b65ffffffffffff60608201511690814210610495575b505061043c565b6104a36104b492429061100b565b90516001600160801b03169061102c565b806104d2575b50600a80546001600160801b0319169055848061048e565b6104db90611eb9565b846104ba565b505f5160206121945f395f51905f52546001600160a01b031633141561040c565b34610228575f36600319011261022857604061051c611ac5565b84519182526020820152915050f35b346102285760c036600319011261022857610544610f8c565b6024356001600160a01b03811690819003610228576044356001600160a01b03811690819003610228576064356001600160a01b03811690819003610228576084359160a435935f5160206121d45f395f51905f52549560ff8760401c16159660018060401b03811680159081610744575b600114908161073a575b159081610731575b50610722576001600160401b031981166001175f5160206121d45f395f51905f5255876106fa575b506105f96120f7565b6106016120f7565b61060a33611241565b6001600160a01b031680156106eb5781156106eb5782156106eb5783156106eb57631dcd6500851161036d576305f5e100861161036d575f80546001600160a01b0319908116929092179055600180548216929092179091556009805482169290921790915560028054821692909217909155600a80549091166102a360871b17905560075560085561069957005b60ff60401b195f5160206121d45f395f51905f5254165f5160206121d45f395f51905f52557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b63d92e233d60e01b5f5260045ffd5b6001600160481b0319166001600160401b01175f5160206121d45f395f51905f5255876105f0565b63f92ee8a960e01b5f5260045ffd5b905015896105c8565b303b1591506105c0565b8991506105b6565b34610228575f366003190112610228576020600754604051908152f35b34610228575f366003190112610228576080600a5460405190600180841b038116825263ffffffff81841c16602083015265ffffffffffff8160a01c16604083015260d01c6060820152f35b34610228575f36600319011261022857602060035460801c604051908152f35b3461022857602036600319011261022857600435801561020b57600154610209919061080f908290309033906001600160a01b0316611955565b33611999565b3461022857602036600319011261022857610209610831610f8c565b61083a33611688565b335f9081526005602052604090205461085c906001600160801b031682611db4565b611868565b34610228575f366003190112610228576004546040516001600160801b039091168152602090f35b34610228576040366003190112610228576004356001600160401b03811161022857366023820112156102285780600401356108c481610ff4565b916108d26040519384610fd1565b8183526024602084019260051b8201019036821161022857602401915b818310610a3c57836024356001600160401b038111610228573660238201121561022857806004013561092181610ff4565b9161092f6040519384610fd1565b8183526024602084019260051b8201019036821161022857602401915b818310610a235750505061095e611d81565b8151815103610a14575f5b8251811015610209576001600160a01b0361098482856111af565b5116156106eb5780610998600192846111af565b511515828060a01b036109ab83876111af565b51165f52600660205260405f209060ff80198354169116179055818060a01b036109d582866111af565b51167f08b2c0469ecd1d7a21d7e1492f0fc75fc7e8e0fa4fdf4275949c90875f5ebdf56020610a0484876111af565b511515604051908152a201610969565b63251f56a160e21b5f5260045ffd5b823580151581036102285781526020928301920161094c565b82356001600160a01b0381168103610228578152602092830192016108ef565b3461022857602036600319011261022857610a75610f8c565b610a7d611d81565b6001600160a01b031680156106eb57600980546001600160a01b031916821790557f43412ddbc9c884a0be720e21657a878716d21710438ad24f74f7e99699df82fc5f80a2005b34610228575f366003190112610228575f5160206121945f395f51905f52546040516001600160a01b039091168152602090f35b34610228575f36600319011261022857610209611370565b34610228575f36600319011261022857602060045460c01c604051908152f35b34610228575f36600319011261022857610b48611d81565b5f5160206121945f395f51905f5280546001600160a01b031981169091555f906001600160a01b03165f5160206121b45f395f51905f528280a3005b34610228575f366003190112610228576020604051620151808152f35b34610228575f366003190112610228576020600854604051908152f35b34610228575f3660031901126102285760045460405160809190911c6001600160401b03168152602090f35b34610228576020366003190112610228576040610c0d610c08610f8c565b61108f565b82519182526020820152f35b3461022857602036600319011261022857610c32610f8c565b60025490336001600160a01b038316141580610c92575b61021a576001600160a01b03169081156106eb576001600160a01b03191681176002557f49e8ccdfbc26d458bf9e9a05311a53187820bf3c43fc5da574ddfb40e87135395f80a2005b505f5160206121945f395f51905f52546001600160a01b0316331415610c49565b34610228575f366003190112610228576009546040516001600160a01b039091168152602090f35b34610228575f366003190112610228576003546040516001600160801b039091168152602090f35b34610228576020366003190112610228576001600160a01b03610d24610f8c565b165f526006602052602060ff60405f2054166040519015158152f35b3461022857604036600319011261022857610d59610f8c565b602435801561020b576001546102099290610d82908390309033906001600160a01b0316611955565b611999565b34610228575f366003190112610228576001546040516001600160a01b039091168152602090f35b3461022857602036600319011261022857610209610dcb610f8c565b61085c33611688565b34610228576020366003190112610228576001600160a01b03610df5610f8c565b165f526005602052608060405f206001815491015460405191600180851b0381168352831c602083015260018060c01b038116604083015260c01c6060820152f35b3461022857602036600319011261022857610e50610f8c565b335f52600660205260ff60405f2054161561021a57602090610e70611370565b610e87610e7b61129f565b60035460801c9061100b565b906040518281527fc9695243a805adb74c91f28311176c65b417e842d5699893cef56d18bfa48cba843392a281610ec2575b50604051908152f35b610ee59082908360075480610f24575b505060085480610eeb575b5050306114fa565b82610eb9565b91610f0a633b9aca00610f0283610f1d959661102c565b04809261100b565b5f549093906001600160a01b03166114b1565b8480610edd565b610f61929350633b9aca0091610f399161102c565b5f546009549290910491610f5b9183916001600160a01b0390811691166114b1565b8461100b565b908386610ed2565b34610228575f366003190112610228576002546001600160a01b03168152602090f35b600435906001600160a01b038216820361022857565b608081019081106001600160401b03821117610fbd57604052565b634e487b7160e01b5f52604160045260245ffd5b601f909101601f19168101906001600160401b03821190821017610fbd57604052565b6001600160401b038111610fbd5760051b60200190565b9190820391821161101857565b634e487b7160e01b5f52601160045260245ffd5b8181029291811591840414171561101857565b8115611049570490565b634e487b7160e01b5f52601260045260245ffd5b6001600160801b03918216908216039190821161101857565b6001600160801b03918216908216019190821161101857565b60018060a01b03165f52600560205260405f2090604051916110b083610fa2565b80546001600160801b038116845260801c602084019081526001909101546001600160c01b0381166040850190815260c09190911c606085019081526110f4611ac5565b5050915190916001600160401b039182169116111561113b57505091519151909161112b916001600160801b039081169116611076565b5f916001600160801b0390911690565b845191516111609261115b926001600160801b0392831692909116611cca565b611d50565b92516001600160801b039081169084168111156111a7575b90611186846111979361105d565b90516001600160801b031690611076565b6001600160801b03928316921690565b925082611178565b80518210156111c35760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b600a80546001600160801b0319166001600160801b0392909216919091179055565b6040519061120682610fa2565b600a546001600160801b0381168352608081901c63ffffffff16602084015260a081901c65ffffffffffff16604084015260d01c6060830152565b6001600160a01b0316801561128c575f5160206121945f395f51905f5280546001600160a01b0319811683179091556001600160a01b03165f5160206121b45f395f51905f525f80a3565b631e4fbdf760e01b5f525f60045260245ffd5b60246112a96111f9565b5f9063ffffffff60208201511661133e575b505f546040516370a0823160e01b81523060048201529260209184919082906001600160a01b03165afa8015611333575f906112ff575b6112fc925061100b565b90565b506020823d60201161132b575b8161131960209383610fd1565b81010312610228576112fc91516112f2565b3d915061130c565b6040513d5f823e3d90fd5b65ffffffffffff606082015116804210611359575b506112bb565b61136992506104a390429061100b565b5f80611353565b6113786111f9565b602081019063ffffffff82511661138d575050565b6060810165ffffffffffff81511642811161148f575b604083019065ffffffffffff82511690818110155f14611484576113db916113ca9161100b565b84516001600160801b03169061102c565b92836113e9575b5050505050565b4265ffffffffffff169091525161147a9361143e9163ffffffff9190611417906001600160801b03166111d7565b5116600a805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055565b600a805491516001600160a01b039092164260a01b65ffffffffffff60a01b161760d09290921b6001600160d01b031916919091179055611eb9565b5f808080806113e2565b50506113db5f6113ca565b50426113a3565b6001600160a01b039091168152602081019190915260400190565b6114e66114eb93926114d860405194859263a9059cbb60e01b602085015260248401611496565b03601f198101845283610fd1565b61209f565b565b9190820180921161101857565b60207fc1d32ad5cca423e7dda2123dbf8c482f8e77d00b631c06e903a47f2cec1334df91611526611370565b61152e6111f9565b8281019063ffffffff825116155f1461155f57505061154c84611eb9565b6040519384526001600160a01b031692a2565b6115db63ffffffff606083019365ffffffffffff855116804210155f14611619575080516001600160801b039061159c9061115b9085168c61103f565b1684525b611417604085019465ffffffffffff421686526115c084845116426114ed565b65ffffffffffff8116909752516001600160801b03166111d7565b51600a80546001600160a01b031660a09290921b65ffffffffffff60a01b169190911760d09290921b6001600160d01b03191691909117905561154c565b61163b61162a61164192429061100b565b86516001600160801b03169061102c565b8a6114ed565b81516001600160801b039161165d9161115b919086169061103f565b1684526115a0565b80546001600160801b031660809290921b6001600160801b031916919091179055565b611690611370565b6001600160a01b03165f81815260056020526040908190209051916116b483610fa2565b81546001600160801b03808216808652608092831c602087019081526001909501546001600160c01b038116604088015260c081811c60608901819052600454948516979585901c6001600160401b031696959490911c11156117b0575050935193516114eb946001929161178b91611739916001600160801b039081169116611076565b6040519261174684610fa2565b5f808552608086901b869003928316602080870191825260408088019a8b5260608801998a529383526005905291902093518454831916908316178455511682611665565b9251915160c01b6001600160c01b0319166001600160c01b0390921691909117910155565b926117cd61115b6114eb989388600197888060801b031691611cca565b91848060801b039051169283858060801b0384161015611860575b61180a906117fa8461178b959661105d565b90868060801b0390511690611076565b906040519361181885610fa2565b608086901b869003908116855291821660208086019182526040808701998a52606087019889525f938452600590915290912093518454831916908316178455511682611665565b8392506117e8565b335f52600560205260405f205460801c60035460018060801b0319611890838360801c61100b565b60801b169060018060801b031617600355335f52600560205260405f2060018060801b0381541690556118cd818360018060a01b035f54166114b1565b6001546001600160a01b031690813b15610228575f8092602460405180958193630852cd8d60e31b83528660048401525af1908115611333577f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd9870689261194092611945575b50604051918291339583611496565b0390a2565b5f61194f91610fd1565b5f611931565b6040516323b872dd60e01b60208201526001600160a01b0392831660248201529290911660448301526064808301939093529181526114eb916114e6608483610fd1565b9060207fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c916119c784611688565b6003548060801c906119e0826119db61129f565b61100b565b838110611aa65750611a9861115b5f93611a8361115b879a5b60018060a01b03169a8b5f5260058a52611a30611a2061115b60405f205460801c846114ed565b8d5f5260058c5260405f20611665565b5f8c815260058b526040902054611a549061115b906001600160801b03168a6114ed565b5f8d815260058c526040902080546001600160801b03929092166001600160801b0319928316179055936114ed565b60801b16936001600160801b039384166114ed565b1617600355604051908152a2565b9161115b611a9891611a8361115b611abe878961100b565b969a6119f9565b611acd6111f9565b6004549160018060801b038316926003549160018060801b0383169260801c918060c01c9463ffffffff602082015116611b05575050565b8065ffffffffffff6060611b4b93015116428111611cb9575b604082015165ffffffffffff16808210611cb0576104a39161100b565b516001600160801b03169061102c565b9081611b55575050565b9195909492939091611b729060801c6001600160401b0316611ea1565b94909392908385808310611ba557505050505061115b611b999160018060801b03936114ed565b165f5f92915b90919293565b90919295939650611bb6838261100b565b8060801b90808204600160801b14901517156110185781611bd691611cc0565b611c6f57611be4838261100b565b8060801b90808204600160801b149015171561101857611c0a61115b83611c109361103f565b88612122565b966001600160801b03881603611c3e575050506001600160801b0390811691611c3890611d50565b16611b9f565b9193509150611c389061115b906001600160801b0390611c5f90869061100b565b16936001600160801b03936114ed565b611c79838261100b565b8060801b90808204600160801b14901517156110185781611c999161103f565b6001810180911161101857611c0a611c1091611d50565b50505f90611b3b565b5042611b1e565b8115611049570690565b906001600160801b031680611d4a5750600160801b915b6001600160801b031680611d445750600160801b905b6001600160801b0316611d1382611d0e858461102c565b611cc0565b611d29576112fc92611d249161102c565b61103f565b611d3692611d249161102c565b600181018091116110185790565b90611cf7565b91611ce1565b6001600160801b038111611d6a576001600160801b031690565b6306dfcc6560e41b5f52608060045260245260445ffd5b5f5160206121945f395f51905f52546001600160a01b03163303611da157565b63118cdaa760e01b5f523360045260245ffd5b90335f52600560205260018060801b0360405f2054168111611e9257335f908152600560205260409020547f9b1bfa7fa9ee420a16e124f794c35ac9f90472acc99140eb2f6447c714cad8eb91611940916001600160801b0390611e1b908390831661100b565b335f90815260056020526040902080546001600160801b0319166001600160801b0393909216831691909117905560035490611e598383831661100b565b6001600160801b0319909216911617600355600154611e8490829086906001600160a01b03166114b1565b604051918291339583611496565b631e9acf1760e31b5f5260045ffd5b6001600160401b039081166001019190821161101857565b60045490600160801b600160c01b03611ede608084901c6001600160401b0316611ea1565b600160801b600160c01b03198416608091821b929092169182176004556003546001600160801b03808216959190921c93929091821690858410611f6657506001600160801b031994611f399461115b9450925090506114ed565b60801b1660035560048054600160801b600160c01b03811660409190911b6001600160c01b031916179055565b6001600160801b03611f78858861100b565b166001600160801b0319611f8f61115b87896114ed565b60801b16179384600355611fa3818861100b565b8060801b90808204600160801b14901517156110185787611fc391611cc0565b61206257611fd1908761100b565b928360801b93808504600160801b149015171561101857611ff387879561103f565b6001600160801b039061200f9061200990611d50565b85612122565b6001600160c01b03199092169092179116908117600455149182612055575b5050612038575050565b6001600160801b03199061204b90611d50565b60801b1617600355565b60801c119050815f61202e565b61206c908761100b565b8060801b90808204600160801b1490151715611018578661208c9161103f565b9260018401809411611018578593611ff3565b905f602091828151910182855af115611333575f513d6120ee57506001600160a01b0381163b155b6120ce5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156120c7565b60ff5f5160206121d45f395f51905f525460401c161561211357565b631afcd79f60e31b5f5260045ffd5b6001600160801b03811691821561218d576001600160801b031690811561218d57506001600160801b03612156828461102c565b1661216a576121649161102c565b60801c90565b6121739161102c565b60801c60018101809111611018576001600160801b031690565b9150509056fe9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00a2646970667358221220047a349a88f3010ed3ef159f98901cb20bedaef5a03f425ea773d0a1c62846a664736f6c634300081e0033f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly stateMutability: "nonpayable";
@@ -83,10 +83,6 @@ export declare class RAACMaturityVault__factory extends ContractFactory {
83
83
  }];
84
84
  readonly name: "SafeERC20FailedOperation";
85
85
  readonly type: "error";
86
- }, {
87
- readonly inputs: readonly [];
88
- readonly name: "SameBlockInteraction";
89
- readonly type: "error";
90
86
  }, {
91
87
  readonly inputs: readonly [];
92
88
  readonly name: "Unauthorized";
@@ -270,6 +266,16 @@ export declare class RAACMaturityVault__factory extends ContractFactory {
270
266
  }];
271
267
  readonly name: "Withdraw";
272
268
  readonly type: "event";
269
+ }, {
270
+ readonly inputs: readonly [];
271
+ readonly name: "MIN_PERIOD_LENGTH";
272
+ readonly outputs: readonly [{
273
+ readonly internalType: "uint32";
274
+ readonly name: "";
275
+ readonly type: "uint32";
276
+ }];
277
+ readonly stateMutability: "view";
278
+ readonly type: "function";
273
279
  }, {
274
280
  readonly inputs: readonly [];
275
281
  readonly name: "accUnrealisedFraction";
@@ -348,6 +354,20 @@ export declare class RAACMaturityVault__factory extends ContractFactory {
348
354
  readonly outputs: readonly [];
349
355
  readonly stateMutability: "nonpayable";
350
356
  readonly type: "function";
357
+ }, {
358
+ readonly inputs: readonly [];
359
+ readonly name: "getGlobalInfo";
360
+ readonly outputs: readonly [{
361
+ readonly internalType: "uint256";
362
+ readonly name: "globUnrealised";
363
+ readonly type: "uint256";
364
+ }, {
365
+ readonly internalType: "uint256";
366
+ readonly name: "globRealised";
367
+ readonly type: "uint256";
368
+ }];
369
+ readonly stateMutability: "view";
370
+ readonly type: "function";
351
371
  }, {
352
372
  readonly inputs: readonly [{
353
373
  readonly internalType: "address";
@@ -381,10 +401,6 @@ export declare class RAACMaturityVault__factory extends ContractFactory {
381
401
  readonly internalType: "address";
382
402
  readonly name: "_recipient";
383
403
  readonly type: "address";
384
- }, {
385
- readonly internalType: "uint256";
386
- readonly name: "";
387
- readonly type: "uint256";
388
404
  }];
389
405
  readonly name: "harvest";
390
406
  readonly outputs: readonly [{
@@ -14,7 +14,7 @@ export declare class RAACPrimeRateOracle__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): RAACPrimeRateOracle__factory;
17
- static readonly bytecode = "0x60a06040523461045b5761251b803803806100198161045f565b9283398101906101008183031261045b5761003381610484565b602082015160408301519192916001600160401b03811161045b57820184601f8201121561045b578481602061006b93519101610498565b93606083015190600382101561045b5760808401516001600160401b03811161045b5784019080601f8301121561045b5781516100aa92602001610498565b60a084015190956001600160401b03821693909184900361045b5760c08501519463ffffffff86169081870361045b5760e06100e69101610484565b6001600160a01b039097166080523315610416575f80546001600160a01b031916331790558115610407578251156103f85784156103e957156103da576003558051906001600160401b038211610313576101426007546104f0565b601f811161038c575b50602090601f83116001146103275761017b92915f918361024c575b50508160011b915f199060031b1c19161790565b6007555b60ff801960085416911617600855835160018060401b038111610313576101a76009546104f0565b601f81116102ba575b50602094601f8211600114610257576101e29293949582915f9261024c5750508160011b915f199060031b1c19161790565b6009555b600a80546001600160601b03191691909117604092831b6bffffffff000000000000000016179055600d80546001600160a01b0319166001600160a01b03939093169290921790915551611fdc908161053f82396080518181816102a301526113160152f35b015190505f80610167565b601f1982169560095f52805f20915f5b8881106102a25750836001959697981061028a575b505050811b016009556101e6565b01515f1960f88460031b161c191690555f808061027c565b91926020600181928685015181550194019201610267565b60095f52610303907f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f840160051c81019160208510610309575b601f0160051c0190610528565b5f6101b0565b90915081906102f6565b634e487b7160e01b5f52604160045260245ffd5b90601f1983169160075f52815f20925f5b818110610374575090846001959493921061035c575b505050811b0160075561017f565b01515f1960f88460031b161c191690555f808061034e565b92936020600181928786015181550195019301610338565b60075f526103d4907fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f850160051c8101916020861061030957601f0160051c0190610528565b5f61014b565b63fe7036d760e01b5f5260045ffd5b630ebd8d1960e11b5f5260045ffd5b63373a5fb760e11b5f5260045ffd5b637afb56b160e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f00000000000000006044820152606490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761031357604052565b51906001600160a01b038216820361045b57565b9192916001600160401b038211610313576104bc601f8301601f191660200161045f565b938285528282011161045b575f5b8281106104dd57505060205f9184010152565b80602091830151828288010152016104ca565b90600182811c9216801561051e575b602083101461050a57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916104ff565b818110610533575050565b5f815560010161052856fe60806040526004361015610011575f80fd5b5f3560e01c80630ca761751461016f57806314bcec9f1461016a5780632407bdf3146101655780633944ea3a146101605780634b0795a81461015b578063564846821461015657806367e1f3351461014257806372e92a8f1461015157806377ec76b81461014c57806379ba5097146101475780637bc7780b146101425780638ac000211461013d5780638da5cb5b146101385780638dbe7b9d14610133578063937c5eab1461012e578063a4eb718c14610129578063a59a997314610124578063b1e217491461011f578063c5b4e9371461011a578063e229c13e14610115578063ea7b4f77146101105763f2fde38b1461010b575f80fd5b610e89565b610e06565b610dd7565b610db1565b610d94565b610d6c565b610ce1565b610b74565b610b27565b610b00565b610ad8565b610834565b610a1b565b6108e3565b610851565b61080d565b61074b565b610688565b610582565b610451565b61024d565b634e487b7160e01b5f52604160045260245ffd5b60e081019081106001600160401b038211176101a357604052565b610174565b604081019081106001600160401b038211176101a357604052565b601f909101601f19168101906001600160401b038211908210176101a357604052565b9192916001600160401b0382116101a3576040519161020f601f8201601f1916602001846101c3565b82948184528183011161022b578281602093845f960137010152565b5f80fd5b9080601f8301121561022b5781602061024a933591016101e6565b90565b3461022b57606036600319011261022b576004356024356001600160401b03811161022b5761028090369060040161022f565b906044356001600160401b03811161022b576102a090369060040161022f565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361043857815f52600260205260ff60405f20541615610425578051926001600160401b0384116101a35761030b8461030660055461046e565b610f42565b602093601f81116001146103b8578061032e929394955f916103ad575b50611031565b6005555b61033b81611043565b5115610388575b50610362610358825f52600260205260405f2090565b805460ff19169055565b7f85e1543bf2f84fe80c6badbce3648c8539ad1df4d2b3d822938ca0538be727e65f80a2005b80511561039e57610398906113d1565b5f610342565b63789918df60e11b5f5260045ffd5b90508401515f610328565b60055f52601f198116945f516020611f275f395f51905f52905f5b87811061040d575082600194959697106103f5575b5050811b01600555610332565b8501515f1960f88460031b161c191690555f806103e8565b909160206001819285890151815501930191016103d3565b5063d068bf5b60e01b5f5260045260245ffd5b63c6829f8360e01b5f5260045ffd5b5f91031261022b57565b3461022b575f36600319011261022b576020600c54604051908152f35b90600182811c9216801561049c575b602083101461048857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161047d565b5f92918154916104b58361046e565b808352926001811690811561050a57506001146104d157505050565b5f9081526020812093945091925b8383106104f0575060209250010190565b6001816020929493945483858701015201910191906104df565b915050602093945060ff929192191683830152151560051b010190565b604051906105418261053a8160076104a6565b03836101c3565b565b91908251928382525f5b84811061056d575050825f602080949584010152601f8019910116010190565b8060208092840101518282860101520161054d565b3461022b575f36600319011261022b576040515f6007546105a28161046e565b808452906001811690811561064057506001146105e2575b6105de836105ca818503826101c3565b604051918291602083526020830190610543565b0390f35b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610626575090915081016020016105ca6105ba565b91926001816020925483858801015201910190929161060e565b60ff191660208086019190915291151560051b840190910191506105ca90506105ba565b604051906105418261053a8160096104a6565b90602061024a928181520190610543565b3461022b575f36600319011261022b576040515f6005546106a88161046e565b808452906001811690811561072757506001146106dc575b6105de836106d0818503826101c3565b60405191829182610677565b60055f9081525f516020611f275f395f51905f52939250905b80821061070d575090915081016020016106d06106c0565b9192600181602092548385880101520191019092916106f5565b60ff191660208086019190915291151560051b840190910191506106d090506106c0565b3461022b575f36600319011261022b576040515f60065461076b8161046e565b80845290600181169081156107275750600114610792576105de836106d0818503826101c3565b60065f9081525f516020611f675f395f51905f52939250905b8082106107c3575090915081016020016106d06106c0565b9192600181602092548385880101520191019092916107ab565b634e487b7160e01b5f52602160045260245ffd5b600311156107fb57565b6107dd565b9060038210156107fb5752565b3461022b575f36600319011261022b57602060ff600854166108326040518092610800565bf35b3461022b575f36600319011261022b576020600b54604051908152f35b3461022b575f36600319011261022b576040515f6009546108718161046e565b80845290600181169081156107275750600114610898576105de836106d0818503826101c3565b60095f9081525f516020611f475f395f51905f52939250905b8082106108c9575090915081016020016106d06106c0565b9192600181602092548385880101520191019092916108b1565b3461022b57604036600319011261022b57600435600381101561022b576024356001600160401b03811161022b5761091f90369060040161022f565b6109276111a8565b6008805460ff191660ff84161790558051916001600160401b0383116101a35761095b8361095660095461046e565b610f92565b6020601f84116001146109a057835f516020611f875f395f51905f5294610988925f916103ad5750611031565b6009555b61099b60405192839283611108565b0390a1005b60095f52601f198416905f516020611f475f395f51905f52915f5b818110610a0357509185915f516020611f875f395f51905f5296600194106109eb575b5050811b0160095561098c565b8501515f1960f88460031b161c191690555f806109de565b919260206001819286890151815501940192016109bb565b3461022b575f36600319011261022b576001546001600160a01b03163303610a9a575f546001600160a01b03165f80546001600160a01b03191633179055600180546001600160a01b031916905533906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b60405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b6044820152606490fd5b3461022b575f36600319011261022b57600a546040516001600160401b039091168152602090f35b3461022b575f36600319011261022b575f546040516001600160a01b039091168152602090f35b3461022b575f36600319011261022b576020600354604051908152f35b9181601f8401121561022b578235916001600160401b03831161022b576020808501948460051b01011161022b57565b3461022b57604036600319011261022b576004356001600160401b03811161022b57610ba4903690600401610b44565b6024356001600160401b03811161022b57610bc3903690600401610b44565b9091610bcd6111a8565b610bd681611126565b93610be460405195866101c3565b818552602085019160051b81019036821161022b5780925b828410610ca5576020610c44610c1d89610c17368a8c61113d565b90611205565b600a54610c3a6001600160401b0382169160401c63ffffffff1690565b90600354926112bc565b610c66610c59825f52600260205260405f2090565b805460ff19166001179055565b610c6f81600455565b807f2623af4aa03af6c852d773dd28dec675dda47e077d1d72e414ca1529258de93c5f80a2610c9d816113ab565b604051908152f35b83356001600160401b03811161022b57820136601f8201121561022b57602091610cd68392369084813591016101e6565b815201930192610bfc565b3461022b57602036600319011261022b5760043563ffffffff81169081810361022b57610d0c6111a8565b8115610d5d57600a805463ffffffff60401b1916604092831b63ffffffff60401b16179055519081527f25358b14cd4557629ee75bbccedef47b9c0fe38c159233fb711b4c547692f88990602090a1005b63fe7036d760e01b5f5260045ffd5b3461022b575f36600319011261022b57600d546040516001600160a01b039091168152602090f35b3461022b575f36600319011261022b576020600454604051908152f35b3461022b575f36600319011261022b57602063ffffffff600a5460401c16604051908152f35b3461022b57602036600319011261022b576004355f526002602052602060ff60405f2054166040519015158152f35b3461022b57602036600319011261022b576004356001600160401b0381169081900361022b57610e346111a8565b8015610e7a57600a80546001600160401b031916821790556040519081527ffe1ef567ce884ef794b945e4334aba185ec62ce1f1d71ea9becb1a7d39d561d090602090a1005b630ebd8d1960e11b5f5260045ffd5b3461022b57602036600319011261022b576004356001600160a01b0381169081900361022b57610eb76111a8565b338114610f0357600180546001600160a01b031916821790555f80546001600160a01b0316907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789080a3005b60405162461bcd60e51b815260206004820152601760248201527621b0b73737ba103a3930b739b332b9103a379039b2b63360491b6044820152606490fd5b601f8111610f4e575050565b60055f5260205f20906020601f840160051c83019310610f88575b601f0160051c01905b818110610f7d575050565b5f8155600101610f72565b9091508190610f69565b601f8111610f9e575050565b60095f5260205f20906020601f840160051c83019310610fd8575b601f0160051c01905b818110610fcd575050565b5f8155600101610fc2565b9091508190610fb9565b601f8211610fef57505050565b5f5260205f20906020601f840160051c83019310611027575b601f0160051c01905b81811061101c575050565b5f8155600101611011565b9091508190611008565b8160011b915f199060031b1c19161790565b80519091906001600160401b0381116101a35761106c8161106560065461046e565b6006610fe2565b602092601f821160011461109f5761108f929382915f92611094575b5050611031565b600655565b015190505f80611088565b60065f52601f198216935f516020611f675f395f51905f52915f5b8681106110f057508360019596106110d8575b505050811b01600655565b01515f1960f88460031b161c191690555f80806110cd565b919260206001819286850151815501940192016110ba565b8061111960409261024a9594610800565b8160208201520190610543565b6001600160401b0381116101a35760051b60200190565b92919061114981611126565b9361115760405195866101c3565b602085838152019160051b81019183831161022b5781905b83821061117d575050505050565b81356001600160401b03811161022b5760209161119d878493870161022f565b81520191019061116f565b5f546001600160a01b031633036111bb57565b60405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b6044820152606490fd5b60038210156107fb5752565b61024a916040519161121683610188565b5f8352602083015f81525f6040850152606080850152611263608085019160608352606060a0870152606060c0870152611257611251610527565b8761148f565b60085460ff16906111f9565b61126b610664565b90528051611292575b508051611282575b50611614565b61128c90826114d0565b5f61127c565b61129c90836114b4565b5f611274565b9081602091031261022b575190565b6040513d5f823e3d90fd5b60405163230e93b160e11b81526001600160401b03909216600483015260a060248301529092602092849283929063ffffffff906112fe9060a4860190610543565b6001604486015292166064840152608483015203815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156113a6575f91611377575b50807f1131472297a800fee664d1d89cfa8f7676ff07189ecc53f80bbb5f4969099db85f80a290565b611399915060203d60201161139f575b61139181836101c3565b8101906112a2565b5f61134e565b503d611387565b6112b1565b7f2d9ca34922119082c042c345464bde3d9f4d813a77ca74c9fcffc452a0d4693f5f80a2565b6113e76113ec91602080825183010191016112a2565b600b55565b6113f542600c55565b600d546001600160a01b0316600b5490803b1561022b5760405163313e244760e21b815260048101929092525f908290602490829084905af180156113a65761146b575b50600b546040519081527f92f41ed3f137ff39687b9329e851838ac1cdf258ad27a4de8ebc6c87611b2cc890602090a1565b806114795f61147f936101c3565b80610447565b5f611439565b600111156107fb57565b8151156114a5575f808252604082015260600152565b6322ce3edd60e01b5f5260045ffd5b8151156114c15760a00152565b63fe936cb760e01b5f5260045ffd5b8151156114c15760c00152565b604051906114ec6040836101c3565b600c82526b31b7b232a637b1b0ba34b7b760a11b6020830152565b604051906115166040836101c3565b60088252676c616e677561676560c01b6020830152565b6040519061153c6040836101c3565b6006825265736f7572636560d01b6020830152565b604051906115606040836101c3565b60048252636172677360e01b6020830152565b80518210156115875760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b604051906115aa6040836101c3565b600f82526e39b2b1b932ba39a637b1b0ba34b7b760891b6020830152565b604051906115d76040836101c3565b60078252667365637265747360c81b6020830152565b604051906115fc6040836101c3565b600982526862797465734172677360b81b6020830152565b61161c6117f6565b9061162e6116286114dd565b83611826565b61164b815161163c816107f1565b611645816107f1565b8361190f565b611656611628611507565b611670604082015161166781611485565b61164581611485565b61167b61162861152d565b611689606082015183611826565b60a08101805151611785575b506080810190815151611708575b60c09150018051516116b6575b50515190565b916116c26116286115ed565b6116cb82611970565b5f5b835180518210156116f557906116ef6116e882600194611573565b51856119d1565b016116cd565b50509150611702816119af565b5f6116b0565b602081018051611717816107f1565b611720816107f1565b156117765760c0926117596117719261174061173a61159b565b88611826565b5161174a816107f1565b611753816107f1565b8661190f565b61176a6117646115c8565b86611826565b51846119d1565b6116a3565b63a80d31f760e01b5f5260045ffd5b92611797611791611551565b84611826565b6117a083611970565b5f5b845180518210156117ca57906117c46117bd82600194611573565b5186611826565b016117a2565b505092506117d7826119af565b5f611695565b604051906117ea826101a8565b5f602083606081520152565b604051611802816101a8565b5f61180b6117dd565b8083526118216101006020850192848452611a6a565b505290565b81516118779291906001600160401b03166017811161187a5781516118629161185c9061185560605b60ff1690565b1760ff1690565b90611c00565b505b519061186e6117dd565b50805191611e6a565b50565b60ff81116118a75781516118a1919061189990601860605b1790611c00565b508251611dea565b50611864565b61ffff81116118cc5781516118a191906118c49060196060611892565b508251611d71565b63ffffffff81116118f35781516118a191906118eb90601a6060611892565b508251611cf8565b81516118a1919061190790601b6060611892565b508251611c7a565b906105419161191e8151611b90565b50604051916020830152602082526119376040836101c3565b6119d1565b634e487b7160e01b5f52601160045260245ffd5b906020820180921161195e57565b61193c565b9190820180921161195e57565b60209061197f609f8251611c00565b50018051906001820180921161195e5752565b601f1981019190821161195e57565b5f1981019190821161195e57565b6020906119be60ff8251611c00565b500180515f1981019190821161195e5752565b81516118779291906001600160401b0316601781116119fe5781516118629161185c90611855604061184f565b60ff8111611a1a5781516118a191906118999060186040611892565b61ffff8111611a375781516118a191906118c49060196040611892565b63ffffffff8111611a565781516118a191906118eb90601a6040611892565b81516118a1919061190790601b6040611892565b90611a736117dd565b50601f811680611aa1575b50806020830152604051908183525f8252810160200190811061022b5760405290565b6020036020811161195e57810180911161195e575f611a7e565b90611ac46117dd565b508051611acf6117dd565b50611add8251821115611e63565b82515191611aeb8284611963565b9060208501518211611b63575b602091855183815196820101958211611b5b575b505001905b6020811015611b35575f19906020036101000a019081199051169082511617905290565b9091611b50611b4a611b569285518152611950565b93611950565b91611992565b611b11565b525f80611b0c565b611b75611b6f83611b7a565b86611f0f565b611af8565b908160011b918083046002149015171561195e57565b611b986117dd565b50805151600181019081811161195e576020830151811015611bd1575b60c260208451928301015380518211611bcd57505090565b5290565b8160011b8281046002148315171561195e57611bfa90611bf385519186611a6a565b5084611abb565b50611bb5565b90611c096117dd565b50815151600181019182821161195e576020840151821015611c3c575b60208451928301015380518211611bcd57505090565b8260011b8381046002148415171561195e57611c6590611c5e86519187611a6a565b5085611abb565b50611c26565b601f811161195e576101000a90565b90611c836117dd565b5081515180600801918260081161195e5760208401518311611cd0575b611cb2611cad6008611c6b565b6119a1565b906008855193840101911982511617905280518211611bcd57505090565b8260011b8381046002148415171561195e57611cf290611c5e86519187611a6a565b50611ca0565b90611d016117dd565b5081515180600401918260041161195e5760208401518311611d49575b611d2b611cad6004611c6b565b906004855193840101911982511617905280518211611bcd57505090565b8260011b8381046002148415171561195e57611d6b90611c5e86519187611a6a565b50611d1e565b90611d7a6117dd565b5081515180600201918260021161195e5760208401518311611dc2575b611da4611cad6002611c6b565b906002855193840101911982511617905280518211611bcd57505090565b8260011b8381046002148415171561195e57611de490611c5e86519187611a6a565b50611d97565b90611df36117dd565b5081515180600101918260011161195e5760208401518311611e3b575b611e1d611cad6001611c6b565b906001855193840101911982511617905280518211611bcd57505090565b8260011b8381046002148415171561195e57611e5d90611c5e86519187611a6a565b50611e10565b1561022b57565b91611e736117dd565b50611e818251821115611e63565b602083515192611e918385611963565b828601518111611ef8575b855183815196820101958211611ef0575b505001905b6020811015611ed6575f19906020036101000a019081199051169082511617905290565b9091611b50611b4a611eeb9285518152611950565b611eb2565b525f80611ead565b611f0a611f0482611b7a565b87611f0f565b611e9c565b9061187791611f2081519282611a6a565b50611abb56fe036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db06e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7aff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fee739a6c75bbfd53d28b9f33bea1c0e391f974e4c150f2a8520b9072f6d63e76a26469706673582212208242344df6e61806898c9b3900bcebcd2d36a775c4ccd10809209dacd0faaaef64736f6c634300081e0033";
17
+ static readonly bytecode = "0x60a06040523461045b5761251b803803806100198161045f565b9283398101906101008183031261045b5761003381610484565b602082015160408301519192916001600160401b03811161045b57820184601f8201121561045b578481602061006b93519101610498565b93606083015190600382101561045b5760808401516001600160401b03811161045b5784019080601f8301121561045b5781516100aa92602001610498565b60a084015190956001600160401b03821693909184900361045b5760c08501519463ffffffff86169081870361045b5760e06100e69101610484565b6001600160a01b039097166080523315610416575f80546001600160a01b031916331790558115610407578251156103f85784156103e957156103da576003558051906001600160401b038211610313576101426007546104f0565b601f811161038c575b50602090601f83116001146103275761017b92915f918361024c575b50508160011b915f199060031b1c19161790565b6007555b60ff801960085416911617600855835160018060401b038111610313576101a76009546104f0565b601f81116102ba575b50602094601f8211600114610257576101e29293949582915f9261024c5750508160011b915f199060031b1c19161790565b6009555b600a80546001600160601b03191691909117604092831b6bffffffff000000000000000016179055600d80546001600160a01b0319166001600160a01b03939093169290921790915551611fdc908161053f82396080518181816102a301526113160152f35b015190505f80610167565b601f1982169560095f52805f20915f5b8881106102a25750836001959697981061028a575b505050811b016009556101e6565b01515f1960f88460031b161c191690555f808061027c565b91926020600181928685015181550194019201610267565b60095f52610303907f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af601f840160051c81019160208510610309575b601f0160051c0190610528565b5f6101b0565b90915081906102f6565b634e487b7160e01b5f52604160045260245ffd5b90601f1983169160075f52815f20925f5b818110610374575090846001959493921061035c575b505050811b0160075561017f565b01515f1960f88460031b161c191690555f808061034e565b92936020600181928786015181550195019301610338565b60075f526103d4907fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f850160051c8101916020861061030957601f0160051c0190610528565b5f61014b565b63fe7036d760e01b5f5260045ffd5b630ebd8d1960e11b5f5260045ffd5b63373a5fb760e11b5f5260045ffd5b637afb56b160e01b5f5260045ffd5b60405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f00000000000000006044820152606490fd5b5f80fd5b6040519190601f01601f191682016001600160401b0381118382101761031357604052565b51906001600160a01b038216820361045b57565b9192916001600160401b038211610313576104bc601f8301601f191660200161045f565b938285528282011161045b575f5b8281106104dd57505060205f9184010152565b80602091830151828288010152016104ca565b90600182811c9216801561051e575b602083101461050a57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916104ff565b818110610533575050565b5f815560010161052856fe60806040526004361015610011575f80fd5b5f3560e01c80630ca761751461016f57806314bcec9f1461016a5780632407bdf3146101655780633944ea3a146101605780634b0795a81461015b578063564846821461015657806367e1f3351461014257806372e92a8f1461015157806377ec76b81461014c57806379ba5097146101475780637bc7780b146101425780638ac000211461013d5780638da5cb5b146101385780638dbe7b9d14610133578063937c5eab1461012e578063a4eb718c14610129578063a59a997314610124578063b1e217491461011f578063c5b4e9371461011a578063e229c13e14610115578063ea7b4f77146101105763f2fde38b1461010b575f80fd5b610e89565b610e06565b610dd7565b610db1565b610d94565b610d6c565b610ce1565b610b74565b610b27565b610b00565b610ad8565b610834565b610a1b565b6108e3565b610851565b61080d565b61074b565b610688565b610582565b610451565b61024d565b634e487b7160e01b5f52604160045260245ffd5b60e081019081106001600160401b038211176101a357604052565b610174565b604081019081106001600160401b038211176101a357604052565b601f909101601f19168101906001600160401b038211908210176101a357604052565b9192916001600160401b0382116101a3576040519161020f601f8201601f1916602001846101c3565b82948184528183011161022b578281602093845f960137010152565b5f80fd5b9080601f8301121561022b5781602061024a933591016101e6565b90565b3461022b57606036600319011261022b576004356024356001600160401b03811161022b5761028090369060040161022f565b906044356001600160401b03811161022b576102a090369060040161022f565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361043857815f52600260205260ff60405f20541615610425578051926001600160401b0384116101a35761030b8461030660055461046e565b610f42565b602093601f81116001146103b8578061032e929394955f916103ad575b50611031565b6005555b61033b81611043565b5115610388575b50610362610358825f52600260205260405f2090565b805460ff19169055565b7f85e1543bf2f84fe80c6badbce3648c8539ad1df4d2b3d822938ca0538be727e65f80a2005b80511561039e57610398906113d1565b5f610342565b63789918df60e11b5f5260045ffd5b90508401515f610328565b60055f52601f198116945f516020611f275f395f51905f52905f5b87811061040d575082600194959697106103f5575b5050811b01600555610332565b8501515f1960f88460031b161c191690555f806103e8565b909160206001819285890151815501930191016103d3565b5063d068bf5b60e01b5f5260045260245ffd5b63c6829f8360e01b5f5260045ffd5b5f91031261022b57565b3461022b575f36600319011261022b576020600c54604051908152f35b90600182811c9216801561049c575b602083101461048857565b634e487b7160e01b5f52602260045260245ffd5b91607f169161047d565b5f92918154916104b58361046e565b808352926001811690811561050a57506001146104d157505050565b5f9081526020812093945091925b8383106104f0575060209250010190565b6001816020929493945483858701015201910191906104df565b915050602093945060ff929192191683830152151560051b010190565b604051906105418261053a8160076104a6565b03836101c3565b565b91908251928382525f5b84811061056d575050825f602080949584010152601f8019910116010190565b8060208092840101518282860101520161054d565b3461022b575f36600319011261022b576040515f6007546105a28161046e565b808452906001811690811561064057506001146105e2575b6105de836105ca818503826101c3565b604051918291602083526020830190610543565b0390f35b60075f9081527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688939250905b808210610626575090915081016020016105ca6105ba565b91926001816020925483858801015201910190929161060e565b60ff191660208086019190915291151560051b840190910191506105ca90506105ba565b604051906105418261053a8160096104a6565b90602061024a928181520190610543565b3461022b575f36600319011261022b576040515f6005546106a88161046e565b808452906001811690811561072757506001146106dc575b6105de836106d0818503826101c3565b60405191829182610677565b60055f9081525f516020611f275f395f51905f52939250905b80821061070d575090915081016020016106d06106c0565b9192600181602092548385880101520191019092916106f5565b60ff191660208086019190915291151560051b840190910191506106d090506106c0565b3461022b575f36600319011261022b576040515f60065461076b8161046e565b80845290600181169081156107275750600114610792576105de836106d0818503826101c3565b60065f9081525f516020611f675f395f51905f52939250905b8082106107c3575090915081016020016106d06106c0565b9192600181602092548385880101520191019092916107ab565b634e487b7160e01b5f52602160045260245ffd5b600311156107fb57565b6107dd565b9060038210156107fb5752565b3461022b575f36600319011261022b57602060ff600854166108326040518092610800565bf35b3461022b575f36600319011261022b576020600b54604051908152f35b3461022b575f36600319011261022b576040515f6009546108718161046e565b80845290600181169081156107275750600114610898576105de836106d0818503826101c3565b60095f9081525f516020611f475f395f51905f52939250905b8082106108c9575090915081016020016106d06106c0565b9192600181602092548385880101520191019092916108b1565b3461022b57604036600319011261022b57600435600381101561022b576024356001600160401b03811161022b5761091f90369060040161022f565b6109276111a8565b6008805460ff191660ff84161790558051916001600160401b0383116101a35761095b8361095660095461046e565b610f92565b6020601f84116001146109a057835f516020611f875f395f51905f5294610988925f916103ad5750611031565b6009555b61099b60405192839283611108565b0390a1005b60095f52601f198416905f516020611f475f395f51905f52915f5b818110610a0357509185915f516020611f875f395f51905f5296600194106109eb575b5050811b0160095561098c565b8501515f1960f88460031b161c191690555f806109de565b919260206001819286890151815501940192016109bb565b3461022b575f36600319011261022b576001546001600160a01b03163303610a9a575f546001600160a01b03165f80546001600160a01b03191633179055600180546001600160a01b031916905533906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b60405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b6044820152606490fd5b3461022b575f36600319011261022b57600a546040516001600160401b039091168152602090f35b3461022b575f36600319011261022b575f546040516001600160a01b039091168152602090f35b3461022b575f36600319011261022b576020600354604051908152f35b9181601f8401121561022b578235916001600160401b03831161022b576020808501948460051b01011161022b57565b3461022b57604036600319011261022b576004356001600160401b03811161022b57610ba4903690600401610b44565b6024356001600160401b03811161022b57610bc3903690600401610b44565b9091610bcd6111a8565b610bd681611126565b93610be460405195866101c3565b818552602085019160051b81019036821161022b5780925b828410610ca5576020610c44610c1d89610c17368a8c61113d565b90611205565b600a54610c3a6001600160401b0382169160401c63ffffffff1690565b90600354926112bc565b610c66610c59825f52600260205260405f2090565b805460ff19166001179055565b610c6f81600455565b807f2623af4aa03af6c852d773dd28dec675dda47e077d1d72e414ca1529258de93c5f80a2610c9d816113ab565b604051908152f35b83356001600160401b03811161022b57820136601f8201121561022b57602091610cd68392369084813591016101e6565b815201930192610bfc565b3461022b57602036600319011261022b5760043563ffffffff81169081810361022b57610d0c6111a8565b8115610d5d57600a805463ffffffff60401b1916604092831b63ffffffff60401b16179055519081527f25358b14cd4557629ee75bbccedef47b9c0fe38c159233fb711b4c547692f88990602090a1005b63fe7036d760e01b5f5260045ffd5b3461022b575f36600319011261022b57600d546040516001600160a01b039091168152602090f35b3461022b575f36600319011261022b576020600454604051908152f35b3461022b575f36600319011261022b57602063ffffffff600a5460401c16604051908152f35b3461022b57602036600319011261022b576004355f526002602052602060ff60405f2054166040519015158152f35b3461022b57602036600319011261022b576004356001600160401b0381169081900361022b57610e346111a8565b8015610e7a57600a80546001600160401b031916821790556040519081527ffe1ef567ce884ef794b945e4334aba185ec62ce1f1d71ea9becb1a7d39d561d090602090a1005b630ebd8d1960e11b5f5260045ffd5b3461022b57602036600319011261022b576004356001600160a01b0381169081900361022b57610eb76111a8565b338114610f0357600180546001600160a01b031916821790555f80546001600160a01b0316907fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789080a3005b60405162461bcd60e51b815260206004820152601760248201527621b0b73737ba103a3930b739b332b9103a379039b2b63360491b6044820152606490fd5b601f8111610f4e575050565b60055f5260205f20906020601f840160051c83019310610f88575b601f0160051c01905b818110610f7d575050565b5f8155600101610f72565b9091508190610f69565b601f8111610f9e575050565b60095f5260205f20906020601f840160051c83019310610fd8575b601f0160051c01905b818110610fcd575050565b5f8155600101610fc2565b9091508190610fb9565b601f8211610fef57505050565b5f5260205f20906020601f840160051c83019310611027575b601f0160051c01905b81811061101c575050565b5f8155600101611011565b9091508190611008565b8160011b915f199060031b1c19161790565b80519091906001600160401b0381116101a35761106c8161106560065461046e565b6006610fe2565b602092601f821160011461109f5761108f929382915f92611094575b5050611031565b600655565b015190505f80611088565b60065f52601f198216935f516020611f675f395f51905f52915f5b8681106110f057508360019596106110d8575b505050811b01600655565b01515f1960f88460031b161c191690555f80806110cd565b919260206001819286850151815501940192016110ba565b8061111960409261024a9594610800565b8160208201520190610543565b6001600160401b0381116101a35760051b60200190565b92919061114981611126565b9361115760405195866101c3565b602085838152019160051b81019183831161022b5781905b83821061117d575050505050565b81356001600160401b03811161022b5760209161119d878493870161022f565b81520191019061116f565b5f546001600160a01b031633036111bb57565b60405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b6044820152606490fd5b60038210156107fb5752565b61024a916040519161121683610188565b5f8352602083015f81525f6040850152606080850152611263608085019160608352606060a0870152606060c0870152611257611251610527565b8761148f565b60085460ff16906111f9565b61126b610664565b90528051611292575b508051611282575b50611614565b61128c90826114d0565b5f61127c565b61129c90836114b4565b5f611274565b9081602091031261022b575190565b6040513d5f823e3d90fd5b60405163230e93b160e11b81526001600160401b03909216600483015260a060248301529092602092849283929063ffffffff906112fe9060a4860190610543565b6001604486015292166064840152608483015203815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156113a6575f91611377575b50807f1131472297a800fee664d1d89cfa8f7676ff07189ecc53f80bbb5f4969099db85f80a290565b611399915060203d60201161139f575b61139181836101c3565b8101906112a2565b5f61134e565b503d611387565b6112b1565b7f2d9ca34922119082c042c345464bde3d9f4d813a77ca74c9fcffc452a0d4693f5f80a2565b6113e76113ec91602080825183010191016112a2565b600b55565b6113f542600c55565b600d546001600160a01b0316600b5490803b1561022b5760405163313e244760e21b815260048101929092525f908290602490829084905af180156113a65761146b575b50600b546040519081527f92f41ed3f137ff39687b9329e851838ac1cdf258ad27a4de8ebc6c87611b2cc890602090a1565b806114795f61147f936101c3565b80610447565b5f611439565b600111156107fb57565b8151156114a5575f808252604082015260600152565b6322ce3edd60e01b5f5260045ffd5b8151156114c15760a00152565b63fe936cb760e01b5f5260045ffd5b8151156114c15760c00152565b604051906114ec6040836101c3565b600c82526b31b7b232a637b1b0ba34b7b760a11b6020830152565b604051906115166040836101c3565b60088252676c616e677561676560c01b6020830152565b6040519061153c6040836101c3565b6006825265736f7572636560d01b6020830152565b604051906115606040836101c3565b60048252636172677360e01b6020830152565b80518210156115875760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b604051906115aa6040836101c3565b600f82526e39b2b1b932ba39a637b1b0ba34b7b760891b6020830152565b604051906115d76040836101c3565b60078252667365637265747360c81b6020830152565b604051906115fc6040836101c3565b600982526862797465734172677360b81b6020830152565b61161c6117f6565b9061162e6116286114dd565b83611826565b61164b815161163c816107f1565b611645816107f1565b8361190f565b611656611628611507565b611670604082015161166781611485565b61164581611485565b61167b61162861152d565b611689606082015183611826565b60a08101805151611785575b506080810190815151611708575b60c09150018051516116b6575b50515190565b916116c26116286115ed565b6116cb82611970565b5f5b835180518210156116f557906116ef6116e882600194611573565b51856119d1565b016116cd565b50509150611702816119af565b5f6116b0565b602081018051611717816107f1565b611720816107f1565b156117765760c0926117596117719261174061173a61159b565b88611826565b5161174a816107f1565b611753816107f1565b8661190f565b61176a6117646115c8565b86611826565b51846119d1565b6116a3565b63a80d31f760e01b5f5260045ffd5b92611797611791611551565b84611826565b6117a083611970565b5f5b845180518210156117ca57906117c46117bd82600194611573565b5186611826565b016117a2565b505092506117d7826119af565b5f611695565b604051906117ea826101a8565b5f602083606081520152565b604051611802816101a8565b5f61180b6117dd565b8083526118216101006020850192848452611a6a565b505290565b81516118779291906001600160401b03166017811161187a5781516118629161185c9061185560605b60ff1690565b1760ff1690565b90611c00565b505b519061186e6117dd565b50805191611e6a565b50565b60ff81116118a75781516118a1919061189990601860605b1790611c00565b508251611dea565b50611864565b61ffff81116118cc5781516118a191906118c49060196060611892565b508251611d71565b63ffffffff81116118f35781516118a191906118eb90601a6060611892565b508251611cf8565b81516118a1919061190790601b6060611892565b508251611c7a565b906105419161191e8151611b90565b50604051916020830152602082526119376040836101c3565b6119d1565b634e487b7160e01b5f52601160045260245ffd5b906020820180921161195e57565b61193c565b9190820180921161195e57565b60209061197f609f8251611c00565b50018051906001820180921161195e5752565b601f1981019190821161195e57565b5f1981019190821161195e57565b6020906119be60ff8251611c00565b500180515f1981019190821161195e5752565b81516118779291906001600160401b0316601781116119fe5781516118629161185c90611855604061184f565b60ff8111611a1a5781516118a191906118999060186040611892565b61ffff8111611a375781516118a191906118c49060196040611892565b63ffffffff8111611a565781516118a191906118eb90601a6040611892565b81516118a1919061190790601b6040611892565b90611a736117dd565b50601f811680611aa1575b50806020830152604051908183525f8252810160200190811061022b5760405290565b6020036020811161195e57810180911161195e575f611a7e565b90611ac46117dd565b508051611acf6117dd565b50611add8251821115611e63565b82515191611aeb8284611963565b9060208501518211611b63575b602091855183815196820101958211611b5b575b505001905b6020811015611b35575f19906020036101000a019081199051169082511617905290565b9091611b50611b4a611b569285518152611950565b93611950565b91611992565b611b11565b525f80611b0c565b611b75611b6f83611b7a565b86611f0f565b611af8565b908160011b918083046002149015171561195e57565b611b986117dd565b50805151600181019081811161195e576020830151811015611bd1575b60c260208451928301015380518211611bcd57505090565b5290565b8160011b8281046002148315171561195e57611bfa90611bf385519186611a6a565b5084611abb565b50611bb5565b90611c096117dd565b50815151600181019182821161195e576020840151821015611c3c575b60208451928301015380518211611bcd57505090565b8260011b8381046002148415171561195e57611c6590611c5e86519187611a6a565b5085611abb565b50611c26565b601f811161195e576101000a90565b90611c836117dd565b5081515180600801918260081161195e5760208401518311611cd0575b611cb2611cad6008611c6b565b6119a1565b906008855193840101911982511617905280518211611bcd57505090565b8260011b8381046002148415171561195e57611cf290611c5e86519187611a6a565b50611ca0565b90611d016117dd565b5081515180600401918260041161195e5760208401518311611d49575b611d2b611cad6004611c6b565b906004855193840101911982511617905280518211611bcd57505090565b8260011b8381046002148415171561195e57611d6b90611c5e86519187611a6a565b50611d1e565b90611d7a6117dd565b5081515180600201918260021161195e5760208401518311611dc2575b611da4611cad6002611c6b565b906002855193840101911982511617905280518211611bcd57505090565b8260011b8381046002148415171561195e57611de490611c5e86519187611a6a565b50611d97565b90611df36117dd565b5081515180600101918260011161195e5760208401518311611e3b575b611e1d611cad6001611c6b565b906001855193840101911982511617905280518211611bcd57505090565b8260011b8381046002148415171561195e57611e5d90611c5e86519187611a6a565b50611e10565b1561022b57565b91611e736117dd565b50611e818251821115611e63565b602083515192611e918385611963565b828601518111611ef8575b855183815196820101958211611ef0575b505001905b6020811015611ed6575f19906020036101000a019081199051169082511617905290565b9091611b50611b4a611eeb9285518152611950565b611eb2565b525f80611ead565b611f0a611f0482611b7a565b87611f0f565b611e9c565b9061187791611f2081519282611a6a565b50611abb56fe036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db06e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7aff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fee739a6c75bbfd53d28b9f33bea1c0e391f974e4c150f2a8520b9072f6d63e76a2646970667358221220d5c6a266cdb5c00dfe40e1cc4ee1229a90abb525958acfcd810f1e0d3d1a9b5464736f6c634300081e0033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [{
20
20
  readonly internalType: "address";
@@ -14,7 +14,7 @@ export declare class LendingPoolStorage__factory extends ContractFactory {
14
14
  deploymentTransaction(): ContractTransactionResponse;
15
15
  }>;
16
16
  connect(runner: ContractRunner | null): LendingPoolStorage__factory;
17
- static readonly bytecode = "0x60808060405234601557610669908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816302768de4146105e557508063048c661d146105bd57806309bf1e73146105a05780630c42dcaf14610584578063152f158414610548578063202019a61461051057806334176a6d1461048b5780634ef501ac146104315780636bf6337914610415578063745a5cec146103f35780638429d51f146103a357806389035730146103055780638f7e8498146102c8578063a9bf805c146102a0578063c3525c281461027e578063c415b95c14610256578063cd3293de146101ca578063ec915ee61461015e578063f36c8f5c146101245763fbfa77cf146100f8575f80fd5b34610120575f36600319011261012057601d546040516001600160a01b039091168152602090f35b5f80fd5b34610120575f3660031901126101205760206040517f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb18152f35b34610120575f36600319011261012057610140600854600954600a54600b54600c54600d54600e5491600f54936010549560115497604051998a5260208a015260408901526060880152608087015260a086015260c085015260e0840152610100830152610120820152f35b34610120575f366003190112610120575f54600154600254600354600454600554600654600754604080516001600160a01b03998a1681529789166020890152959097169486019490945260608501929092526080808501919091526001600160801b03821660a08501521c60c083015264ffffffffff1660e082015261010081019190915261012090f35b34610120575f366003190112610120576015546040516001600160a01b039091168152602090f35b34610120575f366003190112610120576020604051670de0b6b3a76400008152f35b34610120575f366003190112610120576013546040516001600160a01b039091168152602090f35b34610120576020366003190112610120576001600160a01b036102e961061d565b165f52601e602052602060ff60405f2054166040519015158152f35b34610120575f366003190112610120576101c060ff6021546022546023546024546025546026546027546028549160295493602a5495602b5497602c5499602d549b60206040519e8f928181161515845260081c16151591015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a0820152f35b34610120575f3660031901126101205760e0601654601754601854601954601a5490601b5492601c5494604051968752602087015260408601526060850152608084015260a083015260c0820152f35b34610120575f366003190112610120576020604051678ac7230489e800008152f35b34610120575f3660031901126101205760206040516113888152f35b3461012057602036600319011261012057600435601f5481101561012057601f5f527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80701546040516001600160a01b039091168152602090f35b34610120576040366003190112610120576001600160a01b036104ac61061d565b165f52601260205260405f206024355f5260205260c060405f2080549060ff600182015416906002810154600382015490600560ff6004850154169301549360405195865215156020860152604085015260608401521515608083015260a0820152f35b34610120576020366003190112610120576001600160a01b0361053161061d565b165f52602e602052602060405f2054604051908152f35b34610120576020366003190112610120576001600160a01b0361056961061d565b165f5260208052602060ff60405f2054166040519015158152f35b34610120575f366003190112610120576020604051611f408152f35b34610120575f3660031901126101205760206040516203f4808152f35b34610120575f366003190112610120576014546040516001600160a01b039091168152602090f35b34610120575f36600319011261012057807fba279271fb7bbf76a6f3df3cc57bf80647fcafdea60ec3383d90f459de74e7c060209252f35b600435906001600160a01b03821682036101205756fea26469706673582212207ad9291fb318861bcbb24d335d4ab4b130250f9b214a1d9995d2d50155a47c5d64736f6c634300081e0033";
17
+ static readonly bytecode = "0x608080604052346015576106ae908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816302768de41461062a57508063048c661d1461060257806309bf1e73146105e55780630c42dcaf146105c9578063152f15841461058d578063202019a61461055557806320df43591461051b57806334176a6d146104965780634ef501ac1461043c5780636bf6337914610420578063745a5cec146103fe5780638429d51f146103ae57806389035730146103105780638f7e8498146102d3578063a9bf805c146102ab578063c3525c2814610289578063c415b95c14610261578063cd3293de146101d5578063ec915ee614610169578063f36c8f5c1461012f5763fbfa77cf14610103575f80fd5b3461012b575f36600319011261012b57601d546040516001600160a01b039091168152602090f35b5f80fd5b3461012b575f36600319011261012b5760206040517f71840dc4906352362b0cdaf79870196c8e42acafade72d5d5a6d59291253ceb18152f35b3461012b575f36600319011261012b57610140600854600954600a54600b54600c54600d54600e5491600f54936010549560115497604051998a5260208a015260408901526060880152608087015260a086015260c085015260e0840152610100830152610120820152f35b3461012b575f36600319011261012b575f54600154600254600354600454600554600654600754604080516001600160a01b03998a1681529789166020890152959097169486019490945260608501929092526080808501919091526001600160801b03821660a08501521c60c083015264ffffffffff1660e082015261010081019190915261012090f35b3461012b575f36600319011261012b576015546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b576020604051670de0b6b3a76400008152f35b3461012b575f36600319011261012b576013546040516001600160a01b039091168152602090f35b3461012b57602036600319011261012b576001600160a01b036102f4610662565b165f52601e602052602060ff60405f2054166040519015158152f35b3461012b575f36600319011261012b576101c060ff6021546022546023546024546025546026546027546028549160295493602a5495602b5497602c5499602d549b60206040519e8f928181161515845260081c16151591015260408d015260608c015260808b015260a08a015260c089015260e08801526101008701526101208601526101408501526101608401526101808301526101a0820152f35b3461012b575f36600319011261012b5760e0601654601754601854601954601a5490601b5492601c5494604051968752602087015260408601526060850152608084015260a083015260c0820152f35b3461012b575f36600319011261012b576020604051678ac7230489e800008152f35b3461012b575f36600319011261012b5760206040516113888152f35b3461012b57602036600319011261012b57600435601f5481101561012b57601f5f527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80701546040516001600160a01b039091168152602090f35b3461012b57604036600319011261012b576001600160a01b036104b7610662565b165f52601260205260405f206024355f5260205260c060405f2080549060ff600182015416906002810154600382015490600560ff6004850154169301549360405195865215156020860152604085015260608401521515608083015260a0820152f35b3461012b575f36600319011261012b5760206040517fbf233dd2aafeb4d50879c4aa5c81e96d92f6e6945c906a58f9f2d1c1631b4b268152f35b3461012b57602036600319011261012b576001600160a01b03610576610662565b165f52602e602052602060405f2054604051908152f35b3461012b57602036600319011261012b576001600160a01b036105ae610662565b165f5260208052602060ff60405f2054166040519015158152f35b3461012b575f36600319011261012b576020604051611f408152f35b3461012b575f36600319011261012b5760206040516203f4808152f35b3461012b575f36600319011261012b576014546040516001600160a01b039091168152602090f35b3461012b575f36600319011261012b57807fba279271fb7bbf76a6f3df3cc57bf80647fcafdea60ec3383d90f459de74e7c060209252f35b600435906001600160a01b038216820361012b5756fea26469706673582212207e5f05de0e3cc080e68401a104b369a9d936bafd689a4e69db5791c8bdf0bffa64736f6c634300081e0033";
18
18
  static readonly abi: readonly [{
19
19
  readonly inputs: readonly [];
20
20
  readonly name: "AdapterAlreadySupported";
@@ -274,6 +274,16 @@ export declare class LendingPoolStorage__factory extends ContractFactory {
274
274
  }];
275
275
  readonly stateMutability: "view";
276
276
  readonly type: "function";
277
+ }, {
278
+ readonly inputs: readonly [];
279
+ readonly name: "EMERGENCY_ROLE";
280
+ readonly outputs: readonly [{
281
+ readonly internalType: "bytes32";
282
+ readonly name: "";
283
+ readonly type: "bytes32";
284
+ }];
285
+ readonly stateMutability: "view";
286
+ readonly type: "function";
277
287
  }, {
278
288
  readonly inputs: readonly [];
279
289
  readonly name: "GOVERNANCE_ROLE";
@@ -545,7 +555,7 @@ export declare class LendingPoolStorage__factory extends ContractFactory {
545
555
  readonly type: "uint40";
546
556
  }, {
547
557
  readonly internalType: "uint256";
548
- readonly name: "pendingProtocolFeeAmount";
558
+ readonly name: "scaledPendingProtocolFee";
549
559
  readonly type: "uint256";
550
560
  }];
551
561
  readonly stateMutability: "view";