@venusprotocol/protocol-reserve 1.0.0-converters.1

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 (280) hide show
  1. package/README.md +75 -0
  2. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.dbg.json +4 -0
  3. package/artifacts/@openzeppelin/contracts/access/AccessControl.sol/AccessControl.json +215 -0
  4. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +4 -0
  5. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +183 -0
  6. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +4 -0
  7. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +297 -0
  8. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +4 -0
  9. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +194 -0
  10. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +4 -0
  11. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +233 -0
  12. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  13. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
  14. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +4 -0
  15. package/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +10 -0
  16. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.dbg.json +4 -0
  17. package/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +30 -0
  18. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.dbg.json +4 -0
  19. package/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +30 -0
  20. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +4 -0
  21. package/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +10 -0
  22. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +4 -0
  23. package/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +10 -0
  24. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +4 -0
  25. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.json +115 -0
  26. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +4 -0
  27. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +76 -0
  28. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +4 -0
  29. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +24 -0
  30. package/artifacts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.dbg.json +4 -0
  31. package/artifacts/@openzeppelin/contracts-upgradeable/security/PausableUpgradeable.sol/PausableUpgradeable.json +63 -0
  32. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.dbg.json +4 -0
  33. package/artifacts/@openzeppelin/contracts-upgradeable/security/ReentrancyGuardUpgradeable.sol/ReentrancyGuardUpgradeable.json +24 -0
  34. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +4 -0
  35. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +194 -0
  36. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +4 -0
  37. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +86 -0
  38. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +4 -0
  39. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +10 -0
  40. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +4 -0
  41. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +10 -0
  42. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +4 -0
  43. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +24 -0
  44. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +4 -0
  45. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.json +181 -0
  46. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +4 -0
  47. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.json +282 -0
  48. package/artifacts/@venusprotocol/isolated-pools/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +4 -0
  49. package/artifacts/@venusprotocol/isolated-pools/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.json +59 -0
  50. package/artifacts/@venusprotocol/oracle/contracts/ResilientOracle.sol/ResilientOracle.dbg.json +4 -0
  51. package/artifacts/@venusprotocol/oracle/contracts/ResilientOracle.sol/ResilientOracle.json +649 -0
  52. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.dbg.json +4 -0
  53. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/BoundValidatorInterface.json +40 -0
  54. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.dbg.json +4 -0
  55. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/OracleInterface.json +30 -0
  56. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.dbg.json +4 -0
  57. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/ResilientOracleInterface.json +75 -0
  58. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.dbg.json +4 -0
  59. package/artifacts/@venusprotocol/oracle/contracts/interfaces/OracleInterface.sol/TwapInterface.json +49 -0
  60. package/artifacts/@venusprotocol/oracle/contracts/interfaces/VBep20Interface.sol/VBep20Interface.dbg.json +4 -0
  61. package/artifacts/@venusprotocol/oracle/contracts/interfaces/VBep20Interface.sol/VBep20Interface.json +246 -0
  62. package/artifacts/@venusprotocol/solidity-utilities/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.dbg.json +4 -0
  63. package/artifacts/@venusprotocol/solidity-utilities/contracts/MaxLoopsLimitHelper.sol/MaxLoopsLimitHelper.json +59 -0
  64. package/artifacts/build-info/09a7fbe40ee8fdfd62afe79292e77863.json +1 -0
  65. package/artifacts/contracts/Interfaces/IComptroller.sol/IComptroller.dbg.json +4 -0
  66. package/artifacts/contracts/Interfaces/IComptroller.sol/IComptroller.json +56 -0
  67. package/artifacts/contracts/Interfaces/IConverterNetwork.sol/IConverterNetwork.dbg.json +4 -0
  68. package/artifacts/contracts/Interfaces/IConverterNetwork.sol/IConverterNetwork.json +127 -0
  69. package/artifacts/contracts/Interfaces/IIncomeDestination.sol/IIncomeDestination.dbg.json +4 -0
  70. package/artifacts/contracts/Interfaces/IIncomeDestination.sol/IIncomeDestination.json +29 -0
  71. package/artifacts/contracts/Interfaces/IPoolRegistry.sol/IPoolRegistry.dbg.json +4 -0
  72. package/artifacts/contracts/Interfaces/IPoolRegistry.sol/IPoolRegistry.json +54 -0
  73. package/artifacts/contracts/Interfaces/IPrime.sol/IPrime.dbg.json +4 -0
  74. package/artifacts/contracts/Interfaces/IPrime.sol/IPrime.json +74 -0
  75. package/artifacts/contracts/Interfaces/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +4 -0
  76. package/artifacts/contracts/Interfaces/IProtocolShareReserve.sol/IProtocolShareReserve.json +34 -0
  77. package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFund.dbg.json +4 -0
  78. package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFund.json +77 -0
  79. package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFundGetters.dbg.json +4 -0
  80. package/artifacts/contracts/Interfaces/IRiskFund.sol/IRiskFundGetters.json +24 -0
  81. package/artifacts/contracts/Interfaces/IRiskFundConverter.sol/IRiskFundConverter.dbg.json +4 -0
  82. package/artifacts/contracts/Interfaces/IRiskFundConverter.sol/IRiskFundConverter.json +48 -0
  83. package/artifacts/contracts/Interfaces/IShortfall.sol/IShortfall.dbg.json +4 -0
  84. package/artifacts/contracts/Interfaces/IShortfall.sol/IShortfall.json +24 -0
  85. package/artifacts/contracts/Interfaces/IVToken.sol/IVToken.dbg.json +4 -0
  86. package/artifacts/contracts/Interfaces/IVToken.sol/IVToken.json +24 -0
  87. package/artifacts/contracts/Interfaces/IXVSVault.sol/IXVSVault.dbg.json +4 -0
  88. package/artifacts/contracts/Interfaces/IXVSVault.sol/IXVSVault.json +24 -0
  89. package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +4 -0
  90. package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.json +892 -0
  91. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/MaxLoopsLimitHelpersStorage.dbg.json +4 -0
  92. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/MaxLoopsLimitHelpersStorage.json +24 -0
  93. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/ReserveHelpersStorage.dbg.json +4 -0
  94. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/ReserveHelpersStorage.json +139 -0
  95. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV1Storage.dbg.json +4 -0
  96. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV1Storage.json +178 -0
  97. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV2Storage.dbg.json +4 -0
  98. package/artifacts/contracts/ProtocolReserve/RiskFundStorage.sol/RiskFundV2Storage.json +191 -0
  99. package/artifacts/contracts/ProtocolReserve/RiskFundV2.sol/RiskFundV2.dbg.json +4 -0
  100. package/artifacts/contracts/ProtocolReserve/RiskFundV2.sol/RiskFundV2.json +582 -0
  101. package/artifacts/contracts/ProtocolReserve/XVSVaultTreasury.sol/XVSVaultTreasury.dbg.json +4 -0
  102. package/artifacts/contracts/ProtocolReserve/XVSVaultTreasury.sol/XVSVaultTreasury.json +315 -0
  103. package/artifacts/contracts/Test/Mocks/MockACM.sol/MockACM.dbg.json +4 -0
  104. package/artifacts/contracts/Test/Mocks/MockACM.sol/MockACM.json +369 -0
  105. package/artifacts/contracts/Test/Mocks/MockArraySorter.sol/MockArraySorter.dbg.json +4 -0
  106. package/artifacts/contracts/Test/Mocks/MockArraySorter.sol/MockArraySorter.json +40 -0
  107. package/artifacts/contracts/Test/Mocks/MockConverter.sol/MockConverter.dbg.json +4 -0
  108. package/artifacts/contracts/Test/Mocks/MockConverter.sol/MockConverter.json +1199 -0
  109. package/artifacts/contracts/Test/Mocks/MockDeflationaryToken.sol/MockDeflatingToken.dbg.json +4 -0
  110. package/artifacts/contracts/Test/Mocks/MockDeflationaryToken.sol/MockDeflatingToken.json +332 -0
  111. package/artifacts/contracts/Test/Mocks/MockRiskFundConverter.sol/MockRiskFundConverter.dbg.json +4 -0
  112. package/artifacts/contracts/Test/Mocks/MockRiskFundConverter.sol/MockRiskFundConverter.json +1559 -0
  113. package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.dbg.json +4 -0
  114. package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.json +333 -0
  115. package/artifacts/contracts/TokenConverter/AbstractTokenConverter.sol/AbstractTokenConverter.dbg.json +4 -0
  116. package/artifacts/contracts/TokenConverter/AbstractTokenConverter.sol/AbstractTokenConverter.json +1085 -0
  117. package/artifacts/contracts/TokenConverter/ConverterNetwork.sol/ConverterNetwork.dbg.json +4 -0
  118. package/artifacts/contracts/TokenConverter/ConverterNetwork.sol/ConverterNetwork.json +457 -0
  119. package/artifacts/contracts/TokenConverter/IAbstractTokenConverter.sol/IAbstractTokenConverter.dbg.json +4 -0
  120. package/artifacts/contracts/TokenConverter/IAbstractTokenConverter.sol/IAbstractTokenConverter.json +344 -0
  121. package/artifacts/contracts/TokenConverter/RiskFundConverter.sol/RiskFundConverter.dbg.json +4 -0
  122. package/artifacts/contracts/TokenConverter/RiskFundConverter.sol/RiskFundConverter.json +1429 -0
  123. package/artifacts/contracts/TokenConverter/SingleTokenConverter.sol/SingleTokenConverter.dbg.json +4 -0
  124. package/artifacts/contracts/TokenConverter/SingleTokenConverter.sol/SingleTokenConverter.json +1145 -0
  125. package/contracts/Interfaces/IComptroller.sol +10 -0
  126. package/contracts/Interfaces/IConverterNetwork.sol +46 -0
  127. package/contracts/Interfaces/IIncomeDestination.sol +6 -0
  128. package/contracts/Interfaces/IPoolRegistry.sol +10 -0
  129. package/contracts/Interfaces/IPrime.sol +12 -0
  130. package/contracts/Interfaces/IProtocolShareReserve.sol +16 -0
  131. package/contracts/Interfaces/IRiskFund.sol +28 -0
  132. package/contracts/Interfaces/IRiskFundConverter.sol +8 -0
  133. package/contracts/Interfaces/IShortfall.sol +11 -0
  134. package/contracts/Interfaces/IVToken.sol +6 -0
  135. package/contracts/Interfaces/IXVSVault.sol +9 -0
  136. package/contracts/ProtocolReserve/ProtocolShareReserve.sol +547 -0
  137. package/contracts/ProtocolReserve/RiskFundStorage.sol +67 -0
  138. package/contracts/ProtocolReserve/RiskFundV2.sol +220 -0
  139. package/contracts/ProtocolReserve/XVSVaultTreasury.sol +95 -0
  140. package/contracts/Test/Mocks/MockACM.sol +93 -0
  141. package/contracts/Test/Mocks/MockArraySorter.sol +14 -0
  142. package/contracts/Test/Mocks/MockConverter.sol +69 -0
  143. package/contracts/Test/Mocks/MockDeflationaryToken.sol +113 -0
  144. package/contracts/Test/Mocks/MockRiskFundConverter.sol +45 -0
  145. package/contracts/Test/Mocks/MockToken.sol +30 -0
  146. package/contracts/TokenConverter/AbstractTokenConverter.sol +1022 -0
  147. package/contracts/TokenConverter/ConverterNetwork.sol +242 -0
  148. package/contracts/TokenConverter/IAbstractTokenConverter.sol +132 -0
  149. package/contracts/TokenConverter/RiskFundConverter.sol +436 -0
  150. package/contracts/TokenConverter/SingleTokenConverter.sol +77 -0
  151. package/contracts/Utils/ArrayHelpers.sol +41 -0
  152. package/contracts/Utils/Constants.sol +11 -0
  153. package/contracts/Utils/Validators.sol +26 -0
  154. package/deploy/001-risk-fund-converter.ts +124 -0
  155. package/deploy/1-deploy.ts +64 -0
  156. package/deployments/bscmainnet/.chainId +1 -0
  157. package/deployments/bscmainnet/DefaultProxyAdmin.json +257 -0
  158. package/deployments/bscmainnet/ProtocolShareReserve.json +1126 -0
  159. package/deployments/bscmainnet/ProtocolShareReserve_Implementation.json +1400 -0
  160. package/deployments/bscmainnet/ProtocolShareReserve_Proxy.json +261 -0
  161. package/deployments/bscmainnet/solcInputs/0e89febeebc7444140de8e67c9067d2c.json +78 -0
  162. package/deployments/bscmainnet/solcInputs/aee5f1db1180ece295e59c8f036fe600.json +90 -0
  163. package/deployments/bsctestnet/.chainId +1 -0
  164. package/deployments/bsctestnet/DefaultProxyAdmin.json +257 -0
  165. package/deployments/bsctestnet/ProtocolShareReserve.json +1126 -0
  166. package/deployments/bsctestnet/ProtocolShareReserve_Implementation.json +1400 -0
  167. package/deployments/bsctestnet/ProtocolShareReserve_Proxy.json +261 -0
  168. package/deployments/bsctestnet/solcInputs/0e89febeebc7444140de8e67c9067d2c.json +78 -0
  169. package/deployments/bsctestnet/solcInputs/aee5f1db1180ece295e59c8f036fe600.json +90 -0
  170. package/package.json +119 -0
  171. package/typechain/AbstractTokenConverter.d.ts +1516 -0
  172. package/typechain/AccessControl.d.ts +388 -0
  173. package/typechain/AccessControlledV8.d.ts +341 -0
  174. package/typechain/BoundValidatorInterface.d.ts +126 -0
  175. package/typechain/ContextUpgradeable.d.ts +92 -0
  176. package/typechain/ConverterNetwork.d.ts +721 -0
  177. package/typechain/ERC165.d.ts +116 -0
  178. package/typechain/ERC20.d.ts +441 -0
  179. package/typechain/IAbstractTokenConverter.d.ts +606 -0
  180. package/typechain/IAccessControl.d.ts +333 -0
  181. package/typechain/IAccessControlManagerV8.d.ts +504 -0
  182. package/typechain/IComptroller.d.ts +136 -0
  183. package/typechain/IConverterNetwork.d.ts +292 -0
  184. package/typechain/IERC165.d.ts +116 -0
  185. package/typechain/IERC20.d.ts +324 -0
  186. package/typechain/IERC20Metadata.d.ts +363 -0
  187. package/typechain/IERC20PermitUpgradeable.d.ts +187 -0
  188. package/typechain/IERC20Upgradeable.d.ts +324 -0
  189. package/typechain/IIncomeDestination.d.ts +122 -0
  190. package/typechain/IPoolRegistry.d.ts +155 -0
  191. package/typechain/IPrime.d.ts +197 -0
  192. package/typechain/IProtocolShareReserve.d.ts +127 -0
  193. package/typechain/IRiskFund.d.ts +200 -0
  194. package/typechain/IRiskFundConverter.d.ts +138 -0
  195. package/typechain/IRiskFundGetters.d.ts +103 -0
  196. package/typechain/IShortfall.d.ts +110 -0
  197. package/typechain/IVToken.d.ts +98 -0
  198. package/typechain/IXVSVault.d.ts +95 -0
  199. package/typechain/Initializable.d.ts +92 -0
  200. package/typechain/MaxLoopsLimitHelper.d.ts +128 -0
  201. package/typechain/MaxLoopsLimitHelpersStorage.d.ts +101 -0
  202. package/typechain/MockACM.d.ts +615 -0
  203. package/typechain/MockArraySorter.d.ts +118 -0
  204. package/typechain/MockConverter.d.ts +1705 -0
  205. package/typechain/MockDeflatingToken.d.ts +486 -0
  206. package/typechain/MockRiskFundConverter.d.ts +2193 -0
  207. package/typechain/MockToken.d.ts +505 -0
  208. package/typechain/OracleInterface.d.ts +98 -0
  209. package/typechain/Ownable2StepUpgradeable.d.ts +261 -0
  210. package/typechain/OwnableUpgradeable.d.ts +193 -0
  211. package/typechain/PausableUpgradeable.d.ts +129 -0
  212. package/typechain/ProtocolShareReserve.d.ts +1332 -0
  213. package/typechain/ReentrancyGuardUpgradeable.d.ts +92 -0
  214. package/typechain/ReserveHelpersStorage.d.ts +300 -0
  215. package/typechain/ResilientOracle.d.ts +1022 -0
  216. package/typechain/ResilientOracleInterface.d.ts +192 -0
  217. package/typechain/RiskFundConverter.d.ts +1949 -0
  218. package/typechain/RiskFundV1Storage.d.ts +353 -0
  219. package/typechain/RiskFundV2.d.ts +893 -0
  220. package/typechain/RiskFundV2Storage.d.ts +372 -0
  221. package/typechain/SingleTokenConverter.d.ts +1598 -0
  222. package/typechain/TwapInterface.d.ts +124 -0
  223. package/typechain/VBep20Interface.d.ts +379 -0
  224. package/typechain/XVSVaultTreasury.d.ts +515 -0
  225. package/typechain/common.d.ts +35 -0
  226. package/typechain/factories/AbstractTokenConverter__factory.ts +1105 -0
  227. package/typechain/factories/AccessControl__factory.ts +227 -0
  228. package/typechain/factories/AccessControlledV8__factory.ts +196 -0
  229. package/typechain/factories/BoundValidatorInterface__factory.ts +59 -0
  230. package/typechain/factories/ContextUpgradeable__factory.ts +39 -0
  231. package/typechain/factories/ConverterNetwork__factory.ts +502 -0
  232. package/typechain/factories/ERC165__factory.ts +39 -0
  233. package/typechain/factories/ERC20__factory.ts +340 -0
  234. package/typechain/factories/IAbstractTokenConverter__factory.ts +364 -0
  235. package/typechain/factories/IAccessControlManagerV8__factory.ts +301 -0
  236. package/typechain/factories/IAccessControl__factory.ts +198 -0
  237. package/typechain/factories/IComptroller__factory.ts +68 -0
  238. package/typechain/factories/IConverterNetwork__factory.ts +142 -0
  239. package/typechain/factories/IERC165__factory.ts +42 -0
  240. package/typechain/factories/IERC20Metadata__factory.ts +248 -0
  241. package/typechain/factories/IERC20PermitUpgradeable__factory.ts +105 -0
  242. package/typechain/factories/IERC20Upgradeable__factory.ts +209 -0
  243. package/typechain/factories/IERC20__factory.ts +203 -0
  244. package/typechain/factories/IIncomeDestination__factory.ts +44 -0
  245. package/typechain/factories/IPoolRegistry__factory.ts +66 -0
  246. package/typechain/factories/IPrime__factory.ts +83 -0
  247. package/typechain/factories/IProtocolShareReserve__factory.ts +53 -0
  248. package/typechain/factories/IRiskFundConverter__factory.ts +63 -0
  249. package/typechain/factories/IRiskFundGetters__factory.ts +39 -0
  250. package/typechain/factories/IRiskFund__factory.ts +89 -0
  251. package/typechain/factories/IShortfall__factory.ts +36 -0
  252. package/typechain/factories/IVToken__factory.ts +36 -0
  253. package/typechain/factories/IXVSVault__factory.ts +36 -0
  254. package/typechain/factories/Initializable__factory.ts +36 -0
  255. package/typechain/factories/MaxLoopsLimitHelper__factory.ts +74 -0
  256. package/typechain/factories/MaxLoopsLimitHelpersStorage__factory.ts +75 -0
  257. package/typechain/factories/MockACM__factory.ts +411 -0
  258. package/typechain/factories/MockArraySorter__factory.ts +85 -0
  259. package/typechain/factories/MockConverter__factory.ts +1242 -0
  260. package/typechain/factories/MockDeflatingToken__factory.ts +389 -0
  261. package/typechain/factories/MockRiskFundConverter__factory.ts +1625 -0
  262. package/typechain/factories/MockToken__factory.ts +398 -0
  263. package/typechain/factories/OracleInterface__factory.ts +45 -0
  264. package/typechain/factories/Ownable2StepUpgradeable__factory.ts +134 -0
  265. package/typechain/factories/OwnableUpgradeable__factory.ts +91 -0
  266. package/typechain/factories/PausableUpgradeable__factory.ts +78 -0
  267. package/typechain/factories/ProtocolShareReserve__factory.ts +957 -0
  268. package/typechain/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
  269. package/typechain/factories/ReserveHelpersStorage__factory.ts +188 -0
  270. package/typechain/factories/ResilientOracleInterface__factory.ts +94 -0
  271. package/typechain/factories/ResilientOracle__factory.ts +710 -0
  272. package/typechain/factories/RiskFundConverter__factory.ts +1491 -0
  273. package/typechain/factories/RiskFundV1Storage__factory.ts +223 -0
  274. package/typechain/factories/RiskFundV2Storage__factory.ts +236 -0
  275. package/typechain/factories/RiskFundV2__factory.ts +624 -0
  276. package/typechain/factories/SingleTokenConverter__factory.ts +1200 -0
  277. package/typechain/factories/TwapInterface__factory.ts +61 -0
  278. package/typechain/factories/VBep20Interface__factory.ts +261 -0
  279. package/typechain/factories/XVSVaultTreasury__factory.ts +365 -0
  280. package/typechain/index.ts +112 -0
@@ -0,0 +1,892 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ProtocolShareReserve",
4
+ "sourceName": "contracts/ProtocolReserve/ProtocolShareReserve.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_corePoolComptroller",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_wbnb",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_vbnb",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "InvalidAddress",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "InvalidTotalPercentage",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "loopsLimit",
42
+ "type": "uint256"
43
+ },
44
+ {
45
+ "internalType": "uint256",
46
+ "name": "requiredLoops",
47
+ "type": "uint256"
48
+ }
49
+ ],
50
+ "name": "MaxLoopsLimitExceeded",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "inputs": [
55
+ {
56
+ "internalType": "address",
57
+ "name": "sender",
58
+ "type": "address"
59
+ },
60
+ {
61
+ "internalType": "address",
62
+ "name": "calledContract",
63
+ "type": "address"
64
+ },
65
+ {
66
+ "internalType": "string",
67
+ "name": "methodSignature",
68
+ "type": "string"
69
+ }
70
+ ],
71
+ "name": "Unauthorized",
72
+ "type": "error"
73
+ },
74
+ {
75
+ "anonymous": false,
76
+ "inputs": [
77
+ {
78
+ "indexed": true,
79
+ "internalType": "address",
80
+ "name": "destination",
81
+ "type": "address"
82
+ },
83
+ {
84
+ "indexed": true,
85
+ "internalType": "address",
86
+ "name": "asset",
87
+ "type": "address"
88
+ },
89
+ {
90
+ "indexed": false,
91
+ "internalType": "enum ProtocolShareReserve.Schema",
92
+ "name": "schema",
93
+ "type": "uint8"
94
+ },
95
+ {
96
+ "indexed": false,
97
+ "internalType": "uint256",
98
+ "name": "percent",
99
+ "type": "uint256"
100
+ },
101
+ {
102
+ "indexed": false,
103
+ "internalType": "uint256",
104
+ "name": "amount",
105
+ "type": "uint256"
106
+ }
107
+ ],
108
+ "name": "AssetReleased",
109
+ "type": "event"
110
+ },
111
+ {
112
+ "anonymous": false,
113
+ "inputs": [
114
+ {
115
+ "indexed": true,
116
+ "internalType": "address",
117
+ "name": "comptroller",
118
+ "type": "address"
119
+ },
120
+ {
121
+ "indexed": true,
122
+ "internalType": "address",
123
+ "name": "asset",
124
+ "type": "address"
125
+ },
126
+ {
127
+ "indexed": false,
128
+ "internalType": "uint256",
129
+ "name": "amount",
130
+ "type": "uint256"
131
+ },
132
+ {
133
+ "indexed": false,
134
+ "internalType": "enum IProtocolShareReserve.IncomeType",
135
+ "name": "incomeType",
136
+ "type": "uint8"
137
+ },
138
+ {
139
+ "indexed": false,
140
+ "internalType": "enum ProtocolShareReserve.Schema",
141
+ "name": "schema",
142
+ "type": "uint8"
143
+ }
144
+ ],
145
+ "name": "AssetsReservesUpdated",
146
+ "type": "event"
147
+ },
148
+ {
149
+ "anonymous": false,
150
+ "inputs": [
151
+ {
152
+ "indexed": true,
153
+ "internalType": "address",
154
+ "name": "destination",
155
+ "type": "address"
156
+ },
157
+ {
158
+ "indexed": false,
159
+ "internalType": "uint8",
160
+ "name": "percentage",
161
+ "type": "uint8"
162
+ },
163
+ {
164
+ "indexed": false,
165
+ "internalType": "enum ProtocolShareReserve.Schema",
166
+ "name": "schema",
167
+ "type": "uint8"
168
+ }
169
+ ],
170
+ "name": "DistributionConfigAdded",
171
+ "type": "event"
172
+ },
173
+ {
174
+ "anonymous": false,
175
+ "inputs": [
176
+ {
177
+ "indexed": true,
178
+ "internalType": "address",
179
+ "name": "destination",
180
+ "type": "address"
181
+ },
182
+ {
183
+ "indexed": false,
184
+ "internalType": "uint8",
185
+ "name": "percentage",
186
+ "type": "uint8"
187
+ },
188
+ {
189
+ "indexed": false,
190
+ "internalType": "enum ProtocolShareReserve.Schema",
191
+ "name": "schema",
192
+ "type": "uint8"
193
+ }
194
+ ],
195
+ "name": "DistributionConfigRemoved",
196
+ "type": "event"
197
+ },
198
+ {
199
+ "anonymous": false,
200
+ "inputs": [
201
+ {
202
+ "indexed": true,
203
+ "internalType": "address",
204
+ "name": "destination",
205
+ "type": "address"
206
+ },
207
+ {
208
+ "indexed": false,
209
+ "internalType": "uint8",
210
+ "name": "oldPercentage",
211
+ "type": "uint8"
212
+ },
213
+ {
214
+ "indexed": false,
215
+ "internalType": "uint8",
216
+ "name": "newPercentage",
217
+ "type": "uint8"
218
+ },
219
+ {
220
+ "indexed": false,
221
+ "internalType": "enum ProtocolShareReserve.Schema",
222
+ "name": "schema",
223
+ "type": "uint8"
224
+ }
225
+ ],
226
+ "name": "DistributionConfigUpdated",
227
+ "type": "event"
228
+ },
229
+ {
230
+ "anonymous": false,
231
+ "inputs": [
232
+ {
233
+ "indexed": false,
234
+ "internalType": "uint8",
235
+ "name": "version",
236
+ "type": "uint8"
237
+ }
238
+ ],
239
+ "name": "Initialized",
240
+ "type": "event"
241
+ },
242
+ {
243
+ "anonymous": false,
244
+ "inputs": [
245
+ {
246
+ "indexed": false,
247
+ "internalType": "uint256",
248
+ "name": "oldMaxLoopsLimit",
249
+ "type": "uint256"
250
+ },
251
+ {
252
+ "indexed": false,
253
+ "internalType": "uint256",
254
+ "name": "newmaxLoopsLimit",
255
+ "type": "uint256"
256
+ }
257
+ ],
258
+ "name": "MaxLoopsLimitUpdated",
259
+ "type": "event"
260
+ },
261
+ {
262
+ "anonymous": false,
263
+ "inputs": [
264
+ {
265
+ "indexed": false,
266
+ "internalType": "address",
267
+ "name": "oldAccessControlManager",
268
+ "type": "address"
269
+ },
270
+ {
271
+ "indexed": false,
272
+ "internalType": "address",
273
+ "name": "newAccessControlManager",
274
+ "type": "address"
275
+ }
276
+ ],
277
+ "name": "NewAccessControlManager",
278
+ "type": "event"
279
+ },
280
+ {
281
+ "anonymous": false,
282
+ "inputs": [
283
+ {
284
+ "indexed": true,
285
+ "internalType": "address",
286
+ "name": "previousOwner",
287
+ "type": "address"
288
+ },
289
+ {
290
+ "indexed": true,
291
+ "internalType": "address",
292
+ "name": "newOwner",
293
+ "type": "address"
294
+ }
295
+ ],
296
+ "name": "OwnershipTransferStarted",
297
+ "type": "event"
298
+ },
299
+ {
300
+ "anonymous": false,
301
+ "inputs": [
302
+ {
303
+ "indexed": true,
304
+ "internalType": "address",
305
+ "name": "previousOwner",
306
+ "type": "address"
307
+ },
308
+ {
309
+ "indexed": true,
310
+ "internalType": "address",
311
+ "name": "newOwner",
312
+ "type": "address"
313
+ }
314
+ ],
315
+ "name": "OwnershipTransferred",
316
+ "type": "event"
317
+ },
318
+ {
319
+ "anonymous": false,
320
+ "inputs": [
321
+ {
322
+ "indexed": true,
323
+ "internalType": "address",
324
+ "name": "oldPoolRegistry",
325
+ "type": "address"
326
+ },
327
+ {
328
+ "indexed": true,
329
+ "internalType": "address",
330
+ "name": "newPoolRegistry",
331
+ "type": "address"
332
+ }
333
+ ],
334
+ "name": "PoolRegistryUpdated",
335
+ "type": "event"
336
+ },
337
+ {
338
+ "anonymous": false,
339
+ "inputs": [
340
+ {
341
+ "indexed": true,
342
+ "internalType": "address",
343
+ "name": "asset",
344
+ "type": "address"
345
+ },
346
+ {
347
+ "indexed": false,
348
+ "internalType": "bool",
349
+ "name": "isPrimeAsset",
350
+ "type": "bool"
351
+ }
352
+ ],
353
+ "name": "PrimeAssetUpdated",
354
+ "type": "event"
355
+ },
356
+ {
357
+ "anonymous": false,
358
+ "inputs": [
359
+ {
360
+ "indexed": true,
361
+ "internalType": "address",
362
+ "name": "oldPrime",
363
+ "type": "address"
364
+ },
365
+ {
366
+ "indexed": true,
367
+ "internalType": "address",
368
+ "name": "newPrime",
369
+ "type": "address"
370
+ }
371
+ ],
372
+ "name": "PrimeUpdated",
373
+ "type": "event"
374
+ },
375
+ {
376
+ "anonymous": false,
377
+ "inputs": [
378
+ {
379
+ "indexed": true,
380
+ "internalType": "address",
381
+ "name": "comptroller",
382
+ "type": "address"
383
+ },
384
+ {
385
+ "indexed": true,
386
+ "internalType": "address",
387
+ "name": "asset",
388
+ "type": "address"
389
+ },
390
+ {
391
+ "indexed": false,
392
+ "internalType": "enum ProtocolShareReserve.Schema",
393
+ "name": "schema",
394
+ "type": "uint8"
395
+ },
396
+ {
397
+ "indexed": false,
398
+ "internalType": "uint256",
399
+ "name": "oldBalance",
400
+ "type": "uint256"
401
+ },
402
+ {
403
+ "indexed": false,
404
+ "internalType": "uint256",
405
+ "name": "newBalance",
406
+ "type": "uint256"
407
+ }
408
+ ],
409
+ "name": "ReservesUpdated",
410
+ "type": "event"
411
+ },
412
+ {
413
+ "inputs": [],
414
+ "name": "CORE_POOL_COMPTROLLER",
415
+ "outputs": [
416
+ {
417
+ "internalType": "address",
418
+ "name": "",
419
+ "type": "address"
420
+ }
421
+ ],
422
+ "stateMutability": "view",
423
+ "type": "function"
424
+ },
425
+ {
426
+ "inputs": [],
427
+ "name": "WBNB",
428
+ "outputs": [
429
+ {
430
+ "internalType": "address",
431
+ "name": "",
432
+ "type": "address"
433
+ }
434
+ ],
435
+ "stateMutability": "view",
436
+ "type": "function"
437
+ },
438
+ {
439
+ "inputs": [],
440
+ "name": "acceptOwnership",
441
+ "outputs": [],
442
+ "stateMutability": "nonpayable",
443
+ "type": "function"
444
+ },
445
+ {
446
+ "inputs": [],
447
+ "name": "accessControlManager",
448
+ "outputs": [
449
+ {
450
+ "internalType": "contract IAccessControlManagerV8",
451
+ "name": "",
452
+ "type": "address"
453
+ }
454
+ ],
455
+ "stateMutability": "view",
456
+ "type": "function"
457
+ },
458
+ {
459
+ "inputs": [
460
+ {
461
+ "internalType": "address",
462
+ "name": "asset",
463
+ "type": "address"
464
+ },
465
+ {
466
+ "internalType": "bool",
467
+ "name": "isPrimeAsset",
468
+ "type": "bool"
469
+ }
470
+ ],
471
+ "name": "addOrRemoveAssetFromPrime",
472
+ "outputs": [],
473
+ "stateMutability": "nonpayable",
474
+ "type": "function"
475
+ },
476
+ {
477
+ "inputs": [
478
+ {
479
+ "components": [
480
+ {
481
+ "internalType": "enum ProtocolShareReserve.Schema",
482
+ "name": "schema",
483
+ "type": "uint8"
484
+ },
485
+ {
486
+ "internalType": "uint8",
487
+ "name": "percentage",
488
+ "type": "uint8"
489
+ },
490
+ {
491
+ "internalType": "address",
492
+ "name": "destination",
493
+ "type": "address"
494
+ }
495
+ ],
496
+ "internalType": "struct ProtocolShareReserve.DistributionConfig[]",
497
+ "name": "configs",
498
+ "type": "tuple[]"
499
+ }
500
+ ],
501
+ "name": "addOrUpdateDistributionConfigs",
502
+ "outputs": [],
503
+ "stateMutability": "nonpayable",
504
+ "type": "function"
505
+ },
506
+ {
507
+ "inputs": [
508
+ {
509
+ "internalType": "address",
510
+ "name": "",
511
+ "type": "address"
512
+ },
513
+ {
514
+ "internalType": "address",
515
+ "name": "",
516
+ "type": "address"
517
+ },
518
+ {
519
+ "internalType": "enum ProtocolShareReserve.Schema",
520
+ "name": "",
521
+ "type": "uint8"
522
+ }
523
+ ],
524
+ "name": "assetsReserves",
525
+ "outputs": [
526
+ {
527
+ "internalType": "uint256",
528
+ "name": "",
529
+ "type": "uint256"
530
+ }
531
+ ],
532
+ "stateMutability": "view",
533
+ "type": "function"
534
+ },
535
+ {
536
+ "inputs": [
537
+ {
538
+ "internalType": "uint256",
539
+ "name": "",
540
+ "type": "uint256"
541
+ }
542
+ ],
543
+ "name": "distributionTargets",
544
+ "outputs": [
545
+ {
546
+ "internalType": "enum ProtocolShareReserve.Schema",
547
+ "name": "schema",
548
+ "type": "uint8"
549
+ },
550
+ {
551
+ "internalType": "uint8",
552
+ "name": "percentage",
553
+ "type": "uint8"
554
+ },
555
+ {
556
+ "internalType": "address",
557
+ "name": "destination",
558
+ "type": "address"
559
+ }
560
+ ],
561
+ "stateMutability": "view",
562
+ "type": "function"
563
+ },
564
+ {
565
+ "inputs": [
566
+ {
567
+ "internalType": "address",
568
+ "name": "destination",
569
+ "type": "address"
570
+ },
571
+ {
572
+ "internalType": "enum ProtocolShareReserve.Schema",
573
+ "name": "schema",
574
+ "type": "uint8"
575
+ }
576
+ ],
577
+ "name": "getPercentageDistribution",
578
+ "outputs": [
579
+ {
580
+ "internalType": "uint256",
581
+ "name": "",
582
+ "type": "uint256"
583
+ }
584
+ ],
585
+ "stateMutability": "view",
586
+ "type": "function"
587
+ },
588
+ {
589
+ "inputs": [
590
+ {
591
+ "internalType": "address",
592
+ "name": "comptroller",
593
+ "type": "address"
594
+ },
595
+ {
596
+ "internalType": "enum ProtocolShareReserve.Schema",
597
+ "name": "schema",
598
+ "type": "uint8"
599
+ },
600
+ {
601
+ "internalType": "address",
602
+ "name": "destination",
603
+ "type": "address"
604
+ },
605
+ {
606
+ "internalType": "address",
607
+ "name": "asset",
608
+ "type": "address"
609
+ }
610
+ ],
611
+ "name": "getUnreleasedFunds",
612
+ "outputs": [
613
+ {
614
+ "internalType": "uint256",
615
+ "name": "",
616
+ "type": "uint256"
617
+ }
618
+ ],
619
+ "stateMutability": "view",
620
+ "type": "function"
621
+ },
622
+ {
623
+ "inputs": [
624
+ {
625
+ "internalType": "address",
626
+ "name": "_accessControlManager",
627
+ "type": "address"
628
+ },
629
+ {
630
+ "internalType": "uint256",
631
+ "name": "_loopsLimit",
632
+ "type": "uint256"
633
+ }
634
+ ],
635
+ "name": "initialize",
636
+ "outputs": [],
637
+ "stateMutability": "nonpayable",
638
+ "type": "function"
639
+ },
640
+ {
641
+ "inputs": [
642
+ {
643
+ "internalType": "address",
644
+ "name": "",
645
+ "type": "address"
646
+ }
647
+ ],
648
+ "name": "isInPrime",
649
+ "outputs": [
650
+ {
651
+ "internalType": "bool",
652
+ "name": "",
653
+ "type": "bool"
654
+ }
655
+ ],
656
+ "stateMutability": "view",
657
+ "type": "function"
658
+ },
659
+ {
660
+ "inputs": [],
661
+ "name": "maxLoopsLimit",
662
+ "outputs": [
663
+ {
664
+ "internalType": "uint256",
665
+ "name": "",
666
+ "type": "uint256"
667
+ }
668
+ ],
669
+ "stateMutability": "view",
670
+ "type": "function"
671
+ },
672
+ {
673
+ "inputs": [],
674
+ "name": "owner",
675
+ "outputs": [
676
+ {
677
+ "internalType": "address",
678
+ "name": "",
679
+ "type": "address"
680
+ }
681
+ ],
682
+ "stateMutability": "view",
683
+ "type": "function"
684
+ },
685
+ {
686
+ "inputs": [],
687
+ "name": "pendingOwner",
688
+ "outputs": [
689
+ {
690
+ "internalType": "address",
691
+ "name": "",
692
+ "type": "address"
693
+ }
694
+ ],
695
+ "stateMutability": "view",
696
+ "type": "function"
697
+ },
698
+ {
699
+ "inputs": [],
700
+ "name": "poolRegistry",
701
+ "outputs": [
702
+ {
703
+ "internalType": "address",
704
+ "name": "",
705
+ "type": "address"
706
+ }
707
+ ],
708
+ "stateMutability": "view",
709
+ "type": "function"
710
+ },
711
+ {
712
+ "inputs": [],
713
+ "name": "prime",
714
+ "outputs": [
715
+ {
716
+ "internalType": "address",
717
+ "name": "",
718
+ "type": "address"
719
+ }
720
+ ],
721
+ "stateMutability": "view",
722
+ "type": "function"
723
+ },
724
+ {
725
+ "inputs": [
726
+ {
727
+ "internalType": "address",
728
+ "name": "comptroller",
729
+ "type": "address"
730
+ },
731
+ {
732
+ "internalType": "address[]",
733
+ "name": "assets",
734
+ "type": "address[]"
735
+ }
736
+ ],
737
+ "name": "releaseFunds",
738
+ "outputs": [],
739
+ "stateMutability": "nonpayable",
740
+ "type": "function"
741
+ },
742
+ {
743
+ "inputs": [
744
+ {
745
+ "internalType": "enum ProtocolShareReserve.Schema",
746
+ "name": "schema",
747
+ "type": "uint8"
748
+ },
749
+ {
750
+ "internalType": "address",
751
+ "name": "destination",
752
+ "type": "address"
753
+ }
754
+ ],
755
+ "name": "removeDistributionConfig",
756
+ "outputs": [],
757
+ "stateMutability": "nonpayable",
758
+ "type": "function"
759
+ },
760
+ {
761
+ "inputs": [],
762
+ "name": "renounceOwnership",
763
+ "outputs": [],
764
+ "stateMutability": "nonpayable",
765
+ "type": "function"
766
+ },
767
+ {
768
+ "inputs": [
769
+ {
770
+ "internalType": "address",
771
+ "name": "accessControlManager_",
772
+ "type": "address"
773
+ }
774
+ ],
775
+ "name": "setAccessControlManager",
776
+ "outputs": [],
777
+ "stateMutability": "nonpayable",
778
+ "type": "function"
779
+ },
780
+ {
781
+ "inputs": [
782
+ {
783
+ "internalType": "address",
784
+ "name": "_poolRegistry",
785
+ "type": "address"
786
+ }
787
+ ],
788
+ "name": "setPoolRegistry",
789
+ "outputs": [],
790
+ "stateMutability": "nonpayable",
791
+ "type": "function"
792
+ },
793
+ {
794
+ "inputs": [
795
+ {
796
+ "internalType": "address",
797
+ "name": "_prime",
798
+ "type": "address"
799
+ }
800
+ ],
801
+ "name": "setPrime",
802
+ "outputs": [],
803
+ "stateMutability": "nonpayable",
804
+ "type": "function"
805
+ },
806
+ {
807
+ "inputs": [
808
+ {
809
+ "internalType": "address",
810
+ "name": "",
811
+ "type": "address"
812
+ }
813
+ ],
814
+ "name": "totalAssetReserve",
815
+ "outputs": [
816
+ {
817
+ "internalType": "uint256",
818
+ "name": "",
819
+ "type": "uint256"
820
+ }
821
+ ],
822
+ "stateMutability": "view",
823
+ "type": "function"
824
+ },
825
+ {
826
+ "inputs": [],
827
+ "name": "totalDistributions",
828
+ "outputs": [
829
+ {
830
+ "internalType": "uint256",
831
+ "name": "",
832
+ "type": "uint256"
833
+ }
834
+ ],
835
+ "stateMutability": "view",
836
+ "type": "function"
837
+ },
838
+ {
839
+ "inputs": [
840
+ {
841
+ "internalType": "address",
842
+ "name": "newOwner",
843
+ "type": "address"
844
+ }
845
+ ],
846
+ "name": "transferOwnership",
847
+ "outputs": [],
848
+ "stateMutability": "nonpayable",
849
+ "type": "function"
850
+ },
851
+ {
852
+ "inputs": [
853
+ {
854
+ "internalType": "address",
855
+ "name": "comptroller",
856
+ "type": "address"
857
+ },
858
+ {
859
+ "internalType": "address",
860
+ "name": "asset",
861
+ "type": "address"
862
+ },
863
+ {
864
+ "internalType": "enum IProtocolShareReserve.IncomeType",
865
+ "name": "incomeType",
866
+ "type": "uint8"
867
+ }
868
+ ],
869
+ "name": "updateAssetsState",
870
+ "outputs": [],
871
+ "stateMutability": "nonpayable",
872
+ "type": "function"
873
+ },
874
+ {
875
+ "inputs": [],
876
+ "name": "vBNB",
877
+ "outputs": [
878
+ {
879
+ "internalType": "address",
880
+ "name": "",
881
+ "type": "address"
882
+ }
883
+ ],
884
+ "stateMutability": "view",
885
+ "type": "function"
886
+ }
887
+ ],
888
+ "bytecode": "0x60e06040523480156200001157600080fd5b50604051620037a0380380620037a08339810160408190526200003491620001b6565b6001600160a01b0383166200005c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216620000845760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038116620000ac5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0380841660805282811660a052811660c052620000cf620000d8565b50505062000200565b600054610100900460ff1615620001455760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161462000197576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620001b157600080fd5b919050565b600080600060608486031215620001cc57600080fd5b620001d78462000199565b9250620001e76020850162000199565b9150620001f76040850162000199565b90509250925092565b60805160a05160c05161354d620002536000396000818161020e01526126e9015260008181610355015261272301526000818161043c015281816105660152818161185a0152611cf9015261354d6000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063c7ee005e11610097578063e30c397811610071578063e30c397814610413578063f2fde38b14610424578063fa7b81a014610437578063fc31116a1461045e57600080fd5b8063c7ee005e146103d9578063c9e18c6f146103ed578063cd6dc6871461040057600080fd5b8063aea21121116100d3578063aea211211461038a578063afcff50f146103ab578063b4a0bdf3146103bf578063be26317e146103d057600080fd5b80638da5cb5b1461033f5780638dd9500214610350578063966961f01461037757600080fd5b8063715018a611610166578063814d944611610140578063814d9446146102d2578063840a05e0146102e5578063893ffe98146102f85780638d904e891461030b57600080fd5b8063715018a6146102af57806379ba5097146102b75780637b77cd6a146102bf57600080fd5b806333e1567f116101a257806333e1567f14610209578063392ee712146102485780634f429f361461026a5780635db6da121461027d57600080fd5b80630e32cb86146101c9578063163db71b146101de57806316faecec146101f6575b600080fd5b6101dc6101d7366004612c4e565b610471565b005b610131545b6040519081526020015b60405180910390f35b6101dc610204366004612c78565b610485565b6102307f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101ed565b61025b610256366004612cc3565b610834565b6040516101ed93929190612d42565b6101dc610278366004612d6f565b610871565b6101e361028b366004612c78565b61012f60209081526000938452604080852082529284528284209052825290205481565b6101dc610bae565b6101dc610bc2565b6101dc6102cd366004612c4e565b610c52565b6101dc6102e0366004612db6565b610d10565b6101dc6102f3366004612de4565b610e00565b6101e3610306366004612e59565b61114a565b61032f610319366004612c4e565b6101326020526000908152604090205460ff1681565b60405190151581526020016101ed565b6033546001600160a01b0316610230565b6102307f000000000000000000000000000000000000000000000000000000000000000081565b6101e3610385366004612eb5565b611269565b6101e3610398366004612c4e565b6101306020526000908152604090205481565b61012e54610230906001600160a01b031681565b6097546001600160a01b0316610230565b6101e360fb5481565b61012d54610230906001600160a01b031681565b6101dc6103fb366004612c4e565b61135b565b6101dc61040e366004612ee3565b611419565b6065546001600160a01b0316610230565b6101dc610432366004612c4e565b6115a4565b6102307f000000000000000000000000000000000000000000000000000000000000000081565b6101dc61046c366004612f0f565b61162d565b61047961168b565b610482816116e5565b50565b61048d6117db565b826001600160a01b0316627e3dd26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ee9190612f97565b610524576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216610564576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415801561063d575061012e546040517f266e0a7f0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528481166024830152600092169063266e0a7f90604401602060405180830381865afa15801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190612fb4565b6001600160a01b0316145b15610674576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610681848484611834565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156106e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107089190612fd1565b6001600160a01b0385166000908152610130602052604090205490915080821115610822576001600160a01b03808716600090815261012f6020908152604080832093891683529290529081208284039182919086600181111561076e5761076e612cdc565b600181111561077f5761077f612cdc565b8152602001908152602001600020600082825461079c9190613019565b90915550506001600160a01b03861660009081526101306020526040812080548392906107ca908490613019565b92505081905550856001600160a01b0316876001600160a01b03167fa46b2431e663cf7b50c9d5129aff85d2394ecfd447b7ccba83986510a9d945ea83888860405161081893929190613031565b60405180910390a3505b50505061082f600160c955565b505050565b610131818154811061084557600080fd5b60009182526020909120015460ff8082169250610100820416906201000090046001600160a01b031683565b6108926040518060600160405280602881526020016134bc602891396118c2565b600080805b6101315481101561093b57600061013182815481106108b8576108b861305e565b6000918252602090912001805490915060ff1660018111156108dc576108dc612cdc565b8660018111156108ee576108ee612cdc565b14801561090d575080546001600160a01b038681166201000090920416145b801561092057508054610100900460ff16155b1561093257600192508193505061093b565b50600101610897565b508015610ba05761013182815481106109565761095661305e565b9060005260206000200160000160029054906101000a90046001600160a01b03166001600160a01b03167f1ac2d5fa1b44dc6086053de4a872e5bcdf9a98e5069a325572aef982a1b743bb61013184815481106109b5576109b561305e565b9060005260206000200160000160019054906101000a900460ff1661013185815481106109e4576109e461305e565b600091825260209091200154604051610a01929160ff169061308d565b60405180910390a26101318054610a1a906001906130ad565b81548110610a2a57610a2a61305e565b906000526020600020016101318381548110610a4857610a4861305e565b60009182526020909120825491018054909160ff169082907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018381811115610a9557610a95612cdc565b02179055508154815460ff61010092839004169091027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82168117835592546001600160a01b03620100009182900416027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9093167fffffffffffffffffffff000000000000000000000000000000000000000000ff90911617919091179055610131805480610b4757610b476130c4565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffff000000000000000000000000000000000000000000001690550190555b610ba861198e565b50505050565b610bb661168b565b610bc06000611b5f565b565b60655433906001600160a01b03168114610c495760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61048281611b5f565b610c5a61168b565b6001600160a01b038116610c9a576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61012e546040516001600160a01b038084169216907fa87b964d321035d2165e484ff4b722dd6eae30606c0b98887d2ed1a34e594bfe90600090a361012e80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610d31604051806060016040528060278152602001613495602791396118c2565b6001600160a01b038216610d71576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600160a01b03167fd3bc3456781fe4eb5565e91d1e1898b62fc4404636e2deb9e9d76f5a956ff3ac82604051610dae911515815260200190565b60405180910390a26001600160a01b039190911660009081526101326020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b610e086117db565b610e296040518060600160405280603481526020016134e4603491396118c2565b610e31611b90565b60005b81811015611126576000838383818110610e5057610e5061305e565b905060600201803603810190610e669190613171565b60408101519091506001600160a01b0316610ead576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61013154600090815b81811015610fd85760006101318281548110610ed457610ed461305e565b6000918252602090912001805490915060ff166001811115610ef857610ef8612cdc565b85516001811115610f0b57610f0b612cdc565b148015610f2f5750604085015181546201000090046001600160a01b039081169116145b15610fcf5760408581015182546020880151885193516001600160a01b03909316937f7b9512a7d53862cbbb1d78873d1809728aa9241f63fdf818e3525869ab0d03ce93610f8793610100900460ff169291906131e9565b60405180910390a26020850151815460ff909116610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff90911617905560019250610fd8565b50600101610eb6565b50816111185761013180546001818101835560009290925284517fbd987ad6ccdb7c7567f7335ea839f95dc944431abcf935b6924f70215963db739091018054869391929183917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690838181111561105357611053612cdc565b021790555060208281015182546040948501517fffffffffffffffffffff000000000000000000000000000000000000000000ff90911661010060ff909316929092027fffffffffffffffffffff0000000000000000000000000000000000000000ffff1691909117620100006001600160a01b03928316021790925585830151908601518651935191909216927fc4584834cab3196e27e1b931e874fecbfada0785b639b02ed649d08c8e3ca8579261110f9290919061308d565b60405180910390a25b836001019350505050610e34565b5061112f61198e565b6101315461113c90611d2a565b611146600160c955565b5050565b61013154600090815b8181101561125e57600061013182815481106111715761117161305e565b90600052602060002001905086600181111561118f5761118f612cdc565b815460ff1660018111156111a5576111a5612cdc565b1480156111c4575080546001600160a01b038781166201000090920416145b15611255576001600160a01b03808916600090815261012f6020908152604080832093891683529290529081208189600181111561120457611204612cdc565b600181111561121557611215612cdc565b8152602081019190915260400160002054825490915060649061124090610100900460ff1683613204565b61124a9190613241565b945050505050611261565b50600101611153565b50505b949350505050565b61013154600090815b8181101561135257600061013182815481106112905761129061305e565b60009182526020909120604080516060810190915291018054829060ff1660018111156112bf576112bf612cdc565b60018111156112d0576112d0612cdc565b81529054610100810460ff1660208301526201000090046001600160a01b03908116604092830152908201519192508781169116148015611333575084600181111561131e5761131e612cdc565b8151600181111561133157611331612cdc565b145b15611349576020015160ff169250611355915050565b50600101611272565b50505b92915050565b61136361168b565b6001600160a01b0381166113a3576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61012d546040516001600160a01b038084169216907f229f487e93a5313f6898190adf00c62e8b5d4c9c46249d31a9cd8a8024007bce90600090a361012d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600054610100900460ff16158080156114395750600054600160ff909116105b806114535750303b158015611453575060005460ff166001145b6114c55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610c40565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561152357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61152c83611d74565b611534611e02565b61153d82611e87565b801561082f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6115ac61168b565b606580546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556115f56033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6116356117db565b61163d611f3c565b60005b81811015611680576116788484848481811061165e5761165e61305e565b90506020020160208101906116739190612c4e565b6120ac565b600101611640565b5061082f600160c955565b6033546001600160a01b03163314610bc05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c40565b6001600160a01b0381166117615760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610c40565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091015b60405180910390a15050565b600260c9540361182d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c40565b600260c955565b6001600160a01b0382166000908152610132602052604081205460ff16801561188e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b80156118ab575060008260018111156118a9576118a9612cdc565b145b156118b4575060015b9392505050565b600160c955565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab9061190e90339086906004016132f2565b602060405180830381865afa15801561192b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194f9190612f97565b905080611146573330836040517f4a3fa293000000000000000000000000000000000000000000000000000000008152600401610c4093929190613314565b600061199b600180613019565b905060008167ffffffffffffffff8111156119b8576119b86130f3565b6040519080825280602002602001820160405280156119e1578160200160208202803683370190505b506101315490915060005b81811015611ac75760006101318281548110611a0a57611a0a61305e565b60009182526020909120604080516060810190915291018054829060ff166001811115611a3957611a39612cdc565b6001811115611a4a57611a4a612cdc565b81529054610100810460ff16602080840191909152620100009091046001600160a01b031660409092019190915281015181519192509085906001811115611a9457611a94612cdc565b81518110611aa457611aa461305e565b60200260200101818151611ab89190613349565b60ff16905250506001016119ec565b5060005b83811015610ba857606460ff16838281518110611aea57611aea61305e565b602002602001015160ff1614158015611b205750828181518110611b1057611b1061305e565b602002602001015160ff16600014155b15611b57576040517f0b8ad7f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600101611acb565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556104828161267b565b61012d546001600160a01b0316611ba357565b61012d54604080517fb0772d0b00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163b0772d0b91600480830192869291908290030181865afa158015611c06573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611c4c919081019061336e565b905060005b8151811015611146576000828281518110611c6e57611c6e61305e565b602090810291909101015161012d546040517f9198e5150000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152929350911690639198e51590602401600060405180830381600087803b158015611cdc57600080fd5b505af1158015611cf0573d6000803e3d6000fd5b50505050611d217f0000000000000000000000000000000000000000000000000000000000000000611673836126e5565b50600101611c51565b60fb548111156104825760fb546040517ff257f636000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610c40565b600054610100900460ff16611df15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b611df96127a9565b6104828161282e565b600054610100900460ff16611e7f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b610bc06128ab565b60fb548111611efe5760405162461bcd60e51b815260206004820152602260248201527f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d60448201527f69740000000000000000000000000000000000000000000000000000000000006064820152608401610c40565b60fb80549082905560408051828152602081018490527fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa91016117cf565b61012d546001600160a01b0316611f4f57565b61012d54604080517fb0772d0b00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163b0772d0b91600480830192869291908290030181865afa158015611fb2573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611ff8919081019061336e565b905060005b815181101561114657600082828151811061201a5761201a61305e565b602090810291909101015161012d546040517f9198e5150000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152929350911690639198e51590602401600060405180830381600087803b15801561208857600080fd5b505af115801561209c573d6000803e3d6000fd5b5050505081600101915050611ffd565b60006120b9600180613019565b905060008167ffffffffffffffff8111156120d6576120d66130f3565b6040519080825280602002602001820160405280156120ff578160200160208202803683370190505b5090506000805b838110156121c7576001600160a01b03808716600090815261012f6020908152604080832093891683529290529081209082600181111561214957612149612cdc565b600181111561215a5761215a612cdc565b600181111561216b5761216b612cdc565b81526020019081526020016000205483828151811061218c5761218c61305e565b6020026020010181815250508281815181106121aa576121aa61305e565b6020026020010151826121bd9190613019565b9150600101612106565b50806000036121d7575050505050565b60008367ffffffffffffffff8111156121f2576121f26130f3565b60405190808252806020026020018201604052801561221b578160200160208202803683370190505b50905060005b6101315481101561244657600061013182815481106122425761224261305e565b60009182526020909120604080516060810190915291018054829060ff16600181111561227157612271612cdc565b600181111561228257612282612cdc565b81529054610100810460ff908116602080850191909152620100009092046001600160a01b031660409093019290925282015182519293506000926064929190911690889060018111156122d8576122d8612cdc565b815181106122e8576122e861305e565b60200260200101516122fa9190613204565b6123049190613241565b905080848360000151600181111561231e5761231e612cdc565b8151811061232e5761232e61305e565b602002602001018181516123429190613019565b905250604082015161235f906001600160a01b038a169083612928565b60408083015190517faac59a750000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301528a811660248301529091169063aac59a7590604401600060405180830381600087803b1580156123c957600080fd5b505af11580156123dd573d6000803e3d6000fd5b50505050876001600160a01b031682604001516001600160a01b03167f09f71e7b22d78540ee9a42f09917a9d62f46735cb0dfa70d6bab27866d9cb500846000015185602001518560405161243493929190613420565b60405180910390a35050600101612221565b5060008467ffffffffffffffff811115612462576124626130f3565b60405190808252806020026020018201604052801561248b578160200160208202803683370190505b50905060005b85811015612671578281815181106124ab576124ab61305e565b60200260200101518582815181106124c5576124c561305e565b60200260200101516124d791906130ad565b8282815181106124e9576124e961305e565b6020026020010181815250508181815181106125075761250761305e565b6020908102919091018101516001600160a01b03808b16600090815261012f84526040808220928c168252919093528220909183600181111561254c5761254c612cdc565b600181111561255d5761255d612cdc565b600181111561256e5761256e612cdc565b8152602001908152602001600020819055508281815181106125925761259261305e565b60200260200101516101306000896001600160a01b03166001600160a01b03168152602001908152602001600020546125cb91906130ad565b6001600160a01b038089166000818152610130602052604090209290925589167f7d881f3d6246a6a2b97b121b8ba093c17497912c68e8b2bca6108528e91df3ca83600181111561261e5761261e612cdc565b8885815181106126305761263061305e565b602002602001015186868151811061264a5761264a61305e565b602002602001015160405161266193929190613444565b60405180910390a3600101612491565b5050505050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361274757507f0000000000000000000000000000000000000000000000000000000000000000919050565b816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113559190612fb4565b600054610100900460ff166128265760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b610bc06129a8565b600054610100900460ff166104795760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b600054610100900460ff166118bb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261082f908490612a2e565b600054610100900460ff16612a255760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b610bc033611b5f565b6000612a83826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612b169092919063ffffffff16565b9050805160001480612aa4575080806020019051810190612aa49190612f97565b61082f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610c40565b6060611261848460008585600080866001600160a01b03168587604051612b3d9190613465565b60006040518083038185875af1925050503d8060008114612b7a576040519150601f19603f3d011682016040523d82523d6000602084013e612b7f565b606091505b5091509150612b9087838387612b9b565b979650505050505050565b60608315612c0a578251600003612c03576001600160a01b0385163b612c035760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c40565b5081611261565b6112618383815115612c1f5781518083602001fd5b8060405162461bcd60e51b8152600401610c409190613481565b6001600160a01b038116811461048257600080fd5b600060208284031215612c6057600080fd5b81356118b481612c39565b6002811061048257600080fd5b600080600060608486031215612c8d57600080fd5b8335612c9881612c39565b92506020840135612ca881612c39565b91506040840135612cb881612c6b565b809150509250925092565b600060208284031215612cd557600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110610482577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60608101612d4f85612d0b565b93815260ff9290921660208301526001600160a01b031660409091015290565b60008060408385031215612d8257600080fd5b8235612d8d81612c6b565b91506020830135612d9d81612c39565b809150509250929050565b801515811461048257600080fd5b60008060408385031215612dc957600080fd5b8235612dd481612c39565b91506020830135612d9d81612da8565b60008060208385031215612df757600080fd5b823567ffffffffffffffff80821115612e0f57600080fd5b818501915085601f830112612e2357600080fd5b813581811115612e3257600080fd5b866020606083028501011115612e4757600080fd5b60209290920196919550909350505050565b60008060008060808587031215612e6f57600080fd5b8435612e7a81612c39565b93506020850135612e8a81612c6b565b92506040850135612e9a81612c39565b91506060850135612eaa81612c39565b939692955090935050565b60008060408385031215612ec857600080fd5b8235612ed381612c39565b91506020830135612d9d81612c6b565b60008060408385031215612ef657600080fd5b8235612f0181612c39565b946020939093013593505050565b600080600060408486031215612f2457600080fd5b8335612f2f81612c39565b9250602084013567ffffffffffffffff80821115612f4c57600080fd5b818601915086601f830112612f6057600080fd5b813581811115612f6f57600080fd5b8760208260051b8501011115612f8457600080fd5b6020830194508093505050509250925092565b600060208284031215612fa957600080fd5b81516118b481612da8565b600060208284031215612fc657600080fd5b81516118b481612c39565b600060208284031215612fe357600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561302c5761302c612fea565b500190565b8381526060810161304184612d0b565b83602083015261305083612d0b565b826040830152949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60ff83168152604081016130a083612d0b565b8260208301529392505050565b6000828210156130bf576130bf612fea565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613169576131696130f3565b604052919050565b60006060828403121561318357600080fd5b6040516060810181811067ffffffffffffffff821117156131a6576131a66130f3565b60405282356131b481612c6b565b8152602083013560ff811681146131ca57600080fd5b602082015260408301356131dd81612c39565b60408201529392505050565b60ff8481168252831660208201526060810161305083612d0b565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561323c5761323c612fea565b500290565b600082613277577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b8381101561329757818101518382015260200161327f565b83811115610ba85750506000910152565b600081518084526132c081602086016020860161327c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6001600160a01b038316815260406020820152600061126160408301846132a8565b60006001600160a01b0380861683528085166020840152506060604083015261334060608301846132a8565b95945050505050565b600060ff821660ff84168060ff0382111561336657613366612fea565b019392505050565b6000602080838503121561338157600080fd5b825167ffffffffffffffff8082111561339957600080fd5b818501915085601f8301126133ad57600080fd5b8151818111156133bf576133bf6130f3565b8060051b91506133d0848301613122565b81815291830184019184810190888411156133ea57600080fd5b938501935b83851015613414578451925061340483612c39565b82825293850193908501906133ef565b98975050505050505050565b6060810161342d85612d0b565b93815260ff92909216602083015260409091015290565b6060810161345185612d0b565b938152602081019290925260409091015290565b6000825161347781846020870161327c565b9190910192915050565b6020815260006118b460208301846132a856fe6164644f7252656d6f7665417373657446726f6d5072696d6528616464726573732c626f6f6c2972656d6f7665446973747269627574696f6e436f6e66696728536368656d612c61646472657373296164644f72557064617465446973747269627574696f6e436f6e6669677328446973747269627574696f6e436f6e6669675b5d29a2646970667358221220f336b392ace6d189286ec8f9f736d886ad10ac943d130101f3b2efa5762cbadd64736f6c634300080d0033",
889
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063c7ee005e11610097578063e30c397811610071578063e30c397814610413578063f2fde38b14610424578063fa7b81a014610437578063fc31116a1461045e57600080fd5b8063c7ee005e146103d9578063c9e18c6f146103ed578063cd6dc6871461040057600080fd5b8063aea21121116100d3578063aea211211461038a578063afcff50f146103ab578063b4a0bdf3146103bf578063be26317e146103d057600080fd5b80638da5cb5b1461033f5780638dd9500214610350578063966961f01461037757600080fd5b8063715018a611610166578063814d944611610140578063814d9446146102d2578063840a05e0146102e5578063893ffe98146102f85780638d904e891461030b57600080fd5b8063715018a6146102af57806379ba5097146102b75780637b77cd6a146102bf57600080fd5b806333e1567f116101a257806333e1567f14610209578063392ee712146102485780634f429f361461026a5780635db6da121461027d57600080fd5b80630e32cb86146101c9578063163db71b146101de57806316faecec146101f6575b600080fd5b6101dc6101d7366004612c4e565b610471565b005b610131545b6040519081526020015b60405180910390f35b6101dc610204366004612c78565b610485565b6102307f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101ed565b61025b610256366004612cc3565b610834565b6040516101ed93929190612d42565b6101dc610278366004612d6f565b610871565b6101e361028b366004612c78565b61012f60209081526000938452604080852082529284528284209052825290205481565b6101dc610bae565b6101dc610bc2565b6101dc6102cd366004612c4e565b610c52565b6101dc6102e0366004612db6565b610d10565b6101dc6102f3366004612de4565b610e00565b6101e3610306366004612e59565b61114a565b61032f610319366004612c4e565b6101326020526000908152604090205460ff1681565b60405190151581526020016101ed565b6033546001600160a01b0316610230565b6102307f000000000000000000000000000000000000000000000000000000000000000081565b6101e3610385366004612eb5565b611269565b6101e3610398366004612c4e565b6101306020526000908152604090205481565b61012e54610230906001600160a01b031681565b6097546001600160a01b0316610230565b6101e360fb5481565b61012d54610230906001600160a01b031681565b6101dc6103fb366004612c4e565b61135b565b6101dc61040e366004612ee3565b611419565b6065546001600160a01b0316610230565b6101dc610432366004612c4e565b6115a4565b6102307f000000000000000000000000000000000000000000000000000000000000000081565b6101dc61046c366004612f0f565b61162d565b61047961168b565b610482816116e5565b50565b61048d6117db565b826001600160a01b0316627e3dd26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ee9190612f97565b610524576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216610564576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415801561063d575061012e546040517f266e0a7f0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528481166024830152600092169063266e0a7f90604401602060405180830381865afa15801561060e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106329190612fb4565b6001600160a01b0316145b15610674576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610681848484611834565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038516906370a0823190602401602060405180830381865afa1580156106e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107089190612fd1565b6001600160a01b0385166000908152610130602052604090205490915080821115610822576001600160a01b03808716600090815261012f6020908152604080832093891683529290529081208284039182919086600181111561076e5761076e612cdc565b600181111561077f5761077f612cdc565b8152602001908152602001600020600082825461079c9190613019565b90915550506001600160a01b03861660009081526101306020526040812080548392906107ca908490613019565b92505081905550856001600160a01b0316876001600160a01b03167fa46b2431e663cf7b50c9d5129aff85d2394ecfd447b7ccba83986510a9d945ea83888860405161081893929190613031565b60405180910390a3505b50505061082f600160c955565b505050565b610131818154811061084557600080fd5b60009182526020909120015460ff8082169250610100820416906201000090046001600160a01b031683565b6108926040518060600160405280602881526020016134bc602891396118c2565b600080805b6101315481101561093b57600061013182815481106108b8576108b861305e565b6000918252602090912001805490915060ff1660018111156108dc576108dc612cdc565b8660018111156108ee576108ee612cdc565b14801561090d575080546001600160a01b038681166201000090920416145b801561092057508054610100900460ff16155b1561093257600192508193505061093b565b50600101610897565b508015610ba05761013182815481106109565761095661305e565b9060005260206000200160000160029054906101000a90046001600160a01b03166001600160a01b03167f1ac2d5fa1b44dc6086053de4a872e5bcdf9a98e5069a325572aef982a1b743bb61013184815481106109b5576109b561305e565b9060005260206000200160000160019054906101000a900460ff1661013185815481106109e4576109e461305e565b600091825260209091200154604051610a01929160ff169061308d565b60405180910390a26101318054610a1a906001906130ad565b81548110610a2a57610a2a61305e565b906000526020600020016101318381548110610a4857610a4861305e565b60009182526020909120825491018054909160ff169082907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660018381811115610a9557610a95612cdc565b02179055508154815460ff61010092839004169091027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82168117835592546001600160a01b03620100009182900416027fffffffffffffffffffff0000000000000000000000000000000000000000ffff9093167fffffffffffffffffffff000000000000000000000000000000000000000000ff90911617919091179055610131805480610b4757610b476130c4565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffff000000000000000000000000000000000000000000001690550190555b610ba861198e565b50505050565b610bb661168b565b610bc06000611b5f565b565b60655433906001600160a01b03168114610c495760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b61048281611b5f565b610c5a61168b565b6001600160a01b038116610c9a576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61012e546040516001600160a01b038084169216907fa87b964d321035d2165e484ff4b722dd6eae30606c0b98887d2ed1a34e594bfe90600090a361012e80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b610d31604051806060016040528060278152602001613495602791396118c2565b6001600160a01b038216610d71576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816001600160a01b03167fd3bc3456781fe4eb5565e91d1e1898b62fc4404636e2deb9e9d76f5a956ff3ac82604051610dae911515815260200190565b60405180910390a26001600160a01b039190911660009081526101326020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b610e086117db565b610e296040518060600160405280603481526020016134e4603491396118c2565b610e31611b90565b60005b81811015611126576000838383818110610e5057610e5061305e565b905060600201803603810190610e669190613171565b60408101519091506001600160a01b0316610ead576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61013154600090815b81811015610fd85760006101318281548110610ed457610ed461305e565b6000918252602090912001805490915060ff166001811115610ef857610ef8612cdc565b85516001811115610f0b57610f0b612cdc565b148015610f2f5750604085015181546201000090046001600160a01b039081169116145b15610fcf5760408581015182546020880151885193516001600160a01b03909316937f7b9512a7d53862cbbb1d78873d1809728aa9241f63fdf818e3525869ab0d03ce93610f8793610100900460ff169291906131e9565b60405180910390a26020850151815460ff909116610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff90911617905560019250610fd8565b50600101610eb6565b50816111185761013180546001818101835560009290925284517fbd987ad6ccdb7c7567f7335ea839f95dc944431abcf935b6924f70215963db739091018054869391929183917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690838181111561105357611053612cdc565b021790555060208281015182546040948501517fffffffffffffffffffff000000000000000000000000000000000000000000ff90911661010060ff909316929092027fffffffffffffffffffff0000000000000000000000000000000000000000ffff1691909117620100006001600160a01b03928316021790925585830151908601518651935191909216927fc4584834cab3196e27e1b931e874fecbfada0785b639b02ed649d08c8e3ca8579261110f9290919061308d565b60405180910390a25b836001019350505050610e34565b5061112f61198e565b6101315461113c90611d2a565b611146600160c955565b5050565b61013154600090815b8181101561125e57600061013182815481106111715761117161305e565b90600052602060002001905086600181111561118f5761118f612cdc565b815460ff1660018111156111a5576111a5612cdc565b1480156111c4575080546001600160a01b038781166201000090920416145b15611255576001600160a01b03808916600090815261012f6020908152604080832093891683529290529081208189600181111561120457611204612cdc565b600181111561121557611215612cdc565b8152602081019190915260400160002054825490915060649061124090610100900460ff1683613204565b61124a9190613241565b945050505050611261565b50600101611153565b50505b949350505050565b61013154600090815b8181101561135257600061013182815481106112905761129061305e565b60009182526020909120604080516060810190915291018054829060ff1660018111156112bf576112bf612cdc565b60018111156112d0576112d0612cdc565b81529054610100810460ff1660208301526201000090046001600160a01b03908116604092830152908201519192508781169116148015611333575084600181111561131e5761131e612cdc565b8151600181111561133157611331612cdc565b145b15611349576020015160ff169250611355915050565b50600101611272565b50505b92915050565b61136361168b565b6001600160a01b0381166113a3576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61012d546040516001600160a01b038084169216907f229f487e93a5313f6898190adf00c62e8b5d4c9c46249d31a9cd8a8024007bce90600090a361012d80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600054610100900460ff16158080156114395750600054600160ff909116105b806114535750303b158015611453575060005460ff166001145b6114c55760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610c40565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055801561152357600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b61152c83611d74565b611534611e02565b61153d82611e87565b801561082f57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b6115ac61168b565b606580546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556115f56033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6116356117db565b61163d611f3c565b60005b81811015611680576116788484848481811061165e5761165e61305e565b90506020020160208101906116739190612c4e565b6120ac565b600101611640565b5061082f600160c955565b6033546001600160a01b03163314610bc05760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c40565b6001600160a01b0381166117615760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610c40565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa091015b60405180910390a15050565b600260c9540361182d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c40565b600260c955565b6001600160a01b0382166000908152610132602052604081205460ff16801561188e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b0316145b80156118ab575060008260018111156118a9576118a9612cdc565b145b156118b4575060015b9392505050565b600160c955565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab9061190e90339086906004016132f2565b602060405180830381865afa15801561192b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194f9190612f97565b905080611146573330836040517f4a3fa293000000000000000000000000000000000000000000000000000000008152600401610c4093929190613314565b600061199b600180613019565b905060008167ffffffffffffffff8111156119b8576119b86130f3565b6040519080825280602002602001820160405280156119e1578160200160208202803683370190505b506101315490915060005b81811015611ac75760006101318281548110611a0a57611a0a61305e565b60009182526020909120604080516060810190915291018054829060ff166001811115611a3957611a39612cdc565b6001811115611a4a57611a4a612cdc565b81529054610100810460ff16602080840191909152620100009091046001600160a01b031660409092019190915281015181519192509085906001811115611a9457611a94612cdc565b81518110611aa457611aa461305e565b60200260200101818151611ab89190613349565b60ff16905250506001016119ec565b5060005b83811015610ba857606460ff16838281518110611aea57611aea61305e565b602002602001015160ff1614158015611b205750828181518110611b1057611b1061305e565b602002602001015160ff16600014155b15611b57576040517f0b8ad7f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600101611acb565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556104828161267b565b61012d546001600160a01b0316611ba357565b61012d54604080517fb0772d0b00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163b0772d0b91600480830192869291908290030181865afa158015611c06573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611c4c919081019061336e565b905060005b8151811015611146576000828281518110611c6e57611c6e61305e565b602090810291909101015161012d546040517f9198e5150000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152929350911690639198e51590602401600060405180830381600087803b158015611cdc57600080fd5b505af1158015611cf0573d6000803e3d6000fd5b50505050611d217f0000000000000000000000000000000000000000000000000000000000000000611673836126e5565b50600101611c51565b60fb548111156104825760fb546040517ff257f636000000000000000000000000000000000000000000000000000000008152600481019190915260248101829052604401610c40565b600054610100900460ff16611df15760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b611df96127a9565b6104828161282e565b600054610100900460ff16611e7f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b610bc06128ab565b60fb548111611efe5760405162461bcd60e51b815260206004820152602260248201527f436f6d7074726f6c6c65723a20496e76616c6964206d61784c6f6f70734c696d60448201527f69740000000000000000000000000000000000000000000000000000000000006064820152608401610c40565b60fb80549082905560408051828152602081018490527fc2d09fef144f7c8a86f71ea459f8fc17f675768eb1ae369cbd77fb31d467aafa91016117cf565b61012d546001600160a01b0316611f4f57565b61012d54604080517fb0772d0b00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163b0772d0b91600480830192869291908290030181865afa158015611fb2573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052611ff8919081019061336e565b905060005b815181101561114657600082828151811061201a5761201a61305e565b602090810291909101015161012d546040517f9198e5150000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152929350911690639198e51590602401600060405180830381600087803b15801561208857600080fd5b505af115801561209c573d6000803e3d6000fd5b5050505081600101915050611ffd565b60006120b9600180613019565b905060008167ffffffffffffffff8111156120d6576120d66130f3565b6040519080825280602002602001820160405280156120ff578160200160208202803683370190505b5090506000805b838110156121c7576001600160a01b03808716600090815261012f6020908152604080832093891683529290529081209082600181111561214957612149612cdc565b600181111561215a5761215a612cdc565b600181111561216b5761216b612cdc565b81526020019081526020016000205483828151811061218c5761218c61305e565b6020026020010181815250508281815181106121aa576121aa61305e565b6020026020010151826121bd9190613019565b9150600101612106565b50806000036121d7575050505050565b60008367ffffffffffffffff8111156121f2576121f26130f3565b60405190808252806020026020018201604052801561221b578160200160208202803683370190505b50905060005b6101315481101561244657600061013182815481106122425761224261305e565b60009182526020909120604080516060810190915291018054829060ff16600181111561227157612271612cdc565b600181111561228257612282612cdc565b81529054610100810460ff908116602080850191909152620100009092046001600160a01b031660409093019290925282015182519293506000926064929190911690889060018111156122d8576122d8612cdc565b815181106122e8576122e861305e565b60200260200101516122fa9190613204565b6123049190613241565b905080848360000151600181111561231e5761231e612cdc565b8151811061232e5761232e61305e565b602002602001018181516123429190613019565b905250604082015161235f906001600160a01b038a169083612928565b60408083015190517faac59a750000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301528a811660248301529091169063aac59a7590604401600060405180830381600087803b1580156123c957600080fd5b505af11580156123dd573d6000803e3d6000fd5b50505050876001600160a01b031682604001516001600160a01b03167f09f71e7b22d78540ee9a42f09917a9d62f46735cb0dfa70d6bab27866d9cb500846000015185602001518560405161243493929190613420565b60405180910390a35050600101612221565b5060008467ffffffffffffffff811115612462576124626130f3565b60405190808252806020026020018201604052801561248b578160200160208202803683370190505b50905060005b85811015612671578281815181106124ab576124ab61305e565b60200260200101518582815181106124c5576124c561305e565b60200260200101516124d791906130ad565b8282815181106124e9576124e961305e565b6020026020010181815250508181815181106125075761250761305e565b6020908102919091018101516001600160a01b03808b16600090815261012f84526040808220928c168252919093528220909183600181111561254c5761254c612cdc565b600181111561255d5761255d612cdc565b600181111561256e5761256e612cdc565b8152602001908152602001600020819055508281815181106125925761259261305e565b60200260200101516101306000896001600160a01b03166001600160a01b03168152602001908152602001600020546125cb91906130ad565b6001600160a01b038089166000818152610130602052604090209290925589167f7d881f3d6246a6a2b97b121b8ba093c17497912c68e8b2bca6108528e91df3ca83600181111561261e5761261e612cdc565b8885815181106126305761263061305e565b602002602001015186868151811061264a5761264a61305e565b602002602001015160405161266193929190613444565b60405180910390a3600101612491565b5050505050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361274757507f0000000000000000000000000000000000000000000000000000000000000000919050565b816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113559190612fb4565b600054610100900460ff166128265760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b610bc06129a8565b600054610100900460ff166104795760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b600054610100900460ff166118bb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905261082f908490612a2e565b600054610100900460ff16612a255760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610c40565b610bc033611b5f565b6000612a83826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612b169092919063ffffffff16565b9050805160001480612aa4575080806020019051810190612aa49190612f97565b61082f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610c40565b6060611261848460008585600080866001600160a01b03168587604051612b3d9190613465565b60006040518083038185875af1925050503d8060008114612b7a576040519150601f19603f3d011682016040523d82523d6000602084013e612b7f565b606091505b5091509150612b9087838387612b9b565b979650505050505050565b60608315612c0a578251600003612c03576001600160a01b0385163b612c035760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c40565b5081611261565b6112618383815115612c1f5781518083602001fd5b8060405162461bcd60e51b8152600401610c409190613481565b6001600160a01b038116811461048257600080fd5b600060208284031215612c6057600080fd5b81356118b481612c39565b6002811061048257600080fd5b600080600060608486031215612c8d57600080fd5b8335612c9881612c39565b92506020840135612ca881612c39565b91506040840135612cb881612c6b565b809150509250925092565b600060208284031215612cd557600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60028110610482577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60608101612d4f85612d0b565b93815260ff9290921660208301526001600160a01b031660409091015290565b60008060408385031215612d8257600080fd5b8235612d8d81612c6b565b91506020830135612d9d81612c39565b809150509250929050565b801515811461048257600080fd5b60008060408385031215612dc957600080fd5b8235612dd481612c39565b91506020830135612d9d81612da8565b60008060208385031215612df757600080fd5b823567ffffffffffffffff80821115612e0f57600080fd5b818501915085601f830112612e2357600080fd5b813581811115612e3257600080fd5b866020606083028501011115612e4757600080fd5b60209290920196919550909350505050565b60008060008060808587031215612e6f57600080fd5b8435612e7a81612c39565b93506020850135612e8a81612c6b565b92506040850135612e9a81612c39565b91506060850135612eaa81612c39565b939692955090935050565b60008060408385031215612ec857600080fd5b8235612ed381612c39565b91506020830135612d9d81612c6b565b60008060408385031215612ef657600080fd5b8235612f0181612c39565b946020939093013593505050565b600080600060408486031215612f2457600080fd5b8335612f2f81612c39565b9250602084013567ffffffffffffffff80821115612f4c57600080fd5b818601915086601f830112612f6057600080fd5b813581811115612f6f57600080fd5b8760208260051b8501011115612f8457600080fd5b6020830194508093505050509250925092565b600060208284031215612fa957600080fd5b81516118b481612da8565b600060208284031215612fc657600080fd5b81516118b481612c39565b600060208284031215612fe357600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000821982111561302c5761302c612fea565b500190565b8381526060810161304184612d0b565b83602083015261305083612d0b565b826040830152949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60ff83168152604081016130a083612d0b565b8260208301529392505050565b6000828210156130bf576130bf612fea565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613169576131696130f3565b604052919050565b60006060828403121561318357600080fd5b6040516060810181811067ffffffffffffffff821117156131a6576131a66130f3565b60405282356131b481612c6b565b8152602083013560ff811681146131ca57600080fd5b602082015260408301356131dd81612c39565b60408201529392505050565b60ff8481168252831660208201526060810161305083612d0b565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561323c5761323c612fea565b500290565b600082613277577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60005b8381101561329757818101518382015260200161327f565b83811115610ba85750506000910152565b600081518084526132c081602086016020860161327c565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6001600160a01b038316815260406020820152600061126160408301846132a8565b60006001600160a01b0380861683528085166020840152506060604083015261334060608301846132a8565b95945050505050565b600060ff821660ff84168060ff0382111561336657613366612fea565b019392505050565b6000602080838503121561338157600080fd5b825167ffffffffffffffff8082111561339957600080fd5b818501915085601f8301126133ad57600080fd5b8151818111156133bf576133bf6130f3565b8060051b91506133d0848301613122565b81815291830184019184810190888411156133ea57600080fd5b938501935b83851015613414578451925061340483612c39565b82825293850193908501906133ef565b98975050505050505050565b6060810161342d85612d0b565b93815260ff92909216602083015260409091015290565b6060810161345185612d0b565b938152602081019290925260409091015290565b6000825161347781846020870161327c565b9190910192915050565b6020815260006118b460208301846132a856fe6164644f7252656d6f7665417373657446726f6d5072696d6528616464726573732c626f6f6c2972656d6f7665446973747269627574696f6e436f6e66696728536368656d612c61646472657373296164644f72557064617465446973747269627574696f6e436f6e6669677328446973747269627574696f6e436f6e6669675b5d29a2646970667358221220f336b392ace6d189286ec8f9f736d886ad10ac943d130101f3b2efa5762cbadd64736f6c634300080d0033",
890
+ "linkReferences": {},
891
+ "deployedLinkReferences": {}
892
+ }