@gooddollar/goodprotocol 1.0.30-beta.2 → 1.0.30-beta.3

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 (727) hide show
  1. package/README.md +25 -0
  2. package/artifacts/abis/AaveMock.min.json +1 -1
  3. package/artifacts/abis/AaveStakingFactory.min.json +1 -1
  4. package/artifacts/abis/AdminWallet.min.json +1 -1
  5. package/artifacts/abis/BuyAndBridgeHelper.min.json +1 -0
  6. package/artifacts/abis/ClaimersDistribution.min.json +1 -1
  7. package/artifacts/abis/CompoundStakingFactory.min.json +1 -1
  8. package/artifacts/abis/CompoundVotingMachine.min.json +1 -1
  9. package/artifacts/abis/DAIMock.min.json +1 -1
  10. package/artifacts/abis/DAOUpgradeableContract.min.json +1 -1
  11. package/artifacts/abis/DecimalsMock.min.json +1 -1
  12. package/artifacts/abis/DistributionHelper.min.json +1 -1
  13. package/artifacts/abis/DistributionHelperTest.min.json +1 -1
  14. package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -1
  15. package/artifacts/abis/DonationsStaking.min.json +1 -1
  16. package/artifacts/abis/ERC20Permit.min.json +1 -0
  17. package/artifacts/abis/ERC20PresetMinterPauserUpgradeable.min.json +1 -0
  18. package/artifacts/abis/ERC677.min.json +1 -0
  19. package/artifacts/abis/ERC677Receiver.min.json +1 -0
  20. package/artifacts/abis/ExchangeHelper.min.json +1 -1
  21. package/artifacts/abis/Faucet.min.json +1 -0
  22. package/artifacts/abis/FeesFormulaMock.min.json +1 -0
  23. package/artifacts/abis/FuseFaucet.min.json +1 -1
  24. package/artifacts/abis/FuseStakingV3.min.json +1 -1
  25. package/artifacts/abis/GReputation.min.json +1 -1
  26. package/artifacts/abis/GoodAaveStaking.min.json +1 -1
  27. package/artifacts/abis/GoodAaveStakingV2.min.json +1 -1
  28. package/artifacts/abis/GoodCompoundStaking.min.json +1 -1
  29. package/artifacts/abis/GoodCompoundStakingTest.min.json +1 -1
  30. package/artifacts/abis/GoodCompoundStakingV2.min.json +1 -1
  31. package/artifacts/abis/GoodDollar.min.json +1 -0
  32. package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +1 -1
  33. package/artifacts/abis/GoodDollarStaking.min.json +1 -1
  34. package/artifacts/abis/GoodDollarStakingMock.min.json +1 -1
  35. package/artifacts/abis/GoodFundManager.min.json +1 -1
  36. package/artifacts/abis/GoodFundManagerTest.min.json +1 -1
  37. package/artifacts/abis/GoodMarketMaker.min.json +1 -1
  38. package/artifacts/abis/GoodReserveCDai.min.json +1 -1
  39. package/artifacts/abis/GovernanceStaking.min.json +1 -1
  40. package/artifacts/abis/IFeesFormula.min.json +1 -0
  41. package/artifacts/abis/IGoodDollar.min.json +1 -1
  42. package/artifacts/abis/IGoodDollarCustom.min.json +1 -0
  43. package/artifacts/abis/IGovernanceStaking.min.json +1 -0
  44. package/artifacts/abis/IIdentity.min.json +1 -1
  45. package/artifacts/abis/IIdentityV2.min.json +1 -0
  46. package/artifacts/abis/IStakingUpgrade.min.json +1 -0
  47. package/artifacts/abis/ISuperGoodDollar.min.json +1 -0
  48. package/artifacts/abis/IdentityMock.min.json +1 -0
  49. package/artifacts/abis/IdentityV2.min.json +1 -0
  50. package/artifacts/abis/InvitesV1.min.json +1 -1
  51. package/artifacts/abis/InvitesV2.min.json +1 -0
  52. package/artifacts/abis/LendingPoolMock.min.json +1 -1
  53. package/artifacts/abis/NameService.min.json +1 -1
  54. package/artifacts/abis/PayableMock.min.json +1 -0
  55. package/artifacts/abis/Proxy.min.json +1 -0
  56. package/artifacts/abis/Reputation.min.json +1 -1
  57. package/artifacts/abis/SelfApprove.min.json +1 -0
  58. package/artifacts/abis/SimpleStaking.min.json +1 -1
  59. package/artifacts/abis/SimpleStakingV2.min.json +1 -1
  60. package/artifacts/abis/SixteenDecimalsTokenMock.min.json +1 -1
  61. package/artifacts/abis/StakersDistribution.min.json +1 -1
  62. package/artifacts/abis/SuperGoodDollar.min.json +1 -0
  63. package/artifacts/abis/SuperToken.min.json +1 -0
  64. package/artifacts/abis/SuperfluidToken.min.json +1 -0
  65. package/artifacts/abis/TwentyDecimalsTokenMock.min.json +1 -1
  66. package/artifacts/abis/UBIScheme.min.json +1 -1
  67. package/artifacts/abis/USDCMock.min.json +1 -1
  68. package/artifacts/abis/UUPSProxiable.min.json +1 -0
  69. package/artifacts/abis/UUPSProxy.min.json +1 -0
  70. package/artifacts/abis/UUPSUtils.min.json +1 -0
  71. package/artifacts/abis/UpgradableMock.min.json +1 -1
  72. package/artifacts/abis/UpgradableMock2.min.json +1 -1
  73. package/artifacts/abis/UpgradableMock3.min.json +1 -1
  74. package/artifacts/abis/UpgradableMock4.min.json +1 -1
  75. package/artifacts/abis/cBATMock.min.json +1 -1
  76. package/artifacts/abis/cDAILowWorthMock.min.json +1 -1
  77. package/artifacts/abis/cDAIMock.min.json +1 -1
  78. package/artifacts/abis/cDAINonMintableMock.min.json +1 -1
  79. package/artifacts/abis/cDecimalsMock.min.json +1 -1
  80. package/artifacts/abis/cSDTMock.min.json +1 -1
  81. package/artifacts/abis/cUSDCMock.min.json +1 -1
  82. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  83. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  84. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  85. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  86. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  87. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  88. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  89. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  90. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  91. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  92. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  93. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  94. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  95. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  96. package/artifacts/contracts/Interfaces.sol/IGoodDollar.json +184 -0
  97. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  98. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  99. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  100. package/artifacts/contracts/Interfaces.sol/IIdentity.json +70 -0
  101. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
  102. package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +300 -0
  103. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  104. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  105. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  106. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  107. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  108. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  109. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  110. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  111. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  112. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  113. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  114. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +4 -0
  115. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +736 -0
  116. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  117. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +15 -2
  118. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  119. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +28 -2
  120. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  121. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +28 -2
  122. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  123. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +78 -3
  124. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  125. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +71 -2
  126. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +4 -0
  127. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.json +24 -0
  128. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +4 -0
  129. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.json +35 -0
  130. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  131. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  132. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +31 -5
  133. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  134. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  135. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +28 -2
  136. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  137. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +28 -2
  138. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +4 -0
  139. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +1081 -0
  140. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  141. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +15 -2
  142. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +4 -0
  143. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +640 -0
  144. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  145. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.json +18 -5
  146. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  147. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.json +2 -2
  148. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  149. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.json +2 -2
  150. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  151. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.json +2 -2
  152. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  153. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.json +18 -5
  154. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  155. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.json +2 -2
  156. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  157. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.json +18 -5
  158. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  159. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +2 -2
  160. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  161. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +35 -2
  162. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  163. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +35 -2
  164. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  165. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.json +2 -2
  166. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +4 -0
  167. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.json +69 -0
  168. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  169. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.json +2 -2
  170. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  171. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +22 -9
  172. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  173. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +95 -2
  174. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  175. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +28 -2
  176. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +4 -0
  177. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.json +277 -0
  178. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  179. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.json +2 -2
  180. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  181. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.json +18 -5
  182. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  183. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  184. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +2 -2
  185. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  186. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  187. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +2 -2
  188. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  189. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  190. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +4 -0
  191. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.json +18 -0
  192. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  193. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.json +18 -5
  194. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  195. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +2 -2
  196. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  197. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  198. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  199. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.json +18 -5
  200. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  201. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +28 -2
  202. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  203. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +28 -2
  204. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  205. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +28 -2
  206. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  207. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +28 -2
  208. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  209. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.json +18 -5
  210. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  211. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.json +18 -5
  212. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  213. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.json +18 -5
  214. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  215. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.json +18 -5
  216. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  217. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.json +18 -5
  218. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  219. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.json +18 -5
  220. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  221. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.json +18 -5
  222. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  223. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.json +18 -5
  224. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  225. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +35 -2
  226. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  227. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +28 -2
  228. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  229. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +28 -2
  230. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  231. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  232. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +37 -5
  233. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  234. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  235. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  236. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  237. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  238. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +32 -6
  239. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  240. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +44 -83
  241. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  242. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  243. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  244. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +28 -2
  245. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  246. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.json +16 -3
  247. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  248. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.json +16 -3
  249. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  250. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  251. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  252. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +3 -3
  253. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  254. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +20 -7
  255. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  256. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +20 -7
  257. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  258. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +4 -4
  259. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  260. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +22 -9
  261. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  262. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +22 -9
  263. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  264. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +2 -2
  265. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  266. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +4 -0
  267. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.json +768 -0
  268. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +4 -0
  269. package/artifacts/contracts/token/ERC677.sol/ERC677.json +66 -0
  270. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +4 -0
  271. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.json +40 -0
  272. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +4 -0
  273. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.json +45 -0
  274. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +4 -0
  275. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.json +1206 -0
  276. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +4 -0
  277. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.json +99 -0
  278. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +4 -0
  279. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.json +34 -0
  280. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +4 -0
  281. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.json +355 -0
  282. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +4 -0
  283. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.json +2132 -0
  284. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +4 -0
  285. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2590 -0
  286. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +4 -0
  287. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.json +1759 -0
  288. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +4 -0
  289. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.json +682 -0
  290. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +4 -0
  291. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.json +89 -0
  292. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +4 -0
  293. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.json +19 -0
  294. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +4 -0
  295. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.json +32 -0
  296. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +4 -0
  297. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.json +10 -0
  298. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  299. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +41 -22
  300. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  301. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +94 -48
  302. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  303. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.json +2 -2
  304. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  305. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +2 -2
  306. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +4 -0
  307. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.json +184 -0
  308. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  309. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  310. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  311. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +28 -2
  312. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  313. package/artifacts/contracts/utils/DSMath.sol/DSMath.json +2 -2
  314. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  315. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.json +2 -2
  316. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  317. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +35 -2
  318. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  319. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  320. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  321. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +2 -2
  322. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  323. package/artifacts/contracts/utils/MultiCall.sol/Multicall.json +2 -2
  324. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  325. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +2 -2
  326. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  327. package/artifacts/contracts/utils/NameService.sol/NameService.json +28 -2
  328. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  329. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  330. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  331. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  332. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  333. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  334. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  335. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  336. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  337. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  338. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.json +2 -2
  339. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  340. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.json +2 -2
  341. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  342. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  343. package/contracts/Interfaces.sol +57 -3
  344. package/contracts/fuseFaucet/Faucet.sol +258 -0
  345. package/contracts/fuseFaucet/FuseFaucet.sol +1 -2
  346. package/contracts/governance/GReputation.sol +104 -16
  347. package/contracts/governance/GoodDollarStaking.sol +139 -53
  348. package/contracts/governance/GovernanceStaking.sol +2 -2
  349. package/contracts/identity/IdentityV2.sol +559 -0
  350. package/contracts/invite/InvitesV1.sol +6 -24
  351. package/contracts/invite/InvitesV2.sol +338 -0
  352. package/contracts/mocks/AaveMock.sol +1 -1
  353. package/contracts/mocks/DAIMock.sol +1 -1
  354. package/contracts/mocks/DecimalsMock.sol +1 -1
  355. package/contracts/mocks/FeesFormularMock.sol +21 -0
  356. package/contracts/mocks/GoodDollarStakingMock.sol +16 -0
  357. package/contracts/mocks/GoodFundManagerTest.sol +1 -1
  358. package/contracts/mocks/IdentityMock.sol +58 -0
  359. package/contracts/mocks/LendingPoolMock.sol +1 -1
  360. package/contracts/mocks/PayableMock.sol +3 -0
  361. package/contracts/mocks/SixteenDecimalsTokenMock.sol +1 -6
  362. package/contracts/mocks/TwentyDecimalsTokenMock.sol +1 -6
  363. package/contracts/mocks/UpgradableMocks.sol +5 -3
  364. package/contracts/mocks/UsdcMock.sol +1 -6
  365. package/contracts/mocks/cBATMock.sol +7 -12
  366. package/contracts/mocks/cDAILowWorthMock.sol +8 -12
  367. package/contracts/mocks/cDAIMock.sol +1 -1
  368. package/contracts/mocks/cDAINonMintableMock.sol +7 -12
  369. package/contracts/mocks/cDecimalsMock.sol +1 -1
  370. package/contracts/mocks/cSDTMock.sol +3 -3
  371. package/contracts/mocks/cUSDCMock.sol +5 -5
  372. package/contracts/reserve/DistributionHelper.sol +5 -1
  373. package/contracts/reserve/GoodReserveCDai.sol +15 -5
  374. package/contracts/staking/FuseStakingV3.sol +42 -112
  375. package/contracts/staking/GoodFundManager.sol +2 -2
  376. package/contracts/token/ERC20PresetMinterPauserUpgradeable.sol +140 -0
  377. package/contracts/token/ERC677.sol +74 -0
  378. package/contracts/token/FeesFormula.sol +10 -0
  379. package/contracts/token/GoodDollar.sol +234 -0
  380. package/contracts/token/superfluid/ERC20Permit.sol +101 -0
  381. package/contracts/token/superfluid/ISuperGoodDollar.sol +84 -0
  382. package/contracts/token/superfluid/SuperGoodDollar.sol +348 -0
  383. package/contracts/token/superfluid/SuperToken.sol +712 -0
  384. package/contracts/token/superfluid/SuperfluidToken.sol +402 -0
  385. package/contracts/token/superfluid/UUPSProxiable.sol +55 -0
  386. package/contracts/token/superfluid/UUPSProxy.sol +153 -0
  387. package/contracts/ubi/UBIScheme.sol +88 -68
  388. package/contracts/utils/AdminWallet.sol +42 -11
  389. package/contracts/utils/BuyAndBridgeHelper.sol +108 -0
  390. package/contracts/utils/GoodDollarMintBurnWrapper.sol +19 -1
  391. package/hardhat.config.ts +60 -9
  392. package/package.json +19 -10
  393. package/releases/deploy-settings.json +47 -3
  394. package/releases/deployment.json +67 -196
  395. package/scripts/analytics/activeWalletsStats.ts +4 -0
  396. package/scripts/analytics/gdinflow.ts +3 -0
  397. package/scripts/analytics/p2pTxs.ts +582 -0
  398. package/scripts/analytics/tokenInOutStats.ts +3 -1
  399. package/scripts/deployFullDAO.ts +39 -19
  400. package/scripts/deployGnosisSafe.ts +21 -21
  401. package/scripts/gdx/gdxAirdropCalculation.ts +11 -12
  402. package/scripts/governance/airdropCalculationRecover.ts +43 -33
  403. package/scripts/governance/airdropCalculationSorted.ts +438 -0
  404. package/scripts/governance/goodCheckpointSorted.ts +377 -0
  405. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +100 -0
  406. package/scripts/multichain-deploy/{basicdao-deploy.ts → 1_basicdao-deploy.ts} +123 -93
  407. package/scripts/multichain-deploy/2_helpers-deploy.ts +152 -0
  408. package/scripts/multichain-deploy/{gdSavings-deploy.ts → 3_gdSavings-deploy.ts} +106 -76
  409. package/scripts/multichain-deploy/4_ubi-deploy.ts +147 -0
  410. package/scripts/multichain-deploy/5_gov-deploy.ts +147 -0
  411. package/scripts/multichain-deploy/fulldeploy.sh +26 -0
  412. package/scripts/multichain-deploy/helpers.ts +205 -7
  413. package/scripts/multichain-deploy/verifyEtherscan.ts +197 -0
  414. package/scripts/staking/stakersGdRewardsCalculation.ts +57 -46
  415. package/scripts/test/localOldDaoDeploy.ts +10 -3
  416. package/scripts/upgradeToV3/v3-fix.ts +120 -0
  417. package/scripts/upgradeToV3/v3-upgrade.ts +219 -0
  418. package/scripts/upgrades/celo-deploy.ts +6 -0
  419. package/scripts/upgrades/identity-upgrade.ts +153 -0
  420. package/scripts/{multichain-deploy → upgrades}/nonubiDistribution-deploy.ts +2 -5
  421. package/scripts/upgrades/transferDaoToGuardians.ts +80 -0
  422. package/test/faucet/Faucet.test.ts +184 -0
  423. package/test/{FuseFaucet.test.ts → faucet/FuseFaucet.test.ts} +4 -3
  424. package/test/governance/ClaimersDistribution.test.ts +58 -6
  425. package/test/governance/CompoundVotingMachine.castvote.test.ts +3 -3
  426. package/test/governance/CompoundVotingMachine.crossblockchain.ts +3 -2
  427. package/test/governance/CompoundVotingMachine.daoscheme.ts +8 -10
  428. package/test/governance/CompoundVotingMachine.delegate.test.ts +4 -5
  429. package/test/governance/CompoundVotingMachine.guardian.test.ts +5 -11
  430. package/test/governance/CompoundVotingMachine.propose.test.ts +3 -2
  431. package/test/governance/CompoundVotingMachine.state.test.ts +3 -2
  432. package/test/governance/GReputation.test.ts +78 -32
  433. package/test/governance/GReputation.v2merkle.test.ts +186 -0
  434. package/test/governance/GoodDollarStaking.gd.test.ts +83 -1
  435. package/test/governance/GoodDollarStaking.good.test.ts +2 -1
  436. package/test/governance/GovernanceStaking.test.ts +4 -4
  437. package/test/governance/Reputation.test.ts +2 -1
  438. package/test/governance/StakersDistribution.test.ts +26 -13
  439. package/test/helpers.ts +145 -52
  440. package/test/identity/IdentityV2.test.ts +539 -0
  441. package/test/{InvitesV1.test.ts → invite/InvitesV1.test.ts} +10 -5
  442. package/test/invite/InvitesV2.test.ts +499 -0
  443. package/test/reserve/DistributionHelper.test.ts +2 -1
  444. package/test/reserve/GoodMarketMaker.test.ts +20 -19
  445. package/test/reserve/GoodReserveCDai.cap.test.ts +8 -1
  446. package/test/reserve/GoodReserveCDai.distribution.test.ts +2 -1
  447. package/test/reserve/GoodReserveCDai.gdx.test.ts +2 -2
  448. package/test/reserve/GoodReserveCDai.pause.test.ts +2 -1
  449. package/test/reserve/GoodReserveCDai.test.ts +14 -38
  450. package/test/reserve/GoodReserveCDai.uniswap.test.ts +21 -19
  451. package/test/staking/CompoundStakingFactory.test.ts +8 -5
  452. package/test/staking/DifferentStakingTokens.test.ts +3 -2
  453. package/test/staking/DonationsStaking.test.ts +33 -24
  454. package/test/staking/FuseStaking.test.ts +11 -13
  455. package/test/staking/GoodAaveStakingFactory.test.ts +36 -31
  456. package/test/staking/SimpleDAIStaking.test.ts +13 -19
  457. package/test/staking/StakingRewards.test.ts +32 -32
  458. package/test/staking/StakingRewardsFixedAPY.test.ts +2 -1
  459. package/test/staking/SwapHelper.test.ts +20 -17
  460. package/test/staking/UsdcAaveStaking.test.ts +36 -33
  461. package/test/token/GoodDollar.test.ts +342 -0
  462. package/test/token/SuperGoodDollar.test.ts +422 -0
  463. package/test/ubi/UBIScheme.e2e.test.ts +6 -5
  464. package/test/ubi/UBIScheme.test.ts +37 -36
  465. package/test/ubi/UBISchemeCycle.test.ts +11 -8
  466. package/test/utils/AdminWallet.test.ts +34 -11
  467. package/test/utils/BuyAndBridgeHelper.test.ts +249 -0
  468. package/test/utils/DAOUpgradeableContract.test.ts +3 -2
  469. package/test/utils/GoodDollarMintBurnWrapper.test.ts +3 -2
  470. package/test/utils/NameService.test.ts +37 -21
  471. package/test/utils/ProtocolUpgrade.test.ts +1 -1
  472. package/test/utils/ProxyFactory.test.ts +12 -10
  473. package/truffle-config.js +13 -4
  474. package/types/AaveMock.ts +24 -15
  475. package/types/AccessControlEnumerableUpgradeable.ts +9 -0
  476. package/types/AccessControlUpgradeable.ts +9 -0
  477. package/types/AdminWallet.ts +149 -110
  478. package/types/BuyAndBridgeHelper.ts +279 -0
  479. package/types/CBATMock.ts +24 -15
  480. package/types/CDAILowWorthMock.ts +24 -15
  481. package/types/CDAIMock.ts +24 -15
  482. package/types/CDAINonMintableMock.ts +24 -15
  483. package/types/CDecimalsMock.ts +24 -15
  484. package/types/CSDTMock.ts +24 -15
  485. package/types/CUSDCMock.ts +24 -15
  486. package/types/ClaimersDistribution.ts +28 -0
  487. package/types/CompoundVotingMachine.ts +28 -0
  488. package/types/ContextUpgradeable.ts +77 -0
  489. package/types/DAIMock.ts +24 -15
  490. package/types/DAOUpgradeableContract.ts +28 -0
  491. package/types/DecimalsMock.ts +24 -15
  492. package/types/DistributionHelper.ts +55 -0
  493. package/types/DistributionHelperTest.ts +55 -0
  494. package/types/DistributionHelperTestHelper.ts +55 -0
  495. package/types/DonationsStaking.ts +28 -0
  496. package/types/EIP712Upgradeable.ts +77 -0
  497. package/types/ERC165Upgradeable.ts +13 -2
  498. package/types/ERC1967UpgradeUpgradeable.ts +9 -0
  499. package/types/ERC20BurnableUpgradeable.ts +24 -15
  500. package/types/ERC20PausableUpgradeable.ts +24 -15
  501. package/types/ERC20Permit.ts +186 -0
  502. package/types/ERC20PermitUpgradeable.ts +531 -0
  503. package/types/ERC20PresetMinterPauserUpgradeable.ts +129 -16
  504. package/types/ERC20Upgradeable.ts +24 -15
  505. package/types/ERC20WithTokenInfo.ts +339 -0
  506. package/types/ERC677.ts +131 -0
  507. package/types/ERC677Receiver.ts +115 -0
  508. package/types/EventsEmitter.ts +88 -0
  509. package/types/ExchangeHelper.ts +28 -0
  510. package/types/Faucet.ts +1107 -0
  511. package/types/FeesFormulaMock.ts +130 -0
  512. package/types/FuseFaucet.ts +9 -0
  513. package/types/FuseStakingV3.ts +75 -208
  514. package/types/GReputation.ts +103 -4
  515. package/types/GoodAaveStaking.ts +24 -15
  516. package/types/GoodAaveStakingV2.ts +24 -15
  517. package/types/GoodCompoundStaking.ts +24 -15
  518. package/types/GoodCompoundStakingTest.ts +24 -15
  519. package/types/GoodCompoundStakingV2.ts +24 -15
  520. package/types/GoodDollar.ts +1733 -0
  521. package/types/GoodDollarMintBurnWrapper.ts +55 -0
  522. package/types/GoodDollarStaking.ts +92 -0
  523. package/types/GoodDollarStakingMock.ts +131 -0
  524. package/types/GoodFundManager.ts +28 -0
  525. package/types/GoodFundManagerTest.ts +28 -0
  526. package/types/GoodMarketMaker.ts +28 -0
  527. package/types/GoodReserveCDai.ts +55 -21
  528. package/types/GovernanceStaking.ts +43 -15
  529. package/types/IERC1271Upgradeable.ts +109 -0
  530. package/types/IERC1820Registry.ts +398 -0
  531. package/types/IERC1822ProxiableUpgradeable.ts +90 -0
  532. package/types/IERC20MetadataUpgradeable.ts +15 -15
  533. package/types/IERC20Permit.ts +175 -0
  534. package/types/IERC20PermitUpgradeable.ts +176 -0
  535. package/types/IERC20Upgradeable.ts +15 -15
  536. package/types/IERC777.ts +586 -0
  537. package/types/IERC777Recipient.ts +130 -0
  538. package/types/IERC777Sender.ts +130 -0
  539. package/types/IFeesFormula.ts +111 -0
  540. package/types/IGoodDollar.ts +304 -7
  541. package/types/IGoodDollarCustom.ts +618 -0
  542. package/types/IGovernanceStaking.ts +98 -0
  543. package/types/IIdentity.ts +106 -0
  544. package/types/IIdentityV2.ts +557 -0
  545. package/types/IStakingUpgrade.ts +110 -0
  546. package/types/ISuperAgreement.ts +151 -0
  547. package/types/ISuperApp.ts +410 -0
  548. package/types/ISuperGoodDollar.ts +3029 -0
  549. package/types/ISuperToken.ts +2326 -0
  550. package/types/ISuperTokenFactory.ts +415 -0
  551. package/types/ISuperfluid.ts +1565 -0
  552. package/types/ISuperfluidGovernance.ts +455 -0
  553. package/types/ISuperfluidToken.ts +951 -0
  554. package/types/IdentityMock.ts +493 -0
  555. package/types/IdentityV2.ts +1743 -0
  556. package/types/Initializable.ts +77 -0
  557. package/types/InvitesV1.ts +9 -0
  558. package/types/InvitesV2.ts +1015 -0
  559. package/types/LendingPoolMock.ts +24 -15
  560. package/types/NameService.ts +28 -0
  561. package/types/OwnableUpgradeable.ts +9 -0
  562. package/types/PausableUpgradeable.ts +9 -0
  563. package/types/PayableMock.ts +92 -0
  564. package/types/ReentrancyGuardUpgradeable.ts +78 -0
  565. package/types/Reputation.ts +28 -0
  566. package/types/SelfApprove.ts +115 -0
  567. package/types/SimpleStaking.ts +24 -15
  568. package/types/SimpleStakingV2.ts +24 -15
  569. package/types/SixteenDecimalsTokenMock.ts +24 -15
  570. package/types/StakersDistribution.ts +28 -0
  571. package/types/SuperGoodDollar.ts +3632 -0
  572. package/types/SuperToken.ts +2434 -0
  573. package/types/SuperfluidToken.ts +951 -0
  574. package/types/TokenInfo.ts +109 -0
  575. package/types/TwentyDecimalsTokenMock.ts +24 -15
  576. package/types/UBIScheme.ts +47 -40
  577. package/types/USDCMock.ts +24 -15
  578. package/types/UUPSProxiable.ts +183 -0
  579. package/types/UUPSProxy.ts +105 -0
  580. package/types/UUPSUpgradeable.ts +28 -0
  581. package/types/UpgradableMock.ts +28 -0
  582. package/types/UpgradableMock2.ts +28 -0
  583. package/types/UpgradableMock3.ts +28 -0
  584. package/types/UpgradableMock4.ts +28 -0
  585. package/types/factories/AaveMock__factory.ts +17 -4
  586. package/types/factories/AaveStakingFactory__factory.ts +1 -1
  587. package/types/factories/AaveUSDMockOracle__factory.ts +1 -1
  588. package/types/factories/AccessControlEnumerableUpgradeable__factory.ts +13 -0
  589. package/types/factories/AccessControlUpgradeable__factory.ts +13 -0
  590. package/types/factories/AdminWallet__factory.ts +93 -47
  591. package/types/factories/BancorFormula__factory.ts +1 -1
  592. package/types/factories/BaseShareFieldV2__factory.ts +1 -1
  593. package/types/factories/BaseShareField__factory.ts +1 -1
  594. package/types/factories/BatUSDMockOracle__factory.ts +1 -1
  595. package/types/factories/BuyAndBridgeHelper__factory.ts +237 -0
  596. package/types/factories/CBATMock__factory.ts +17 -4
  597. package/types/factories/CDAILowWorthMock__factory.ts +17 -4
  598. package/types/factories/CDAIMock__factory.ts +17 -4
  599. package/types/factories/CDAINonMintableMock__factory.ts +17 -4
  600. package/types/factories/CDecimalsMock__factory.ts +17 -4
  601. package/types/factories/CSDTMock__factory.ts +17 -4
  602. package/types/factories/CUSDCMock__factory.ts +17 -4
  603. package/types/factories/ClaimersDistribution__factory.ts +27 -1
  604. package/types/factories/CompUSDMockOracle__factory.ts +1 -1
  605. package/types/factories/CompoundStakingFactory__factory.ts +1 -1
  606. package/types/factories/CompoundVotingMachine__factory.ts +27 -1
  607. package/types/factories/ContextUpgradeable__factory.ts +39 -0
  608. package/types/factories/DAIMock__factory.ts +17 -4
  609. package/types/factories/DAOContract__factory.ts +1 -1
  610. package/types/factories/DAOUpgradeableContract__factory.ts +27 -1
  611. package/types/factories/DaiEthPriceMockOracle__factory.ts +1 -1
  612. package/types/factories/DecimalsMock__factory.ts +17 -4
  613. package/types/factories/DistributionBridgeMock__factory.ts +1 -1
  614. package/types/factories/DistributionHelperTestHelper__factory.ts +34 -1
  615. package/types/factories/DistributionHelperTest__factory.ts +34 -1
  616. package/types/factories/DistributionHelper__factory.ts +34 -1
  617. package/types/factories/DonationsStaking__factory.ts +27 -1
  618. package/types/factories/EIP712Upgradeable__factory.ts +39 -0
  619. package/types/factories/ERC165Upgradeable__factory.ts +13 -0
  620. package/types/factories/ERC1967Proxy__factory.ts +1 -1
  621. package/types/factories/ERC1967UpgradeUpgradeable__factory.ts +13 -0
  622. package/types/factories/ERC20BurnableUpgradeable__factory.ts +16 -3
  623. package/types/factories/ERC20PausableUpgradeable__factory.ts +16 -3
  624. package/types/factories/ERC20PermitUpgradeable__factory.ts +388 -0
  625. package/types/factories/ERC20Permit__factory.ts +111 -0
  626. package/types/factories/ERC20PresetMinterPauserUpgradeable__factory.ts +99 -5
  627. package/types/factories/ERC20Upgradeable__factory.ts +17 -4
  628. package/types/factories/ERC20WithTokenInfo__factory.ts +248 -0
  629. package/types/factories/ERC677Receiver__factory.ts +55 -0
  630. package/types/factories/ERC677__factory.ts +75 -0
  631. package/types/factories/EthUSDMockOracle__factory.ts +1 -1
  632. package/types/factories/EventsEmitter__factory.ts +84 -0
  633. package/types/factories/ExchangeHelper__factory.ts +27 -1
  634. package/types/factories/Faucet__factory.ts +781 -0
  635. package/types/factories/FeesFormulaMock__factory.ts +132 -0
  636. package/types/factories/FuseFaucet__factory.ts +14 -1
  637. package/types/factories/FuseStakingV3__factory.ts +43 -82
  638. package/types/factories/GReputation__factory.ts +77 -2
  639. package/types/factories/GasPriceMockOracle__factory.ts +1 -1
  640. package/types/factories/GoodAaveStakingV2__factory.ts +17 -4
  641. package/types/factories/GoodAaveStaking__factory.ts +17 -4
  642. package/types/factories/GoodCompoundStakingTest__factory.ts +17 -4
  643. package/types/factories/GoodCompoundStakingV2__factory.ts +17 -4
  644. package/types/factories/GoodCompoundStaking__factory.ts +17 -4
  645. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +34 -1
  646. package/types/factories/GoodDollarStakingMock__factory.ts +94 -1
  647. package/types/factories/GoodDollarStaking__factory.ts +70 -1
  648. package/types/factories/GoodDollar__factory.ts +1254 -0
  649. package/types/factories/GoodFundManagerTest__factory.ts +27 -1
  650. package/types/factories/GoodFundManager__factory.ts +27 -1
  651. package/types/factories/GoodMarketMaker__factory.ts +27 -1
  652. package/types/factories/GoodReserveCDai__factory.ts +36 -4
  653. package/types/factories/GovernanceStaking__factory.ts +30 -4
  654. package/types/factories/IERC1271Upgradeable__factory.ts +50 -0
  655. package/types/factories/IERC1820Registry__factory.ts +239 -0
  656. package/types/factories/IERC1822ProxiableUpgradeable__factory.ts +43 -0
  657. package/types/factories/IERC20MetadataUpgradeable__factory.ts +3 -3
  658. package/types/factories/IERC20PermitUpgradeable__factory.ts +105 -0
  659. package/types/factories/IERC20Permit__factory.ts +98 -0
  660. package/types/factories/IERC20Upgradeable__factory.ts +3 -3
  661. package/types/factories/IERC777Recipient__factory.ts +64 -0
  662. package/types/factories/IERC777Sender__factory.ts +61 -0
  663. package/types/factories/IERC777__factory.ts +414 -0
  664. package/types/factories/IFeesFormula__factory.ts +57 -0
  665. package/types/factories/IGoodDollarCustom__factory.ts +370 -0
  666. package/types/factories/IGoodDollar__factory.ts +184 -0
  667. package/types/factories/IGovernanceStaking__factory.ts +39 -0
  668. package/types/factories/IIdentityV2__factory.ts +312 -0
  669. package/types/factories/IIdentity__factory.ts +70 -0
  670. package/types/factories/IStakingUpgrade__factory.ts +50 -0
  671. package/types/factories/ISuperAgreement__factory.ts +78 -0
  672. package/types/factories/ISuperApp__factory.ts +272 -0
  673. package/types/factories/ISuperGoodDollar__factory.ts +2147 -0
  674. package/types/factories/ISuperTokenFactory__factory.ts +271 -0
  675. package/types/factories/ISuperToken__factory.ts +1682 -0
  676. package/types/factories/ISuperfluidGovernance__factory.ts +264 -0
  677. package/types/factories/ISuperfluidToken__factory.ts +697 -0
  678. package/types/factories/ISuperfluid__factory.ts +1143 -0
  679. package/types/factories/IdentityMock__factory.ts +327 -0
  680. package/types/factories/IdentityV2__factory.ts +1129 -0
  681. package/types/factories/IncentiveControllerMock__factory.ts +1 -1
  682. package/types/factories/Initializable__factory.ts +36 -0
  683. package/types/factories/InvitesV1__factory.ts +14 -1
  684. package/types/factories/InvitesV2__factory.ts +688 -0
  685. package/types/factories/LendingPoolMock__factory.ts +17 -4
  686. package/types/factories/Multicall__factory.ts +1 -1
  687. package/types/factories/MultichainBridgeHelper__factory.ts +1 -1
  688. package/types/factories/MultichainRouterMock__factory.ts +1 -1
  689. package/types/factories/NameService__factory.ts +27 -1
  690. package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
  691. package/types/factories/OverMintTester__factory.ts +1 -1
  692. package/types/factories/OwnableUpgradeable__factory.ts +13 -0
  693. package/types/factories/PausableUpgradeable__factory.ts +13 -0
  694. package/types/factories/PayableMock__factory.ts +66 -0
  695. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  696. package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
  697. package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
  698. package/types/factories/ProtocolUpgrade__factory.ts +1 -1
  699. package/types/factories/ProxyFactory1967__factory.ts +1 -1
  700. package/types/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
  701. package/types/factories/ReputationTestHelper__factory.ts +1 -1
  702. package/types/factories/Reputation__factory.ts +27 -1
  703. package/types/factories/SelfApprove__factory.ts +46 -0
  704. package/types/factories/SimpleStakingV2__factory.ts +16 -3
  705. package/types/factories/SimpleStaking__factory.ts +16 -3
  706. package/types/factories/SixteenDecimalsTokenMock__factory.ts +17 -4
  707. package/types/factories/StakersDistribution__factory.ts +27 -1
  708. package/types/factories/StakingMockFixedAPY__factory.ts +1 -1
  709. package/types/factories/SuperGoodDollar__factory.ts +2643 -0
  710. package/types/factories/SuperToken__factory.ts +1809 -0
  711. package/types/factories/SuperfluidToken__factory.ts +697 -0
  712. package/types/factories/SwapHelperTest__factory.ts +1 -1
  713. package/types/factories/TokenInfo__factory.ts +62 -0
  714. package/types/factories/TwentyDecimalsTokenMock__factory.ts +17 -4
  715. package/types/factories/UBIScheme__factory.ts +40 -21
  716. package/types/factories/USDCMock__factory.ts +17 -4
  717. package/types/factories/UUPSProxiable__factory.ts +101 -0
  718. package/types/factories/UUPSProxy__factory.ts +80 -0
  719. package/types/factories/UUPSUpgradeable__factory.ts +26 -0
  720. package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
  721. package/types/factories/UpgradableMock2__factory.ts +27 -1
  722. package/types/factories/UpgradableMock3__factory.ts +27 -1
  723. package/types/factories/UpgradableMock4__factory.ts +27 -1
  724. package/types/factories/UpgradableMock__factory.ts +27 -1
  725. package/types/hardhat.d.ts +432 -0
  726. package/types/index.ts +92 -0
  727. package/yarn.lock +2348 -864
@@ -0,0 +1,2590 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "SuperGoodDollar",
4
+ "sourceName": "contracts/token/superfluid/SuperGoodDollar.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "contract ISuperfluid",
10
+ "name": "_host",
11
+ "type": "address"
12
+ }
13
+ ],
14
+ "stateMutability": "nonpayable",
15
+ "type": "constructor"
16
+ },
17
+ {
18
+ "inputs": [],
19
+ "name": "SF_TOKEN_AGREEMENT_ALREADY_EXISTS",
20
+ "type": "error"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "SF_TOKEN_AGREEMENT_DOES_NOT_EXIST",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "SF_TOKEN_BURN_INSUFFICIENT_BALANCE",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "SF_TOKEN_MOVE_INSUFFICIENT_BALANCE",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "SF_TOKEN_ONLY_HOST",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [],
44
+ "name": "SF_TOKEN_ONLY_LISTED_AGREEMENT",
45
+ "type": "error"
46
+ },
47
+ {
48
+ "inputs": [],
49
+ "name": "SUPER_TOKEN_APPROVE_FROM_ZERO_ADDRESS",
50
+ "type": "error"
51
+ },
52
+ {
53
+ "inputs": [],
54
+ "name": "SUPER_TOKEN_APPROVE_TO_ZERO_ADDRESS",
55
+ "type": "error"
56
+ },
57
+ {
58
+ "inputs": [],
59
+ "name": "SUPER_TOKEN_BURN_FROM_ZERO_ADDRESS",
60
+ "type": "error"
61
+ },
62
+ {
63
+ "inputs": [],
64
+ "name": "SUPER_TOKEN_CALLER_IS_NOT_OPERATOR_FOR_HOLDER",
65
+ "type": "error"
66
+ },
67
+ {
68
+ "inputs": [],
69
+ "name": "SUPER_TOKEN_INFLATIONARY_DEFLATIONARY_NOT_SUPPORTED",
70
+ "type": "error"
71
+ },
72
+ {
73
+ "inputs": [],
74
+ "name": "SUPER_TOKEN_MINT_TO_ZERO_ADDRESS",
75
+ "type": "error"
76
+ },
77
+ {
78
+ "inputs": [],
79
+ "name": "SUPER_TOKEN_NOT_ERC777_TOKENS_RECIPIENT",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "inputs": [],
84
+ "name": "SUPER_TOKEN_NO_UNDERLYING_TOKEN",
85
+ "type": "error"
86
+ },
87
+ {
88
+ "inputs": [],
89
+ "name": "SUPER_TOKEN_ONLY_HOST",
90
+ "type": "error"
91
+ },
92
+ {
93
+ "inputs": [],
94
+ "name": "SUPER_TOKEN_ONLY_SELF",
95
+ "type": "error"
96
+ },
97
+ {
98
+ "inputs": [],
99
+ "name": "SUPER_TOKEN_TRANSFER_FROM_ZERO_ADDRESS",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [],
104
+ "name": "SUPER_TOKEN_TRANSFER_TO_ZERO_ADDRESS",
105
+ "type": "error"
106
+ },
107
+ {
108
+ "anonymous": false,
109
+ "inputs": [
110
+ {
111
+ "indexed": true,
112
+ "internalType": "address",
113
+ "name": "agreementClass",
114
+ "type": "address"
115
+ },
116
+ {
117
+ "indexed": false,
118
+ "internalType": "bytes32",
119
+ "name": "id",
120
+ "type": "bytes32"
121
+ },
122
+ {
123
+ "indexed": false,
124
+ "internalType": "bytes32[]",
125
+ "name": "data",
126
+ "type": "bytes32[]"
127
+ }
128
+ ],
129
+ "name": "AgreementCreated",
130
+ "type": "event"
131
+ },
132
+ {
133
+ "anonymous": false,
134
+ "inputs": [
135
+ {
136
+ "indexed": true,
137
+ "internalType": "address",
138
+ "name": "agreementClass",
139
+ "type": "address"
140
+ },
141
+ {
142
+ "indexed": false,
143
+ "internalType": "bytes32",
144
+ "name": "id",
145
+ "type": "bytes32"
146
+ },
147
+ {
148
+ "indexed": true,
149
+ "internalType": "address",
150
+ "name": "penaltyAccount",
151
+ "type": "address"
152
+ },
153
+ {
154
+ "indexed": true,
155
+ "internalType": "address",
156
+ "name": "rewardAccount",
157
+ "type": "address"
158
+ },
159
+ {
160
+ "indexed": false,
161
+ "internalType": "uint256",
162
+ "name": "rewardAmount",
163
+ "type": "uint256"
164
+ }
165
+ ],
166
+ "name": "AgreementLiquidated",
167
+ "type": "event"
168
+ },
169
+ {
170
+ "anonymous": false,
171
+ "inputs": [
172
+ {
173
+ "indexed": false,
174
+ "internalType": "address",
175
+ "name": "liquidatorAccount",
176
+ "type": "address"
177
+ },
178
+ {
179
+ "indexed": true,
180
+ "internalType": "address",
181
+ "name": "agreementClass",
182
+ "type": "address"
183
+ },
184
+ {
185
+ "indexed": false,
186
+ "internalType": "bytes32",
187
+ "name": "id",
188
+ "type": "bytes32"
189
+ },
190
+ {
191
+ "indexed": true,
192
+ "internalType": "address",
193
+ "name": "penaltyAccount",
194
+ "type": "address"
195
+ },
196
+ {
197
+ "indexed": true,
198
+ "internalType": "address",
199
+ "name": "bondAccount",
200
+ "type": "address"
201
+ },
202
+ {
203
+ "indexed": false,
204
+ "internalType": "uint256",
205
+ "name": "rewardAmount",
206
+ "type": "uint256"
207
+ },
208
+ {
209
+ "indexed": false,
210
+ "internalType": "uint256",
211
+ "name": "bailoutAmount",
212
+ "type": "uint256"
213
+ }
214
+ ],
215
+ "name": "AgreementLiquidatedBy",
216
+ "type": "event"
217
+ },
218
+ {
219
+ "anonymous": false,
220
+ "inputs": [
221
+ {
222
+ "indexed": true,
223
+ "internalType": "address",
224
+ "name": "agreementClass",
225
+ "type": "address"
226
+ },
227
+ {
228
+ "indexed": false,
229
+ "internalType": "bytes32",
230
+ "name": "id",
231
+ "type": "bytes32"
232
+ },
233
+ {
234
+ "indexed": true,
235
+ "internalType": "address",
236
+ "name": "liquidatorAccount",
237
+ "type": "address"
238
+ },
239
+ {
240
+ "indexed": true,
241
+ "internalType": "address",
242
+ "name": "targetAccount",
243
+ "type": "address"
244
+ },
245
+ {
246
+ "indexed": false,
247
+ "internalType": "address",
248
+ "name": "rewardAmountReceiver",
249
+ "type": "address"
250
+ },
251
+ {
252
+ "indexed": false,
253
+ "internalType": "uint256",
254
+ "name": "rewardAmount",
255
+ "type": "uint256"
256
+ },
257
+ {
258
+ "indexed": false,
259
+ "internalType": "int256",
260
+ "name": "targetAccountBalanceDelta",
261
+ "type": "int256"
262
+ },
263
+ {
264
+ "indexed": false,
265
+ "internalType": "bytes",
266
+ "name": "liquidationTypeData",
267
+ "type": "bytes"
268
+ }
269
+ ],
270
+ "name": "AgreementLiquidatedV2",
271
+ "type": "event"
272
+ },
273
+ {
274
+ "anonymous": false,
275
+ "inputs": [
276
+ {
277
+ "indexed": true,
278
+ "internalType": "address",
279
+ "name": "agreementClass",
280
+ "type": "address"
281
+ },
282
+ {
283
+ "indexed": true,
284
+ "internalType": "address",
285
+ "name": "account",
286
+ "type": "address"
287
+ },
288
+ {
289
+ "indexed": false,
290
+ "internalType": "uint256",
291
+ "name": "slotId",
292
+ "type": "uint256"
293
+ }
294
+ ],
295
+ "name": "AgreementStateUpdated",
296
+ "type": "event"
297
+ },
298
+ {
299
+ "anonymous": false,
300
+ "inputs": [
301
+ {
302
+ "indexed": true,
303
+ "internalType": "address",
304
+ "name": "agreementClass",
305
+ "type": "address"
306
+ },
307
+ {
308
+ "indexed": false,
309
+ "internalType": "bytes32",
310
+ "name": "id",
311
+ "type": "bytes32"
312
+ }
313
+ ],
314
+ "name": "AgreementTerminated",
315
+ "type": "event"
316
+ },
317
+ {
318
+ "anonymous": false,
319
+ "inputs": [
320
+ {
321
+ "indexed": true,
322
+ "internalType": "address",
323
+ "name": "agreementClass",
324
+ "type": "address"
325
+ },
326
+ {
327
+ "indexed": false,
328
+ "internalType": "bytes32",
329
+ "name": "id",
330
+ "type": "bytes32"
331
+ },
332
+ {
333
+ "indexed": false,
334
+ "internalType": "bytes32[]",
335
+ "name": "data",
336
+ "type": "bytes32[]"
337
+ }
338
+ ],
339
+ "name": "AgreementUpdated",
340
+ "type": "event"
341
+ },
342
+ {
343
+ "anonymous": false,
344
+ "inputs": [
345
+ {
346
+ "indexed": true,
347
+ "internalType": "address",
348
+ "name": "owner",
349
+ "type": "address"
350
+ },
351
+ {
352
+ "indexed": true,
353
+ "internalType": "address",
354
+ "name": "spender",
355
+ "type": "address"
356
+ },
357
+ {
358
+ "indexed": false,
359
+ "internalType": "uint256",
360
+ "name": "value",
361
+ "type": "uint256"
362
+ }
363
+ ],
364
+ "name": "Approval",
365
+ "type": "event"
366
+ },
367
+ {
368
+ "anonymous": false,
369
+ "inputs": [
370
+ {
371
+ "indexed": true,
372
+ "internalType": "address",
373
+ "name": "operator",
374
+ "type": "address"
375
+ },
376
+ {
377
+ "indexed": true,
378
+ "internalType": "address",
379
+ "name": "tokenHolder",
380
+ "type": "address"
381
+ }
382
+ ],
383
+ "name": "AuthorizedOperator",
384
+ "type": "event"
385
+ },
386
+ {
387
+ "anonymous": false,
388
+ "inputs": [
389
+ {
390
+ "indexed": true,
391
+ "internalType": "address",
392
+ "name": "bailoutAccount",
393
+ "type": "address"
394
+ },
395
+ {
396
+ "indexed": false,
397
+ "internalType": "uint256",
398
+ "name": "bailoutAmount",
399
+ "type": "uint256"
400
+ }
401
+ ],
402
+ "name": "Bailout",
403
+ "type": "event"
404
+ },
405
+ {
406
+ "anonymous": false,
407
+ "inputs": [
408
+ {
409
+ "indexed": true,
410
+ "internalType": "address",
411
+ "name": "operator",
412
+ "type": "address"
413
+ },
414
+ {
415
+ "indexed": true,
416
+ "internalType": "address",
417
+ "name": "from",
418
+ "type": "address"
419
+ },
420
+ {
421
+ "indexed": false,
422
+ "internalType": "uint256",
423
+ "name": "amount",
424
+ "type": "uint256"
425
+ },
426
+ {
427
+ "indexed": false,
428
+ "internalType": "bytes",
429
+ "name": "data",
430
+ "type": "bytes"
431
+ },
432
+ {
433
+ "indexed": false,
434
+ "internalType": "bytes",
435
+ "name": "operatorData",
436
+ "type": "bytes"
437
+ }
438
+ ],
439
+ "name": "Burned",
440
+ "type": "event"
441
+ },
442
+ {
443
+ "anonymous": false,
444
+ "inputs": [
445
+ {
446
+ "indexed": false,
447
+ "internalType": "bytes32",
448
+ "name": "uuid",
449
+ "type": "bytes32"
450
+ },
451
+ {
452
+ "indexed": false,
453
+ "internalType": "address",
454
+ "name": "codeAddress",
455
+ "type": "address"
456
+ }
457
+ ],
458
+ "name": "CodeUpdated",
459
+ "type": "event"
460
+ },
461
+ {
462
+ "anonymous": false,
463
+ "inputs": [
464
+ {
465
+ "indexed": false,
466
+ "internalType": "uint8",
467
+ "name": "version",
468
+ "type": "uint8"
469
+ }
470
+ ],
471
+ "name": "Initialized",
472
+ "type": "event"
473
+ },
474
+ {
475
+ "anonymous": false,
476
+ "inputs": [
477
+ {
478
+ "indexed": true,
479
+ "internalType": "address",
480
+ "name": "operator",
481
+ "type": "address"
482
+ },
483
+ {
484
+ "indexed": true,
485
+ "internalType": "address",
486
+ "name": "to",
487
+ "type": "address"
488
+ },
489
+ {
490
+ "indexed": false,
491
+ "internalType": "uint256",
492
+ "name": "amount",
493
+ "type": "uint256"
494
+ },
495
+ {
496
+ "indexed": false,
497
+ "internalType": "bytes",
498
+ "name": "data",
499
+ "type": "bytes"
500
+ },
501
+ {
502
+ "indexed": false,
503
+ "internalType": "bytes",
504
+ "name": "operatorData",
505
+ "type": "bytes"
506
+ }
507
+ ],
508
+ "name": "Minted",
509
+ "type": "event"
510
+ },
511
+ {
512
+ "anonymous": false,
513
+ "inputs": [
514
+ {
515
+ "indexed": false,
516
+ "internalType": "address",
517
+ "name": "account",
518
+ "type": "address"
519
+ }
520
+ ],
521
+ "name": "Paused",
522
+ "type": "event"
523
+ },
524
+ {
525
+ "anonymous": false,
526
+ "inputs": [
527
+ {
528
+ "indexed": true,
529
+ "internalType": "address",
530
+ "name": "operator",
531
+ "type": "address"
532
+ },
533
+ {
534
+ "indexed": true,
535
+ "internalType": "address",
536
+ "name": "tokenHolder",
537
+ "type": "address"
538
+ }
539
+ ],
540
+ "name": "RevokedOperator",
541
+ "type": "event"
542
+ },
543
+ {
544
+ "anonymous": false,
545
+ "inputs": [
546
+ {
547
+ "indexed": true,
548
+ "internalType": "bytes32",
549
+ "name": "role",
550
+ "type": "bytes32"
551
+ },
552
+ {
553
+ "indexed": true,
554
+ "internalType": "bytes32",
555
+ "name": "previousAdminRole",
556
+ "type": "bytes32"
557
+ },
558
+ {
559
+ "indexed": true,
560
+ "internalType": "bytes32",
561
+ "name": "newAdminRole",
562
+ "type": "bytes32"
563
+ }
564
+ ],
565
+ "name": "RoleAdminChanged",
566
+ "type": "event"
567
+ },
568
+ {
569
+ "anonymous": false,
570
+ "inputs": [
571
+ {
572
+ "indexed": true,
573
+ "internalType": "bytes32",
574
+ "name": "role",
575
+ "type": "bytes32"
576
+ },
577
+ {
578
+ "indexed": true,
579
+ "internalType": "address",
580
+ "name": "account",
581
+ "type": "address"
582
+ },
583
+ {
584
+ "indexed": true,
585
+ "internalType": "address",
586
+ "name": "sender",
587
+ "type": "address"
588
+ }
589
+ ],
590
+ "name": "RoleGranted",
591
+ "type": "event"
592
+ },
593
+ {
594
+ "anonymous": false,
595
+ "inputs": [
596
+ {
597
+ "indexed": true,
598
+ "internalType": "bytes32",
599
+ "name": "role",
600
+ "type": "bytes32"
601
+ },
602
+ {
603
+ "indexed": true,
604
+ "internalType": "address",
605
+ "name": "account",
606
+ "type": "address"
607
+ },
608
+ {
609
+ "indexed": true,
610
+ "internalType": "address",
611
+ "name": "sender",
612
+ "type": "address"
613
+ }
614
+ ],
615
+ "name": "RoleRevoked",
616
+ "type": "event"
617
+ },
618
+ {
619
+ "anonymous": false,
620
+ "inputs": [
621
+ {
622
+ "indexed": true,
623
+ "internalType": "address",
624
+ "name": "operator",
625
+ "type": "address"
626
+ },
627
+ {
628
+ "indexed": true,
629
+ "internalType": "address",
630
+ "name": "from",
631
+ "type": "address"
632
+ },
633
+ {
634
+ "indexed": true,
635
+ "internalType": "address",
636
+ "name": "to",
637
+ "type": "address"
638
+ },
639
+ {
640
+ "indexed": false,
641
+ "internalType": "uint256",
642
+ "name": "amount",
643
+ "type": "uint256"
644
+ },
645
+ {
646
+ "indexed": false,
647
+ "internalType": "bytes",
648
+ "name": "data",
649
+ "type": "bytes"
650
+ },
651
+ {
652
+ "indexed": false,
653
+ "internalType": "bytes",
654
+ "name": "operatorData",
655
+ "type": "bytes"
656
+ }
657
+ ],
658
+ "name": "Sent",
659
+ "type": "event"
660
+ },
661
+ {
662
+ "anonymous": false,
663
+ "inputs": [
664
+ {
665
+ "indexed": true,
666
+ "internalType": "address",
667
+ "name": "account",
668
+ "type": "address"
669
+ },
670
+ {
671
+ "indexed": false,
672
+ "internalType": "uint256",
673
+ "name": "amount",
674
+ "type": "uint256"
675
+ }
676
+ ],
677
+ "name": "TokenDowngraded",
678
+ "type": "event"
679
+ },
680
+ {
681
+ "anonymous": false,
682
+ "inputs": [
683
+ {
684
+ "indexed": true,
685
+ "internalType": "address",
686
+ "name": "account",
687
+ "type": "address"
688
+ },
689
+ {
690
+ "indexed": false,
691
+ "internalType": "uint256",
692
+ "name": "amount",
693
+ "type": "uint256"
694
+ }
695
+ ],
696
+ "name": "TokenUpgraded",
697
+ "type": "event"
698
+ },
699
+ {
700
+ "anonymous": false,
701
+ "inputs": [
702
+ {
703
+ "indexed": true,
704
+ "internalType": "address",
705
+ "name": "from",
706
+ "type": "address"
707
+ },
708
+ {
709
+ "indexed": true,
710
+ "internalType": "address",
711
+ "name": "to",
712
+ "type": "address"
713
+ },
714
+ {
715
+ "indexed": false,
716
+ "internalType": "uint256",
717
+ "name": "value",
718
+ "type": "uint256"
719
+ },
720
+ {
721
+ "indexed": false,
722
+ "internalType": "bytes",
723
+ "name": "data",
724
+ "type": "bytes"
725
+ }
726
+ ],
727
+ "name": "Transfer",
728
+ "type": "event"
729
+ },
730
+ {
731
+ "anonymous": false,
732
+ "inputs": [
733
+ {
734
+ "indexed": true,
735
+ "internalType": "address",
736
+ "name": "from",
737
+ "type": "address"
738
+ },
739
+ {
740
+ "indexed": true,
741
+ "internalType": "address",
742
+ "name": "to",
743
+ "type": "address"
744
+ },
745
+ {
746
+ "indexed": false,
747
+ "internalType": "uint256",
748
+ "name": "value",
749
+ "type": "uint256"
750
+ }
751
+ ],
752
+ "name": "Transfer",
753
+ "type": "event"
754
+ },
755
+ {
756
+ "anonymous": false,
757
+ "inputs": [
758
+ {
759
+ "indexed": false,
760
+ "internalType": "address",
761
+ "name": "account",
762
+ "type": "address"
763
+ }
764
+ ],
765
+ "name": "Unpaused",
766
+ "type": "event"
767
+ },
768
+ {
769
+ "inputs": [],
770
+ "name": "DEFAULT_ADMIN_ROLE",
771
+ "outputs": [
772
+ {
773
+ "internalType": "bytes32",
774
+ "name": "",
775
+ "type": "bytes32"
776
+ }
777
+ ],
778
+ "stateMutability": "view",
779
+ "type": "function"
780
+ },
781
+ {
782
+ "inputs": [],
783
+ "name": "DOMAIN_SEPARATOR",
784
+ "outputs": [
785
+ {
786
+ "internalType": "bytes32",
787
+ "name": "",
788
+ "type": "bytes32"
789
+ }
790
+ ],
791
+ "stateMutability": "view",
792
+ "type": "function"
793
+ },
794
+ {
795
+ "inputs": [],
796
+ "name": "MINTER_ROLE",
797
+ "outputs": [
798
+ {
799
+ "internalType": "bytes32",
800
+ "name": "",
801
+ "type": "bytes32"
802
+ }
803
+ ],
804
+ "stateMutability": "view",
805
+ "type": "function"
806
+ },
807
+ {
808
+ "inputs": [],
809
+ "name": "PAUSER_ROLE",
810
+ "outputs": [
811
+ {
812
+ "internalType": "bytes32",
813
+ "name": "",
814
+ "type": "bytes32"
815
+ }
816
+ ],
817
+ "stateMutability": "view",
818
+ "type": "function"
819
+ },
820
+ {
821
+ "inputs": [
822
+ {
823
+ "internalType": "address",
824
+ "name": "_minter",
825
+ "type": "address"
826
+ }
827
+ ],
828
+ "name": "addMinter",
829
+ "outputs": [],
830
+ "stateMutability": "nonpayable",
831
+ "type": "function"
832
+ },
833
+ {
834
+ "inputs": [
835
+ {
836
+ "internalType": "address",
837
+ "name": "_pauser",
838
+ "type": "address"
839
+ }
840
+ ],
841
+ "name": "addPauser",
842
+ "outputs": [],
843
+ "stateMutability": "nonpayable",
844
+ "type": "function"
845
+ },
846
+ {
847
+ "inputs": [
848
+ {
849
+ "internalType": "address",
850
+ "name": "account",
851
+ "type": "address"
852
+ },
853
+ {
854
+ "internalType": "address",
855
+ "name": "spender",
856
+ "type": "address"
857
+ }
858
+ ],
859
+ "name": "allowance",
860
+ "outputs": [
861
+ {
862
+ "internalType": "uint256",
863
+ "name": "",
864
+ "type": "uint256"
865
+ }
866
+ ],
867
+ "stateMutability": "view",
868
+ "type": "function"
869
+ },
870
+ {
871
+ "inputs": [
872
+ {
873
+ "internalType": "address",
874
+ "name": "spender",
875
+ "type": "address"
876
+ },
877
+ {
878
+ "internalType": "uint256",
879
+ "name": "amount",
880
+ "type": "uint256"
881
+ }
882
+ ],
883
+ "name": "approve",
884
+ "outputs": [
885
+ {
886
+ "internalType": "bool",
887
+ "name": "",
888
+ "type": "bool"
889
+ }
890
+ ],
891
+ "stateMutability": "nonpayable",
892
+ "type": "function"
893
+ },
894
+ {
895
+ "inputs": [
896
+ {
897
+ "internalType": "address",
898
+ "name": "operator",
899
+ "type": "address"
900
+ }
901
+ ],
902
+ "name": "authorizeOperator",
903
+ "outputs": [],
904
+ "stateMutability": "nonpayable",
905
+ "type": "function"
906
+ },
907
+ {
908
+ "inputs": [
909
+ {
910
+ "internalType": "address",
911
+ "name": "account",
912
+ "type": "address"
913
+ }
914
+ ],
915
+ "name": "balanceOf",
916
+ "outputs": [
917
+ {
918
+ "internalType": "uint256",
919
+ "name": "balance",
920
+ "type": "uint256"
921
+ }
922
+ ],
923
+ "stateMutability": "view",
924
+ "type": "function"
925
+ },
926
+ {
927
+ "inputs": [
928
+ {
929
+ "internalType": "uint256",
930
+ "name": "amount",
931
+ "type": "uint256"
932
+ }
933
+ ],
934
+ "name": "burn",
935
+ "outputs": [],
936
+ "stateMutability": "nonpayable",
937
+ "type": "function"
938
+ },
939
+ {
940
+ "inputs": [
941
+ {
942
+ "internalType": "uint256",
943
+ "name": "amount",
944
+ "type": "uint256"
945
+ },
946
+ {
947
+ "internalType": "bytes",
948
+ "name": "data",
949
+ "type": "bytes"
950
+ }
951
+ ],
952
+ "name": "burn",
953
+ "outputs": [],
954
+ "stateMutability": "nonpayable",
955
+ "type": "function"
956
+ },
957
+ {
958
+ "inputs": [
959
+ {
960
+ "internalType": "address",
961
+ "name": "account",
962
+ "type": "address"
963
+ },
964
+ {
965
+ "internalType": "uint256",
966
+ "name": "amount",
967
+ "type": "uint256"
968
+ }
969
+ ],
970
+ "name": "burnFrom",
971
+ "outputs": [],
972
+ "stateMutability": "nonpayable",
973
+ "type": "function"
974
+ },
975
+ {
976
+ "inputs": [],
977
+ "name": "cap",
978
+ "outputs": [
979
+ {
980
+ "internalType": "uint256",
981
+ "name": "",
982
+ "type": "uint256"
983
+ }
984
+ ],
985
+ "stateMutability": "view",
986
+ "type": "function"
987
+ },
988
+ {
989
+ "inputs": [],
990
+ "name": "castrate",
991
+ "outputs": [],
992
+ "stateMutability": "nonpayable",
993
+ "type": "function"
994
+ },
995
+ {
996
+ "inputs": [
997
+ {
998
+ "internalType": "bytes32",
999
+ "name": "id",
1000
+ "type": "bytes32"
1001
+ },
1002
+ {
1003
+ "internalType": "bytes32[]",
1004
+ "name": "data",
1005
+ "type": "bytes32[]"
1006
+ }
1007
+ ],
1008
+ "name": "createAgreement",
1009
+ "outputs": [],
1010
+ "stateMutability": "nonpayable",
1011
+ "type": "function"
1012
+ },
1013
+ {
1014
+ "inputs": [],
1015
+ "name": "decimals",
1016
+ "outputs": [
1017
+ {
1018
+ "internalType": "uint8",
1019
+ "name": "",
1020
+ "type": "uint8"
1021
+ }
1022
+ ],
1023
+ "stateMutability": "pure",
1024
+ "type": "function"
1025
+ },
1026
+ {
1027
+ "inputs": [
1028
+ {
1029
+ "internalType": "address",
1030
+ "name": "spender",
1031
+ "type": "address"
1032
+ },
1033
+ {
1034
+ "internalType": "uint256",
1035
+ "name": "subtractedValue",
1036
+ "type": "uint256"
1037
+ }
1038
+ ],
1039
+ "name": "decreaseAllowance",
1040
+ "outputs": [
1041
+ {
1042
+ "internalType": "bool",
1043
+ "name": "",
1044
+ "type": "bool"
1045
+ }
1046
+ ],
1047
+ "stateMutability": "nonpayable",
1048
+ "type": "function"
1049
+ },
1050
+ {
1051
+ "inputs": [],
1052
+ "name": "defaultOperators",
1053
+ "outputs": [
1054
+ {
1055
+ "internalType": "address[]",
1056
+ "name": "",
1057
+ "type": "address[]"
1058
+ }
1059
+ ],
1060
+ "stateMutability": "view",
1061
+ "type": "function"
1062
+ },
1063
+ {
1064
+ "inputs": [],
1065
+ "name": "disableHostOperations",
1066
+ "outputs": [
1067
+ {
1068
+ "internalType": "bool",
1069
+ "name": "",
1070
+ "type": "bool"
1071
+ }
1072
+ ],
1073
+ "stateMutability": "view",
1074
+ "type": "function"
1075
+ },
1076
+ {
1077
+ "inputs": [
1078
+ {
1079
+ "internalType": "uint256",
1080
+ "name": "amount",
1081
+ "type": "uint256"
1082
+ }
1083
+ ],
1084
+ "name": "downgrade",
1085
+ "outputs": [],
1086
+ "stateMutability": "nonpayable",
1087
+ "type": "function"
1088
+ },
1089
+ {
1090
+ "inputs": [
1091
+ {
1092
+ "internalType": "bool",
1093
+ "name": "enabled",
1094
+ "type": "bool"
1095
+ }
1096
+ ],
1097
+ "name": "enableHostOperations",
1098
+ "outputs": [],
1099
+ "stateMutability": "nonpayable",
1100
+ "type": "function"
1101
+ },
1102
+ {
1103
+ "inputs": [],
1104
+ "name": "feeRecipient",
1105
+ "outputs": [
1106
+ {
1107
+ "internalType": "address",
1108
+ "name": "",
1109
+ "type": "address"
1110
+ }
1111
+ ],
1112
+ "stateMutability": "view",
1113
+ "type": "function"
1114
+ },
1115
+ {
1116
+ "inputs": [],
1117
+ "name": "formula",
1118
+ "outputs": [
1119
+ {
1120
+ "internalType": "contract IFeesFormula",
1121
+ "name": "",
1122
+ "type": "address"
1123
+ }
1124
+ ],
1125
+ "stateMutability": "view",
1126
+ "type": "function"
1127
+ },
1128
+ {
1129
+ "inputs": [
1130
+ {
1131
+ "internalType": "address",
1132
+ "name": "account",
1133
+ "type": "address"
1134
+ }
1135
+ ],
1136
+ "name": "getAccountActiveAgreements",
1137
+ "outputs": [
1138
+ {
1139
+ "internalType": "contract ISuperAgreement[]",
1140
+ "name": "",
1141
+ "type": "address[]"
1142
+ }
1143
+ ],
1144
+ "stateMutability": "view",
1145
+ "type": "function"
1146
+ },
1147
+ {
1148
+ "inputs": [
1149
+ {
1150
+ "internalType": "address",
1151
+ "name": "agreementClass",
1152
+ "type": "address"
1153
+ },
1154
+ {
1155
+ "internalType": "bytes32",
1156
+ "name": "id",
1157
+ "type": "bytes32"
1158
+ },
1159
+ {
1160
+ "internalType": "uint256",
1161
+ "name": "dataLength",
1162
+ "type": "uint256"
1163
+ }
1164
+ ],
1165
+ "name": "getAgreementData",
1166
+ "outputs": [
1167
+ {
1168
+ "internalType": "bytes32[]",
1169
+ "name": "data",
1170
+ "type": "bytes32[]"
1171
+ }
1172
+ ],
1173
+ "stateMutability": "view",
1174
+ "type": "function"
1175
+ },
1176
+ {
1177
+ "inputs": [
1178
+ {
1179
+ "internalType": "address",
1180
+ "name": "agreementClass",
1181
+ "type": "address"
1182
+ },
1183
+ {
1184
+ "internalType": "address",
1185
+ "name": "account",
1186
+ "type": "address"
1187
+ },
1188
+ {
1189
+ "internalType": "uint256",
1190
+ "name": "slotId",
1191
+ "type": "uint256"
1192
+ },
1193
+ {
1194
+ "internalType": "uint256",
1195
+ "name": "dataLength",
1196
+ "type": "uint256"
1197
+ }
1198
+ ],
1199
+ "name": "getAgreementStateSlot",
1200
+ "outputs": [
1201
+ {
1202
+ "internalType": "bytes32[]",
1203
+ "name": "slotData",
1204
+ "type": "bytes32[]"
1205
+ }
1206
+ ],
1207
+ "stateMutability": "view",
1208
+ "type": "function"
1209
+ },
1210
+ {
1211
+ "inputs": [],
1212
+ "name": "getCodeAddress",
1213
+ "outputs": [
1214
+ {
1215
+ "internalType": "address",
1216
+ "name": "codeAddress",
1217
+ "type": "address"
1218
+ }
1219
+ ],
1220
+ "stateMutability": "view",
1221
+ "type": "function"
1222
+ },
1223
+ {
1224
+ "inputs": [
1225
+ {
1226
+ "internalType": "uint256",
1227
+ "name": "amount",
1228
+ "type": "uint256"
1229
+ },
1230
+ {
1231
+ "internalType": "address",
1232
+ "name": "sender",
1233
+ "type": "address"
1234
+ },
1235
+ {
1236
+ "internalType": "address",
1237
+ "name": "recipient",
1238
+ "type": "address"
1239
+ }
1240
+ ],
1241
+ "name": "getFees",
1242
+ "outputs": [
1243
+ {
1244
+ "internalType": "uint256",
1245
+ "name": "fee",
1246
+ "type": "uint256"
1247
+ },
1248
+ {
1249
+ "internalType": "bool",
1250
+ "name": "senderPays",
1251
+ "type": "bool"
1252
+ }
1253
+ ],
1254
+ "stateMutability": "view",
1255
+ "type": "function"
1256
+ },
1257
+ {
1258
+ "inputs": [
1259
+ {
1260
+ "internalType": "uint256",
1261
+ "name": "amount",
1262
+ "type": "uint256"
1263
+ }
1264
+ ],
1265
+ "name": "getFees",
1266
+ "outputs": [
1267
+ {
1268
+ "internalType": "uint256",
1269
+ "name": "fee",
1270
+ "type": "uint256"
1271
+ },
1272
+ {
1273
+ "internalType": "bool",
1274
+ "name": "senderPays",
1275
+ "type": "bool"
1276
+ }
1277
+ ],
1278
+ "stateMutability": "view",
1279
+ "type": "function"
1280
+ },
1281
+ {
1282
+ "inputs": [],
1283
+ "name": "getHost",
1284
+ "outputs": [
1285
+ {
1286
+ "internalType": "address",
1287
+ "name": "host",
1288
+ "type": "address"
1289
+ }
1290
+ ],
1291
+ "stateMutability": "view",
1292
+ "type": "function"
1293
+ },
1294
+ {
1295
+ "inputs": [
1296
+ {
1297
+ "internalType": "bytes32",
1298
+ "name": "role",
1299
+ "type": "bytes32"
1300
+ }
1301
+ ],
1302
+ "name": "getRoleAdmin",
1303
+ "outputs": [
1304
+ {
1305
+ "internalType": "bytes32",
1306
+ "name": "",
1307
+ "type": "bytes32"
1308
+ }
1309
+ ],
1310
+ "stateMutability": "view",
1311
+ "type": "function"
1312
+ },
1313
+ {
1314
+ "inputs": [
1315
+ {
1316
+ "internalType": "bytes32",
1317
+ "name": "role",
1318
+ "type": "bytes32"
1319
+ },
1320
+ {
1321
+ "internalType": "uint256",
1322
+ "name": "index",
1323
+ "type": "uint256"
1324
+ }
1325
+ ],
1326
+ "name": "getRoleMember",
1327
+ "outputs": [
1328
+ {
1329
+ "internalType": "address",
1330
+ "name": "",
1331
+ "type": "address"
1332
+ }
1333
+ ],
1334
+ "stateMutability": "view",
1335
+ "type": "function"
1336
+ },
1337
+ {
1338
+ "inputs": [
1339
+ {
1340
+ "internalType": "bytes32",
1341
+ "name": "role",
1342
+ "type": "bytes32"
1343
+ }
1344
+ ],
1345
+ "name": "getRoleMemberCount",
1346
+ "outputs": [
1347
+ {
1348
+ "internalType": "uint256",
1349
+ "name": "",
1350
+ "type": "uint256"
1351
+ }
1352
+ ],
1353
+ "stateMutability": "view",
1354
+ "type": "function"
1355
+ },
1356
+ {
1357
+ "inputs": [],
1358
+ "name": "getUnderlyingToken",
1359
+ "outputs": [
1360
+ {
1361
+ "internalType": "address",
1362
+ "name": "",
1363
+ "type": "address"
1364
+ }
1365
+ ],
1366
+ "stateMutability": "view",
1367
+ "type": "function"
1368
+ },
1369
+ {
1370
+ "inputs": [
1371
+ {
1372
+ "internalType": "bytes32",
1373
+ "name": "role",
1374
+ "type": "bytes32"
1375
+ },
1376
+ {
1377
+ "internalType": "address",
1378
+ "name": "account",
1379
+ "type": "address"
1380
+ }
1381
+ ],
1382
+ "name": "grantRole",
1383
+ "outputs": [],
1384
+ "stateMutability": "nonpayable",
1385
+ "type": "function"
1386
+ },
1387
+ {
1388
+ "inputs": [],
1389
+ "name": "granularity",
1390
+ "outputs": [
1391
+ {
1392
+ "internalType": "uint256",
1393
+ "name": "",
1394
+ "type": "uint256"
1395
+ }
1396
+ ],
1397
+ "stateMutability": "pure",
1398
+ "type": "function"
1399
+ },
1400
+ {
1401
+ "inputs": [
1402
+ {
1403
+ "internalType": "bytes32",
1404
+ "name": "role",
1405
+ "type": "bytes32"
1406
+ },
1407
+ {
1408
+ "internalType": "address",
1409
+ "name": "account",
1410
+ "type": "address"
1411
+ }
1412
+ ],
1413
+ "name": "hasRole",
1414
+ "outputs": [
1415
+ {
1416
+ "internalType": "bool",
1417
+ "name": "",
1418
+ "type": "bool"
1419
+ }
1420
+ ],
1421
+ "stateMutability": "view",
1422
+ "type": "function"
1423
+ },
1424
+ {
1425
+ "inputs": [],
1426
+ "name": "identity",
1427
+ "outputs": [
1428
+ {
1429
+ "internalType": "contract IIdentity",
1430
+ "name": "",
1431
+ "type": "address"
1432
+ }
1433
+ ],
1434
+ "stateMutability": "view",
1435
+ "type": "function"
1436
+ },
1437
+ {
1438
+ "inputs": [
1439
+ {
1440
+ "internalType": "address",
1441
+ "name": "spender",
1442
+ "type": "address"
1443
+ },
1444
+ {
1445
+ "internalType": "uint256",
1446
+ "name": "addedValue",
1447
+ "type": "uint256"
1448
+ }
1449
+ ],
1450
+ "name": "increaseAllowance",
1451
+ "outputs": [
1452
+ {
1453
+ "internalType": "bool",
1454
+ "name": "",
1455
+ "type": "bool"
1456
+ }
1457
+ ],
1458
+ "stateMutability": "nonpayable",
1459
+ "type": "function"
1460
+ },
1461
+ {
1462
+ "inputs": [
1463
+ {
1464
+ "internalType": "contract IERC20",
1465
+ "name": "underlyingToken",
1466
+ "type": "address"
1467
+ },
1468
+ {
1469
+ "internalType": "uint8",
1470
+ "name": "underlyingDecimals",
1471
+ "type": "uint8"
1472
+ },
1473
+ {
1474
+ "internalType": "string",
1475
+ "name": "n",
1476
+ "type": "string"
1477
+ },
1478
+ {
1479
+ "internalType": "string",
1480
+ "name": "s",
1481
+ "type": "string"
1482
+ }
1483
+ ],
1484
+ "name": "initialize",
1485
+ "outputs": [],
1486
+ "stateMutability": "nonpayable",
1487
+ "type": "function"
1488
+ },
1489
+ {
1490
+ "inputs": [
1491
+ {
1492
+ "internalType": "string",
1493
+ "name": "n",
1494
+ "type": "string"
1495
+ },
1496
+ {
1497
+ "internalType": "string",
1498
+ "name": "s",
1499
+ "type": "string"
1500
+ },
1501
+ {
1502
+ "internalType": "uint256",
1503
+ "name": "_cap",
1504
+ "type": "uint256"
1505
+ },
1506
+ {
1507
+ "internalType": "contract IFeesFormula",
1508
+ "name": "_formula",
1509
+ "type": "address"
1510
+ },
1511
+ {
1512
+ "internalType": "contract IIdentity",
1513
+ "name": "_identity",
1514
+ "type": "address"
1515
+ },
1516
+ {
1517
+ "internalType": "address",
1518
+ "name": "_feeRecipient",
1519
+ "type": "address"
1520
+ },
1521
+ {
1522
+ "internalType": "address",
1523
+ "name": "_owner",
1524
+ "type": "address"
1525
+ }
1526
+ ],
1527
+ "name": "initialize",
1528
+ "outputs": [],
1529
+ "stateMutability": "nonpayable",
1530
+ "type": "function"
1531
+ },
1532
+ {
1533
+ "inputs": [
1534
+ {
1535
+ "internalType": "address",
1536
+ "name": "account",
1537
+ "type": "address"
1538
+ },
1539
+ {
1540
+ "internalType": "uint256",
1541
+ "name": "timestamp",
1542
+ "type": "uint256"
1543
+ }
1544
+ ],
1545
+ "name": "isAccountCritical",
1546
+ "outputs": [
1547
+ {
1548
+ "internalType": "bool",
1549
+ "name": "isCritical",
1550
+ "type": "bool"
1551
+ }
1552
+ ],
1553
+ "stateMutability": "view",
1554
+ "type": "function"
1555
+ },
1556
+ {
1557
+ "inputs": [
1558
+ {
1559
+ "internalType": "address",
1560
+ "name": "account",
1561
+ "type": "address"
1562
+ }
1563
+ ],
1564
+ "name": "isAccountCriticalNow",
1565
+ "outputs": [
1566
+ {
1567
+ "internalType": "bool",
1568
+ "name": "isCritical",
1569
+ "type": "bool"
1570
+ }
1571
+ ],
1572
+ "stateMutability": "view",
1573
+ "type": "function"
1574
+ },
1575
+ {
1576
+ "inputs": [
1577
+ {
1578
+ "internalType": "address",
1579
+ "name": "account",
1580
+ "type": "address"
1581
+ },
1582
+ {
1583
+ "internalType": "uint256",
1584
+ "name": "timestamp",
1585
+ "type": "uint256"
1586
+ }
1587
+ ],
1588
+ "name": "isAccountSolvent",
1589
+ "outputs": [
1590
+ {
1591
+ "internalType": "bool",
1592
+ "name": "isSolvent",
1593
+ "type": "bool"
1594
+ }
1595
+ ],
1596
+ "stateMutability": "view",
1597
+ "type": "function"
1598
+ },
1599
+ {
1600
+ "inputs": [
1601
+ {
1602
+ "internalType": "address",
1603
+ "name": "account",
1604
+ "type": "address"
1605
+ }
1606
+ ],
1607
+ "name": "isAccountSolventNow",
1608
+ "outputs": [
1609
+ {
1610
+ "internalType": "bool",
1611
+ "name": "isSolvent",
1612
+ "type": "bool"
1613
+ }
1614
+ ],
1615
+ "stateMutability": "view",
1616
+ "type": "function"
1617
+ },
1618
+ {
1619
+ "inputs": [
1620
+ {
1621
+ "internalType": "address",
1622
+ "name": "_minter",
1623
+ "type": "address"
1624
+ }
1625
+ ],
1626
+ "name": "isMinter",
1627
+ "outputs": [
1628
+ {
1629
+ "internalType": "bool",
1630
+ "name": "",
1631
+ "type": "bool"
1632
+ }
1633
+ ],
1634
+ "stateMutability": "view",
1635
+ "type": "function"
1636
+ },
1637
+ {
1638
+ "inputs": [
1639
+ {
1640
+ "internalType": "address",
1641
+ "name": "operator",
1642
+ "type": "address"
1643
+ },
1644
+ {
1645
+ "internalType": "address",
1646
+ "name": "tokenHolder",
1647
+ "type": "address"
1648
+ }
1649
+ ],
1650
+ "name": "isOperatorFor",
1651
+ "outputs": [
1652
+ {
1653
+ "internalType": "bool",
1654
+ "name": "",
1655
+ "type": "bool"
1656
+ }
1657
+ ],
1658
+ "stateMutability": "view",
1659
+ "type": "function"
1660
+ },
1661
+ {
1662
+ "inputs": [
1663
+ {
1664
+ "internalType": "address",
1665
+ "name": "_pauser",
1666
+ "type": "address"
1667
+ }
1668
+ ],
1669
+ "name": "isPauser",
1670
+ "outputs": [
1671
+ {
1672
+ "internalType": "bool",
1673
+ "name": "",
1674
+ "type": "bool"
1675
+ }
1676
+ ],
1677
+ "stateMutability": "view",
1678
+ "type": "function"
1679
+ },
1680
+ {
1681
+ "inputs": [
1682
+ {
1683
+ "internalType": "bytes32",
1684
+ "name": "id",
1685
+ "type": "bytes32"
1686
+ },
1687
+ {
1688
+ "internalType": "bytes",
1689
+ "name": "liquidationTypeData",
1690
+ "type": "bytes"
1691
+ },
1692
+ {
1693
+ "internalType": "address",
1694
+ "name": "liquidatorAccount",
1695
+ "type": "address"
1696
+ },
1697
+ {
1698
+ "internalType": "bool",
1699
+ "name": "useDefaultRewardAccount",
1700
+ "type": "bool"
1701
+ },
1702
+ {
1703
+ "internalType": "address",
1704
+ "name": "targetAccount",
1705
+ "type": "address"
1706
+ },
1707
+ {
1708
+ "internalType": "uint256",
1709
+ "name": "rewardAmount",
1710
+ "type": "uint256"
1711
+ },
1712
+ {
1713
+ "internalType": "int256",
1714
+ "name": "targetAccountBalanceDelta",
1715
+ "type": "int256"
1716
+ }
1717
+ ],
1718
+ "name": "makeLiquidationPayoutsV2",
1719
+ "outputs": [],
1720
+ "stateMutability": "nonpayable",
1721
+ "type": "function"
1722
+ },
1723
+ {
1724
+ "inputs": [
1725
+ {
1726
+ "internalType": "address",
1727
+ "name": "to",
1728
+ "type": "address"
1729
+ },
1730
+ {
1731
+ "internalType": "uint256",
1732
+ "name": "amount",
1733
+ "type": "uint256"
1734
+ }
1735
+ ],
1736
+ "name": "mint",
1737
+ "outputs": [
1738
+ {
1739
+ "internalType": "bool",
1740
+ "name": "",
1741
+ "type": "bool"
1742
+ }
1743
+ ],
1744
+ "stateMutability": "nonpayable",
1745
+ "type": "function"
1746
+ },
1747
+ {
1748
+ "inputs": [],
1749
+ "name": "name",
1750
+ "outputs": [
1751
+ {
1752
+ "internalType": "string",
1753
+ "name": "",
1754
+ "type": "string"
1755
+ }
1756
+ ],
1757
+ "stateMutability": "view",
1758
+ "type": "function"
1759
+ },
1760
+ {
1761
+ "inputs": [
1762
+ {
1763
+ "internalType": "address",
1764
+ "name": "owner",
1765
+ "type": "address"
1766
+ }
1767
+ ],
1768
+ "name": "nonces",
1769
+ "outputs": [
1770
+ {
1771
+ "internalType": "uint256",
1772
+ "name": "",
1773
+ "type": "uint256"
1774
+ }
1775
+ ],
1776
+ "stateMutability": "view",
1777
+ "type": "function"
1778
+ },
1779
+ {
1780
+ "inputs": [
1781
+ {
1782
+ "internalType": "address",
1783
+ "name": "account",
1784
+ "type": "address"
1785
+ },
1786
+ {
1787
+ "internalType": "address",
1788
+ "name": "spender",
1789
+ "type": "address"
1790
+ },
1791
+ {
1792
+ "internalType": "uint256",
1793
+ "name": "amount",
1794
+ "type": "uint256"
1795
+ }
1796
+ ],
1797
+ "name": "operationApprove",
1798
+ "outputs": [],
1799
+ "stateMutability": "nonpayable",
1800
+ "type": "function"
1801
+ },
1802
+ {
1803
+ "inputs": [
1804
+ {
1805
+ "internalType": "address",
1806
+ "name": "account",
1807
+ "type": "address"
1808
+ },
1809
+ {
1810
+ "internalType": "uint256",
1811
+ "name": "amount",
1812
+ "type": "uint256"
1813
+ }
1814
+ ],
1815
+ "name": "operationDowngrade",
1816
+ "outputs": [],
1817
+ "stateMutability": "nonpayable",
1818
+ "type": "function"
1819
+ },
1820
+ {
1821
+ "inputs": [
1822
+ {
1823
+ "internalType": "address",
1824
+ "name": "account",
1825
+ "type": "address"
1826
+ },
1827
+ {
1828
+ "internalType": "address",
1829
+ "name": "spender",
1830
+ "type": "address"
1831
+ },
1832
+ {
1833
+ "internalType": "address",
1834
+ "name": "recipient",
1835
+ "type": "address"
1836
+ },
1837
+ {
1838
+ "internalType": "uint256",
1839
+ "name": "amount",
1840
+ "type": "uint256"
1841
+ }
1842
+ ],
1843
+ "name": "operationTransferFrom",
1844
+ "outputs": [],
1845
+ "stateMutability": "nonpayable",
1846
+ "type": "function"
1847
+ },
1848
+ {
1849
+ "inputs": [
1850
+ {
1851
+ "internalType": "address",
1852
+ "name": "account",
1853
+ "type": "address"
1854
+ },
1855
+ {
1856
+ "internalType": "uint256",
1857
+ "name": "amount",
1858
+ "type": "uint256"
1859
+ }
1860
+ ],
1861
+ "name": "operationUpgrade",
1862
+ "outputs": [],
1863
+ "stateMutability": "nonpayable",
1864
+ "type": "function"
1865
+ },
1866
+ {
1867
+ "inputs": [
1868
+ {
1869
+ "internalType": "address",
1870
+ "name": "account",
1871
+ "type": "address"
1872
+ },
1873
+ {
1874
+ "internalType": "uint256",
1875
+ "name": "amount",
1876
+ "type": "uint256"
1877
+ },
1878
+ {
1879
+ "internalType": "bytes",
1880
+ "name": "data",
1881
+ "type": "bytes"
1882
+ },
1883
+ {
1884
+ "internalType": "bytes",
1885
+ "name": "operatorData",
1886
+ "type": "bytes"
1887
+ }
1888
+ ],
1889
+ "name": "operatorBurn",
1890
+ "outputs": [],
1891
+ "stateMutability": "nonpayable",
1892
+ "type": "function"
1893
+ },
1894
+ {
1895
+ "inputs": [
1896
+ {
1897
+ "internalType": "address",
1898
+ "name": "sender",
1899
+ "type": "address"
1900
+ },
1901
+ {
1902
+ "internalType": "address",
1903
+ "name": "recipient",
1904
+ "type": "address"
1905
+ },
1906
+ {
1907
+ "internalType": "uint256",
1908
+ "name": "amount",
1909
+ "type": "uint256"
1910
+ },
1911
+ {
1912
+ "internalType": "bytes",
1913
+ "name": "data",
1914
+ "type": "bytes"
1915
+ },
1916
+ {
1917
+ "internalType": "bytes",
1918
+ "name": "operatorData",
1919
+ "type": "bytes"
1920
+ }
1921
+ ],
1922
+ "name": "operatorSend",
1923
+ "outputs": [],
1924
+ "stateMutability": "nonpayable",
1925
+ "type": "function"
1926
+ },
1927
+ {
1928
+ "inputs": [],
1929
+ "name": "owner",
1930
+ "outputs": [
1931
+ {
1932
+ "internalType": "address",
1933
+ "name": "",
1934
+ "type": "address"
1935
+ }
1936
+ ],
1937
+ "stateMutability": "view",
1938
+ "type": "function"
1939
+ },
1940
+ {
1941
+ "inputs": [],
1942
+ "name": "pause",
1943
+ "outputs": [],
1944
+ "stateMutability": "nonpayable",
1945
+ "type": "function"
1946
+ },
1947
+ {
1948
+ "inputs": [],
1949
+ "name": "paused",
1950
+ "outputs": [
1951
+ {
1952
+ "internalType": "bool",
1953
+ "name": "",
1954
+ "type": "bool"
1955
+ }
1956
+ ],
1957
+ "stateMutability": "view",
1958
+ "type": "function"
1959
+ },
1960
+ {
1961
+ "inputs": [
1962
+ {
1963
+ "internalType": "address",
1964
+ "name": "owner",
1965
+ "type": "address"
1966
+ },
1967
+ {
1968
+ "internalType": "address",
1969
+ "name": "spender",
1970
+ "type": "address"
1971
+ },
1972
+ {
1973
+ "internalType": "uint256",
1974
+ "name": "value",
1975
+ "type": "uint256"
1976
+ },
1977
+ {
1978
+ "internalType": "uint256",
1979
+ "name": "deadline",
1980
+ "type": "uint256"
1981
+ },
1982
+ {
1983
+ "internalType": "uint8",
1984
+ "name": "v",
1985
+ "type": "uint8"
1986
+ },
1987
+ {
1988
+ "internalType": "bytes32",
1989
+ "name": "r",
1990
+ "type": "bytes32"
1991
+ },
1992
+ {
1993
+ "internalType": "bytes32",
1994
+ "name": "s",
1995
+ "type": "bytes32"
1996
+ }
1997
+ ],
1998
+ "name": "permit",
1999
+ "outputs": [],
2000
+ "stateMutability": "nonpayable",
2001
+ "type": "function"
2002
+ },
2003
+ {
2004
+ "inputs": [],
2005
+ "name": "proxiableUUID",
2006
+ "outputs": [
2007
+ {
2008
+ "internalType": "bytes32",
2009
+ "name": "",
2010
+ "type": "bytes32"
2011
+ }
2012
+ ],
2013
+ "stateMutability": "pure",
2014
+ "type": "function"
2015
+ },
2016
+ {
2017
+ "inputs": [
2018
+ {
2019
+ "internalType": "address",
2020
+ "name": "account",
2021
+ "type": "address"
2022
+ },
2023
+ {
2024
+ "internalType": "uint256",
2025
+ "name": "timestamp",
2026
+ "type": "uint256"
2027
+ }
2028
+ ],
2029
+ "name": "realtimeBalanceOf",
2030
+ "outputs": [
2031
+ {
2032
+ "internalType": "int256",
2033
+ "name": "availableBalance",
2034
+ "type": "int256"
2035
+ },
2036
+ {
2037
+ "internalType": "uint256",
2038
+ "name": "deposit",
2039
+ "type": "uint256"
2040
+ },
2041
+ {
2042
+ "internalType": "uint256",
2043
+ "name": "owedDeposit",
2044
+ "type": "uint256"
2045
+ }
2046
+ ],
2047
+ "stateMutability": "view",
2048
+ "type": "function"
2049
+ },
2050
+ {
2051
+ "inputs": [
2052
+ {
2053
+ "internalType": "address",
2054
+ "name": "account",
2055
+ "type": "address"
2056
+ }
2057
+ ],
2058
+ "name": "realtimeBalanceOfNow",
2059
+ "outputs": [
2060
+ {
2061
+ "internalType": "int256",
2062
+ "name": "availableBalance",
2063
+ "type": "int256"
2064
+ },
2065
+ {
2066
+ "internalType": "uint256",
2067
+ "name": "deposit",
2068
+ "type": "uint256"
2069
+ },
2070
+ {
2071
+ "internalType": "uint256",
2072
+ "name": "owedDeposit",
2073
+ "type": "uint256"
2074
+ },
2075
+ {
2076
+ "internalType": "uint256",
2077
+ "name": "timestamp",
2078
+ "type": "uint256"
2079
+ }
2080
+ ],
2081
+ "stateMutability": "view",
2082
+ "type": "function"
2083
+ },
2084
+ {
2085
+ "inputs": [],
2086
+ "name": "renounceMinter",
2087
+ "outputs": [],
2088
+ "stateMutability": "nonpayable",
2089
+ "type": "function"
2090
+ },
2091
+ {
2092
+ "inputs": [
2093
+ {
2094
+ "internalType": "bytes32",
2095
+ "name": "role",
2096
+ "type": "bytes32"
2097
+ },
2098
+ {
2099
+ "internalType": "address",
2100
+ "name": "account",
2101
+ "type": "address"
2102
+ }
2103
+ ],
2104
+ "name": "renounceRole",
2105
+ "outputs": [],
2106
+ "stateMutability": "nonpayable",
2107
+ "type": "function"
2108
+ },
2109
+ {
2110
+ "inputs": [
2111
+ {
2112
+ "internalType": "address",
2113
+ "name": "operator",
2114
+ "type": "address"
2115
+ }
2116
+ ],
2117
+ "name": "revokeOperator",
2118
+ "outputs": [],
2119
+ "stateMutability": "nonpayable",
2120
+ "type": "function"
2121
+ },
2122
+ {
2123
+ "inputs": [
2124
+ {
2125
+ "internalType": "bytes32",
2126
+ "name": "role",
2127
+ "type": "bytes32"
2128
+ },
2129
+ {
2130
+ "internalType": "address",
2131
+ "name": "account",
2132
+ "type": "address"
2133
+ }
2134
+ ],
2135
+ "name": "revokeRole",
2136
+ "outputs": [],
2137
+ "stateMutability": "nonpayable",
2138
+ "type": "function"
2139
+ },
2140
+ {
2141
+ "inputs": [
2142
+ {
2143
+ "internalType": "address",
2144
+ "name": "account",
2145
+ "type": "address"
2146
+ },
2147
+ {
2148
+ "internalType": "address",
2149
+ "name": "spender",
2150
+ "type": "address"
2151
+ },
2152
+ {
2153
+ "internalType": "uint256",
2154
+ "name": "amount",
2155
+ "type": "uint256"
2156
+ }
2157
+ ],
2158
+ "name": "selfApproveFor",
2159
+ "outputs": [],
2160
+ "stateMutability": "nonpayable",
2161
+ "type": "function"
2162
+ },
2163
+ {
2164
+ "inputs": [
2165
+ {
2166
+ "internalType": "address",
2167
+ "name": "account",
2168
+ "type": "address"
2169
+ },
2170
+ {
2171
+ "internalType": "uint256",
2172
+ "name": "amount",
2173
+ "type": "uint256"
2174
+ },
2175
+ {
2176
+ "internalType": "bytes",
2177
+ "name": "userData",
2178
+ "type": "bytes"
2179
+ }
2180
+ ],
2181
+ "name": "selfBurn",
2182
+ "outputs": [],
2183
+ "stateMutability": "nonpayable",
2184
+ "type": "function"
2185
+ },
2186
+ {
2187
+ "inputs": [
2188
+ {
2189
+ "internalType": "address",
2190
+ "name": "account",
2191
+ "type": "address"
2192
+ },
2193
+ {
2194
+ "internalType": "uint256",
2195
+ "name": "amount",
2196
+ "type": "uint256"
2197
+ },
2198
+ {
2199
+ "internalType": "bytes",
2200
+ "name": "userData",
2201
+ "type": "bytes"
2202
+ }
2203
+ ],
2204
+ "name": "selfMint",
2205
+ "outputs": [],
2206
+ "stateMutability": "nonpayable",
2207
+ "type": "function"
2208
+ },
2209
+ {
2210
+ "inputs": [
2211
+ {
2212
+ "internalType": "address",
2213
+ "name": "holder",
2214
+ "type": "address"
2215
+ },
2216
+ {
2217
+ "internalType": "address",
2218
+ "name": "spender",
2219
+ "type": "address"
2220
+ },
2221
+ {
2222
+ "internalType": "address",
2223
+ "name": "recipient",
2224
+ "type": "address"
2225
+ },
2226
+ {
2227
+ "internalType": "uint256",
2228
+ "name": "amount",
2229
+ "type": "uint256"
2230
+ }
2231
+ ],
2232
+ "name": "selfTransferFrom",
2233
+ "outputs": [],
2234
+ "stateMutability": "nonpayable",
2235
+ "type": "function"
2236
+ },
2237
+ {
2238
+ "inputs": [
2239
+ {
2240
+ "internalType": "address",
2241
+ "name": "recipient",
2242
+ "type": "address"
2243
+ },
2244
+ {
2245
+ "internalType": "uint256",
2246
+ "name": "amount",
2247
+ "type": "uint256"
2248
+ },
2249
+ {
2250
+ "internalType": "bytes",
2251
+ "name": "data",
2252
+ "type": "bytes"
2253
+ }
2254
+ ],
2255
+ "name": "send",
2256
+ "outputs": [],
2257
+ "stateMutability": "nonpayable",
2258
+ "type": "function"
2259
+ },
2260
+ {
2261
+ "inputs": [
2262
+ {
2263
+ "internalType": "address",
2264
+ "name": "_feeRecipient",
2265
+ "type": "address"
2266
+ }
2267
+ ],
2268
+ "name": "setFeeRecipient",
2269
+ "outputs": [],
2270
+ "stateMutability": "nonpayable",
2271
+ "type": "function"
2272
+ },
2273
+ {
2274
+ "inputs": [
2275
+ {
2276
+ "internalType": "contract IFeesFormula",
2277
+ "name": "_formula",
2278
+ "type": "address"
2279
+ }
2280
+ ],
2281
+ "name": "setFormula",
2282
+ "outputs": [],
2283
+ "stateMutability": "nonpayable",
2284
+ "type": "function"
2285
+ },
2286
+ {
2287
+ "inputs": [
2288
+ {
2289
+ "internalType": "contract IIdentityV2",
2290
+ "name": "_identity",
2291
+ "type": "address"
2292
+ }
2293
+ ],
2294
+ "name": "setIdentity",
2295
+ "outputs": [],
2296
+ "stateMutability": "nonpayable",
2297
+ "type": "function"
2298
+ },
2299
+ {
2300
+ "inputs": [
2301
+ {
2302
+ "internalType": "address",
2303
+ "name": "account",
2304
+ "type": "address"
2305
+ },
2306
+ {
2307
+ "internalType": "int256",
2308
+ "name": "delta",
2309
+ "type": "int256"
2310
+ }
2311
+ ],
2312
+ "name": "settleBalance",
2313
+ "outputs": [],
2314
+ "stateMutability": "nonpayable",
2315
+ "type": "function"
2316
+ },
2317
+ {
2318
+ "inputs": [
2319
+ {
2320
+ "internalType": "bytes4",
2321
+ "name": "interfaceId",
2322
+ "type": "bytes4"
2323
+ }
2324
+ ],
2325
+ "name": "supportsInterface",
2326
+ "outputs": [
2327
+ {
2328
+ "internalType": "bool",
2329
+ "name": "",
2330
+ "type": "bool"
2331
+ }
2332
+ ],
2333
+ "stateMutability": "view",
2334
+ "type": "function"
2335
+ },
2336
+ {
2337
+ "inputs": [],
2338
+ "name": "symbol",
2339
+ "outputs": [
2340
+ {
2341
+ "internalType": "string",
2342
+ "name": "",
2343
+ "type": "string"
2344
+ }
2345
+ ],
2346
+ "stateMutability": "view",
2347
+ "type": "function"
2348
+ },
2349
+ {
2350
+ "inputs": [
2351
+ {
2352
+ "internalType": "bytes32",
2353
+ "name": "id",
2354
+ "type": "bytes32"
2355
+ },
2356
+ {
2357
+ "internalType": "uint256",
2358
+ "name": "dataLength",
2359
+ "type": "uint256"
2360
+ }
2361
+ ],
2362
+ "name": "terminateAgreement",
2363
+ "outputs": [],
2364
+ "stateMutability": "nonpayable",
2365
+ "type": "function"
2366
+ },
2367
+ {
2368
+ "inputs": [],
2369
+ "name": "totalSupply",
2370
+ "outputs": [
2371
+ {
2372
+ "internalType": "uint256",
2373
+ "name": "",
2374
+ "type": "uint256"
2375
+ }
2376
+ ],
2377
+ "stateMutability": "view",
2378
+ "type": "function"
2379
+ },
2380
+ {
2381
+ "inputs": [
2382
+ {
2383
+ "internalType": "address",
2384
+ "name": "to",
2385
+ "type": "address"
2386
+ },
2387
+ {
2388
+ "internalType": "uint256",
2389
+ "name": "amount",
2390
+ "type": "uint256"
2391
+ }
2392
+ ],
2393
+ "name": "transfer",
2394
+ "outputs": [
2395
+ {
2396
+ "internalType": "bool",
2397
+ "name": "",
2398
+ "type": "bool"
2399
+ }
2400
+ ],
2401
+ "stateMutability": "nonpayable",
2402
+ "type": "function"
2403
+ },
2404
+ {
2405
+ "inputs": [
2406
+ {
2407
+ "internalType": "address",
2408
+ "name": "recipient",
2409
+ "type": "address"
2410
+ }
2411
+ ],
2412
+ "name": "transferAll",
2413
+ "outputs": [],
2414
+ "stateMutability": "nonpayable",
2415
+ "type": "function"
2416
+ },
2417
+ {
2418
+ "inputs": [
2419
+ {
2420
+ "internalType": "address",
2421
+ "name": "to",
2422
+ "type": "address"
2423
+ },
2424
+ {
2425
+ "internalType": "uint256",
2426
+ "name": "amount",
2427
+ "type": "uint256"
2428
+ },
2429
+ {
2430
+ "internalType": "bytes",
2431
+ "name": "data",
2432
+ "type": "bytes"
2433
+ }
2434
+ ],
2435
+ "name": "transferAndCall",
2436
+ "outputs": [
2437
+ {
2438
+ "internalType": "bool",
2439
+ "name": "",
2440
+ "type": "bool"
2441
+ }
2442
+ ],
2443
+ "stateMutability": "nonpayable",
2444
+ "type": "function"
2445
+ },
2446
+ {
2447
+ "inputs": [
2448
+ {
2449
+ "internalType": "address",
2450
+ "name": "holder",
2451
+ "type": "address"
2452
+ },
2453
+ {
2454
+ "internalType": "address",
2455
+ "name": "recipient",
2456
+ "type": "address"
2457
+ },
2458
+ {
2459
+ "internalType": "uint256",
2460
+ "name": "amount",
2461
+ "type": "uint256"
2462
+ }
2463
+ ],
2464
+ "name": "transferFrom",
2465
+ "outputs": [
2466
+ {
2467
+ "internalType": "bool",
2468
+ "name": "",
2469
+ "type": "bool"
2470
+ }
2471
+ ],
2472
+ "stateMutability": "nonpayable",
2473
+ "type": "function"
2474
+ },
2475
+ {
2476
+ "inputs": [
2477
+ {
2478
+ "internalType": "address",
2479
+ "name": "_owner",
2480
+ "type": "address"
2481
+ }
2482
+ ],
2483
+ "name": "transferOwnership",
2484
+ "outputs": [],
2485
+ "stateMutability": "nonpayable",
2486
+ "type": "function"
2487
+ },
2488
+ {
2489
+ "inputs": [],
2490
+ "name": "unpause",
2491
+ "outputs": [],
2492
+ "stateMutability": "nonpayable",
2493
+ "type": "function"
2494
+ },
2495
+ {
2496
+ "inputs": [
2497
+ {
2498
+ "internalType": "bytes32",
2499
+ "name": "id",
2500
+ "type": "bytes32"
2501
+ },
2502
+ {
2503
+ "internalType": "bytes32[]",
2504
+ "name": "data",
2505
+ "type": "bytes32[]"
2506
+ }
2507
+ ],
2508
+ "name": "updateAgreementData",
2509
+ "outputs": [],
2510
+ "stateMutability": "nonpayable",
2511
+ "type": "function"
2512
+ },
2513
+ {
2514
+ "inputs": [
2515
+ {
2516
+ "internalType": "address",
2517
+ "name": "account",
2518
+ "type": "address"
2519
+ },
2520
+ {
2521
+ "internalType": "uint256",
2522
+ "name": "slotId",
2523
+ "type": "uint256"
2524
+ },
2525
+ {
2526
+ "internalType": "bytes32[]",
2527
+ "name": "slotData",
2528
+ "type": "bytes32[]"
2529
+ }
2530
+ ],
2531
+ "name": "updateAgreementStateSlot",
2532
+ "outputs": [],
2533
+ "stateMutability": "nonpayable",
2534
+ "type": "function"
2535
+ },
2536
+ {
2537
+ "inputs": [
2538
+ {
2539
+ "internalType": "address",
2540
+ "name": "newAddress",
2541
+ "type": "address"
2542
+ }
2543
+ ],
2544
+ "name": "updateCode",
2545
+ "outputs": [],
2546
+ "stateMutability": "nonpayable",
2547
+ "type": "function"
2548
+ },
2549
+ {
2550
+ "inputs": [
2551
+ {
2552
+ "internalType": "uint256",
2553
+ "name": "amount",
2554
+ "type": "uint256"
2555
+ }
2556
+ ],
2557
+ "name": "upgrade",
2558
+ "outputs": [],
2559
+ "stateMutability": "nonpayable",
2560
+ "type": "function"
2561
+ },
2562
+ {
2563
+ "inputs": [
2564
+ {
2565
+ "internalType": "address",
2566
+ "name": "to",
2567
+ "type": "address"
2568
+ },
2569
+ {
2570
+ "internalType": "uint256",
2571
+ "name": "amount",
2572
+ "type": "uint256"
2573
+ },
2574
+ {
2575
+ "internalType": "bytes",
2576
+ "name": "data",
2577
+ "type": "bytes"
2578
+ }
2579
+ ],
2580
+ "name": "upgradeTo",
2581
+ "outputs": [],
2582
+ "stateMutability": "nonpayable",
2583
+ "type": "function"
2584
+ }
2585
+ ],
2586
+ "bytecode": "0x60a06040523480156200001157600080fd5b5060405162005c0738038062005c07833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b608051615b18620000ef6000396000818161050401528181610d4101528181610dc40152818161106c0152818161117e015281816112f10152818161184d015281816119e801528181611f1a0152818161203101528181612a0d01528181612ab401528181613fe0015261477f0152615b186000f3fe608060405234801561001057600080fd5b506004361061042a5760003560e01c806301ffc9a71461042f57806306e485381461045757806306fdde031461046c578063090c415e14610481578063095ea7b31461049657806311bcc81e146104a957806312a6a3f8146104b757806316d055d6146104ca57806318160ddd146104dd5780631863e809146104ef57806320bc44251461050257806323b872dd14610531578063245887fc14610544578063248a9ca314610557578063270483971461056a5780632c159a1a1461057d5780632ec8eec7146105915780632f2ff15d146105c4578063313ce567146105d7578063355274ea146105e65780633644e515146105f057806336568abe146105f8578063386fa2211461060b57806339364fd71461061e57806339509351146106465780633f4ba83a146106595780634000aea01461066157806340c10f191461067457806341b706be1461068757806342966c681461069a57806342fe0980146106ad5780634414744f146106c057806345977d03146104a957806346904840146106ce57806346951954146106e257806346fbf68e146106f55780634b61cc33146107085780634b75f54f1461072857806350d75d251461073c57806352d1902d14610744578063556f0dc71461074c5780635b9d09cc146107535780635c975abb146107615780635d5bf1781461076c57806362aa52871461077f57806362ad1b831461079257806366a12fb6146107a55780636c2d9f2f146107b857806370a08231146107cb57806379359f6f146107de57806379cc6790146107f15780637ecebe001461080457806382dc1ec41461082e5780638456cb59146108415780638da5cb5b146108495780639010d07c1461085157806391d1485414610864578063959b8c3f1461087757806395d89b411461088a578063983b2d561461089257806398650275146108a55780639903ad38146108ad5780639bd9bbc6146108b55780639d876741146108c8578063a1b2bf8b146108db578063a217fddf146108ee578063a3a7e7f3146108f6578063a457c2d714610909578063a9059cbb1461091c578063aa271e1a1461092f578063b84cdd4a14610942578063bb0d196e14610955578063c3187f6214610968578063c68d42831461097b578063ca15c8731461098e578063ca78946414610544578063cf97256d146109a1578063d505accf146109b4578063d5391393146109c7578063d547741f146109dc578063d5a06d4c146109ef578063d95b637114610a02578063d9d078d614610a15578063dd62ed3e14610a28578063dea7f11214610a61578063e63ab1e914610a74578063e74b981b14610a89578063eb3537cc14610a9c578063ecc06c7614610aca578063ee719bc814610add578063f2fde38b14610aee578063fad8b32a14610b01578063fc673c4f14610b14578063fe9d930314610b22575b600080fd5b61044261043d366004614876565b610b30565b60405190151581526020015b60405180910390f35b61045f610b5b565b60405161044e91906148a0565b610474610b6c565b60405161044e919061493d565b61049461048f3660046149b0565b610bfe565b005b6104426104a4366004614a0b565b610cb2565b61049461042a366004614a37565b6104946104c5366004614a50565b610cc8565b6104946104d8366004614a9b565b610d3f565b6003545b60405190815260200161044e565b6104946104fd366004614baf565b610dad565b7f00000000000000000000000000000000000000000000000000000000000000005b60405161044e9190614c41565b61044261053f366004614c55565b611052565b610494610552366004614a0b565b61106a565b6104e1610565366004614a37565b6110c5565b610494610578366004614c96565b6110da565b61015254610524906001600160a01b031681565b6105a461059f366004614cb8565b611176565b60408051948552602085019390935291830152606082015260800161044e565b6104946105d2366004614cd5565b611219565b6040516012815260200161044e565b6104e16101535481565b6104e1611235565b610494610606366004614cd5565b61123f565b61045f610619366004614cb8565b6112bd565b61063161062c366004614d05565b611360565b6040805192835290151560208301520161044e565b610442610654366004614a0b565b6113e6565b610494611422565b61044261066f366004614d88565b611460565b610442610682366004614a0b565b6114ac565b610494610695366004614a9b565b6115e8565b6104946106a8366004614a37565b611614565b6104946106bb366004614ded565b6116a1565b610154546104429060ff1681565b61015054610524906001600160a01b031681565b6104946106f0366004614cb8565b611744565b610442610703366004614cb8565b611774565b61071b610716366004614e7f565b61178e565b60405161044e9190614ec5565b61015154610524906001600160a01b031681565b6105246117d3565b6104e16117dd565b60016104e1565b61049461042a366004614d88565b60e85460ff16610442565b61049461077a366004614cb8565b611801565b61049461078d366004614c55565b61184b565b6104946107a0366004614efd565b6118b1565b6104946107b3366004614c55565b61195f565b61071b6107c6366004614f9b565b61197f565b6104e16107d9366004614cb8565b6119b8565b6104426107ec366004614cb8565b6119e0565b6104946107ff366004614a0b565b611a68565b6104e1610812366004614cb8565b6001600160a01b0316600090815261014e602052604090205490565b61049461083c366004614cb8565b611b0f565b610494611b27565b610524611b63565b61052461085f366004614c96565b611b6b565b610442610872366004614cd5565b611b83565b610494610885366004614cb8565b611bae565b610474611bff565b6104946108a0366004614cb8565b611c0e565b610494611c26565b610494611c3e565b6104946108c3366004614d88565b611cf5565b6104946108d6366004614fd0565b611d4f565b6104946108e9366004614a50565b611d7d565b6104e1600081565b610494610904366004614cb8565b611e36565b610442610917366004614a0b565b611e4a565b61044261092a366004614a0b565b611e99565b61044261093d366004614cb8565b611ea7565b610442610950366004614a0b565b611ec1565b610442610963366004614cb8565b611f12565b610494610976366004615028565b611f9a565b610494610989366004614fd0565b611fd4565b6104e161099c366004614a37565b612003565b6104946109af366004614a0b565b61201a565b6104946109c2366004615045565b612108565b6104e1600080516020615a7683398151915281565b6104946109ea366004614cd5565b61229d565b6106316109fd366004614a37565b6122b9565b610442610a103660046150b3565b61233c565b610442610a23366004614a0b565b61234a565b6104e1610a363660046150b3565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b610494610a6f3660046150e1565b612364565b6104e1600080516020615a5683398151915281565b610494610a97366004614cb8565b612504565b610aaf610aaa366004614a0b565b61254e565b6040805193845260208401929092529082015260600161044e565b610494610ad8366004614cb8565b61267d565b600e546001600160a01b0316610524565b610494610afc366004614cb8565b6126c7565b610494610b0f366004614cb8565b612704565b61049461042a3660046151a4565b61049461042a3660046151eb565b60006001600160e01b03198216635a05180f60e01b1480610b555750610b5582612755565b92915050565b6060610b67601261278a565b905090565b6060600f8054610b7b90615229565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba790615229565b8015610bf45780601f10610bc957610100808354040283529160200191610bf4565b820191906000526020600020905b815481529060010190602001808311610bd757829003601f168201915b5050505050905090565b6000338585604051602001610c1593929190615263565b604051602081830303815290604052805190602001209050610c6a818484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127f092505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b6000610cbf338484612831565b50600192915050565b60e85460ff1615610d2f5760405162461bcd60e51b815260206004820152602660248201527f5061757361626c653a2063726561746541677265656d656e74207768696c65206044820152651c185d5cd95960d21b60648201526084015b60405180910390fd5b610d3a8383836128e1565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633141580610d7c57506101545460ff1615155b15610d9a5760405163c51efddd60e01b815260040160405180910390fd5b610da6848484846129b5565b5050505050565b604051632329212160e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638ca4848490610df9903390600401614c41565b602060405180830381865afa158015610e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3a91906152ac565b610e575760405163327fd99160e21b815260040160405180910390fd5b6000610e61612a08565b90506001600160a01b038116610e745750845b600085610e815786610e83565b815b905060008313610f2057610e96836152df565b610e9f85612b47565b14610eac57610eac6152fb565b610eb584612b47565b6001600160a01b03821660009081526002602052604081208054909190610edd908490615311565b90915550506001600160a01b03851660009081526002602052604081208054859290610f0a908490615311565b90915550610f1b9050858286612bb5565b610fea565b8515610f2e57610f2e6152fb565b82610f3885612b47565b610f429190615311565b6001600160a01b03831660009081526002602052604081208054909190610f6a908490615339565b90915550610f79905084612b47565b6001600160a01b03881660009081526002602052604081208054909190610fa1908490615311565b90915550506001600160a01b03851660009081526002602052604081208054859290610fce908490615311565b90915550610fdf9050828886612bb5565b610fea828685612bb5565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f60405161103f959493929190615359565b60405180910390a4505050505050505050565b6000611060338585856129b5565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331415806110a757506101545460ff1615155b1561042a5760405163c51efddd60e01b815260040160405180910390fd5b60009081526084602052604090206001015490565b60405133906000906110f29083908690602001615397565b6040516020818303038152906040528051906020012090506111148184612be8565b6111315760405163dae1880960e01b815260040160405180910390fd5b61113b8184612c24565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fe91906153d4565b905061120a858261254e565b91979096509094509092509050565b611222826110c5565b61122b81612c45565b610d3a8383612c4f565b6000610b67612c71565b6001600160a01b03811633146112af5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610d26565b6112b98282612cee565b5050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611338573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b5591908101906153ed565b61015154604051631eed540360e11b815260009182916001600160a01b0390911690633ddaa8069061139a9088908890889060040161549e565b6040805180830381865afa1580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da91906154bd565b91509150935093915050565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610cbf91859061141d9086906154e2565b612831565b61143a600080516020615a5683398151915233611b83565b6114565760405162461bcd60e51b8152600401610d26906154f5565b61145e612d10565b565b60006114a3858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d5c92505050565b95945050505050565b60006114c6600080516020615a7683398151915233611b83565b6114ff5760405162461bcd60e51b815260206004820152600a6024820152693737ba1036b4b73a32b960b11b6044820152606401610d26565b60e85460ff16156115225760405162461bcd60e51b8152600401610d2690615519565b610153541561159b57610153548261153960035490565b61154391906154e2565b111561159b5760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420696e63726561736520737570706c79206265796f6e642063616044820152600760fc1b6064820152608401610d26565b60408051600080825260208201909252610cbf9133918691869160005b6040519080825280601f01601f1916602001820160405280156115e2576020820181803683370190505b50612e11565b33301461160857604051630fff4cc960e31b815260040160405180910390fd5b610da6838584846129b5565b60e85460ff16156116375760405162461bcd60e51b8152600401610d2690615519565b61169e33808360005b6040519080825280601f01601f19166020018201604052801561166a576020820181803683370190505b5060005b6040519080825280601f01601f191660200182016040528015611698576020820181803683370190505b50612ecd565b50565b600054610100900460ff166116c85760405162461bcd60e51b8152600401610d269061555e565b600e805460ff8716600160a01b026001600160a81b03199091166001600160a01b03891617179055600f6116fd8486836155f7565b50601061170b8284836155f7565b5061171530612f88565b6040516000808252908190600080516020615a96833981519152906020015b60405180910390a3505050505050565b61174f600033611b83565b61176b5760405162461bcd60e51b8152600401610d26906156b6565b61169e8161309e565b6000610b55600080516020615a5683398151915283611b83565b606060008585856040516020016117a793929190615263565b6040516020818303038152906040528051906020012090506117c98184613270565b9695505050505050565b6000610b676132ff565b7f596aa569dfde75b0375e5ba62bcfe0e1ce76eaca6130ef1c259fade04cb78b6890565b61180c600033611b83565b6118285760405162461bcd60e51b8152600401610d26906156b6565b61015280546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314158061188857506101545460ff1615155b156118a65760405163c51efddd60e01b815260040160405180910390fd5b610d3a838383612831565b336118be6012828a613312565b6118db5760405163f7f0222760e01b815260040160405180910390fd5b6119558189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600092019190915250600192506133bb915050565b5050505050505050565b3330146118a657604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611996929190615397565b6040516020818303038152906040528051906020012090506114a38184613270565b6000806119c483611176565b5050509050600081126119d75780611063565b60009392505050565b6000610b55827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2391906153d4565b6000611a748333610a36565b905081811015611ad25760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610d26565b60e85460ff1615611af55760405162461bcd60e51b8152600401610d2690615519565b611b028333848403612831565b610d3a3384846000611640565b61169e600080516020615a5683398151915282611219565b611b3f600080516020615a5683398151915233611b83565b611b5b5760405162461bcd60e51b8152600401610d26906154f5565b61145e61343d565b6000610b6781805b600082815260b660205260408120611063908361347a565b60009182526084602090815260408084206001600160a01b0393909316845291905290205460ff1690565b33611bbb60128284613486565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610b7b90615229565b61169e600080516020615a7683398151915282611219565b61145e600080516020615a768339815191523361123f565b600054610100900460ff1615808015611c5e5750600054600160ff909116105b80611c7f5750611c6d3061358a565b158015611c7f575060005460ff166001145b611c9b5760405162461bcd60e51b8152600401610d26906156d9565b6000805460ff191660011790558015611cbe576000805461ff0019166101001790555b801561169e576000805461ff001916905560405160018152600080516020615a36833981519152906020015b60405180910390a150565b611d493333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506133bb9050565b50505050565b333014611d6f57604051630fff4cc960e31b815260040160405180910390fd5b610d3a33848484600061166e565b6040513390600090611d959083908790602001615397565b604051602081830303815290604052805190602001209050611dea818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127f092505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051611e2793929190615727565b60405180910390a25050505050565b6112b9333383611e45336119b8565b6129b5565b6000610cbf338461141d856040518060600160405280602a8152602001615a0c602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190613599565b6000611063333385856129b5565b6000610b55600080516020615a7683398151915283611b83565b600080600080611ed1868661254e565b9250925092506000611ef9828411611eea576000612b47565b611ef48385615768565b612b47565b611f039085615311565b60001315979650505050505050565b6000610b55827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f76573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095091906153d4565b611fa5600033611b83565b611fc15760405162461bcd60e51b8152600401610d26906156b6565b610154805460ff19169115919091179055565b333014611ff457604051630fff4cc960e31b815260040160405180910390fd5b610d3a338484600085816115b8565b600081815260b660205260408120610b55906135c5565b604051632329212160e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638ca4848490612066903390600401614c41565b602060405180830381865afa158015612083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a791906152ac565b6120c45760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b0382166000908152600260205260409020546120e8908290615311565b6001600160a01b0390921660009081526002602052604090209190915550565b834211156121585760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610d26565b600061014f5488888861216a8c6135cf565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006121c582613601565b905060006121d58287878761364f565b9050896001600160a01b0316816001600160a01b0316146122385760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610d26565b60405163335097db60e11b815230906366a12fb69061225f908d908d908d9060040161577b565b600060405180830381600087803b15801561227957600080fd5b505af115801561228d573d6000803e3d6000fd5b5050505050505050505050505050565b6122a6826110c5565b6122af81612c45565b610d3a8383612cee565b61015154604051631eed540360e11b815260009182916001600160a01b0390911690633ddaa806906122f39086908590819060040161549e565b6040805180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906154bd565b91509150915091565b600061106360128484613312565b600080612357848461254e565b5050600013949350505050565b600054610100900460ff16158080156123845750600054600160ff909116105b806123a557506123933061358a565b1580156123a5575060005460ff166001145b6123c15760405162461bcd60e51b8152600401610d26906156d9565b6000805460ff1916600117905580156123e4576000805461ff0019166101001790555b6123f4600060128c8c8c8c6116a1565b6123fc613677565b61240461369e565b6124438a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506136d192505050565b61244e600083613724565b612466600080516020615a7683398151915283613724565b61247e600080516020615a5683398151915283613724565b61015080546001600160a01b038086166001600160a01b031992831617909255610152805487841690831617905561015180549288169290911691909117905561015386905580156124f8576000805461ff001916905560405160018152600080516020615a368339815191529060200160405180910390a15b50505050505050505050565b61250f600033611b83565b61252b5760405162461bcd60e51b8152600401610d26906156b6565b61015080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216600090815260026020526040812054908080612573866112bd565b905060005b81518110156126745760008060008484815181106125985761259861579f565b60200260200101516001600160a01b0316639b2e48bc308c8c6040518463ffffffff1660e01b81526004016125cf9392919061577b565b606060405180830381865afa1580156125ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261091906157b5565b9194509250905061262182886154e2565b965061262d81876154e2565b955061264a818311612640576000612b47565b611ef48284615768565b612654848a615311565b61265e9190615339565b97505050508061266d906157e3565b9050612578565b50509250925092565b612688600033611b83565b6126a45760405162461bcd60e51b8152600401610d26906156b6565b61015180546001600160a01b0319166001600160a01b0392909216919091179055565b6126d2600033611b83565b6126ee5760405162461bcd60e51b8152600401610d26906156b6565b6126f9600082611219565b61169e60003361123f565b336127116012828461372e565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b60006001600160e01b03198216637965db0b60e01b1480610b5557506301ffc9a760e01b6001600160e01b0319831614610b55565b6060816000018054806020026020016040519081016040528092919081815260200182805480156127e457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116127c6575b50505050509050919050565b60005b8151811015610d3a5760008282815181106128105761281061579f565b602002602001015190508082850155508061282a906157e3565b90506127f3565b6001600160a01b03831661285857604051638163862760e01b815260040160405180910390fd5b6001600160a01b03821661287f576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60405133906000906128f99083908790602001615397565b60408051601f198184030181529190528051602090910120905061291d8184612be8565b1561293b5760405163782a90fb60e11b815260040160405180910390fd5b612978818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127f092505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051611e2793929190615727565b60006129c360e85460ff1690565b156129e05760405162461bcd60e51b8152600401610d2690615519565b60006129ed858585613826565b90506129fb8686868461396d565b5060019695505050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8d91906157fc565b604051638369a0f160e01b81529091506001600160a01b03821690638369a0f190612b00907f00000000000000000000000000000000000000000000000000000000000000009030907f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d099060040161577b565b602060405180830381865afa158015612b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4191906157fc565b91505090565b60006001600160ff1b03821115612bb15760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610d26565b5090565b816001600160a01b0316836001600160a01b0316600080516020615a96833981519152836040516128d491815260200190565b6000805b82811015612c1a57838101548015612c0957600192505050610b55565b50612c13816157e3565b9050612bec565b5060009392505050565b60005b81811015610d3a57600083820155612c3e816157e3565b9050612c27565b61169e8133613a8d565b612c598282613ae6565b600082815260b660205260409020610d3a9082613b6c565b6000610b677f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612ca161011a5490565b61011b546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b612cf88282613b81565b600082815260b660205260409020610d3a9082613be8565b612d18613bfd565b60e8805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051612d529190614c41565b60405180910390a1565b600080612d698585611e99565b9050846001600160a01b0316336001600160a01b03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168686604051612db0929190615819565b60405180910390a3843b1561106057612dca858585613c46565b6110605760405162461bcd60e51b815260206004820152601860248201527710dbdb9d1c9858dd0819985b1b189858dac819985a5b195960421b6044820152606401610d26565b6001600160a01b038516612e3857604051630d24315760e01b815260040160405180910390fd5b612e428585613d10565b612e528660008787868689613d6a565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612e9993929190615832565b60405180910390a36040518481526001600160a01b03861690600090600080516020615a9683398151915290602001611734565b6001600160a01b038416612ef457604051632e8aac6160e21b815260040160405180910390fd5b612f0385856000868686613eb9565b612f0d8484613fd8565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612f5493929190615832565b60405180910390a36040518381526000906001600160a01b03861690600080516020615a9683398151915290602001610ca3565b6040516329965a1d60e01b8152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90612fe39084907fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce217705490309060040161585d565b600060405180830381600087803b158015612ffd57600080fd5b505af1158015613011573d6000803e3d6000fd5b50506040516329965a1d60e01b8152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506130709084907faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a90309060040161585d565b600060405180830381600087803b15801561308a57600080fd5b505af1158015610da6573d6000803e3d6000fd5b60006130a86132ff565b6001600160a01b0316036130fe5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401610d26565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561313c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316091906153d4565b6131686117dd565b146131c15760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401610d26565b6001600160a01b03811630036132155760405162461bcd60e51b815260206004820152601960248201527805555505350726f786961626c653a2070726f7879206c6f6f7603c1b6044820152606401610d26565b61322b816000805160206159ec83398151915255565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc6132546117dd565b604080519182526001600160a01b038416602083015201611cea565b6060816001600160401b0381111561328a5761328a614aec565b6040519080825280602002602001820160405280156132b3578160200160208202803683370190505b50905060005b828110156132f8576000818501549050808383815181106132dc576132dc61579f565b6020908102919091010152506132f1816157e3565b90506132b9565b5092915050565b6000805160206159ec8339815191525490565b6000816001600160a01b0316836001600160a01b0316148061338157506001600160a01b038316600090815260018501602052604090205460ff16801561338157506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b8061106057506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166133e25760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166134095760405163e219bd3960e01b815260040160405180910390fd5b613417878787878787613eb9565b6134258787878787876140e8565b61343487878787878787613d6a565b50505050505050565b613445614187565b60e8805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612d453390565b600061106383836141cd565b806001600160a01b0316826001600160a01b0316036134fd5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b6064820152608401610d26565b6001600160a01b038116600090815260018401602052604090205460ff1615613553576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03163b151590565b600081848411156135bd5760405162461bcd60e51b8152600401610d26919061493d565b505050900390565b6000610b55825490565b6001600160a01b038116600090815261014e602052604081208054918291906135f7836157e3565b9190505550919050565b6000610b5561360e612c71565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000613660878787876141f7565b9150915061366d816142b1565b5095945050505050565b600054610100900460ff1661145e5760405162461bcd60e51b8152600401610d269061555e565b600054610100900460ff166136c55760405162461bcd60e51b8152600401610d269061555e565b60e8805460ff19169055565b600054610100900460ff166136f85760405162461bcd60e51b8152600401610d269061555e565b61371b81604051806040016040528060018152602001603160f81b8152506143f6565b61169e81614439565b6112b98282612c4f565b336001600160a01b038216036137995760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b6064820152608401610d26565b6001600160a01b038116600090815260018401602052604090205460ff16156137f3576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6000806000613836848787611360565b915091506000821180156138b957506101525460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90613876903390600401614c41565b602060405180830381865afa158015613893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138b791906152ac565b155b15613963578015806138dc57506138cf866119b8565b6138d983866154e2565b11155b6139285760405162461bcd60e51b815260206004820181905260248201527f4e6f7420656e6f7567682062616c616e636520746f20706179205458206665656044820152606401610d26565b6101505461394390879081906001600160a01b03168561396d565b5080613958576139538285615768565b61395a565b835b92505050611063565b5091949350505050565b60006001600160a01b0384166139965760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0383166139bd5760405163e219bd3960e01b815260040160405180910390fd5b60003390506139ee8186868660405180602001604052806000815250604051806020016040528060008152506140e8565b846001600160a01b0316866001600160a01b031614613a8157613a81858761141d866040518060600160405280602d8152602001615ab6602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020546135999092919063ffffffff16565b50600195945050505050565b613a978282611b83565b6112b957613aa481614488565b613aaf83602061449a565b604051602001613ac0929190615880565b60408051601f198184030181529082905262461bcd60e51b8252610d269160040161493d565b613af08282611b83565b6112b95760008281526084602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613b283390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611063836001600160a01b038416614635565b613b8b8282611b83565b156112b95760008281526084602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611063836001600160a01b038416614684565b60e85460ff1661145e5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610d26565b604051635260769b60e11b815260009084906001600160a01b0382169063a4c0ed3690613c7b903390889088906004016158ef565b6020604051808303816000875af1158015613c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cbe91906152ac565b613d055760405162461bcd60e51b815260206004820152601860248201527710dbdb9d1c9858dd0811985b1b189858dac819985a5b195960421b6044820152606401610d26565b506001949350505050565b613d1981612b47565b6001600160a01b038316600090815260026020526040902054613d3c9190615311565b6001600160a01b038316600090815260026020526040902055600354613d639082906154e2565b6003555050565b60405163555ddc6560e11b8152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90613dc69089907fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b90600401615916565b602060405180830381865afa158015613de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e0791906157fc565b90506001600160a01b03811615613e83576040516223de2960e01b81526001600160a01b038216906223de2990613e4c908b908b908b908b908b908b9060040161592f565b600060405180830381600087803b158015613e6657600080fd5b505af1158015613e7a573d6000803e3d6000fd5b50505050611955565b811561195557613e9b866001600160a01b031661358a565b156119555760405163fe737d0560e01b815260040160405180910390fd5b60405163555ddc6560e11b8152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90613f159089907f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89590600401615916565b602060405180830381865afa158015613f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f5691906157fc565b90506001600160a01b0381161561343457604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613f9d908a908a908a908a908a908a9060040161592f565b600060405180830381600087803b158015613fb757600080fd5b505af1158015613fcb573d6000803e3d6000fd5b5050505050505050505050565b6000614060837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561403c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaa91906153d4565b5050905061406d82612b47565b81121561408d5760405163043b37d160e21b815260040160405180910390fd5b61409682612b47565b6001600160a01b0384166000908152600260205260409020546140b99190615339565b6001600160a01b0384166000908152600260205260409020556003546140e0908390615768565b600355505050565b6140fb85856140f686612b47565b614777565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161414c93929190615832565b60405180910390a4836001600160a01b0316856001600160a01b0316600080516020615a968339815191528560405161173491815260200190565b60e85460ff161561145e5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610d26565b60008260000182815481106141e4576141e461579f565b9060005260206000200154905092915050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0383111561422457506000905060036142a8565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614278573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166142a1576000600192509250506142a8565b9150600090505b94509492505050565b60008160048111156142c5576142c5615989565b036142cd5750565b60018160048111156142e1576142e1615989565b036143295760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610d26565b600281600481111561433d5761433d615989565b0361438a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610d26565b600381600481111561439e5761439e615989565b0361169e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610d26565b600054610100900460ff1661441d5760405162461bcd60e51b8152600401610d269061555e565b81516020928301208151919092012061011a9190915561011b55565b600054610100900460ff166144605760405162461bcd60e51b8152600401610d269061555e565b507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c961014f55565b6060610b556001600160a01b03831660145b606060006144a983600261599f565b6144b49060026154e2565b6001600160401b038111156144cb576144cb614aec565b6040519080825280601f01601f1916602001820160405280156144f5576020820181803683370190505b509050600360fc1b816000815181106145105761451061579f565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061453f5761453f61579f565b60200101906001600160f81b031916908160001a905350600061456384600261599f565b61456e9060016154e2565b90505b60018111156145e6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106145a2576145a261579f565b1a60f81b8282815181106145b8576145b861579f565b60200101906001600160f81b031916908160001a90535060049490941c936145df816159be565b9050614571565b5083156110635760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610d26565b600081815260018301602052604081205461467c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b55565b506000610b55565b6000818152600183016020526040812054801561476d5760006146a8600183615768565b85549091506000906146bc90600190615768565b90508181146147215760008660000182815481106146dc576146dc61579f565b90600052602060002001549050808760000184815481106146ff576146ff61579f565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080614732576147326159d5565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b55565b6000915050610b55565b60006147db847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561403c573d6000803e3d6000fd5b505090508181121561480057604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054614824908390615339565b6001600160a01b038086166000908152600260205260408082209390935590851681522054614854908390615311565b6001600160a01b03909316600090815260026020526040902092909255505050565b60006020828403121561488857600080fd5b81356001600160e01b03198116811461106357600080fd5b6020808252825182820181905260009190848201906040850190845b818110156148e15783516001600160a01b0316835292840192918401916001016148bc565b50909695505050505050565b60005b838110156149085781810151838201526020016148f0565b50506000910152565b600081518084526149298160208601602086016148ed565b601f01601f19169290920160200192915050565b6020815260006110636020830184614911565b6001600160a01b038116811461169e57600080fd5b60008083601f84011261497757600080fd5b5081356001600160401b0381111561498e57600080fd5b6020830191508360208260051b85010111156149a957600080fd5b9250929050565b600080600080606085870312156149c657600080fd5b84356149d181614950565b93506020850135925060408501356001600160401b038111156149f357600080fd5b6149ff87828801614965565b95989497509550505050565b60008060408385031215614a1e57600080fd5b8235614a2981614950565b946020939093013593505050565b600060208284031215614a4957600080fd5b5035919050565b600080600060408486031215614a6557600080fd5b8335925060208401356001600160401b03811115614a8257600080fd5b614a8e86828701614965565b9497909650939450505050565b60008060008060808587031215614ab157600080fd5b8435614abc81614950565b93506020850135614acc81614950565b92506040850135614adc81614950565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614b2a57614b2a614aec565b604052919050565b600082601f830112614b4357600080fd5b81356001600160401b03811115614b5c57614b5c614aec565b614b6f601f8201601f1916602001614b02565b818152846020838601011115614b8457600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461169e57600080fd5b600080600080600080600060e0888a031215614bca57600080fd5b8735965060208801356001600160401b03811115614be757600080fd5b614bf38a828b01614b32565b9650506040880135614c0481614950565b94506060880135614c1481614ba1565b93506080880135614c2481614950565b9699959850939692959460a0840135945060c09093013592915050565b6001600160a01b0391909116815260200190565b600080600060608486031215614c6a57600080fd5b8335614c7581614950565b92506020840135614c8581614950565b929592945050506040919091013590565b60008060408385031215614ca957600080fd5b50508035926020909101359150565b600060208284031215614cca57600080fd5b813561106381614950565b60008060408385031215614ce857600080fd5b823591506020830135614cfa81614950565b809150509250929050565b600080600060608486031215614d1a57600080fd5b833592506020840135614d2c81614950565b91506040840135614d3c81614950565b809150509250925092565b60008083601f840112614d5957600080fd5b5081356001600160401b03811115614d7057600080fd5b6020830191508360208285010111156149a957600080fd5b60008060008060608587031215614d9e57600080fd5b8435614da981614950565b93506020850135925060408501356001600160401b03811115614dcb57600080fd5b6149ff87828801614d47565b803560ff81168114614de857600080fd5b919050565b60008060008060008060808789031215614e0657600080fd5b8635614e1181614950565b9550614e1f60208801614dd7565b945060408701356001600160401b0380821115614e3b57600080fd5b614e478a838b01614d47565b90965094506060890135915080821115614e6057600080fd5b50614e6d89828a01614d47565b979a9699509497509295939492505050565b60008060008060808587031215614e9557600080fd5b8435614ea081614950565b93506020850135614eb081614950565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b818110156148e157835183529284019291840191600101614ee1565b600080600080600080600060a0888a031215614f1857600080fd5b8735614f2381614950565b96506020880135614f3381614950565b95506040880135945060608801356001600160401b0380821115614f5657600080fd5b614f628b838c01614d47565b909650945060808a0135915080821115614f7b57600080fd5b50614f888a828b01614d47565b989b979a50959850939692959293505050565b600080600060608486031215614fb057600080fd5b8335614fbb81614950565b95602085013595506040909401359392505050565b600080600060608486031215614fe557600080fd5b8335614ff081614950565b92506020840135915060408401356001600160401b0381111561501257600080fd5b61501e86828701614b32565b9150509250925092565b60006020828403121561503a57600080fd5b813561106381614ba1565b600080600080600080600060e0888a03121561506057600080fd5b873561506b81614950565b9650602088013561507b81614950565b9550604088013594506060880135935061509760808901614dd7565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156150c657600080fd5b82356150d181614950565b91506020830135614cfa81614950565b600080600080600080600080600060e08a8c0312156150ff57600080fd5b89356001600160401b038082111561511657600080fd5b6151228d838e01614d47565b909b50995060208c013591508082111561513b57600080fd5b506151488c828d01614d47565b90985096505060408a0135945060608a013561516381614950565b935060808a013561517381614950565b925060a08a013561518381614950565b915060c08a013561519381614950565b809150509295985092959850929598565b600080600080600080608087890312156151bd57600080fd5b86356151c881614950565b95506020870135945060408701356001600160401b0380821115614e3b57600080fd5b60008060006040848603121561520057600080fd5b8335925060208401356001600160401b0381111561521d57600080fd5b614a8e86828701614d47565b600181811c9082168061523d57607f821691505b60208210810361525d57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6000602082840312156152be57600080fd5b815161106381614ba1565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b82016152f4576152f46152c9565b5060000390565b634e487b7160e01b600052600160045260246000fd5b8082018281126000831280158216821582161715615331576153316152c9565b505092915050565b81810360008312801583831316838312821617156132f8576132f86152c9565b85815260018060a01b038516602082015283604082015282606082015260a06080820152600061538c60a0830184614911565b979650505050505050565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b6000602082840312156153e657600080fd5b5051919050565b6000602080838503121561540057600080fd5b82516001600160401b038082111561541757600080fd5b818501915085601f83011261542b57600080fd5b81518181111561543d5761543d614aec565b8060051b915061544e848301614b02565b818152918301840191848101908884111561546857600080fd5b938501935b83851015615492578451925061548283614950565b828252938501939085019061546d565b98975050505050505050565b9283526001600160a01b03918216602084015216604082015260600190565b600080604083850312156154d057600080fd5b825191506020830151614cfa81614ba1565b80820180821115610b5557610b556152c9565b6020808252600a90820152693737ba103830bab9b2b960b11b604082015260600190565b60208082526025908201527f5061757361626c653a20746f6b656e207472616e73666572207768696c652070604082015264185d5cd95960da1b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f821115610d3a57600081815260208120601f850160051c810160208610156155d05750805b601f850160051c820191505b818110156155ef578281556001016155dc565b505050505050565b6001600160401b0383111561560e5761560e614aec565b6156228361561c8354615229565b836155a9565b6000601f841160018114615656576000851561563e5750838201355b600019600387901b1c1916600186901b178355610da6565b600083815260209020601f19861690835b828110156156875786850135825560209485019460019092019101615667565b50868210156156a45760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b838152604060208201819052810182905260006001600160fb1b0383111561574e57600080fd5b8260051b8085606085013791909101606001949350505050565b81810381811115610b5557610b556152c9565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000806000606084860312156157ca57600080fd5b8351925060208401519150604084015190509250925092565b6000600182016157f5576157f56152c9565b5060010190565b60006020828403121561580e57600080fd5b815161106381614950565b8281526040602082015260006110606040830184614911565b83815260606020820152600061584b6060830185614911565b82810360408401526117c98185614911565b6001600160a01b0393841681526020810192909252909116604082015260600190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516158b28160178501602088016148ed565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516158e38160288401602088016148ed565b01602801949350505050565b60018060a01b03841681528260208201526060604082015260006114a36060830184614911565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c06080820181905260009061596a90830185614911565b82810360a084015261597c8185614911565b9998505050505050505050565b634e487b7160e01b600052602160045260246000fd5b60008160001904831182151516156159b9576159b96152c9565b500290565b6000816159cd576159cd6152c9565b506000190190565b634e487b7160e01b600052603160045260246000fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249865d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220eb3b258e80ed5fc1e267714a61f38a0fc10efb6f970dbc9be8964e7236394d4064736f6c63430008100033",
2587
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061042a5760003560e01c806301ffc9a71461042f57806306e485381461045757806306fdde031461046c578063090c415e14610481578063095ea7b31461049657806311bcc81e146104a957806312a6a3f8146104b757806316d055d6146104ca57806318160ddd146104dd5780631863e809146104ef57806320bc44251461050257806323b872dd14610531578063245887fc14610544578063248a9ca314610557578063270483971461056a5780632c159a1a1461057d5780632ec8eec7146105915780632f2ff15d146105c4578063313ce567146105d7578063355274ea146105e65780633644e515146105f057806336568abe146105f8578063386fa2211461060b57806339364fd71461061e57806339509351146106465780633f4ba83a146106595780634000aea01461066157806340c10f191461067457806341b706be1461068757806342966c681461069a57806342fe0980146106ad5780634414744f146106c057806345977d03146104a957806346904840146106ce57806346951954146106e257806346fbf68e146106f55780634b61cc33146107085780634b75f54f1461072857806350d75d251461073c57806352d1902d14610744578063556f0dc71461074c5780635b9d09cc146107535780635c975abb146107615780635d5bf1781461076c57806362aa52871461077f57806362ad1b831461079257806366a12fb6146107a55780636c2d9f2f146107b857806370a08231146107cb57806379359f6f146107de57806379cc6790146107f15780637ecebe001461080457806382dc1ec41461082e5780638456cb59146108415780638da5cb5b146108495780639010d07c1461085157806391d1485414610864578063959b8c3f1461087757806395d89b411461088a578063983b2d561461089257806398650275146108a55780639903ad38146108ad5780639bd9bbc6146108b55780639d876741146108c8578063a1b2bf8b146108db578063a217fddf146108ee578063a3a7e7f3146108f6578063a457c2d714610909578063a9059cbb1461091c578063aa271e1a1461092f578063b84cdd4a14610942578063bb0d196e14610955578063c3187f6214610968578063c68d42831461097b578063ca15c8731461098e578063ca78946414610544578063cf97256d146109a1578063d505accf146109b4578063d5391393146109c7578063d547741f146109dc578063d5a06d4c146109ef578063d95b637114610a02578063d9d078d614610a15578063dd62ed3e14610a28578063dea7f11214610a61578063e63ab1e914610a74578063e74b981b14610a89578063eb3537cc14610a9c578063ecc06c7614610aca578063ee719bc814610add578063f2fde38b14610aee578063fad8b32a14610b01578063fc673c4f14610b14578063fe9d930314610b22575b600080fd5b61044261043d366004614876565b610b30565b60405190151581526020015b60405180910390f35b61045f610b5b565b60405161044e91906148a0565b610474610b6c565b60405161044e919061493d565b61049461048f3660046149b0565b610bfe565b005b6104426104a4366004614a0b565b610cb2565b61049461042a366004614a37565b6104946104c5366004614a50565b610cc8565b6104946104d8366004614a9b565b610d3f565b6003545b60405190815260200161044e565b6104946104fd366004614baf565b610dad565b7f00000000000000000000000000000000000000000000000000000000000000005b60405161044e9190614c41565b61044261053f366004614c55565b611052565b610494610552366004614a0b565b61106a565b6104e1610565366004614a37565b6110c5565b610494610578366004614c96565b6110da565b61015254610524906001600160a01b031681565b6105a461059f366004614cb8565b611176565b60408051948552602085019390935291830152606082015260800161044e565b6104946105d2366004614cd5565b611219565b6040516012815260200161044e565b6104e16101535481565b6104e1611235565b610494610606366004614cd5565b61123f565b61045f610619366004614cb8565b6112bd565b61063161062c366004614d05565b611360565b6040805192835290151560208301520161044e565b610442610654366004614a0b565b6113e6565b610494611422565b61044261066f366004614d88565b611460565b610442610682366004614a0b565b6114ac565b610494610695366004614a9b565b6115e8565b6104946106a8366004614a37565b611614565b6104946106bb366004614ded565b6116a1565b610154546104429060ff1681565b61015054610524906001600160a01b031681565b6104946106f0366004614cb8565b611744565b610442610703366004614cb8565b611774565b61071b610716366004614e7f565b61178e565b60405161044e9190614ec5565b61015154610524906001600160a01b031681565b6105246117d3565b6104e16117dd565b60016104e1565b61049461042a366004614d88565b60e85460ff16610442565b61049461077a366004614cb8565b611801565b61049461078d366004614c55565b61184b565b6104946107a0366004614efd565b6118b1565b6104946107b3366004614c55565b61195f565b61071b6107c6366004614f9b565b61197f565b6104e16107d9366004614cb8565b6119b8565b6104426107ec366004614cb8565b6119e0565b6104946107ff366004614a0b565b611a68565b6104e1610812366004614cb8565b6001600160a01b0316600090815261014e602052604090205490565b61049461083c366004614cb8565b611b0f565b610494611b27565b610524611b63565b61052461085f366004614c96565b611b6b565b610442610872366004614cd5565b611b83565b610494610885366004614cb8565b611bae565b610474611bff565b6104946108a0366004614cb8565b611c0e565b610494611c26565b610494611c3e565b6104946108c3366004614d88565b611cf5565b6104946108d6366004614fd0565b611d4f565b6104946108e9366004614a50565b611d7d565b6104e1600081565b610494610904366004614cb8565b611e36565b610442610917366004614a0b565b611e4a565b61044261092a366004614a0b565b611e99565b61044261093d366004614cb8565b611ea7565b610442610950366004614a0b565b611ec1565b610442610963366004614cb8565b611f12565b610494610976366004615028565b611f9a565b610494610989366004614fd0565b611fd4565b6104e161099c366004614a37565b612003565b6104946109af366004614a0b565b61201a565b6104946109c2366004615045565b612108565b6104e1600080516020615a7683398151915281565b6104946109ea366004614cd5565b61229d565b6106316109fd366004614a37565b6122b9565b610442610a103660046150b3565b61233c565b610442610a23366004614a0b565b61234a565b6104e1610a363660046150b3565b6001600160a01b03918216600090815260116020908152604080832093909416825291909152205490565b610494610a6f3660046150e1565b612364565b6104e1600080516020615a5683398151915281565b610494610a97366004614cb8565b612504565b610aaf610aaa366004614a0b565b61254e565b6040805193845260208401929092529082015260600161044e565b610494610ad8366004614cb8565b61267d565b600e546001600160a01b0316610524565b610494610afc366004614cb8565b6126c7565b610494610b0f366004614cb8565b612704565b61049461042a3660046151a4565b61049461042a3660046151eb565b60006001600160e01b03198216635a05180f60e01b1480610b555750610b5582612755565b92915050565b6060610b67601261278a565b905090565b6060600f8054610b7b90615229565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba790615229565b8015610bf45780601f10610bc957610100808354040283529160200191610bf4565b820191906000526020600020905b815481529060010190602001808311610bd757829003601f168201915b5050505050905090565b6000338585604051602001610c1593929190615263565b604051602081830303815290604052805190602001209050610c6a818484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127f092505050565b6040518481526001600160a01b0386169033907f30f416fa68fca014a0f334464c64b000ba53e99b6d2afdea9d5ca756372d5985906020015b60405180910390a35050505050565b6000610cbf338484612831565b50600192915050565b60e85460ff1615610d2f5760405162461bcd60e51b815260206004820152602660248201527f5061757361626c653a2063726561746541677265656d656e74207768696c65206044820152651c185d5cd95960d21b60648201526084015b60405180910390fd5b610d3a8383836128e1565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633141580610d7c57506101545460ff1615155b15610d9a5760405163c51efddd60e01b815260040160405180910390fd5b610da6848484846129b5565b5050505050565b604051632329212160e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638ca4848490610df9903390600401614c41565b602060405180830381865afa158015610e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3a91906152ac565b610e575760405163327fd99160e21b815260040160405180910390fd5b6000610e61612a08565b90506001600160a01b038116610e745750845b600085610e815786610e83565b815b905060008313610f2057610e96836152df565b610e9f85612b47565b14610eac57610eac6152fb565b610eb584612b47565b6001600160a01b03821660009081526002602052604081208054909190610edd908490615311565b90915550506001600160a01b03851660009081526002602052604081208054859290610f0a908490615311565b90915550610f1b9050858286612bb5565b610fea565b8515610f2e57610f2e6152fb565b82610f3885612b47565b610f429190615311565b6001600160a01b03831660009081526002602052604081208054909190610f6a908490615339565b90915550610f79905084612b47565b6001600160a01b03881660009081526002602052604081208054909190610fa1908490615311565b90915550506001600160a01b03851660009081526002602052604081208054859290610fce908490615311565b90915550610fdf9050828886612bb5565b610fea828685612bb5565b846001600160a01b0316876001600160a01b0316336001600160a01b03167fb8381a3ce157650e06186e3e8f4dd4dc29236f2688b6eed1893d0a60d7c6386f8c8589898f60405161103f959493929190615359565b60405180910390a4505050505050505050565b6000611060338585856129b5565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316331415806110a757506101545460ff1615155b1561042a5760405163c51efddd60e01b815260040160405180910390fd5b60009081526084602052604090206001015490565b60405133906000906110f29083908690602001615397565b6040516020818303038152906040528051906020012090506111148184612be8565b6111315760405163dae1880960e01b815260040160405180910390fd5b61113b8184612c24565b60405184815233907f71a63dc095de07aa5512ad57a7596a39516317e316981a1cd71000057be1537b9060200160405180910390a250505050565b6000806000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111fe91906153d4565b905061120a858261254e565b91979096509094509092509050565b611222826110c5565b61122b81612c45565b610d3a8383612c4f565b6000610b67612c71565b6001600160a01b03811633146112af5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610d26565b6112b98282612cee565b5050565b6001600160a01b038181166000908152600160205260409081902054905163c56a069d60e01b8152901960048201526060917f0000000000000000000000000000000000000000000000000000000000000000169063c56a069d90602401600060405180830381865afa158015611338573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b5591908101906153ed565b61015154604051631eed540360e11b815260009182916001600160a01b0390911690633ddaa8069061139a9088908890889060040161549e565b6040805180830381865afa1580156113b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113da91906154bd565b91509150935093915050565b3360008181526011602090815260408083206001600160a01b03871684529091528120549091610cbf91859061141d9086906154e2565b612831565b61143a600080516020615a5683398151915233611b83565b6114565760405162461bcd60e51b8152600401610d26906154f5565b61145e612d10565b565b60006114a3858585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612d5c92505050565b95945050505050565b60006114c6600080516020615a7683398151915233611b83565b6114ff5760405162461bcd60e51b815260206004820152600a6024820152693737ba1036b4b73a32b960b11b6044820152606401610d26565b60e85460ff16156115225760405162461bcd60e51b8152600401610d2690615519565b610153541561159b57610153548261153960035490565b61154391906154e2565b111561159b5760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420696e63726561736520737570706c79206265796f6e642063616044820152600760fc1b6064820152608401610d26565b60408051600080825260208201909252610cbf9133918691869160005b6040519080825280601f01601f1916602001820160405280156115e2576020820181803683370190505b50612e11565b33301461160857604051630fff4cc960e31b815260040160405180910390fd5b610da6838584846129b5565b60e85460ff16156116375760405162461bcd60e51b8152600401610d2690615519565b61169e33808360005b6040519080825280601f01601f19166020018201604052801561166a576020820181803683370190505b5060005b6040519080825280601f01601f191660200182016040528015611698576020820181803683370190505b50612ecd565b50565b600054610100900460ff166116c85760405162461bcd60e51b8152600401610d269061555e565b600e805460ff8716600160a01b026001600160a81b03199091166001600160a01b03891617179055600f6116fd8486836155f7565b50601061170b8284836155f7565b5061171530612f88565b6040516000808252908190600080516020615a96833981519152906020015b60405180910390a3505050505050565b61174f600033611b83565b61176b5760405162461bcd60e51b8152600401610d26906156b6565b61169e8161309e565b6000610b55600080516020615a5683398151915283611b83565b606060008585856040516020016117a793929190615263565b6040516020818303038152906040528051906020012090506117c98184613270565b9695505050505050565b6000610b676132ff565b7f596aa569dfde75b0375e5ba62bcfe0e1ce76eaca6130ef1c259fade04cb78b6890565b61180c600033611b83565b6118285760405162461bcd60e51b8152600401610d26906156b6565b61015280546001600160a01b0319166001600160a01b0392909216919091179055565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314158061188857506101545460ff1615155b156118a65760405163c51efddd60e01b815260040160405180910390fd5b610d3a838383612831565b336118be6012828a613312565b6118db5760405163f7f0222760e01b815260040160405180910390fd5b6119558189898989898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a9081908401838280828437600092019190915250600192506133bb915050565b5050505050505050565b3330146118a657604051630fff4cc960e31b815260040160405180910390fd5b606060008484604051602001611996929190615397565b6040516020818303038152906040528051906020012090506114a38184613270565b6000806119c483611176565b5050509050600081126119d75780611063565b60009392505050565b6000610b55827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2391906153d4565b6000611a748333610a36565b905081811015611ad25760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610d26565b60e85460ff1615611af55760405162461bcd60e51b8152600401610d2690615519565b611b028333848403612831565b610d3a3384846000611640565b61169e600080516020615a5683398151915282611219565b611b3f600080516020615a5683398151915233611b83565b611b5b5760405162461bcd60e51b8152600401610d26906154f5565b61145e61343d565b6000610b6781805b600082815260b660205260408120611063908361347a565b60009182526084602090815260408084206001600160a01b0393909316845291905290205460ff1690565b33611bbb60128284613486565b806001600160a01b0316826001600160a01b03167ff4caeb2d6ca8932a215a353d0703c326ec2d81fc68170f320eb2ab49e9df61f960405160405180910390a35050565b606060108054610b7b90615229565b61169e600080516020615a7683398151915282611219565b61145e600080516020615a768339815191523361123f565b600054610100900460ff1615808015611c5e5750600054600160ff909116105b80611c7f5750611c6d3061358a565b158015611c7f575060005460ff166001145b611c9b5760405162461bcd60e51b8152600401610d26906156d9565b6000805460ff191660011790558015611cbe576000805461ff0019166101001790555b801561169e576000805461ff001916905560405160018152600080516020615a36833981519152906020015b60405180910390a150565b611d493333868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525060408051602081019091529081529250600191506133bb9050565b50505050565b333014611d6f57604051630fff4cc960e31b815260040160405180910390fd5b610d3a33848484600061166e565b6040513390600090611d959083908790602001615397565b604051602081830303815290604052805190602001209050611dea818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127f092505050565b336001600160a01b03167f0c4c547b3a4fcaa5be8353b3111472b124155bccc86de811d4a481c9e6e9faca868686604051611e2793929190615727565b60405180910390a25050505050565b6112b9333383611e45336119b8565b6129b5565b6000610cbf338461141d856040518060600160405280602a8152602001615a0c602a91393360009081526011602090815260408083206001600160a01b038d1684529091529020549190613599565b6000611063333385856129b5565b6000610b55600080516020615a7683398151915283611b83565b600080600080611ed1868661254e565b9250925092506000611ef9828411611eea576000612b47565b611ef48385615768565b612b47565b611f039085615311565b60001315979650505050505050565b6000610b55827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f76573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095091906153d4565b611fa5600033611b83565b611fc15760405162461bcd60e51b8152600401610d26906156b6565b610154805460ff19169115919091179055565b333014611ff457604051630fff4cc960e31b815260040160405180910390fd5b610d3a338484600085816115b8565b600081815260b660205260408120610b55906135c5565b604051632329212160e21b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638ca4848490612066903390600401614c41565b602060405180830381865afa158015612083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a791906152ac565b6120c45760405163327fd99160e21b815260040160405180910390fd5b6001600160a01b0382166000908152600260205260409020546120e8908290615311565b6001600160a01b0390921660009081526002602052604090209190915550565b834211156121585760405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606401610d26565b600061014f5488888861216a8c6135cf565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e00160405160208183030381529060405280519060200120905060006121c582613601565b905060006121d58287878761364f565b9050896001600160a01b0316816001600160a01b0316146122385760405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606401610d26565b60405163335097db60e11b815230906366a12fb69061225f908d908d908d9060040161577b565b600060405180830381600087803b15801561227957600080fd5b505af115801561228d573d6000803e3d6000fd5b5050505050505050505050505050565b6122a6826110c5565b6122af81612c45565b610d3a8383612cee565b61015154604051631eed540360e11b815260009182916001600160a01b0390911690633ddaa806906122f39086908590819060040161549e565b6040805180830381865afa15801561230f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233391906154bd565b91509150915091565b600061106360128484613312565b600080612357848461254e565b5050600013949350505050565b600054610100900460ff16158080156123845750600054600160ff909116105b806123a557506123933061358a565b1580156123a5575060005460ff166001145b6123c15760405162461bcd60e51b8152600401610d26906156d9565b6000805460ff1916600117905580156123e4576000805461ff0019166101001790555b6123f4600060128c8c8c8c6116a1565b6123fc613677565b61240461369e565b6124438a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506136d192505050565b61244e600083613724565b612466600080516020615a7683398151915283613724565b61247e600080516020615a5683398151915283613724565b61015080546001600160a01b038086166001600160a01b031992831617909255610152805487841690831617905561015180549288169290911691909117905561015386905580156124f8576000805461ff001916905560405160018152600080516020615a368339815191529060200160405180910390a15b50505050505050505050565b61250f600033611b83565b61252b5760405162461bcd60e51b8152600401610d26906156b6565b61015080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038216600090815260026020526040812054908080612573866112bd565b905060005b81518110156126745760008060008484815181106125985761259861579f565b60200260200101516001600160a01b0316639b2e48bc308c8c6040518463ffffffff1660e01b81526004016125cf9392919061577b565b606060405180830381865afa1580156125ec573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061261091906157b5565b9194509250905061262182886154e2565b965061262d81876154e2565b955061264a818311612640576000612b47565b611ef48284615768565b612654848a615311565b61265e9190615339565b97505050508061266d906157e3565b9050612578565b50509250925092565b612688600033611b83565b6126a45760405162461bcd60e51b8152600401610d26906156b6565b61015180546001600160a01b0319166001600160a01b0392909216919091179055565b6126d2600033611b83565b6126ee5760405162461bcd60e51b8152600401610d26906156b6565b6126f9600082611219565b61169e60003361123f565b336127116012828461372e565b806001600160a01b0316826001600160a01b03167f50546e66e5f44d728365dc3908c63bc5cfeeab470722c1677e3073a6ac294aa160405160405180910390a35050565b60006001600160e01b03198216637965db0b60e01b1480610b5557506301ffc9a760e01b6001600160e01b0319831614610b55565b6060816000018054806020026020016040519081016040528092919081815260200182805480156127e457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116127c6575b50505050509050919050565b60005b8151811015610d3a5760008282815181106128105761281061579f565b602002602001015190508082850155508061282a906157e3565b90506127f3565b6001600160a01b03831661285857604051638163862760e01b815260040160405180910390fd5b6001600160a01b03821661287f576040516337c1c09d60e21b815260040160405180910390fd5b6001600160a01b0383811660008181526011602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60405133906000906128f99083908790602001615397565b60408051601f198184030181529190528051602090910120905061291d8184612be8565b1561293b5760405163782a90fb60e11b815260040160405180910390fd5b612978818585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152506127f092505050565b816001600160a01b03167f770ea40a13a4644573ed785e5c7116890709947918747febc5add46feb531e2d868686604051611e2793929190615727565b60006129c360e85460ff1690565b156129e05760405162461bcd60e51b8152600401610d2690615519565b60006129ed858585613826565b90506129fb8686868461396d565b5060019695505050505050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663289b3c0d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a8d91906157fc565b604051638369a0f160e01b81529091506001600160a01b03821690638369a0f190612b00907f00000000000000000000000000000000000000000000000000000000000000009030907f9f60ae461adf056670e03ae602566409933242392cb06744f5747c9f38b05d099060040161577b565b602060405180830381865afa158015612b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b4191906157fc565b91505090565b60006001600160ff1b03821115612bb15760405162461bcd60e51b815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2061604482015267371034b73a191a9b60c11b6064820152608401610d26565b5090565b816001600160a01b0316836001600160a01b0316600080516020615a96833981519152836040516128d491815260200190565b6000805b82811015612c1a57838101548015612c0957600192505050610b55565b50612c13816157e3565b9050612bec565b5060009392505050565b60005b81811015610d3a57600083820155612c3e816157e3565b9050612c27565b61169e8133613a8d565b612c598282613ae6565b600082815260b660205260409020610d3a9082613b6c565b6000610b677f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612ca161011a5490565b61011b546040805160208101859052908101839052606081018290524660808201523060a082015260009060c0016040516020818303038152906040528051906020012090509392505050565b612cf88282613b81565b600082815260b660205260409020610d3a9082613be8565b612d18613bfd565b60e8805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b604051612d529190614c41565b60405180910390a1565b600080612d698585611e99565b9050846001600160a01b0316336001600160a01b03167fe19260aff97b920c7df27010903aeb9c8d2be5d310a2c67824cf3f15396e4c168686604051612db0929190615819565b60405180910390a3843b1561106057612dca858585613c46565b6110605760405162461bcd60e51b815260206004820152601860248201527710dbdb9d1c9858dd0819985b1b189858dac819985a5b195960421b6044820152606401610d26565b6001600160a01b038516612e3857604051630d24315760e01b815260040160405180910390fd5b612e428585613d10565b612e528660008787868689613d6a565b846001600160a01b0316866001600160a01b03167f2fe5be0146f74c5bce36c0b80911af6c7d86ff27e89d5cfa61fc681327954e5d868585604051612e9993929190615832565b60405180910390a36040518481526001600160a01b03861690600090600080516020615a9683398151915290602001611734565b6001600160a01b038416612ef457604051632e8aac6160e21b815260040160405180910390fd5b612f0385856000868686613eb9565b612f0d8484613fd8565b836001600160a01b0316856001600160a01b03167fa78a9be3a7b862d26933ad85fb11d80ef66b8f972d7cbba06621d583943a4098858585604051612f5493929190615832565b60405180910390a36040518381526000906001600160a01b03861690600080516020615a9683398151915290602001610ca3565b6040516329965a1d60e01b8152731820a4b7618bde71dce8cdc73aab6c95905fad24906329965a1d90612fe39084907fac7fbab5f54a3ca8194167523c6753bfeb96a445279294b6125b68cce217705490309060040161585d565b600060405180830381600087803b158015612ffd57600080fd5b505af1158015613011573d6000803e3d6000fd5b50506040516329965a1d60e01b8152731820a4b7618bde71dce8cdc73aab6c95905fad2492506329965a1d91506130709084907faea199e31a596269b42cdafd93407f14436db6e4cad65417994c2eb37381e05a90309060040161585d565b600060405180830381600087803b15801561308a57600080fd5b505af1158015610da6573d6000803e3d6000fd5b60006130a86132ff565b6001600160a01b0316036130fe5760405162461bcd60e51b815260206004820152601d60248201527f5555505350726f786961626c653a206e6f742075706772616461626c650000006044820152606401610d26565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561313c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061316091906153d4565b6131686117dd565b146131c15760405162461bcd60e51b815260206004820152602360248201527f5555505350726f786961626c653a206e6f7420636f6d70617469626c65206c6f60448201526267696360e81b6064820152608401610d26565b6001600160a01b03811630036132155760405162461bcd60e51b815260206004820152601960248201527805555505350726f786961626c653a2070726f7879206c6f6f7603c1b6044820152606401610d26565b61322b816000805160206159ec83398151915255565b7fe011bc04c286c344a8fcbb8de77f953da762c3e25d8cdea984147fc4168a5dcc6132546117dd565b604080519182526001600160a01b038416602083015201611cea565b6060816001600160401b0381111561328a5761328a614aec565b6040519080825280602002602001820160405280156132b3578160200160208202803683370190505b50905060005b828110156132f8576000818501549050808383815181106132dc576132dc61579f565b6020908102919091010152506132f1816157e3565b90506132b9565b5092915050565b6000805160206159ec8339815191525490565b6000816001600160a01b0316836001600160a01b0316148061338157506001600160a01b038316600090815260018501602052604090205460ff16801561338157506001600160a01b03808316600090815260038601602090815260408083209387168352929052205460ff16155b8061106057506001600160a01b03808316600090815260028601602090815260408083209387168352929052205460ff1690509392505050565b6001600160a01b0386166133e25760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0385166134095760405163e219bd3960e01b815260040160405180910390fd5b613417878787878787613eb9565b6134258787878787876140e8565b61343487878787878787613d6a565b50505050505050565b613445614187565b60e8805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612d453390565b600061106383836141cd565b806001600160a01b0316826001600160a01b0316036134fd5760405162461bcd60e51b815260206004820152602d60248201527f4552433737374f70657261746f72733a20617574686f72697a696e672073656c60448201526c331030b99037b832b930ba37b960991b6064820152608401610d26565b6001600160a01b038116600090815260018401602052604090205460ff1615613553576001600160a01b03918216600090815260039390930160209081526040808520929093168452529020805460ff19169055565b6001600160a01b0380831660009081526002850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03163b151590565b600081848411156135bd5760405162461bcd60e51b8152600401610d26919061493d565b505050900390565b6000610b55825490565b6001600160a01b038116600090815261014e602052604081208054918291906135f7836157e3565b9190505550919050565b6000610b5561360e612c71565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b6000806000613660878787876141f7565b9150915061366d816142b1565b5095945050505050565b600054610100900460ff1661145e5760405162461bcd60e51b8152600401610d269061555e565b600054610100900460ff166136c55760405162461bcd60e51b8152600401610d269061555e565b60e8805460ff19169055565b600054610100900460ff166136f85760405162461bcd60e51b8152600401610d269061555e565b61371b81604051806040016040528060018152602001603160f81b8152506143f6565b61169e81614439565b6112b98282612c4f565b336001600160a01b038216036137995760405162461bcd60e51b815260206004820152602a60248201527f4552433737374f70657261746f72733a207265766f6b696e672073656c662061604482015269399037b832b930ba37b960b11b6064820152608401610d26565b6001600160a01b038116600090815260018401602052604090205460ff16156137f3576001600160a01b0380831660009081526003850160209081526040808320938516835292905220805460ff19166001179055505050565b6001600160a01b03918216600090815260029390930160209081526040808520929093168452529020805460ff19169055565b6000806000613836848787611360565b915091506000821180156138b957506101525460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90613876903390600401614c41565b602060405180830381865afa158015613893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138b791906152ac565b155b15613963578015806138dc57506138cf866119b8565b6138d983866154e2565b11155b6139285760405162461bcd60e51b815260206004820181905260248201527f4e6f7420656e6f7567682062616c616e636520746f20706179205458206665656044820152606401610d26565b6101505461394390879081906001600160a01b03168561396d565b5080613958576139538285615768565b61395a565b835b92505050611063565b5091949350505050565b60006001600160a01b0384166139965760405163eecd6c9b60e01b815260040160405180910390fd5b6001600160a01b0383166139bd5760405163e219bd3960e01b815260040160405180910390fd5b60003390506139ee8186868660405180602001604052806000815250604051806020016040528060008152506140e8565b846001600160a01b0316866001600160a01b031614613a8157613a81858761141d866040518060600160405280602d8152602001615ab6602d9139601160008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020546135999092919063ffffffff16565b50600195945050505050565b613a978282611b83565b6112b957613aa481614488565b613aaf83602061449a565b604051602001613ac0929190615880565b60408051601f198184030181529082905262461bcd60e51b8252610d269160040161493d565b613af08282611b83565b6112b95760008281526084602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613b283390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611063836001600160a01b038416614635565b613b8b8282611b83565b156112b95760008281526084602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611063836001600160a01b038416614684565b60e85460ff1661145e5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610d26565b604051635260769b60e11b815260009084906001600160a01b0382169063a4c0ed3690613c7b903390889088906004016158ef565b6020604051808303816000875af1158015613c9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cbe91906152ac565b613d055760405162461bcd60e51b815260206004820152601860248201527710dbdb9d1c9858dd0811985b1b189858dac819985a5b195960421b6044820152606401610d26565b506001949350505050565b613d1981612b47565b6001600160a01b038316600090815260026020526040902054613d3c9190615311565b6001600160a01b038316600090815260026020526040902055600354613d639082906154e2565b6003555050565b60405163555ddc6560e11b8152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90613dc69089907fb281fc8c12954d22544db45de3159a39272895b169a852b314f9cc762e44c53b90600401615916565b602060405180830381865afa158015613de3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e0791906157fc565b90506001600160a01b03811615613e83576040516223de2960e01b81526001600160a01b038216906223de2990613e4c908b908b908b908b908b908b9060040161592f565b600060405180830381600087803b158015613e6657600080fd5b505af1158015613e7a573d6000803e3d6000fd5b50505050611955565b811561195557613e9b866001600160a01b031661358a565b156119555760405163fe737d0560e01b815260040160405180910390fd5b60405163555ddc6560e11b8152600090731820a4b7618bde71dce8cdc73aab6c95905fad249063aabbb8ca90613f159089907f29ddb589b1fb5fc7cf394961c1adf5f8c6454761adf795e67fe149f658abe89590600401615916565b602060405180830381865afa158015613f32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f5691906157fc565b90506001600160a01b0381161561343457604051633ad5cbc160e11b81526001600160a01b038216906375ab978290613f9d908a908a908a908a908a908a9060040161592f565b600060405180830381600087803b158015613fb757600080fd5b505af1158015613fcb573d6000803e3d6000fd5b5050505050505050505050565b6000614060837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561403c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aaa91906153d4565b5050905061406d82612b47565b81121561408d5760405163043b37d160e21b815260040160405180910390fd5b61409682612b47565b6001600160a01b0384166000908152600260205260409020546140b99190615339565b6001600160a01b0384166000908152600260205260409020556003546140e0908390615768565b600355505050565b6140fb85856140f686612b47565b614777565b836001600160a01b0316856001600160a01b0316876001600160a01b03167f06b541ddaa720db2b10a4d0cdac39b8d360425fc073085fac19bc8261467798786868660405161414c93929190615832565b60405180910390a4836001600160a01b0316856001600160a01b0316600080516020615a968339815191528560405161173491815260200190565b60e85460ff161561145e5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610d26565b60008260000182815481106141e4576141e461579f565b9060005260206000200154905092915050565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b0383111561422457506000905060036142a8565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015614278573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166142a1576000600192509250506142a8565b9150600090505b94509492505050565b60008160048111156142c5576142c5615989565b036142cd5750565b60018160048111156142e1576142e1615989565b036143295760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610d26565b600281600481111561433d5761433d615989565b0361438a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610d26565b600381600481111561439e5761439e615989565b0361169e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610d26565b600054610100900460ff1661441d5760405162461bcd60e51b8152600401610d269061555e565b81516020928301208151919092012061011a9190915561011b55565b600054610100900460ff166144605760405162461bcd60e51b8152600401610d269061555e565b507f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c961014f55565b6060610b556001600160a01b03831660145b606060006144a983600261599f565b6144b49060026154e2565b6001600160401b038111156144cb576144cb614aec565b6040519080825280601f01601f1916602001820160405280156144f5576020820181803683370190505b509050600360fc1b816000815181106145105761451061579f565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061453f5761453f61579f565b60200101906001600160f81b031916908160001a905350600061456384600261599f565b61456e9060016154e2565b90505b60018111156145e6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106145a2576145a261579f565b1a60f81b8282815181106145b8576145b861579f565b60200101906001600160f81b031916908160001a90535060049490941c936145df816159be565b9050614571565b5083156110635760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610d26565b600081815260018301602052604081205461467c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610b55565b506000610b55565b6000818152600183016020526040812054801561476d5760006146a8600183615768565b85549091506000906146bc90600190615768565b90508181146147215760008660000182815481106146dc576146dc61579f565b90600052602060002001549050808760000184815481106146ff576146ff61579f565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080614732576147326159d5565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610b55565b6000915050610b55565b60006147db847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bbe4fd506040518163ffffffff1660e01b8152600401602060405180830381865afa15801561403c573d6000803e3d6000fd5b505090508181121561480057604051632f4cb94160e01b815260040160405180910390fd5b6001600160a01b038416600090815260026020526040902054614824908390615339565b6001600160a01b038086166000908152600260205260408082209390935590851681522054614854908390615311565b6001600160a01b03909316600090815260026020526040902092909255505050565b60006020828403121561488857600080fd5b81356001600160e01b03198116811461106357600080fd5b6020808252825182820181905260009190848201906040850190845b818110156148e15783516001600160a01b0316835292840192918401916001016148bc565b50909695505050505050565b60005b838110156149085781810151838201526020016148f0565b50506000910152565b600081518084526149298160208601602086016148ed565b601f01601f19169290920160200192915050565b6020815260006110636020830184614911565b6001600160a01b038116811461169e57600080fd5b60008083601f84011261497757600080fd5b5081356001600160401b0381111561498e57600080fd5b6020830191508360208260051b85010111156149a957600080fd5b9250929050565b600080600080606085870312156149c657600080fd5b84356149d181614950565b93506020850135925060408501356001600160401b038111156149f357600080fd5b6149ff87828801614965565b95989497509550505050565b60008060408385031215614a1e57600080fd5b8235614a2981614950565b946020939093013593505050565b600060208284031215614a4957600080fd5b5035919050565b600080600060408486031215614a6557600080fd5b8335925060208401356001600160401b03811115614a8257600080fd5b614a8e86828701614965565b9497909650939450505050565b60008060008060808587031215614ab157600080fd5b8435614abc81614950565b93506020850135614acc81614950565b92506040850135614adc81614950565b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614b2a57614b2a614aec565b604052919050565b600082601f830112614b4357600080fd5b81356001600160401b03811115614b5c57614b5c614aec565b614b6f601f8201601f1916602001614b02565b818152846020838601011115614b8457600080fd5b816020850160208301376000918101602001919091529392505050565b801515811461169e57600080fd5b600080600080600080600060e0888a031215614bca57600080fd5b8735965060208801356001600160401b03811115614be757600080fd5b614bf38a828b01614b32565b9650506040880135614c0481614950565b94506060880135614c1481614ba1565b93506080880135614c2481614950565b9699959850939692959460a0840135945060c09093013592915050565b6001600160a01b0391909116815260200190565b600080600060608486031215614c6a57600080fd5b8335614c7581614950565b92506020840135614c8581614950565b929592945050506040919091013590565b60008060408385031215614ca957600080fd5b50508035926020909101359150565b600060208284031215614cca57600080fd5b813561106381614950565b60008060408385031215614ce857600080fd5b823591506020830135614cfa81614950565b809150509250929050565b600080600060608486031215614d1a57600080fd5b833592506020840135614d2c81614950565b91506040840135614d3c81614950565b809150509250925092565b60008083601f840112614d5957600080fd5b5081356001600160401b03811115614d7057600080fd5b6020830191508360208285010111156149a957600080fd5b60008060008060608587031215614d9e57600080fd5b8435614da981614950565b93506020850135925060408501356001600160401b03811115614dcb57600080fd5b6149ff87828801614d47565b803560ff81168114614de857600080fd5b919050565b60008060008060008060808789031215614e0657600080fd5b8635614e1181614950565b9550614e1f60208801614dd7565b945060408701356001600160401b0380821115614e3b57600080fd5b614e478a838b01614d47565b90965094506060890135915080821115614e6057600080fd5b50614e6d89828a01614d47565b979a9699509497509295939492505050565b60008060008060808587031215614e9557600080fd5b8435614ea081614950565b93506020850135614eb081614950565b93969395505050506040820135916060013590565b6020808252825182820181905260009190848201906040850190845b818110156148e157835183529284019291840191600101614ee1565b600080600080600080600060a0888a031215614f1857600080fd5b8735614f2381614950565b96506020880135614f3381614950565b95506040880135945060608801356001600160401b0380821115614f5657600080fd5b614f628b838c01614d47565b909650945060808a0135915080821115614f7b57600080fd5b50614f888a828b01614d47565b989b979a50959850939692959293505050565b600080600060608486031215614fb057600080fd5b8335614fbb81614950565b95602085013595506040909401359392505050565b600080600060608486031215614fe557600080fd5b8335614ff081614950565b92506020840135915060408401356001600160401b0381111561501257600080fd5b61501e86828701614b32565b9150509250925092565b60006020828403121561503a57600080fd5b813561106381614ba1565b600080600080600080600060e0888a03121561506057600080fd5b873561506b81614950565b9650602088013561507b81614950565b9550604088013594506060880135935061509760808901614dd7565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156150c657600080fd5b82356150d181614950565b91506020830135614cfa81614950565b600080600080600080600080600060e08a8c0312156150ff57600080fd5b89356001600160401b038082111561511657600080fd5b6151228d838e01614d47565b909b50995060208c013591508082111561513b57600080fd5b506151488c828d01614d47565b90985096505060408a0135945060608a013561516381614950565b935060808a013561517381614950565b925060a08a013561518381614950565b915060c08a013561519381614950565b809150509295985092959850929598565b600080600080600080608087890312156151bd57600080fd5b86356151c881614950565b95506020870135945060408701356001600160401b0380821115614e3b57600080fd5b60008060006040848603121561520057600080fd5b8335925060208401356001600160401b0381111561521d57600080fd5b614a8e86828701614d47565b600181811c9082168061523d57607f821691505b60208210810361525d57634e487b7160e01b600052602260045260246000fd5b50919050565b6080808252600e908201526d41677265656d656e74537461746560901b60a08201526001600160a01b039384166020820152919092166040820152606081019190915260c00190565b6000602082840312156152be57600080fd5b815161106381614ba1565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b82016152f4576152f46152c9565b5060000390565b634e487b7160e01b600052600160045260246000fd5b8082018281126000831280158216821582161715615331576153316152c9565b505092915050565b81810360008312801583831316838312821617156132f8576132f86152c9565b85815260018060a01b038516602082015283604082015282606082015260a06080820152600061538c60a0830184614911565b979650505050505050565b6060808252600d908201526c41677265656d656e744461746160981b60808201526001600160a01b03929092166020830152604082015260a00190565b6000602082840312156153e657600080fd5b5051919050565b6000602080838503121561540057600080fd5b82516001600160401b038082111561541757600080fd5b818501915085601f83011261542b57600080fd5b81518181111561543d5761543d614aec565b8060051b915061544e848301614b02565b818152918301840191848101908884111561546857600080fd5b938501935b83851015615492578451925061548283614950565b828252938501939085019061546d565b98975050505050505050565b9283526001600160a01b03918216602084015216604082015260600190565b600080604083850312156154d057600080fd5b825191506020830151614cfa81614ba1565b80820180821115610b5557610b556152c9565b6020808252600a90820152693737ba103830bab9b2b960b11b604082015260600190565b60208082526025908201527f5061757361626c653a20746f6b656e207472616e73666572207768696c652070604082015264185d5cd95960da1b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b601f821115610d3a57600081815260208120601f850160051c810160208610156155d05750805b601f850160051c820191505b818110156155ef578281556001016155dc565b505050505050565b6001600160401b0383111561560e5761560e614aec565b6156228361561c8354615229565b836155a9565b6000601f841160018114615656576000851561563e5750838201355b600019600387901b1c1916600186901b178355610da6565b600083815260209020601f19861690835b828110156156875786850135825560209485019460019092019101615667565b50868210156156a45760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6020808252600990820152683737ba1037bbb732b960b91b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b838152604060208201819052810182905260006001600160fb1b0383111561574e57600080fd5b8260051b8085606085013791909101606001949350505050565b81810381811115610b5557610b556152c9565b6001600160a01b039384168152919092166020820152604081019190915260600190565b634e487b7160e01b600052603260045260246000fd5b6000806000606084860312156157ca57600080fd5b8351925060208401519150604084015190509250925092565b6000600182016157f5576157f56152c9565b5060010190565b60006020828403121561580e57600080fd5b815161106381614950565b8281526040602082015260006110606040830184614911565b83815260606020820152600061584b6060830185614911565b82810360408401526117c98185614911565b6001600160a01b0393841681526020810192909252909116604082015260600190565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516158b28160178501602088016148ed565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516158e38160288401602088016148ed565b01602801949350505050565b60018060a01b03841681528260208201526060604082015260006114a36060830184614911565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0387811682528681166020830152851660408201526060810184905260c06080820181905260009061596a90830185614911565b82810360a084015261597c8185614911565b9998505050505050505050565b634e487b7160e01b600052602160045260246000fd5b60008160001904831182151516156159b9576159b96152c9565b500290565b6000816159cd576159cd6152c9565b506000190190565b634e487b7160e01b600052603160045260246000fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5375706572546f6b656e3a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249865d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5375706572546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220eb3b258e80ed5fc1e267714a61f38a0fc10efb6f970dbc9be8964e7236394d4064736f6c63430008100033",
2588
+ "linkReferences": {},
2589
+ "deployedLinkReferences": {}
2590
+ }