@raac/rpc 1.2.0-beta.1 → 1.2.0-beta.11

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 (851) hide show
  1. package/dist/RPCLibrary.js +272 -85
  2. package/dist/artifacts/core/collectors/FeeCollector.sol/FeeCollector.json +2 -2
  3. package/dist/artifacts/core/collectors/NFTRoyaltyFeeCollector.sol/NFTRoyaltyFeeCollector.json +15 -2
  4. package/dist/artifacts/core/collectors/RAACTokenCollector.sol/RAACTokenCollector.json +2 -2
  5. package/dist/artifacts/core/collectors/RWAIndexTokenCollector.sol/RWAIndexTokenCollector.json +2 -2
  6. package/dist/artifacts/core/collectors/Treasury.sol/Treasury.json +2 -2
  7. package/dist/artifacts/core/governance/gauges/BaseGauge.sol/BaseGauge.json +208 -129
  8. package/dist/artifacts/core/governance/gauges/GaugeController.sol/GaugeController.json +288 -296
  9. package/dist/artifacts/core/governance/gauges/GaugeRewardsDistributor.sol/GaugeRewardsDistributor.json +188 -281
  10. package/dist/artifacts/core/governance/gauges/RAACGauge.sol/RAACGauge.json +220 -131
  11. package/dist/artifacts/core/governance/gauges/RWAGauge.sol/RWAGauge.json +220 -131
  12. package/dist/artifacts/core/governance/proposals/Governance.sol/Governance.json +367 -98
  13. package/dist/artifacts/core/governance/proposals/TimelockController.sol/TimelockController.json +11 -16
  14. package/dist/artifacts/core/lockers/RAACBotLocker.sol/RAACBotLocker.json +915 -0
  15. package/dist/artifacts/core/lockers/RAACLiquidLocker.sol/RAACLiquidLocker.json +2158 -0
  16. package/dist/artifacts/core/lockers/RAACMaturityVault.sol/RAACMaturityVault.json +911 -0
  17. package/dist/artifacts/core/minters/RAACMinter/RAACMinter.sol/RAACMinter.json +59 -741
  18. package/dist/artifacts/core/oracles/BaseVRFv2Consumer.sol/BaseVRFv2Consumer.json +106 -2
  19. package/dist/artifacts/core/oracles/CrvUSDToUSDOracle.sol/CrvUSDToUSDOracle.json +2 -2
  20. package/dist/artifacts/core/oracles/RAACHousePriceOracle.sol/RAACHousePriceOracle.json +2 -2
  21. package/dist/artifacts/core/oracles/RAACPrimeRateOracle.sol/RAACPrimeRateOracle.json +2 -2
  22. package/dist/artifacts/core/pools/LendingPool/ERC20AssetAdapter.sol/ERC20AssetAdapter.json +15 -2
  23. package/dist/artifacts/core/pools/LendingPool/ERC721AssetAdapter.sol/ERC721AssetAdapter.json +15 -2
  24. package/dist/artifacts/core/pools/LendingPool/LendingPool.sol/LendingPool.json +20 -49
  25. package/dist/artifacts/core/pools/StabilityPool/StabilityPool.sol/StabilityPool.json +2 -2
  26. package/dist/artifacts/core/primitives/ComplianceRegistry.sol/ComplianceRegistry.json +2 -2
  27. package/dist/artifacts/core/primitives/RAACHousePrices.sol/RAACHousePrices.json +2 -2
  28. package/dist/artifacts/core/tokens/DEToken.sol/DEToken.json +21 -2
  29. package/dist/artifacts/core/tokens/LeRAAC.sol/LiquidEscrowedRAAC.json +621 -0
  30. package/dist/artifacts/core/tokens/RAACNFT.sol/RAACNFT.json +101 -74
  31. package/dist/artifacts/core/tokens/RAACToken.sol/RAACToken.json +24 -322
  32. package/dist/artifacts/core/tokens/RToken.sol/RToken.json +2 -2
  33. package/dist/artifacts/core/tokens/RWAIndexToken.sol/RWAIndexToken.json +66 -2
  34. package/dist/artifacts/core/tokens/veRAACToken.sol/veRAACToken.json +79 -32
  35. package/dist/artifacts/core/vaults/ERC20VaultAdapter.sol/ERC20VaultAdapter.json +15 -2
  36. package/dist/artifacts/core/vaults/ERC721VaultAdapter.sol/ERC721VaultAdapter.json +15 -2
  37. package/dist/artifacts/core/vaults/RWAVault.sol/RWAVault.json +46 -2
  38. package/dist/artifacts/mocks/core/oracles/MockVRFCoordinatorV2.sol/MockVRFCoordinatorV2.json +2 -2
  39. package/dist/artifacts/mocks/core/tokens/crvUSDToken.sol/crvUSDToken.json +2 -2
  40. package/dist/artifacts/zap/AladdinZap.sol/AladdinZap.json +398 -0
  41. package/dist/artifacts/zeno/Auction.sol/Auction.json +2 -2
  42. package/dist/artifacts/zeno/AuctionFactory.sol/AuctionFactory.json +2 -2
  43. package/dist/artifacts/zeno/Zeno.sol/Zeno.json +2 -2
  44. package/dist/artifacts/zeno/ZenoFactory.sol/ZenoFactory.json +2 -2
  45. package/dist/configs/chains/1.json +30 -48
  46. package/dist/configs/chains/11155111.json +134 -60
  47. package/dist/configs/chains/17000.json +23 -35
  48. package/dist/configs/chains/18453.json +23 -35
  49. package/dist/configs/chains/8453.json +104 -38
  50. package/dist/contracts/decodeCall.js +61 -0
  51. package/dist/contracts/findContract.js +68 -0
  52. package/dist/contracts/getContractAddress.js +2 -0
  53. package/dist/contracts/governance/_helpers.js +39 -0
  54. package/dist/contracts/governance/distributor/claimAll.js +32 -0
  55. package/dist/contracts/governance/distributor/claimForGauge.js +32 -0
  56. package/dist/contracts/governance/distributor/deposit.js +14 -18
  57. package/dist/contracts/governance/distributor/getClaimableForGauge.js +30 -0
  58. package/dist/contracts/governance/distributor/getClaimedAtEpoch.js +31 -0
  59. package/dist/contracts/governance/distributor/getDepositedAtEpoch.js +30 -0
  60. package/dist/contracts/governance/distributor/getDustLastProcessedEpoch.js +28 -0
  61. package/dist/contracts/governance/distributor/getGaugeController.js +28 -0
  62. package/dist/contracts/governance/distributor/getLastClaimedEpoch.js +30 -0
  63. package/dist/contracts/governance/distributor/getMaxClaimBound.js +29 -0
  64. package/dist/contracts/governance/distributor/getPeriodDuration.js +28 -0
  65. package/dist/contracts/governance/distributor/getRewardToken.js +28 -0
  66. package/dist/contracts/governance/distributor/getRewardTokenInfo.js +10 -20
  67. package/dist/contracts/governance/distributor/getRewardTokenStats.js +30 -0
  68. package/dist/contracts/governance/distributor/index.js +34 -17
  69. package/dist/contracts/governance/distributor/setController.js +31 -0
  70. package/dist/contracts/governance/distributor/setLastClaimedEpoch.js +32 -0
  71. package/dist/contracts/governance/distributor/setMaxClaimBound.js +31 -0
  72. package/dist/contracts/governance/distributor/withdrawDust.js +31 -0
  73. package/dist/contracts/governance/distributor/withdrawRemovedGaugeRewards.js +33 -0
  74. package/dist/contracts/governance/gauge/_apy.js +122 -0
  75. package/dist/contracts/governance/gauge/_tokens.js +36 -0
  76. package/dist/contracts/governance/gauge/addRewardToken.js +24 -0
  77. package/dist/contracts/governance/gauge/approveGaugeToken.js +31 -0
  78. package/dist/contracts/governance/gauge/claimExtraReward.js +24 -0
  79. package/dist/contracts/governance/gauge/claimExtraRewards.js +23 -0
  80. package/dist/contracts/governance/gauge/claimOnBehalfOf.js +26 -0
  81. package/dist/contracts/governance/gauge/claimRewardToken.js +6 -17
  82. package/dist/contracts/governance/gauge/claimRewardsFor.js +24 -0
  83. package/dist/contracts/governance/gauge/depositRewardToken.js +25 -0
  84. package/dist/contracts/governance/gauge/getAllPendingExtraRewards.js +29 -0
  85. package/dist/contracts/governance/gauge/getApy.js +44 -0
  86. package/dist/contracts/governance/gauge/getBalanceOf.js +2 -15
  87. package/dist/contracts/governance/gauge/getControllerAddress.js +27 -0
  88. package/dist/contracts/governance/gauge/getDecimalAdjustment.js +28 -0
  89. package/dist/contracts/governance/gauge/getDepositRAACOnClaim.js +27 -0
  90. package/dist/contracts/governance/gauge/getDistributorData.js +29 -0
  91. package/dist/contracts/governance/gauge/getDistributors.js +27 -0
  92. package/dist/contracts/governance/gauge/getEarnedExtraReward.js +30 -0
  93. package/dist/contracts/governance/gauge/getEarnedReward.js +10 -24
  94. package/dist/contracts/governance/gauge/getExtraRewardTokens.js +27 -0
  95. package/dist/contracts/governance/gauge/getGaugeData.js +39 -0
  96. package/dist/contracts/governance/gauge/getGaugeRewardTokenData.js +37 -0
  97. package/dist/contracts/governance/gauge/getPauseStatus.js +31 -0
  98. package/dist/contracts/governance/gauge/getPendingExtraRewards.js +29 -0
  99. package/dist/contracts/governance/gauge/getPendingRewards.js +10 -24
  100. package/dist/contracts/governance/gauge/getPeriodBoundaries.js +2 -15
  101. package/dist/contracts/governance/gauge/getPeriodDuration.js +2 -15
  102. package/dist/contracts/governance/gauge/getRaacAutolockMin.js +27 -0
  103. package/dist/contracts/governance/gauge/getRawBalanceOf.js +2 -15
  104. package/dist/contracts/governance/gauge/getRawTotalSupply.js +2 -15
  105. package/dist/contracts/governance/gauge/getRewardTokens.js +8 -21
  106. package/dist/contracts/governance/gauge/getTotalSupply.js +2 -15
  107. package/dist/contracts/governance/gauge/getUserApy.js +71 -0
  108. package/dist/contracts/governance/gauge/getUserClaimableRewards.js +83 -0
  109. package/dist/contracts/governance/gauge/getUserGaugeState.js +44 -0
  110. package/dist/contracts/governance/gauge/getUserRewardTokenData.js +30 -0
  111. package/dist/contracts/governance/gauge/getUserWeight.js +28 -0
  112. package/dist/contracts/governance/gauge/index.js +64 -35
  113. package/dist/contracts/governance/gauge/isPaused.js +27 -0
  114. package/dist/contracts/governance/gauge/manageDistributor.js +25 -0
  115. package/dist/contracts/governance/gauge/pullRewardsFromDistributor.js +30 -0
  116. package/dist/contracts/governance/gauge/setController.js +24 -0
  117. package/dist/contracts/governance/gauge/setDepositRAACOnClaim.js +24 -0
  118. package/dist/contracts/governance/gauge/setEmergencyPaused.js +24 -0
  119. package/dist/contracts/governance/gauge/setGaugeRewardDistributor.js +24 -0
  120. package/dist/contracts/governance/gauge/setRaacAutolockMin.js +24 -0
  121. package/dist/contracts/governance/gauge/stake.js +2 -18
  122. package/dist/contracts/governance/gauge/unwrapStakingToken.js +28 -0
  123. package/dist/contracts/governance/gauge/updateUserRewards.js +5 -20
  124. package/dist/contracts/governance/gauge/withdraw.js +2 -18
  125. package/dist/contracts/governance/gauge/wrapStakingToken.js +28 -0
  126. package/dist/contracts/governance/gaugeController/addGauge.js +32 -0
  127. package/dist/contracts/governance/gaugeController/batchVote.js +33 -0
  128. package/dist/contracts/governance/gaugeController/calculateBoost.js +20 -23
  129. package/dist/contracts/governance/gaugeController/forceCompleteCheckpoint.js +32 -0
  130. package/dist/contracts/governance/gaugeController/getActiveGaugeCount.js +28 -0
  131. package/dist/contracts/governance/gaugeController/getActiveGauges.js +10 -13
  132. package/dist/contracts/governance/gaugeController/getConstants.js +37 -0
  133. package/dist/contracts/governance/gaugeController/getCurrentEpoch.js +28 -0
  134. package/dist/contracts/governance/gaugeController/getExpiredGaugeVotePower.js +30 -0
  135. package/dist/contracts/governance/gaugeController/getGauge.js +31 -0
  136. package/dist/contracts/governance/gaugeController/getGaugeDistributor.js +28 -0
  137. package/dist/contracts/governance/gaugeController/getGaugeEmissions.js +163 -0
  138. package/dist/contracts/governance/gaugeController/getGaugeRelativeWeight.js +33 -0
  139. package/dist/contracts/governance/gaugeController/getGaugeRelativeWeightView.js +32 -0
  140. package/dist/contracts/governance/gaugeController/getGaugeWeight.js +10 -8
  141. package/dist/contracts/governance/gaugeController/getLastVoteTime.js +31 -0
  142. package/dist/contracts/governance/gaugeController/getMaxVoteBuckets.js +28 -0
  143. package/dist/contracts/governance/gaugeController/getNextEpoch.js +28 -0
  144. package/dist/contracts/governance/gaugeController/getRegisteredGaugeList.js +28 -0
  145. package/dist/contracts/governance/gaugeController/getTotalWeight.js +8 -7
  146. package/dist/contracts/governance/gaugeController/getUserGaugeVotePower.js +31 -0
  147. package/dist/contracts/governance/gaugeController/getUserVotePowerRemaining.js +10 -9
  148. package/dist/contracts/governance/gaugeController/getVeToken.js +28 -0
  149. package/dist/contracts/governance/gaugeController/getVoteUserLocks.js +32 -0
  150. package/dist/contracts/governance/gaugeController/getVoteUserPower.js +29 -0
  151. package/dist/contracts/governance/gaugeController/getVoteUserSlope.js +32 -0
  152. package/dist/contracts/governance/gaugeController/index.js +53 -23
  153. package/dist/contracts/governance/gaugeController/isGaugeActive.js +11 -9
  154. package/dist/contracts/governance/gaugeController/isPaused.js +28 -0
  155. package/dist/contracts/governance/gaugeController/kick.js +31 -0
  156. package/dist/contracts/governance/gaugeController/removeGauge.js +33 -0
  157. package/dist/contracts/governance/gaugeController/removePowerFromGauge.js +32 -0
  158. package/dist/contracts/governance/gaugeController/setBoostAmplificationEnabled.js +33 -0
  159. package/dist/contracts/governance/gaugeController/setDistributor.js +31 -0
  160. package/dist/contracts/governance/gaugeController/setEmergencyGaugePause.js +33 -0
  161. package/dist/contracts/governance/gaugeController/setEmergencyGaugePauseBatch.js +33 -0
  162. package/dist/contracts/governance/gaugeController/setEmergencyPause.js +31 -0
  163. package/dist/contracts/governance/gaugeController/setMaxVoteBuckets.js +31 -0
  164. package/dist/contracts/governance/gaugeController/vote.js +15 -16
  165. package/dist/contracts/governance/gaugeSystems/_helpers.js +123 -0
  166. package/dist/contracts/governance/gaugeSystems/findGauge.js +14 -0
  167. package/dist/contracts/governance/gaugeSystems/getGaugeSystem.js +14 -0
  168. package/dist/contracts/governance/gaugeSystems/getGaugeSystems.js +13 -0
  169. package/dist/contracts/governance/gaugeSystems/getGauges.js +15 -0
  170. package/dist/contracts/governance/gaugeSystems/index.js +21 -0
  171. package/dist/contracts/governance/proposals/cancel.js +8 -7
  172. package/dist/contracts/governance/proposals/castVote.js +5 -4
  173. package/dist/contracts/governance/proposals/execute.js +5 -4
  174. package/dist/contracts/governance/proposals/getGovernances.js +22 -0
  175. package/dist/contracts/governance/{distributor/getRewardTokens.js → proposals/getLabel.js} +12 -10
  176. package/dist/contracts/governance/proposals/getProposal.js +24 -26
  177. package/dist/contracts/governance/proposals/getProposalCount.js +4 -3
  178. package/dist/contracts/governance/proposals/{getProposalData.js → getProposalEta.js} +12 -16
  179. package/dist/contracts/governance/proposals/getProposalInfo.js +4 -3
  180. package/dist/contracts/governance/proposals/getProposalThreshold.js +4 -3
  181. package/dist/contracts/governance/proposals/getQuorum.js +9 -7
  182. package/dist/contracts/governance/proposals/getQuorumNumerator.js +4 -3
  183. package/dist/contracts/governance/proposals/getRoles.js +34 -0
  184. package/dist/contracts/governance/proposals/getState.js +4 -3
  185. package/dist/contracts/governance/proposals/getVoteReceipt.js +53 -0
  186. package/dist/contracts/governance/proposals/getVotes.js +4 -3
  187. package/dist/contracts/governance/proposals/getVotingDelay.js +4 -3
  188. package/dist/contracts/governance/proposals/getVotingPeriod.js +4 -3
  189. package/dist/contracts/governance/proposals/hasRole.js +31 -0
  190. package/dist/contracts/governance/proposals/hasVoted.js +32 -0
  191. package/dist/contracts/governance/proposals/index.js +22 -4
  192. package/dist/contracts/governance/proposals/propose.js +8 -19
  193. package/dist/contracts/governance/proposals/setParameter.js +46 -0
  194. package/dist/contracts/governance/proposals/setTimelock.js +36 -0
  195. package/dist/contracts/governance/timelock/getConstants.js +4 -3
  196. package/dist/contracts/governance/timelock/getMinDelay.js +4 -3
  197. package/dist/contracts/governance/timelock/getRoles.js +37 -0
  198. package/dist/contracts/governance/timelock/getTimestamp.js +4 -3
  199. package/dist/contracts/governance/timelock/hasRole.js +31 -0
  200. package/dist/contracts/governance/timelock/hashOperationBatch.js +6 -5
  201. package/dist/contracts/governance/timelock/index.js +5 -1
  202. package/dist/contracts/governance/timelock/isOperationDone.js +4 -3
  203. package/dist/contracts/governance/timelock/isOperationPending.js +4 -3
  204. package/dist/contracts/governance/timelock/isOperationReady.js +4 -3
  205. package/dist/contracts/lockers/botLocker/_helpers.js +19 -0
  206. package/dist/contracts/lockers/botLocker/claim.js +16 -0
  207. package/dist/contracts/lockers/botLocker/getClaimable.js +12 -0
  208. package/dist/contracts/lockers/botLocker/getClaimables.js +16 -0
  209. package/dist/contracts/lockers/botLocker/getClaimedRewards.js +13 -0
  210. package/dist/contracts/lockers/botLocker/getLockedTokenIds.js +10 -0
  211. package/dist/contracts/lockers/botLocker/getLocks.js +27 -0
  212. package/dist/contracts/lockers/botLocker/getRewardTokenCount.js +10 -0
  213. package/dist/contracts/lockers/botLocker/getRewardTokens.js +9 -0
  214. package/dist/contracts/lockers/botLocker/lock.js +17 -0
  215. package/dist/contracts/lockers/botLocker/unlock.js +20 -0
  216. package/dist/contracts/lockers/botLocker/unlockAndClaim.js +16 -0
  217. package/dist/contracts/lockers/liquidLocker/_helpers.js +19 -0
  218. package/dist/contracts/lockers/liquidLocker/borrow.js +17 -0
  219. package/dist/contracts/lockers/liquidLocker/deposit.js +17 -0
  220. package/dist/contracts/lockers/liquidLocker/donate.js +16 -0
  221. package/dist/contracts/lockers/liquidLocker/getConfig.js +52 -0
  222. package/dist/contracts/lockers/liquidLocker/getGlobalInfo.js +39 -0
  223. package/dist/contracts/lockers/liquidLocker/getUserInfo.js +28 -0
  224. package/dist/contracts/lockers/liquidLocker/getUserLocks.js +26 -0
  225. package/dist/contracts/lockers/liquidLocker/harvest.js +17 -0
  226. package/dist/contracts/lockers/liquidLocker/isKeeper.js +9 -0
  227. package/dist/contracts/lockers/liquidLocker/processVaultExpiredLocks.js +17 -0
  228. package/dist/contracts/lockers/liquidLocker/repay.js +17 -0
  229. package/dist/contracts/lockers/liquidLocker/requestUnlock.js +17 -0
  230. package/dist/contracts/lockers/liquidLocker/voteGauge.js +17 -0
  231. package/dist/contracts/lockers/liquidLocker/voteGovernance.js +16 -0
  232. package/dist/contracts/lockers/liquidLocker/withdrawUnlocked.js +16 -0
  233. package/dist/contracts/lockers/maturityVault/_helpers.js +19 -0
  234. package/dist/contracts/lockers/maturityVault/claim.js +16 -0
  235. package/dist/contracts/lockers/maturityVault/deposit.js +17 -0
  236. package/dist/contracts/lockers/maturityVault/depositFor.js +16 -0
  237. package/dist/contracts/lockers/maturityVault/distribute.js +17 -0
  238. package/dist/contracts/lockers/maturityVault/exit.js +16 -0
  239. package/dist/contracts/lockers/maturityVault/getConfig.js +26 -0
  240. package/dist/contracts/lockers/maturityVault/getGlobalInfo.js +45 -0
  241. package/dist/contracts/lockers/maturityVault/getUserInfo.js +18 -0
  242. package/dist/contracts/lockers/maturityVault/harvest.js +17 -0
  243. package/dist/contracts/lockers/maturityVault/isWhitelisted.js +9 -0
  244. package/dist/contracts/lockers/maturityVault/updatePendingDistribution.js +16 -0
  245. package/dist/contracts/lockers/maturityVault/withdraw.js +16 -0
  246. package/dist/contracts/lockers/maturityVault/withdrawAll.js +16 -0
  247. package/dist/contracts/tokens/leRAAC/_helpers.js +19 -0
  248. package/dist/contracts/tokens/leRAAC/approve.js +13 -0
  249. package/dist/contracts/tokens/leRAAC/burn.js +16 -0
  250. package/dist/contracts/tokens/leRAAC/burnFrom.js +16 -0
  251. package/dist/contracts/tokens/leRAAC/getAllowance.js +11 -0
  252. package/dist/contracts/tokens/leRAAC/getBalance.js +11 -0
  253. package/dist/contracts/tokens/leRAAC/getMinterInfo.js +15 -0
  254. package/dist/contracts/tokens/leRAAC/getTotalSupply.js +11 -0
  255. package/dist/contracts/tokens/leRAAC/transfer.js +13 -0
  256. package/dist/contracts/tokens/leRAAC/transferFrom.js +13 -0
  257. package/dist/contracts/{governance/gaugeController/isGauge.js → tokens/veRAAC/getRagequitEpochs.js} +12 -10
  258. package/dist/contracts/tokens/veRAAC/increaseWithApproval.js +37 -0
  259. package/dist/contracts/tokens/veRAAC/index.js +7 -1
  260. package/dist/contracts/tokens/veRAAC/lockWithApproval.js +40 -0
  261. package/dist/contracts/zap/aladdin/_helpers.js +19 -0
  262. package/dist/contracts/zap/aladdin/_types.js +38 -0
  263. package/dist/contracts/zap/aladdin/decodeRoute.js +36 -0
  264. package/dist/contracts/zap/aladdin/encodeRoute.js +34 -0
  265. package/dist/contracts/zap/aladdin/getCurvePoolToken.js +13 -0
  266. package/dist/contracts/zap/aladdin/getOwner.js +9 -0
  267. package/dist/contracts/zap/aladdin/getPool2Token.js +12 -0
  268. package/dist/contracts/zap/aladdin/getRoutes.js +16 -0
  269. package/dist/contracts/zap/aladdin/getVersion.js +9 -0
  270. package/dist/contracts/zap/aladdin/rescue.js +16 -0
  271. package/dist/contracts/zap/aladdin/updatePoolTokens.js +19 -0
  272. package/dist/contracts/zap/aladdin/updateRoute.js +31 -0
  273. package/dist/contracts/zap/aladdin/validateRoute.js +80 -0
  274. package/dist/contracts/zap/aladdin/zap.js +18 -0
  275. package/dist/contracts/zap/aladdin/zapFrom.js +18 -0
  276. package/dist/contracts/zap/aladdin/zapWithRoutes.js +28 -0
  277. package/dist/contracts/zap/codec.js +423 -0
  278. package/dist/minter/_helpers.js +19 -0
  279. package/dist/minter/activate.js +18 -0
  280. package/dist/minter/addDistributionPool.js +17 -0
  281. package/dist/minter/calculateScheduledMintableAmount.js +14 -0
  282. package/dist/minter/get.js +44 -112
  283. package/dist/minter/getApy.js +55 -19
  284. package/dist/minter/getDistributionPools.js +39 -0
  285. package/dist/minter/getEmissionPerSecond.js +25 -0
  286. package/dist/minter/getPoolInfo.js +23 -0
  287. package/dist/minter/isPaused.js +9 -0
  288. package/dist/minter/manageDistributionPool.js +18 -0
  289. package/dist/minter/pause.js +24 -0
  290. package/dist/minter/removeDistributionPool.js +20 -0
  291. package/dist/minter/tick.js +12 -24
  292. package/dist/types/RPCLibrary.d.ts +213 -66
  293. package/dist/types/configs/chains/index.d.ts +38 -78
  294. package/dist/types/configs/index.d.ts +19 -39
  295. package/dist/types/contracts/decodeCall.d.ts +33 -0
  296. package/dist/types/contracts/findContract.d.ts +24 -0
  297. package/dist/types/contracts/governance/_helpers.d.ts +28 -0
  298. package/dist/types/contracts/governance/distributor/claimAll.d.ts +13 -0
  299. package/dist/types/contracts/governance/distributor/claimForGauge.d.ts +13 -0
  300. package/dist/types/contracts/governance/distributor/deposit.d.ts +10 -10
  301. package/dist/types/contracts/governance/distributor/getClaimableForGauge.d.ts +13 -0
  302. package/dist/types/contracts/governance/distributor/getClaimedAtEpoch.d.ts +14 -0
  303. package/dist/types/contracts/governance/distributor/getDepositedAtEpoch.d.ts +14 -0
  304. package/dist/types/contracts/governance/distributor/getDustLastProcessedEpoch.d.ts +12 -0
  305. package/dist/types/contracts/governance/distributor/getGaugeController.d.ts +12 -0
  306. package/dist/types/contracts/governance/distributor/getLastClaimedEpoch.d.ts +13 -0
  307. package/dist/types/contracts/governance/distributor/getMaxClaimBound.d.ts +15 -0
  308. package/dist/types/contracts/governance/distributor/getPeriodDuration.d.ts +12 -0
  309. package/dist/types/contracts/governance/distributor/getRewardToken.d.ts +12 -0
  310. package/dist/types/contracts/governance/distributor/getRewardTokenInfo.d.ts +10 -10
  311. package/dist/types/contracts/governance/distributor/getRewardTokenStats.d.ts +17 -0
  312. package/dist/types/contracts/governance/distributor/index.d.ts +19 -8
  313. package/dist/types/contracts/governance/distributor/setController.d.ts +13 -0
  314. package/dist/types/contracts/governance/distributor/setLastClaimedEpoch.d.ts +13 -0
  315. package/dist/types/contracts/governance/distributor/setMaxClaimBound.d.ts +13 -0
  316. package/dist/types/contracts/governance/distributor/withdrawDust.d.ts +13 -0
  317. package/dist/types/contracts/governance/distributor/withdrawRemovedGaugeRewards.d.ts +14 -0
  318. package/dist/types/contracts/governance/gauge/_apy.d.ts +61 -0
  319. package/dist/types/contracts/governance/gauge/_tokens.d.ts +14 -0
  320. package/dist/types/contracts/governance/gauge/addRewardToken.d.ts +10 -0
  321. package/dist/types/contracts/governance/gauge/approveGaugeToken.d.ts +14 -0
  322. package/dist/types/contracts/governance/gauge/claimExtraReward.d.ts +10 -0
  323. package/dist/types/contracts/governance/gauge/claimExtraRewards.d.ts +9 -0
  324. package/dist/types/contracts/governance/gauge/claimOnBehalfOf.d.ts +12 -0
  325. package/dist/types/contracts/governance/gauge/claimRewardToken.d.ts +2 -3
  326. package/dist/types/contracts/governance/gauge/claimRewardsFor.d.ts +10 -0
  327. package/dist/types/contracts/governance/gauge/depositRewardToken.d.ts +11 -0
  328. package/dist/types/contracts/governance/gauge/getAllPendingExtraRewards.d.ts +13 -0
  329. package/dist/types/contracts/governance/gauge/getApy.d.ts +41 -0
  330. package/dist/types/contracts/governance/gauge/getControllerAddress.d.ts +9 -0
  331. package/dist/types/contracts/governance/gauge/getDecimalAdjustment.d.ts +10 -0
  332. package/dist/types/contracts/governance/gauge/getDepositRAACOnClaim.d.ts +9 -0
  333. package/dist/types/contracts/governance/gauge/getDistributorData.d.ts +13 -0
  334. package/dist/types/contracts/governance/gauge/getDistributors.d.ts +9 -0
  335. package/dist/types/contracts/governance/gauge/getEarnedExtraReward.d.ts +13 -0
  336. package/dist/types/contracts/governance/gauge/getEarnedReward.d.ts +5 -5
  337. package/dist/types/contracts/governance/gauge/getExtraRewardTokens.d.ts +9 -0
  338. package/dist/types/contracts/governance/gauge/getGaugeData.d.ts +23 -0
  339. package/dist/types/contracts/governance/gauge/getGaugeRewardTokenData.d.ts +18 -0
  340. package/dist/types/contracts/governance/gauge/getPauseStatus.d.ts +19 -0
  341. package/dist/types/contracts/governance/gauge/getPendingExtraRewards.d.ts +11 -0
  342. package/dist/types/contracts/governance/gauge/getPendingRewards.d.ts +5 -5
  343. package/dist/types/contracts/governance/gauge/getRaacAutolockMin.d.ts +9 -0
  344. package/dist/types/contracts/governance/gauge/getRewardTokens.d.ts +3 -3
  345. package/dist/types/contracts/governance/gauge/getUserApy.d.ts +44 -0
  346. package/dist/types/contracts/governance/gauge/getUserClaimableRewards.d.ts +42 -0
  347. package/dist/types/contracts/governance/gauge/getUserGaugeState.d.ts +31 -0
  348. package/dist/types/contracts/governance/gauge/getUserRewardTokenData.d.ts +17 -0
  349. package/dist/types/contracts/governance/gauge/getUserWeight.d.ts +10 -0
  350. package/dist/types/contracts/governance/gauge/index.d.ts +49 -17
  351. package/dist/types/contracts/governance/gauge/isPaused.d.ts +9 -0
  352. package/dist/types/contracts/governance/gauge/manageDistributor.d.ts +11 -0
  353. package/dist/types/contracts/governance/gauge/pullRewardsFromDistributor.d.ts +11 -0
  354. package/dist/types/contracts/governance/gauge/setController.d.ts +10 -0
  355. package/dist/types/contracts/governance/gauge/setDepositRAACOnClaim.d.ts +10 -0
  356. package/dist/types/contracts/governance/gauge/setEmergencyPaused.d.ts +10 -0
  357. package/dist/types/contracts/governance/gauge/setGaugeRewardDistributor.d.ts +10 -0
  358. package/dist/types/contracts/governance/gauge/setRaacAutolockMin.d.ts +10 -0
  359. package/dist/types/contracts/governance/gauge/unwrapStakingToken.d.ts +12 -0
  360. package/dist/types/contracts/governance/gauge/updateUserRewards.d.ts +2 -1
  361. package/dist/types/contracts/governance/gauge/wrapStakingToken.d.ts +13 -0
  362. package/dist/types/contracts/governance/gaugeController/addGauge.d.ts +13 -0
  363. package/dist/types/contracts/governance/gaugeController/batchVote.d.ts +14 -0
  364. package/dist/types/contracts/governance/gaugeController/calculateBoost.d.ts +10 -8
  365. package/dist/types/contracts/governance/gaugeController/forceCompleteCheckpoint.d.ts +13 -0
  366. package/dist/types/contracts/governance/gaugeController/getActiveGaugeCount.d.ts +12 -0
  367. package/dist/types/contracts/governance/gaugeController/getActiveGauges.d.ts +7 -3
  368. package/dist/types/contracts/governance/gaugeController/getConstants.d.ts +20 -0
  369. package/dist/types/contracts/governance/gaugeController/getCurrentEpoch.d.ts +12 -0
  370. package/dist/types/contracts/governance/gaugeController/getExpiredGaugeVotePower.d.ts +16 -0
  371. package/dist/types/contracts/governance/gaugeController/getGauge.d.ts +18 -0
  372. package/dist/types/contracts/governance/gaugeController/getGaugeDistributor.d.ts +12 -0
  373. package/dist/types/contracts/governance/gaugeController/getGaugeEmissions.d.ts +67 -0
  374. package/dist/types/contracts/governance/gaugeController/getGaugeRelativeWeight.d.ts +14 -0
  375. package/dist/types/contracts/governance/gaugeController/getGaugeRelativeWeightView.d.ts +17 -0
  376. package/dist/types/contracts/governance/gaugeController/getGaugeWeight.d.ts +6 -4
  377. package/dist/types/contracts/governance/gaugeController/getLastVoteTime.d.ts +14 -0
  378. package/dist/types/contracts/governance/gaugeController/getMaxVoteBuckets.d.ts +12 -0
  379. package/dist/types/contracts/governance/gaugeController/getNextEpoch.d.ts +12 -0
  380. package/dist/types/contracts/governance/gaugeController/getRegisteredGaugeList.d.ts +12 -0
  381. package/dist/types/contracts/governance/gaugeController/getTotalWeight.d.ts +5 -3
  382. package/dist/types/contracts/governance/gaugeController/getUserGaugeVotePower.d.ts +14 -0
  383. package/dist/types/contracts/governance/gaugeController/getUserVotePowerRemaining.d.ts +6 -4
  384. package/dist/types/contracts/governance/gaugeController/getVeToken.d.ts +12 -0
  385. package/dist/types/contracts/governance/gaugeController/getVoteUserLocks.d.ts +17 -0
  386. package/dist/types/contracts/governance/gaugeController/getVoteUserPower.d.ts +13 -0
  387. package/dist/types/contracts/governance/gaugeController/getVoteUserSlope.d.ts +18 -0
  388. package/dist/types/contracts/governance/gaugeController/index.d.ts +38 -11
  389. package/dist/types/contracts/governance/gaugeController/isGaugeActive.d.ts +6 -4
  390. package/dist/types/contracts/governance/gaugeController/isPaused.d.ts +12 -0
  391. package/dist/types/contracts/governance/gaugeController/kick.d.ts +13 -0
  392. package/dist/types/contracts/governance/gaugeController/removeGauge.d.ts +14 -0
  393. package/dist/types/contracts/governance/gaugeController/removePowerFromGauge.d.ts +13 -0
  394. package/dist/types/contracts/governance/gaugeController/setBoostAmplificationEnabled.d.ts +14 -0
  395. package/dist/types/contracts/governance/gaugeController/setDistributor.d.ts +13 -0
  396. package/dist/types/contracts/governance/gaugeController/setEmergencyGaugePause.d.ts +14 -0
  397. package/dist/types/contracts/governance/gaugeController/setEmergencyGaugePauseBatch.d.ts +14 -0
  398. package/dist/types/contracts/governance/gaugeController/setEmergencyPause.d.ts +13 -0
  399. package/dist/types/contracts/governance/gaugeController/setMaxVoteBuckets.d.ts +13 -0
  400. package/dist/types/contracts/governance/gaugeController/vote.d.ts +9 -7
  401. package/dist/types/contracts/governance/gaugeSystems/_helpers.d.ts +71 -0
  402. package/dist/types/contracts/governance/gaugeSystems/findGauge.d.ts +11 -0
  403. package/dist/types/contracts/governance/gaugeSystems/getGaugeSystem.d.ts +11 -0
  404. package/dist/types/contracts/governance/gaugeSystems/getGaugeSystems.d.ts +10 -0
  405. package/dist/types/contracts/governance/gaugeSystems/getGauges.d.ts +13 -0
  406. package/dist/types/contracts/governance/gaugeSystems/index.d.ts +5 -0
  407. package/dist/types/contracts/governance/proposals/cancel.d.ts +5 -4
  408. package/dist/types/contracts/governance/proposals/castVote.d.ts +2 -1
  409. package/dist/types/contracts/governance/proposals/execute.d.ts +2 -1
  410. package/dist/types/contracts/governance/proposals/getGovernances.d.ts +11 -0
  411. package/dist/types/contracts/governance/proposals/getLabel.d.ts +11 -0
  412. package/dist/types/contracts/governance/proposals/getProposal.d.ts +8 -12
  413. package/dist/types/contracts/governance/proposals/getProposalCount.d.ts +2 -1
  414. package/dist/types/contracts/governance/proposals/getProposalEta.d.ts +13 -0
  415. package/dist/types/contracts/governance/proposals/getProposalInfo.d.ts +2 -1
  416. package/dist/types/contracts/governance/proposals/getProposalThreshold.d.ts +2 -1
  417. package/dist/types/contracts/governance/proposals/getQuorum.d.ts +6 -4
  418. package/dist/types/contracts/governance/proposals/getQuorumNumerator.d.ts +2 -1
  419. package/dist/types/contracts/governance/proposals/getRoles.d.ts +16 -0
  420. package/dist/types/contracts/governance/proposals/getState.d.ts +2 -1
  421. package/dist/types/contracts/governance/proposals/getVoteReceipt.d.ts +26 -0
  422. package/dist/types/contracts/governance/proposals/getVotes.d.ts +2 -1
  423. package/dist/types/contracts/governance/proposals/getVotingDelay.d.ts +2 -1
  424. package/dist/types/contracts/governance/proposals/getVotingPeriod.d.ts +2 -1
  425. package/dist/types/contracts/governance/proposals/hasRole.d.ts +13 -0
  426. package/dist/types/contracts/governance/proposals/hasVoted.d.ts +14 -0
  427. package/dist/types/contracts/governance/proposals/index.d.ts +11 -2
  428. package/dist/types/contracts/governance/proposals/propose.d.ts +3 -13
  429. package/dist/types/contracts/governance/proposals/setParameter.d.ts +23 -0
  430. package/dist/types/contracts/governance/proposals/setTimelock.d.ts +14 -0
  431. package/dist/types/contracts/governance/timelock/getConstants.d.ts +2 -1
  432. package/dist/types/contracts/governance/timelock/getMinDelay.d.ts +2 -1
  433. package/dist/types/contracts/governance/timelock/getRoles.d.ts +19 -0
  434. package/dist/types/contracts/governance/timelock/getTimestamp.d.ts +2 -1
  435. package/dist/types/contracts/governance/timelock/hasRole.d.ts +13 -0
  436. package/dist/types/contracts/governance/timelock/hashOperationBatch.d.ts +3 -2
  437. package/dist/types/contracts/governance/timelock/index.d.ts +2 -0
  438. package/dist/types/contracts/governance/timelock/isOperationDone.d.ts +2 -1
  439. package/dist/types/contracts/governance/timelock/isOperationPending.d.ts +2 -1
  440. package/dist/types/contracts/governance/timelock/isOperationReady.d.ts +2 -1
  441. package/dist/types/contracts/lockers/botLocker/_helpers.d.ts +4 -0
  442. package/dist/types/contracts/lockers/botLocker/claim.d.ts +6 -0
  443. package/dist/types/contracts/lockers/botLocker/getClaimable.d.ts +6 -0
  444. package/dist/types/contracts/lockers/botLocker/getClaimables.d.ts +10 -0
  445. package/dist/types/contracts/lockers/botLocker/getClaimedRewards.d.ts +7 -0
  446. package/dist/types/contracts/lockers/botLocker/getLockedTokenIds.d.ts +3 -0
  447. package/dist/types/contracts/lockers/botLocker/getLocks.d.ts +15 -0
  448. package/dist/types/contracts/lockers/botLocker/getRewardTokenCount.d.ts +3 -0
  449. package/dist/types/contracts/lockers/botLocker/getRewardTokens.d.ts +3 -0
  450. package/dist/types/contracts/lockers/botLocker/lock.d.ts +7 -0
  451. package/dist/types/contracts/lockers/botLocker/unlock.d.ts +10 -0
  452. package/dist/types/contracts/lockers/botLocker/unlockAndClaim.d.ts +6 -0
  453. package/dist/types/contracts/lockers/liquidLocker/_helpers.d.ts +4 -0
  454. package/dist/types/contracts/lockers/liquidLocker/borrow.d.ts +7 -0
  455. package/dist/types/contracts/lockers/liquidLocker/deposit.d.ts +7 -0
  456. package/dist/types/contracts/lockers/liquidLocker/donate.d.ts +6 -0
  457. package/dist/types/contracts/lockers/liquidLocker/getConfig.d.ts +27 -0
  458. package/dist/types/contracts/lockers/liquidLocker/getGlobalInfo.d.ts +24 -0
  459. package/dist/types/contracts/lockers/liquidLocker/getUserInfo.d.ts +21 -0
  460. package/dist/types/contracts/lockers/liquidLocker/getUserLocks.d.ts +17 -0
  461. package/dist/types/contracts/lockers/liquidLocker/harvest.d.ts +7 -0
  462. package/dist/types/contracts/lockers/liquidLocker/isKeeper.d.ts +3 -0
  463. package/dist/types/contracts/lockers/liquidLocker/processVaultExpiredLocks.d.ts +7 -0
  464. package/dist/types/contracts/lockers/liquidLocker/repay.d.ts +7 -0
  465. package/dist/types/contracts/lockers/liquidLocker/requestUnlock.d.ts +7 -0
  466. package/dist/types/contracts/lockers/liquidLocker/voteGauge.d.ts +7 -0
  467. package/dist/types/contracts/lockers/liquidLocker/voteGovernance.d.ts +6 -0
  468. package/dist/types/contracts/lockers/liquidLocker/withdrawUnlocked.d.ts +6 -0
  469. package/dist/types/contracts/lockers/maturityVault/_helpers.d.ts +4 -0
  470. package/dist/types/contracts/lockers/maturityVault/claim.d.ts +6 -0
  471. package/dist/types/contracts/lockers/maturityVault/deposit.d.ts +7 -0
  472. package/dist/types/contracts/lockers/maturityVault/depositFor.d.ts +6 -0
  473. package/dist/types/contracts/lockers/maturityVault/distribute.d.ts +7 -0
  474. package/dist/types/contracts/lockers/maturityVault/exit.d.ts +6 -0
  475. package/dist/types/contracts/lockers/maturityVault/getConfig.d.ts +12 -0
  476. package/dist/types/contracts/lockers/maturityVault/getGlobalInfo.d.ts +32 -0
  477. package/dist/types/contracts/lockers/maturityVault/getUserInfo.d.ts +14 -0
  478. package/dist/types/contracts/lockers/maturityVault/harvest.d.ts +6 -0
  479. package/dist/types/contracts/lockers/maturityVault/isWhitelisted.d.ts +3 -0
  480. package/dist/types/contracts/lockers/maturityVault/updatePendingDistribution.d.ts +6 -0
  481. package/dist/types/contracts/lockers/maturityVault/withdraw.d.ts +6 -0
  482. package/dist/types/contracts/lockers/maturityVault/withdrawAll.d.ts +6 -0
  483. package/dist/types/contracts/tokens/leRAAC/_helpers.d.ts +4 -0
  484. package/dist/types/contracts/tokens/leRAAC/approve.d.ts +3 -0
  485. package/dist/types/contracts/tokens/leRAAC/burn.d.ts +6 -0
  486. package/dist/types/contracts/tokens/leRAAC/burnFrom.d.ts +6 -0
  487. package/dist/types/contracts/tokens/leRAAC/getAllowance.d.ts +3 -0
  488. package/dist/types/contracts/tokens/leRAAC/getBalance.d.ts +3 -0
  489. package/dist/types/contracts/tokens/leRAAC/getMinterInfo.d.ts +8 -0
  490. package/dist/types/contracts/tokens/leRAAC/getTotalSupply.d.ts +3 -0
  491. package/dist/types/contracts/tokens/leRAAC/transfer.d.ts +3 -0
  492. package/dist/types/contracts/tokens/leRAAC/transferFrom.d.ts +3 -0
  493. package/dist/types/contracts/tokens/veRAAC/getRagequitEpochs.d.ts +11 -0
  494. package/dist/types/contracts/tokens/veRAAC/increaseWithApproval.d.ts +13 -0
  495. package/dist/types/contracts/tokens/veRAAC/index.d.ts +3 -0
  496. package/dist/types/contracts/tokens/veRAAC/lockWithApproval.d.ts +14 -0
  497. package/dist/types/contracts/zap/aladdin/_helpers.d.ts +4 -0
  498. package/dist/types/contracts/zap/aladdin/_types.d.ts +44 -0
  499. package/dist/types/contracts/zap/aladdin/decodeRoute.d.ts +14 -0
  500. package/dist/types/contracts/zap/aladdin/encodeRoute.d.ts +18 -0
  501. package/dist/types/contracts/zap/aladdin/getCurvePoolToken.d.ts +8 -0
  502. package/dist/types/contracts/zap/aladdin/getOwner.d.ts +3 -0
  503. package/dist/types/contracts/zap/aladdin/getPool2Token.d.ts +6 -0
  504. package/dist/types/contracts/zap/aladdin/getRoutes.d.ts +13 -0
  505. package/dist/types/contracts/zap/aladdin/getVersion.d.ts +3 -0
  506. package/dist/types/contracts/zap/aladdin/rescue.d.ts +6 -0
  507. package/dist/types/contracts/zap/aladdin/updatePoolTokens.d.ts +6 -0
  508. package/dist/types/contracts/zap/aladdin/updateRoute.d.ts +13 -0
  509. package/dist/types/contracts/zap/aladdin/validateRoute.d.ts +26 -0
  510. package/dist/types/contracts/zap/aladdin/zap.d.ts +8 -0
  511. package/dist/types/contracts/zap/aladdin/zapFrom.d.ts +8 -0
  512. package/dist/types/contracts/zap/aladdin/zapWithRoutes.d.ts +11 -0
  513. package/dist/types/contracts/zap/codec.d.ts +36 -0
  514. package/dist/types/minter/_helpers.d.ts +4 -0
  515. package/dist/types/minter/activate.d.ts +8 -0
  516. package/dist/types/minter/addDistributionPool.d.ts +7 -0
  517. package/dist/types/minter/calculateScheduledMintableAmount.d.ts +8 -0
  518. package/dist/types/minter/get.d.ts +28 -16
  519. package/dist/types/minter/getApy.d.ts +19 -2
  520. package/dist/types/minter/getDistributionPools.d.ts +16 -0
  521. package/dist/types/minter/getEmissionPerSecond.d.ts +8 -0
  522. package/dist/types/minter/getPoolInfo.d.ts +13 -0
  523. package/dist/types/minter/isPaused.d.ts +3 -0
  524. package/dist/types/minter/manageDistributionPool.d.ts +8 -0
  525. package/dist/types/minter/pause.d.ts +6 -0
  526. package/dist/types/minter/removeDistributionPool.d.ts +10 -0
  527. package/dist/types/minter/tick.d.ts +7 -3
  528. package/dist/types/typechain-types/@openzeppelin/{contracts-v3/token/ERC20/IERC20.d.ts → contracts/token/ERC20/extensions/ERC20Capped.d.ts} +34 -18
  529. package/dist/types/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +1 -0
  530. package/dist/types/typechain-types/@openzeppelin/contracts-upgradeable/index.d.ts +2 -0
  531. package/dist/types/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.d.ts +155 -0
  532. package/dist/types/typechain-types/@openzeppelin/contracts-upgradeable/token/ERC20/index.d.ts +1 -0
  533. package/dist/types/typechain-types/@openzeppelin/index.d.ts +0 -2
  534. package/dist/types/typechain-types/contracts/core/collectors/NFTRoyaltyFeeCollector.sol/NFTRoyaltyFeeCollector.d.ts +15 -1
  535. package/dist/types/typechain-types/contracts/core/governance/gauges/BaseGauge.d.ts +169 -122
  536. package/dist/types/typechain-types/contracts/core/governance/gauges/GaugeController.d.ts +260 -225
  537. package/dist/types/typechain-types/contracts/core/governance/gauges/GaugeRewardsDistributor.d.ts +173 -212
  538. package/dist/types/typechain-types/contracts/core/governance/gauges/RAACGauge.d.ts +169 -122
  539. package/dist/types/typechain-types/contracts/core/governance/gauges/RWAGauge.d.ts +169 -122
  540. package/dist/types/typechain-types/contracts/core/governance/proposals/Governance.d.ts +202 -82
  541. package/dist/types/typechain-types/contracts/core/governance/proposals/TimelockController.d.ts +8 -8
  542. package/dist/types/typechain-types/contracts/core/lockers/RAACLiquidLocker.d.ts +101 -171
  543. package/dist/types/typechain-types/contracts/core/lockers/RAACMaturityVault.d.ts +5 -38
  544. package/dist/types/typechain-types/contracts/core/minters/RAACMinter/RAACMinter.d.ts +58 -418
  545. package/dist/types/typechain-types/contracts/core/oracles/BaseVRFv2Consumer.d.ts +108 -2
  546. package/dist/types/typechain-types/contracts/core/oracles/KYCVerifyModule.sol/IKYCVerifyModule.d.ts +25 -0
  547. package/dist/types/typechain-types/{@openzeppelin/contracts-v3/access/Ownable.d.ts → contracts/core/oracles/KYCVerifyModule.sol/KYCVerifyModule.d.ts} +10 -6
  548. package/dist/types/typechain-types/contracts/core/oracles/KYCVerifyModule.sol/index.d.ts +2 -0
  549. package/dist/types/typechain-types/contracts/core/oracles/PmUSDToUSDOracle.d.ts +338 -0
  550. package/dist/types/typechain-types/contracts/core/oracles/RWAIndexTokenOracle.sol/RWAIndexTokenOracle.d.ts +60 -4
  551. package/dist/types/typechain-types/contracts/core/oracles/ZkMeKYCVerifyModule.sol/ZKMEKYCVerifyModule.d.ts +110 -0
  552. package/dist/types/typechain-types/contracts/core/oracles/ZkMeKYCVerifyModule.sol/index.d.ts +1 -0
  553. package/dist/types/typechain-types/contracts/core/oracles/index.d.ts +5 -0
  554. package/dist/types/typechain-types/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/ERC20AssetAdapter.d.ts +15 -1
  555. package/dist/types/typechain-types/contracts/core/pools/LendingPool/ERC721AssetAdapter.d.ts +15 -1
  556. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LendingPool.d.ts +9 -23
  557. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LendingPoolStorage.d.ts +8 -4
  558. package/dist/types/typechain-types/contracts/core/pools/LendingPool/LiquidationProxy.d.ts +8 -4
  559. package/dist/types/typechain-types/contracts/core/pools/LendingPool/VaultProxy.d.ts +8 -4
  560. package/dist/types/typechain-types/contracts/core/pools/StabilityPool/LiquidationSwap.d.ts +70 -1
  561. package/dist/types/typechain-types/contracts/core/tokens/DEToken.d.ts +16 -1
  562. package/dist/types/typechain-types/contracts/core/tokens/LeRAAC.sol/LiquidEscrowedRAAC.d.ts +3 -3
  563. package/dist/types/typechain-types/contracts/core/tokens/RAACNFT.d.ts +65 -50
  564. package/dist/types/typechain-types/contracts/core/tokens/RAACToken.d.ts +6 -191
  565. package/dist/types/typechain-types/contracts/core/tokens/RWAIndexToken.d.ts +62 -1
  566. package/dist/types/typechain-types/contracts/core/tokens/SToken.d.ts +804 -0
  567. package/dist/types/typechain-types/contracts/core/tokens/index.d.ts +1 -0
  568. package/dist/types/typechain-types/contracts/core/vaults/ERC20VaultAdapter.d.ts +15 -1
  569. package/dist/types/typechain-types/contracts/core/vaults/ERC721VaultAdapter.d.ts +15 -1
  570. package/dist/types/typechain-types/contracts/core/vaults/RAACNFTVaultAdapterV2.d.ts +15 -1
  571. package/dist/types/typechain-types/contracts/core/vaults/RWAVault.d.ts +28 -2
  572. package/dist/types/typechain-types/contracts/index.d.ts +2 -0
  573. package/dist/types/typechain-types/contracts/interfaces/IZap.d.ts +15 -1
  574. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IBaseGauge.d.ts +104 -125
  575. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IGaugeController.d.ts +210 -34
  576. package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IGaugeRewardsDistributor.d.ts +112 -151
  577. package/dist/types/typechain-types/contracts/interfaces/core/governance/proposals/IGovernance.d.ts +36 -51
  578. package/dist/types/typechain-types/contracts/interfaces/core/governance/proposals/ITimelockController.d.ts +8 -8
  579. package/dist/types/typechain-types/contracts/interfaces/core/lockers/IRaacLiquidLocker.d.ts +30 -37
  580. package/dist/types/typechain-types/contracts/interfaces/core/minters/RAACMinter/IRAACMinter.d.ts +68 -205
  581. package/dist/types/typechain-types/contracts/interfaces/core/oracles/IBaseVRFv2Consumer.d.ts +100 -2
  582. package/dist/types/typechain-types/contracts/interfaces/core/oracles/IZKMEVerifyUpgradeable.d.ts +15 -1
  583. package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/ILendingPool.d.ts +1 -19
  584. package/dist/types/typechain-types/contracts/interfaces/core/pools/StabilityPool/ILiquidationSwap.d.ts +70 -1
  585. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IDEToken.d.ts +16 -1
  586. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IRAACNFT.d.ts +36 -25
  587. package/dist/types/typechain-types/contracts/interfaces/core/tokens/IRAACToken.d.ts +2 -179
  588. package/dist/types/typechain-types/contracts/interfaces/core/tokens/ISToken.d.ts +454 -0
  589. package/dist/types/typechain-types/contracts/interfaces/core/tokens/index.d.ts +1 -0
  590. package/dist/types/typechain-types/contracts/interfaces/core/vaults/IBaseHybridVault.d.ts +15 -1
  591. package/dist/types/typechain-types/contracts/interfaces/core/vaults/IVaultAssetAdapter.d.ts +19 -3
  592. package/dist/types/typechain-types/contracts/interfaces/curve/ICurveCrvUSDVault.d.ts +47 -1
  593. package/dist/types/typechain-types/contracts/mocks/core/curve/CurveCrvUSDVaultMock.d.ts +47 -1
  594. package/dist/types/typechain-types/contracts/mocks/core/index.d.ts +2 -0
  595. package/dist/types/typechain-types/contracts/mocks/core/minters/MockRAACMinterRewardsReceiver.d.ts +181 -0
  596. package/dist/types/typechain-types/contracts/mocks/core/minters/index.d.ts +1 -0
  597. package/dist/types/typechain-types/contracts/mocks/core/oracles/MockZKMEVerifyUpgradeable.d.ts +15 -1
  598. package/dist/types/typechain-types/contracts/mocks/core/pools/MockLendingPoolDebtToken.d.ts +1 -19
  599. package/dist/types/typechain-types/contracts/mocks/core/tokens/MockFeeOnTransferToken.d.ts +163 -0
  600. package/dist/types/typechain-types/contracts/mocks/core/tokens/index.d.ts +1 -0
  601. package/dist/types/typechain-types/contracts/mocks/libraries/index.d.ts +2 -0
  602. package/dist/types/typechain-types/contracts/mocks/libraries/minters/EmissionScheduleMock.d.ts +91 -0
  603. package/dist/types/typechain-types/contracts/mocks/libraries/minters/index.d.ts +1 -0
  604. package/dist/types/typechain-types/contracts/rwaf/ChainlinkOracleAdapter.sol/ChainlinkOracleAdapter.d.ts +212 -0
  605. package/dist/types/typechain-types/contracts/rwaf/ChainlinkOracleAdapter.sol/IRWACoordinator.d.ts +67 -0
  606. package/dist/types/typechain-types/contracts/rwaf/ChainlinkOracleAdapter.sol/index.d.ts +2 -0
  607. package/dist/types/typechain-types/contracts/rwaf/TokenBlender.sol/ITokenBlender.d.ts +331 -0
  608. package/dist/types/typechain-types/contracts/rwaf/TokenBlender.sol/TokenBlender.d.ts +671 -0
  609. package/dist/types/typechain-types/contracts/rwaf/TokenBlender.sol/index.d.ts +2 -0
  610. package/dist/types/typechain-types/contracts/rwaf/index.d.ts +4 -0
  611. package/dist/types/typechain-types/contracts/zap/AladdinZap.d.ts +15 -1
  612. package/dist/types/typechain-types/contracts/zap/index.d.ts +0 -2
  613. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/functions/v1_0_0/libraries/FunctionsRequest__factory.d.ts +1 -1
  614. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwnerWithProposal__factory.d.ts +1 -1
  615. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner__factory.d.ts +1 -1
  616. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/dev/libraries/VRFV2PlusClient__factory.d.ts +1 -1
  617. package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/mocks/VRFCoordinatorV2_5Mock__factory.d.ts +1 -1
  618. package/dist/types/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Capped__factory.d.ts +271 -0
  619. package/dist/types/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.d.ts +1 -0
  620. package/dist/types/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.d.ts +1 -1
  621. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.d.ts +1 -1
  622. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.d.ts +1 -1
  623. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.d.ts +1 -1
  624. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.d.ts +1 -1
  625. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.d.ts +1 -1
  626. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/MerkleProof__factory.d.ts +1 -1
  627. package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.d.ts +1 -1
  628. package/dist/types/typechain-types/factories/@openzeppelin/contracts-upgradeable/index.d.ts +1 -0
  629. package/dist/types/typechain-types/factories/@openzeppelin/{contracts-v3/token/ERC20/IERC20__factory.d.ts → contracts-upgradeable/token/ERC20/ERC20Upgradeable__factory.d.ts} +122 -10
  630. package/dist/types/typechain-types/factories/@openzeppelin/contracts-upgradeable/token/ERC20/index.d.ts +1 -0
  631. package/dist/types/typechain-types/factories/@openzeppelin/index.d.ts +0 -1
  632. package/dist/types/typechain-types/factories/contracts/core/collectors/ERC20Collector__factory.d.ts +1 -1
  633. package/dist/types/typechain-types/factories/contracts/core/collectors/FeeCollector__factory.d.ts +1 -1
  634. package/dist/types/typechain-types/factories/contracts/core/collectors/NFTRoyaltyFeeCollector.sol/NFTRoyaltyFeeCollector__factory.d.ts +11 -1
  635. package/dist/types/typechain-types/factories/contracts/core/collectors/RAACTokenCollector__factory.d.ts +1 -1
  636. package/dist/types/typechain-types/factories/contracts/core/collectors/RWAIndexTokenCollector__factory.d.ts +1 -1
  637. package/dist/types/typechain-types/factories/contracts/core/collectors/Treasury__factory.d.ts +1 -1
  638. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/BaseGauge__factory.d.ts +166 -107
  639. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeController__factory.d.ts +242 -242
  640. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeRewardsDistributor__factory.d.ts +164 -232
  641. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RAACGauge__factory.d.ts +177 -110
  642. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RWAGauge__factory.d.ts +177 -110
  643. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/VeBoostProxy__factory.d.ts +1 -1
  644. package/dist/types/typechain-types/factories/contracts/core/governance/gauges/VeBoost__factory.d.ts +1 -1
  645. package/dist/types/typechain-types/factories/contracts/core/governance/proposals/Governance__factory.d.ts +288 -81
  646. package/dist/types/typechain-types/factories/contracts/core/governance/proposals/TimelockController__factory.d.ts +11 -15
  647. package/dist/types/typechain-types/factories/contracts/core/lockers/RAACBotLocker__factory.d.ts +1 -1
  648. package/dist/types/typechain-types/factories/contracts/core/lockers/RAACLiquidLocker__factory.d.ts +129 -197
  649. package/dist/types/typechain-types/factories/contracts/core/lockers/RAACMaturityVault__factory.d.ts +11 -51
  650. package/dist/types/typechain-types/factories/contracts/core/lockers/RAACNFTLocker__factory.d.ts +1 -1
  651. package/dist/types/typechain-types/factories/contracts/core/minters/RAACMinter/RAACMinter__factory.d.ts +28 -557
  652. package/dist/types/typechain-types/factories/contracts/core/minters/RAACReleaseOrchestrator/RAACReleaseOrchestrator__factory.d.ts +1 -1
  653. package/dist/types/typechain-types/factories/contracts/core/oracles/BaseVRFv2Consumer__factory.d.ts +81 -1
  654. package/dist/types/typechain-types/factories/contracts/core/oracles/CrvUSDToUSDOracle.sol/CrvUSDToUSDOracle__factory.d.ts +1 -1
  655. package/dist/types/typechain-types/factories/contracts/core/oracles/KYCVerifyModule.sol/IKYCVerifyModule__factory.d.ts +25 -0
  656. package/dist/types/typechain-types/factories/{@openzeppelin/contracts-v3/access/Ownable__factory.d.ts → contracts/core/oracles/KYCVerifyModule.sol/KYCVerifyModule__factory.d.ts} +38 -4
  657. package/dist/types/typechain-types/factories/contracts/core/oracles/KYCVerifyModule.sol/index.d.ts +2 -0
  658. package/dist/types/typechain-types/factories/contracts/core/oracles/PmUSDToUSDOracle__factory.d.ts +443 -0
  659. package/dist/types/typechain-types/factories/contracts/core/oracles/RAACHousePriceOracle__factory.d.ts +1 -1
  660. package/dist/types/typechain-types/factories/contracts/core/oracles/RAACPrimeRateOracle__factory.d.ts +1 -1
  661. package/dist/types/typechain-types/factories/contracts/core/oracles/RWAIndexTokenOracle.sol/RWAIndexTokenOracle__factory.d.ts +97 -3
  662. package/dist/types/typechain-types/factories/contracts/core/oracles/ZkMeKYCVerifyModule.sol/ZKMEKYCVerifyModule__factory.d.ts +181 -0
  663. package/dist/types/typechain-types/factories/contracts/core/oracles/ZkMeKYCVerifyModule.sol/index.d.ts +1 -0
  664. package/dist/types/typechain-types/factories/contracts/core/oracles/crvUSDPriceOracle.sol/CrvUSDPriceOracle__factory.d.ts +1 -1
  665. package/dist/types/typechain-types/factories/contracts/core/oracles/index.d.ts +3 -0
  666. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/ERC20AssetAdapter__factory.d.ts +11 -1
  667. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/ERC721AssetAdapter__factory.d.ts +11 -1
  668. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LendingPoolStorage__factory.d.ts +9 -5
  669. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LendingPool__factory.d.ts +9 -31
  670. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LiquidationProxy__factory.d.ts +9 -5
  671. package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/VaultProxy__factory.d.ts +9 -5
  672. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/LiquidationStrategyProxy__factory.d.ts +1 -1
  673. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/LiquidationSwap__factory.d.ts +62 -3
  674. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/StabilityPoolStorage__factory.d.ts +1 -1
  675. package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/StabilityPool__factory.d.ts +1 -1
  676. package/dist/types/typechain-types/factories/contracts/core/primitives/ComplianceRegistry.sol/ComplianceRegistry__factory.d.ts +1 -1
  677. package/dist/types/typechain-types/factories/contracts/core/primitives/RAACHousePrices__factory.d.ts +1 -1
  678. package/dist/types/typechain-types/factories/contracts/core/tokens/DEToken__factory.d.ts +16 -1
  679. package/dist/types/typechain-types/factories/contracts/core/tokens/DebtToken__factory.d.ts +1 -1
  680. package/dist/types/typechain-types/factories/contracts/core/tokens/LPToken__factory.d.ts +1 -1
  681. package/dist/types/typechain-types/factories/contracts/core/tokens/LeRAAC.sol/LiquidEscrowedRAAC__factory.d.ts +7 -3
  682. package/dist/types/typechain-types/factories/contracts/core/tokens/RAACNFT__factory.d.ts +79 -58
  683. package/dist/types/typechain-types/factories/contracts/core/tokens/RAACToken__factory.d.ts +21 -252
  684. package/dist/types/typechain-types/factories/contracts/core/tokens/RToken__factory.d.ts +1 -1
  685. package/dist/types/typechain-types/factories/contracts/core/tokens/RWAIndexToken__factory.d.ts +51 -1
  686. package/dist/types/typechain-types/factories/contracts/core/tokens/SToken__factory.d.ts +1153 -0
  687. package/dist/types/typechain-types/factories/contracts/core/tokens/VeRAACToken__factory.d.ts +1 -1
  688. package/dist/types/typechain-types/factories/contracts/core/tokens/index.d.ts +1 -0
  689. package/dist/types/typechain-types/factories/contracts/core/vaults/ERC20VaultAdapter__factory.d.ts +11 -1
  690. package/dist/types/typechain-types/factories/contracts/core/vaults/ERC721VaultAdapter__factory.d.ts +11 -1
  691. package/dist/types/typechain-types/factories/contracts/core/vaults/RAACNFTVaultAdapterOracle.sol/RAACNFTVaultAdapterOracle__factory.d.ts +1 -1
  692. package/dist/types/typechain-types/factories/contracts/core/vaults/RAACNFTVaultAdapterV2__factory.d.ts +11 -1
  693. package/dist/types/typechain-types/factories/contracts/core/vaults/RWAVault__factory.d.ts +35 -1
  694. package/dist/types/typechain-types/factories/contracts/index.d.ts +1 -0
  695. package/dist/types/typechain-types/factories/contracts/interfaces/IZap__factory.d.ts +18 -0
  696. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IBaseGauge__factory.d.ts +96 -107
  697. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IGaugeController__factory.d.ts +241 -22
  698. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IGaugeRewardsDistributor__factory.d.ts +72 -158
  699. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/proposals/IGovernance__factory.d.ts +70 -40
  700. package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/proposals/ITimelockController__factory.d.ts +8 -4
  701. package/dist/types/typechain-types/factories/contracts/interfaces/core/lockers/IRaacLiquidLocker__factory.d.ts +26 -29
  702. package/dist/types/typechain-types/factories/contracts/interfaces/core/minters/RAACMinter/IRAACMinter__factory.d.ts +44 -230
  703. package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IBaseVRFv2Consumer__factory.d.ts +70 -0
  704. package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IZKMEVerifyUpgradeable__factory.d.ts +18 -0
  705. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/ILendingPool__factory.d.ts +0 -26
  706. package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/StabilityPool/ILiquidationSwap__factory.d.ts +55 -0
  707. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IDEToken__factory.d.ts +15 -0
  708. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IRAACNFT__factory.d.ts +28 -15
  709. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IRAACToken__factory.d.ts +0 -219
  710. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/ISToken__factory.d.ts +564 -0
  711. package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/index.d.ts +1 -0
  712. package/dist/types/typechain-types/factories/contracts/interfaces/core/vaults/IBaseHybridVault__factory.d.ts +10 -0
  713. package/dist/types/typechain-types/factories/contracts/interfaces/core/vaults/IVaultAssetAdapter__factory.d.ts +10 -0
  714. package/dist/types/typechain-types/factories/contracts/interfaces/curve/ICurveCrvUSDVault__factory.d.ts +66 -0
  715. package/dist/types/typechain-types/factories/contracts/libraries/governance/BoostCalculator__factory.d.ts +1 -1
  716. package/dist/types/typechain-types/factories/contracts/libraries/governance/LockManager__factory.d.ts +1 -1
  717. package/dist/types/typechain-types/factories/contracts/libraries/governance/PowerCheckpoint__factory.d.ts +1 -1
  718. package/dist/types/typechain-types/factories/contracts/libraries/governance/RagequitLib__factory.d.ts +1 -1
  719. package/dist/types/typechain-types/factories/contracts/libraries/governance/RewardLib__factory.d.ts +1 -1
  720. package/dist/types/typechain-types/factories/contracts/libraries/math/TimeWeightedAverage__factory.d.ts +1 -1
  721. package/dist/types/typechain-types/factories/contracts/libraries/pools/LendingPoolFeeLibrary__factory.d.ts +1 -1
  722. package/dist/types/typechain-types/factories/contracts/libraries/pools/ReserveLibrary__factory.d.ts +1 -1
  723. package/dist/types/typechain-types/factories/contracts/libraries/utils/StringUtils__factory.d.ts +1 -1
  724. package/dist/types/typechain-types/factories/contracts/mocks/ERC20BurnableMock__factory.d.ts +1 -1
  725. package/dist/types/typechain-types/factories/contracts/mocks/core/collectors/MockTreasury__factory.d.ts +1 -1
  726. package/dist/types/typechain-types/factories/contracts/mocks/core/collectors/MockWETH__factory.d.ts +1 -1
  727. package/dist/types/typechain-types/factories/contracts/mocks/core/curve/CurveCrvUSDVaultMock__factory.d.ts +67 -1
  728. package/dist/types/typechain-types/factories/contracts/mocks/core/curve/CurveLiquidityGaugeV5Mock.sol/CurveLiquidityGaugeV5Mock__factory.d.ts +1 -1
  729. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/gauges/MockGaugeController__factory.d.ts +1 -1
  730. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/libraries/LockManagerMock__factory.d.ts +1 -1
  731. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/proposals/TimelockPayableTestTarget__factory.d.ts +1 -1
  732. package/dist/types/typechain-types/factories/contracts/mocks/core/governance/proposals/TimelockTestTarget__factory.d.ts +1 -1
  733. package/dist/types/typechain-types/factories/contracts/mocks/core/index.d.ts +1 -0
  734. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LLamaLocker.sol/LlamaLocker__factory.d.ts +1 -1
  735. package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/MockLamaLocker__factory.d.ts +1 -1
  736. package/dist/types/typechain-types/factories/contracts/mocks/core/minters/MockRAACMinterRewardsReceiver__factory.d.ts +184 -0
  737. package/dist/types/typechain-types/factories/contracts/mocks/core/minters/index.d.ts +1 -0
  738. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockChainlinkAggregator__factory.d.ts +1 -1
  739. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockCurveEMA.sol/MockCurveEMA__factory.d.ts +1 -1
  740. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockERC20PriceOracle__factory.d.ts +1 -1
  741. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockFunctionsRouter.sol/MockFunctionsRouter__factory.d.ts +1 -1
  742. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockOracle__factory.d.ts +1 -1
  743. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockRAACNFTVaultAdapterNAVOracle__factory.d.ts +1 -1
  744. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockVRFCoordinatorV2__factory.d.ts +1 -1
  745. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockZKMEVerifyUpgradeable__factory.d.ts +19 -1
  746. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/TestRAACHousePriceOracle__factory.d.ts +1 -1
  747. package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/TestRAACPrimeRateOracle__factory.d.ts +1 -1
  748. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/CurveStyleCrvUSDiRAACPool__factory.d.ts +1 -1
  749. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPoolCollector__factory.d.ts +1 -1
  750. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPoolDebtToken__factory.d.ts +1 -27
  751. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPool__factory.d.ts +1 -1
  752. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLiquidityPool__factory.d.ts +1 -1
  753. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockPool__factory.d.ts +1 -1
  754. package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockStabilityPool__factory.d.ts +1 -1
  755. package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockChainAnalysis.sol/MockChainAnalysis__factory.d.ts +1 -1
  756. package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockContractWithConfig__factory.d.ts +1 -1
  757. package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockContract__factory.d.ts +1 -1
  758. package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockDistributableContract__factory.d.ts +1 -1
  759. package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/RAACHousePricesMock__factory.d.ts +1 -1
  760. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/CrvUSDTokenLimited__factory.d.ts +1 -1
  761. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/CrvUSDToken__factory.d.ts +1 -1
  762. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/ERC20Mock__factory.d.ts +1 -1
  763. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/ERC721Mock__factory.d.ts +1 -1
  764. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockCollectableUnderlying__factory.d.ts +1 -1
  765. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockFeeCollectorToken__factory.d.ts +1 -1
  766. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockFeeOnTransferToken__factory.d.ts +306 -0
  767. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockToken__factory.d.ts +1 -1
  768. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockUSDC__factory.d.ts +1 -1
  769. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/RAACMockERC20__factory.d.ts +1 -1
  770. package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/index.d.ts +1 -0
  771. package/dist/types/typechain-types/factories/contracts/mocks/core/vaults/MockVault__factory.d.ts +1 -1
  772. package/dist/types/typechain-types/factories/contracts/mocks/libraries/MockStringUtils__factory.d.ts +1 -1
  773. package/dist/types/typechain-types/factories/contracts/mocks/libraries/MockTimeUtils__factory.d.ts +1 -1
  774. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/BoostCalculatorMock__factory.d.ts +1 -1
  775. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/PowerCheckpointMock__factory.d.ts +1 -1
  776. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/RagequitHarness__factory.d.ts +1 -1
  777. package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/RewardIntegralCalculatorMock.sol/MockRewardIntegralCalculator__factory.d.ts +1 -1
  778. package/dist/types/typechain-types/factories/contracts/mocks/libraries/index.d.ts +1 -0
  779. package/dist/types/typechain-types/factories/contracts/mocks/libraries/math/TimeWeightedAverageMock__factory.d.ts +1 -1
  780. package/dist/types/typechain-types/factories/contracts/mocks/libraries/math/WadRayMathMock__factory.d.ts +1 -1
  781. package/dist/types/typechain-types/factories/contracts/mocks/libraries/minters/EmissionScheduleMock__factory.d.ts +115 -0
  782. package/dist/types/typechain-types/factories/contracts/mocks/libraries/minters/index.d.ts +1 -0
  783. package/dist/types/typechain-types/factories/contracts/mocks/libraries/pools/ReserveLibraryMockCalculation__factory.d.ts +1 -1
  784. package/dist/types/typechain-types/factories/contracts/mocks/libraries/pools/ReserveLibraryMock__factory.d.ts +1 -1
  785. package/dist/types/typechain-types/factories/contracts/mocks/tests/MaliciousDeposit__factory.d.ts +1 -1
  786. package/dist/types/typechain-types/factories/contracts/mocks/tests/MaliciousWithdraw__factory.d.ts +1 -1
  787. package/dist/types/typechain-types/factories/contracts/mocks/tests/VeRAACFuzzHelper__factory.d.ts +1 -1
  788. package/dist/types/typechain-types/factories/contracts/rwaf/ChainlinkOracleAdapter.sol/ChainlinkOracleAdapter__factory.d.ts +295 -0
  789. package/dist/types/typechain-types/factories/contracts/rwaf/ChainlinkOracleAdapter.sol/IRWACoordinator__factory.d.ts +43 -0
  790. package/dist/types/typechain-types/factories/contracts/rwaf/ChainlinkOracleAdapter.sol/index.d.ts +2 -0
  791. package/dist/types/typechain-types/factories/contracts/rwaf/TokenBlender.sol/ITokenBlender__factory.d.ts +409 -0
  792. package/dist/types/typechain-types/factories/contracts/rwaf/TokenBlender.sol/TokenBlender__factory.d.ts +990 -0
  793. package/dist/types/typechain-types/factories/contracts/rwaf/TokenBlender.sol/index.d.ts +2 -0
  794. package/dist/types/typechain-types/factories/contracts/rwaf/index.d.ts +2 -0
  795. package/dist/types/typechain-types/factories/contracts/zap/AladdinZap__factory.d.ts +19 -1
  796. package/dist/types/typechain-types/factories/contracts/zap/index.d.ts +0 -2
  797. package/dist/types/typechain-types/factories/contracts/zeno/AuctionFactory__factory.d.ts +1 -1
  798. package/dist/types/typechain-types/factories/contracts/zeno/Auction__factory.d.ts +1 -1
  799. package/dist/types/typechain-types/factories/contracts/zeno/ZENOFactory__factory.d.ts +1 -1
  800. package/dist/types/typechain-types/factories/contracts/zeno/ZENO__factory.d.ts +1 -1
  801. package/dist/types/typechain-types/index.d.ts +34 -8
  802. package/dist/types/utils/artifacts.d.ts +677 -116
  803. package/dist/types/utils/contracts.d.ts +36 -76
  804. package/dist/utils/artifacts.js +16 -0
  805. package/dist/utils/contracts.js +1 -1
  806. package/package.json +1 -1
  807. package/dist/contracts/governance/distributor/getAvailableBalance.js +0 -29
  808. package/dist/contracts/governance/distributor/getGaugeRewardTokens.js +0 -28
  809. package/dist/contracts/governance/distributor/getTransferableBalance.js +0 -30
  810. package/dist/contracts/governance/distributor/isRewardTokenApproved.js +0 -29
  811. package/dist/contracts/governance/distributor/isTokenApproved.js +0 -29
  812. package/dist/contracts/governance/gauge/claimReward.js +0 -44
  813. package/dist/contracts/governance/gauge/getAllEarnedRewards.js +0 -51
  814. package/dist/contracts/governance/gauge/getAllPendingRewards.js +0 -41
  815. package/dist/contracts/governance/gauge/getUserGaugeVoteWeight.js +0 -42
  816. package/dist/contracts/governance/gauge/getWorkingBalance.js +0 -43
  817. package/dist/contracts/governance/gauge/syncRewardTokens.js +0 -51
  818. package/dist/contracts/governance/gaugeController/checkpoint.js +0 -33
  819. package/dist/contracts/governance/gaugeController/checkpointGauge.js +0 -34
  820. package/dist/contracts/governance/gaugeController/getUserGaugeVoteWeight.js +0 -30
  821. package/dist/tests/test.js +0 -32
  822. package/dist/types/contracts/governance/distributor/getAvailableBalance.d.ts +0 -11
  823. package/dist/types/contracts/governance/distributor/getGaugeRewardTokens.d.ts +0 -11
  824. package/dist/types/contracts/governance/distributor/getRewardTokens.d.ts +0 -10
  825. package/dist/types/contracts/governance/distributor/getTransferableBalance.d.ts +0 -12
  826. package/dist/types/contracts/governance/distributor/isRewardTokenApproved.d.ts +0 -12
  827. package/dist/types/contracts/governance/distributor/isTokenApproved.d.ts +0 -11
  828. package/dist/types/contracts/governance/gauge/claimReward.d.ts +0 -11
  829. package/dist/types/contracts/governance/gauge/getAllEarnedRewards.d.ts +0 -17
  830. package/dist/types/contracts/governance/gauge/getAllPendingRewards.d.ts +0 -19
  831. package/dist/types/contracts/governance/gauge/getUserGaugeVoteWeight.d.ts +0 -14
  832. package/dist/types/contracts/governance/gauge/getWorkingBalance.d.ts +0 -12
  833. package/dist/types/contracts/governance/gauge/syncRewardTokens.d.ts +0 -13
  834. package/dist/types/contracts/governance/gaugeController/checkpoint.d.ts +0 -11
  835. package/dist/types/contracts/governance/gaugeController/checkpointGauge.d.ts +0 -12
  836. package/dist/types/contracts/governance/gaugeController/getUserGaugeVoteWeight.d.ts +0 -12
  837. package/dist/types/contracts/governance/gaugeController/isGauge.d.ts +0 -11
  838. package/dist/types/contracts/governance/proposals/getProposalData.d.ts +0 -18
  839. package/dist/types/tests/test.d.ts +0 -1
  840. package/dist/types/typechain-types/@openzeppelin/contracts-v3/access/index.d.ts +0 -1
  841. package/dist/types/typechain-types/@openzeppelin/contracts-v3/index.d.ts +0 -4
  842. package/dist/types/typechain-types/@openzeppelin/contracts-v3/token/ERC20/index.d.ts +0 -1
  843. package/dist/types/typechain-types/contracts/zap/AladdinCRVZap.d.ts +0 -83
  844. package/dist/types/typechain-types/contracts/zap/AladdinConvexVaultZap.d.ts +0 -172
  845. package/dist/types/typechain-types/factories/@openzeppelin/contracts-v3/access/index.d.ts +0 -1
  846. package/dist/types/typechain-types/factories/@openzeppelin/contracts-v3/index.d.ts +0 -2
  847. package/dist/types/typechain-types/factories/@openzeppelin/contracts-v3/token/ERC20/index.d.ts +0 -1
  848. package/dist/types/typechain-types/factories/contracts/zap/AladdinCRVZap__factory.d.ts +0 -107
  849. package/dist/types/typechain-types/factories/contracts/zap/AladdinConvexVaultZap__factory.d.ts +0 -208
  850. /package/dist/types/typechain-types/@openzeppelin/{contracts-v3 → contracts-upgradeable}/token/index.d.ts +0 -0
  851. /package/dist/types/typechain-types/factories/@openzeppelin/{contracts-v3 → contracts-upgradeable}/token/index.d.ts +0 -0
@@ -37,12 +37,12 @@
37
37
  },
38
38
  {
39
39
  "inputs": [],
40
- "name": "ArrayLengthMismatch",
40
+ "name": "ActiveGauge",
41
41
  "type": "error"
42
42
  },
43
43
  {
44
44
  "inputs": [],
45
- "name": "EmergencyPaused",
45
+ "name": "ArrayLengthMismatch",
46
46
  "type": "error"
47
47
  },
48
48
  {
@@ -55,11 +55,6 @@
55
55
  "name": "ExpectedPause",
56
56
  "type": "error"
57
57
  },
58
- {
59
- "inputs": [],
60
- "name": "GaugeAlreadyActive",
61
- "type": "error"
62
- },
63
58
  {
64
59
  "inputs": [],
65
60
  "name": "GaugeAlreadyExists",
@@ -72,7 +67,7 @@
72
67
  },
73
68
  {
74
69
  "inputs": [],
75
- "name": "GaugeNotFound",
70
+ "name": "GaugePaused",
76
71
  "type": "error"
77
72
  },
78
73
  {
@@ -105,6 +100,11 @@
105
100
  "name": "LockExpiresSoon",
106
101
  "type": "error"
107
102
  },
103
+ {
104
+ "inputs": [],
105
+ "name": "NoPower",
106
+ "type": "error"
107
+ },
108
108
  {
109
109
  "inputs": [],
110
110
  "name": "NoVeTokenBalance",
@@ -130,6 +130,16 @@
130
130
  "name": "VoteDelayNotElapsed",
131
131
  "type": "error"
132
132
  },
133
+ {
134
+ "inputs": [],
135
+ "name": "VoteWeightTooLow",
136
+ "type": "error"
137
+ },
138
+ {
139
+ "inputs": [],
140
+ "name": "ZeroLocked",
141
+ "type": "error"
142
+ },
133
143
  {
134
144
  "anonymous": false,
135
145
  "inputs": [
@@ -149,6 +159,31 @@
149
159
  "name": "BoostAmplificationToggled",
150
160
  "type": "event"
151
161
  },
162
+ {
163
+ "anonymous": false,
164
+ "inputs": [
165
+ {
166
+ "indexed": true,
167
+ "internalType": "address",
168
+ "name": "gauge",
169
+ "type": "address"
170
+ },
171
+ {
172
+ "indexed": false,
173
+ "internalType": "bool",
174
+ "name": "paused",
175
+ "type": "bool"
176
+ },
177
+ {
178
+ "indexed": true,
179
+ "internalType": "address",
180
+ "name": "triggeredBy",
181
+ "type": "address"
182
+ }
183
+ ],
184
+ "name": "EmergencyGaugePauseUpdated",
185
+ "type": "event"
186
+ },
152
187
  {
153
188
  "anonymous": false,
154
189
  "inputs": [
@@ -170,15 +205,9 @@
170
205
  "internalType": "address",
171
206
  "name": "gauge",
172
207
  "type": "address"
173
- },
174
- {
175
- "indexed": true,
176
- "internalType": "address",
177
- "name": "triggeredBy",
178
- "type": "address"
179
208
  }
180
209
  ],
181
- "name": "EmergencyShutdown",
210
+ "name": "GaugeAdded",
182
211
  "type": "event"
183
212
  },
184
213
  {
@@ -189,9 +218,21 @@
189
218
  "internalType": "address",
190
219
  "name": "gauge",
191
220
  "type": "address"
221
+ },
222
+ {
223
+ "indexed": false,
224
+ "internalType": "uint256",
225
+ "name": "bias",
226
+ "type": "uint256"
227
+ },
228
+ {
229
+ "indexed": false,
230
+ "internalType": "uint256",
231
+ "name": "slope",
232
+ "type": "uint256"
192
233
  }
193
234
  ],
194
- "name": "GaugeAdded",
235
+ "name": "GaugeKicked",
195
236
  "type": "event"
196
237
  },
197
238
  {
@@ -202,6 +243,12 @@
202
243
  "internalType": "address",
203
244
  "name": "gauge",
204
245
  "type": "address"
246
+ },
247
+ {
248
+ "indexed": false,
249
+ "internalType": "uint256",
250
+ "name": "totalWithdrawn",
251
+ "type": "uint256"
205
252
  }
206
253
  ],
207
254
  "name": "GaugeRemoved",
@@ -211,19 +258,38 @@
211
258
  "anonymous": false,
212
259
  "inputs": [
213
260
  {
214
- "indexed": true,
261
+ "indexed": false,
215
262
  "internalType": "address",
216
- "name": "gauge",
263
+ "name": "oldDistributor",
217
264
  "type": "address"
218
265
  },
219
266
  {
220
267
  "indexed": false,
221
- "internalType": "bool",
222
- "name": "isActive",
223
- "type": "bool"
268
+ "internalType": "address",
269
+ "name": "newDistributor",
270
+ "type": "address"
224
271
  }
225
272
  ],
226
- "name": "GaugeStatusUpdated",
273
+ "name": "GaugeRewardsDistributorUpdated",
274
+ "type": "event"
275
+ },
276
+ {
277
+ "anonymous": false,
278
+ "inputs": [
279
+ {
280
+ "indexed": false,
281
+ "internalType": "uint256",
282
+ "name": "oldValue",
283
+ "type": "uint256"
284
+ },
285
+ {
286
+ "indexed": false,
287
+ "internalType": "uint256",
288
+ "name": "newValue",
289
+ "type": "uint256"
290
+ }
291
+ ],
292
+ "name": "MaxVoteBucketsUpdated",
227
293
  "type": "event"
228
294
  },
229
295
  {
@@ -370,7 +436,7 @@
370
436
  {
371
437
  "indexed": false,
372
438
  "internalType": "uint256",
373
- "name": "slope",
439
+ "name": "locked",
374
440
  "type": "uint256"
375
441
  }
376
442
  ],
@@ -397,17 +463,29 @@
397
463
  "type": "event"
398
464
  },
399
465
  {
400
- "inputs": [],
401
- "name": "CHECKPOINT_INTERVAL",
402
- "outputs": [
466
+ "anonymous": false,
467
+ "inputs": [
403
468
  {
469
+ "indexed": true,
470
+ "internalType": "address",
471
+ "name": "gauge",
472
+ "type": "address"
473
+ },
474
+ {
475
+ "indexed": false,
404
476
  "internalType": "uint256",
405
- "name": "",
477
+ "name": "oldVP",
478
+ "type": "uint256"
479
+ },
480
+ {
481
+ "indexed": false,
482
+ "internalType": "uint256",
483
+ "name": "newVotingPower",
406
484
  "type": "uint256"
407
485
  }
408
486
  ],
409
- "stateMutability": "view",
410
- "type": "function"
487
+ "name": "VotingPowerRemovedInactiveGauge",
488
+ "type": "event"
411
489
  },
412
490
  {
413
491
  "inputs": [],
@@ -463,7 +541,7 @@
463
541
  },
464
542
  {
465
543
  "inputs": [],
466
- "name": "MAX_CHECKPOINT_ITERATIONS",
544
+ "name": "MAX_VOTE_WEIGHT",
467
545
  "outputs": [
468
546
  {
469
547
  "internalType": "uint256",
@@ -476,7 +554,7 @@
476
554
  },
477
555
  {
478
556
  "inputs": [],
479
- "name": "MAX_VOTE_WEIGHT",
557
+ "name": "MIN_BOOST",
480
558
  "outputs": [
481
559
  {
482
560
  "internalType": "uint256",
@@ -489,7 +567,7 @@
489
567
  },
490
568
  {
491
569
  "inputs": [],
492
- "name": "MIN_BOOST",
570
+ "name": "MIN_VOTE_WEIGHT",
493
571
  "outputs": [
494
572
  {
495
573
  "internalType": "uint256",
@@ -502,7 +580,7 @@
502
580
  },
503
581
  {
504
582
  "inputs": [],
505
- "name": "MIN_VOTE_WEIGHT",
583
+ "name": "WEEK",
506
584
  "outputs": [
507
585
  {
508
586
  "internalType": "uint256",
@@ -515,7 +593,7 @@
515
593
  },
516
594
  {
517
595
  "inputs": [],
518
- "name": "WEEK",
596
+ "name": "WEIGHT_PRECISION",
519
597
  "outputs": [
520
598
  {
521
599
  "internalType": "uint256",
@@ -528,7 +606,7 @@
528
606
  },
529
607
  {
530
608
  "inputs": [],
531
- "name": "WEIGHT_PRECISION",
609
+ "name": "WEIGHT_VOTE_DELAY",
532
610
  "outputs": [
533
611
  {
534
612
  "internalType": "uint256",
@@ -541,11 +619,11 @@
541
619
  },
542
620
  {
543
621
  "inputs": [],
544
- "name": "WEIGHT_VOTE_DELAY",
622
+ "name": "activeGaugeCount",
545
623
  "outputs": [
546
624
  {
547
625
  "internalType": "uint256",
548
- "name": "",
626
+ "name": "count",
549
627
  "type": "uint256"
550
628
  }
551
629
  ],
@@ -660,13 +738,6 @@
660
738
  "stateMutability": "view",
661
739
  "type": "function"
662
740
  },
663
- {
664
- "inputs": [],
665
- "name": "checkpoint",
666
- "outputs": [],
667
- "stateMutability": "nonpayable",
668
- "type": "function"
669
- },
670
741
  {
671
742
  "inputs": [
672
743
  {
@@ -675,93 +746,28 @@
675
746
  "type": "address"
676
747
  }
677
748
  ],
678
- "name": "checkpointGauge",
679
- "outputs": [],
680
- "stateMutability": "nonpayable",
681
- "type": "function"
682
- },
683
- {
684
- "inputs": [
685
- {
686
- "internalType": "address",
687
- "name": "",
688
- "type": "address"
689
- }
690
- ],
691
- "name": "currentGaugePoint",
749
+ "name": "forceCompleteCheckpoint",
692
750
  "outputs": [
693
751
  {
694
- "internalType": "int128",
695
- "name": "bias",
696
- "type": "int128"
697
- },
698
- {
699
- "internalType": "int128",
700
- "name": "slope",
701
- "type": "int128"
702
- },
703
- {
704
- "internalType": "uint256",
705
- "name": "timestamp",
706
- "type": "uint256"
752
+ "internalType": "bool",
753
+ "name": "completed",
754
+ "type": "bool"
707
755
  }
708
756
  ],
709
- "stateMutability": "view",
757
+ "stateMutability": "nonpayable",
710
758
  "type": "function"
711
759
  },
712
760
  {
713
761
  "inputs": [],
714
- "name": "currentTotalPoint",
762
+ "name": "gaugeDistributor",
715
763
  "outputs": [
716
764
  {
717
- "internalType": "int128",
718
- "name": "bias",
719
- "type": "int128"
720
- },
721
- {
722
- "internalType": "int128",
723
- "name": "slope",
724
- "type": "int128"
725
- },
726
- {
727
- "internalType": "uint256",
728
- "name": "timestamp",
729
- "type": "uint256"
730
- }
731
- ],
732
- "stateMutability": "view",
733
- "type": "function"
734
- },
735
- {
736
- "inputs": [
737
- {
738
- "internalType": "address",
739
- "name": "gauge",
740
- "type": "address"
741
- }
742
- ],
743
- "name": "emergencyShutdown",
744
- "outputs": [],
745
- "stateMutability": "nonpayable",
746
- "type": "function"
747
- },
748
- {
749
- "inputs": [
750
- {
751
- "internalType": "address",
752
- "name": "gauge",
765
+ "internalType": "contract IGaugeRewardsDistributor",
766
+ "name": "",
753
767
  "type": "address"
754
768
  }
755
769
  ],
756
- "name": "forceCompleteCheckpoint",
757
- "outputs": [
758
- {
759
- "internalType": "bool",
760
- "name": "completed",
761
- "type": "bool"
762
- }
763
- ],
764
- "stateMutability": "nonpayable",
770
+ "stateMutability": "view",
765
771
  "type": "function"
766
772
  },
767
773
  {
@@ -834,6 +840,30 @@
834
840
  "stateMutability": "view",
835
841
  "type": "function"
836
842
  },
843
+ {
844
+ "inputs": [
845
+ {
846
+ "internalType": "address",
847
+ "name": "user",
848
+ "type": "address"
849
+ }
850
+ ],
851
+ "name": "getExpiredGaugeVotePower",
852
+ "outputs": [
853
+ {
854
+ "internalType": "uint256",
855
+ "name": "expiredGaugePower",
856
+ "type": "uint256"
857
+ },
858
+ {
859
+ "internalType": "address[]",
860
+ "name": "",
861
+ "type": "address[]"
862
+ }
863
+ ],
864
+ "stateMutability": "view",
865
+ "type": "function"
866
+ },
837
867
  {
838
868
  "inputs": [
839
869
  {
@@ -849,6 +879,11 @@
849
879
  ],
850
880
  "name": "getGaugeRelativeWeight",
851
881
  "outputs": [
882
+ {
883
+ "internalType": "uint256",
884
+ "name": "",
885
+ "type": "uint256"
886
+ },
852
887
  {
853
888
  "internalType": "uint256",
854
889
  "name": "",
@@ -873,6 +908,11 @@
873
908
  ],
874
909
  "name": "getGaugeRelativeWeightView",
875
910
  "outputs": [
911
+ {
912
+ "internalType": "uint256",
913
+ "name": "",
914
+ "type": "uint256"
915
+ },
876
916
  {
877
917
  "internalType": "uint256",
878
918
  "name": "",
@@ -894,7 +934,7 @@
894
934
  "outputs": [
895
935
  {
896
936
  "internalType": "uint256",
897
- "name": "",
937
+ "name": "w",
898
938
  "type": "uint256"
899
939
  }
900
940
  ],
@@ -914,6 +954,19 @@
914
954
  "stateMutability": "view",
915
955
  "type": "function"
916
956
  },
957
+ {
958
+ "inputs": [],
959
+ "name": "getRegisteredGaugeList",
960
+ "outputs": [
961
+ {
962
+ "internalType": "address[]",
963
+ "name": "",
964
+ "type": "address[]"
965
+ }
966
+ ],
967
+ "stateMutability": "view",
968
+ "type": "function"
969
+ },
917
970
  {
918
971
  "inputs": [
919
972
  {
@@ -939,7 +992,7 @@
939
992
  "outputs": [
940
993
  {
941
994
  "internalType": "uint256",
942
- "name": "",
995
+ "name": "w",
943
996
  "type": "uint256"
944
997
  }
945
998
  ],
@@ -959,7 +1012,7 @@
959
1012
  "type": "address"
960
1013
  }
961
1014
  ],
962
- "name": "getUserGaugeVoteWeight",
1015
+ "name": "getUserGaugeVotePower",
963
1016
  "outputs": [
964
1017
  {
965
1018
  "internalType": "uint256",
@@ -989,6 +1042,42 @@
989
1042
  "stateMutability": "view",
990
1043
  "type": "function"
991
1044
  },
1045
+ {
1046
+ "inputs": [
1047
+ {
1048
+ "internalType": "address",
1049
+ "name": "user",
1050
+ "type": "address"
1051
+ },
1052
+ {
1053
+ "internalType": "address",
1054
+ "name": "gauge",
1055
+ "type": "address"
1056
+ }
1057
+ ],
1058
+ "name": "getVoteUserLocks",
1059
+ "outputs": [
1060
+ {
1061
+ "components": [
1062
+ {
1063
+ "internalType": "uint256",
1064
+ "name": "locked",
1065
+ "type": "uint256"
1066
+ },
1067
+ {
1068
+ "internalType": "uint256",
1069
+ "name": "unlockTime",
1070
+ "type": "uint256"
1071
+ }
1072
+ ],
1073
+ "internalType": "struct IGaugeController.LockVoteEntry[]",
1074
+ "name": "",
1075
+ "type": "tuple[]"
1076
+ }
1077
+ ],
1078
+ "stateMutability": "view",
1079
+ "type": "function"
1080
+ },
992
1081
  {
993
1082
  "inputs": [
994
1083
  {
@@ -1039,7 +1128,7 @@
1039
1128
  "type": "address"
1040
1129
  }
1041
1130
  ],
1042
- "name": "isGauge",
1131
+ "name": "isGaugeActive",
1043
1132
  "outputs": [
1044
1133
  {
1045
1134
  "internalType": "bool",
@@ -1051,14 +1140,8 @@
1051
1140
  "type": "function"
1052
1141
  },
1053
1142
  {
1054
- "inputs": [
1055
- {
1056
- "internalType": "address",
1057
- "name": "gauge",
1058
- "type": "address"
1059
- }
1060
- ],
1061
- "name": "isGaugeActive",
1143
+ "inputs": [],
1144
+ "name": "isPaused",
1062
1145
  "outputs": [
1063
1146
  {
1064
1147
  "internalType": "bool",
@@ -1082,57 +1165,6 @@
1082
1165
  "stateMutability": "nonpayable",
1083
1166
  "type": "function"
1084
1167
  },
1085
- {
1086
- "inputs": [
1087
- {
1088
- "internalType": "address",
1089
- "name": "",
1090
- "type": "address"
1091
- }
1092
- ],
1093
- "name": "lastCheckpoint",
1094
- "outputs": [
1095
- {
1096
- "internalType": "uint256",
1097
- "name": "",
1098
- "type": "uint256"
1099
- }
1100
- ],
1101
- "stateMutability": "view",
1102
- "type": "function"
1103
- },
1104
- {
1105
- "inputs": [
1106
- {
1107
- "internalType": "address",
1108
- "name": "",
1109
- "type": "address"
1110
- }
1111
- ],
1112
- "name": "lastGaugeUpdate",
1113
- "outputs": [
1114
- {
1115
- "internalType": "uint256",
1116
- "name": "",
1117
- "type": "uint256"
1118
- }
1119
- ],
1120
- "stateMutability": "view",
1121
- "type": "function"
1122
- },
1123
- {
1124
- "inputs": [],
1125
- "name": "lastTotalCheckpoint",
1126
- "outputs": [
1127
- {
1128
- "internalType": "uint256",
1129
- "name": "",
1130
- "type": "uint256"
1131
- }
1132
- ],
1133
- "stateMutability": "view",
1134
- "type": "function"
1135
- },
1136
1168
  {
1137
1169
  "inputs": [
1138
1170
  {
@@ -1146,7 +1178,7 @@
1146
1178
  "type": "address"
1147
1179
  }
1148
1180
  ],
1149
- "name": "lastUserVoteTime",
1181
+ "name": "lastVoteTime",
1150
1182
  "outputs": [
1151
1183
  {
1152
1184
  "internalType": "uint256",
@@ -1158,14 +1190,8 @@
1158
1190
  "type": "function"
1159
1191
  },
1160
1192
  {
1161
- "inputs": [
1162
- {
1163
- "internalType": "address",
1164
- "name": "",
1165
- "type": "address"
1166
- }
1167
- ],
1168
- "name": "lastVoteTime",
1193
+ "inputs": [],
1194
+ "name": "maxVoteBuckets",
1169
1195
  "outputs": [
1170
1196
  {
1171
1197
  "internalType": "uint256",
@@ -1206,7 +1232,7 @@
1206
1232
  },
1207
1233
  {
1208
1234
  "internalType": "uint256",
1209
- "name": "slope",
1235
+ "name": "locked",
1210
1236
  "type": "uint256"
1211
1237
  }
1212
1238
  ],
@@ -1235,7 +1261,7 @@
1235
1261
  },
1236
1262
  {
1237
1263
  "internalType": "uint256",
1238
- "name": "slope",
1264
+ "name": "locked",
1239
1265
  "type": "uint256"
1240
1266
  }
1241
1267
  ],
@@ -1248,6 +1274,11 @@
1248
1274
  "internalType": "address",
1249
1275
  "name": "gaugeAddress",
1250
1276
  "type": "address"
1277
+ },
1278
+ {
1279
+ "internalType": "address",
1280
+ "name": "recipient",
1281
+ "type": "address"
1251
1282
  }
1252
1283
  ],
1253
1284
  "name": "removeGauge",
@@ -1255,6 +1286,19 @@
1255
1286
  "stateMutability": "nonpayable",
1256
1287
  "type": "function"
1257
1288
  },
1289
+ {
1290
+ "inputs": [
1291
+ {
1292
+ "internalType": "address",
1293
+ "name": "gauge",
1294
+ "type": "address"
1295
+ }
1296
+ ],
1297
+ "name": "removePowerFromGauge",
1298
+ "outputs": [],
1299
+ "stateMutability": "nonpayable",
1300
+ "type": "function"
1301
+ },
1258
1302
  {
1259
1303
  "inputs": [
1260
1304
  {
@@ -1312,12 +1356,12 @@
1312
1356
  {
1313
1357
  "inputs": [
1314
1358
  {
1315
- "internalType": "bool",
1316
- "name": "paused",
1317
- "type": "bool"
1359
+ "internalType": "address",
1360
+ "name": "_gaugeDistributor",
1361
+ "type": "address"
1318
1362
  }
1319
1363
  ],
1320
- "name": "setEmergencyPause",
1364
+ "name": "setDistributor",
1321
1365
  "outputs": [],
1322
1366
  "stateMutability": "nonpayable",
1323
1367
  "type": "function"
@@ -1326,86 +1370,60 @@
1326
1370
  "inputs": [
1327
1371
  {
1328
1372
  "internalType": "address",
1329
- "name": "",
1373
+ "name": "gauge",
1330
1374
  "type": "address"
1331
1375
  },
1332
1376
  {
1333
- "internalType": "uint256",
1334
- "name": "",
1335
- "type": "uint256"
1336
- }
1337
- ],
1338
- "name": "slopeChanges",
1339
- "outputs": [
1340
- {
1341
- "internalType": "int128",
1342
- "name": "",
1343
- "type": "int128"
1377
+ "internalType": "bool",
1378
+ "name": "paused",
1379
+ "type": "bool"
1344
1380
  }
1345
1381
  ],
1346
- "stateMutability": "view",
1382
+ "name": "setEmergencyGaugePause",
1383
+ "outputs": [],
1384
+ "stateMutability": "nonpayable",
1347
1385
  "type": "function"
1348
1386
  },
1349
1387
  {
1350
1388
  "inputs": [
1351
1389
  {
1352
- "internalType": "bytes4",
1353
- "name": "interfaceId",
1354
- "type": "bytes4"
1355
- }
1356
- ],
1357
- "name": "supportsInterface",
1358
- "outputs": [
1390
+ "internalType": "address[]",
1391
+ "name": "gaugeList",
1392
+ "type": "address[]"
1393
+ },
1359
1394
  {
1360
- "internalType": "bool",
1361
- "name": "",
1362
- "type": "bool"
1395
+ "internalType": "bool[]",
1396
+ "name": "status",
1397
+ "type": "bool[]"
1363
1398
  }
1364
1399
  ],
1365
- "stateMutability": "view",
1400
+ "name": "setEmergencyGaugePauseBatch",
1401
+ "outputs": [],
1402
+ "stateMutability": "nonpayable",
1366
1403
  "type": "function"
1367
1404
  },
1368
1405
  {
1369
- "inputs": [],
1370
- "name": "timeSum",
1371
- "outputs": [
1406
+ "inputs": [
1372
1407
  {
1373
- "internalType": "uint256",
1374
- "name": "",
1375
- "type": "uint256"
1408
+ "internalType": "bool",
1409
+ "name": "paused",
1410
+ "type": "bool"
1376
1411
  }
1377
1412
  ],
1378
- "stateMutability": "view",
1413
+ "name": "setEmergencyPause",
1414
+ "outputs": [],
1415
+ "stateMutability": "nonpayable",
1379
1416
  "type": "function"
1380
1417
  },
1381
1418
  {
1382
1419
  "inputs": [
1383
- {
1384
- "internalType": "address",
1385
- "name": "",
1386
- "type": "address"
1387
- }
1388
- ],
1389
- "name": "timeWeight",
1390
- "outputs": [
1391
1420
  {
1392
1421
  "internalType": "uint256",
1393
- "name": "",
1422
+ "name": "_k",
1394
1423
  "type": "uint256"
1395
1424
  }
1396
1425
  ],
1397
- "stateMutability": "view",
1398
- "type": "function"
1399
- },
1400
- {
1401
- "inputs": [
1402
- {
1403
- "internalType": "address",
1404
- "name": "gaugeAddress",
1405
- "type": "address"
1406
- }
1407
- ],
1408
- "name": "toggleGaugeStatus",
1426
+ "name": "setMaxVoteBuckets",
1409
1427
  "outputs": [],
1410
1428
  "stateMutability": "nonpayable",
1411
1429
  "type": "function"
@@ -1413,36 +1431,25 @@
1413
1431
  {
1414
1432
  "inputs": [
1415
1433
  {
1416
- "internalType": "uint256",
1417
- "name": "",
1418
- "type": "uint256"
1434
+ "internalType": "bytes4",
1435
+ "name": "interfaceId",
1436
+ "type": "bytes4"
1419
1437
  }
1420
1438
  ],
1421
- "name": "totalSlopeChanges",
1439
+ "name": "supportsInterface",
1422
1440
  "outputs": [
1423
1441
  {
1424
- "internalType": "int128",
1442
+ "internalType": "bool",
1425
1443
  "name": "",
1426
- "type": "int128"
1444
+ "type": "bool"
1427
1445
  }
1428
1446
  ],
1429
1447
  "stateMutability": "view",
1430
1448
  "type": "function"
1431
1449
  },
1432
1450
  {
1433
- "inputs": [
1434
- {
1435
- "internalType": "address",
1436
- "name": "",
1437
- "type": "address"
1438
- },
1439
- {
1440
- "internalType": "address",
1441
- "name": "",
1442
- "type": "address"
1443
- }
1444
- ],
1445
- "name": "userGaugeVoteWeight",
1451
+ "inputs": [],
1452
+ "name": "timeSum",
1446
1453
  "outputs": [
1447
1454
  {
1448
1455
  "internalType": "uint256",
@@ -1455,37 +1462,17 @@
1455
1462
  },
1456
1463
  {
1457
1464
  "inputs": [
1458
- {
1459
- "internalType": "address",
1460
- "name": "",
1461
- "type": "address"
1462
- },
1463
1465
  {
1464
1466
  "internalType": "address",
1465
1467
  "name": "",
1466
1468
  "type": "address"
1467
1469
  }
1468
1470
  ],
1469
- "name": "userVotePoint",
1471
+ "name": "timeWeight",
1470
1472
  "outputs": [
1471
- {
1472
- "internalType": "int128",
1473
- "name": "bias",
1474
- "type": "int128"
1475
- },
1476
- {
1477
- "internalType": "int128",
1478
- "name": "slope",
1479
- "type": "int128"
1480
- },
1481
1473
  {
1482
1474
  "internalType": "uint256",
1483
- "name": "timestamp",
1484
- "type": "uint256"
1485
- },
1486
- {
1487
- "internalType": "uint256",
1488
- "name": "expiryWeek",
1475
+ "name": "",
1489
1476
  "type": "uint256"
1490
1477
  }
1491
1478
  ],
@@ -1494,13 +1481,18 @@
1494
1481
  },
1495
1482
  {
1496
1483
  "inputs": [
1484
+ {
1485
+ "internalType": "address",
1486
+ "name": "",
1487
+ "type": "address"
1488
+ },
1497
1489
  {
1498
1490
  "internalType": "address",
1499
1491
  "name": "",
1500
1492
  "type": "address"
1501
1493
  }
1502
1494
  ],
1503
- "name": "userVotePowerUsed",
1495
+ "name": "userGaugeVoteWeight",
1504
1496
  "outputs": [
1505
1497
  {
1506
1498
  "internalType": "uint256",
@@ -1584,11 +1576,11 @@
1584
1576
  "type": "uint256"
1585
1577
  }
1586
1578
  ],
1587
- "name": "voteUserLockSlopes",
1579
+ "name": "voteUserLockEntries",
1588
1580
  "outputs": [
1589
1581
  {
1590
1582
  "internalType": "uint256",
1591
- "name": "slope",
1583
+ "name": "locked",
1592
1584
  "type": "uint256"
1593
1585
  },
1594
1586
  {
@@ -1636,7 +1628,7 @@
1636
1628
  "outputs": [
1637
1629
  {
1638
1630
  "internalType": "uint256",
1639
- "name": "slope",
1631
+ "name": "locked",
1640
1632
  "type": "uint256"
1641
1633
  },
1642
1634
  {
@@ -1646,7 +1638,7 @@
1646
1638
  },
1647
1639
  {
1648
1640
  "internalType": "uint256",
1649
- "name": "end",
1641
+ "name": "voteTs",
1650
1642
  "type": "uint256"
1651
1643
  }
1652
1644
  ],
@@ -1654,8 +1646,8 @@
1654
1646
  "type": "function"
1655
1647
  }
1656
1648
  ],
1657
- "bytecode": "0x6080346100d157601f6139c738819003918201601f19168301916001600160401b038311848410176100d5578084926020946040528339810103126100d157516001600160a01b0381168082036100d15760018055156100c25760028054610100600160a81b03191660089290921b610100600160a81b0316919091179055610087336100e9565b506100913361015f565b5061009b336101f2565b506161a8600b55612710600c5562093a80600d55426012556040516136c190816102868239f35b63c6d038c160e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0381165f9081525f5160206139a75f395f51905f52602052604090205460ff1661015a576001600160a01b03165f8181525f5160206139a75f395f51905f5260205260408120805460ff191660011790553391905f5160206139475f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081525f5160206139675f395f51905f52602052604090205460ff1661015a576001600160a01b03165f8181525f5160206139675f395f51905f5260205260408120805460ff191660011790553391907ffda1ae526c1fb38407f23e8b7712f7cfacc146f3e340a04221488331e0d42014905f5160206139475f395f51905f529080a4600190565b6001600160a01b0381165f9081525f5160206139875f395f51905f52602052604090205460ff1661015a576001600160a01b03165f8181525f5160206139875f395f51905f5260205260408120805460ff191660011790553391907f5c91514091af31f62f596a314af7d5be40146b2f2355969392f055e12e0982fb905f5160206139475f395f51905f529080a460019056fe6080806040526004361015610012575f80fd5b5f905f3560e01c908162ae252414611da35750806301ffc9a714611d4d57806306aba0e114611d245780630a7486c7146114695780630b27737e14611cf75780630c42320114611ccd578063103490f914611c205780631685614414611bd95780631c3ebaeb146114695780631c7e399f14611b1c578063248a9ca314611af2578063289f338f14611aba5780632f2ff15d14611a7d578063315865df14611a6157806336568abe14611a1b5780633a0451451461198b5780633b92eb231461195f57806348264997146119425780634f62d649146118cb5780634f6ffd07146118ae578063507ba5e21461188757806351ae58af1461179b57806353bacc7c146117635780635af1d193146116ff5780635baa02be146116db5780635c679f7b146115655780635c975abb146115425780635f74bbde146114b257806366351557146114965780636ca32ae71461146e5780637001f4bb1461146957806372be5276146113fb57806374a23843146113c2578063776c01c4146113835780638aca6a23146113285780638c10e8f6146112ef57806391d14854146112a657806396c5517514610d865780639c31c8fb14610cfe5780639d17505314610cca5780639da882ac14610b125780639eeb40071461065d578063a217fddf14610af6578063a85bde9d14610ad0578063a9753d5814610a98578063aa79979b14610a50578063b97dd9e214610a35578063b9a09fd5146109d2578063bb3d832f14610971578063c2c4c5c114610922578063c3a6ca13146108d4578063c58b1ee614610881578063cffd31dd14610710578063d0262d8e146106b0578063d045d6241461065d578063d547741f14610616578063d6585ecf146105db578063d8d1a657146104c8578063d93c6ede14610485578063d9ce3d0314610469578063dcda162c1461042e578063e75ec699146103b6578063ead68f8214610398578063ec73d9061461035f578063efe97d051461033c578063effcbdb91461031e5763f4359ce5146102fe575f80fd5b3461031b578060031936011261031b57602060405162093a808152f35b80fd5b503461031b578060031936011261031b576020601254604051908152f35b503461031b578060031936011261031b57602061035761246a565b604051908152f35b503461031b57602036600319011261031b576020906040906001600160a01b03610387611dd7565b168152602a83522054604051908152f35b503461031b578060031936011261031b576020604051621275008152f35b503461031b57604036600319011261031b5760406103d2611dd7565b916103db611ded565b9260018060a01b031681526028602052209060018060a01b03165f5260205260405f20805461042a60026001840154930154604051938493846040919493926060820195825260208201520152565b0390f35b503461031b578060031936011261031b5760206040517ffda1ae526c1fb38407f23e8b7712f7cfacc146f3e340a04221488331e0d420148152f35b503461031b578060031936011261031b57602060405160348152f35b503461031b57604036600319011261031b576020906040906001600160a01b036104ad611dd7565b16815260238352818120602435825283522054604051908152f35b503461031b57602036600319011261031b57600435801515908181036105d7576104f0612504565b156105625760207fed1f3e12429ce88e77b14ddf9c2eb89f0b9e1e0faa7e33a95d0ce1bbc90a1c2f91610521612887565b600160ff1960025416176002557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25882604051338152a15b604051908152a180f35b60025460ff8116156105c8577fed1f3e12429ce88e77b14ddf9c2eb89f0b9e1e0faa7e33a95d0ce1bbc90a1c2f9160209160ff19166002557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa82604051338152a1610558565b638dfc202b60e01b8352600483fd5b8280fd5b503461031b578060031936011261031b5760206040517f5c91514091af31f62f596a314af7d5be40146b2f2355969392f055e12e0982fb8152f35b503461031b57604036600319011261031b57610659600435610636611ded565b9061065461064f825f525f602052600160405f20015490565b612573565b612807565b5080f35b503461031b57604036600319011261031b576040610679611dd7565b91610682611ded565b9260018060a01b03168152601f602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461031b576106bf36611e50565b929160018060a01b031682526029602052604082209060018060a01b03165f5260205260405f2090815483101561031b5760406106fc8484611ecb565b506001815491015482519182526020820152f35b503461031b578060031936011261031b578060165461072e81612452565b9161073c6040519384612010565b81835261074882612452565b602084019490601f190136863761075e83612452565b61076b6040519182612010565b83815261077784612452565b602082019490601f190136863782905b8082106108135750506040519460608601906060875251809152608086019690835b8181106107f457505050602090858703828701525195868152019290945b8086106107dc57505082935060408301520390f35b909260208060019286518152019401950194906107c7565b82516001600160a01b03168952602098890198909201916001016107a9565b9093610876600191610827879a969a611e8a565b848060a01b0391549060031b1c1680610840898c61211b565b52808b52602260205260408b20908b52602460205260408b20548b5260205260408a20549081610870898861211b565b52612070565b940190969296610787565b503461031b57604036600319011261031b57604061089d611dd7565b916108a6611ded565b9260018060a01b03168152601b602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461031b57604036600319011261031b5760409081906001600160a01b036108fb611dd7565b16815260226020528181206024358252602052206001815491015482519182526020820152f35b503461031b578060031936011261031b5761093b61342a565b50805b601654811015610659578061096a610957600193611e8a565b848060a01b0391549060031b1c166132d7565b500161093e565b503461031b57604036600319011261031b5761098b611dd7565b6001600160a01b03168152602c602052604081208054602435929083101561031b5760206109b98484611eb6565b905460405160039290921b1c6001600160a01b03168152f35b503461031b57602036600319011261031b576080906040906001600160a01b036109fa611dd7565b168152601860205220805490600260018201549101549060ff604051938181161515855260081c161515602084015260408301526060820152f35b503461031b578060031936011261031b576020610357612432565b503461031b57602036600319011261031b576020610a8e610a6f611dd7565b6001600160a01b03165f90815260186020526040902060020154151590565b6040519015158152f35b503461031b578060031936011261031b5760135460145460408051600f84810b825260809490941d90930b6020840152820152606090f35b503461031b576040610aea610ae436611e50565b91612178565b82519182526020820152f35b503461031b578060031936011261031b57602090604051908152f35b503461031b57602036600319011261031b57610b2c611dd7565b610b34612495565b6001600160a01b038116908115610cbb576001600160a01b0381165f90815260186020526040902060020154610cac576040516080810181811067ffffffffffffffff821117610c98576040528381526002602082016001815260408301868152610bd860608501924284528789526018602052604089209551151560ff80198854169116178655511515859061ff00825491151560081b169061ff001916179055565b51600184015551910155601554600160401b811015610c845790610c2f81610c0b846001610c3496016015556015611eb6565b81546001600160a01b0393841660039290921b91821b9390911b1916919091179055565b6125ab565b610c3c612432565b818352602460205280604084205560275415610c7b575b507f9808313031a8f4caa534c417adad16800af7317516eff29a2d37cec0ffb244db8280a280f35b6027555f610c53565b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b85526041600452602485fd5b630fad09e160e11b8352600483fd5b6365da5bb960e11b8352600483fd5b503461031b57602036600319011261031b576040809160043581526025602052206001815491015482519182526020820152f35b503461031b57602036600319011261031b57610d18611dd7565b906001600160a01b038216610d3e575050610d3161342a565b505b602060405160018152f35b6001600160a01b0382165f9081526018602052604090206002015415610d775750610d68906132d7565b50610d7161342a565b50610d33565b6325d939f560e01b8152600490fd5b503461031b57602036600319011261031b57610da0611dd7565b610da8612887565b610db06128a2565b600254604051621e403d60e21b81526001600160a01b039283166004820181905292909160a0918391602491839160081c165afa90811561129b57839161121f575b50511561121057808252602c6020526040822060405190816020825491828152019185526020852090855b8181106111f15750505081610e33910382612010565b610e3b61246a565b9280915b8051831015611177576001600160a01b03610e5a848361211b565b511692610e66846132d7565b50610e6f61342a565b5084835260286020526040832060018060a01b0385165f5260205260405f2060405190610e9b82611fc4565b60028154918284526001810154602085015201548060408401528115611169579081898093116110ac575b5050508484526022602052604084208785526020526001604085200154815111155f1461108c578051858552602260205260408520888652602052610f1360016040872001918254612032565b90555b8684526025602052604084206001015481511161107557518684526025602052610f4860016040862001918254612032565b90555b84835260296020526040832060018060a01b0385165f5260205260405f2091835b835481101561101657806001610f83819387611ecb565b500154610f908287611ecb565b5054908888526023602052604088208189526020528160408920541015610fee575b80885260266020528160408920541015610fcf575b505001610f6c565b87526026602052610fe560408820918254612032565b90555f80610fc7565b8888526023602052604088208189526020526040882061100f838254612032565b9055610fb2565b50959360019250858452602960205260408420838060a01b0382165f5260205261104260405f2061212f565b85845260286020526040842090838060a01b03165f526020525f600260408220828155828582015501555b019193610e3f565b508583526025602052826001604082200155610f4b565b848452602260205260408420878552602052836001604082200155610f16565b6110bf926110b991612032565b90611f02565b85855260226020526040852088865260205280604086205410155f1461114c5785855260226020526040852088865260205260408520611100828254612032565b90555b87855260256020526040852054811161113857878552602560205261112d60408620918254612032565b90555b865f80610ec6565b508684526025602052836040812055611130565b858552602260205260408520888652602052846040812055611103565b50505060019195935061106d565b8390818352602c60205260408320805490848155816111d3575b505060207feaafa67bd3aa4bb44bce0c035314029d39227a502ac081269bdd5989e1aa592b91838552602a825284604081205551604051908152a26001805580f35b845260208420908101905b81811015611191578481556001016111de565b82546001600160a01b0316845260209093019260019283019201610e1d565b630139629360e11b8252600482fd5b905060a0813d60a011611293575b8161123a60a09383612010565b810103126105d7576040519060a0820182811067ffffffffffffffff821117610c98579060809160405280518352602081015160208401526040810151604084015260608101516060840152015160808201525f610df2565b3d915061122d565b6040513d85823e3d90fd5b503461031b57604036600319011261031b5760406112c2611ded565b91600435815280602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b503461031b57602036600319011261031b576020906040906001600160a01b03611317611dd7565b168152601e83522054604051908152f35b503461031b57602036600319011261031b57611342611dd7565b6001600160a01b0381165f90815260186020526040902060020154156113745761136b906132d7565b5061065961342a565b6325d939f560e01b8252600482fd5b503461031b57602036600319011261031b5760209060ff906040906001600160a01b036113ae611dd7565b168152601884522054166040519015158152f35b503461031b57602036600319011261031b576020906040906001600160a01b036113ea611dd7565b168152602183522054604051908152f35b503461031b57602036600319011261031b57611415611dd7565b6001600160a01b0381165f9081526018602052604090206002015415611374576001600160a01b03168082526022602090815260408084209284526024825280842054845291815291819020549051908152f35b611e03565b503461031b57604036600319011261031b57602061035761148d611dd7565b6024359061208d565b503461031b578060031936011261031b57602060405160648152f35b503461031b57604036600319011261031b576114cc611dd7565b6114d4612887565b6114dc6128a2565b338252602b6020526040822054620d2f00810180911161152e57421061151f5761150a9060243590336128d4565b338152602b6020524260408220556001805580f35b630618259b60e11b8252600482fd5b634e487b7160e01b83526011600452602483fd5b503461031b578060031936011261031b57602060ff600254166040519015158152f35b503461031b57604036600319011261031b5760043567ffffffffffffffff81116116d757611597903690600401611e1f565b60243567ffffffffffffffff81116116d3576115b7903690600401611e1f565b916115c0612887565b6115c86128a2565b801580156116c9575b6116ba57338552602b6020526040852054620d2f0081018091116116a65742106116975784805b8282106116775761271091501161166857845b8181106116285785338152602b6020524260408220556001805580f35b61163381838761207d565b35906001600160a01b03821682036116645761165e60019261165683888861207d565b3590336128d4565b0161160b565b8680fd5b63585b926360e01b8552600485fd5b61168f60019161168884888861207d565b3590612070565b9101906115f8565b630618259b60e11b8552600485fd5b634e487b7160e01b86526011600452602486fd5b63512509d360e11b8552600485fd5b50828114156115d1565b8380fd5b5080fd5b503461031b57602036600319011261031b5760206103576116fa611dd7565b61203f565b503461031b57602036600319011261031b576040906001600160a01b03611724611dd7565b168152601c60205220600181549101549061042a6040519282849360801d90600f0b846040919493926060820195600f0b8252600f0b60208201520152565b503461031b57602036600319011261031b576020906040906001600160a01b0361178b611dd7565b1681528280522054604051908152f35b5034611874576020366003190112611874576117b5611dd7565b6117bd612504565b6001600160a01b0381165f9081526018602052604090206002015415611878576001600160a01b03165f818152601860205260409020805460ff19169055803b1561187457604051639d0ab89f60e01b8152600160048201525f8160248183865af1801561186957611854575b5033907f63a2919109d26a48f4afb06be65bb1e0ef2fe197b3a7f9a58268b211745f8f6d8380a380f35b6118619192505f90612010565b5f905f61182a565b6040513d5f823e3d90fd5b5f80fd5b6325d939f560e01b5f5260045ffd5b346118745760403660031901126118745760206103576118a5611dd7565b60243590611f29565b34611874575f366003190112611874576020604051620d2f008152f35b34611874576040366003190112611874576118e4611dd7565b6118ec611ded565b9060018060a01b03165f52601d60205260405f209060018060a01b03165f52602052608060405f2080549060026001820154910154906040519280600f0b8452841d600f0b602084015260408301526060820152f35b34611874575f366003190112611874576020602754604051908152f35b34611874575f3660031901126118745760025460405160089190911c6001600160a01b03168152602090f35b34611874576020366003190112611874576119a4611dd7565b6119ac612495565b6001600160a01b038116908115611a0c576001600160a01b0381165f9081526018602052604090206002015415611878576119e690612655565b7f94ac12f5301759f065db9de7f23677e50bef009f062b028d4d4612f620f0f5fb5f80a2005b6365da5bb960e11b5f5260045ffd5b3461187457604036600319011261187457611a34611ded565b336001600160a01b03821603611a5257611a5090600435612807565b005b63334bd91960e11b5f5260045ffd5b34611874575f3660031901126118745760206040516161a88152f35b3461187457604036600319011261187457611a50600435611a9c611ded565b90611ab561064f825f525f602052600160405f20015490565b61277f565b34611874576020366003190112611874576001600160a01b03611adb611dd7565b165f526024602052602060405f2054604051908152f35b346118745760203660031901126118745760206103576004355f525f602052600160405f20015490565b3461187457602036600319011261187457611b35611dd7565b611b3d612495565b6001600160a01b038116908115611a0c576001600160a01b0381165f908152601860205260409020600201541561187857815f52601860205260ff60405f2054165f14611bcb57611b8d90612655565b805f5260186020527fb68c252413c1dbd0ed9a087ae0596489741f83c26e283fb6739ca73f79ff8654602060ff60405f2054166040519015158152a2005b611bd4906125ab565b611b8d565b34611874576040366003190112611874576001600160a01b03611bfa611dd7565b165f52601960205260405f206024355f52602052602060405f2054600f0b604051908152f35b3461187457604036600319011261187457611c39611dd7565b602435908115159081830361187457611c50612495565b6001600160a01b0381165f9081526018602052604090206002015415611878576001600160a01b03165f818152601860209081526040909120805461ff00191694151560081b61ff001694909417909355917f07829327d364c8af8ea5af9c81cac2a7ec3ec6a9879d2154b4a65e2c623d79db91604051908152a2005b34611874576020366003190112611874576004355f526026602052602060405f2054604051908152f35b34611874576020366003190112611874576004355f52601a602052602060405f2054600f0b604051908152f35b34611874575f366003190112611874576027545f526025602052602060405f2054604051908152f35b346118745760203660031901126118745760043563ffffffff60e01b811680910361187457602090637965db0b60e01b8114908115611d92575b506040519015158152f35b6301ffc9a760e01b14905082611d87565b34611874576020366003190112611874576020906001600160a01b03611dc7611dd7565b165f52602b825260405f20548152f35b600435906001600160a01b038216820361187457565b602435906001600160a01b038216820361187457565b34611874575f3660031901126118745760206040516127108152f35b9181601f840112156118745782359167ffffffffffffffff8311611874576020808501948460051b01011161187457565b6060906003190112611874576004356001600160a01b038116810361187457906024356001600160a01b0381168103611874579060443590565b601654811015611ea25760165f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054821015611ea2575f5260205f2001905f90565b8054821015611ea2575f5260205f209060011b01905f90565b8115611eee570490565b634e487b7160e01b5f52601260045260245ffd5b81810292918115918404141715611f1557565b634e487b7160e01b5f52601160045260245ffd5b6001600160a01b0381165f90815260186020526040902060020154156118785760018060a01b03165f52602260205260405f20815f5260205260405f2054905f52602560205260405f20548015611fa757670de0b6b3a7640000820291808304670de0b6b3a76400001490151715611f1557611fa491611ee4565b90565b50506016548015611fbf57670de0b6b3a76400000490565b505f90565b6060810190811067ffffffffffffffff821117611fe057604052565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff821117611fe057604052565b90601f8019910116810190811067ffffffffffffffff821117611fe057604052565b91908203918211611f1557565b6001600160a01b03165f908152602a6020526040902054612710811015611fbf57612710036127108111611f155790565b91908201809211611f1557565b9190811015611ea25760051b0190565b6001600160a01b0381165f9081526018602052604090206002015415611878576120b6816132d7565b506120bf61342a565b5060018060a01b03165f52602260205260405f20815f5260205260405f2054905f52602560205260405f20548015611fa757670de0b6b3a7640000820291808304670de0b6b3a76400001490151715611f1557611fa491611ee4565b8051821015611ea25760209160051b010190565b8054905f81558161213e575050565b6001600160ff1b0382168203611f15575f5260205f209060011b8101905b818110612167575050565b5f808255600182015560020161215c565b6001600160a01b0382165f90815260186020526040902060020154929392156118785783159182801561240d575b612400576002546040516370a0823160e01b81526001600160a01b03938416600482015260089190911c90921692602083602481875afa928315611869575f936123c9575b506020600494604051958680926318160ddd60e01b82525afa938415611869575f94612395575b508315801561238d575b61236e5750604051635a38556f60e11b81526001600160a01b0391909116929091602083600481875afa928315611869575f93612337575b506020600494604051958680926318160ddd60e01b82525afa938415611869575f94612303575b50600b5493600c54936040519460c086019686881067ffffffffffffffff891117611fe0576122c99760405286526020860152604085015260608401528560808401525f60a0840152613537565b9161271083106122f9575b6161a883116122ef575b6122eb8361271092611f02565b0490565b6161a892506122de565b61271092506122d4565b9093506020813d60201161232f575b8161231f60209383612010565b810103126118745751925f61227b565b3d9150612312565b9392506020843d602011612366575b8161235360209383612010565b8101031261187457925191926020612254565b3d9150612346565b925050506127108302928304612710141715611f155761271080920490565b50821561221c565b9093506020813d6020116123c1575b816123b160209383612010565b810103126118745751925f612212565b3d91506123a4565b9392506020843d6020116123f8575b816123e560209383612010565b81010312611874579251919260206121eb565b3d91506123d8565b5050509050612710905f90565b506001600160a01b0381165f9081526018602052604090205460081c60ff16156121a6565b62093a80420462093a8081029080820462093a801490151715611f155790565b67ffffffffffffffff8111611fe05760051b60200190565b62093a80420460018101809111611f155762093a8081029080820462093a801490151715611f155790565b335f9081527fbfe3375f87fed3740ea47aaaa82e5c11969038c76964e4c61f034b0b0e31b00c602052604090205460ff16156124cd57565b63e2517d3f60e01b5f52336004527ffda1ae526c1fb38407f23e8b7712f7cfacc146f3e340a04221488331e0d4201460245260445ffd5b335f9081527fac55d60145c2b1e72232130507b090ddd2cd26daa31eeab1e3e64b89140e668d602052604090205460ff161561253c57565b63e2517d3f60e01b5f52336004527f5c91514091af31f62f596a314af7d5be40146b2f2355969392f055e12e0982fb60245260445ffd5b5f8181526020818152604080832033845290915290205460ff16156125955750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0381165f9081526018602052604090206002015415611878576001600160a01b0381165f8181526018602052604090205490919060ff1661264657815f52601860205260405f20600160ff1982541617905560165490600160401b821015611fe057610c0b82600161262994016016556016611eb6565b6016545f19810191908211611f15575f52601760205260405f2055565b63580aedcf60e01b5f5260045ffd5b6001600160a01b0381165f9081526018602052604090206002015415611878576001600160a01b03165f8181526018602052604090205460ff1615612770575f818152601860209081526040808320805460ff1916905560179091529020546016545f198101908111611f1557808203612735575b50506016548015612721575f19016126fb6126e6826016611eb6565b81549060018060a01b039060031b1b19169055565b601655805f5260176020525f60408120555f52601860205260405f2060ff198154169055565b634e487b7160e01b5f52603160045260245ffd5b61273e90611e8a565b905460039190911b1c6001600160a01b031661275d81610c0b84611e8a565b5f52601760205260405f20555f806126ca565b63d4220bed60e01b5f5260045ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16612801575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615612801575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff6002541661289357565b63d93c066560e01b5f5260045ffd5b6002600154146128b3576002600155565b633ee5aeb560e01b5f5260045ffd5b519064ffffffffff8216820361187457565b90916001600160a01b038316908115611a0c576001600160a01b0384165f908152601860205260409020600201541561187857815f52601860205260ff60405f20541615612770576127108111612e905761292e846132d7565b5061293761342a565b5061294061246a565b60025460405163f1380ea960e01b815260089190911c6001600160a01b0316949190606081600481895afa908115611869575f905f92613280575b5064ffffffffff8061298f93169116611f02565b96871561327157604051630481930d60e21b81526001600160a01b0390931660048401819052976020846024818a5afa938415611869575f9461323c575b5060206129dc60249286611ee4565b976040519283809263394b295360e11b82528d60048301525afa8015611869575f906131fe575b64ffffffffff91501696828811156131ef57885f52602860205260405f20865f5260205260405f209660405197612a3989611fc4565b8054808a52600260018301549260208c0193845201548060408c015281612fbd575b505f91508190508715612e9f575050895f52602a602052612710612a838760405f2054612070565b11612e9057612a958661271092611f02565b0494612aaa612aa4858b612032565b87611f02565b91875f52602260205260405f20855f5260205260405f20612acc848254612070565b9055875f52602260205260405f20855f52602052600160405f2001612af2888254612070565b9055845f52602560205260405f20612b0b848254612070565b9055845f526025602052600160405f2001612b27888254612070565b905560025460405163719f308960e01b8152600481018d905299905f908b90602490829060081c6001600160a01b03165afa998a15611869575f9a612dbf575b505f5b8a51811015612cd1578664ffffffffff6020612b86848f61211b565b510151161115612cc95780888c8b8215612cbe576001600160701b03612bb2612bbf95612bba9461211b565b515116611f02565b611ee4565b905b8b8b8315612cb357612c0b8364ffffffffff936020935f526023845260405f208585612bed858561211b565b510151165f52845260405f20612c04888254612070565b905561211b565b510151165f52602660205260405f20612c25838254612070565b90558d5f52602960205260405f208b5f526020528b64ffffffffff6020612c508460405f209461211b565b5101511660405193612c6185611ff4565b845260208401528054600160401b811015611fe057612c8591600182018155611ecb565b612ca057825181556020909201516001928301555b01612b6a565b634e487b7160e01b5f525f60045260245ffd5b505060019150612c9a565b505050505f90612bc1565b600190612c9a565b50939a985093509350939496600260405191612cec83611fc4565b8783526020830186815260408401918252895f52602860205260405f208b5f5260205260405f209351845551600184015551910155855f52602a60205260405f20612d38848254612070565b90555115612d77575b50612d725f51602061366c5f395f51905f52935b604051938493846040919493926060820195825260208201520152565b0390a3565b92845f52602c60205260405f20908154600160401b811015611fe0575f51602061366c5f395f51905f5295610c0b82612d72956001612db895018155611eb6565b9350612d41565b9099503d805f833e612dd18183612010565b8101906020818303126118745780519067ffffffffffffffff8211611874570181601f8201121561187457805190612e0882612452565b92612e166040519485612010565b82845260208085019360061b8301019181831161187457602001925b828410612e445750505050985f612b67565b6040848303126118745760405190612e5b82611ff4565b8451906001600160701b0382168203611874578260209260409452612e818388016128c2565b83820152815201930192612e32565b63585b926360e01b5f5260045ffd5b9550985050509693945050825f52602860205260405f20845f526020525f6002604082208281558260018201550155825f52602960205260405f20845f52602052612eec60405f2061212f565b825f52602c60205260405f20915f5b835480821015612f9f5786612f108387611eb6565b905460039190911b1c6001600160a01b031614612f305750600101612efb565b905f97929394959697198201918211611f1557610c0b612f53612f6c9388611eb6565b905460039190911b1c6001600160a01b03169187611eb6565b8354908115612721575f51602061366c5f395f51905f5294612d72925f190190612f996126e68383611eb6565b55612d55565b5050909150612d725f51602061366c5f395f51905f52939495612d55565b9081878096949d9a98939c9997959b9c1161319e575b505050885f52602260205260405f20835f52602052600160405f200154865111155f1461317e578551895f52602260205260405f20845f52602052613020600160405f2001918254612032565b90555b5f83815260256020526040902060010154865111613168578551835f526025602052613057600160405f2001918254612032565b90555b8a5f52602960205260405f20895f5260205260405f20975f5b895481101561311d5780600161308a81938d611ecb565b500154613097828d611ecb565b5054908d5f52602360205260405f20815f526020528160405f205410156130f5575b805f5260266020528160405f205410156130d6575b505001613073565b5f5260266020526130ec60405f20918254612032565b90555f806130ce565b8d5f52602360205260405f20815f5260205260405f20613116838254612032565b90556130b9565b50919395989750919395988a5f52602960205260405f20885f5260205261314660405f2061212f565b518a5f52602a60205261315e60405f20918254612032565b90555f8080612a5b565b825f5260256020525f600160408220015561305a565b885f52602260205260405f20835f526020525f6001604082200155613023565b6131ab926110b991612032565b895f52602260205260405f20845f5260205260405f206131cc828254612032565b9055835f5260256020526131e560405f20918254612032565b9055825f80612fd3565b63823c7e3560e01b5f5260045ffd5b506020813d602011613234575b8161321860209383612010565b810103126118745761322f64ffffffffff916128c2565b612a03565b3d915061320b565b9093506020813d602011613269575b8161325860209383612010565b8101031261187457519260206129cd565b3d915061324b565b63c6d038c160e01b5f5260045ffd5b9150506060813d6060116132cf575b8161329c60609383612010565b81010312611874578064ffffffffff806132c760406132c0602061298f97016128c2565b94016128c2565b93505061297b565b3d915061328f565b6001600160a01b03165f81815260246020526040902054801561280157815f52602260205260405f20815f5260205260405f209160016040519361331a85611ff4565b805485520154602084019081525f905b6101f48210613346575b50505f52602460205260405f20555190565b90924281116134245762093a808101809111611f15578093835f52602360205260405f20825f5260205260405f20549183519262093a8084029380850462093a801490151715611f155787516001948082111561341c576133a691612032565b885284518111613414576133bb818651612032565b85525b855f52602260205260405f20825f526020526133e98860405f20906020600191805184550151910155565b6133f6575b50019061332a565b845f52602360205260405f20905f526020525f60408120555f6133ee565b5f85526133be565b50505f6133a6565b92613334565b6027548015611fbf57805f52602560205260405f209060016040519261344f84611ff4565b805484520154602083019081525f905b6101f48210613472575b50506027555190565b90914281116135315762093a808101809111611f15578092815f52602660205260405f20549183519262093a8084029380850462093a801490151715611f1557865160019480821115613529576134c891612032565b875284518111613521576134dd818651612032565b85525b815f5260256020526135018760405f20906020600191805184550151910155565b61350e575b50019061345f565b5f5260266020525f60408120555f613506565b5f85526134e0565b50505f6134c8565b91613469565b608083015190811590818015613663575b6136585767058d15e17628000083029183830467058d15e176280000141715611f1557670de0b6b3a76400008402908415948204670de0b6b3a764000014851715611f15575f94811515908161364f575b506135fa575b50506135cb92670de0b6b3a76400006135b89204612070565b8181116135f3575b8351612bba91611f02565b9060208101518083106135eb575b50518082116135e6575090565b905090565b91505f6135d9565b50806135c0565b61360a9194506060860151611f02565b90670853a0d2313c0000820291808304670853a0d2313c00001490151715611f1557670de0b6b3a76400006136456135cb956135b894611ee4565b945081925061359f565b9050155f613599565b505050506020015190565b50831561354856feba96fb19972930bda84dd5c49e835c4975aedb6dd8664e174c08d072662f518fa2646970667358221220a98ced233e935d17f34c5171d484c66832ff4e366392bf49a2a41b3186287f4864736f6c634300081e00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dbfe3375f87fed3740ea47aaaa82e5c11969038c76964e4c61f034b0b0e31b00cac55d60145c2b1e72232130507b090ddd2cd26daa31eeab1e3e64b89140e668dad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5",
1658
- "deployedBytecode": "0x6080806040526004361015610012575f80fd5b5f905f3560e01c908162ae252414611da35750806301ffc9a714611d4d57806306aba0e114611d245780630a7486c7146114695780630b27737e14611cf75780630c42320114611ccd578063103490f914611c205780631685614414611bd95780631c3ebaeb146114695780631c7e399f14611b1c578063248a9ca314611af2578063289f338f14611aba5780632f2ff15d14611a7d578063315865df14611a6157806336568abe14611a1b5780633a0451451461198b5780633b92eb231461195f57806348264997146119425780634f62d649146118cb5780634f6ffd07146118ae578063507ba5e21461188757806351ae58af1461179b57806353bacc7c146117635780635af1d193146116ff5780635baa02be146116db5780635c679f7b146115655780635c975abb146115425780635f74bbde146114b257806366351557146114965780636ca32ae71461146e5780637001f4bb1461146957806372be5276146113fb57806374a23843146113c2578063776c01c4146113835780638aca6a23146113285780638c10e8f6146112ef57806391d14854146112a657806396c5517514610d865780639c31c8fb14610cfe5780639d17505314610cca5780639da882ac14610b125780639eeb40071461065d578063a217fddf14610af6578063a85bde9d14610ad0578063a9753d5814610a98578063aa79979b14610a50578063b97dd9e214610a35578063b9a09fd5146109d2578063bb3d832f14610971578063c2c4c5c114610922578063c3a6ca13146108d4578063c58b1ee614610881578063cffd31dd14610710578063d0262d8e146106b0578063d045d6241461065d578063d547741f14610616578063d6585ecf146105db578063d8d1a657146104c8578063d93c6ede14610485578063d9ce3d0314610469578063dcda162c1461042e578063e75ec699146103b6578063ead68f8214610398578063ec73d9061461035f578063efe97d051461033c578063effcbdb91461031e5763f4359ce5146102fe575f80fd5b3461031b578060031936011261031b57602060405162093a808152f35b80fd5b503461031b578060031936011261031b576020601254604051908152f35b503461031b578060031936011261031b57602061035761246a565b604051908152f35b503461031b57602036600319011261031b576020906040906001600160a01b03610387611dd7565b168152602a83522054604051908152f35b503461031b578060031936011261031b576020604051621275008152f35b503461031b57604036600319011261031b5760406103d2611dd7565b916103db611ded565b9260018060a01b031681526028602052209060018060a01b03165f5260205260405f20805461042a60026001840154930154604051938493846040919493926060820195825260208201520152565b0390f35b503461031b578060031936011261031b5760206040517ffda1ae526c1fb38407f23e8b7712f7cfacc146f3e340a04221488331e0d420148152f35b503461031b578060031936011261031b57602060405160348152f35b503461031b57604036600319011261031b576020906040906001600160a01b036104ad611dd7565b16815260238352818120602435825283522054604051908152f35b503461031b57602036600319011261031b57600435801515908181036105d7576104f0612504565b156105625760207fed1f3e12429ce88e77b14ddf9c2eb89f0b9e1e0faa7e33a95d0ce1bbc90a1c2f91610521612887565b600160ff1960025416176002557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25882604051338152a15b604051908152a180f35b60025460ff8116156105c8577fed1f3e12429ce88e77b14ddf9c2eb89f0b9e1e0faa7e33a95d0ce1bbc90a1c2f9160209160ff19166002557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa82604051338152a1610558565b638dfc202b60e01b8352600483fd5b8280fd5b503461031b578060031936011261031b5760206040517f5c91514091af31f62f596a314af7d5be40146b2f2355969392f055e12e0982fb8152f35b503461031b57604036600319011261031b57610659600435610636611ded565b9061065461064f825f525f602052600160405f20015490565b612573565b612807565b5080f35b503461031b57604036600319011261031b576040610679611dd7565b91610682611ded565b9260018060a01b03168152601f602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461031b576106bf36611e50565b929160018060a01b031682526029602052604082209060018060a01b03165f5260205260405f2090815483101561031b5760406106fc8484611ecb565b506001815491015482519182526020820152f35b503461031b578060031936011261031b578060165461072e81612452565b9161073c6040519384612010565b81835261074882612452565b602084019490601f190136863761075e83612452565b61076b6040519182612010565b83815261077784612452565b602082019490601f190136863782905b8082106108135750506040519460608601906060875251809152608086019690835b8181106107f457505050602090858703828701525195868152019290945b8086106107dc57505082935060408301520390f35b909260208060019286518152019401950194906107c7565b82516001600160a01b03168952602098890198909201916001016107a9565b9093610876600191610827879a969a611e8a565b848060a01b0391549060031b1c1680610840898c61211b565b52808b52602260205260408b20908b52602460205260408b20548b5260205260408a20549081610870898861211b565b52612070565b940190969296610787565b503461031b57604036600319011261031b57604061089d611dd7565b916108a6611ded565b9260018060a01b03168152601b602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461031b57604036600319011261031b5760409081906001600160a01b036108fb611dd7565b16815260226020528181206024358252602052206001815491015482519182526020820152f35b503461031b578060031936011261031b5761093b61342a565b50805b601654811015610659578061096a610957600193611e8a565b848060a01b0391549060031b1c166132d7565b500161093e565b503461031b57604036600319011261031b5761098b611dd7565b6001600160a01b03168152602c602052604081208054602435929083101561031b5760206109b98484611eb6565b905460405160039290921b1c6001600160a01b03168152f35b503461031b57602036600319011261031b576080906040906001600160a01b036109fa611dd7565b168152601860205220805490600260018201549101549060ff604051938181161515855260081c161515602084015260408301526060820152f35b503461031b578060031936011261031b576020610357612432565b503461031b57602036600319011261031b576020610a8e610a6f611dd7565b6001600160a01b03165f90815260186020526040902060020154151590565b6040519015158152f35b503461031b578060031936011261031b5760135460145460408051600f84810b825260809490941d90930b6020840152820152606090f35b503461031b576040610aea610ae436611e50565b91612178565b82519182526020820152f35b503461031b578060031936011261031b57602090604051908152f35b503461031b57602036600319011261031b57610b2c611dd7565b610b34612495565b6001600160a01b038116908115610cbb576001600160a01b0381165f90815260186020526040902060020154610cac576040516080810181811067ffffffffffffffff821117610c98576040528381526002602082016001815260408301868152610bd860608501924284528789526018602052604089209551151560ff80198854169116178655511515859061ff00825491151560081b169061ff001916179055565b51600184015551910155601554600160401b811015610c845790610c2f81610c0b846001610c3496016015556015611eb6565b81546001600160a01b0393841660039290921b91821b9390911b1916919091179055565b6125ab565b610c3c612432565b818352602460205280604084205560275415610c7b575b507f9808313031a8f4caa534c417adad16800af7317516eff29a2d37cec0ffb244db8280a280f35b6027555f610c53565b634e487b7160e01b84526041600452602484fd5b634e487b7160e01b85526041600452602485fd5b630fad09e160e11b8352600483fd5b6365da5bb960e11b8352600483fd5b503461031b57602036600319011261031b576040809160043581526025602052206001815491015482519182526020820152f35b503461031b57602036600319011261031b57610d18611dd7565b906001600160a01b038216610d3e575050610d3161342a565b505b602060405160018152f35b6001600160a01b0382165f9081526018602052604090206002015415610d775750610d68906132d7565b50610d7161342a565b50610d33565b6325d939f560e01b8152600490fd5b503461031b57602036600319011261031b57610da0611dd7565b610da8612887565b610db06128a2565b600254604051621e403d60e21b81526001600160a01b039283166004820181905292909160a0918391602491839160081c165afa90811561129b57839161121f575b50511561121057808252602c6020526040822060405190816020825491828152019185526020852090855b8181106111f15750505081610e33910382612010565b610e3b61246a565b9280915b8051831015611177576001600160a01b03610e5a848361211b565b511692610e66846132d7565b50610e6f61342a565b5084835260286020526040832060018060a01b0385165f5260205260405f2060405190610e9b82611fc4565b60028154918284526001810154602085015201548060408401528115611169579081898093116110ac575b5050508484526022602052604084208785526020526001604085200154815111155f1461108c578051858552602260205260408520888652602052610f1360016040872001918254612032565b90555b8684526025602052604084206001015481511161107557518684526025602052610f4860016040862001918254612032565b90555b84835260296020526040832060018060a01b0385165f5260205260405f2091835b835481101561101657806001610f83819387611ecb565b500154610f908287611ecb565b5054908888526023602052604088208189526020528160408920541015610fee575b80885260266020528160408920541015610fcf575b505001610f6c565b87526026602052610fe560408820918254612032565b90555f80610fc7565b8888526023602052604088208189526020526040882061100f838254612032565b9055610fb2565b50959360019250858452602960205260408420838060a01b0382165f5260205261104260405f2061212f565b85845260286020526040842090838060a01b03165f526020525f600260408220828155828582015501555b019193610e3f565b508583526025602052826001604082200155610f4b565b848452602260205260408420878552602052836001604082200155610f16565b6110bf926110b991612032565b90611f02565b85855260226020526040852088865260205280604086205410155f1461114c5785855260226020526040852088865260205260408520611100828254612032565b90555b87855260256020526040852054811161113857878552602560205261112d60408620918254612032565b90555b865f80610ec6565b508684526025602052836040812055611130565b858552602260205260408520888652602052846040812055611103565b50505060019195935061106d565b8390818352602c60205260408320805490848155816111d3575b505060207feaafa67bd3aa4bb44bce0c035314029d39227a502ac081269bdd5989e1aa592b91838552602a825284604081205551604051908152a26001805580f35b845260208420908101905b81811015611191578481556001016111de565b82546001600160a01b0316845260209093019260019283019201610e1d565b630139629360e11b8252600482fd5b905060a0813d60a011611293575b8161123a60a09383612010565b810103126105d7576040519060a0820182811067ffffffffffffffff821117610c98579060809160405280518352602081015160208401526040810151604084015260608101516060840152015160808201525f610df2565b3d915061122d565b6040513d85823e3d90fd5b503461031b57604036600319011261031b5760406112c2611ded565b91600435815280602052209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b503461031b57602036600319011261031b576020906040906001600160a01b03611317611dd7565b168152601e83522054604051908152f35b503461031b57602036600319011261031b57611342611dd7565b6001600160a01b0381165f90815260186020526040902060020154156113745761136b906132d7565b5061065961342a565b6325d939f560e01b8252600482fd5b503461031b57602036600319011261031b5760209060ff906040906001600160a01b036113ae611dd7565b168152601884522054166040519015158152f35b503461031b57602036600319011261031b576020906040906001600160a01b036113ea611dd7565b168152602183522054604051908152f35b503461031b57602036600319011261031b57611415611dd7565b6001600160a01b0381165f9081526018602052604090206002015415611374576001600160a01b03168082526022602090815260408084209284526024825280842054845291815291819020549051908152f35b611e03565b503461031b57604036600319011261031b57602061035761148d611dd7565b6024359061208d565b503461031b578060031936011261031b57602060405160648152f35b503461031b57604036600319011261031b576114cc611dd7565b6114d4612887565b6114dc6128a2565b338252602b6020526040822054620d2f00810180911161152e57421061151f5761150a9060243590336128d4565b338152602b6020524260408220556001805580f35b630618259b60e11b8252600482fd5b634e487b7160e01b83526011600452602483fd5b503461031b578060031936011261031b57602060ff600254166040519015158152f35b503461031b57604036600319011261031b5760043567ffffffffffffffff81116116d757611597903690600401611e1f565b60243567ffffffffffffffff81116116d3576115b7903690600401611e1f565b916115c0612887565b6115c86128a2565b801580156116c9575b6116ba57338552602b6020526040852054620d2f0081018091116116a65742106116975784805b8282106116775761271091501161166857845b8181106116285785338152602b6020524260408220556001805580f35b61163381838761207d565b35906001600160a01b03821682036116645761165e60019261165683888861207d565b3590336128d4565b0161160b565b8680fd5b63585b926360e01b8552600485fd5b61168f60019161168884888861207d565b3590612070565b9101906115f8565b630618259b60e11b8552600485fd5b634e487b7160e01b86526011600452602486fd5b63512509d360e11b8552600485fd5b50828114156115d1565b8380fd5b5080fd5b503461031b57602036600319011261031b5760206103576116fa611dd7565b61203f565b503461031b57602036600319011261031b576040906001600160a01b03611724611dd7565b168152601c60205220600181549101549061042a6040519282849360801d90600f0b846040919493926060820195600f0b8252600f0b60208201520152565b503461031b57602036600319011261031b576020906040906001600160a01b0361178b611dd7565b1681528280522054604051908152f35b5034611874576020366003190112611874576117b5611dd7565b6117bd612504565b6001600160a01b0381165f9081526018602052604090206002015415611878576001600160a01b03165f818152601860205260409020805460ff19169055803b1561187457604051639d0ab89f60e01b8152600160048201525f8160248183865af1801561186957611854575b5033907f63a2919109d26a48f4afb06be65bb1e0ef2fe197b3a7f9a58268b211745f8f6d8380a380f35b6118619192505f90612010565b5f905f61182a565b6040513d5f823e3d90fd5b5f80fd5b6325d939f560e01b5f5260045ffd5b346118745760403660031901126118745760206103576118a5611dd7565b60243590611f29565b34611874575f366003190112611874576020604051620d2f008152f35b34611874576040366003190112611874576118e4611dd7565b6118ec611ded565b9060018060a01b03165f52601d60205260405f209060018060a01b03165f52602052608060405f2080549060026001820154910154906040519280600f0b8452841d600f0b602084015260408301526060820152f35b34611874575f366003190112611874576020602754604051908152f35b34611874575f3660031901126118745760025460405160089190911c6001600160a01b03168152602090f35b34611874576020366003190112611874576119a4611dd7565b6119ac612495565b6001600160a01b038116908115611a0c576001600160a01b0381165f9081526018602052604090206002015415611878576119e690612655565b7f94ac12f5301759f065db9de7f23677e50bef009f062b028d4d4612f620f0f5fb5f80a2005b6365da5bb960e11b5f5260045ffd5b3461187457604036600319011261187457611a34611ded565b336001600160a01b03821603611a5257611a5090600435612807565b005b63334bd91960e11b5f5260045ffd5b34611874575f3660031901126118745760206040516161a88152f35b3461187457604036600319011261187457611a50600435611a9c611ded565b90611ab561064f825f525f602052600160405f20015490565b61277f565b34611874576020366003190112611874576001600160a01b03611adb611dd7565b165f526024602052602060405f2054604051908152f35b346118745760203660031901126118745760206103576004355f525f602052600160405f20015490565b3461187457602036600319011261187457611b35611dd7565b611b3d612495565b6001600160a01b038116908115611a0c576001600160a01b0381165f908152601860205260409020600201541561187857815f52601860205260ff60405f2054165f14611bcb57611b8d90612655565b805f5260186020527fb68c252413c1dbd0ed9a087ae0596489741f83c26e283fb6739ca73f79ff8654602060ff60405f2054166040519015158152a2005b611bd4906125ab565b611b8d565b34611874576040366003190112611874576001600160a01b03611bfa611dd7565b165f52601960205260405f206024355f52602052602060405f2054600f0b604051908152f35b3461187457604036600319011261187457611c39611dd7565b602435908115159081830361187457611c50612495565b6001600160a01b0381165f9081526018602052604090206002015415611878576001600160a01b03165f818152601860209081526040909120805461ff00191694151560081b61ff001694909417909355917f07829327d364c8af8ea5af9c81cac2a7ec3ec6a9879d2154b4a65e2c623d79db91604051908152a2005b34611874576020366003190112611874576004355f526026602052602060405f2054604051908152f35b34611874576020366003190112611874576004355f52601a602052602060405f2054600f0b604051908152f35b34611874575f366003190112611874576027545f526025602052602060405f2054604051908152f35b346118745760203660031901126118745760043563ffffffff60e01b811680910361187457602090637965db0b60e01b8114908115611d92575b506040519015158152f35b6301ffc9a760e01b14905082611d87565b34611874576020366003190112611874576020906001600160a01b03611dc7611dd7565b165f52602b825260405f20548152f35b600435906001600160a01b038216820361187457565b602435906001600160a01b038216820361187457565b34611874575f3660031901126118745760206040516127108152f35b9181601f840112156118745782359167ffffffffffffffff8311611874576020808501948460051b01011161187457565b6060906003190112611874576004356001600160a01b038116810361187457906024356001600160a01b0381168103611874579060443590565b601654811015611ea25760165f5260205f2001905f90565b634e487b7160e01b5f52603260045260245ffd5b8054821015611ea2575f5260205f2001905f90565b8054821015611ea2575f5260205f209060011b01905f90565b8115611eee570490565b634e487b7160e01b5f52601260045260245ffd5b81810292918115918404141715611f1557565b634e487b7160e01b5f52601160045260245ffd5b6001600160a01b0381165f90815260186020526040902060020154156118785760018060a01b03165f52602260205260405f20815f5260205260405f2054905f52602560205260405f20548015611fa757670de0b6b3a7640000820291808304670de0b6b3a76400001490151715611f1557611fa491611ee4565b90565b50506016548015611fbf57670de0b6b3a76400000490565b505f90565b6060810190811067ffffffffffffffff821117611fe057604052565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff821117611fe057604052565b90601f8019910116810190811067ffffffffffffffff821117611fe057604052565b91908203918211611f1557565b6001600160a01b03165f908152602a6020526040902054612710811015611fbf57612710036127108111611f155790565b91908201809211611f1557565b9190811015611ea25760051b0190565b6001600160a01b0381165f9081526018602052604090206002015415611878576120b6816132d7565b506120bf61342a565b5060018060a01b03165f52602260205260405f20815f5260205260405f2054905f52602560205260405f20548015611fa757670de0b6b3a7640000820291808304670de0b6b3a76400001490151715611f1557611fa491611ee4565b8051821015611ea25760209160051b010190565b8054905f81558161213e575050565b6001600160ff1b0382168203611f15575f5260205f209060011b8101905b818110612167575050565b5f808255600182015560020161215c565b6001600160a01b0382165f90815260186020526040902060020154929392156118785783159182801561240d575b612400576002546040516370a0823160e01b81526001600160a01b03938416600482015260089190911c90921692602083602481875afa928315611869575f936123c9575b506020600494604051958680926318160ddd60e01b82525afa938415611869575f94612395575b508315801561238d575b61236e5750604051635a38556f60e11b81526001600160a01b0391909116929091602083600481875afa928315611869575f93612337575b506020600494604051958680926318160ddd60e01b82525afa938415611869575f94612303575b50600b5493600c54936040519460c086019686881067ffffffffffffffff891117611fe0576122c99760405286526020860152604085015260608401528560808401525f60a0840152613537565b9161271083106122f9575b6161a883116122ef575b6122eb8361271092611f02565b0490565b6161a892506122de565b61271092506122d4565b9093506020813d60201161232f575b8161231f60209383612010565b810103126118745751925f61227b565b3d9150612312565b9392506020843d602011612366575b8161235360209383612010565b8101031261187457925191926020612254565b3d9150612346565b925050506127108302928304612710141715611f155761271080920490565b50821561221c565b9093506020813d6020116123c1575b816123b160209383612010565b810103126118745751925f612212565b3d91506123a4565b9392506020843d6020116123f8575b816123e560209383612010565b81010312611874579251919260206121eb565b3d91506123d8565b5050509050612710905f90565b506001600160a01b0381165f9081526018602052604090205460081c60ff16156121a6565b62093a80420462093a8081029080820462093a801490151715611f155790565b67ffffffffffffffff8111611fe05760051b60200190565b62093a80420460018101809111611f155762093a8081029080820462093a801490151715611f155790565b335f9081527fbfe3375f87fed3740ea47aaaa82e5c11969038c76964e4c61f034b0b0e31b00c602052604090205460ff16156124cd57565b63e2517d3f60e01b5f52336004527ffda1ae526c1fb38407f23e8b7712f7cfacc146f3e340a04221488331e0d4201460245260445ffd5b335f9081527fac55d60145c2b1e72232130507b090ddd2cd26daa31eeab1e3e64b89140e668d602052604090205460ff161561253c57565b63e2517d3f60e01b5f52336004527f5c91514091af31f62f596a314af7d5be40146b2f2355969392f055e12e0982fb60245260445ffd5b5f8181526020818152604080832033845290915290205460ff16156125955750565b63e2517d3f60e01b5f523360045260245260445ffd5b6001600160a01b0381165f9081526018602052604090206002015415611878576001600160a01b0381165f8181526018602052604090205490919060ff1661264657815f52601860205260405f20600160ff1982541617905560165490600160401b821015611fe057610c0b82600161262994016016556016611eb6565b6016545f19810191908211611f15575f52601760205260405f2055565b63580aedcf60e01b5f5260045ffd5b6001600160a01b0381165f9081526018602052604090206002015415611878576001600160a01b03165f8181526018602052604090205460ff1615612770575f818152601860209081526040808320805460ff1916905560179091529020546016545f198101908111611f1557808203612735575b50506016548015612721575f19016126fb6126e6826016611eb6565b81549060018060a01b039060031b1b19169055565b601655805f5260176020525f60408120555f52601860205260405f2060ff198154169055565b634e487b7160e01b5f52603160045260245ffd5b61273e90611e8a565b905460039190911b1c6001600160a01b031661275d81610c0b84611e8a565b5f52601760205260405f20555f806126ca565b63d4220bed60e01b5f5260045ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16612801575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615612801575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b60ff6002541661289357565b63d93c066560e01b5f5260045ffd5b6002600154146128b3576002600155565b633ee5aeb560e01b5f5260045ffd5b519064ffffffffff8216820361187457565b90916001600160a01b038316908115611a0c576001600160a01b0384165f908152601860205260409020600201541561187857815f52601860205260ff60405f20541615612770576127108111612e905761292e846132d7565b5061293761342a565b5061294061246a565b60025460405163f1380ea960e01b815260089190911c6001600160a01b0316949190606081600481895afa908115611869575f905f92613280575b5064ffffffffff8061298f93169116611f02565b96871561327157604051630481930d60e21b81526001600160a01b0390931660048401819052976020846024818a5afa938415611869575f9461323c575b5060206129dc60249286611ee4565b976040519283809263394b295360e11b82528d60048301525afa8015611869575f906131fe575b64ffffffffff91501696828811156131ef57885f52602860205260405f20865f5260205260405f209660405197612a3989611fc4565b8054808a52600260018301549260208c0193845201548060408c015281612fbd575b505f91508190508715612e9f575050895f52602a602052612710612a838760405f2054612070565b11612e9057612a958661271092611f02565b0494612aaa612aa4858b612032565b87611f02565b91875f52602260205260405f20855f5260205260405f20612acc848254612070565b9055875f52602260205260405f20855f52602052600160405f2001612af2888254612070565b9055845f52602560205260405f20612b0b848254612070565b9055845f526025602052600160405f2001612b27888254612070565b905560025460405163719f308960e01b8152600481018d905299905f908b90602490829060081c6001600160a01b03165afa998a15611869575f9a612dbf575b505f5b8a51811015612cd1578664ffffffffff6020612b86848f61211b565b510151161115612cc95780888c8b8215612cbe576001600160701b03612bb2612bbf95612bba9461211b565b515116611f02565b611ee4565b905b8b8b8315612cb357612c0b8364ffffffffff936020935f526023845260405f208585612bed858561211b565b510151165f52845260405f20612c04888254612070565b905561211b565b510151165f52602660205260405f20612c25838254612070565b90558d5f52602960205260405f208b5f526020528b64ffffffffff6020612c508460405f209461211b565b5101511660405193612c6185611ff4565b845260208401528054600160401b811015611fe057612c8591600182018155611ecb565b612ca057825181556020909201516001928301555b01612b6a565b634e487b7160e01b5f525f60045260245ffd5b505060019150612c9a565b505050505f90612bc1565b600190612c9a565b50939a985093509350939496600260405191612cec83611fc4565b8783526020830186815260408401918252895f52602860205260405f208b5f5260205260405f209351845551600184015551910155855f52602a60205260405f20612d38848254612070565b90555115612d77575b50612d725f51602061366c5f395f51905f52935b604051938493846040919493926060820195825260208201520152565b0390a3565b92845f52602c60205260405f20908154600160401b811015611fe0575f51602061366c5f395f51905f5295610c0b82612d72956001612db895018155611eb6565b9350612d41565b9099503d805f833e612dd18183612010565b8101906020818303126118745780519067ffffffffffffffff8211611874570181601f8201121561187457805190612e0882612452565b92612e166040519485612010565b82845260208085019360061b8301019181831161187457602001925b828410612e445750505050985f612b67565b6040848303126118745760405190612e5b82611ff4565b8451906001600160701b0382168203611874578260209260409452612e818388016128c2565b83820152815201930192612e32565b63585b926360e01b5f5260045ffd5b9550985050509693945050825f52602860205260405f20845f526020525f6002604082208281558260018201550155825f52602960205260405f20845f52602052612eec60405f2061212f565b825f52602c60205260405f20915f5b835480821015612f9f5786612f108387611eb6565b905460039190911b1c6001600160a01b031614612f305750600101612efb565b905f97929394959697198201918211611f1557610c0b612f53612f6c9388611eb6565b905460039190911b1c6001600160a01b03169187611eb6565b8354908115612721575f51602061366c5f395f51905f5294612d72925f190190612f996126e68383611eb6565b55612d55565b5050909150612d725f51602061366c5f395f51905f52939495612d55565b9081878096949d9a98939c9997959b9c1161319e575b505050885f52602260205260405f20835f52602052600160405f200154865111155f1461317e578551895f52602260205260405f20845f52602052613020600160405f2001918254612032565b90555b5f83815260256020526040902060010154865111613168578551835f526025602052613057600160405f2001918254612032565b90555b8a5f52602960205260405f20895f5260205260405f20975f5b895481101561311d5780600161308a81938d611ecb565b500154613097828d611ecb565b5054908d5f52602360205260405f20815f526020528160405f205410156130f5575b805f5260266020528160405f205410156130d6575b505001613073565b5f5260266020526130ec60405f20918254612032565b90555f806130ce565b8d5f52602360205260405f20815f5260205260405f20613116838254612032565b90556130b9565b50919395989750919395988a5f52602960205260405f20885f5260205261314660405f2061212f565b518a5f52602a60205261315e60405f20918254612032565b90555f8080612a5b565b825f5260256020525f600160408220015561305a565b885f52602260205260405f20835f526020525f6001604082200155613023565b6131ab926110b991612032565b895f52602260205260405f20845f5260205260405f206131cc828254612032565b9055835f5260256020526131e560405f20918254612032565b9055825f80612fd3565b63823c7e3560e01b5f5260045ffd5b506020813d602011613234575b8161321860209383612010565b810103126118745761322f64ffffffffff916128c2565b612a03565b3d915061320b565b9093506020813d602011613269575b8161325860209383612010565b8101031261187457519260206129cd565b3d915061324b565b63c6d038c160e01b5f5260045ffd5b9150506060813d6060116132cf575b8161329c60609383612010565b81010312611874578064ffffffffff806132c760406132c0602061298f97016128c2565b94016128c2565b93505061297b565b3d915061328f565b6001600160a01b03165f81815260246020526040902054801561280157815f52602260205260405f20815f5260205260405f209160016040519361331a85611ff4565b805485520154602084019081525f905b6101f48210613346575b50505f52602460205260405f20555190565b90924281116134245762093a808101809111611f15578093835f52602360205260405f20825f5260205260405f20549183519262093a8084029380850462093a801490151715611f155787516001948082111561341c576133a691612032565b885284518111613414576133bb818651612032565b85525b855f52602260205260405f20825f526020526133e98860405f20906020600191805184550151910155565b6133f6575b50019061332a565b845f52602360205260405f20905f526020525f60408120555f6133ee565b5f85526133be565b50505f6133a6565b92613334565b6027548015611fbf57805f52602560205260405f209060016040519261344f84611ff4565b805484520154602083019081525f905b6101f48210613472575b50506027555190565b90914281116135315762093a808101809111611f15578092815f52602660205260405f20549183519262093a8084029380850462093a801490151715611f1557865160019480821115613529576134c891612032565b875284518111613521576134dd818651612032565b85525b815f5260256020526135018760405f20906020600191805184550151910155565b61350e575b50019061345f565b5f5260266020525f60408120555f613506565b5f85526134e0565b50505f6134c8565b91613469565b608083015190811590818015613663575b6136585767058d15e17628000083029183830467058d15e176280000141715611f1557670de0b6b3a76400008402908415948204670de0b6b3a764000014851715611f15575f94811515908161364f575b506135fa575b50506135cb92670de0b6b3a76400006135b89204612070565b8181116135f3575b8351612bba91611f02565b9060208101518083106135eb575b50518082116135e6575090565b905090565b91505f6135d9565b50806135c0565b61360a9194506060860151611f02565b90670853a0d2313c0000820291808304670853a0d2313c00001490151715611f1557670de0b6b3a76400006136456135cb956135b894611ee4565b945081925061359f565b9050155f613599565b505050506020015190565b50831561354856feba96fb19972930bda84dd5c49e835c4975aedb6dd8664e174c08d072662f518fa2646970667358221220a98ced233e935d17f34c5171d484c66832ff4e366392bf49a2a41b3186287f4864736f6c634300081e0033",
1649
+ "bytecode": "0x6080806040523461016957602081614d15803803809161001f8285610180565b83398101031261016957516001600160a01b0381168103610169576001805560028054610100600160a81b031916600892831b610100600160a81b0316179081905560405163f1380ea960e01b815291606091839160049183911c6001600160a01b03165afa908115610175575f905f9261011e575b5064ffffffffff918216911681810291811591830414171561010a576301dfe200036100fb576100c4336101c9565b506100ce3361023f565b506100d8336102d2565b506161a8600c55612710600d5562093a80600e5560405161492f90816103668239f35b63c6d038c160e01b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b9150506060813d60601161016d575b8161013a60609383610180565b810103126101695764ffffffffff80610161604061015a602086016101b7565b94016101b7565b929150610095565b5f80fd5b3d915061012d565b6040513d5f823e3d90fd5b601f909101601f19168101906001600160401b038211908210176101a357604052565b634e487b7160e01b5f52604160045260245ffd5b519064ffffffffff8216820361016957565b6001600160a01b0381165f9081525f516020614cf55f395f51905f52602052604090205460ff1661023a576001600160a01b03165f8181525f516020614cf55f395f51905f5260205260408120805460ff191660011790553391905f516020614c955f395f51905f528180a4600190565b505f90565b6001600160a01b0381165f9081525f516020614cb55f395f51905f52602052604090205460ff1661023a576001600160a01b03165f8181525f516020614cb55f395f51905f5260205260408120805460ff191660011790553391907ffda1ae526c1fb38407f23e8b7712f7cfacc146f3e340a04221488331e0d42014905f516020614c955f395f51905f529080a4600190565b6001600160a01b0381165f9081525f516020614cd55f395f51905f52602052604090205460ff1661023a576001600160a01b03165f8181525f516020614cd55f395f51905f5260205260408120805460ff191660011790553391907f5c91514091af31f62f596a314af7d5be40146b2f2355969392f055e12e0982fb905f516020614c955f395f51905f529080a460019056fe610120806040526004361015610013575f80fd5b5f905f3560e01c90816301ffc9a7146122a75750806306aba0e1146122855780630a7486c714611bd75780630c4232011461225b578063103490f9146121b95780631c3ebaeb14611bd7578063248a9ca31461219b578063289f338f146121635780632f2ff15d14612132578063308ee3051461204a578063315865df1461202e57806336568abe14611fe85780633b92eb2314611fbc5780634826499714611f9f5780634e7968e314611f4f5780634f6ffd0714611f32578063507ba5e214611f0b5780635baa02be14611ee85780635c679f7b14611da45780635c975abb14611d825780635f74bbde14611cd45780636635155714611cb95780636861059a14611c9c5780636ca32ae714611c6d5780636e890abb14611bdc5780637001f4bb14611bd757806372be527614611b9157806375619ab514611b0c578063776c01c414611acf5780637913867814611aa757806380c0ca4514611a54578063821ea928146115bf57806391d148541461157757806396c55175146112615780639c31c8fb146111f25780639d175053146111bf5780639da882ac14610f375780639eeb400714610ee4578063a217fddf14610ec8578063a795b66014610e68578063a85bde9d14610e42578063b187bd2614610e1f578063b4bb008514610d4a578063b97dd9e214610d2f578063b9a09fd514610ccc578063bb3d832f14610c6c578063c3a6ca1314610c1e578063cffd31dd14610b35578063d547741f14610afa578063d6585ecf14610ad2578063d8d1a657146109e5578063d93c6ede146109a2578063dcda162c1461097a578063de95a4b9146108fd578063e340838b14610714578063e75ec699146106ad578063eb7ad58e1461068f578063ec73d90614610656578063efe97d0514610633578063f0164ca01461041d578063f3086064146102e95763f4359ce5146102c9575f80fd5b346102e657806003193601126102e657602060405162093a808152f35b80fd5b50346102e6576102f836612381565b929091610303612f50565b83810361040e57845b818110610317578580f35b61032a610325828486612637565b612654565b90610336818787612637565b35918215159081840361040a576001600160a01b03169283159081156103e2575b506103d357823b156103c45787604051639d0ab89f60e01b8152826004820152818160248183895af180156103c8576103af575b50506001926040519182525f51602061487a5f395f51905f5260203393a30161030c565b816103b991612516565b6103c457875f61038b565b8780fd5b6040513d84823e3d90fd5b6365da5bb960e11b8852600488fd5b848a52601560205260408a205460ff1615915081610402575b505f610357565b90505f6103fb565b8880fd5b63512509d360e11b8552600485fd5b50346102e65760203660031901126102e657610437612316565b61043f613362565b61044761337d565b6001600160a01b03168082526015602052604082205460ff1661062457338252601d60205260408220815f5260205260405f2090604051610487816124e0565b8254815260018301549060406002602083019584875201549101521561061557338352601d60205260408320815f526020525f6002604082208281558260018201550155338352602160205260408320815f526020526104e960405f206127bb565b338352601e60205261050160408420549251836125f4565b338452601e6020526040842055338352602080526040832091835b8354808210156105fa5783610531838761248c565b905460039190911b1c6001600160a01b031614610551575060010161051c565b929391925f1981019081116105e657826105c35f51602061489a5f395f51905f52959361059f6105866105c89560409861248c565b905460039190911b1c6001600160a01b0316918461248c565b9080546001600160a01b0360039390931b83811b199091169290931690921b179055565b6126f8565b338552601e6020528185205482519182526020820152a26001805580f35b634e487b7160e01b86526011600452602486fd5b50505f51602061489a5f395f51905f529192506040906105c8565b632ada3b3f60e21b8352600483fd5b63e7e28cd960e01b8252600482fd5b50346102e657806003193601126102e657602061064e612b0e565b604051908152f35b50346102e65760203660031901126102e6576020906040906001600160a01b0361067e612316565b168152601e83522054604051908152f35b50346102e657806003193601126102e6576020601354604051908152f35b50346102e65760403660031901126102e65760406106c9612316565b916106d261232c565b9260018060a01b03168152601d602052209060018060a01b03165f5260205260405f20805461071060026001840154930154604051938493846124a1565b0390f35b50346102e65760203660031901126102e65761072e612316565b6001600160a01b031680825260208080526040808420905181548082529185528285209093859390928591820190855b8181106108db57505061077392500384612516565b61077d8351612adc565b610785612b0e565b928593865b86518110156108ba576001600160a01b036107a582896127a7565b511685895260216020526040892060018060a01b0382165f5260205260405f20868a52601d60205260408a2060018060a01b0383165f5260205260405f20906040516107f0816124e0565b82548152604060026001850154946020840195865201549101528054908b908c905b83821061086f5750501461082b575b505060010161078a565b9361083b91949792975190612647565b9261084682866127a7565b526001810180911161085b579460015f610821565b634e487b7160e01b88526011600452602488fd5b909187600161087e8585612447565b500154116108b1576001810180911161089d57600190925b0190610812565b634e487b7160e01b8e52601160045260248efd5b91600190610896565b505083825261071060405192839283526040602084015260408301906123d1565b84546001600160a01b031683526001948501948894506020909301920161075e565b50346102e65760203660031901126102e65760043561091a612ef4565b600181148015610970575b610961577f31eed88a3406e683789affe91262f34c5c8ab7c5cb106cbc76c5b8fa3cc6f1dd60406022548151908152836020820152a160225580f35b63585b926360e01b8252600482fd5b5060408111610925565b50346102e657806003193601126102e65760206040515f5160206148da5f395f51905f528152f35b50346102e65760403660031901126102e6576020906040906001600160a01b036109ca612316565b16815260188352818120602435825283522054604051908152f35b50346102e65760203660031901126102e65760043580151590818103610ace57610a0d612f50565b15610a6c5760205f51602061485a5f395f51905f5291610a2b613362565b600160ff1960025416176002557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25882604051338152a15b604051908152a180f35b60025460ff811615610abf575f51602061485a5f395f51905f529160209160ff19166002557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa82604051338152a1610a62565b638dfc202b60e01b8352600483fd5b8280fd5b50346102e657806003193601126102e65760206040515f5160206148ba5f395f51905f528152f35b50346102e65760403660031901126102e657610b31600435610b1a61232c565b90610b2c610b27826124cf565b612fac565b61306c565b5080f35b50346102e657806003193601126102e65780601354610b5381612adc565b91610b5d82612adc565b91610b66612b0e565b9085915b818310610bce57505050610b89604051936060855260608501906123d1565b93838503602085015260208084519687815201930190945b808610610bb657505082935060408301520390f35b90926020806001928651815201940195019490610ba1565b909192506001610c15610c0383610be487612474565b858060a01b0391549060031b1c1680610bfd898c6127a7565b526130f6565b91610c0e888a6127a7565b5284612d24565b93019190610b6a565b50346102e65760403660031901126102e65760409081906001600160a01b03610c45612316565b16815260176020528181206024358252602052206001815491015482519182526020820152f35b50346102e65760403660031901126102e657610c86612316565b6001600160a01b031681526020805260408120805460243592908310156102e6576020610cb3848461248c565b905460405160039290921b1c6001600160a01b03168152f35b50346102e65760203660031901126102e6576080906040906001600160a01b03610cf4612316565b168152601560205220805490600260018201549101549060ff604051938181161515855260081c161515602084015260408301526060820152f35b50346102e657806003193601126102e657602061064e612abc565b50346102e65760403660031901126102e657610d64612316565b610d6c612342565b90610d75612f50565b6001600160a01b031680158015610e00575b610df157803b15610ace578260405192639d0ab89f60e01b8452151592836004820152818160248183875af180156103c857610ddc575b50506040519182525f51602061487a5f395f51905f5260203393a380f35b81610de691612516565b610ace57825f610dbe565b6365da5bb960e11b8352600483fd5b50808352601560205260ff604084205416158015610d87575081610d87565b50346102e657806003193601126102e657602060ff600254166040519015158152f35b50346102e6576040610e5c610e563661240d565b9161281c565b82519182526020820152f35b50346102e657610e773661240d565b929160018060a01b031682526021602052604082209060018060a01b03165f5260205260405f209081548310156102e6576040610eb48484612447565b506001815491015482519182526020820152f35b50346102e657806003193601126102e657602090604051908152f35b50346102e65760403660031901126102e6576040610f00612316565b91610f0961232c565b9260018060a01b031681526016602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461110657602036600319011261110657610f51612316565b610f59613362565b610f61612ef4565b6001600160a01b0381169081158015611165575b801561114f575b61114057604051608081016001600160401b0381118282101761112c576040526001815260026020820160018152604083015f8152610fe16060850192428452875f52601560205260405f209551151560ff80198854169116178655511515856124b7565b51600184015551910155610ff3612abc565b825f52601960205260405f205415611119575b6003546001600160a01b0316801561110a57803b15611106575f8091602460405180948193633d95763960e11b83528960048401525af180156110fb576110e6575b50601c54156110dd575b50818352601460205260408320541561108e575b507f9808313031a8f4caa534c417adad16800af7317516eff29a2d37cec0ffb244db8280a280f35b601354600160401b8110156110c9579061059f8260016110b39401601355601361248c565b601354818352601460205260408320555f611066565b634e487b7160e01b84526041600452602484fd5b601c555f611052565b6110f39194505f90612516565b5f925f611048565b6040513d5f823e3d90fd5b5f80fd5b63e6c4247b60e01b5f5260045ffd5b825f5260196020528060405f2055611006565b634e487b7160e01b5f52604160045260245ffd5b6365da5bb960e11b5f5260045ffd5b50815f52601560205260ff60405f205416610f7c565b506040516358c3de9360e11b8152602081600481865afa9081156110fb575f91611190575b50610f75565b6111b2915060203d6020116111b8575b6111aa8183612516565b810190612804565b5f61118a565b503d6111a0565b34611106576020366003190112611106576004355f52601a6020526040805f206001815491015482519182526020820152f35b346111065760203660031901126111065761120b612316565b611213613362565b6001600160a01b0381165f9081526015602052604090205460ff16156112525761123f611246916139a6565b9150613bf6565b50602060405160018152f35b63d4220bed60e01b5f5260045ffd5b346111065760203660031901126111065761127a612316565b611282613362565b61128a61337d565b600254604051621e403d60e21b81526001600160a01b0383811660048301819052939260081c169060a081602481855afa9081156110fb575f91611548575b50511561153957825f526020805260405f2092604051808560208297549384815201905f5260205f20925f5b81811061151757505061130a92500385612516565b60046060611316612b0e565b936040519283809263f1380ea960e01b82525afa9081156110fb5761134f915f915f916114d9575b5064ffffffffff809116911661256e565b925f5b8551811015611462576001906001600160a01b0361137082896127a7565b511661137e61123f826139a6565b50845f52601d60205260405f20838060a01b0382165f5260205260405f20541561145c57845f52601d60205260405f20838060a01b0382165f526020526040805f2060028251916113ce836124e0565b8054835286810154602084015201549182910152815f52602360205260405f20541061144b575b845f52602160205260405f20838060a01b0382165f5260205261141a60405f206127bb565b845f52601d60205260405f2090838060a01b03165f526020525f600260408220828155828582015501555b01611352565b61145787878387613e30565b6113f5565b50611445565b8286815f526020805260405f208054905f8155816114bb575b837feaafa67bd3aa4bb44bce0c035314029d39227a502ac081269bdd5989e1aa592b602085835f52601e82525f604081205551604051908152a260018055005b5f5260205f20908101905b8181101561147b575f81556001016114c6565b64ffffffffff92508291506115059060603d606011611510575b6114fd8183612516565b81019061277e565b93915092915061133e565b503d6114f3565b84546001600160a01b03168352600194850194899450602090930192016112f5565b630139629360e11b5f5260045ffd5b61156a915060a03d60a011611570575b6115628183612516565b810190612714565b846112c9565b503d611558565b346111065760403660031901126111065761159061232c565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34611106576040366003190112611106576115d8612316565b6115e061232c565b906115e9612ef4565b6001600160a01b0381169182158015611a43575b8015611a2c575b6111405761161461123f836139a6565b5061161d612b0e565b5f84815260176020908152604080832084845282528083208054600190910154601a909352922054919290918311611a1957805f52601a60205260405f206116668482546125f4565b90555b5f818152601a60205260409020600101548211611a0357805f52601a602052600160405f200161169a8382546125f4565b90555b805f52601a602052600160405f200154155f146119dc57805f52601a6020525f60408120555b5f86815260176020908152604080832084845290915280822082815560010191909155600254905163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa80156110fb5764ffffffffff915f916119ba575b501662093a8081029080820462093a80149015171561190e57906117498794939282612647565b905b818111156119225750507fce362b7a1360d8d2e178b7890ae09c938033b09f9c074ca57b4660b032a3daeb91604091845f52602360205242835f205582519182526020820152a25f838152601560209081526040808320805460ff191681554260029091015560149091529020546013545f1981019080821161190e5782036118c8575b50506013549081156118b457611841926020925f19016118086117f382601361248c565b81549060018060a01b039060031b1b19169055565b601355845f52601483525f604081205560018060a01b0360035416905f60405180968195829463acf6da4d60e01b8452600484016126de565b03925af19081156110fb575f91611881575b5060207f4a5b80bc6b61c4bfbdf199326466e5b10e8406f4466d683a90d98ae91f4e1f4291604051908152a2005b90506020813d6020116118ac575b8161189c60209383612516565b8101031261110657516020611853565b3d915061188f565b634e487b7160e01b5f52603160045260245ffd5b6118d190612474565b905460039190911b1c6001600160a01b03165f19820182811161190e578161059f6118fb92612474565b5f52601460205260405f205583806117cf565b634e487b7160e01b5f52601160045260245ffd5b909192935f52601860205260405f20815f5260205260405f20548061195a575b5062093a80810180911161190e57908693929161174b565b5f828152601b602052604090205481116119a657815f52601b60205261198560405f209182546125f4565b90555b865f52601860205260405f20815f526020525f604081205587611942565b50805f52601b6020525f6040812055611988565b6119d3915060603d606011611510576114fd8183612516565b50905088611722565b805f52601a60205260405f20546116c357805f52601a6020525f60016040822001556116c3565b805f52601a6020525f600160408220015561169d565b805f52601a6020525f6040812055611669565b50825f52601560205260ff60405f20541615611604565b506001600160a01b038116156115fd565b3461110657604036600319011261110657611a6d612316565b611a7561232c565b6001600160a01b039182165f908152601d60209081526040808320949093168252928352819020600101549051908152f35b34611106575f366003190112611106576003546040516001600160a01b039091168152602090f35b34611106576020366003190112611106576001600160a01b03611af0612316565b165f526015602052602060ff60405f2054166040519015158152f35b3461110657602036600319011261110657611b25612316565b611b2d612ef4565b6001600160a01b0316801561110a57600380546001600160a01b0319811683179091556040517f4c0676acca55b8ccd85e7dd5b4bcff581e82454e0667820c536d370a3b3115909290918291611b8c916001600160a01b0316836126de565b0390a1005b3461110657602036600319011261110657611baa612316565b6001600160a01b0381161561114057611bcd602091611bc7612b0e565b906130f6565b5050604051908152f35b6122fa565b34611106575f36600319011261110657604051601380548083525f91825260208301917f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09091905b818110611c4e5761071085611c3a81870382612516565b6040519182916020835260208301906123d1565b82546001600160a01b0316845260209093019260019283019201611c23565b34611106576040366003190112611106576040610e5c611c8b612316565b611c93613362565b60243590612668565b34611106575f366003190112611106576020602254604051908152f35b34611106575f36600319011261110657602060405160648152f35b3461110657604036600319011261110657611ced612316565b611cf5613362565b611cfd61337d565b335f52601f60205260405f2060018060a01b0382165f5260205260405f2054620d2f00810180911161190e574210611d7357611d48611d3b3361339d565b60249291923585336134f9565b335f908152601f602090815260408083206001600160a01b0390941683529290522042905560018055005b630618259b60e11b5f5260045ffd5b34611106575f36600319011261110657602060ff600254166040519015158152f35b3461110657611db236612381565b919290611dbd613362565b611dc561337d565b83158015611ede575b611ecf575f805b858210611eaf57612710915011611ea057611def3361339d565b919290955f5b818110611e025760018055005b335f52601f60205260405f20611e1c61032583858a612637565b60018060a01b03165f5260205260405f2054620d2f00810180911161190e574210611d735780611e6d8987878b611e6586611e5e6103258f9a8c60019c612637565b928b612637565b3590336134f9565b335f52601f60205260405f20611e8761032583868b612637565b838060a01b03165f5260205260405f2042905501611df5565b63585b926360e01b5f5260045ffd5b611ec7600191611ec0848887612637565b3590612647565b910190611dd5565b63512509d360e11b5f5260045ffd5b5082841415611dce565b3461110657602036600319011261110657602061064e611f06612316565b612601565b34611106576040366003190112611106576040610e5c611f29612316565b6024359061259f565b34611106575f366003190112611106576020604051620d2f008152f35b3461110657604036600319011261110657611f68612316565b611f7061232c565b6001600160a01b039182165f908152601f60209081526040808320949093168252928352819020549051908152f35b34611106575f366003190112611106576020601c54604051908152f35b34611106575f3660031901126111065760025460405160089190911c6001600160a01b03168152602090f35b346111065760403660031901126111065761200161232c565b336001600160a01b0382160361201f5761201d9060043561306c565b005b63334bd91960e11b5f5260045ffd5b34611106575f3660031901126111065760206040516161a88152f35b3461110657604036600319011261110657612063612316565b61206b61232c565b9060018060a01b03165f52602160205260405f209060018060a01b03165f5260205260405f2080549061209d82612539565b916120ab6040519384612516565b8083526020830180925f5260205f205f915b838310612114578486604051918291602083019060208452518091526040830191905f5b8181106120ef575050500390f35b82518051855260209081015181860152869550604090940193909201916001016120e1565b6002602060019261212485612550565b8152019201920191906120bd565b346111065760403660031901126111065761201d60043561215161232c565b9061215e610b27826124cf565b612fe4565b34611106576020366003190112611106576001600160a01b03612184612316565b165f526019602052602060405f2054604051908152f35b3461110657602036600319011261110657602061064e6004356124cf565b34611106576040366003190112611106576121d2612316565b6121da612342565b906121e3612ef4565b6001600160a01b031690811561114057815f52601560205260ff60405f205416156112525760207f07829327d364c8af8ea5af9c81cac2a7ec3ec6a9879d2154b4a65e2c623d79db91835f52601582526122408160405f206124b7565b835f526015825242600260405f2001556040519015158152a2005b34611106576020366003190112611106576004355f52601b602052602060405f2054604051908152f35b34611106575f36600319011261110657602061064e6122a2612b0e565b612b5f565b34611106576020366003190112611106576004359063ffffffff60e01b821680920361110657602091637965db0b60e01b81149081156122e9575b5015158152f35b6301ffc9a760e01b149050836122e2565b34611106575f3660031901126111065760206040516127108152f35b600435906001600160a01b038216820361110657565b602435906001600160a01b038216820361110657565b60243590811515820361110657565b9181601f84011215611106578235916001600160401b038311611106576020808501948460051b01011161110657565b6040600319820112611106576004356001600160401b03811161110657816123ab91600401612351565b90929091602435906001600160401b038211611106576123cd91600401612351565b9091565b90602080835192838152019201905f5b8181106123ee5750505090565b82516001600160a01b03168452602093840193909201916001016123e1565b6060906003190112611106576004356001600160a01b038116810361110657906024356001600160a01b0381168103611106579060443590565b8054821015612460575f5260205f209060011b01905f90565b634e487b7160e01b5f52603260045260245ffd5b6013548110156124605760135f5260205f2001905f90565b8054821015612460575f5260205f2001905f90565b6040919493926060820195825260208201520152565b9061ff00825491151560081b169061ff001916179055565b5f525f602052600160405f20015490565b606081019081106001600160401b0382111761112c57604052565b604081019081106001600160401b0382111761112c57604052565b601f909101601f19168101906001600160401b0382119082101761112c57604052565b6001600160401b03811161112c5760051b60200190565b9060405161255d816124fb565b602060018294805484520154910152565b8181029291811591840414171561190e57565b811561258b570490565b634e487b7160e01b5f52601260045260245ffd5b6125af826125b6929493946130f6565b9194612d24565b9182156125ec57670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561190e57826125e891612581565b9190565b505f91508190565b9190820391821161190e57565b6001600160a01b03165f908152601e60205260409020546127108110156126325761271003612710811161190e5790565b505f90565b91908110156124605760051b0190565b9190820180921161190e57565b356001600160a01b03811681036111065790565b9091906001600160a01b0381169081156111405761123f612688916139a6565b505f52601760205260405f20825f5260205260405f2054915f52601a60205260405f20549182156125ec57670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561190e57826125e891612581565b6001600160a01b0391821681529116602082015260400190565b805480156118b4575f1901906127116117f3838361248c565b55565b908160a0910312611106576040519060a08201906001600160401b0382118383101761112c57608091604052805183526020810151602084015260408101516040840152606081015160608401520151608082015290565b519064ffffffffff8216820361110657565b90816060910312611106578051916127a4604061279d6020850161276c565b930161276c565b90565b80518210156124605760209160051b010190565b8054905f8155816127ca575050565b6001600160ff1b038216820361190e575f5260205f209060011b8101905b8181106127f3575050565b5f80825560018201556002016127e8565b90816020910312611106575180151581036111065790565b9192916001600160a01b031690811561110a576001600160a01b031690811561114057815f52601560205260ff60405f20541615611252578315612ab057815f52601560205260ff60405f205460081c1615612a93576002546040516370a0823160e01b8152600481019290925260081c6001600160a01b031691602082602481865afa80156110fb575f90612a60575b6004925060208194604051948580926318160ddd60e01b82525afa9283156110fb575f93612a2c575b508210612a23575b81158015612a1b575b6129fd57604051635a38556f60e11b815290602082600481845afa9182156110fb575f926129c8575b50602060049160405192838092632964b67b60e21b82525afa9081156110fb575f91612996575b50600c5492600d54946040519260c084019484861060018060401b0387111761112c576161a8976129929761298b9760405286526020860152604085015260608401528760808401525f60a0840152614705565b809461256e565b0490565b90506020813d6020116129c0575b816129b160209383612516565b8101031261110657515f612937565b3d91506129a4565b9091506020813d6020116129f5575b816129e460209383612516565b810103126111065751906020612910565b3d91506129d7565b50505061271082029182046127100361190e576161a8612710920490565b5082156128e7565b915080916128de565b9092506020813d602011612a58575b81612a4860209383612516565b810103126111065751915f6128d6565b3d9150612a3b565b506020823d602011612a8b575b81612a7a60209383612516565b8101031261110657600491516128ad565b3d9150612a6d565b505061271082029182046127100361190e576161a8612710920490565b50509050612710905f90565b62093a80420462093a8081029080820462093a80149015171561190e5790565b90612ae682612539565b612af36040519182612516565b8281528092612b04601f1991612539565b0190602036910137565b62093a8042046001810180911161190e5762093a8081029080820462093a80149015171561190e5790565b5f19811461190e5760010190565b81810392915f13801582851316918412161761190e57565b90601c54918215612d1e5780831015612d0c5760025460405163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa9081156110fb57612bc4915f915f91612cde575b5064ffffffffff80919694959616911661256e565b92815f52601a602052612bd960405f20612550565b905f9060208301935b6101f4831080612cd5575b15612cca5762093a80810180911161190e578092815f52601b60205260405f20549186519262093a8084029380850462093a80149015171561190e57612c368a612c8295612581565b87519080821115612cc257612c4a916125f4565b875287518111612cb957612c5f9088516125f4565b87525b1580612cb2575b80612ca8575b612c96575b8551612c88575f8552612b39565b91612be2565b8451612b39575f8652612b39565b612ca15f8651612b47565b8552612c74565b5084511515612c6f565b505f612c69565b505f8752612c62565b50505f612c4a565b509450509150505190565b50858110612bed565b64ffffffffff9250829150612d019060603d606011611510576114fd8183612516565b939150929150612baf565b9091505f52601a60205260405f205490565b505f9150565b909291601c54938415612eec5782851015612ed85760025460405163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa9081156110fb57612d8b915f915f91612eaa575b5064ffffffffff80919896979816911661256e565b94835f52601a602052612da060405f20612550565b925f9160208501955b6101f4841080612ea1575b15612e945762093a80810180911161190e578093815f52601b60205260405f20549188519262093a8084029380850462093a80149015171561190e57612dfd8c612e4a95612581565b89519080821115612e8c57612e11916125f4565b895289518111612e8357612e26908a516125f4565b89525b841480612e7a575b80612e70575b612e5e575b8751612e50575f8752612b39565b92612da9565b8651612b39575f8852612b39565b612e69868851612b47565b8752612e3c565b5086511515612e37565b505f8612612e31565b505f8952612e29565b50505f612e11565b5096505050509150505190565b50878110612db4565b64ffffffffff9250829150612ecd9060603d606011611510576114fd8183612516565b939150929150612d76565b50509091505f52601a60205260405f205490565b505f93505050565b335f9081527fbfe3375f87fed3740ea47aaaa82e5c11969038c76964e4c61f034b0b0e31b00c602052604090205460ff1615612f2c57565b63e2517d3f60e01b5f52336004525f5160206148da5f395f51905f5260245260445ffd5b335f9081527fac55d60145c2b1e72232130507b090ddd2cd26daa31eeab1e3e64b89140e668d602052604090205460ff1615612f8857565b63e2517d3f60e01b5f52336004525f5160206148ba5f395f51905f5260245260445ffd5b5f8181526020818152604080832033845290915290205460ff1615612fce5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16613066575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615613066575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b811561258b570690565b6001600160a01b03165f81815260196020526040902054929190831561335757818410156133365760025460405163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa9081156110fb57613171915f915f91613308575b5064ffffffffff8091979495969716911661256e565b93825f52601760205260405f20825f5260205261319060405f20612550565b915f935f945f9360208601965b6101f48610806132ff575b156132f0575062093a80840180941161190e578394835f52601860205260405f20855f5260205260405f205490885162093a8081029080820462093a80149015171561190e578b6131f8916130ec565b6132b75788519162093a8083029280840462093a80149015171561190e576132238c61328194612581565b945b858a518181105f146132af5761323b9250612b47565b965b5f8812156132a8575b89519095808211156132a05761325b916125f4565b89528951811161329757613270908a516125f4565b89525b8851613289575f8852612b39565b94939161319d565b8751612b39575f8952612b39565b505f8952613273565b50505f61325b565b505f613246565b50509661323d565b885162093a8081029080820462093a80149015171561190e578b6132da91612581565b916001830180931161190e576132819294613225565b97509550965050505051929190565b508885106131a8565b64ffffffffff925082915061332b9060603d606011611510576114fd8183612516565b93915092915061315b565b909192505f52601760205260405f20905f5260205260405f2054905f905f90565b505f92508291829150565b60ff6002541661336e57565b63d93c066560e01b5f5260045ffd5b60026001541461338e576002600155565b633ee5aeb560e01b5f5260045ffd5b60025460405163f1380ea960e01b815260089190911c6001600160a01b03169290606081600481875afa9081156110fb576133eb915f915f916114d9575064ffffffffff809116911661256e565b925f6133f5612b0e565b60405163719f308960e01b81526001600160a01b0390951660048601529391829060249082905afa9081156110fb575f9161342e575090565b90503d805f833e61343f8183612516565b810190602081830312611106578051906001600160401b038211611106570181601f820112156111065780519061347582612539565b926134836040519485612516565b82845260208085019360061b8301019181831161110657602001925b8284106134ad575050505090565b60408483031261110657604051906134c4826124fb565b8451906001600160701b03821682036111065782602092604094526134ea83880161276c565b8382015281520193019261349f565b6001600160a01b03821695909490929190861561114057865f52601560205260ff60405f205416156112525782151594858061394b575b61393c576127108411611ea0578580613932575b613923576135889561355861123f856139a6565b508860018060a01b03891698895f52601d60205260405f20825f526020528488876040805f209581519d8e6124e0565b8d875490818152600260018a015499602083019a8b52015493849101526138b7575b505050505050505f5f915f146137eb575050865f52601e6020526127106135d58560405f2054612647565b11611ea057600254604051621e403d60e21b8152600481018990529060a0908290602490829060081c6001600160a01b03165afa9081156110fb575f916137cc575b50516137a65761364091848692895f52602160205260405f208b5f5260205260405f2086614229565b95919094858297156137bd57821580156137b5575b6137a657895f52601760205260405f20825f5260205260405f2061367a828254612647565b9055895f52601760205260405f20825f52602052600160405f20016136a0848254612647565b9055815f52601a6020526136b960405f20918254612647565b90555f52601a602052600160405f20016136d4828254612647565b9055604051906136e3826124e0565b81526002602082018581526040830190428252895f52601d60205260405f208b5f5260205260405f209351845551600184015551910155855f52601e60205260405f20613731848254612647565b9055511561375f575b5061375a5f51602061483a5f395f51905f52935b604051938493846124a1565b0390a3565b92845f526020805260405f20908154600160401b81101561112c575f51602061483a5f395f51905f529561059f8261375a95600161379f9501815561248c565b935061373a565b635ee9d34160e01b5f5260045ffd5b508015613655565b63823c7e3560e01b5f5260045ffd5b6137e5915060a03d60a011611570576115628183612516565b5f613617565b94955097969550505050825f52601d60205260405f20845f526020525f6002604082208281558260018201550155825f526020805260405f20915f5b835480821015613899578661383c838761248c565b905460039190911b1c6001600160a01b03161461385c5750600101613827565b919293949596905f19830192831161190e57856105c36138949261059f61058661375a975f51602061483a5f395f51905f529b61248c565b61374e565b505090915061375a5f51602061483a5f395f51905f5293949561374e565b5f52602360205260405f205410613911575b50505050885f52602160205260405f208a5f526020526138eb60405f206127bb565b51885f52601e60205261390360405f209182546125f4565b90555f80848887838e6135aa565b61391a93613e30565b5f8488876138c9565b6315c1487560e31b5f5260045ffd5b5060648410613544565b6325aa339760e21b5f5260045ffd5b506040516358c3de9360e11b81526020816004818c5afa9081156110fb575f91613976575b50613530565b61398f915060203d6020116111b8576111aa8183612516565b5f613970565b906020600191805184550151910155565b6001600160a01b03165f8181526019602052604090205490918115613bec5760025460405163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa9081156110fb57613a12915f915f916114d9575064ffffffffff809116911661256e565b91835f52601760205260405f20815f52602052613a3160405f20612550565b905f945f945f90602085015b6101f48310613a5c575b5050505f52601960205260405f205551929190565b90919796428511613be5575062093a80840180941161190e5783835f52601860205260405f20815f5260205260405f205498825162093a8081029080820462093a80149015171561190e5784613ab1916130ec565b613bad5782519162093a8083029280840462093a80149015171561190e57613adb85600194612581565b995b8a89518181105f14613ba557613af39250612b47565b9a5b5f8c1215613b9f57815b8951909b80821115613b9757613b14916125f4565b895284518111613b8f57613b298186516125f4565b85525b8451613b81575f89525b865f52601760205260405f20825f52602052613b558960405f20613995565b613b63575b50019190613a3d565b855f52601860205260405f20905f526020525f60408120555f613b5a565b8851613b36575f8552613b36565b5f8552613b2c565b50505f613b14565b5f613aff565b50509a613af5565b825162093a8081029080820462093a80149015171561190e5784613bd091612581565b916001830180931161190e5760019299613add565b9697613a47565b5f92508291508190565b90601c54908115613e29578181111580613e20575b80613e0b575b613de3575b60025460405163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa9081156110fb57613c67915f915f91613db5575b5064ffffffffff809196949616911661256e565b92825f52601a602052613c7c60405f20612550565b935f9260208601915b6101f48510613c9b575b5050505050601c555190565b9091929394428111613daf5762093a80810180911161190e578095815f52601b60205260405f20549185519262093a8084029380850462093a80149015171561190e57613cea85600195612581565b8a519080821115613da757613cfe916125f4565b8a5286518111613d9f57613d138188516125f4565b87525b81881480613d96575b80613d8c575b613d7a575b8651613d6c575f8a525b815f52601a602052613d498a60405f20613995565b613d59575b500193929190613c85565b5f52601b6020525f60408120555f613d4e565b8951613d34575f8752613d34565b613d85868b51612b47565b8a52613d2a565b5089511515613d25565b505f8612613d1f565b5f8752613d16565b50505f613cfe565b94613c8f565b64ffffffffff9250829150613dd89060603d606011611510576114fd8183612516565b939150929150613c53565b805f52601a602052613df98360405f2054612b47565b815f52601a60205260405f2055613c16565b50805f52601a60205260405f20541515613c11565b505f8312613c0b565b5050505f90565b9290919260018060a01b03165f52602160205260405f2060018060a01b0383165f5260205260405f2090815480156141e0575f92839290835b8381106140c657505050509080614016575b5080613f54575b506001600160a01b03165f818152601760209081526040808320858452909152902060010154613f11575f52601760205260405f20815f526020525f60408120555b805f52601a602052600160405f200154155f14613eea575f52601a6020525f6040812055565b805f52601a60205260405f205415613eff5750565b5f52601a6020525f6001604082200155565b805f52601760205260405f20825f5260205260405f205415613f34575b50613ec4565b5f52601760205260405f20815f526020525f60016040822001555f613f2e565b6001600160a01b0382165f8181526017602090815260408083208784529091529020600101548211613ff7575f52601760205260405f20835f52602052600160405f2001613fa38282546125f4565b90555b5f838152601a60205260409020600101548111613fe057825f52601a602052613fd7600160405f20019182546125f4565b90555b5f613e82565b50815f52601a6020525f6001604082200155613fda565b5f52601760205260405f20835f526020525f6001604082200155613fa6565b6001600160a01b0383165f81815260176020908152604080832088845290915290205482116140aa575f52601760205260405f20845f5260205260405f2061405f8282546125f4565b90555b5f848152601a6020526040902054811161409657835f52601a60205261408d60405f209182546125f4565b90555b5f613e7b565b50825f52601a6020525f6040812055614090565b5f52601760205260405f20845f526020525f6040812055614062565b60016140d28284612447565b500154956140e08284612447565b50549089808911156141d3578261411b60019594936141158961411061410a8f97614121986125f4565b8661256e565b612581565b90612647565b98612647565b97838060a01b038a16805f52601860205260405f20825f526020528260405f205410155f146141b7575f52601860205260405f20815f5260205260405f2061416a8382546125f4565b90555b5f818152601b602052604090205482116141a3575f52601b60205261419760405f209182546125f4565b90555b01949394613e69565b90505f52601b6020525f604081205561419a565b5f52601860205260405f20815f526020525f604081205561416d565b509596505060019061419a565b5050505050565b8054600160401b81101561112c5761420491600182018155612447565b9190916142165761421491613995565b565b634e487b7160e01b5f525f60045260245ffd5b95949190929560c05260a05260805260045f925f935f9460225460e052602060018060a01b0360025460081c166040519586809263089cc3b760e31b82525afa9384156110fb575f946146d1575b5060e0511580156146c2575b6145a1575f955f5b60a051518110156142c85764ffffffffff60206142aa8360a0516127a7565b510151168881116142bf575b5060010161428b565b975060016142b6565b50919395969092949660805181115f14614599576080516142e8916125f4565b945b6142f560e051612adc565b9661430160e051612adc565b610100525f935b60a0515185101561441c5764ffffffffff60206143278760a0516127a7565b5101511690608051821115614412575060019461271061435c8d60018060701b036143548560a0516127a7565b51511661256e565b0491821561440857896143e7575f905b8b8260e05111156143ca575b6143aa6143c19286836143a48761439e60019b614398836143b79a6127a7565b51612647565b926127a7565b5261256e565b61439884610100516127a7565b91610100516127a7565b525b0193614308565b5060e0519091505f1981011161190e5760e0515f1901908b614378565b6144028a61411060e0516143fd608051866125f4565b61256e565b9061436c565b50600191506143c3565b94600191506143c3565b97959950925092969094505f5b60e0518110614439575050505050565b61444381866127a7565b51838110614590576144628161445c84610100516127a7565b51612581565b62049d40810180911161190e5762093a8090049062093a8082029180830462093a80149015171561190e57608051829081116144a5575050506001905b01614429565b6144b68760809d93949c9d51612647565b10614575575b816144c691612647565b99856080516144d5908c6125f4565b6144df908461256e565b906144e991612581565b6144f291612647565b98600160a01b6001900360c051165f52601860205260405f20815f5260205260405f208281549061452291612647565b9055805f52601b60205260405f208281549061453d91612647565b90556040519161454c836124fb565b6001600160801b0316825264ffffffffff16602082015261456d90836141e7565b60019061449f565b98506144c68161458787608051612647565b9a9150506144bc565b5060019061449f565b505f946142ea565b9691905f9695969493945b60a051518110156146b75764ffffffffff60206145cb8360a0516127a7565b51015116976080518911156146ab57506001916127106145f88660018060701b036143548660a0516127a7565b049087821061469f578161462e8b9c614115886141109d9e9d61410a61462460019a9961469599612647565b9f608051906125f4565b9b848060a01b0360c051165f52601860205260405f20815f5260205260405f20614659838254612647565b9055805f52601b60205260405f20614672838254612647565b905560405191614681836124fb565b858060801b031682526020820152876141e7565b01969590966145ac565b97985050600190614695565b91969750600190614695565b509350505050929190565b5060e05160a051511115614283565b9093506020813d6020116146fd575b816146ed60209383612516565b810103126111065751925f614277565b3d91506146e0565b608083015190811590818015614831575b6148265767058d15e17628000083029183830467058d15e17628000014171561190e57670de0b6b3a76400008402908415948204670de0b6b3a76400001485171561190e575f94811515908161481d575b506147c8575b505061479992670de0b6b3a76400006147869204612647565b8181116147c1575b83516141109161256e565b9060208101518083106147b9575b50518082116147b4575090565b905090565b91505f6147a7565b508061478e565b6147d8919450606086015161256e565b90670853a0d2313c0000820291808304670853a0d2313c0000149015171561190e57670de0b6b3a76400006148136147999561478694612581565b945081925061476d565b9050155f614767565b505050506020015190565b50831561471656feba96fb19972930bda84dd5c49e835c4975aedb6dd8664e174c08d072662f518fed1f3e12429ce88e77b14ddf9c2eb89f0b9e1e0faa7e33a95d0ce1bbc90a1c2fed7f15007d2fa386f7b65d4b77efa7ef6422cc126225238b14ab707ce5dcc3a1f4f26a807a94b528f4b1525e7409e5f8a61de5ab075eade452ecbad32436e3955c91514091af31f62f596a314af7d5be40146b2f2355969392f055e12e0982fbfda1ae526c1fb38407f23e8b7712f7cfacc146f3e340a04221488331e0d42014a264697066735822122067cc7e086e1fadd69784b1e1651c386095dc3fd31cc30fc31cec75cafebe90b564736f6c634300081e00332f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0dbfe3375f87fed3740ea47aaaa82e5c11969038c76964e4c61f034b0b0e31b00cac55d60145c2b1e72232130507b090ddd2cd26daa31eeab1e3e64b89140e668dad3228b676f7d3cd4284a5443f17f1962b36e491b30a40b2405849e597ba5fb5",
1650
+ "deployedBytecode": "0x610120806040526004361015610013575f80fd5b5f905f3560e01c90816301ffc9a7146122a75750806306aba0e1146122855780630a7486c714611bd75780630c4232011461225b578063103490f9146121b95780631c3ebaeb14611bd7578063248a9ca31461219b578063289f338f146121635780632f2ff15d14612132578063308ee3051461204a578063315865df1461202e57806336568abe14611fe85780633b92eb2314611fbc5780634826499714611f9f5780634e7968e314611f4f5780634f6ffd0714611f32578063507ba5e214611f0b5780635baa02be14611ee85780635c679f7b14611da45780635c975abb14611d825780635f74bbde14611cd45780636635155714611cb95780636861059a14611c9c5780636ca32ae714611c6d5780636e890abb14611bdc5780637001f4bb14611bd757806372be527614611b9157806375619ab514611b0c578063776c01c414611acf5780637913867814611aa757806380c0ca4514611a54578063821ea928146115bf57806391d148541461157757806396c55175146112615780639c31c8fb146111f25780639d175053146111bf5780639da882ac14610f375780639eeb400714610ee4578063a217fddf14610ec8578063a795b66014610e68578063a85bde9d14610e42578063b187bd2614610e1f578063b4bb008514610d4a578063b97dd9e214610d2f578063b9a09fd514610ccc578063bb3d832f14610c6c578063c3a6ca1314610c1e578063cffd31dd14610b35578063d547741f14610afa578063d6585ecf14610ad2578063d8d1a657146109e5578063d93c6ede146109a2578063dcda162c1461097a578063de95a4b9146108fd578063e340838b14610714578063e75ec699146106ad578063eb7ad58e1461068f578063ec73d90614610656578063efe97d0514610633578063f0164ca01461041d578063f3086064146102e95763f4359ce5146102c9575f80fd5b346102e657806003193601126102e657602060405162093a808152f35b80fd5b50346102e6576102f836612381565b929091610303612f50565b83810361040e57845b818110610317578580f35b61032a610325828486612637565b612654565b90610336818787612637565b35918215159081840361040a576001600160a01b03169283159081156103e2575b506103d357823b156103c45787604051639d0ab89f60e01b8152826004820152818160248183895af180156103c8576103af575b50506001926040519182525f51602061487a5f395f51905f5260203393a30161030c565b816103b991612516565b6103c457875f61038b565b8780fd5b6040513d84823e3d90fd5b6365da5bb960e11b8852600488fd5b848a52601560205260408a205460ff1615915081610402575b505f610357565b90505f6103fb565b8880fd5b63512509d360e11b8552600485fd5b50346102e65760203660031901126102e657610437612316565b61043f613362565b61044761337d565b6001600160a01b03168082526015602052604082205460ff1661062457338252601d60205260408220815f5260205260405f2090604051610487816124e0565b8254815260018301549060406002602083019584875201549101521561061557338352601d60205260408320815f526020525f6002604082208281558260018201550155338352602160205260408320815f526020526104e960405f206127bb565b338352601e60205261050160408420549251836125f4565b338452601e6020526040842055338352602080526040832091835b8354808210156105fa5783610531838761248c565b905460039190911b1c6001600160a01b031614610551575060010161051c565b929391925f1981019081116105e657826105c35f51602061489a5f395f51905f52959361059f6105866105c89560409861248c565b905460039190911b1c6001600160a01b0316918461248c565b9080546001600160a01b0360039390931b83811b199091169290931690921b179055565b6126f8565b338552601e6020528185205482519182526020820152a26001805580f35b634e487b7160e01b86526011600452602486fd5b50505f51602061489a5f395f51905f529192506040906105c8565b632ada3b3f60e21b8352600483fd5b63e7e28cd960e01b8252600482fd5b50346102e657806003193601126102e657602061064e612b0e565b604051908152f35b50346102e65760203660031901126102e6576020906040906001600160a01b0361067e612316565b168152601e83522054604051908152f35b50346102e657806003193601126102e6576020601354604051908152f35b50346102e65760403660031901126102e65760406106c9612316565b916106d261232c565b9260018060a01b03168152601d602052209060018060a01b03165f5260205260405f20805461071060026001840154930154604051938493846124a1565b0390f35b50346102e65760203660031901126102e65761072e612316565b6001600160a01b031680825260208080526040808420905181548082529185528285209093859390928591820190855b8181106108db57505061077392500384612516565b61077d8351612adc565b610785612b0e565b928593865b86518110156108ba576001600160a01b036107a582896127a7565b511685895260216020526040892060018060a01b0382165f5260205260405f20868a52601d60205260408a2060018060a01b0383165f5260205260405f20906040516107f0816124e0565b82548152604060026001850154946020840195865201549101528054908b908c905b83821061086f5750501461082b575b505060010161078a565b9361083b91949792975190612647565b9261084682866127a7565b526001810180911161085b579460015f610821565b634e487b7160e01b88526011600452602488fd5b909187600161087e8585612447565b500154116108b1576001810180911161089d57600190925b0190610812565b634e487b7160e01b8e52601160045260248efd5b91600190610896565b505083825261071060405192839283526040602084015260408301906123d1565b84546001600160a01b031683526001948501948894506020909301920161075e565b50346102e65760203660031901126102e65760043561091a612ef4565b600181148015610970575b610961577f31eed88a3406e683789affe91262f34c5c8ab7c5cb106cbc76c5b8fa3cc6f1dd60406022548151908152836020820152a160225580f35b63585b926360e01b8252600482fd5b5060408111610925565b50346102e657806003193601126102e65760206040515f5160206148da5f395f51905f528152f35b50346102e65760403660031901126102e6576020906040906001600160a01b036109ca612316565b16815260188352818120602435825283522054604051908152f35b50346102e65760203660031901126102e65760043580151590818103610ace57610a0d612f50565b15610a6c5760205f51602061485a5f395f51905f5291610a2b613362565b600160ff1960025416176002557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25882604051338152a15b604051908152a180f35b60025460ff811615610abf575f51602061485a5f395f51905f529160209160ff19166002557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa82604051338152a1610a62565b638dfc202b60e01b8352600483fd5b8280fd5b50346102e657806003193601126102e65760206040515f5160206148ba5f395f51905f528152f35b50346102e65760403660031901126102e657610b31600435610b1a61232c565b90610b2c610b27826124cf565b612fac565b61306c565b5080f35b50346102e657806003193601126102e65780601354610b5381612adc565b91610b5d82612adc565b91610b66612b0e565b9085915b818310610bce57505050610b89604051936060855260608501906123d1565b93838503602085015260208084519687815201930190945b808610610bb657505082935060408301520390f35b90926020806001928651815201940195019490610ba1565b909192506001610c15610c0383610be487612474565b858060a01b0391549060031b1c1680610bfd898c6127a7565b526130f6565b91610c0e888a6127a7565b5284612d24565b93019190610b6a565b50346102e65760403660031901126102e65760409081906001600160a01b03610c45612316565b16815260176020528181206024358252602052206001815491015482519182526020820152f35b50346102e65760403660031901126102e657610c86612316565b6001600160a01b031681526020805260408120805460243592908310156102e6576020610cb3848461248c565b905460405160039290921b1c6001600160a01b03168152f35b50346102e65760203660031901126102e6576080906040906001600160a01b03610cf4612316565b168152601560205220805490600260018201549101549060ff604051938181161515855260081c161515602084015260408301526060820152f35b50346102e657806003193601126102e657602061064e612abc565b50346102e65760403660031901126102e657610d64612316565b610d6c612342565b90610d75612f50565b6001600160a01b031680158015610e00575b610df157803b15610ace578260405192639d0ab89f60e01b8452151592836004820152818160248183875af180156103c857610ddc575b50506040519182525f51602061487a5f395f51905f5260203393a380f35b81610de691612516565b610ace57825f610dbe565b6365da5bb960e11b8352600483fd5b50808352601560205260ff604084205416158015610d87575081610d87565b50346102e657806003193601126102e657602060ff600254166040519015158152f35b50346102e6576040610e5c610e563661240d565b9161281c565b82519182526020820152f35b50346102e657610e773661240d565b929160018060a01b031682526021602052604082209060018060a01b03165f5260205260405f209081548310156102e6576040610eb48484612447565b506001815491015482519182526020820152f35b50346102e657806003193601126102e657602090604051908152f35b50346102e65760403660031901126102e6576040610f00612316565b91610f0961232c565b9260018060a01b031681526016602052209060018060a01b03165f52602052602060405f2054604051908152f35b503461110657602036600319011261110657610f51612316565b610f59613362565b610f61612ef4565b6001600160a01b0381169081158015611165575b801561114f575b61114057604051608081016001600160401b0381118282101761112c576040526001815260026020820160018152604083015f8152610fe16060850192428452875f52601560205260405f209551151560ff80198854169116178655511515856124b7565b51600184015551910155610ff3612abc565b825f52601960205260405f205415611119575b6003546001600160a01b0316801561110a57803b15611106575f8091602460405180948193633d95763960e11b83528960048401525af180156110fb576110e6575b50601c54156110dd575b50818352601460205260408320541561108e575b507f9808313031a8f4caa534c417adad16800af7317516eff29a2d37cec0ffb244db8280a280f35b601354600160401b8110156110c9579061059f8260016110b39401601355601361248c565b601354818352601460205260408320555f611066565b634e487b7160e01b84526041600452602484fd5b601c555f611052565b6110f39194505f90612516565b5f925f611048565b6040513d5f823e3d90fd5b5f80fd5b63e6c4247b60e01b5f5260045ffd5b825f5260196020528060405f2055611006565b634e487b7160e01b5f52604160045260245ffd5b6365da5bb960e11b5f5260045ffd5b50815f52601560205260ff60405f205416610f7c565b506040516358c3de9360e11b8152602081600481865afa9081156110fb575f91611190575b50610f75565b6111b2915060203d6020116111b8575b6111aa8183612516565b810190612804565b5f61118a565b503d6111a0565b34611106576020366003190112611106576004355f52601a6020526040805f206001815491015482519182526020820152f35b346111065760203660031901126111065761120b612316565b611213613362565b6001600160a01b0381165f9081526015602052604090205460ff16156112525761123f611246916139a6565b9150613bf6565b50602060405160018152f35b63d4220bed60e01b5f5260045ffd5b346111065760203660031901126111065761127a612316565b611282613362565b61128a61337d565b600254604051621e403d60e21b81526001600160a01b0383811660048301819052939260081c169060a081602481855afa9081156110fb575f91611548575b50511561153957825f526020805260405f2092604051808560208297549384815201905f5260205f20925f5b81811061151757505061130a92500385612516565b60046060611316612b0e565b936040519283809263f1380ea960e01b82525afa9081156110fb5761134f915f915f916114d9575b5064ffffffffff809116911661256e565b925f5b8551811015611462576001906001600160a01b0361137082896127a7565b511661137e61123f826139a6565b50845f52601d60205260405f20838060a01b0382165f5260205260405f20541561145c57845f52601d60205260405f20838060a01b0382165f526020526040805f2060028251916113ce836124e0565b8054835286810154602084015201549182910152815f52602360205260405f20541061144b575b845f52602160205260405f20838060a01b0382165f5260205261141a60405f206127bb565b845f52601d60205260405f2090838060a01b03165f526020525f600260408220828155828582015501555b01611352565b61145787878387613e30565b6113f5565b50611445565b8286815f526020805260405f208054905f8155816114bb575b837feaafa67bd3aa4bb44bce0c035314029d39227a502ac081269bdd5989e1aa592b602085835f52601e82525f604081205551604051908152a260018055005b5f5260205f20908101905b8181101561147b575f81556001016114c6565b64ffffffffff92508291506115059060603d606011611510575b6114fd8183612516565b81019061277e565b93915092915061133e565b503d6114f3565b84546001600160a01b03168352600194850194899450602090930192016112f5565b630139629360e11b5f5260045ffd5b61156a915060a03d60a011611570575b6115628183612516565b810190612714565b846112c9565b503d611558565b346111065760403660031901126111065761159061232c565b6004355f525f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34611106576040366003190112611106576115d8612316565b6115e061232c565b906115e9612ef4565b6001600160a01b0381169182158015611a43575b8015611a2c575b6111405761161461123f836139a6565b5061161d612b0e565b5f84815260176020908152604080832084845282528083208054600190910154601a909352922054919290918311611a1957805f52601a60205260405f206116668482546125f4565b90555b5f818152601a60205260409020600101548211611a0357805f52601a602052600160405f200161169a8382546125f4565b90555b805f52601a602052600160405f200154155f146119dc57805f52601a6020525f60408120555b5f86815260176020908152604080832084845290915280822082815560010191909155600254905163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa80156110fb5764ffffffffff915f916119ba575b501662093a8081029080820462093a80149015171561190e57906117498794939282612647565b905b818111156119225750507fce362b7a1360d8d2e178b7890ae09c938033b09f9c074ca57b4660b032a3daeb91604091845f52602360205242835f205582519182526020820152a25f838152601560209081526040808320805460ff191681554260029091015560149091529020546013545f1981019080821161190e5782036118c8575b50506013549081156118b457611841926020925f19016118086117f382601361248c565b81549060018060a01b039060031b1b19169055565b601355845f52601483525f604081205560018060a01b0360035416905f60405180968195829463acf6da4d60e01b8452600484016126de565b03925af19081156110fb575f91611881575b5060207f4a5b80bc6b61c4bfbdf199326466e5b10e8406f4466d683a90d98ae91f4e1f4291604051908152a2005b90506020813d6020116118ac575b8161189c60209383612516565b8101031261110657516020611853565b3d915061188f565b634e487b7160e01b5f52603160045260245ffd5b6118d190612474565b905460039190911b1c6001600160a01b03165f19820182811161190e578161059f6118fb92612474565b5f52601460205260405f205583806117cf565b634e487b7160e01b5f52601160045260245ffd5b909192935f52601860205260405f20815f5260205260405f20548061195a575b5062093a80810180911161190e57908693929161174b565b5f828152601b602052604090205481116119a657815f52601b60205261198560405f209182546125f4565b90555b865f52601860205260405f20815f526020525f604081205587611942565b50805f52601b6020525f6040812055611988565b6119d3915060603d606011611510576114fd8183612516565b50905088611722565b805f52601a60205260405f20546116c357805f52601a6020525f60016040822001556116c3565b805f52601a6020525f600160408220015561169d565b805f52601a6020525f6040812055611669565b50825f52601560205260ff60405f20541615611604565b506001600160a01b038116156115fd565b3461110657604036600319011261110657611a6d612316565b611a7561232c565b6001600160a01b039182165f908152601d60209081526040808320949093168252928352819020600101549051908152f35b34611106575f366003190112611106576003546040516001600160a01b039091168152602090f35b34611106576020366003190112611106576001600160a01b03611af0612316565b165f526015602052602060ff60405f2054166040519015158152f35b3461110657602036600319011261110657611b25612316565b611b2d612ef4565b6001600160a01b0316801561110a57600380546001600160a01b0319811683179091556040517f4c0676acca55b8ccd85e7dd5b4bcff581e82454e0667820c536d370a3b3115909290918291611b8c916001600160a01b0316836126de565b0390a1005b3461110657602036600319011261110657611baa612316565b6001600160a01b0381161561114057611bcd602091611bc7612b0e565b906130f6565b5050604051908152f35b6122fa565b34611106575f36600319011261110657604051601380548083525f91825260208301917f66de8ffda797e3de9c05e8fc57b3bf0ec28a930d40b0d285d93c06501cf6a09091905b818110611c4e5761071085611c3a81870382612516565b6040519182916020835260208301906123d1565b82546001600160a01b0316845260209093019260019283019201611c23565b34611106576040366003190112611106576040610e5c611c8b612316565b611c93613362565b60243590612668565b34611106575f366003190112611106576020602254604051908152f35b34611106575f36600319011261110657602060405160648152f35b3461110657604036600319011261110657611ced612316565b611cf5613362565b611cfd61337d565b335f52601f60205260405f2060018060a01b0382165f5260205260405f2054620d2f00810180911161190e574210611d7357611d48611d3b3361339d565b60249291923585336134f9565b335f908152601f602090815260408083206001600160a01b0390941683529290522042905560018055005b630618259b60e11b5f5260045ffd5b34611106575f36600319011261110657602060ff600254166040519015158152f35b3461110657611db236612381565b919290611dbd613362565b611dc561337d565b83158015611ede575b611ecf575f805b858210611eaf57612710915011611ea057611def3361339d565b919290955f5b818110611e025760018055005b335f52601f60205260405f20611e1c61032583858a612637565b60018060a01b03165f5260205260405f2054620d2f00810180911161190e574210611d735780611e6d8987878b611e6586611e5e6103258f9a8c60019c612637565b928b612637565b3590336134f9565b335f52601f60205260405f20611e8761032583868b612637565b838060a01b03165f5260205260405f2042905501611df5565b63585b926360e01b5f5260045ffd5b611ec7600191611ec0848887612637565b3590612647565b910190611dd5565b63512509d360e11b5f5260045ffd5b5082841415611dce565b3461110657602036600319011261110657602061064e611f06612316565b612601565b34611106576040366003190112611106576040610e5c611f29612316565b6024359061259f565b34611106575f366003190112611106576020604051620d2f008152f35b3461110657604036600319011261110657611f68612316565b611f7061232c565b6001600160a01b039182165f908152601f60209081526040808320949093168252928352819020549051908152f35b34611106575f366003190112611106576020601c54604051908152f35b34611106575f3660031901126111065760025460405160089190911c6001600160a01b03168152602090f35b346111065760403660031901126111065761200161232c565b336001600160a01b0382160361201f5761201d9060043561306c565b005b63334bd91960e11b5f5260045ffd5b34611106575f3660031901126111065760206040516161a88152f35b3461110657604036600319011261110657612063612316565b61206b61232c565b9060018060a01b03165f52602160205260405f209060018060a01b03165f5260205260405f2080549061209d82612539565b916120ab6040519384612516565b8083526020830180925f5260205f205f915b838310612114578486604051918291602083019060208452518091526040830191905f5b8181106120ef575050500390f35b82518051855260209081015181860152869550604090940193909201916001016120e1565b6002602060019261212485612550565b8152019201920191906120bd565b346111065760403660031901126111065761201d60043561215161232c565b9061215e610b27826124cf565b612fe4565b34611106576020366003190112611106576001600160a01b03612184612316565b165f526019602052602060405f2054604051908152f35b3461110657602036600319011261110657602061064e6004356124cf565b34611106576040366003190112611106576121d2612316565b6121da612342565b906121e3612ef4565b6001600160a01b031690811561114057815f52601560205260ff60405f205416156112525760207f07829327d364c8af8ea5af9c81cac2a7ec3ec6a9879d2154b4a65e2c623d79db91835f52601582526122408160405f206124b7565b835f526015825242600260405f2001556040519015158152a2005b34611106576020366003190112611106576004355f52601b602052602060405f2054604051908152f35b34611106575f36600319011261110657602061064e6122a2612b0e565b612b5f565b34611106576020366003190112611106576004359063ffffffff60e01b821680920361110657602091637965db0b60e01b81149081156122e9575b5015158152f35b6301ffc9a760e01b149050836122e2565b34611106575f3660031901126111065760206040516127108152f35b600435906001600160a01b038216820361110657565b602435906001600160a01b038216820361110657565b60243590811515820361110657565b9181601f84011215611106578235916001600160401b038311611106576020808501948460051b01011161110657565b6040600319820112611106576004356001600160401b03811161110657816123ab91600401612351565b90929091602435906001600160401b038211611106576123cd91600401612351565b9091565b90602080835192838152019201905f5b8181106123ee5750505090565b82516001600160a01b03168452602093840193909201916001016123e1565b6060906003190112611106576004356001600160a01b038116810361110657906024356001600160a01b0381168103611106579060443590565b8054821015612460575f5260205f209060011b01905f90565b634e487b7160e01b5f52603260045260245ffd5b6013548110156124605760135f5260205f2001905f90565b8054821015612460575f5260205f2001905f90565b6040919493926060820195825260208201520152565b9061ff00825491151560081b169061ff001916179055565b5f525f602052600160405f20015490565b606081019081106001600160401b0382111761112c57604052565b604081019081106001600160401b0382111761112c57604052565b601f909101601f19168101906001600160401b0382119082101761112c57604052565b6001600160401b03811161112c5760051b60200190565b9060405161255d816124fb565b602060018294805484520154910152565b8181029291811591840414171561190e57565b811561258b570490565b634e487b7160e01b5f52601260045260245ffd5b6125af826125b6929493946130f6565b9194612d24565b9182156125ec57670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561190e57826125e891612581565b9190565b505f91508190565b9190820391821161190e57565b6001600160a01b03165f908152601e60205260409020546127108110156126325761271003612710811161190e5790565b505f90565b91908110156124605760051b0190565b9190820180921161190e57565b356001600160a01b03811681036111065790565b9091906001600160a01b0381169081156111405761123f612688916139a6565b505f52601760205260405f20825f5260205260405f2054915f52601a60205260405f20549182156125ec57670de0b6b3a7640000810290808204670de0b6b3a7640000149015171561190e57826125e891612581565b6001600160a01b0391821681529116602082015260400190565b805480156118b4575f1901906127116117f3838361248c565b55565b908160a0910312611106576040519060a08201906001600160401b0382118383101761112c57608091604052805183526020810151602084015260408101516040840152606081015160608401520151608082015290565b519064ffffffffff8216820361110657565b90816060910312611106578051916127a4604061279d6020850161276c565b930161276c565b90565b80518210156124605760209160051b010190565b8054905f8155816127ca575050565b6001600160ff1b038216820361190e575f5260205f209060011b8101905b8181106127f3575050565b5f80825560018201556002016127e8565b90816020910312611106575180151581036111065790565b9192916001600160a01b031690811561110a576001600160a01b031690811561114057815f52601560205260ff60405f20541615611252578315612ab057815f52601560205260ff60405f205460081c1615612a93576002546040516370a0823160e01b8152600481019290925260081c6001600160a01b031691602082602481865afa80156110fb575f90612a60575b6004925060208194604051948580926318160ddd60e01b82525afa9283156110fb575f93612a2c575b508210612a23575b81158015612a1b575b6129fd57604051635a38556f60e11b815290602082600481845afa9182156110fb575f926129c8575b50602060049160405192838092632964b67b60e21b82525afa9081156110fb575f91612996575b50600c5492600d54946040519260c084019484861060018060401b0387111761112c576161a8976129929761298b9760405286526020860152604085015260608401528760808401525f60a0840152614705565b809461256e565b0490565b90506020813d6020116129c0575b816129b160209383612516565b8101031261110657515f612937565b3d91506129a4565b9091506020813d6020116129f5575b816129e460209383612516565b810103126111065751906020612910565b3d91506129d7565b50505061271082029182046127100361190e576161a8612710920490565b5082156128e7565b915080916128de565b9092506020813d602011612a58575b81612a4860209383612516565b810103126111065751915f6128d6565b3d9150612a3b565b506020823d602011612a8b575b81612a7a60209383612516565b8101031261110657600491516128ad565b3d9150612a6d565b505061271082029182046127100361190e576161a8612710920490565b50509050612710905f90565b62093a80420462093a8081029080820462093a80149015171561190e5790565b90612ae682612539565b612af36040519182612516565b8281528092612b04601f1991612539565b0190602036910137565b62093a8042046001810180911161190e5762093a8081029080820462093a80149015171561190e5790565b5f19811461190e5760010190565b81810392915f13801582851316918412161761190e57565b90601c54918215612d1e5780831015612d0c5760025460405163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa9081156110fb57612bc4915f915f91612cde575b5064ffffffffff80919694959616911661256e565b92815f52601a602052612bd960405f20612550565b905f9060208301935b6101f4831080612cd5575b15612cca5762093a80810180911161190e578092815f52601b60205260405f20549186519262093a8084029380850462093a80149015171561190e57612c368a612c8295612581565b87519080821115612cc257612c4a916125f4565b875287518111612cb957612c5f9088516125f4565b87525b1580612cb2575b80612ca8575b612c96575b8551612c88575f8552612b39565b91612be2565b8451612b39575f8652612b39565b612ca15f8651612b47565b8552612c74565b5084511515612c6f565b505f612c69565b505f8752612c62565b50505f612c4a565b509450509150505190565b50858110612bed565b64ffffffffff9250829150612d019060603d606011611510576114fd8183612516565b939150929150612baf565b9091505f52601a60205260405f205490565b505f9150565b909291601c54938415612eec5782851015612ed85760025460405163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa9081156110fb57612d8b915f915f91612eaa575b5064ffffffffff80919896979816911661256e565b94835f52601a602052612da060405f20612550565b925f9160208501955b6101f4841080612ea1575b15612e945762093a80810180911161190e578093815f52601b60205260405f20549188519262093a8084029380850462093a80149015171561190e57612dfd8c612e4a95612581565b89519080821115612e8c57612e11916125f4565b895289518111612e8357612e26908a516125f4565b89525b841480612e7a575b80612e70575b612e5e575b8751612e50575f8752612b39565b92612da9565b8651612b39575f8852612b39565b612e69868851612b47565b8752612e3c565b5086511515612e37565b505f8612612e31565b505f8952612e29565b50505f612e11565b5096505050509150505190565b50878110612db4565b64ffffffffff9250829150612ecd9060603d606011611510576114fd8183612516565b939150929150612d76565b50509091505f52601a60205260405f205490565b505f93505050565b335f9081527fbfe3375f87fed3740ea47aaaa82e5c11969038c76964e4c61f034b0b0e31b00c602052604090205460ff1615612f2c57565b63e2517d3f60e01b5f52336004525f5160206148da5f395f51905f5260245260445ffd5b335f9081527fac55d60145c2b1e72232130507b090ddd2cd26daa31eeab1e3e64b89140e668d602052604090205460ff1615612f8857565b63e2517d3f60e01b5f52336004525f5160206148ba5f395f51905f5260245260445ffd5b5f8181526020818152604080832033845290915290205460ff1615612fce5750565b63e2517d3f60e01b5f523360045260245260445ffd5b5f818152602081815260408083206001600160a01b038616845290915290205460ff16613066575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19166001179055339291907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9080a4600190565b50505f90565b5f818152602081815260408083206001600160a01b038616845290915290205460ff1615613066575f818152602081815260408083206001600160a01b0395909516808452949091528120805460ff19169055339291907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080a4600190565b811561258b570690565b6001600160a01b03165f81815260196020526040902054929190831561335757818410156133365760025460405163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa9081156110fb57613171915f915f91613308575b5064ffffffffff8091979495969716911661256e565b93825f52601760205260405f20825f5260205261319060405f20612550565b915f935f945f9360208601965b6101f48610806132ff575b156132f0575062093a80840180941161190e578394835f52601860205260405f20855f5260205260405f205490885162093a8081029080820462093a80149015171561190e578b6131f8916130ec565b6132b75788519162093a8083029280840462093a80149015171561190e576132238c61328194612581565b945b858a518181105f146132af5761323b9250612b47565b965b5f8812156132a8575b89519095808211156132a05761325b916125f4565b89528951811161329757613270908a516125f4565b89525b8851613289575f8852612b39565b94939161319d565b8751612b39575f8952612b39565b505f8952613273565b50505f61325b565b505f613246565b50509661323d565b885162093a8081029080820462093a80149015171561190e578b6132da91612581565b916001830180931161190e576132819294613225565b97509550965050505051929190565b508885106131a8565b64ffffffffff925082915061332b9060603d606011611510576114fd8183612516565b93915092915061315b565b909192505f52601760205260405f20905f5260205260405f2054905f905f90565b505f92508291829150565b60ff6002541661336e57565b63d93c066560e01b5f5260045ffd5b60026001541461338e576002600155565b633ee5aeb560e01b5f5260045ffd5b60025460405163f1380ea960e01b815260089190911c6001600160a01b03169290606081600481875afa9081156110fb576133eb915f915f916114d9575064ffffffffff809116911661256e565b925f6133f5612b0e565b60405163719f308960e01b81526001600160a01b0390951660048601529391829060249082905afa9081156110fb575f9161342e575090565b90503d805f833e61343f8183612516565b810190602081830312611106578051906001600160401b038211611106570181601f820112156111065780519061347582612539565b926134836040519485612516565b82845260208085019360061b8301019181831161110657602001925b8284106134ad575050505090565b60408483031261110657604051906134c4826124fb565b8451906001600160701b03821682036111065782602092604094526134ea83880161276c565b8382015281520193019261349f565b6001600160a01b03821695909490929190861561114057865f52601560205260ff60405f205416156112525782151594858061394b575b61393c576127108411611ea0578580613932575b613923576135889561355861123f856139a6565b508860018060a01b03891698895f52601d60205260405f20825f526020528488876040805f209581519d8e6124e0565b8d875490818152600260018a015499602083019a8b52015493849101526138b7575b505050505050505f5f915f146137eb575050865f52601e6020526127106135d58560405f2054612647565b11611ea057600254604051621e403d60e21b8152600481018990529060a0908290602490829060081c6001600160a01b03165afa9081156110fb575f916137cc575b50516137a65761364091848692895f52602160205260405f208b5f5260205260405f2086614229565b95919094858297156137bd57821580156137b5575b6137a657895f52601760205260405f20825f5260205260405f2061367a828254612647565b9055895f52601760205260405f20825f52602052600160405f20016136a0848254612647565b9055815f52601a6020526136b960405f20918254612647565b90555f52601a602052600160405f20016136d4828254612647565b9055604051906136e3826124e0565b81526002602082018581526040830190428252895f52601d60205260405f208b5f5260205260405f209351845551600184015551910155855f52601e60205260405f20613731848254612647565b9055511561375f575b5061375a5f51602061483a5f395f51905f52935b604051938493846124a1565b0390a3565b92845f526020805260405f20908154600160401b81101561112c575f51602061483a5f395f51905f529561059f8261375a95600161379f9501815561248c565b935061373a565b635ee9d34160e01b5f5260045ffd5b508015613655565b63823c7e3560e01b5f5260045ffd5b6137e5915060a03d60a011611570576115628183612516565b5f613617565b94955097969550505050825f52601d60205260405f20845f526020525f6002604082208281558260018201550155825f526020805260405f20915f5b835480821015613899578661383c838761248c565b905460039190911b1c6001600160a01b03161461385c5750600101613827565b919293949596905f19830192831161190e57856105c36138949261059f61058661375a975f51602061483a5f395f51905f529b61248c565b61374e565b505090915061375a5f51602061483a5f395f51905f5293949561374e565b5f52602360205260405f205410613911575b50505050885f52602160205260405f208a5f526020526138eb60405f206127bb565b51885f52601e60205261390360405f209182546125f4565b90555f80848887838e6135aa565b61391a93613e30565b5f8488876138c9565b6315c1487560e31b5f5260045ffd5b5060648410613544565b6325aa339760e21b5f5260045ffd5b506040516358c3de9360e11b81526020816004818c5afa9081156110fb575f91613976575b50613530565b61398f915060203d6020116111b8576111aa8183612516565b5f613970565b906020600191805184550151910155565b6001600160a01b03165f8181526019602052604090205490918115613bec5760025460405163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa9081156110fb57613a12915f915f916114d9575064ffffffffff809116911661256e565b91835f52601760205260405f20815f52602052613a3160405f20612550565b905f945f945f90602085015b6101f48310613a5c575b5050505f52601960205260405f205551929190565b90919796428511613be5575062093a80840180941161190e5783835f52601860205260405f20815f5260205260405f205498825162093a8081029080820462093a80149015171561190e5784613ab1916130ec565b613bad5782519162093a8083029280840462093a80149015171561190e57613adb85600194612581565b995b8a89518181105f14613ba557613af39250612b47565b9a5b5f8c1215613b9f57815b8951909b80821115613b9757613b14916125f4565b895284518111613b8f57613b298186516125f4565b85525b8451613b81575f89525b865f52601760205260405f20825f52602052613b558960405f20613995565b613b63575b50019190613a3d565b855f52601860205260405f20905f526020525f60408120555f613b5a565b8851613b36575f8552613b36565b5f8552613b2c565b50505f613b14565b5f613aff565b50509a613af5565b825162093a8081029080820462093a80149015171561190e5784613bd091612581565b916001830180931161190e5760019299613add565b9697613a47565b5f92508291508190565b90601c54908115613e29578181111580613e20575b80613e0b575b613de3575b60025460405163f1380ea960e01b8152906060908290600490829060081c6001600160a01b03165afa9081156110fb57613c67915f915f91613db5575b5064ffffffffff809196949616911661256e565b92825f52601a602052613c7c60405f20612550565b935f9260208601915b6101f48510613c9b575b5050505050601c555190565b9091929394428111613daf5762093a80810180911161190e578095815f52601b60205260405f20549185519262093a8084029380850462093a80149015171561190e57613cea85600195612581565b8a519080821115613da757613cfe916125f4565b8a5286518111613d9f57613d138188516125f4565b87525b81881480613d96575b80613d8c575b613d7a575b8651613d6c575f8a525b815f52601a602052613d498a60405f20613995565b613d59575b500193929190613c85565b5f52601b6020525f60408120555f613d4e565b8951613d34575f8752613d34565b613d85868b51612b47565b8a52613d2a565b5089511515613d25565b505f8612613d1f565b5f8752613d16565b50505f613cfe565b94613c8f565b64ffffffffff9250829150613dd89060603d606011611510576114fd8183612516565b939150929150613c53565b805f52601a602052613df98360405f2054612b47565b815f52601a60205260405f2055613c16565b50805f52601a60205260405f20541515613c11565b505f8312613c0b565b5050505f90565b9290919260018060a01b03165f52602160205260405f2060018060a01b0383165f5260205260405f2090815480156141e0575f92839290835b8381106140c657505050509080614016575b5080613f54575b506001600160a01b03165f818152601760209081526040808320858452909152902060010154613f11575f52601760205260405f20815f526020525f60408120555b805f52601a602052600160405f200154155f14613eea575f52601a6020525f6040812055565b805f52601a60205260405f205415613eff5750565b5f52601a6020525f6001604082200155565b805f52601760205260405f20825f5260205260405f205415613f34575b50613ec4565b5f52601760205260405f20815f526020525f60016040822001555f613f2e565b6001600160a01b0382165f8181526017602090815260408083208784529091529020600101548211613ff7575f52601760205260405f20835f52602052600160405f2001613fa38282546125f4565b90555b5f838152601a60205260409020600101548111613fe057825f52601a602052613fd7600160405f20019182546125f4565b90555b5f613e82565b50815f52601a6020525f6001604082200155613fda565b5f52601760205260405f20835f526020525f6001604082200155613fa6565b6001600160a01b0383165f81815260176020908152604080832088845290915290205482116140aa575f52601760205260405f20845f5260205260405f2061405f8282546125f4565b90555b5f848152601a6020526040902054811161409657835f52601a60205261408d60405f209182546125f4565b90555b5f613e7b565b50825f52601a6020525f6040812055614090565b5f52601760205260405f20845f526020525f6040812055614062565b60016140d28284612447565b500154956140e08284612447565b50549089808911156141d3578261411b60019594936141158961411061410a8f97614121986125f4565b8661256e565b612581565b90612647565b98612647565b97838060a01b038a16805f52601860205260405f20825f526020528260405f205410155f146141b7575f52601860205260405f20815f5260205260405f2061416a8382546125f4565b90555b5f818152601b602052604090205482116141a3575f52601b60205261419760405f209182546125f4565b90555b01949394613e69565b90505f52601b6020525f604081205561419a565b5f52601860205260405f20815f526020525f604081205561416d565b509596505060019061419a565b5050505050565b8054600160401b81101561112c5761420491600182018155612447565b9190916142165761421491613995565b565b634e487b7160e01b5f525f60045260245ffd5b95949190929560c05260a05260805260045f925f935f9460225460e052602060018060a01b0360025460081c166040519586809263089cc3b760e31b82525afa9384156110fb575f946146d1575b5060e0511580156146c2575b6145a1575f955f5b60a051518110156142c85764ffffffffff60206142aa8360a0516127a7565b510151168881116142bf575b5060010161428b565b975060016142b6565b50919395969092949660805181115f14614599576080516142e8916125f4565b945b6142f560e051612adc565b9661430160e051612adc565b610100525f935b60a0515185101561441c5764ffffffffff60206143278760a0516127a7565b5101511690608051821115614412575060019461271061435c8d60018060701b036143548560a0516127a7565b51511661256e565b0491821561440857896143e7575f905b8b8260e05111156143ca575b6143aa6143c19286836143a48761439e60019b614398836143b79a6127a7565b51612647565b926127a7565b5261256e565b61439884610100516127a7565b91610100516127a7565b525b0193614308565b5060e0519091505f1981011161190e5760e0515f1901908b614378565b6144028a61411060e0516143fd608051866125f4565b61256e565b9061436c565b50600191506143c3565b94600191506143c3565b97959950925092969094505f5b60e0518110614439575050505050565b61444381866127a7565b51838110614590576144628161445c84610100516127a7565b51612581565b62049d40810180911161190e5762093a8090049062093a8082029180830462093a80149015171561190e57608051829081116144a5575050506001905b01614429565b6144b68760809d93949c9d51612647565b10614575575b816144c691612647565b99856080516144d5908c6125f4565b6144df908461256e565b906144e991612581565b6144f291612647565b98600160a01b6001900360c051165f52601860205260405f20815f5260205260405f208281549061452291612647565b9055805f52601b60205260405f208281549061453d91612647565b90556040519161454c836124fb565b6001600160801b0316825264ffffffffff16602082015261456d90836141e7565b60019061449f565b98506144c68161458787608051612647565b9a9150506144bc565b5060019061449f565b505f946142ea565b9691905f9695969493945b60a051518110156146b75764ffffffffff60206145cb8360a0516127a7565b51015116976080518911156146ab57506001916127106145f88660018060701b036143548660a0516127a7565b049087821061469f578161462e8b9c614115886141109d9e9d61410a61462460019a9961469599612647565b9f608051906125f4565b9b848060a01b0360c051165f52601860205260405f20815f5260205260405f20614659838254612647565b9055805f52601b60205260405f20614672838254612647565b905560405191614681836124fb565b858060801b031682526020820152876141e7565b01969590966145ac565b97985050600190614695565b91969750600190614695565b509350505050929190565b5060e05160a051511115614283565b9093506020813d6020116146fd575b816146ed60209383612516565b810103126111065751925f614277565b3d91506146e0565b608083015190811590818015614831575b6148265767058d15e17628000083029183830467058d15e17628000014171561190e57670de0b6b3a76400008402908415948204670de0b6b3a76400001485171561190e575f94811515908161481d575b506147c8575b505061479992670de0b6b3a76400006147869204612647565b8181116147c1575b83516141109161256e565b9060208101518083106147b9575b50518082116147b4575090565b905090565b91505f6147a7565b508061478e565b6147d8919450606086015161256e565b90670853a0d2313c0000820291808304670853a0d2313c0000149015171561190e57670de0b6b3a76400006148136147999561478694612581565b945081925061476d565b9050155f614767565b505050506020015190565b50831561471656feba96fb19972930bda84dd5c49e835c4975aedb6dd8664e174c08d072662f518fed1f3e12429ce88e77b14ddf9c2eb89f0b9e1e0faa7e33a95d0ce1bbc90a1c2fed7f15007d2fa386f7b65d4b77efa7ef6422cc126225238b14ab707ce5dcc3a1f4f26a807a94b528f4b1525e7409e5f8a61de5ab075eade452ecbad32436e3955c91514091af31f62f596a314af7d5be40146b2f2355969392f055e12e0982fbfda1ae526c1fb38407f23e8b7712f7cfacc146f3e340a04221488331e0d42014a264697066735822122067cc7e086e1fadd69784b1e1651c386095dc3fd31cc30fc31cec75cafebe90b564736f6c634300081e0033",
1659
1651
  "linkReferences": {},
1660
1652
  "deployedLinkReferences": {}
1661
1653
  }