@gooddollar/goodprotocol 2.0.13 → 2.0.14-beta.0

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 (489) hide show
  1. package/artifacts/abis/DistributionBridgeMock.min.json +1 -1
  2. package/artifacts/abis/DistributionHelper.min.json +1 -1
  3. package/artifacts/abis/DistributionHelperTest.min.json +1 -1
  4. package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -1
  5. package/artifacts/abis/GasPriceMockOracle.min.json +1 -1
  6. package/artifacts/abis/GoodCompoundStakingTest.min.json +1 -1
  7. package/artifacts/abis/GoodReserveCDai.min.json +1 -1
  8. package/artifacts/abis/IFeesFormula.min.json +1 -1
  9. package/artifacts/abis/ISuperGoodDollar.min.json +1 -1
  10. package/artifacts/abis/ISuperToken.min.json +1 -0
  11. package/artifacts/abis/MultichainFeeFormula.min.json +1 -0
  12. package/artifacts/abis/SuperGoodDollar.min.json +1 -1
  13. package/artifacts/abis/SuperToken.min.json +1 -1
  14. package/artifacts/abis/UBIScheme.min.json +1 -1
  15. package/artifacts/abis/UBISchemeV2.min.json +1 -1
  16. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  17. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  18. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  19. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  20. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  21. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  35. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  36. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  37. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  38. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  39. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  40. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  41. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  42. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  43. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  44. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  45. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  46. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +2 -2
  47. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  48. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
  49. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  50. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.json +2 -2
  51. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  52. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
  53. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  54. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
  55. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  56. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
  57. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  58. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +2 -2
  59. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  60. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
  61. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  62. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  63. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
  64. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  65. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  66. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
  67. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  68. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  69. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  70. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +2 -2
  71. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  72. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.json +2 -2
  73. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  74. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
  75. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  76. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +2 -2
  77. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +2 -2
  79. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.json +2 -2
  81. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.json +2 -2
  83. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.json +2 -2
  85. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.json +2 -2
  87. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.json +2 -2
  89. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.json +2 -2
  91. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  92. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +122 -17
  93. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +242 -17
  95. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +256 -18
  97. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  98. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.json +2 -2
  99. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  100. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.json +2 -2
  101. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  102. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.json +15 -2
  103. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  104. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +6 -6
  105. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  106. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +2 -2
  107. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  108. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
  109. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  110. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +2 -2
  111. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  112. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.json +2 -2
  113. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  114. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.json +2 -2
  115. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  116. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  117. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
  118. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  119. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  120. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
  121. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  122. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  123. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  124. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.json +2 -2
  125. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  126. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +2 -2
  127. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  128. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +2 -2
  129. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  130. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  131. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  132. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.json +2 -2
  133. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  134. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
  135. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  136. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
  137. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  138. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
  139. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  140. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
  141. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  142. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +2 -2
  143. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  144. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +2 -2
  145. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  146. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +2 -2
  147. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  148. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +2 -2
  149. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  150. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +2 -2
  151. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  152. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +2 -2
  153. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  154. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +2 -2
  155. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  156. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +2 -2
  157. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  158. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +242 -17
  159. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  160. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
  161. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  162. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
  163. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  164. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  165. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +45 -19
  166. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  167. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  168. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  169. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  170. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  171. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  172. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  173. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
  174. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  175. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  176. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  177. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
  178. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  179. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  180. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  181. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  182. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  183. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
  184. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  185. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
  186. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  187. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
  188. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  189. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
  190. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  191. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
  192. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  193. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
  194. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  195. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +2 -2
  196. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  197. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  198. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +2 -2
  199. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  200. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  201. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  202. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +2 -2
  203. package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +4 -0
  204. package/artifacts/contracts/token/{FeesFormula.sol → IFeesFormula.sol}/IFeesFormula.json +1 -1
  205. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +4 -0
  206. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.json +58 -0
  207. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  208. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  209. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  210. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  211. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.json +159 -5
  212. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +4 -0
  213. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.json +1609 -0
  214. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  215. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +233 -190
  216. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  217. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +198 -193
  218. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  219. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  220. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  221. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  222. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
  223. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  224. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +2 -2
  225. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  226. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +20 -2
  227. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  228. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.json +20 -2
  229. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  230. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +2 -2
  231. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  232. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.json +2 -2
  233. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  234. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.json +2 -2
  235. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  236. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
  237. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  238. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +2 -2
  239. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
  240. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.json +2 -2
  241. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
  242. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.json +2 -2
  243. package/artifacts/contracts/utils/BuyGDClone.sol/ISwapRouter.dbg.json +1 -1
  244. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  245. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  246. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  247. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
  248. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  249. package/artifacts/contracts/utils/DSMath.sol/DSMath.json +2 -2
  250. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  251. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.json +2 -2
  252. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
  253. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.json +2 -2
  254. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  255. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +2 -2
  256. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  257. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  258. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  259. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +2 -2
  260. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
  261. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.json +2 -2
  262. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  263. package/artifacts/contracts/utils/MultiCall.sol/Multicall.json +2 -2
  264. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  265. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +2 -2
  266. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  267. package/artifacts/contracts/utils/NameService.sol/NameService.json +2 -2
  268. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  269. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.json +2 -2
  270. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
  271. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.json +2 -2
  272. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  273. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  274. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  275. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  276. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  277. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  278. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  279. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  280. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  281. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  282. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  283. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  284. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
  285. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  286. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  287. package/contracts/invite/InvitesFuseV2.sol +3 -2
  288. package/contracts/mocks/DistributionBridgeMock.sol +42 -15
  289. package/contracts/mocks/DistributionHelperTest.sol +6 -2
  290. package/contracts/mocks/FeesFormularMock.sol +14 -14
  291. package/contracts/mocks/GasPriceMockOracle.sol +7 -1
  292. package/contracts/reserve/DistributionHelper.sol +147 -23
  293. package/contracts/reserve/GoodReserveCDai.sol +39 -47
  294. package/contracts/staking/GoodFundManager.sol +18 -37
  295. package/contracts/token/GoodDollar.sol +11 -16
  296. package/contracts/token/MultichainFeeFormula.sol +34 -0
  297. package/contracts/token/superfluid/ConstantFlowNFTs.sol +3 -0
  298. package/contracts/token/superfluid/ISuperGoodDollar.sol +4 -5
  299. package/contracts/token/superfluid/ISuperToken.sol +464 -0
  300. package/contracts/token/superfluid/SuperGoodDollar.sol +408 -376
  301. package/contracts/token/superfluid/SuperToken.sol +144 -144
  302. package/contracts/ubi/UBIScheme.sol +9 -5
  303. package/contracts/ubi/UBISchemeV2.sol +6 -0
  304. package/contracts/utils/AdminWallet.sol +2 -1
  305. package/contracts/utils/AdminWalletFuse.sol +2 -1
  306. package/contracts/utils/BuyAndBridgeHelper.sol +13 -13
  307. package/contracts/utils/MultiCall.sol +8 -10
  308. package/dist/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +2 -2
  309. package/dist/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +233 -190
  310. package/dist/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +2 -2
  311. package/dist/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  312. package/hardhat.config.ts +46 -15
  313. package/package.json +7 -7
  314. package/releases/deploy-settings.json +3 -1
  315. package/releases/deployment.json +6 -2
  316. package/scripts/analytics/faucetStats.ts +19 -15
  317. package/scripts/fv.ts +305 -0
  318. package/scripts/multichain-deploy/1_basicdao-deploy.ts +18 -9
  319. package/scripts/multichain-deploy/helpers.ts +204 -64
  320. package/scripts/proposals/gip-15.ts +427 -0
  321. package/scripts/upgrades/multichain-formula-upgrade.ts +140 -0
  322. package/scripts/upgrades/restoreFunds.ts +91 -0
  323. package/scripts/upgrades/superfluid-nft-celo-gas-token.ts +159 -0
  324. package/scripts/utils.ts +15 -0
  325. package/test/helpers.ts +73 -10
  326. package/test/reserve/DistributionHelper.test.ts +183 -218
  327. package/test/reserve/GoodReserveCDai.distribution.test.ts +21 -144
  328. package/test/reserve/GoodReserveCDai.test.ts +98 -302
  329. package/test/staking/StakingRewards.test.ts +324 -936
  330. package/test/token/CeloGasToken.test.ts +108 -0
  331. package/test/token/SuperGoodDollar.test.ts +15 -6
  332. package/test/utils/AdminWallet.test.ts +97 -38
  333. package/test/utils/BuyAndBridgeHelper.test.ts +9 -33
  334. package/truffle-config.js +24 -6
  335. package/types/ConstantInflowNFT.ts +969 -0
  336. package/types/ConstantOutflowNFT.ts +1031 -0
  337. package/types/DistributionBridgeMock.ts +203 -70
  338. package/types/DistributionHelper.ts +325 -30
  339. package/types/DistributionHelperTest.ts +325 -30
  340. package/types/DistributionHelperTestHelper.ts +355 -35
  341. package/types/FlowNFTBase.ts +887 -0
  342. package/types/GasPriceMockOracle.ts +29 -0
  343. package/types/GoodReserveCDai.ts +79 -20
  344. package/types/IConstantFlowAgreementV1.ts +1391 -0
  345. package/types/IConstantInflowNFT.ts +772 -0
  346. package/types/IConstantOutflowNFT.ts +834 -0
  347. package/types/IERC721.ts +487 -0
  348. package/types/IERC721Metadata.ts +538 -0
  349. package/types/IFlowNFTBase.ts +711 -0
  350. package/types/IInstantDistributionAgreementV1.ts +1183 -0
  351. package/types/ILayerZeroFeeEstimator.ts +136 -0
  352. package/types/IMessagePassingBridge.ts +774 -0
  353. package/types/ISETH.ts +2668 -0
  354. package/types/ISETHCustom.ts +161 -0
  355. package/types/ISuperGoodDollar.ts +277 -25
  356. package/types/ISuperToken.ts +202 -346
  357. package/types/ISuperfluid.ts +7 -2
  358. package/types/ISuperfluidGovernance.ts +40 -5
  359. package/types/MultichainFeeFormula.ts +130 -0
  360. package/types/SuperGoodDollar.ts +383 -349
  361. package/types/SuperToken.ts +319 -344
  362. package/types/UBIScheme.ts +36 -0
  363. package/types/UBISchemeV2.ts +36 -0
  364. package/types/factories/AaveMock__factory.ts +1 -1
  365. package/types/factories/AaveStakingFactory__factory.ts +1 -1
  366. package/types/factories/AaveUSDMockOracle__factory.ts +1 -1
  367. package/types/factories/AdminWalletFuse__factory.ts +1 -1
  368. package/types/factories/AdminWallet__factory.ts +1 -1
  369. package/types/factories/BancorFormula__factory.ts +1 -1
  370. package/types/factories/BaseShareFieldV2__factory.ts +1 -1
  371. package/types/factories/BaseShareField__factory.ts +1 -1
  372. package/types/factories/BatUSDMockOracle__factory.ts +1 -1
  373. package/types/factories/BuyAndBridgeHelper__factory.ts +1 -1
  374. package/types/factories/BuyGDCloneFactory__factory.ts +1 -1
  375. package/types/factories/BuyGDClone__factory.ts +1 -1
  376. package/types/factories/CBATMock__factory.ts +1 -1
  377. package/types/factories/CDAILowWorthMock__factory.ts +1 -1
  378. package/types/factories/CDAIMock__factory.ts +1 -1
  379. package/types/factories/CDAINonMintableMock__factory.ts +1 -1
  380. package/types/factories/CDecimalsMock__factory.ts +1 -1
  381. package/types/factories/CSDTMock__factory.ts +1 -1
  382. package/types/factories/CUSDCMock__factory.ts +1 -1
  383. package/types/factories/ClaimersDistribution__factory.ts +1 -1
  384. package/types/factories/CompUSDMockOracle__factory.ts +1 -1
  385. package/types/factories/CompoundStakingFactory__factory.ts +1 -1
  386. package/types/factories/CompoundVotingMachine__factory.ts +1 -1
  387. package/types/factories/ConstantInflowNFT__factory.ts +758 -0
  388. package/types/factories/ConstantOutflowNFT__factory.ts +817 -0
  389. package/types/factories/DAIMock__factory.ts +1 -1
  390. package/types/factories/DAOContract__factory.ts +1 -1
  391. package/types/factories/DAOUpgradeableContract__factory.ts +1 -1
  392. package/types/factories/DaiEthPriceMockOracle__factory.ts +1 -1
  393. package/types/factories/DecimalsMock__factory.ts +1 -1
  394. package/types/factories/DistributionBridgeMock__factory.ts +121 -16
  395. package/types/factories/DistributionHelperTestHelper__factory.ts +255 -17
  396. package/types/factories/DistributionHelperTest__factory.ts +241 -16
  397. package/types/factories/DistributionHelper__factory.ts +241 -16
  398. package/types/factories/DonationsStaking__factory.ts +1 -1
  399. package/types/factories/ERC1967Proxy__factory.ts +1 -1
  400. package/types/factories/ERC20PresetMinterPauserUpgradeable__factory.ts +1 -1
  401. package/types/factories/ERC20Upgradeable__factory.ts +1 -1
  402. package/types/factories/EthUSDMockOracle__factory.ts +1 -1
  403. package/types/factories/EventsEmitter__factory.ts +1 -1
  404. package/types/factories/ExchangeHelper__factory.ts +1 -1
  405. package/types/factories/Faucet__factory.ts +1 -1
  406. package/types/factories/FeesFormulaMock__factory.ts +1 -1
  407. package/types/factories/FlowNFTBase__factory.ts +642 -0
  408. package/types/factories/FuseFaucetV2__factory.ts +1 -1
  409. package/types/factories/FuseFaucet__factory.ts +1 -1
  410. package/types/factories/FuseStakingV3__factory.ts +1 -1
  411. package/types/factories/GDFaucet__factory.ts +1 -1
  412. package/types/factories/GReputation__factory.ts +1 -1
  413. package/types/factories/GasPriceMockOracle__factory.ts +14 -1
  414. package/types/factories/GoodAaveStakingV2__factory.ts +1 -1
  415. package/types/factories/GoodAaveStaking__factory.ts +1 -1
  416. package/types/factories/GoodCompoundStakingTest__factory.ts +1 -1
  417. package/types/factories/GoodCompoundStakingV2__factory.ts +1 -1
  418. package/types/factories/GoodCompoundStaking__factory.ts +1 -1
  419. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +1 -1
  420. package/types/factories/GoodDollarStakingMock__factory.ts +1 -1
  421. package/types/factories/GoodDollarStaking__factory.ts +1 -1
  422. package/types/factories/GoodDollar__factory.ts +1 -1
  423. package/types/factories/GoodFundManagerTest__factory.ts +1 -1
  424. package/types/factories/GoodFundManager__factory.ts +1 -1
  425. package/types/factories/GoodMarketMaker__factory.ts +1 -1
  426. package/types/factories/GoodReserveCDai__factory.ts +44 -18
  427. package/types/factories/GovernanceStaking__factory.ts +1 -1
  428. package/types/factories/IConstantFlowAgreementV1__factory.ts +1064 -0
  429. package/types/factories/IConstantInflowNFT__factory.ts +551 -0
  430. package/types/factories/IConstantOutflowNFT__factory.ts +614 -0
  431. package/types/factories/IERC721Metadata__factory.ts +356 -0
  432. package/types/factories/IERC721__factory.ts +308 -0
  433. package/types/factories/IFlowNFTBase__factory.ts +512 -0
  434. package/types/factories/IInstantDistributionAgreementV1__factory.ts +1015 -0
  435. package/types/factories/ILayerZeroFeeEstimator__factory.ts +79 -0
  436. package/types/factories/IMessagePassingBridge__factory.ts +446 -0
  437. package/types/factories/ISETHCustom__factory.ts +56 -0
  438. package/types/factories/ISETH__factory.ts +1866 -0
  439. package/types/factories/ISuperGoodDollar__factory.ts +159 -5
  440. package/types/factories/ISuperTokenFactory__factory.ts +5 -0
  441. package/types/factories/ISuperToken__factory.ts +130 -191
  442. package/types/factories/ISuperfluidGovernance__factory.ts +23 -5
  443. package/types/factories/ISuperfluid__factory.ts +10 -0
  444. package/types/factories/IdentityFix__factory.ts +1 -1
  445. package/types/factories/IdentityMock__factory.ts +1 -1
  446. package/types/factories/IdentityV2__factory.ts +1 -1
  447. package/types/factories/IncentiveControllerMock__factory.ts +1 -1
  448. package/types/factories/InvitesFuseV2__factory.ts +1 -1
  449. package/types/factories/InvitesV1__factory.ts +1 -1
  450. package/types/factories/InvitesV2__factory.ts +1 -1
  451. package/types/factories/LendingPoolMock__factory.ts +1 -1
  452. package/types/factories/Multicall__factory.ts +1 -1
  453. package/types/factories/MultichainBridgeHelper__factory.ts +1 -1
  454. package/types/factories/MultichainFeeFormula__factory.ts +113 -0
  455. package/types/factories/MultichainRouterMock__factory.ts +1 -1
  456. package/types/factories/NameService__factory.ts +1 -1
  457. package/types/factories/OneTimePaymentsV2__factory.ts +1 -1
  458. package/types/factories/OneTimePayments__factory.ts +1 -1
  459. package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
  460. package/types/factories/OverMintTester__factory.ts +1 -1
  461. package/types/factories/PayableMock__factory.ts +1 -1
  462. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  463. package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
  464. package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
  465. package/types/factories/ProtocolUpgrade__factory.ts +1 -1
  466. package/types/factories/ProxyFactory1967__factory.ts +1 -1
  467. package/types/factories/ReputationTestHelper__factory.ts +1 -1
  468. package/types/factories/Reputation__factory.ts +1 -1
  469. package/types/factories/SixteenDecimalsTokenMock__factory.ts +1 -1
  470. package/types/factories/StakersDistribution__factory.ts +1 -1
  471. package/types/factories/StakingMockFixedAPY__factory.ts +1 -1
  472. package/types/factories/SuperGoodDollar__factory.ts +230 -187
  473. package/types/factories/SuperToken__factory.ts +197 -192
  474. package/types/factories/SwapHelperTest__factory.ts +1 -1
  475. package/types/factories/TwentyDecimalsTokenMock__factory.ts +1 -1
  476. package/types/factories/UBISchemeV2__factory.ts +19 -1
  477. package/types/factories/UBIScheme__factory.ts +19 -1
  478. package/types/factories/USDCMock__factory.ts +1 -1
  479. package/types/factories/UUPSProxy__factory.ts +1 -1
  480. package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
  481. package/types/factories/UpgradableMock2__factory.ts +1 -1
  482. package/types/factories/UpgradableMock3__factory.ts +1 -1
  483. package/types/factories/UpgradableMock4__factory.ts +1 -1
  484. package/types/factories/UpgradableMock__factory.ts +1 -1
  485. package/types/hardhat.d.ts +166 -4
  486. package/types/index.ts +34 -4
  487. package/yarn.lock +1288 -719
  488. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +0 -4
  489. /package/contracts/token/{FeesFormula.sol → IFeesFormula.sol} +0 -0
@@ -793,7 +793,7 @@ const _abi = [
793
793
  ];
794
794
 
795
795
  const _bytecode =
796
- "0x60806040526200002c60636c0c9f2c9cd04674edea40000000620001fb60201b62000c3b1790919060201c565b6101c4553480156200003d57600080fd5b50604051620026fc380380620026fc8339810160408190526200006091620004d4565b600054610100900460ff1615808015620000815750600054600160ff909116105b80620000b157506200009e306200021260201b62000c471760201c565b158015620000b1575060005460ff166001145b6200011a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156200013e576000805461ff0019166101001790555b620001906040518060400160405280600c81526020016b10dbdb5c1bdd5b990810905560a21b8152506040518060400160405280600481526020016318d0905560e21b8152506200022160201b60201c565b6101c380546001600160a01b0319166001600160a01b0384161790558015620001f3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050620006e4565b600062000209828462000506565b90505b92915050565b6001600160a01b03163b151590565b600054610100900460ff166200024b5760405162461bcd60e51b8152600401620001119062000529565b62000257828262000271565b62000261620002bd565b6200026d8282620002f4565b5050565b600054610100900460ff166200029b5760405162461bcd60e51b8152600401620001119062000529565b60cc620002a9838262000618565b5060cd620002b8828262000618565b505050565b600054610100900460ff16620002e75760405162461bcd60e51b8152600401620001119062000529565b61012d805460ff19169055565b600054610100900460ff166200031e5760405162461bcd60e51b8152600401620001119062000529565b6200033160003362000389565b62000389565b6200035d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000389565b6200026d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336200032b565b6200026d8282620003a68282620003cd60201b62000c561760201c565b6000828152609760209081526040909120620002b891839062000cdc62000471821b17901c565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff166200026d5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200042d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000209836001600160a01b0384166000818152600183016020526040812054620004cb575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200020c565b5060006200020c565b600060208284031215620004e757600080fd5b81516001600160a01b0381168114620004ff57600080fd5b9392505050565b6000826200052457634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200059f57607f821691505b602082108103620005c057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002b857600081815260208120601f850160051c81016020861015620005ef5750805b601f850160051c820191505b818110156200061057828155600101620005fb565b505050505050565b81516001600160401b0381111562000634576200063462000574565b6200064c816200064584546200058a565b84620005c6565b602080601f8311600181146200068457600084156200066b5750858301515b600019600386901b1c1916600185901b17855562000610565b600085815260208120601f198616915b82811015620006b55788860151825594840194600190910190840162000694565b5085821015620006d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61200880620006f46000396000f3fe608060405234801561001057600080fd5b50600436106101a15760003560e01c806301ffc9a7146101a657806306fdde03146101ce578063095ea7b3146101e357806318160ddd146101f6578063182df0f51461020857806323b872dd14610211578063248a9ca3146102245780632f2ff15d14610237578063313ce5671461024c57806336568abe1461025b578063395093511461026e5780633f4ba83a1461028157806340c10f191461028957806342966c681461029c5780634cd88b76146102af5780635c975abb146102c257806370a08231146102ce57806379cc6790146102f75780638456cb591461030a578063852a12e3146103125780639010d07c1461032557806391d148541461034557806394dbb50e1461035857806395d89b411461036b578063a0712d6814610373578063a217fddf14610386578063a457c2d71461038e578063a9059cbb146103a1578063bd6d894d146103b4578063ca15c873146103bc578063d5391393146103cf578063d547741f146103e4578063db006a75146103f7578063dd62ed3e1461040a578063e63ab1e91461041d575b600080fd5b6101b96101b436600461198e565b610432565b60405190151581526020015b60405180910390f35b6101d661045d565b6040516101c591906119dc565b6101b96101f1366004611a2b565b6104ef565b60cb545b6040519081526020016101c5565b6101c4546101fa565b6101b961021f366004611a55565b610507565b6101fa610232366004611a91565b61052b565b61024a610245366004611aaa565b610540565b005b604051600881526020016101c5565b61024a610269366004611aaa565b610561565b6101b961027c366004611a2b565b6105e4565b61024a610606565b61024a610297366004611a2b565b610684565b61024a6102aa366004611a91565b6106ff565b61024a6102bd366004611b78565b61070c565b61012d5460ff166101b9565b6101fa6102dc366004611bdb565b6001600160a01b0316600090815260c9602052604090205490565b61024a610305366004611a2b565b610827565b61024a61083c565b6101fa610320366004611a91565b6108b6565b610338610333366004611bf6565b610972565b6040516101c59190611c18565b6101b9610353366004611aaa565b610991565b61024a610366366004611a91565b6109bc565b6101d66109f7565b6101fa610381366004611a91565b610a06565b6101fa600081565b6101b961039c366004611a2b565b610ab3565b6101b96103af366004611a2b565b610b2e565b6101fa610b3c565b6101fa6103ca366004611a91565b610b75565b6101fa600080516020611f9383398151915281565b61024a6103f2366004611aaa565b610b8c565b6101fa610405366004611a91565b610ba8565b6101fa610418366004611c2c565b610c10565b6101fa600080516020611f7383398151915281565b60006001600160e01b03198216635a05180f60e01b1480610457575061045782610cf1565b92915050565b606060cc805461046c90611c56565b80601f016020809104026020016040519081016040528092919081815260200182805461049890611c56565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050905090565b6000336104fd818585610d26565b5060019392505050565b600033610515858285610e4a565b610520858585610ec4565b506001949350505050565b60009081526065602052604090206001015490565b6105498261052b565b61055281611068565b61055c8383611072565b505050565b6001600160a01b03811633146105d65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105e08282611094565b5050565b6000336104fd8185856105f78383610c10565b6106019190611ca6565b610d26565b61061e600080516020611f7383398151915233610991565b61067a5760405162461bcd60e51b81526020600482015260396024820152600080516020611f5383398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b60648201526084016105cd565b6106826110b6565b565b61069c600080516020611f9383398151915233610991565b6106f55760405162461bcd60e51b81526020600482015260366024820152600080516020611f538339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105cd565b6105e08282611103565b61070933826111be565b50565b600054610100900460ff161580801561072c5750600054600160ff909116105b8061074d575061073b30610c47565b15801561074d575060005460ff166001145b6107b05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105cd565b6000805460ff1916600117905580156107d3576000805461ff0019166101001790555b6107dd83836112ec565b801561055c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b610832823383610e4a565b6105e082826111be565b610854600080516020611f7383398151915233610991565b6108ae5760405162461bcd60e51b81526020600482015260376024820152600080516020611f5383398151915260448201527676652070617573657220726f6c6520746f20706175736560481b60648201526084016105cd565b61068261132f565b6000806108e6678ac7230489e800006108e06108d7866402540be400611cb9565b6101c45461136d565b90610c3b565b90506108f233826111be565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906109259033908790600401611cd8565b6020604051808303816000875af1158015610944573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109689190611cf1565b5060009392505050565b600082815260976020526040812061098a908361138f565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6109d36b204fce5e3e250261100000006064610c3b565b6109dd9082611cb9565b6101c460008282546109ef9190611ca6565b909155505050565b606060cd805461046c90611c56565b6101c3546040516323b872dd60e01b8152336004820152306024820152604481018390526000916001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610a5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a839190611cf1565b50610aab33610aa6678ac7230489e800006108e06108d7876402540be400611cb9565b611103565b506000919050565b60003381610ac18286610c10565b905083811015610b215760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105cd565b6105208286868403610d26565b6000336104fd818585610ec4565b6000610b556b204fce5e3e250261100000006064610c3b565b6101c46000828254610b679190611ca6565b90915550506101c454919050565b60008181526097602052604081206104579061139b565b610b958261052b565b610b9e81611068565b61055c8383611094565b600080610bd1610bbd846402540be400611cb9565b610bcc600a6108e06101c45490565b6113a5565b9050610bdd33846111be565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906109259033908590600401611cd8565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b600061098a8284611d13565b6001600160a01b03163b151590565b610c608282610991565b6105e05760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610c983390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061098a836001600160a01b0384166113bd565b60006001600160e01b03198216637965db0b60e01b148061045757506301ffc9a760e01b6001600160e01b0319831614610457565b6001600160a01b038316610d885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105cd565b6001600160a01b038216610de95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105cd565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610e568484610c10565b90506000198114610ebe5781811015610eb15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105cd565b610ebe8484848403610d26565b50505050565b6001600160a01b038316610f285760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105cd565b6001600160a01b038216610f8a5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105cd565b610f9583838361140c565b6001600160a01b038316600090815260c960205260409020548181101561100d5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105cd565b6001600160a01b03808516600081815260c960205260408082208686039055928616808252908390208054860190559151600080516020611fb38339815191529061105b9086815260200190565b60405180910390a3610ebe565b6107098133611417565b61107c8282610c56565b600082815260976020526040902061055c9082610cdc565b61109e8282611470565b600082815260976020526040902061055c90826114d7565b6110be6114ec565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516110f99190611c18565b60405180910390a1565b6001600160a01b0382166111595760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105cd565b6111656000838361140c565b8060cb60008282546111779190611ca6565b90915550506001600160a01b038216600081815260c96020908152604080832080548601905551848152600080516020611fb3833981519152910160405180910390a35050565b6001600160a01b03821661121e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105cd565b61122a8260008361140c565b6001600160a01b038216600090815260c960205260409020548181101561129e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105cd565b6001600160a01b038316600081815260c960209081526040808320868603905560cb8054879003905551858152919291600080516020611fb3833981519152910160405180910390a3505050565b600054610100900460ff166113135760405162461bcd60e51b81526004016105cd90611d35565b61131d8282611536565b611325611576565b6105e082826115aa565b61133761160c565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110ec3390565b60008161138584676765c793fa10079d601b1b611cb9565b61098a9190611d13565b600061098a8383611653565b6000610457825490565b6000676765c793fa10079d601b1b6113858385611cb9565b600081815260018301602052604081205461140457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610457565b506000610457565b61055c83838361167d565b6114218282610991565b6105e05761142e816116e4565b6114398360206116f6565b60405160200161144a929190611d80565b60408051601f198184030181529082905262461bcd60e51b82526105cd916004016119dc565b61147a8282610991565b156105e05760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061098a836001600160a01b038416611891565b61012d5460ff166106825760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105cd565b600054610100900460ff1661155d5760405162461bcd60e51b81526004016105cd90611d35565b60cc6115698382611e3d565b5060cd61055c8282611e3d565b600054610100900460ff1661159d5760405162461bcd60e51b81526004016105cd90611d35565b61012d805460ff19169055565b600054610100900460ff166115d15760405162461bcd60e51b81526004016105cd90611d35565b6115dc600033611984565b6115f4600080516020611f9383398151915233611984565b6105e0600080516020611f7383398151915233611984565b61012d5460ff16156106825760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105cd565b600082600001828154811061166a5761166a611efc565b9060005260206000200154905092915050565b61012d5460ff161561055c5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105cd565b60606104576001600160a01b03831660145b60606000611705836002611cb9565b611710906002611ca6565b6001600160401b0381111561172757611727611ad6565b6040519080825280601f01601f191660200182016040528015611751576020820181803683370190505b509050600360fc1b8160008151811061176c5761176c611efc565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061179b5761179b611efc565b60200101906001600160f81b031916908160001a90535060006117bf846002611cb9565b6117ca906001611ca6565b90505b6001811115611842576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106117fe576117fe611efc565b1a60f81b82828151811061181457611814611efc565b60200101906001600160f81b031916908160001a90535060049490941c9361183b81611f12565b90506117cd565b50831561098a5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105cd565b6000818152600183016020526040812054801561197a5760006118b5600183611f29565b85549091506000906118c990600190611f29565b905081811461192e5760008660000182815481106118e9576118e9611efc565b906000526020600020015490508087600001848154811061190c5761190c611efc565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061193f5761193f611f3c565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610457565b6000915050610457565b6105e08282611072565b6000602082840312156119a057600080fd5b81356001600160e01b03198116811461098a57600080fd5b60005b838110156119d35781810151838201526020016119bb565b50506000910152565b60208152600082518060208401526119fb8160408501602087016119b8565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611a2657600080fd5b919050565b60008060408385031215611a3e57600080fd5b611a4783611a0f565b946020939093013593505050565b600080600060608486031215611a6a57600080fd5b611a7384611a0f565b9250611a8160208501611a0f565b9150604084013590509250925092565b600060208284031215611aa357600080fd5b5035919050565b60008060408385031215611abd57600080fd5b82359150611acd60208401611a0f565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611afd57600080fd5b81356001600160401b0380821115611b1757611b17611ad6565b604051601f8301601f19908116603f01168101908282118183101715611b3f57611b3f611ad6565b81604052838152866020858801011115611b5857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215611b8b57600080fd5b82356001600160401b0380821115611ba257600080fd5b611bae86838701611aec565b93506020850135915080821115611bc457600080fd5b50611bd185828601611aec565b9150509250929050565b600060208284031215611bed57600080fd5b61098a82611a0f565b60008060408385031215611c0957600080fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b60008060408385031215611c3f57600080fd5b611c4883611a0f565b9150611acd60208401611a0f565b600181811c90821680611c6a57607f821691505b602082108103611c8a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561045757610457611c90565b6000816000190483118215151615611cd357611cd3611c90565b500290565b6001600160a01b03929092168252602082015260400190565b600060208284031215611d0357600080fd5b8151801515811461098a57600080fd5b600082611d3057634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611db28160178501602088016119b8565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611de38160288401602088016119b8565b01602801949350505050565b601f82111561055c57600081815260208120601f850160051c81016020861015611e165750805b601f850160051c820191505b81811015611e3557828155600101611e22565b505050505050565b81516001600160401b03811115611e5657611e56611ad6565b611e6a81611e648454611c56565b84611def565b602080601f831160018114611e9f5760008415611e875750858301515b600019600386901b1c1916600185901b178555611e35565b600085815260208120601f198616915b82811015611ece57888601518255948401946001909101908401611eaf565b5085821015611eec5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600081611f2157611f21611c90565b506000190190565b8181038181111561045757610457611c90565b634e487b7160e01b600052603160045260246000fdfe45524332305072657365744d696e7465725061757365723a206d75737420686165d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212205b61d88a9bc6116464855d0166522f2976947bf6f196e83c0f9014522924653064736f6c63430008100033";
796
+ "0x60806040526200001e6c0c9f2c9cd04674edea400000006063620001d9565b6101c4553480156200002f57600080fd5b50604051620026953803806200269583398101604081905262000052916200048b565b600054610100900460ff1615808015620000735750600054600160ff909116105b806200008f5750303b1580156200008f575060005460ff166001145b620000f85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156200011c576000805461ff0019166101001790555b6200016e6040518060400160405280600c81526020016b10dbdb5c1bdd5b990810905560a21b8152506040518060400160405280600481526020016318d0905560e21b815250620001f060201b60201c565b6101c380546001600160a01b0319166001600160a01b0384161790558015620001d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50506200069b565b6000620001e78284620004bd565b90505b92915050565b600054610100900460ff166200021a5760405162461bcd60e51b8152600401620000ef90620004e0565b62000226828262000240565b620002306200028c565b6200023c8282620002c3565b5050565b600054610100900460ff166200026a5760405162461bcd60e51b8152600401620000ef90620004e0565b60cc620002788382620005cf565b5060cd620002878282620005cf565b505050565b600054610100900460ff16620002b65760405162461bcd60e51b8152600401620000ef90620004e0565b61012d805460ff19169055565b600054610100900460ff16620002ed5760405162461bcd60e51b8152600401620000ef90620004e0565b6200030060003362000358565b62000358565b6200032c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000358565b6200023c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620002fa565b6200023c82826200036a828262000384565b600082815260976020526040902062000287908262000428565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff166200023c5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620003e43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001e7836001600160a01b03841660008181526001830160205260408120546200048257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001ea565b506000620001ea565b6000602082840312156200049e57600080fd5b81516001600160a01b0381168114620004b657600080fd5b9392505050565b600082620004db57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200055657607f821691505b6020821081036200057757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028757600081815260208120601f850160051c81016020861015620005a65750805b601f850160051c820191505b81811015620005c757828155600101620005b2565b505050505050565b81516001600160401b03811115620005eb57620005eb6200052b565b6200060381620005fc845462000541565b846200057d565b602080601f8311600181146200063b5760008415620006225750858301515b600019600386901b1c1916600185901b178555620005c7565b600085815260208120601f198616915b828110156200066c578886015182559484019460019091019084016200064b565b50858210156200068b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611fea80620006ab6000396000f3fe608060405234801561001057600080fd5b50600436106101a15760003560e01c806301ffc9a7146101a657806306fdde03146101ce578063095ea7b3146101e357806318160ddd146101f6578063182df0f51461020857806323b872dd14610211578063248a9ca3146102245780632f2ff15d14610237578063313ce5671461024c57806336568abe1461025b578063395093511461026e5780633f4ba83a1461028157806340c10f191461028957806342966c681461029c5780634cd88b76146102af5780635c975abb146102c257806370a08231146102ce57806379cc6790146102f75780638456cb591461030a578063852a12e3146103125780639010d07c1461032557806391d148541461034557806394dbb50e1461035857806395d89b411461036b578063a0712d6814610373578063a217fddf14610386578063a457c2d71461038e578063a9059cbb146103a1578063bd6d894d146103b4578063ca15c873146103bc578063d5391393146103cf578063d547741f146103e4578063db006a75146103f7578063dd62ed3e1461040a578063e63ab1e91461041d575b600080fd5b6101b96101b4366004611978565b610432565b60405190151581526020015b60405180910390f35b6101d661045d565b6040516101c591906119c6565b6101b96101f1366004611a15565b6104ef565b60cb545b6040519081526020016101c5565b6101c4546101fa565b6101b961021f366004611a3f565b610507565b6101fa610232366004611a7b565b61052b565b61024a610245366004611a94565b610540565b005b604051600881526020016101c5565b61024a610269366004611a94565b610561565b6101b961027c366004611a15565b6105e4565b61024a610606565b61024a610297366004611a15565b610684565b61024a6102aa366004611a7b565b6106ff565b61024a6102bd366004611b62565b61070c565b61012d5460ff166101b9565b6101fa6102dc366004611bc5565b6001600160a01b0316600090815260c9602052604090205490565b61024a610305366004611a15565b610820565b61024a610835565b6101fa610320366004611a7b565b6108af565b610338610333366004611be0565b61096b565b6040516101c59190611c02565b6101b9610353366004611a94565b61098a565b61024a610366366004611a7b565b6109b5565b6101d66109f0565b6101fa610381366004611a7b565b6109ff565b6101fa600081565b6101b961039c366004611a15565b610aac565b6101b96103af366004611a15565b610b27565b6101fa610b35565b6101fa6103ca366004611a7b565b610b6e565b6101fa600080516020611f7583398151915281565b61024a6103f2366004611a94565b610b85565b6101fa610405366004611a7b565b610ba1565b6101fa610418366004611c16565b610c09565b6101fa600080516020611f5583398151915281565b60006001600160e01b03198216635a05180f60e01b1480610457575061045782610c34565b92915050565b606060cc805461046c90611c40565b80601f016020809104026020016040519081016040528092919081815260200182805461049890611c40565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050905090565b6000336104fd818585610c69565b5060019392505050565b600033610515858285610d8d565b610520858585610e07565b506001949350505050565b60009081526065602052604090206001015490565b6105498261052b565b61055281610fab565b61055c8383610fb5565b505050565b6001600160a01b03811633146105d65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105e08282610fd7565b5050565b6000336104fd8185856105f78383610c09565b6106019190611c90565b610c69565b61061e600080516020611f558339815191523361098a565b61067a5760405162461bcd60e51b81526020600482015260396024820152600080516020611f3583398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b60648201526084016105cd565b610682610ff9565b565b61069c600080516020611f758339815191523361098a565b6106f55760405162461bcd60e51b81526020600482015260366024820152600080516020611f358339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105cd565b6105e08282611046565b6107093382611101565b50565b600054610100900460ff161580801561072c5750600054600160ff909116105b806107465750303b158015610746575060005460ff166001145b6107a95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105cd565b6000805460ff1916600117905580156107cc576000805461ff0019166101001790555b6107d6838361122f565b801561055c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61082b823383610d8d565b6105e08282611101565b61084d600080516020611f558339815191523361098a565b6108a75760405162461bcd60e51b81526020600482015260376024820152600080516020611f3583398151915260448201527676652070617573657220726f6c6520746f20706175736560481b60648201526084016105cd565b610682611272565b6000806108df678ac7230489e800006108d96108d0866402540be400611ca3565b6101c4546112b0565b906112d2565b90506108eb3382611101565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061091e9033908790600401611cba565b6020604051808303816000875af115801561093d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109619190611cd3565b5060009392505050565b600082815260976020526040812061098390836112de565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6109cc6b204fce5e3e2502611000000060646112d2565b6109d69082611ca3565b6101c460008282546109e89190611c90565b909155505050565b606060cd805461046c90611c40565b6101c3546040516323b872dd60e01b8152336004820152306024820152604481018390526000916001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610a58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7c9190611cd3565b50610aa433610a9f678ac7230489e800006108d96108d0876402540be400611ca3565b611046565b506000919050565b60003381610aba8286610c09565b905083811015610b1a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105cd565b6105208286868403610c69565b6000336104fd818585610e07565b6000610b4e6b204fce5e3e2502611000000060646112d2565b6101c46000828254610b609190611c90565b90915550506101c454919050565b6000818152609760205260408120610457906112ea565b610b8e8261052b565b610b9781610fab565b61055c8383610fd7565b600080610bca610bb6846402540be400611ca3565b610bc5600a6108d96101c45490565b6112f4565b9050610bd63384611101565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061091e9033908590600401611cba565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b60006001600160e01b03198216637965db0b60e01b148061045757506301ffc9a760e01b6001600160e01b0319831614610457565b6001600160a01b038316610ccb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105cd565b6001600160a01b038216610d2c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105cd565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610d998484610c09565b90506000198114610e015781811015610df45760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105cd565b610e018484848403610c69565b50505050565b6001600160a01b038316610e6b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105cd565b6001600160a01b038216610ecd5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105cd565b610ed883838361130c565b6001600160a01b038316600090815260c9602052604090205481811015610f505760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105cd565b6001600160a01b03808516600081815260c960205260408082208686039055928616808252908390208054860190559151600080516020611f9583398151915290610f9e9086815260200190565b60405180910390a3610e01565b6107098133611317565b610fbf8282611370565b600082815260976020526040902061055c90826113f6565b610fe1828261140b565b600082815260976020526040902061055c9082611472565b611001611487565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405161103c9190611c02565b60405180910390a1565b6001600160a01b03821661109c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105cd565b6110a86000838361130c565b8060cb60008282546110ba9190611c90565b90915550506001600160a01b038216600081815260c96020908152604080832080548601905551848152600080516020611f95833981519152910160405180910390a35050565b6001600160a01b0382166111615760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105cd565b61116d8260008361130c565b6001600160a01b038216600090815260c96020526040902054818110156111e15760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105cd565b6001600160a01b038316600081815260c960209081526040808320868603905560cb8054879003905551858152919291600080516020611f95833981519152910160405180910390a3505050565b600054610100900460ff166112565760405162461bcd60e51b81526004016105cd90611cf5565b61126082826114d1565b611268611511565b6105e08282611545565b61127a6115a7565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861102f3390565b6000816112c884676765c793fa10079d601b1b611ca3565b6109839190611d40565b60006109838284611d40565b600061098383836115ee565b6000610457825490565b6000676765c793fa10079d601b1b6112c88385611ca3565b61055c838383611618565b611321828261098a565b6105e05761132e8161167f565b611339836020611691565b60405160200161134a929190611d62565b60408051601f198184030181529082905262461bcd60e51b82526105cd916004016119c6565b61137a828261098a565b6105e05760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556113b23390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610983836001600160a01b03841661182c565b611415828261098a565b156105e05760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610983836001600160a01b03841661187b565b61012d5460ff166106825760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105cd565b600054610100900460ff166114f85760405162461bcd60e51b81526004016105cd90611cf5565b60cc6115048382611e1f565b5060cd61055c8282611e1f565b600054610100900460ff166115385760405162461bcd60e51b81526004016105cd90611cf5565b61012d805460ff19169055565b600054610100900460ff1661156c5760405162461bcd60e51b81526004016105cd90611cf5565b61157760003361196e565b61158f600080516020611f758339815191523361196e565b6105e0600080516020611f558339815191523361196e565b61012d5460ff16156106825760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105cd565b600082600001828154811061160557611605611ede565b9060005260206000200154905092915050565b61012d5460ff161561055c5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105cd565b60606104576001600160a01b03831660145b606060006116a0836002611ca3565b6116ab906002611c90565b6001600160401b038111156116c2576116c2611ac0565b6040519080825280601f01601f1916602001820160405280156116ec576020820181803683370190505b509050600360fc1b8160008151811061170757611707611ede565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061173657611736611ede565b60200101906001600160f81b031916908160001a905350600061175a846002611ca3565b611765906001611c90565b90505b60018111156117dd576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061179957611799611ede565b1a60f81b8282815181106117af576117af611ede565b60200101906001600160f81b031916908160001a90535060049490941c936117d681611ef4565b9050611768565b5083156109835760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105cd565b600081815260018301602052604081205461187357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610457565b506000610457565b6000818152600183016020526040812054801561196457600061189f600183611f0b565b85549091506000906118b390600190611f0b565b90508181146119185760008660000182815481106118d3576118d3611ede565b90600052602060002001549050808760000184815481106118f6576118f6611ede565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061192957611929611f1e565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610457565b6000915050610457565b6105e08282610fb5565b60006020828403121561198a57600080fd5b81356001600160e01b03198116811461098357600080fd5b60005b838110156119bd5781810151838201526020016119a5565b50506000910152565b60208152600082518060208401526119e58160408501602087016119a2565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611a1057600080fd5b919050565b60008060408385031215611a2857600080fd5b611a31836119f9565b946020939093013593505050565b600080600060608486031215611a5457600080fd5b611a5d846119f9565b9250611a6b602085016119f9565b9150604084013590509250925092565b600060208284031215611a8d57600080fd5b5035919050565b60008060408385031215611aa757600080fd5b82359150611ab7602084016119f9565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611ae757600080fd5b81356001600160401b0380821115611b0157611b01611ac0565b604051601f8301601f19908116603f01168101908282118183101715611b2957611b29611ac0565b81604052838152866020858801011115611b4257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215611b7557600080fd5b82356001600160401b0380821115611b8c57600080fd5b611b9886838701611ad6565b93506020850135915080821115611bae57600080fd5b50611bbb85828601611ad6565b9150509250929050565b600060208284031215611bd757600080fd5b610983826119f9565b60008060408385031215611bf357600080fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b60008060408385031215611c2957600080fd5b611c32836119f9565b9150611ab7602084016119f9565b600181811c90821680611c5457607f821691505b602082108103611c7457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561045757610457611c7a565b808202811582820484141761045757610457611c7a565b6001600160a01b03929092168252602082015260400190565b600060208284031215611ce557600080fd5b8151801515811461098357600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082611d5d57634e487b7160e01b600052601260045260246000fd5b500490565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611d948160178501602088016119a2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611dc58160288401602088016119a2565b01602801949350505050565b601f82111561055c57600081815260208120601f850160051c81016020861015611df85750805b601f850160051c820191505b81811015611e1757828155600101611e04565b505050505050565b81516001600160401b03811115611e3857611e38611ac0565b611e4c81611e468454611c40565b84611dd1565b602080601f831160018114611e815760008415611e695750858301515b600019600386901b1c1916600185901b178555611e17565b600085815260208120601f198616915b82811015611eb057888601518255948401946001909101908401611e91565b5085821015611ece5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600081611f0357611f03611c7a565b506000190190565b8181038181111561045757610457611c7a565b634e487b7160e01b600052603160045260246000fdfe45524332305072657365744d696e7465725061757365723a206d75737420686165d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220730314c43978297cae1ff6fd77e02efecdad0077ec4aae0cccf7555793111d5c64736f6c63430008130033";
797
797
 
798
798
  type CBATMockConstructorParams =
799
799
  | [signer?: Signer]
@@ -783,7 +783,7 @@ const _abi = [
783
783
  ];
784
784
 
785
785
  const _bytecode =
786
- "0x60806040526200002c60636c0c9f2c9cd04674edea40000000620001fb60201b62000c151790919060201c565b6101c4553480156200003d57600080fd5b50604051620026e2380380620026e28339810160408190526200006091620004d4565b600054610100900460ff1615808015620000815750600054600160ff909116105b80620000b157506200009e306200021260201b62000c211760201c565b158015620000b1575060005460ff166001145b6200011a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156200013e576000805461ff0019166101001790555b620001906040518060400160405280600c81526020016b436f6d706f756e642044414960a01b815250604051806040016040528060048152602001636344414960e01b8152506200022160201b60201c565b6101c380546001600160a01b0319166001600160a01b0384161790558015620001f3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050620006e4565b600062000209828462000506565b90505b92915050565b6001600160a01b03163b151590565b600054610100900460ff166200024b5760405162461bcd60e51b8152600401620001119062000529565b62000257828262000271565b62000261620002bd565b6200026d8282620002f4565b5050565b600054610100900460ff166200029b5760405162461bcd60e51b8152600401620001119062000529565b60cc620002a9838262000618565b5060cd620002b8828262000618565b505050565b600054610100900460ff16620002e75760405162461bcd60e51b8152600401620001119062000529565b61012d805460ff19169055565b600054610100900460ff166200031e5760405162461bcd60e51b8152600401620001119062000529565b6200033160003362000389565b62000389565b6200035d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000389565b6200026d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336200032b565b6200026d8282620003a68282620003cd60201b62000c301760201c565b6000828152609760209081526040909120620002b891839062000cb662000471821b17901c565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff166200026d5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200042d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000209836001600160a01b0384166000818152600183016020526040812054620004cb575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200020c565b5060006200020c565b600060208284031215620004e757600080fd5b81516001600160a01b0381168114620004ff57600080fd5b9392505050565b6000826200052457634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200059f57607f821691505b602082108103620005c057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002b857600081815260208120601f850160051c81016020861015620005ef5750805b601f850160051c820191505b818110156200061057828155600101620005fb565b505050505050565b81516001600160401b0381111562000634576200063462000574565b6200064c816200064584546200058a565b84620005c6565b602080601f8311600181146200068457600084156200066b5750858301515b600019600386901b1c1916600185901b17855562000610565b600085815260208120601f198616915b82811015620006b55788860151825594840194600190910190840162000694565b5085821015620006d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611fee80620006f46000396000f3fe608060405234801561001057600080fd5b50600436106101965760003560e01c806301ffc9a71461019b57806306fdde03146101c3578063095ea7b3146101d857806318160ddd146101eb578063182df0f5146101fd57806323b872dd14610205578063248a9ca3146102185780632f2ff15d1461022b578063313ce5671461024057806336568abe1461024f57806339509351146102625780633f4ba83a1461027557806340c10f191461027d57806342966c68146102905780634cd88b76146102a35780635c975abb146102b657806370a08231146102c257806379cc6790146102eb5780638456cb59146102fe578063852a12e3146103065780639010d07c1461031957806391d148541461033957806395d89b411461034c578063a0712d6814610354578063a217fddf14610367578063a457c2d71461036f578063a9059cbb14610382578063bd6d894d14610395578063ca15c8731461039d578063d5391393146103b0578063d547741f146103c5578063db006a75146103d8578063dd62ed3e146103eb578063e63ab1e9146103fe575b600080fd5b6101ae6101a9366004611974565b610413565b60405190151581526020015b60405180910390f35b6101cb61043e565b6040516101ba91906119c2565b6101ae6101e6366004611a11565b6104d0565b60cb545b6040519081526020016101ba565b6101ef6104e8565b6101ae610213366004611a3b565b6104ff565b6101ef610226366004611a77565b610523565b61023e610239366004611a90565b610538565b005b604051601281526020016101ba565b61023e61025d366004611a90565b610559565b6101ae610270366004611a11565b6105dc565b61023e6105fe565b61023e61028b366004611a11565b61067c565b61023e61029e366004611a77565b6106f7565b61023e6102b1366004611b5e565b610704565b61012d5460ff166101ae565b6101ef6102d0366004611bc1565b6001600160a01b0316600090815260c9602052604090205490565b61023e6102f9366004611a11565b61081f565b61023e610834565b6101ef610314366004611a77565b6108ae565b61032c610327366004611bdc565b610981565b6040516101ba9190611bfe565b6101ae610347366004611a90565b6109a0565b6101cb6109cb565b6101ef610362366004611a77565b6109da565b6101ef600081565b6101ae61037d366004611a11565b610a8f565b6101ae610390366004611a11565b610b0a565b6101ef610b18565b6101ef6103ab366004611a77565b610b51565b6101ef600080516020611f7983398151915281565b61023e6103d3366004611a90565b610b68565b6101ef6103e6366004611a77565b610b84565b6101ef6103f9366004611c12565b610bea565b6101ef600080516020611f5983398151915281565b60006001600160e01b03198216635a05180f60e01b1480610438575061043882610ccb565b92915050565b606060cc805461044d90611c3c565b80601f016020809104026020016040519081016040528092919081815260200182805461047990611c3c565b80156104c65780601f1061049b576101008083540402835291602001916104c6565b820191906000526020600020905b8154815290600101906020018083116104a957829003601f168201915b5050505050905090565b6000336104de818585610d00565b5060019392505050565b6101c4546000906104fa906002610c15565b905090565b60003361050d858285610e24565b610518858585610e9e565b506001949350505050565b60009081526065602052604090206001015490565b61054182610523565b61054a81611042565b610554838361104c565b505050565b6001600160a01b03811633146105ce5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105d8828261106e565b5050565b6000336104de8185856105ef8383610bea565b6105f99190611c8c565b610d00565b610616600080516020611f59833981519152336109a0565b6106725760405162461bcd60e51b81526020600482015260396024820152600080516020611f3983398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b60648201526084016105c5565b61067a611090565b565b610694600080516020611f79833981519152336109a0565b6106ed5760405162461bcd60e51b81526020600482015260366024820152600080516020611f398339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105c5565b6105d882826110dd565b6107013382611198565b50565b600054610100900460ff16158080156107245750600054600160ff909116105b80610745575061073330610c21565b158015610745575060005460ff166001145b6107a85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105c5565b6000805460ff1916600117905580156107cb576000805461ff0019166101001790555b6107d583836112c6565b8015610554576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61082a823383610e24565b6105d88282611198565b61084c600080516020611f59833981519152336109a0565b6108a65760405162461bcd60e51b81526020600482015260376024820152600080516020611f3983398151915260448201527676652070617573657220726f6c6520746f20706175736560481b60648201526084016105c5565b61067a611309565b6000806108ed678ac7230489e800006108e76108cf866402540be400611c9f565b6108e260026108dc6104e8565b90611347565b611353565b90610c15565b90506108f93382611198565b6101c3546001600160a01b031663a9059cbb33610917866002610c15565b6040518363ffffffff1660e01b8152600401610934929190611cbe565b6020604051808303816000875af1158015610953573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109779190611cd7565b5060009392505050565b60008281526097602052604081206109999083611375565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060cd805461044d90611c3c565b6101c3546040516323b872dd60e01b8152336004820152306024820152604481018390526000916001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610a33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a579190611cd7565b50610a8733610a82678ac7230489e800006108e7610a7a876402540be400611c9f565b6108e26104e8565b6110dd565b506000919050565b60003381610a9d8286610bea565b905083811015610afd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105c5565b6105188286868403610d00565b6000336104de818585610e9e565b6000610b316b204fce5e3e250261100000006064610c15565b6101c46000828254610b439190611c8c565b90915550506101c454919050565b600081815260976020526040812061043890611381565b610b7182610523565b610b7a81611042565b610554838361106e565b600080610bab610b99846402540be400611c9f565b610ba6600a6108e76104e8565b61138b565b9050610bb73384611198565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906109349033908590600401611cbe565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b60006109998284611cf9565b6001600160a01b03163b151590565b610c3a82826109a0565b6105d85760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610c723390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610999836001600160a01b0384166113a3565b60006001600160e01b03198216637965db0b60e01b148061043857506301ffc9a760e01b6001600160e01b0319831614610438565b6001600160a01b038316610d625760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c5565b6001600160a01b038216610dc35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c5565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610e308484610bea565b90506000198114610e985781811015610e8b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105c5565b610e988484848403610d00565b50505050565b6001600160a01b038316610f025760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c5565b6001600160a01b038216610f645760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c5565b610f6f8383836113f2565b6001600160a01b038316600090815260c9602052604090205481811015610fe75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105c5565b6001600160a01b03808516600081815260c960205260408082208686039055928616808252908390208054860190559151600080516020611f99833981519152906110359086815260200190565b60405180910390a3610e98565b61070181336113fd565b6110568282610c30565b60008281526097602052604090206105549082610cb6565b6110788282611456565b600082815260976020526040902061055490826114bd565b6110986114d2565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516110d39190611bfe565b60405180910390a1565b6001600160a01b0382166111335760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105c5565b61113f600083836113f2565b8060cb60008282546111519190611c8c565b90915550506001600160a01b038216600081815260c96020908152604080832080548601905551848152600080516020611f99833981519152910160405180910390a35050565b6001600160a01b0382166111f85760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105c5565b611204826000836113f2565b6001600160a01b038216600090815260c96020526040902054818110156112785760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105c5565b6001600160a01b038316600081815260c960209081526040808320868603905560cb8054879003905551858152919291600080516020611f99833981519152910160405180910390a3505050565b600054610100900460ff166112ed5760405162461bcd60e51b81526004016105c590611d1b565b6112f7828261151c565b6112ff61155c565b6105d88282611590565b6113116115f2565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110c63390565b60006109998284611c9f565b60008161136b84676765c793fa10079d601b1b611c9f565b6109999190611cf9565b60006109998383611639565b6000610438825490565b6000676765c793fa10079d601b1b61136b8385611c9f565b60008181526001830160205260408120546113ea57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610438565b506000610438565b610554838383611663565b61140782826109a0565b6105d857611414816116ca565b61141f8360206116dc565b604051602001611430929190611d66565b60408051601f198184030181529082905262461bcd60e51b82526105c5916004016119c2565b61146082826109a0565b156105d85760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610999836001600160a01b038416611877565b61012d5460ff1661067a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105c5565b600054610100900460ff166115435760405162461bcd60e51b81526004016105c590611d1b565b60cc61154f8382611e23565b5060cd6105548282611e23565b600054610100900460ff166115835760405162461bcd60e51b81526004016105c590611d1b565b61012d805460ff19169055565b600054610100900460ff166115b75760405162461bcd60e51b81526004016105c590611d1b565b6115c260003361196a565b6115da600080516020611f798339815191523361196a565b6105d8600080516020611f598339815191523361196a565b61012d5460ff161561067a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105c5565b600082600001828154811061165057611650611ee2565b9060005260206000200154905092915050565b61012d5460ff16156105545760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105c5565b60606104386001600160a01b03831660145b606060006116eb836002611c9f565b6116f6906002611c8c565b6001600160401b0381111561170d5761170d611abc565b6040519080825280601f01601f191660200182016040528015611737576020820181803683370190505b509050600360fc1b8160008151811061175257611752611ee2565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061178157611781611ee2565b60200101906001600160f81b031916908160001a90535060006117a5846002611c9f565b6117b0906001611c8c565b90505b6001811115611828576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106117e4576117e4611ee2565b1a60f81b8282815181106117fa576117fa611ee2565b60200101906001600160f81b031916908160001a90535060049490941c9361182181611ef8565b90506117b3565b5083156109995760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105c5565b6000818152600183016020526040812054801561196057600061189b600183611f0f565b85549091506000906118af90600190611f0f565b90508181146119145760008660000182815481106118cf576118cf611ee2565b90600052602060002001549050808760000184815481106118f2576118f2611ee2565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061192557611925611f22565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610438565b6000915050610438565b6105d8828261104c565b60006020828403121561198657600080fd5b81356001600160e01b03198116811461099957600080fd5b60005b838110156119b95781810151838201526020016119a1565b50506000910152565b60208152600082518060208401526119e181604085016020870161199e565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611a0c57600080fd5b919050565b60008060408385031215611a2457600080fd5b611a2d836119f5565b946020939093013593505050565b600080600060608486031215611a5057600080fd5b611a59846119f5565b9250611a67602085016119f5565b9150604084013590509250925092565b600060208284031215611a8957600080fd5b5035919050565b60008060408385031215611aa357600080fd5b82359150611ab3602084016119f5565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611ae357600080fd5b81356001600160401b0380821115611afd57611afd611abc565b604051601f8301601f19908116603f01168101908282118183101715611b2557611b25611abc565b81604052838152866020858801011115611b3e57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215611b7157600080fd5b82356001600160401b0380821115611b8857600080fd5b611b9486838701611ad2565b93506020850135915080821115611baa57600080fd5b50611bb785828601611ad2565b9150509250929050565b600060208284031215611bd357600080fd5b610999826119f5565b60008060408385031215611bef57600080fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b60008060408385031215611c2557600080fd5b611c2e836119f5565b9150611ab3602084016119f5565b600181811c90821680611c5057607f821691505b602082108103611c7057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043857610438611c76565b6000816000190483118215151615611cb957611cb9611c76565b500290565b6001600160a01b03929092168252602082015260400190565b600060208284031215611ce957600080fd5b8151801515811461099957600080fd5b600082611d1657634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611d9881601785016020880161199e565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611dc981602884016020880161199e565b01602801949350505050565b601f82111561055457600081815260208120601f850160051c81016020861015611dfc5750805b601f850160051c820191505b81811015611e1b57828155600101611e08565b505050505050565b81516001600160401b03811115611e3c57611e3c611abc565b611e5081611e4a8454611c3c565b84611dd5565b602080601f831160018114611e855760008415611e6d5750858301515b600019600386901b1c1916600185901b178555611e1b565b600085815260208120601f198616915b82811015611eb457888601518255948401946001909101908401611e95565b5085821015611ed25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600081611f0757611f07611c76565b506000190190565b8181038181111561043857610438611c76565b634e487b7160e01b600052603160045260246000fdfe45524332305072657365744d696e7465725061757365723a206d75737420686165d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122059e3432f3643371423832311a1b0629fd471b9395cf7267597b9ebeb83f11b1764736f6c63430008100033";
786
+ "0x60806040526200001e6c0c9f2c9cd04674edea400000006063620001d9565b6101c4553480156200002f57600080fd5b506040516200267b3803806200267b83398101604081905262000052916200048b565b600054610100900460ff1615808015620000735750600054600160ff909116105b806200008f5750303b1580156200008f575060005460ff166001145b620000f85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156200011c576000805461ff0019166101001790555b6200016e6040518060400160405280600c81526020016b436f6d706f756e642044414960a01b815250604051806040016040528060048152602001636344414960e01b815250620001f060201b60201c565b6101c380546001600160a01b0319166001600160a01b0384161790558015620001d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50506200069b565b6000620001e78284620004bd565b90505b92915050565b600054610100900460ff166200021a5760405162461bcd60e51b8152600401620000ef90620004e0565b62000226828262000240565b620002306200028c565b6200023c8282620002c3565b5050565b600054610100900460ff166200026a5760405162461bcd60e51b8152600401620000ef90620004e0565b60cc620002788382620005cf565b5060cd620002878282620005cf565b505050565b600054610100900460ff16620002b65760405162461bcd60e51b8152600401620000ef90620004e0565b61012d805460ff19169055565b600054610100900460ff16620002ed5760405162461bcd60e51b8152600401620000ef90620004e0565b6200030060003362000358565b62000358565b6200032c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000358565b6200023c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620002fa565b6200023c82826200036a828262000384565b600082815260976020526040902062000287908262000428565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff166200023c5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620003e43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001e7836001600160a01b03841660008181526001830160205260408120546200048257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001ea565b506000620001ea565b6000602082840312156200049e57600080fd5b81516001600160a01b0381168114620004b657600080fd5b9392505050565b600082620004db57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200055657607f821691505b6020821081036200057757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028757600081815260208120601f850160051c81016020861015620005a65750805b601f850160051c820191505b81811015620005c757828155600101620005b2565b505050505050565b81516001600160401b03811115620005eb57620005eb6200052b565b6200060381620005fc845462000541565b846200057d565b602080601f8311600181146200063b5760008415620006225750858301515b600019600386901b1c1916600185901b178555620005c7565b600085815260208120601f198616915b828110156200066c578886015182559484019460019091019084016200064b565b50858210156200068b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611fd080620006ab6000396000f3fe608060405234801561001057600080fd5b50600436106101965760003560e01c806301ffc9a71461019b57806306fdde03146101c3578063095ea7b3146101d857806318160ddd146101eb578063182df0f5146101fd57806323b872dd14610205578063248a9ca3146102185780632f2ff15d1461022b578063313ce5671461024057806336568abe1461024f57806339509351146102625780633f4ba83a1461027557806340c10f191461027d57806342966c68146102905780634cd88b76146102a35780635c975abb146102b657806370a08231146102c257806379cc6790146102eb5780638456cb59146102fe578063852a12e3146103065780639010d07c1461031957806391d148541461033957806395d89b411461034c578063a0712d6814610354578063a217fddf14610367578063a457c2d71461036f578063a9059cbb14610382578063bd6d894d14610395578063ca15c8731461039d578063d5391393146103b0578063d547741f146103c5578063db006a75146103d8578063dd62ed3e146103eb578063e63ab1e9146103fe575b600080fd5b6101ae6101a936600461195e565b610413565b60405190151581526020015b60405180910390f35b6101cb61043e565b6040516101ba91906119ac565b6101ae6101e63660046119fb565b6104d0565b60cb545b6040519081526020016101ba565b6101ef6104e8565b6101ae610213366004611a25565b6104ff565b6101ef610226366004611a61565b610523565b61023e610239366004611a7a565b610538565b005b604051601281526020016101ba565b61023e61025d366004611a7a565b610559565b6101ae6102703660046119fb565b6105dc565b61023e6105fe565b61023e61028b3660046119fb565b61067c565b61023e61029e366004611a61565b6106f7565b61023e6102b1366004611b48565b610704565b61012d5460ff166101ae565b6101ef6102d0366004611bab565b6001600160a01b0316600090815260c9602052604090205490565b61023e6102f93660046119fb565b610818565b61023e61082d565b6101ef610314366004611a61565b6108a7565b61032c610327366004611bc6565b61097a565b6040516101ba9190611be8565b6101ae610347366004611a7a565b610999565b6101cb6109c4565b6101ef610362366004611a61565b6109d3565b6101ef600081565b6101ae61037d3660046119fb565b610a88565b6101ae6103903660046119fb565b610b03565b6101ef610b11565b6101ef6103ab366004611a61565b610b4a565b6101ef600080516020611f5b83398151915281565b61023e6103d3366004611a7a565b610b61565b6101ef6103e6366004611a61565b610b7d565b6101ef6103f9366004611bfc565b610be3565b6101ef600080516020611f3b83398151915281565b60006001600160e01b03198216635a05180f60e01b1480610438575061043882610c0e565b92915050565b606060cc805461044d90611c26565b80601f016020809104026020016040519081016040528092919081815260200182805461047990611c26565b80156104c65780601f1061049b576101008083540402835291602001916104c6565b820191906000526020600020905b8154815290600101906020018083116104a957829003601f168201915b5050505050905090565b6000336104de818585610c43565b5060019392505050565b6101c4546000906104fa906002610d67565b905090565b60003361050d858285610d73565b610518858585610ded565b506001949350505050565b60009081526065602052604090206001015490565b61054182610523565b61054a81610f91565b6105548383610f9b565b505050565b6001600160a01b03811633146105ce5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105d88282610fbd565b5050565b6000336104de8185856105ef8383610be3565b6105f99190611c76565b610c43565b610616600080516020611f3b83398151915233610999565b6106725760405162461bcd60e51b81526020600482015260396024820152600080516020611f1b83398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b60648201526084016105c5565b61067a610fdf565b565b610694600080516020611f5b83398151915233610999565b6106ed5760405162461bcd60e51b81526020600482015260366024820152600080516020611f1b8339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105c5565b6105d8828261102c565b61070133826110e7565b50565b600054610100900460ff16158080156107245750600054600160ff909116105b8061073e5750303b15801561073e575060005460ff166001145b6107a15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105c5565b6000805460ff1916600117905580156107c4576000805461ff0019166101001790555b6107ce8383611215565b8015610554576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b610823823383610d73565b6105d882826110e7565b610845600080516020611f3b83398151915233610999565b61089f5760405162461bcd60e51b81526020600482015260376024820152600080516020611f1b83398151915260448201527676652070617573657220726f6c6520746f20706175736560481b60648201526084016105c5565b61067a611258565b6000806108e6678ac7230489e800006108e06108c8866402540be400611c89565b6108db60026108d56104e8565b90611296565b6112a2565b90610d67565b90506108f233826110e7565b6101c3546001600160a01b031663a9059cbb33610910866002610d67565b6040518363ffffffff1660e01b815260040161092d929190611ca0565b6020604051808303816000875af115801561094c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109709190611cb9565b5060009392505050565b600082815260976020526040812061099290836112c4565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060cd805461044d90611c26565b6101c3546040516323b872dd60e01b8152336004820152306024820152604481018390526000916001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610a2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a509190611cb9565b50610a8033610a7b678ac7230489e800006108e0610a73876402540be400611c89565b6108db6104e8565b61102c565b506000919050565b60003381610a968286610be3565b905083811015610af65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105c5565b6105188286868403610c43565b6000336104de818585610ded565b6000610b2a6b204fce5e3e250261100000006064610d67565b6101c46000828254610b3c9190611c76565b90915550506101c454919050565b6000818152609760205260408120610438906112d0565b610b6a82610523565b610b7381610f91565b6105548383610fbd565b600080610ba4610b92846402540be400611c89565b610b9f600a6108e06104e8565b6112da565b9050610bb033846110e7565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061092d9033908590600401611ca0565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b60006001600160e01b03198216637965db0b60e01b148061043857506301ffc9a760e01b6001600160e01b0319831614610438565b6001600160a01b038316610ca55760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105c5565b6001600160a01b038216610d065760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105c5565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006109928284611cdb565b6000610d7f8484610be3565b90506000198114610de75781811015610dda5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105c5565b610de78484848403610c43565b50505050565b6001600160a01b038316610e515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105c5565b6001600160a01b038216610eb35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105c5565b610ebe8383836112f2565b6001600160a01b038316600090815260c9602052604090205481811015610f365760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105c5565b6001600160a01b03808516600081815260c960205260408082208686039055928616808252908390208054860190559151600080516020611f7b83398151915290610f849086815260200190565b60405180910390a3610de7565b61070181336112fd565b610fa58282611356565b600082815260976020526040902061055490826113dc565b610fc782826113f1565b60008281526097602052604090206105549082611458565b610fe761146d565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516110229190611be8565b60405180910390a1565b6001600160a01b0382166110825760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105c5565b61108e600083836112f2565b8060cb60008282546110a09190611c76565b90915550506001600160a01b038216600081815260c96020908152604080832080548601905551848152600080516020611f7b833981519152910160405180910390a35050565b6001600160a01b0382166111475760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105c5565b611153826000836112f2565b6001600160a01b038216600090815260c96020526040902054818110156111c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105c5565b6001600160a01b038316600081815260c960209081526040808320868603905560cb8054879003905551858152919291600080516020611f7b833981519152910160405180910390a3505050565b600054610100900460ff1661123c5760405162461bcd60e51b81526004016105c590611cfd565b61124682826114b7565b61124e6114f7565b6105d8828261152b565b61126061158d565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110153390565b60006109928284611c89565b6000816112ba84676765c793fa10079d601b1b611c89565b6109929190611cdb565b600061099283836115d4565b6000610438825490565b6000676765c793fa10079d601b1b6112ba8385611c89565b6105548383836115fe565b6113078282610999565b6105d85761131481611665565b61131f836020611677565b604051602001611330929190611d48565b60408051601f198184030181529082905262461bcd60e51b82526105c5916004016119ac565b6113608282610999565b6105d85760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556113983390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610992836001600160a01b038416611812565b6113fb8282610999565b156105d85760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610992836001600160a01b038416611861565b61012d5460ff1661067a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105c5565b600054610100900460ff166114de5760405162461bcd60e51b81526004016105c590611cfd565b60cc6114ea8382611e05565b5060cd6105548282611e05565b600054610100900460ff1661151e5760405162461bcd60e51b81526004016105c590611cfd565b61012d805460ff19169055565b600054610100900460ff166115525760405162461bcd60e51b81526004016105c590611cfd565b61155d600033611954565b611575600080516020611f5b83398151915233611954565b6105d8600080516020611f3b83398151915233611954565b61012d5460ff161561067a5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105c5565b60008260000182815481106115eb576115eb611ec4565b9060005260206000200154905092915050565b61012d5460ff16156105545760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105c5565b60606104386001600160a01b03831660145b60606000611686836002611c89565b611691906002611c76565b6001600160401b038111156116a8576116a8611aa6565b6040519080825280601f01601f1916602001820160405280156116d2576020820181803683370190505b509050600360fc1b816000815181106116ed576116ed611ec4565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061171c5761171c611ec4565b60200101906001600160f81b031916908160001a9053506000611740846002611c89565b61174b906001611c76565b90505b60018111156117c3576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061177f5761177f611ec4565b1a60f81b82828151811061179557611795611ec4565b60200101906001600160f81b031916908160001a90535060049490941c936117bc81611eda565b905061174e565b5083156109925760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105c5565b600081815260018301602052604081205461185957508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610438565b506000610438565b6000818152600183016020526040812054801561194a576000611885600183611ef1565b855490915060009061189990600190611ef1565b90508181146118fe5760008660000182815481106118b9576118b9611ec4565b90600052602060002001549050808760000184815481106118dc576118dc611ec4565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061190f5761190f611f04565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610438565b6000915050610438565b6105d88282610f9b565b60006020828403121561197057600080fd5b81356001600160e01b03198116811461099257600080fd5b60005b838110156119a357818101518382015260200161198b565b50506000910152565b60208152600082518060208401526119cb816040850160208701611988565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146119f657600080fd5b919050565b60008060408385031215611a0e57600080fd5b611a17836119df565b946020939093013593505050565b600080600060608486031215611a3a57600080fd5b611a43846119df565b9250611a51602085016119df565b9150604084013590509250925092565b600060208284031215611a7357600080fd5b5035919050565b60008060408385031215611a8d57600080fd5b82359150611a9d602084016119df565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611acd57600080fd5b81356001600160401b0380821115611ae757611ae7611aa6565b604051601f8301601f19908116603f01168101908282118183101715611b0f57611b0f611aa6565b81604052838152866020858801011115611b2857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215611b5b57600080fd5b82356001600160401b0380821115611b7257600080fd5b611b7e86838701611abc565b93506020850135915080821115611b9457600080fd5b50611ba185828601611abc565b9150509250929050565b600060208284031215611bbd57600080fd5b610992826119df565b60008060408385031215611bd957600080fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b60008060408385031215611c0f57600080fd5b611c18836119df565b9150611a9d602084016119df565b600181811c90821680611c3a57607f821691505b602082108103611c5a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043857610438611c60565b808202811582820484141761043857610438611c60565b6001600160a01b03929092168252602082015260400190565b600060208284031215611ccb57600080fd5b8151801515811461099257600080fd5b600082611cf857634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611d7a816017850160208801611988565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611dab816028840160208801611988565b01602801949350505050565b601f82111561055457600081815260208120601f850160051c81016020861015611dde5750805b601f850160051c820191505b81811015611dfd57828155600101611dea565b505050505050565b81516001600160401b03811115611e1e57611e1e611aa6565b611e3281611e2c8454611c26565b84611db7565b602080601f831160018114611e675760008415611e4f5750858301515b600019600386901b1c1916600185901b178555611dfd565b600085815260208120601f198616915b82811015611e9657888601518255948401946001909101908401611e77565b5085821015611eb45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600081611ee957611ee9611c60565b506000190190565b8181038181111561043857610438611c60565b634e487b7160e01b600052603160045260246000fdfe45524332305072657365744d696e7465725061757365723a206d75737420686165d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212209b0ea0f32e3907cbc2e1f5503b073d5c8ba5631f94678958a3df2765f71d4e3064736f6c63430008130033";
787
787
 
788
788
  type CDAILowWorthMockConstructorParams =
789
789
  | [signer?: Signer]
@@ -806,7 +806,7 @@ const _abi = [
806
806
  ];
807
807
 
808
808
  const _bytecode =
809
- "0x60806040526aa56fa5b99019a5c80000006101c455601c6101c5553480156200002757600080fd5b50604051620027cb380380620027cb8339810160408190526200004a91620004b6565b600054610100900460ff16158080156200006b5750600054600160ff909116105b806200009b57506200008830620001e560201b62000c951760201c565b1580156200009b575060005460ff166001145b620001045760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000128576000805461ff0019166101001790555b6200017a6040518060400160405280600c81526020016b436f6d706f756e642044414960a01b815250604051806040016040528060048152602001636344414960e01b815250620001f460201b60201c565b6101c380546001600160a01b0319166001600160a01b0384161790558015620001dd576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050620006a3565b6001600160a01b03163b151590565b600054610100900460ff166200021e5760405162461bcd60e51b8152600401620000fb90620004e8565b6200022a828262000244565b6200023462000290565b620002408282620002c7565b5050565b600054610100900460ff166200026e5760405162461bcd60e51b8152600401620000fb90620004e8565b60cc6200027c8382620005d7565b5060cd6200028b8282620005d7565b505050565b600054610100900460ff16620002ba5760405162461bcd60e51b8152600401620000fb90620004e8565b61012d805460ff19169055565b600054610100900460ff16620002f15760405162461bcd60e51b8152600401620000fb90620004e8565b620003046000336200035c565b6200035c565b620003307f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6336200035c565b620002407f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620002fe565b620002408282620003798282620003a060201b62000ca41760201c565b60008281526097602090815260409091206200028b91839062000d2a62000444821b17901c565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16620002405760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620004003390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006200045b836001600160a01b03841662000464565b90505b92915050565b6000818152600183016020526040812054620004ad575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200045e565b5060006200045e565b600060208284031215620004c957600080fd5b81516001600160a01b0381168114620004e157600080fd5b9392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200055e57607f821691505b6020821081036200057f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028b57600081815260208120601f850160051c81016020861015620005ae5750805b601f850160051c820191505b81811015620005cf57828155600101620005ba565b505050505050565b81516001600160401b03811115620005f357620005f362000533565b6200060b8162000604845462000549565b8462000585565b602080601f8311600181146200064357600084156200062a5750858301515b600019600386901b1c1916600185901b178555620005cf565b600085815260208120601f198616915b82811015620006745788860151825594840194600190910190840162000653565b5085821015620006935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61211880620006b36000396000f3fe608060405234801561001057600080fd5b50600436106101ac5760003560e01c806301ffc9a7146101b157806306fdde03146101d9578063095ea7b3146101ee57806318160ddd14610201578063182df0f51461021357806323b872dd1461021c578063248a9ca31461022f5780632f2ff15d14610242578063313ce5671461025757806336568abe1461026657806339509351146102795780633f4ba83a1461028c57806340c10f191461029457806342966c68146102a75780634cd88b76146102ba5780635c975abb146102cd5780636f307dc3146102d957806370a08231146102f457806379cc67901461031d5780638456cb5914610330578063852a12e3146103385780639010d07c1461034b57806391d148541461035e57806394dbb50e1461037157806395d89b4114610384578063a0712d681461038c578063a217fddf1461039f578063a457c2d7146103a7578063a9059cbb146103ba578063bd6d894d146103cd578063ca15c873146103d5578063d5391393146103e8578063d547741f146103fd578063db006a7514610410578063dd62ed3e14610423578063e63ab1e914610436575b600080fd5b6101c46101bf3660046119ae565b61044b565b60405190151581526020015b60405180910390f35b6101e1610476565b6040516101d091906119fc565b6101c46101fc366004611a4b565b610508565b60cb545b6040519081526020016101d0565b6101c454610205565b6101c461022a366004611a75565b610520565b61020561023d366004611ab1565b610544565b610255610250366004611aca565b610559565b005b604051600881526020016101d0565b610255610274366004611aca565b61057a565b6101c4610287366004611a4b565b6105fd565b61025561061f565b6102556102a2366004611a4b565b61069d565b6102556102b5366004611ab1565b610718565b6102556102c8366004611b98565b610725565b61012d5460ff166101c4565b6101c3546001600160a01b03165b6040516101d09190611bfb565b610205610302366004611c0f565b6001600160a01b0316600090815260c9602052604090205490565b61025561032b366004611a4b565b610840565b610255610855565b610205610346366004611ab1565b6108cf565b6102e7610359366004611c2a565b61099a565b6101c461036c366004611aca565b6109b9565b61025561037f366004611ab1565b6109e4565b6101e1610a1f565b61020561039a366004611ab1565b610a2e565b610205600081565b6101c46103b5366004611a4b565b610af9565b6101c46103c8366004611a4b565b610b74565b610205610b82565b6102056103e3366004611ab1565b610bbb565b6102056000805160206120a383398151915281565b61025561040b366004611aca565b610bd2565b61020561041e366004611ab1565b610bee565b610205610431366004611c4c565b610c6a565b61020560008051602061208383398151915281565b60006001600160e01b03198216635a05180f60e01b1480610470575061047082610d3f565b92915050565b606060cc805461048590611c76565b80601f01602080910402602001604051908101604052809291908181526020018280546104b190611c76565b80156104fe5780601f106104d3576101008083540402835291602001916104fe565b820191906000526020600020905b8154815290600101906020018083116104e157829003601f168201915b5050505050905090565b600033610516818585610d74565b5060019392505050565b60003361052e858285610e98565b610539858585610f12565b506001949350505050565b60009081526065602052604090206001015490565b61056282610544565b61056b816110b6565b61057583836110c0565b505050565b6001600160a01b03811633146105ef5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105f982826110e2565b5050565b6000336105168185856106108383610c6a565b61061a9190611cc6565b610d74565b610637600080516020612083833981519152336109b9565b6106935760405162461bcd60e51b8152602060048201526039602482015260008051602061206383398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b60648201526084016105e6565b61069b611104565b565b6106b56000805160206120a3833981519152336109b9565b61070e5760405162461bcd60e51b815260206004820152603660248201526000805160206120638339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105e6565b6105f98282611151565b610722338261120c565b50565b600054610100900460ff16158080156107455750600054600160ff909116105b80610766575061075430610c95565b158015610766575060005460ff166001145b6107c95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105e6565b6000805460ff1916600117905580156107ec576000805461ff0019166101001790555b6107f6838361133a565b8015610575576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61084b823383610e98565b6105f9828261120c565b61086d600080516020612083833981519152336109b9565b6108c75760405162461bcd60e51b8152602060048201526037602482015260008051602061206383398151915260448201527676652070617573657220726f6c6520746f20706175736560481b60648201526084016105e6565b61069b61137d565b6000806108dc6101c45490565b6101c5546108eb90600a611dbd565b6108fa6402540be40086611dc9565b6109049190611deb565b61090e9190611dc9565b905061091a338261120c565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061094d9033908790600401611e0a565b6020604051808303816000875af115801561096c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109909190611e23565b5060009392505050565b60008281526097602052604081206109b290836113bb565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6109fb6b204fce5e3e2502611000000060646113c7565b610a059082611deb565b6101c46000828254610a179190611cc6565b909155505050565b606060cd805461048590611c76565b6101c3546040516323b872dd60e01b8152336004820152306024820152604481018390526000916001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610a87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aab9190611e23565b50610af133610aba6101c45490565b6101c554610ac990600a611dbd565b610ad86402540be40087611dc9565b610ae29190611deb565b610aec9190611dc9565b611151565b506000919050565b60003381610b078286610c6a565b905083811015610b675760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105e6565b6105398286868403610d74565b600033610516818585610f12565b6000610b9b6b204fce5e3e2502611000000060646113c7565b6101c46000828254610bad9190611cc6565b90915550506101c454919050565b6000818152609760205260408120610470906113d3565b610bdb82610544565b610be4816110b6565b61057583836110e2565b6000806b204fce5e3e25026110000000610c086101c45490565b610c17856402540be400611deb565b610c219190611deb565b610c2b9190611dc9565b9050610c37338461120c565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb9061094d9033908590600401611e0a565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b6001600160a01b03163b151590565b610cae82826109b9565b6105f95760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610ce63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006109b2836001600160a01b0384166113dd565b60006001600160e01b03198216637965db0b60e01b148061047057506301ffc9a760e01b6001600160e01b0319831614610470565b6001600160a01b038316610dd65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e6565b6001600160a01b038216610e375760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e6565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610ea48484610c6a565b90506000198114610f0c5781811015610eff5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105e6565b610f0c8484848403610d74565b50505050565b6001600160a01b038316610f765760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e6565b6001600160a01b038216610fd85760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e6565b610fe383838361142c565b6001600160a01b038316600090815260c960205260409020548181101561105b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105e6565b6001600160a01b03808516600081815260c9602052604080822086860390559286168082529083902080548601905591516000805160206120c3833981519152906110a99086815260200190565b60405180910390a3610f0c565b6107228133611437565b6110ca8282610ca4565b60008281526097602052604090206105759082610d2a565b6110ec8282611490565b600082815260976020526040902061057590826114f7565b61110c61150c565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516111479190611bfb565b60405180910390a1565b6001600160a01b0382166111a75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105e6565b6111b36000838361142c565b8060cb60008282546111c59190611cc6565b90915550506001600160a01b038216600081815260c960209081526040808320805486019055518481526000805160206120c3833981519152910160405180910390a35050565b6001600160a01b03821661126c5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105e6565b6112788260008361142c565b6001600160a01b038216600090815260c96020526040902054818110156112ec5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105e6565b6001600160a01b038316600081815260c960209081526040808320868603905560cb80548790039055518581529192916000805160206120c3833981519152910160405180910390a3505050565b600054610100900460ff166113615760405162461bcd60e51b81526004016105e690611e45565b61136b8282611556565b611373611596565b6105f982826115ca565b61138561162c565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861113a3390565b60006109b28383611673565b60006109b28284611dc9565b6000610470825490565b600081815260018301602052604081205461142457508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610470565b506000610470565b61057583838361169d565b61144182826109b9565b6105f95761144e81611704565b611459836020611716565b60405160200161146a929190611e90565b60408051601f198184030181529082905262461bcd60e51b82526105e6916004016119fc565b61149a82826109b9565b156105f95760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006109b2836001600160a01b0384166118b1565b61012d5460ff1661069b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105e6565b600054610100900460ff1661157d5760405162461bcd60e51b81526004016105e690611e45565b60cc6115898382611f4d565b5060cd6105758282611f4d565b600054610100900460ff166115bd5760405162461bcd60e51b81526004016105e690611e45565b61012d805460ff19169055565b600054610100900460ff166115f15760405162461bcd60e51b81526004016105e690611e45565b6115fc6000336119a4565b6116146000805160206120a3833981519152336119a4565b6105f9600080516020612083833981519152336119a4565b61012d5460ff161561069b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105e6565b600082600001828154811061168a5761168a61200c565b9060005260206000200154905092915050565b61012d5460ff16156105755760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105e6565b60606104706001600160a01b03831660145b60606000611725836002611deb565b611730906002611cc6565b6001600160401b0381111561174757611747611af6565b6040519080825280601f01601f191660200182016040528015611771576020820181803683370190505b509050600360fc1b8160008151811061178c5761178c61200c565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106117bb576117bb61200c565b60200101906001600160f81b031916908160001a90535060006117df846002611deb565b6117ea906001611cc6565b90505b6001811115611862576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061181e5761181e61200c565b1a60f81b8282815181106118345761183461200c565b60200101906001600160f81b031916908160001a90535060049490941c9361185b81612022565b90506117ed565b5083156109b25760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105e6565b6000818152600183016020526040812054801561199a5760006118d5600183612039565b85549091506000906118e990600190612039565b905081811461194e5760008660000182815481106119095761190961200c565b906000526020600020015490508087600001848154811061192c5761192c61200c565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061195f5761195f61204c565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610470565b6000915050610470565b6105f982826110c0565b6000602082840312156119c057600080fd5b81356001600160e01b0319811681146109b257600080fd5b60005b838110156119f35781810151838201526020016119db565b50506000910152565b6020815260008251806020840152611a1b8160408501602087016119d8565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611a4657600080fd5b919050565b60008060408385031215611a5e57600080fd5b611a6783611a2f565b946020939093013593505050565b600080600060608486031215611a8a57600080fd5b611a9384611a2f565b9250611aa160208501611a2f565b9150604084013590509250925092565b600060208284031215611ac357600080fd5b5035919050565b60008060408385031215611add57600080fd5b82359150611aed60208401611a2f565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611b1d57600080fd5b81356001600160401b0380821115611b3757611b37611af6565b604051601f8301601f19908116603f01168101908282118183101715611b5f57611b5f611af6565b81604052838152866020858801011115611b7857600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215611bab57600080fd5b82356001600160401b0380821115611bc257600080fd5b611bce86838701611b0c565b93506020850135915080821115611be457600080fd5b50611bf185828601611b0c565b9150509250929050565b6001600160a01b0391909116815260200190565b600060208284031215611c2157600080fd5b6109b282611a2f565b60008060408385031215611c3d57600080fd5b50508035926020909101359150565b60008060408385031215611c5f57600080fd5b611c6883611a2f565b9150611aed60208401611a2f565b600181811c90821680611c8a57607f821691505b602082108103611caa57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047057610470611cb0565b600181815b80851115611d14578160001904821115611cfa57611cfa611cb0565b80851615611d0757918102915b93841c9390800290611cde565b509250929050565b600082611d2b57506001610470565b81611d3857506000610470565b8160018114611d4e5760028114611d5857611d74565b6001915050610470565b60ff841115611d6957611d69611cb0565b50506001821b610470565b5060208310610133831016604e8410600b8410161715611d97575081810a610470565b611da18383611cd9565b8060001904821115611db557611db5611cb0565b029392505050565b60006109b28383611d1c565b600082611de657634e487b7160e01b600052601260045260246000fd5b500490565b6000816000190483118215151615611e0557611e05611cb0565b500290565b6001600160a01b03929092168252602082015260400190565b600060208284031215611e3557600080fd5b815180151581146109b257600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611ec28160178501602088016119d8565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611ef38160288401602088016119d8565b01602801949350505050565b601f82111561057557600081815260208120601f850160051c81016020861015611f265750805b601f850160051c820191505b81811015611f4557828155600101611f32565b505050505050565b81516001600160401b03811115611f6657611f66611af6565b611f7a81611f748454611c76565b84611eff565b602080601f831160018114611faf5760008415611f975750858301515b600019600386901b1c1916600185901b178555611f45565b600085815260208120601f198616915b82811015611fde57888601518255948401946001909101908401611fbf565b5085821015611ffc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60008161203157612031611cb0565b506000190190565b8181038181111561047057610470611cb0565b634e487b7160e01b600052603160045260246000fdfe45524332305072657365744d696e7465725061757365723a206d75737420686165d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212203ac6228c243a579eb2fb569e8c0e132414224d7f4f4ee8a800a5d408f81aa53364736f6c63430008100033";
809
+ "0x60806040526aa56fa5b99019a5c80000006101c455601c6101c5553480156200002757600080fd5b5060405162002772380380620027728339810160408190526200004a916200047b565b600054610100900460ff16158080156200006b5750600054600160ff909116105b80620000875750303b15801562000087575060005460ff166001145b620000f05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000114576000805461ff0019166101001790555b620001666040518060400160405280600c81526020016b436f6d706f756e642044414960a01b815250604051806040016040528060048152602001636344414960e01b815250620001d160201b60201c565b6101c380546001600160a01b0319166001600160a01b0384161790558015620001c9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505062000668565b600054610100900460ff16620001fb5760405162461bcd60e51b8152600401620000e790620004ad565b62000207828262000221565b620002116200026d565b6200021d8282620002a4565b5050565b600054610100900460ff166200024b5760405162461bcd60e51b8152600401620000e790620004ad565b60cc6200025983826200059c565b5060cd6200026882826200059c565b505050565b600054610100900460ff16620002975760405162461bcd60e51b8152600401620000e790620004ad565b61012d805460ff19169055565b600054610100900460ff16620002ce5760405162461bcd60e51b8152600401620000e790620004ad565b620002e160003362000339565b62000339565b6200030d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000339565b6200021d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620002db565b6200021d82826200034b828262000365565b600082815260976020526040902062000268908262000409565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff166200021d5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620003c53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000420836001600160a01b03841662000429565b90505b92915050565b6000818152600183016020526040812054620004725750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000423565b50600062000423565b6000602082840312156200048e57600080fd5b81516001600160a01b0381168114620004a657600080fd5b9392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200052357607f821691505b6020821081036200054457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200026857600081815260208120601f850160051c81016020861015620005735750805b601f850160051c820191505b8181101562000594578281556001016200057f565b505050505050565b81516001600160401b03811115620005b857620005b8620004f8565b620005d081620005c984546200050e565b846200054a565b602080601f831160018114620006085760008415620005ef5750858301515b600019600386901b1c1916600185901b17855562000594565b600085815260208120601f198616915b82811015620006395788860151825594840194600190910190840162000618565b5085821015620006585787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6120fa80620006786000396000f3fe608060405234801561001057600080fd5b50600436106101ac5760003560e01c806301ffc9a7146101b157806306fdde03146101d9578063095ea7b3146101ee57806318160ddd14610201578063182df0f51461021357806323b872dd1461021c578063248a9ca31461022f5780632f2ff15d14610242578063313ce5671461025757806336568abe1461026657806339509351146102795780633f4ba83a1461028c57806340c10f191461029457806342966c68146102a75780634cd88b76146102ba5780635c975abb146102cd5780636f307dc3146102d957806370a08231146102f457806379cc67901461031d5780638456cb5914610330578063852a12e3146103385780639010d07c1461034b57806391d148541461035e57806394dbb50e1461037157806395d89b4114610384578063a0712d681461038c578063a217fddf1461039f578063a457c2d7146103a7578063a9059cbb146103ba578063bd6d894d146103cd578063ca15c873146103d5578063d5391393146103e8578063d547741f146103fd578063db006a7514610410578063dd62ed3e14610423578063e63ab1e914610436575b600080fd5b6101c46101bf366004611998565b61044b565b60405190151581526020015b60405180910390f35b6101e1610476565b6040516101d091906119e6565b6101c46101fc366004611a35565b610508565b60cb545b6040519081526020016101d0565b6101c454610205565b6101c461022a366004611a5f565b610520565b61020561023d366004611a9b565b610544565b610255610250366004611ab4565b610559565b005b604051600881526020016101d0565b610255610274366004611ab4565b61057a565b6101c4610287366004611a35565b6105fd565b61025561061f565b6102556102a2366004611a35565b61069d565b6102556102b5366004611a9b565b610718565b6102556102c8366004611b82565b610725565b61012d5460ff166101c4565b6101c3546001600160a01b03165b6040516101d09190611be5565b610205610302366004611bf9565b6001600160a01b0316600090815260c9602052604090205490565b61025561032b366004611a35565b610839565b61025561084e565b610205610346366004611a9b565b6108c8565b6102e7610359366004611c14565b610993565b6101c461036c366004611ab4565b6109b2565b61025561037f366004611a9b565b6109dd565b6101e1610a18565b61020561039a366004611a9b565b610a27565b610205600081565b6101c46103b5366004611a35565b610af2565b6101c46103c8366004611a35565b610b6d565b610205610b7b565b6102056103e3366004611a9b565b610bb4565b61020560008051602061208583398151915281565b61025561040b366004611ab4565b610bcb565b61020561041e366004611a9b565b610be7565b610205610431366004611c36565b610c63565b61020560008051602061206583398151915281565b60006001600160e01b03198216635a05180f60e01b1480610470575061047082610c8e565b92915050565b606060cc805461048590611c60565b80601f01602080910402602001604051908101604052809291908181526020018280546104b190611c60565b80156104fe5780601f106104d3576101008083540402835291602001916104fe565b820191906000526020600020905b8154815290600101906020018083116104e157829003601f168201915b5050505050905090565b600033610516818585610cc3565b5060019392505050565b60003361052e858285610de7565b610539858585610e61565b506001949350505050565b60009081526065602052604090206001015490565b61056282610544565b61056b81611005565b610575838361100f565b505050565b6001600160a01b03811633146105ef5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105f98282611031565b5050565b6000336105168185856106108383610c63565b61061a9190611cb0565b610cc3565b610637600080516020612065833981519152336109b2565b6106935760405162461bcd60e51b8152602060048201526039602482015260008051602061204583398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b60648201526084016105e6565b61069b611053565b565b6106b5600080516020612085833981519152336109b2565b61070e5760405162461bcd60e51b815260206004820152603660248201526000805160206120458339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105e6565b6105f982826110a0565b610722338261115b565b50565b600054610100900460ff16158080156107455750600054600160ff909116105b8061075f5750303b15801561075f575060005460ff166001145b6107c25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105e6565b6000805460ff1916600117905580156107e5576000805461ff0019166101001790555b6107ef8383611289565b8015610575576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b610844823383610de7565b6105f9828261115b565b610866600080516020612065833981519152336109b2565b6108c05760405162461bcd60e51b8152602060048201526037602482015260008051602061204583398151915260448201527676652070617573657220726f6c6520746f20706175736560481b60648201526084016105e6565b61069b6112cc565b6000806108d56101c45490565b6101c5546108e490600a611da7565b6108f36402540be40086611db3565b6108fd9190611dd5565b6109079190611db3565b9050610913338261115b565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906109469033908790600401611dec565b6020604051808303816000875af1158015610965573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109899190611e05565b5060009392505050565b60008281526097602052604081206109ab908361130a565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6109f46b204fce5e3e250261100000006064611316565b6109fe9082611dd5565b6101c46000828254610a109190611cb0565b909155505050565b606060cd805461048590611c60565b6101c3546040516323b872dd60e01b8152336004820152306024820152604481018390526000916001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610a80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa49190611e05565b50610aea33610ab36101c45490565b6101c554610ac290600a611da7565b610ad16402540be40087611db3565b610adb9190611dd5565b610ae59190611db3565b6110a0565b506000919050565b60003381610b008286610c63565b905083811015610b605760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105e6565b6105398286868403610cc3565b600033610516818585610e61565b6000610b946b204fce5e3e250261100000006064611316565b6101c46000828254610ba69190611cb0565b90915550506101c454919050565b600081815260976020526040812061047090611322565b610bd482610544565b610bdd81611005565b6105758383611031565b6000806b204fce5e3e25026110000000610c016101c45490565b610c10856402540be400611dd5565b610c1a9190611dd5565b610c249190611db3565b9050610c30338461115b565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906109469033908590600401611dec565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b60006001600160e01b03198216637965db0b60e01b148061047057506301ffc9a760e01b6001600160e01b0319831614610470565b6001600160a01b038316610d255760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e6565b6001600160a01b038216610d865760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e6565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610df38484610c63565b90506000198114610e5b5781811015610e4e5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105e6565b610e5b8484848403610cc3565b50505050565b6001600160a01b038316610ec55760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e6565b6001600160a01b038216610f275760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e6565b610f3283838361132c565b6001600160a01b038316600090815260c9602052604090205481811015610faa5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105e6565b6001600160a01b03808516600081815260c9602052604080822086860390559286168082529083902080548601905591516000805160206120a583398151915290610ff89086815260200190565b60405180910390a3610e5b565b6107228133611337565b6110198282611390565b60008281526097602052604090206105759082611416565b61103b828261142b565b60008281526097602052604090206105759082611492565b61105b6114a7565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516110969190611be5565b60405180910390a1565b6001600160a01b0382166110f65760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105e6565b6111026000838361132c565b8060cb60008282546111149190611cb0565b90915550506001600160a01b038216600081815260c960209081526040808320805486019055518481526000805160206120a5833981519152910160405180910390a35050565b6001600160a01b0382166111bb5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105e6565b6111c78260008361132c565b6001600160a01b038216600090815260c960205260409020548181101561123b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105e6565b6001600160a01b038316600081815260c960209081526040808320868603905560cb80548790039055518581529192916000805160206120a5833981519152910160405180910390a3505050565b600054610100900460ff166112b05760405162461bcd60e51b81526004016105e690611e27565b6112ba82826114f1565b6112c2611531565b6105f98282611565565b6112d46115c7565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110893390565b60006109ab838361160e565b60006109ab8284611db3565b6000610470825490565b610575838383611638565b61134182826109b2565b6105f95761134e8161169f565b6113598360206116b1565b60405160200161136a929190611e72565b60408051601f198184030181529082905262461bcd60e51b82526105e6916004016119e6565b61139a82826109b2565b6105f95760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556113d23390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006109ab836001600160a01b03841661184c565b61143582826109b2565b156105f95760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006109ab836001600160a01b03841661189b565b61012d5460ff1661069b5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105e6565b600054610100900460ff166115185760405162461bcd60e51b81526004016105e690611e27565b60cc6115248382611f2f565b5060cd6105758282611f2f565b600054610100900460ff166115585760405162461bcd60e51b81526004016105e690611e27565b61012d805460ff19169055565b600054610100900460ff1661158c5760405162461bcd60e51b81526004016105e690611e27565b61159760003361198e565b6115af6000805160206120858339815191523361198e565b6105f96000805160206120658339815191523361198e565b61012d5460ff161561069b5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105e6565b600082600001828154811061162557611625611fee565b9060005260206000200154905092915050565b61012d5460ff16156105755760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105e6565b60606104706001600160a01b03831660145b606060006116c0836002611dd5565b6116cb906002611cb0565b6001600160401b038111156116e2576116e2611ae0565b6040519080825280601f01601f19166020018201604052801561170c576020820181803683370190505b509050600360fc1b8160008151811061172757611727611fee565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061175657611756611fee565b60200101906001600160f81b031916908160001a905350600061177a846002611dd5565b611785906001611cb0565b90505b60018111156117fd576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106117b9576117b9611fee565b1a60f81b8282815181106117cf576117cf611fee565b60200101906001600160f81b031916908160001a90535060049490941c936117f681612004565b9050611788565b5083156109ab5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105e6565b600081815260018301602052604081205461189357508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610470565b506000610470565b600081815260018301602052604081205480156119845760006118bf60018361201b565b85549091506000906118d39060019061201b565b90508181146119385760008660000182815481106118f3576118f3611fee565b906000526020600020015490508087600001848154811061191657611916611fee565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806119495761194961202e565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610470565b6000915050610470565b6105f9828261100f565b6000602082840312156119aa57600080fd5b81356001600160e01b0319811681146109ab57600080fd5b60005b838110156119dd5781810151838201526020016119c5565b50506000910152565b6020815260008251806020840152611a058160408501602087016119c2565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611a3057600080fd5b919050565b60008060408385031215611a4857600080fd5b611a5183611a19565b946020939093013593505050565b600080600060608486031215611a7457600080fd5b611a7d84611a19565b9250611a8b60208501611a19565b9150604084013590509250925092565b600060208284031215611aad57600080fd5b5035919050565b60008060408385031215611ac757600080fd5b82359150611ad760208401611a19565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611b0757600080fd5b81356001600160401b0380821115611b2157611b21611ae0565b604051601f8301601f19908116603f01168101908282118183101715611b4957611b49611ae0565b81604052838152866020858801011115611b6257600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215611b9557600080fd5b82356001600160401b0380821115611bac57600080fd5b611bb886838701611af6565b93506020850135915080821115611bce57600080fd5b50611bdb85828601611af6565b9150509250929050565b6001600160a01b0391909116815260200190565b600060208284031215611c0b57600080fd5b6109ab82611a19565b60008060408385031215611c2757600080fd5b50508035926020909101359150565b60008060408385031215611c4957600080fd5b611c5283611a19565b9150611ad760208401611a19565b600181811c90821680611c7457607f821691505b602082108103611c9457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561047057610470611c9a565b600181815b80851115611cfe578160001904821115611ce457611ce4611c9a565b80851615611cf157918102915b93841c9390800290611cc8565b509250929050565b600082611d1557506001610470565b81611d2257506000610470565b8160018114611d385760028114611d4257611d5e565b6001915050610470565b60ff841115611d5357611d53611c9a565b50506001821b610470565b5060208310610133831016604e8410600b8410161715611d81575081810a610470565b611d8b8383611cc3565b8060001904821115611d9f57611d9f611c9a565b029392505050565b60006109ab8383611d06565b600082611dd057634e487b7160e01b600052601260045260246000fd5b500490565b808202811582820484141761047057610470611c9a565b6001600160a01b03929092168252602082015260400190565b600060208284031215611e1757600080fd5b815180151581146109ab57600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611ea48160178501602088016119c2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611ed58160288401602088016119c2565b01602801949350505050565b601f82111561057557600081815260208120601f850160051c81016020861015611f085750805b601f850160051c820191505b81811015611f2757828155600101611f14565b505050505050565b81516001600160401b03811115611f4857611f48611ae0565b611f5c81611f568454611c60565b84611ee1565b602080601f831160018114611f915760008415611f795750858301515b600019600386901b1c1916600185901b178555611f27565b600085815260208120601f198616915b82811015611fc057888601518255948401946001909101908401611fa1565b5085821015611fde5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60008161201357612013611c9a565b506000190190565b8181038181111561047057610470611c9a565b634e487b7160e01b600052603160045260246000fdfe45524332305072657365744d696e7465725061757365723a206d75737420686165d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220afced6771dd80609b3416fa1a9d2052f83172dce6bfff21012a66986921d4d0964736f6c63430008130033";
810
810
 
811
811
  type CDAIMockConstructorParams =
812
812
  | [signer?: Signer]
@@ -783,7 +783,7 @@ const _abi = [
783
783
  ];
784
784
 
785
785
  const _bytecode =
786
- "0x60806040526200002c60636c0c9f2c9cd04674edea40000000620001fb60201b62000be21790919060201c565b6101c4553480156200003d57600080fd5b50604051620026a3380380620026a38339810160408190526200006091620004d4565b600054610100900460ff1615808015620000815750600054600160ff909116105b80620000b157506200009e306200021260201b62000bee1760201c565b158015620000b1575060005460ff166001145b6200011a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156200013e576000805461ff0019166101001790555b620001906040518060400160405280600c81526020016b436f6d706f756e642044414960a01b815250604051806040016040528060048152602001636344414960e01b8152506200022160201b60201c565b6101c380546001600160a01b0319166001600160a01b0384161790558015620001f3576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050620006e4565b600062000209828462000506565b90505b92915050565b6001600160a01b03163b151590565b600054610100900460ff166200024b5760405162461bcd60e51b8152600401620001119062000529565b62000257828262000271565b62000261620002bd565b6200026d8282620002f4565b5050565b600054610100900460ff166200029b5760405162461bcd60e51b8152600401620001119062000529565b60cc620002a9838262000618565b5060cd620002b8828262000618565b505050565b600054610100900460ff16620002e75760405162461bcd60e51b8152600401620001119062000529565b61012d805460ff19169055565b600054610100900460ff166200031e5760405162461bcd60e51b8152600401620001119062000529565b6200033160003362000389565b62000389565b6200035d7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000389565b6200026d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336200032b565b6200026d8282620003a68282620003cd60201b62000bfd1760201c565b6000828152609760209081526040909120620002b891839062000c8362000471821b17901c565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff166200026d5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556200042d3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000209836001600160a01b0384166000818152600183016020526040812054620004cb575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200020c565b5060006200020c565b600060208284031215620004e757600080fd5b81516001600160a01b0381168114620004ff57600080fd5b9392505050565b6000826200052457634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200059f57607f821691505b602082108103620005c057634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002b857600081815260208120601f850160051c81016020861015620005ef5750805b601f850160051c820191505b818110156200061057828155600101620005fb565b505050505050565b81516001600160401b0381111562000634576200063462000574565b6200064c816200064584546200058a565b84620005c6565b602080601f8311600181146200068457600084156200066b5750858301515b600019600386901b1c1916600185901b17855562000610565b600085815260208120601f198616915b82811015620006b55788860151825594840194600190910190840162000694565b5085821015620006d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611faf80620006f46000396000f3fe608060405234801561001057600080fd5b50600436106101965760003560e01c806301ffc9a71461019b57806306fdde03146101c3578063095ea7b3146101d857806318160ddd146101eb578063182df0f5146101fd57806323b872dd14610206578063248a9ca3146102195780632f2ff15d1461022c578063313ce5671461024157806336568abe1461025057806339509351146102635780633f4ba83a1461027657806340c10f191461027e57806342966c68146102915780634cd88b76146102a45780635c975abb146102b757806370a08231146102c357806379cc6790146102ec5780638456cb59146102ff578063852a12e3146103075780639010d07c1461031a57806391d148541461033a57806395d89b411461034d578063a0712d6814610355578063a217fddf14610368578063a457c2d714610370578063a9059cbb14610383578063bd6d894d14610396578063ca15c8731461039e578063d5391393146103b1578063d547741f146103c6578063db006a75146103d9578063dd62ed3e146103ec578063e63ab1e9146103ff575b600080fd5b6101ae6101a9366004611935565b610414565b60405190151581526020015b60405180910390f35b6101cb61043f565b6040516101ba9190611983565b6101ae6101e63660046119d2565b6104d1565b60cb545b6040519081526020016101ba565b6101c4546101ef565b6101ae6102143660046119fc565b6104e9565b6101ef610227366004611a38565b61050d565b61023f61023a366004611a51565b610522565b005b604051600881526020016101ba565b61023f61025e366004611a51565b610543565b6101ae6102713660046119d2565b6105c6565b61023f6105e8565b61023f61028c3660046119d2565b610666565b61023f61029f366004611a38565b6106e1565b61023f6102b2366004611b1f565b6106ee565b61012d5460ff166101ae565b6101ef6102d1366004611b82565b6001600160a01b0316600090815260c9602052604090205490565b61023f6102fa3660046119d2565b610809565b61023f61081e565b6101ef610315366004611a38565b610898565b61032d610328366004611b9d565b610954565b6040516101ba9190611bbf565b6101ae610348366004611a51565b610973565b6101cb61099e565b6101ef610363366004611a38565b6109ad565b6101ef600081565b6101ae61037e3660046119d2565b610a5a565b6101ae6103913660046119d2565b610ad5565b6101ef610ae3565b6101ef6103ac366004611a38565b610b1c565b6101ef600080516020611f3a83398151915281565b61023f6103d4366004611a51565b610b33565b6101ef6103e7366004611a38565b610b4f565b6101ef6103fa366004611bd3565b610bb7565b6101ef600080516020611f1a83398151915281565b60006001600160e01b03198216635a05180f60e01b1480610439575061043982610c98565b92915050565b606060cc805461044e90611bfd565b80601f016020809104026020016040519081016040528092919081815260200182805461047a90611bfd565b80156104c75780601f1061049c576101008083540402835291602001916104c7565b820191906000526020600020905b8154815290600101906020018083116104aa57829003601f168201915b5050505050905090565b6000336104df818585610ccd565b5060019392505050565b6000336104f7858285610df1565b610502858585610e6b565b506001949350505050565b60009081526065602052604090206001015490565b61052b8261050d565b6105348161100f565b61053e8383611019565b505050565b6001600160a01b03811633146105b85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105c2828261103b565b5050565b6000336104df8185856105d98383610bb7565b6105e39190611c4d565b610ccd565b610600600080516020611f1a83398151915233610973565b61065c5760405162461bcd60e51b81526020600482015260396024820152600080516020611efa83398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b60648201526084016105af565b61066461105d565b565b61067e600080516020611f3a83398151915233610973565b6106d75760405162461bcd60e51b81526020600482015260366024820152600080516020611efa8339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105af565b6105c282826110aa565b6106eb3382611165565b50565b600054610100900460ff161580801561070e5750600054600160ff909116105b8061072f575061071d30610bee565b15801561072f575060005460ff166001145b6107925760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105af565b6000805460ff1916600117905580156107b5576000805461ff0019166101001790555b6107bf8383611293565b801561053e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b610814823383610df1565b6105c28282611165565b610836600080516020611f1a83398151915233610973565b6108905760405162461bcd60e51b81526020600482015260376024820152600080516020611efa83398151915260448201527676652070617573657220726f6c6520746f20706175736560481b60648201526084016105af565b6106646112d6565b6000806108c8678ac7230489e800006108c26108b9866402540be400611c60565b6101c454611314565b90610be2565b90506108d43382611165565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906109079033908790600401611c7f565b6020604051808303816000875af1158015610926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094a9190611c98565b5060009392505050565b600082815260976020526040812061096c9083611336565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060cd805461044e90611bfd565b6101c3546040516323b872dd60e01b8152336004820152306024820152604481018390526000916001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a9190611c98565b50610a5233610a4d678ac7230489e800006108c26108b9876402540be400611c60565b6110aa565b506001919050565b60003381610a688286610bb7565b905083811015610ac85760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105af565b6105028286868403610ccd565b6000336104df818585610e6b565b6000610afc6b204fce5e3e250261100000006064610be2565b6101c46000828254610b0e9190611c4d565b90915550506101c454919050565b600081815260976020526040812061043990611342565b610b3c8261050d565b610b458161100f565b61053e838361103b565b600080610b78610b64846402540be400611c60565b610b73600a6108c26101c45490565b61134c565b9050610b843384611165565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906109079033908590600401611c7f565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b600061096c8284611cba565b6001600160a01b03163b151590565b610c078282610973565b6105c25760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055610c3f3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061096c836001600160a01b038416611364565b60006001600160e01b03198216637965db0b60e01b148061043957506301ffc9a760e01b6001600160e01b0319831614610439565b6001600160a01b038316610d2f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105af565b6001600160a01b038216610d905760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105af565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610dfd8484610bb7565b90506000198114610e655781811015610e585760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105af565b610e658484848403610ccd565b50505050565b6001600160a01b038316610ecf5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105af565b6001600160a01b038216610f315760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105af565b610f3c8383836113b3565b6001600160a01b038316600090815260c9602052604090205481811015610fb45760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105af565b6001600160a01b03808516600081815260c960205260408082208686039055928616808252908390208054860190559151600080516020611f5a833981519152906110029086815260200190565b60405180910390a3610e65565b6106eb81336113be565b6110238282610bfd565b600082815260976020526040902061053e9082610c83565b6110458282611417565b600082815260976020526040902061053e908261147e565b611065611493565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516110a09190611bbf565b60405180910390a1565b6001600160a01b0382166111005760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105af565b61110c600083836113b3565b8060cb600082825461111e9190611c4d565b90915550506001600160a01b038216600081815260c96020908152604080832080548601905551848152600080516020611f5a833981519152910160405180910390a35050565b6001600160a01b0382166111c55760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105af565b6111d1826000836113b3565b6001600160a01b038216600090815260c96020526040902054818110156112455760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105af565b6001600160a01b038316600081815260c960209081526040808320868603905560cb8054879003905551858152919291600080516020611f5a833981519152910160405180910390a3505050565b600054610100900460ff166112ba5760405162461bcd60e51b81526004016105af90611cdc565b6112c482826114dd565b6112cc61151d565b6105c28282611551565b6112de6115b3565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586110933390565b60008161132c84676765c793fa10079d601b1b611c60565b61096c9190611cba565b600061096c83836115fa565b6000610439825490565b6000676765c793fa10079d601b1b61132c8385611c60565b60008181526001830160205260408120546113ab57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610439565b506000610439565b61053e838383611624565b6113c88282610973565b6105c2576113d58161168b565b6113e083602061169d565b6040516020016113f1929190611d27565b60408051601f198184030181529082905262461bcd60e51b82526105af91600401611983565b6114218282610973565b156105c25760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600061096c836001600160a01b038416611838565b61012d5460ff166106645760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105af565b600054610100900460ff166115045760405162461bcd60e51b81526004016105af90611cdc565b60cc6115108382611de4565b5060cd61053e8282611de4565b600054610100900460ff166115445760405162461bcd60e51b81526004016105af90611cdc565b61012d805460ff19169055565b600054610100900460ff166115785760405162461bcd60e51b81526004016105af90611cdc565b61158360003361192b565b61159b600080516020611f3a8339815191523361192b565b6105c2600080516020611f1a8339815191523361192b565b61012d5460ff16156106645760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105af565b600082600001828154811061161157611611611ea3565b9060005260206000200154905092915050565b61012d5460ff161561053e5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105af565b60606104396001600160a01b03831660145b606060006116ac836002611c60565b6116b7906002611c4d565b6001600160401b038111156116ce576116ce611a7d565b6040519080825280601f01601f1916602001820160405280156116f8576020820181803683370190505b509050600360fc1b8160008151811061171357611713611ea3565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061174257611742611ea3565b60200101906001600160f81b031916908160001a9053506000611766846002611c60565b611771906001611c4d565b90505b60018111156117e9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106117a5576117a5611ea3565b1a60f81b8282815181106117bb576117bb611ea3565b60200101906001600160f81b031916908160001a90535060049490941c936117e281611eb9565b9050611774565b50831561096c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105af565b6000818152600183016020526040812054801561192157600061185c600183611ed0565b855490915060009061187090600190611ed0565b90508181146118d557600086600001828154811061189057611890611ea3565b90600052602060002001549050808760000184815481106118b3576118b3611ea3565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806118e6576118e6611ee3565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610439565b6000915050610439565b6105c28282611019565b60006020828403121561194757600080fd5b81356001600160e01b03198116811461096c57600080fd5b60005b8381101561197a578181015183820152602001611962565b50506000910152565b60208152600082518060208401526119a281604085016020870161195f565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146119cd57600080fd5b919050565b600080604083850312156119e557600080fd5b6119ee836119b6565b946020939093013593505050565b600080600060608486031215611a1157600080fd5b611a1a846119b6565b9250611a28602085016119b6565b9150604084013590509250925092565b600060208284031215611a4a57600080fd5b5035919050565b60008060408385031215611a6457600080fd5b82359150611a74602084016119b6565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611aa457600080fd5b81356001600160401b0380821115611abe57611abe611a7d565b604051601f8301601f19908116603f01168101908282118183101715611ae657611ae6611a7d565b81604052838152866020858801011115611aff57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215611b3257600080fd5b82356001600160401b0380821115611b4957600080fd5b611b5586838701611a93565b93506020850135915080821115611b6b57600080fd5b50611b7885828601611a93565b9150509250929050565b600060208284031215611b9457600080fd5b61096c826119b6565b60008060408385031215611bb057600080fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b60008060408385031215611be657600080fd5b611bef836119b6565b9150611a74602084016119b6565b600181811c90821680611c1157607f821691505b602082108103611c3157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439611c37565b6000816000190483118215151615611c7a57611c7a611c37565b500290565b6001600160a01b03929092168252602082015260400190565b600060208284031215611caa57600080fd5b8151801515811461096c57600080fd5b600082611cd757634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611d5981601785016020880161195f565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611d8a81602884016020880161195f565b01602801949350505050565b601f82111561053e57600081815260208120601f850160051c81016020861015611dbd5750805b601f850160051c820191505b81811015611ddc57828155600101611dc9565b505050505050565b81516001600160401b03811115611dfd57611dfd611a7d565b611e1181611e0b8454611bfd565b84611d96565b602080601f831160018114611e465760008415611e2e5750858301515b600019600386901b1c1916600185901b178555611ddc565b600085815260208120601f198616915b82811015611e7557888601518255948401946001909101908401611e56565b5085821015611e935787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600081611ec857611ec8611c37565b506000190190565b8181038181111561043957610439611c37565b634e487b7160e01b600052603160045260246000fdfe45524332305072657365744d696e7465725061757365723a206d75737420686165d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200489ad8735d628e7ef01a3349fe6da8074ea35763b5cb01abba001cb6c9b8fa264736f6c63430008100033";
786
+ "0x60806040526200001e6c0c9f2c9cd04674edea400000006063620001d9565b6101c4553480156200002f57600080fd5b506040516200263c3803806200263c83398101604081905262000052916200048b565b600054610100900460ff1615808015620000735750600054600160ff909116105b806200008f5750303b1580156200008f575060005460ff166001145b620000f85760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff1916600117905580156200011c576000805461ff0019166101001790555b6200016e6040518060400160405280600c81526020016b436f6d706f756e642044414960a01b815250604051806040016040528060048152602001636344414960e01b815250620001f060201b60201c565b6101c380546001600160a01b0319166001600160a01b0384161790558015620001d1576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50506200069b565b6000620001e78284620004bd565b90505b92915050565b600054610100900460ff166200021a5760405162461bcd60e51b8152600401620000ef90620004e0565b62000226828262000240565b620002306200028c565b6200023c8282620002c3565b5050565b600054610100900460ff166200026a5760405162461bcd60e51b8152600401620000ef90620004e0565b60cc620002788382620005cf565b5060cd620002878282620005cf565b505050565b600054610100900460ff16620002b65760405162461bcd60e51b8152600401620000ef90620004e0565b61012d805460ff19169055565b600054610100900460ff16620002ed5760405162461bcd60e51b8152600401620000ef90620004e0565b6200030060003362000358565b62000358565b6200032c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000358565b6200023c7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620002fa565b6200023c82826200036a828262000384565b600082815260976020526040902062000287908262000428565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff166200023c5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620003e43390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620001e7836001600160a01b03841660008181526001830160205260408120546200048257508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620001ea565b506000620001ea565b6000602082840312156200049e57600080fd5b81516001600160a01b0381168114620004b657600080fd5b9392505050565b600082620004db57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200055657607f821691505b6020821081036200057757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200028757600081815260208120601f850160051c81016020861015620005a65750805b601f850160051c820191505b81811015620005c757828155600101620005b2565b505050505050565b81516001600160401b03811115620005eb57620005eb6200052b565b6200060381620005fc845462000541565b846200057d565b602080601f8311600181146200063b5760008415620006225750858301515b600019600386901b1c1916600185901b178555620005c7565b600085815260208120601f198616915b828110156200066c578886015182559484019460019091019084016200064b565b50858210156200068b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611f9180620006ab6000396000f3fe608060405234801561001057600080fd5b50600436106101965760003560e01c806301ffc9a71461019b57806306fdde03146101c3578063095ea7b3146101d857806318160ddd146101eb578063182df0f5146101fd57806323b872dd14610206578063248a9ca3146102195780632f2ff15d1461022c578063313ce5671461024157806336568abe1461025057806339509351146102635780633f4ba83a1461027657806340c10f191461027e57806342966c68146102915780634cd88b76146102a45780635c975abb146102b757806370a08231146102c357806379cc6790146102ec5780638456cb59146102ff578063852a12e3146103075780639010d07c1461031a57806391d148541461033a57806395d89b411461034d578063a0712d6814610355578063a217fddf14610368578063a457c2d714610370578063a9059cbb14610383578063bd6d894d14610396578063ca15c8731461039e578063d5391393146103b1578063d547741f146103c6578063db006a75146103d9578063dd62ed3e146103ec578063e63ab1e9146103ff575b600080fd5b6101ae6101a936600461191f565b610414565b60405190151581526020015b60405180910390f35b6101cb61043f565b6040516101ba919061196d565b6101ae6101e63660046119bc565b6104d1565b60cb545b6040519081526020016101ba565b6101c4546101ef565b6101ae6102143660046119e6565b6104e9565b6101ef610227366004611a22565b61050d565b61023f61023a366004611a3b565b610522565b005b604051600881526020016101ba565b61023f61025e366004611a3b565b610543565b6101ae6102713660046119bc565b6105c6565b61023f6105e8565b61023f61028c3660046119bc565b610666565b61023f61029f366004611a22565b6106e1565b61023f6102b2366004611b09565b6106ee565b61012d5460ff166101ae565b6101ef6102d1366004611b6c565b6001600160a01b0316600090815260c9602052604090205490565b61023f6102fa3660046119bc565b610802565b61023f610817565b6101ef610315366004611a22565b610891565b61032d610328366004611b87565b61094d565b6040516101ba9190611ba9565b6101ae610348366004611a3b565b61096c565b6101cb610997565b6101ef610363366004611a22565b6109a6565b6101ef600081565b6101ae61037e3660046119bc565b610a53565b6101ae6103913660046119bc565b610ace565b6101ef610adc565b6101ef6103ac366004611a22565b610b15565b6101ef600080516020611f1c83398151915281565b61023f6103d4366004611a3b565b610b2c565b6101ef6103e7366004611a22565b610b48565b6101ef6103fa366004611bbd565b610bb0565b6101ef600080516020611efc83398151915281565b60006001600160e01b03198216635a05180f60e01b1480610439575061043982610bdb565b92915050565b606060cc805461044e90611be7565b80601f016020809104026020016040519081016040528092919081815260200182805461047a90611be7565b80156104c75780601f1061049c576101008083540402835291602001916104c7565b820191906000526020600020905b8154815290600101906020018083116104aa57829003601f168201915b5050505050905090565b6000336104df818585610c10565b5060019392505050565b6000336104f7858285610d34565b610502858585610dae565b506001949350505050565b60009081526065602052604090206001015490565b61052b8261050d565b61053481610f52565b61053e8383610f5c565b505050565b6001600160a01b03811633146105b85760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105c28282610f7e565b5050565b6000336104df8185856105d98383610bb0565b6105e39190611c37565b610c10565b610600600080516020611efc8339815191523361096c565b61065c5760405162461bcd60e51b81526020600482015260396024820152600080516020611edc83398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b60648201526084016105af565b610664610fa0565b565b61067e600080516020611f1c8339815191523361096c565b6106d75760405162461bcd60e51b81526020600482015260366024820152600080516020611edc8339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105af565b6105c28282610fed565b6106eb33826110a8565b50565b600054610100900460ff161580801561070e5750600054600160ff909116105b806107285750303b158015610728575060005460ff166001145b61078b5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105af565b6000805460ff1916600117905580156107ae576000805461ff0019166101001790555b6107b883836111d6565b801561053e576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61080d823383610d34565b6105c282826110a8565b61082f600080516020611efc8339815191523361096c565b6108895760405162461bcd60e51b81526020600482015260376024820152600080516020611edc83398151915260448201527676652070617573657220726f6c6520746f20706175736560481b60648201526084016105af565b610664611219565b6000806108c1678ac7230489e800006108bb6108b2866402540be400611c4a565b6101c454611257565b90611279565b90506108cd33826110a8565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906109009033908790600401611c61565b6020604051808303816000875af115801561091f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109439190611c7a565b5060009392505050565b60008281526097602052604081206109659083611285565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060cd805461044e90611be7565b6101c3546040516323b872dd60e01b8152336004820152306024820152604481018390526000916001600160a01b0316906323b872dd906064016020604051808303816000875af11580156109ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a239190611c7a565b50610a4b33610a46678ac7230489e800006108bb6108b2876402540be400611c4a565b610fed565b506001919050565b60003381610a618286610bb0565b905083811015610ac15760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105af565b6105028286868403610c10565b6000336104df818585610dae565b6000610af56b204fce5e3e250261100000006064611279565b6101c46000828254610b079190611c37565b90915550506101c454919050565b600081815260976020526040812061043990611291565b610b358261050d565b610b3e81610f52565b61053e8383610f7e565b600080610b71610b5d846402540be400611c4a565b610b6c600a6108bb6101c45490565b61129b565b9050610b7d33846110a8565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906109009033908590600401611c61565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b60006001600160e01b03198216637965db0b60e01b148061043957506301ffc9a760e01b6001600160e01b0319831614610439565b6001600160a01b038316610c725760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105af565b6001600160a01b038216610cd35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105af565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610d408484610bb0565b90506000198114610da85781811015610d9b5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105af565b610da88484848403610c10565b50505050565b6001600160a01b038316610e125760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105af565b6001600160a01b038216610e745760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105af565b610e7f8383836112b3565b6001600160a01b038316600090815260c9602052604090205481811015610ef75760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105af565b6001600160a01b03808516600081815260c960205260408082208686039055928616808252908390208054860190559151600080516020611f3c83398151915290610f459086815260200190565b60405180910390a3610da8565b6106eb81336112be565b610f668282611317565b600082815260976020526040902061053e908261139d565b610f8882826113b2565b600082815260976020526040902061053e9082611419565b610fa861142e565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051610fe39190611ba9565b60405180910390a1565b6001600160a01b0382166110435760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105af565b61104f600083836112b3565b8060cb60008282546110619190611c37565b90915550506001600160a01b038216600081815260c96020908152604080832080548601905551848152600080516020611f3c833981519152910160405180910390a35050565b6001600160a01b0382166111085760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105af565b611114826000836112b3565b6001600160a01b038216600090815260c96020526040902054818110156111885760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105af565b6001600160a01b038316600081815260c960209081526040808320868603905560cb8054879003905551858152919291600080516020611f3c833981519152910160405180910390a3505050565b600054610100900460ff166111fd5760405162461bcd60e51b81526004016105af90611c9c565b6112078282611478565b61120f6114b8565b6105c282826114ec565b61122161154e565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610fd63390565b60008161126f84676765c793fa10079d601b1b611c4a565b6109659190611ce7565b60006109658284611ce7565b60006109658383611595565b6000610439825490565b6000676765c793fa10079d601b1b61126f8385611c4a565b61053e8383836115bf565b6112c8828261096c565b6105c2576112d581611626565b6112e0836020611638565b6040516020016112f1929190611d09565b60408051601f198184030181529082905262461bcd60e51b82526105af9160040161196d565b611321828261096c565b6105c25760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556113593390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610965836001600160a01b0384166117d3565b6113bc828261096c565b156105c25760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610965836001600160a01b038416611822565b61012d5460ff166106645760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105af565b600054610100900460ff1661149f5760405162461bcd60e51b81526004016105af90611c9c565b60cc6114ab8382611dc6565b5060cd61053e8282611dc6565b600054610100900460ff166114df5760405162461bcd60e51b81526004016105af90611c9c565b61012d805460ff19169055565b600054610100900460ff166115135760405162461bcd60e51b81526004016105af90611c9c565b61151e600033611915565b611536600080516020611f1c83398151915233611915565b6105c2600080516020611efc83398151915233611915565b61012d5460ff16156106645760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105af565b60008260000182815481106115ac576115ac611e85565b9060005260206000200154905092915050565b61012d5460ff161561053e5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105af565b60606104396001600160a01b03831660145b60606000611647836002611c4a565b611652906002611c37565b6001600160401b0381111561166957611669611a67565b6040519080825280601f01601f191660200182016040528015611693576020820181803683370190505b509050600360fc1b816000815181106116ae576116ae611e85565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106116dd576116dd611e85565b60200101906001600160f81b031916908160001a9053506000611701846002611c4a565b61170c906001611c37565b90505b6001811115611784576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061174057611740611e85565b1a60f81b82828151811061175657611756611e85565b60200101906001600160f81b031916908160001a90535060049490941c9361177d81611e9b565b905061170f565b5083156109655760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105af565b600081815260018301602052604081205461181a57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610439565b506000610439565b6000818152600183016020526040812054801561190b576000611846600183611eb2565b855490915060009061185a90600190611eb2565b90508181146118bf57600086600001828154811061187a5761187a611e85565b906000526020600020015490508087600001848154811061189d5761189d611e85565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806118d0576118d0611ec5565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610439565b6000915050610439565b6105c28282610f5c565b60006020828403121561193157600080fd5b81356001600160e01b03198116811461096557600080fd5b60005b8381101561196457818101518382015260200161194c565b50506000910152565b602081526000825180602084015261198c816040850160208701611949565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146119b757600080fd5b919050565b600080604083850312156119cf57600080fd5b6119d8836119a0565b946020939093013593505050565b6000806000606084860312156119fb57600080fd5b611a04846119a0565b9250611a12602085016119a0565b9150604084013590509250925092565b600060208284031215611a3457600080fd5b5035919050565b60008060408385031215611a4e57600080fd5b82359150611a5e602084016119a0565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611a8e57600080fd5b81356001600160401b0380821115611aa857611aa8611a67565b604051601f8301601f19908116603f01168101908282118183101715611ad057611ad0611a67565b81604052838152866020858801011115611ae957600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060408385031215611b1c57600080fd5b82356001600160401b0380821115611b3357600080fd5b611b3f86838701611a7d565b93506020850135915080821115611b5557600080fd5b50611b6285828601611a7d565b9150509250929050565b600060208284031215611b7e57600080fd5b610965826119a0565b60008060408385031215611b9a57600080fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b60008060408385031215611bd057600080fd5b611bd9836119a0565b9150611a5e602084016119a0565b600181811c90821680611bfb57607f821691505b602082108103611c1b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561043957610439611c21565b808202811582820484141761043957610439611c21565b6001600160a01b03929092168252602082015260400190565b600060208284031215611c8c57600080fd5b8151801515811461096557600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082611d0457634e487b7160e01b600052601260045260246000fd5b500490565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351611d3b816017850160208801611949565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611d6c816028840160208801611949565b01602801949350505050565b601f82111561053e57600081815260208120601f850160051c81016020861015611d9f5750805b601f850160051c820191505b81811015611dbe57828155600101611dab565b505050505050565b81516001600160401b03811115611ddf57611ddf611a67565b611df381611ded8454611be7565b84611d78565b602080601f831160018114611e285760008415611e105750858301515b600019600386901b1c1916600185901b178555611dbe565b600085815260208120601f198616915b82811015611e5757888601518255948401946001909101908401611e38565b5085821015611e755787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b600081611eaa57611eaa611c21565b506000190190565b8181038181111561043957610439611c21565b634e487b7160e01b600052603160045260246000fdfe45524332305072657365744d696e7465725061757365723a206d75737420686165d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220f153d72e0661b75c17e23303dcea5d1495753ea3d1ce0b273b8f96c44ca0ddd764736f6c63430008130033";
787
787
 
788
788
  type CDAINonMintableMockConstructorParams =
789
789
  | [signer?: Signer]
@@ -793,7 +793,7 @@ const _abi = [
793
793
  ];
794
794
 
795
795
  const _bytecode =
796
- "0x608060405266470de4df8200006101c45560126101c5553480156200002357600080fd5b5060405162002fc638038062002fc683398101604081905262000046916200053a565b600054610100900460ff1615808015620000675750600054600160ff909116105b8062000097575062000084306200026960201b6200135d1760201c565b15801562000097575060005460ff166001145b620001005760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000124576000805461ff0019166101001790555b620001766040518060400160405280600c81526020016b10dbdb5c1bdd5b990811511560a21b8152506040518060400160405280600481526020016318d1511560e21b8152506200027860201b60201c565b6101c380546001600160a01b0319166001600160a01b0384169081179091556040805163313ce56760e01b815290516008929163313ce5679160048083019260209291908290030181865afa158015620001d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001fa91906200056c565b62000207906012620005a7565b620002139190620005c3565b60ff166101c555801562000261576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50506200079a565b6001600160a01b03163b151590565b600054610100900460ff16620002a25760405162461bcd60e51b8152600401620000f790620005df565b620002ae8282620002c8565b620002b862000314565b620002c482826200034b565b5050565b600054610100900460ff16620002f25760405162461bcd60e51b8152600401620000f790620005df565b60cc620003008382620006ce565b5060cd6200030f8282620006ce565b505050565b600054610100900460ff166200033e5760405162461bcd60e51b8152600401620000f790620005df565b61012d805460ff19169055565b600054610100900460ff16620003755760405162461bcd60e51b8152600401620000f790620005df565b62000388600033620003e0565b620003e0565b620003b47f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620003e0565b620002c47f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3362000382565b620002c48282620003fd82826200042460201b6200136c1760201c565b60008281526097602090815260409091206200030f918390620013f2620004c8821b17901c565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16620002c45760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620004843390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620004df836001600160a01b038416620004e8565b90505b92915050565b60008181526001830160205260408120546200053157508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620004e2565b506000620004e2565b6000602082840312156200054d57600080fd5b81516001600160a01b03811681146200056557600080fd5b9392505050565b6000602082840312156200057f57600080fd5b815160ff811681146200056557600080fd5b634e487b7160e01b600052601160045260246000fd5b60ff8181168382160190811115620004e257620004e262000591565b60ff8281168282160390811115620004e257620004e262000591565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200065557607f821691505b6020821081036200067657634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200030f57600081815260208120601f850160051c81016020861015620006a55750805b601f850160051c820191505b81811015620006c657828155600101620006b1565b505050505050565b81516001600160401b03811115620006ea57620006ea6200062a565b6200070281620006fb845462000640565b846200067c565b602080601f8311600181146200073a5760008415620007215750858301515b600019600386901b1c1916600185901b178555620006c6565b600085815260208120601f198616915b828110156200076b578886015182559484019460019091019084016200074a565b50858210156200078a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61281c80620007aa6000396000f3fe608060405234801561001057600080fd5b50600436106101a15760003560e01c806301ffc9a7146101a657806306fdde03146101ce578063095ea7b3146101e357806318160ddd146101f6578063182df0f51461020857806323b872dd14610211578063248a9ca3146102245780632f2ff15d14610237578063313ce5671461024c57806336568abe1461025b578063395093511461026e5780633f4ba83a1461028157806340c10f191461028957806342966c681461029c5780634cd88b76146102af5780635c975abb146102c257806370a08231146102ce57806379cc6790146102f75780638456cb591461030a578063852a12e3146103125780639010d07c1461032557806391d148541461034557806394dbb50e1461035857806395d89b411461036b578063a0712d6814610373578063a217fddf14610386578063a457c2d71461038e578063a9059cbb146103a1578063bd6d894d146103b4578063ca15c873146103bc578063d5391393146103cf578063d547741f146103e4578063db006a75146103f7578063dd62ed3e1461040a578063e63ab1e91461041d575b600080fd5b6101b96101b4366004612076565b610432565b60405190151581526020015b60405180910390f35b6101d661045d565b6040516101c591906120c4565b6101b96101f1366004612113565b6104ef565b60cb545b6040519081526020016101c5565b6101c4546101fa565b6101b961021f36600461213d565b610507565b6101fa610232366004612179565b61052b565b61024a610245366004612192565b610540565b005b604051600881526020016101c5565b61024a610269366004612192565b610561565b6101b961027c366004612113565b6105e4565b61024a610606565b61024a610297366004612113565b610684565b61024a6102aa366004612179565b6106ff565b61024a6102bd366004612260565b61070c565b61012d5460ff166101b9565b6101fa6102dc3660046122c3565b6001600160a01b0316600090815260c9602052604090205490565b61024a610305366004612113565b610827565b61024a61083c565b6101fa610320366004612179565b6108b6565b6103386103333660046122de565b610bd7565b6040516101c59190612300565b6101b9610353366004612192565b610bf6565b61024a610366366004612179565b610c21565b6101d6610c58565b6101fa610381366004612179565b610c67565b6101fa600081565b6101b961039c366004612113565b610f6f565b6101b96103af366004612113565b610fea565b6101fa610ff8565b6101fa6103ca366004612179565b61102d565b6101fa6000805160206127a783398151915281565b61024a6103f2366004612192565b611044565b6101fa610405366004612179565b611060565b6101fa610418366004612314565b611332565b6101fa60008051602061278783398151915281565b60006001600160e01b03198216635a05180f60e01b1480610457575061045782611407565b92915050565b606060cc805461046c9061233e565b80601f01602080910402602001604051908101604052809291908181526020018280546104989061233e565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050905090565b6000336104fd81858561143c565b5060019392505050565b600033610515858285611560565b6105208585856115da565b506001949350505050565b60009081526065602052604090206001015490565b6105498261052b565b6105528161177e565b61055c8383611788565b505050565b6001600160a01b03811633146105d65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105e082826117aa565b5050565b6000336104fd8185856105f78383611332565b610601919061238e565b61143c565b61061e60008051602061278783398151915233610bf6565b61067a5760405162461bcd60e51b8152602060048201526039602482015260008051602061276783398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b60648201526084016105cd565b6106826117cc565b565b61069c6000805160206127a783398151915233610bf6565b6106f55760405162461bcd60e51b815260206004820152603660248201526000805160206127678339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105cd565b6105e08282611819565b61070933826118d4565b50565b600054610100900460ff161580801561072c5750600054600160ff909116105b8061074d575061073b3061135d565b15801561074d575060005460ff166001145b6107b05760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105cd565b6000805460ff1916600117905580156107d3576000805461ff0019166101001790555b6107dd8383611a02565b801561055c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b610832823383611560565b6105e082826118d4565b61085460008051602061278783398151915233610bf6565b6108ae5760405162461bcd60e51b8152602060048201526037602482015260008051602061276783398151915260448201527676652070617573657220726f6c6520746f20706175736560481b60648201526084016105cd565b610682611a45565b60008060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561090f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093391906123a1565b60ff1610156109c4576101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b491906123a1565b6109bf9060086123c4565b610a3d565b6101c3546040805163313ce56760e01b815290516008926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3391906123a1565b610a3d91906123c4565b60ff169050600060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abe91906123a1565b60ff1610159050600081610b0d576101c4546101c554610adf90600a6124c1565b610aea85600a6124c1565b610af490886124cd565b610afe91906124cd565b610b0891906124ec565b610b49565b6101c4546101c554610b2090600a6124c1565b610b2b85600a6124c1565b610b3590886124ec565b610b3f91906124cd565b610b4991906124ec565b9050610b5533826118d4565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610b88903390899060040161250e565b6020604051808303816000875af1158015610ba7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcb9190612527565b50600095945050505050565b6000828152609760205260408120610bef9083611a83565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610c34670de0b6b3a76400006064611a8f565b610c3e90826124cd565b6101c46000828254610c50919061238e565b909155505050565b606060cd805461046c9061233e565b6101c3546040516323b872dd60e01b8152336004820152306024820152604481018390526000916001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ce49190612527565b50600060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6191906123a1565b60ff161015610df2576101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de291906123a1565b610ded9060086123c4565b610e6b565b6101c3546040805163313ce56760e01b815290516008926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6191906123a1565b610e6b91906123c4565b60ff169050600060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eec91906123a1565b60ff1610159050610f653382610f3d576101c4546101c554610f0f90600a6124c1565b610f1a86600a6124c1565b610f2490896124cd565b610f2e91906124cd565b610f3891906124ec565b611819565b6101c4546101c554610f5090600a6124c1565b610f5b86600a6124c1565b610f2490896124ec565b5060009392505050565b60003381610f7d8286611332565b905083811015610fdd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105cd565b610520828686840361143c565b6000336104fd8185856115da565b600061100d670de0b6b3a76400006064611a8f565b6101c4600082825461101f919061238e565b90915550506101c454919050565b600081815260976020526040812061045790611a9b565b61104d8261052b565b6110568161177e565b61055c83836117aa565b60008060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110dd91906123a1565b60ff16101561116e576101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561113a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061115e91906123a1565b6111699060086123c4565b6111e7565b6101c3546040805163313ce56760e01b815290516008926001600160a01b03169163313ce5679160048083019260209291908290030181865afa1580156111b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111dd91906123a1565b6111e791906123c4565b60ff169050600060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611244573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126891906123a1565b60ff16101590506000816112b7576101c55461128590600a6124c1565b6101c45461129485600a6124c1565b61129e90886124ec565b6112a891906124cd565b6112b291906124ec565b6112f3565b6101c5546112c690600a6124c1565b6101c4546112d585600a6124c1565b6112df90886124cd565b6112e991906124cd565b6112f391906124ec565b90506112ff33866118d4565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610b88903390859060040161250e565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b6001600160a01b03163b151590565b6113768282610bf6565b6105e05760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556113ae3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610bef836001600160a01b038416611aa5565b60006001600160e01b03198216637965db0b60e01b148061045757506301ffc9a760e01b6001600160e01b0319831614610457565b6001600160a01b03831661149e5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105cd565b6001600160a01b0382166114ff5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105cd565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061156c8484611332565b905060001981146115d457818110156115c75760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105cd565b6115d4848484840361143c565b50505050565b6001600160a01b03831661163e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105cd565b6001600160a01b0382166116a05760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105cd565b6116ab838383611af4565b6001600160a01b038316600090815260c96020526040902054818110156117235760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105cd565b6001600160a01b03808516600081815260c9602052604080822086860390559286168082529083902080548601905591516000805160206127c7833981519152906117719086815260200190565b60405180910390a36115d4565b6107098133611aff565b611792828261136c565b600082815260976020526040902061055c90826113f2565b6117b48282611b58565b600082815260976020526040902061055c9082611bbf565b6117d4611bd4565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405161180f9190612300565b60405180910390a1565b6001600160a01b03821661186f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105cd565b61187b60008383611af4565b8060cb600082825461188d919061238e565b90915550506001600160a01b038216600081815260c960209081526040808320805486019055518481526000805160206127c7833981519152910160405180910390a35050565b6001600160a01b0382166119345760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105cd565b61194082600083611af4565b6001600160a01b038216600090815260c96020526040902054818110156119b45760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105cd565b6001600160a01b038316600081815260c960209081526040808320868603905560cb80548790039055518581529192916000805160206127c7833981519152910160405180910390a3505050565b600054610100900460ff16611a295760405162461bcd60e51b81526004016105cd90612549565b611a338282611c1e565b611a3b611c5e565b6105e08282611c92565b611a4d611cf4565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586118023390565b6000610bef8383611d3b565b6000610bef82846124ec565b6000610457825490565b6000818152600183016020526040812054611aec57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610457565b506000610457565b61055c838383611d65565b611b098282610bf6565b6105e057611b1681611dcc565b611b21836020611dde565b604051602001611b32929190612594565b60408051601f198184030181529082905262461bcd60e51b82526105cd916004016120c4565b611b628282610bf6565b156105e05760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610bef836001600160a01b038416611f79565b61012d5460ff166106825760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105cd565b600054610100900460ff16611c455760405162461bcd60e51b81526004016105cd90612549565b60cc611c518382612651565b5060cd61055c8282612651565b600054610100900460ff16611c855760405162461bcd60e51b81526004016105cd90612549565b61012d805460ff19169055565b600054610100900460ff16611cb95760405162461bcd60e51b81526004016105cd90612549565b611cc460003361206c565b611cdc6000805160206127a78339815191523361206c565b6105e06000805160206127878339815191523361206c565b61012d5460ff16156106825760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105cd565b6000826000018281548110611d5257611d52612710565b9060005260206000200154905092915050565b61012d5460ff161561055c5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105cd565b60606104576001600160a01b03831660145b60606000611ded8360026124cd565b611df890600261238e565b6001600160401b03811115611e0f57611e0f6121be565b6040519080825280601f01601f191660200182016040528015611e39576020820181803683370190505b509050600360fc1b81600081518110611e5457611e54612710565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611e8357611e83612710565b60200101906001600160f81b031916908160001a9053506000611ea78460026124cd565b611eb290600161238e565b90505b6001811115611f2a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611ee657611ee6612710565b1a60f81b828281518110611efc57611efc612710565b60200101906001600160f81b031916908160001a90535060049490941c93611f2381612726565b9050611eb5565b508315610bef5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105cd565b60008181526001830160205260408120548015612062576000611f9d60018361273d565b8554909150600090611fb19060019061273d565b9050818114612016576000866000018281548110611fd157611fd1612710565b9060005260206000200154905080876000018481548110611ff457611ff4612710565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061202757612027612750565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610457565b6000915050610457565b6105e08282611788565b60006020828403121561208857600080fd5b81356001600160e01b031981168114610bef57600080fd5b60005b838110156120bb5781810151838201526020016120a3565b50506000910152565b60208152600082518060208401526120e38160408501602087016120a0565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461210e57600080fd5b919050565b6000806040838503121561212657600080fd5b61212f836120f7565b946020939093013593505050565b60008060006060848603121561215257600080fd5b61215b846120f7565b9250612169602085016120f7565b9150604084013590509250925092565b60006020828403121561218b57600080fd5b5035919050565b600080604083850312156121a557600080fd5b823591506121b5602084016120f7565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126121e557600080fd5b81356001600160401b03808211156121ff576121ff6121be565b604051601f8301601f19908116603f01168101908282118183101715612227576122276121be565b8160405283815286602085880101111561224057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561227357600080fd5b82356001600160401b038082111561228a57600080fd5b612296868387016121d4565b935060208501359150808211156122ac57600080fd5b506122b9858286016121d4565b9150509250929050565b6000602082840312156122d557600080fd5b610bef826120f7565b600080604083850312156122f157600080fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6000806040838503121561232757600080fd5b612330836120f7565b91506121b5602084016120f7565b600181811c9082168061235257607f821691505b60208210810361237257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561045757610457612378565b6000602082840312156123b357600080fd5b815160ff81168114610bef57600080fd5b60ff828116828216039081111561045757610457612378565b600181815b808511156124185781600019048211156123fe576123fe612378565b8085161561240b57918102915b93841c93908002906123e2565b509250929050565b60008261242f57506001610457565b8161243c57506000610457565b8160018114612452576002811461245c57612478565b6001915050610457565b60ff84111561246d5761246d612378565b50506001821b610457565b5060208310610133831016604e8410600b841016171561249b575081810a610457565b6124a583836123dd565b80600019048211156124b9576124b9612378565b029392505050565b6000610bef8383612420565b60008160001904831182151516156124e7576124e7612378565b500290565b60008261250957634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03929092168252602082015260400190565b60006020828403121561253957600080fd5b81518015158114610bef57600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516125c68160178501602088016120a0565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516125f78160288401602088016120a0565b01602801949350505050565b601f82111561055c57600081815260208120601f850160051c8101602086101561262a5750805b601f850160051c820191505b8181101561264957828155600101612636565b505050505050565b81516001600160401b0381111561266a5761266a6121be565b61267e81612678845461233e565b84612603565b602080601f8311600181146126b3576000841561269b5750858301515b600019600386901b1c1916600185901b178555612649565b600085815260208120601f198616915b828110156126e2578886015182559484019460019091019084016126c3565b50858210156127005787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60008161273557612735612378565b506000190190565b8181038181111561045757610457612378565b634e487b7160e01b600052603160045260246000fdfe45524332305072657365744d696e7465725061757365723a206d75737420686165d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212204938084b981c69a2f785c653ec540e5d957760c9d105b92fe93da3d95621596f64736f6c63430008100033";
796
+ "0x608060405266470de4df8200006101c45560126101c5553480156200002357600080fd5b5060405162002f6d38038062002f6d8339810160408190526200004691620004ff565b600054610100900460ff1615808015620000675750600054600160ff909116105b80620000835750303b15801562000083575060005460ff166001145b620000ec5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801562000110576000805461ff0019166101001790555b620001626040518060400160405280600c81526020016b10dbdb5c1bdd5b990811511560a21b8152506040518060400160405280600481526020016318d1511560e21b8152506200025560201b60201c565b6101c380546001600160a01b0319166001600160a01b0384169081179091556040805163313ce56760e01b815290516008929163313ce5679160048083019260209291908290030181865afa158015620001c0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e6919062000531565b620001f39060126200056c565b620001ff919062000588565b60ff166101c55580156200024d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50506200075f565b600054610100900460ff166200027f5760405162461bcd60e51b8152600401620000e390620005a4565b6200028b8282620002a5565b62000295620002f1565b620002a1828262000328565b5050565b600054610100900460ff16620002cf5760405162461bcd60e51b8152600401620000e390620005a4565b60cc620002dd838262000693565b5060cd620002ec828262000693565b505050565b600054610100900460ff166200031b5760405162461bcd60e51b8152600401620000e390620005a4565b61012d805460ff19169055565b600054610100900460ff16620003525760405162461bcd60e51b8152600401620000e390620005a4565b62000365600033620003bd565b620003bd565b620003917f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620003bd565b620002a17f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a336200035f565b620002a18282620003cf8282620003e9565b6000828152609760205260409020620002ec90826200048d565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16620002a15760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620004493390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000620004a4836001600160a01b038416620004ad565b90505b92915050565b6000818152600183016020526040812054620004f657508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155620004a7565b506000620004a7565b6000602082840312156200051257600080fd5b81516001600160a01b03811681146200052a57600080fd5b9392505050565b6000602082840312156200054457600080fd5b815160ff811681146200052a57600080fd5b634e487b7160e01b600052601160045260246000fd5b60ff8181168382160190811115620004a757620004a762000556565b60ff8281168282160390811115620004a757620004a762000556565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200061a57607f821691505b6020821081036200063b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002ec57600081815260208120601f850160051c810160208610156200066a5750805b601f850160051c820191505b818110156200068b5782815560010162000676565b505050505050565b81516001600160401b03811115620006af57620006af620005ef565b620006c781620006c0845462000605565b8462000641565b602080601f831160018114620006ff5760008415620006e65750858301515b600019600386901b1c1916600185901b1785556200068b565b600085815260208120601f198616915b8281101562000730578886015182559484019460019091019084016200070f565b50858210156200074f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6127fe806200076f6000396000f3fe608060405234801561001057600080fd5b50600436106101a15760003560e01c806301ffc9a7146101a657806306fdde03146101ce578063095ea7b3146101e357806318160ddd146101f6578063182df0f51461020857806323b872dd14610211578063248a9ca3146102245780632f2ff15d14610237578063313ce5671461024c57806336568abe1461025b578063395093511461026e5780633f4ba83a1461028157806340c10f191461028957806342966c681461029c5780634cd88b76146102af5780635c975abb146102c257806370a08231146102ce57806379cc6790146102f75780638456cb591461030a578063852a12e3146103125780639010d07c1461032557806391d148541461034557806394dbb50e1461035857806395d89b411461036b578063a0712d6814610373578063a217fddf14610386578063a457c2d71461038e578063a9059cbb146103a1578063bd6d894d146103b4578063ca15c873146103bc578063d5391393146103cf578063d547741f146103e4578063db006a75146103f7578063dd62ed3e1461040a578063e63ab1e91461041d575b600080fd5b6101b96101b4366004612060565b610432565b60405190151581526020015b60405180910390f35b6101d661045d565b6040516101c591906120ae565b6101b96101f13660046120fd565b6104ef565b60cb545b6040519081526020016101c5565b6101c4546101fa565b6101b961021f366004612127565b610507565b6101fa610232366004612163565b61052b565b61024a61024536600461217c565b610540565b005b604051600881526020016101c5565b61024a61026936600461217c565b610561565b6101b961027c3660046120fd565b6105e4565b61024a610606565b61024a6102973660046120fd565b610684565b61024a6102aa366004612163565b6106ff565b61024a6102bd36600461224a565b61070c565b61012d5460ff166101b9565b6101fa6102dc3660046122ad565b6001600160a01b0316600090815260c9602052604090205490565b61024a6103053660046120fd565b610820565b61024a610835565b6101fa610320366004612163565b6108af565b6103386103333660046122c8565b610bd0565b6040516101c591906122ea565b6101b961035336600461217c565b610bef565b61024a610366366004612163565b610c1a565b6101d6610c51565b6101fa610381366004612163565b610c60565b6101fa600081565b6101b961039c3660046120fd565b610f68565b6101b96103af3660046120fd565b610fe3565b6101fa610ff1565b6101fa6103ca366004612163565b611026565b6101fa60008051602061278983398151915281565b61024a6103f236600461217c565b61103d565b6101fa610405366004612163565b611059565b6101fa6104183660046122fe565b61132b565b6101fa60008051602061276983398151915281565b60006001600160e01b03198216635a05180f60e01b1480610457575061045782611356565b92915050565b606060cc805461046c90612328565b80601f016020809104026020016040519081016040528092919081815260200182805461049890612328565b80156104e55780601f106104ba576101008083540402835291602001916104e5565b820191906000526020600020905b8154815290600101906020018083116104c857829003601f168201915b5050505050905090565b6000336104fd81858561138b565b5060019392505050565b6000336105158582856114af565b610520858585611529565b506001949350505050565b60009081526065602052604090206001015490565b6105498261052b565b610552816116cd565b61055c83836116d7565b505050565b6001600160a01b03811633146105d65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b6105e082826116f9565b5050565b6000336104fd8185856105f7838361132b565b6106019190612378565b61138b565b61061e60008051602061276983398151915233610bef565b61067a5760405162461bcd60e51b8152602060048201526039602482015260008051602061274983398151915260448201527876652070617573657220726f6c6520746f20756e706175736560381b60648201526084016105cd565b61068261171b565b565b61069c60008051602061278983398151915233610bef565b6106f55760405162461bcd60e51b815260206004820152603660248201526000805160206127498339815191526044820152751d99481b5a5b9d195c881c9bdb19481d1bc81b5a5b9d60521b60648201526084016105cd565b6105e08282611768565b6107093382611823565b50565b600054610100900460ff161580801561072c5750600054600160ff909116105b806107465750303b158015610746575060005460ff166001145b6107a95760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016105cd565b6000805460ff1916600117905580156107cc576000805461ff0019166101001790555b6107d68383611951565b801561055c576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b61082b8233836114af565b6105e08282611823565b61084d60008051602061276983398151915233610bef565b6108a75760405162461bcd60e51b8152602060048201526037602482015260008051602061274983398151915260448201527676652070617573657220726f6c6520746f20706175736560481b60648201526084016105cd565b610682611994565b60008060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610908573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092c919061238b565b60ff1610156109bd576101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610989573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ad919061238b565b6109b89060086123ae565b610a36565b6101c3546040805163313ce56760e01b815290516008926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610a08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2c919061238b565b610a3691906123ae565b60ff169050600060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ab7919061238b565b60ff1610159050600081610b06576101c4546101c554610ad890600a6124ab565b610ae385600a6124ab565b610aed90886124b7565b610af791906124b7565b610b0191906124ce565b610b42565b6101c4546101c554610b1990600a6124ab565b610b2485600a6124ab565b610b2e90886124ce565b610b3891906124b7565b610b4291906124ce565b9050610b4e3382611823565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610b8190339089906004016124f0565b6020604051808303816000875af1158015610ba0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bc49190612509565b50600095945050505050565b6000828152609760205260408120610be890836119d2565b9392505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610c2d670de0b6b3a764000060646119de565b610c3790826124b7565b6101c46000828254610c499190612378565b909155505050565b606060cd805461046c90612328565b6101c3546040516323b872dd60e01b8152336004820152306024820152604481018390526000916001600160a01b0316906323b872dd906064016020604051808303816000875af1158015610cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdd9190612509565b50600060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5a919061238b565b60ff161015610deb576101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddb919061238b565b610de69060086123ae565b610e64565b6101c3546040805163313ce56760e01b815290516008926001600160a01b03169163313ce5679160048083019260209291908290030181865afa158015610e36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e5a919061238b565b610e6491906123ae565b60ff169050600060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ec1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ee5919061238b565b60ff1610159050610f5e3382610f36576101c4546101c554610f0890600a6124ab565b610f1386600a6124ab565b610f1d90896124b7565b610f2791906124b7565b610f3191906124ce565b611768565b6101c4546101c554610f4990600a6124ab565b610f5486600a6124ab565b610f1d90896124ce565b5060009392505050565b60003381610f76828661132b565b905083811015610fd65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105cd565b610520828686840361138b565b6000336104fd818585611529565b6000611006670de0b6b3a764000060646119de565b6101c460008282546110189190612378565b90915550506101c454919050565b6000818152609760205260408120610457906119ea565b6110468261052b565b61104f816116cd565b61055c83836116f9565b60008060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d6919061238b565b60ff161015611167576101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611133573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611157919061238b565b6111629060086123ae565b6111e0565b6101c3546040805163313ce56760e01b815290516008926001600160a01b03169163313ce5679160048083019260209291908290030181865afa1580156111b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d6919061238b565b6111e091906123ae565b60ff169050600060086101c360009054906101000a90046001600160a01b03166001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611261919061238b565b60ff16101590506000816112b0576101c55461127e90600a6124ab565b6101c45461128d85600a6124ab565b61129790886124ce565b6112a191906124b7565b6112ab91906124ce565b6112ec565b6101c5546112bf90600a6124ab565b6101c4546112ce85600a6124ab565b6112d890886124b7565b6112e291906124b7565b6112ec91906124ce565b90506112f83386611823565b6101c35460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610b8190339085906004016124f0565b6001600160a01b03918216600090815260ca6020908152604080832093909416825291909152205490565b60006001600160e01b03198216637965db0b60e01b148061045757506301ffc9a760e01b6001600160e01b0319831614610457565b6001600160a01b0383166113ed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105cd565b6001600160a01b03821661144e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105cd565b6001600160a01b03838116600081815260ca602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006114bb848461132b565b9050600019811461152357818110156115165760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105cd565b611523848484840361138b565b50505050565b6001600160a01b03831661158d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105cd565b6001600160a01b0382166115ef5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105cd565b6115fa8383836119f4565b6001600160a01b038316600090815260c96020526040902054818110156116725760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105cd565b6001600160a01b03808516600081815260c9602052604080822086860390559286168082529083902080548601905591516000805160206127a9833981519152906116c09086815260200190565b60405180910390a3611523565b61070981336119ff565b6116e18282611a58565b600082815260976020526040902061055c9082611ade565b6117038282611af3565b600082815260976020526040902061055c9082611b5a565b611723611b6f565b61012d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405161175e91906122ea565b60405180910390a1565b6001600160a01b0382166117be5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105cd565b6117ca600083836119f4565b8060cb60008282546117dc9190612378565b90915550506001600160a01b038216600081815260c960209081526040808320805486019055518481526000805160206127a9833981519152910160405180910390a35050565b6001600160a01b0382166118835760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105cd565b61188f826000836119f4565b6001600160a01b038216600090815260c96020526040902054818110156119035760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105cd565b6001600160a01b038316600081815260c960209081526040808320868603905560cb80548790039055518581529192916000805160206127a9833981519152910160405180910390a3505050565b600054610100900460ff166119785760405162461bcd60e51b81526004016105cd9061252b565b6119828282611bb9565b61198a611bf9565b6105e08282611c2d565b61199c611c8f565b61012d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586117513390565b6000610be88383611cd6565b6000610be882846124ce565b6000610457825490565b61055c838383611d00565b611a098282610bef565b6105e057611a1681611d67565b611a21836020611d79565b604051602001611a32929190612576565b60408051601f198184030181529082905262461bcd60e51b82526105cd916004016120ae565b611a628282610bef565b6105e05760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611a9a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610be8836001600160a01b038416611f14565b611afd8282610bef565b156105e05760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610be8836001600160a01b038416611f63565b61012d5460ff166106825760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016105cd565b600054610100900460ff16611be05760405162461bcd60e51b81526004016105cd9061252b565b60cc611bec8382612633565b5060cd61055c8282612633565b600054610100900460ff16611c205760405162461bcd60e51b81526004016105cd9061252b565b61012d805460ff19169055565b600054610100900460ff16611c545760405162461bcd60e51b81526004016105cd9061252b565b611c5f600033612056565b611c7760008051602061278983398151915233612056565b6105e060008051602061276983398151915233612056565b61012d5460ff16156106825760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016105cd565b6000826000018281548110611ced57611ced6126f2565b9060005260206000200154905092915050565b61012d5460ff161561055c5760405162461bcd60e51b815260206004820152602a60248201527f45524332305061757361626c653a20746f6b656e207472616e736665722077686044820152691a5b19481c185d5cd95960b21b60648201526084016105cd565b60606104576001600160a01b03831660145b60606000611d888360026124b7565b611d93906002612378565b6001600160401b03811115611daa57611daa6121a8565b6040519080825280601f01601f191660200182016040528015611dd4576020820181803683370190505b509050600360fc1b81600081518110611def57611def6126f2565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611e1e57611e1e6126f2565b60200101906001600160f81b031916908160001a9053506000611e428460026124b7565b611e4d906001612378565b90505b6001811115611ec5576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611e8157611e816126f2565b1a60f81b828281518110611e9757611e976126f2565b60200101906001600160f81b031916908160001a90535060049490941c93611ebe81612708565b9050611e50565b508315610be85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105cd565b6000818152600183016020526040812054611f5b57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610457565b506000610457565b6000818152600183016020526040812054801561204c576000611f8760018361271f565b8554909150600090611f9b9060019061271f565b9050818114612000576000866000018281548110611fbb57611fbb6126f2565b9060005260206000200154905080876000018481548110611fde57611fde6126f2565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061201157612011612732565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610457565b6000915050610457565b6105e082826116d7565b60006020828403121561207257600080fd5b81356001600160e01b031981168114610be857600080fd5b60005b838110156120a557818101518382015260200161208d565b50506000910152565b60208152600082518060208401526120cd81604085016020870161208a565b601f01601f19169190910160400192915050565b80356001600160a01b03811681146120f857600080fd5b919050565b6000806040838503121561211057600080fd5b612119836120e1565b946020939093013593505050565b60008060006060848603121561213c57600080fd5b612145846120e1565b9250612153602085016120e1565b9150604084013590509250925092565b60006020828403121561217557600080fd5b5035919050565b6000806040838503121561218f57600080fd5b8235915061219f602084016120e1565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126121cf57600080fd5b81356001600160401b03808211156121e9576121e96121a8565b604051601f8301601f19908116603f01168101908282118183101715612211576122116121a8565b8160405283815286602085880101111561222a57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806040838503121561225d57600080fd5b82356001600160401b038082111561227457600080fd5b612280868387016121be565b9350602085013591508082111561229657600080fd5b506122a3858286016121be565b9150509250929050565b6000602082840312156122bf57600080fd5b610be8826120e1565b600080604083850312156122db57600080fd5b50508035926020909101359150565b6001600160a01b0391909116815260200190565b6000806040838503121561231157600080fd5b61231a836120e1565b915061219f602084016120e1565b600181811c9082168061233c57607f821691505b60208210810361235c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b8082018082111561045757610457612362565b60006020828403121561239d57600080fd5b815160ff81168114610be857600080fd5b60ff828116828216039081111561045757610457612362565b600181815b808511156124025781600019048211156123e8576123e8612362565b808516156123f557918102915b93841c93908002906123cc565b509250929050565b60008261241957506001610457565b8161242657506000610457565b816001811461243c576002811461244657612462565b6001915050610457565b60ff84111561245757612457612362565b50506001821b610457565b5060208310610133831016604e8410600b8410161715612485575081810a610457565b61248f83836123c7565b80600019048211156124a3576124a3612362565b029392505050565b6000610be8838361240a565b808202811582820484141761045757610457612362565b6000826124eb57634e487b7160e01b600052601260045260246000fd5b500490565b6001600160a01b03929092168252602082015260400190565b60006020828403121561251b57600080fd5b81518015158114610be857600080fd5b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516125a881601785016020880161208a565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516125d981602884016020880161208a565b01602801949350505050565b601f82111561055c57600081815260208120601f850160051c8101602086101561260c5750805b601f850160051c820191505b8181101561262b57828155600101612618565b505050505050565b81516001600160401b0381111561264c5761264c6121a8565b6126608161265a8454612328565b846125e5565b602080601f831160018114612695576000841561267d5750858301515b600019600386901b1c1916600185901b17855561262b565b600085815260208120601f198616915b828110156126c4578886015182559484019460019091019084016126a5565b50858210156126e25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60008161271757612717612362565b506000190190565b8181038181111561045757610457612362565b634e487b7160e01b600052603160045260246000fdfe45524332305072657365744d696e7465725061757365723a206d75737420686165d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202bfc33f96909770188c03cbee50cfc97b5e857bbb58ef74f88b56d408c70ff8664736f6c63430008130033";
797
797
 
798
798
  type CDecimalsMockConstructorParams =
799
799
  | [signer?: Signer]