@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,649 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ResilientOracle",
4
+ "sourceName": "@venusprotocol/oracle/contracts/ResilientOracle.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "vBnbAddress",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "vaiAddress",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "contract BoundValidatorInterface",
20
+ "name": "_boundValidator",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "address",
31
+ "name": "sender",
32
+ "type": "address"
33
+ },
34
+ {
35
+ "internalType": "address",
36
+ "name": "calledContract",
37
+ "type": "address"
38
+ },
39
+ {
40
+ "internalType": "string",
41
+ "name": "methodSignature",
42
+ "type": "string"
43
+ }
44
+ ],
45
+ "name": "Unauthorized",
46
+ "type": "error"
47
+ },
48
+ {
49
+ "anonymous": false,
50
+ "inputs": [
51
+ {
52
+ "indexed": false,
53
+ "internalType": "uint8",
54
+ "name": "version",
55
+ "type": "uint8"
56
+ }
57
+ ],
58
+ "name": "Initialized",
59
+ "type": "event"
60
+ },
61
+ {
62
+ "anonymous": false,
63
+ "inputs": [
64
+ {
65
+ "indexed": false,
66
+ "internalType": "address",
67
+ "name": "oldAccessControlManager",
68
+ "type": "address"
69
+ },
70
+ {
71
+ "indexed": false,
72
+ "internalType": "address",
73
+ "name": "newAccessControlManager",
74
+ "type": "address"
75
+ }
76
+ ],
77
+ "name": "NewAccessControlManager",
78
+ "type": "event"
79
+ },
80
+ {
81
+ "anonymous": false,
82
+ "inputs": [
83
+ {
84
+ "indexed": true,
85
+ "internalType": "address",
86
+ "name": "asset",
87
+ "type": "address"
88
+ },
89
+ {
90
+ "indexed": true,
91
+ "internalType": "uint256",
92
+ "name": "role",
93
+ "type": "uint256"
94
+ },
95
+ {
96
+ "indexed": true,
97
+ "internalType": "bool",
98
+ "name": "enable",
99
+ "type": "bool"
100
+ }
101
+ ],
102
+ "name": "OracleEnabled",
103
+ "type": "event"
104
+ },
105
+ {
106
+ "anonymous": false,
107
+ "inputs": [
108
+ {
109
+ "indexed": true,
110
+ "internalType": "address",
111
+ "name": "asset",
112
+ "type": "address"
113
+ },
114
+ {
115
+ "indexed": true,
116
+ "internalType": "address",
117
+ "name": "oracle",
118
+ "type": "address"
119
+ },
120
+ {
121
+ "indexed": true,
122
+ "internalType": "uint256",
123
+ "name": "role",
124
+ "type": "uint256"
125
+ }
126
+ ],
127
+ "name": "OracleSet",
128
+ "type": "event"
129
+ },
130
+ {
131
+ "anonymous": false,
132
+ "inputs": [
133
+ {
134
+ "indexed": true,
135
+ "internalType": "address",
136
+ "name": "previousOwner",
137
+ "type": "address"
138
+ },
139
+ {
140
+ "indexed": true,
141
+ "internalType": "address",
142
+ "name": "newOwner",
143
+ "type": "address"
144
+ }
145
+ ],
146
+ "name": "OwnershipTransferStarted",
147
+ "type": "event"
148
+ },
149
+ {
150
+ "anonymous": false,
151
+ "inputs": [
152
+ {
153
+ "indexed": true,
154
+ "internalType": "address",
155
+ "name": "previousOwner",
156
+ "type": "address"
157
+ },
158
+ {
159
+ "indexed": true,
160
+ "internalType": "address",
161
+ "name": "newOwner",
162
+ "type": "address"
163
+ }
164
+ ],
165
+ "name": "OwnershipTransferred",
166
+ "type": "event"
167
+ },
168
+ {
169
+ "anonymous": false,
170
+ "inputs": [
171
+ {
172
+ "indexed": false,
173
+ "internalType": "address",
174
+ "name": "account",
175
+ "type": "address"
176
+ }
177
+ ],
178
+ "name": "Paused",
179
+ "type": "event"
180
+ },
181
+ {
182
+ "anonymous": false,
183
+ "inputs": [
184
+ {
185
+ "indexed": true,
186
+ "internalType": "address",
187
+ "name": "asset",
188
+ "type": "address"
189
+ },
190
+ {
191
+ "indexed": true,
192
+ "internalType": "address",
193
+ "name": "mainOracle",
194
+ "type": "address"
195
+ },
196
+ {
197
+ "indexed": true,
198
+ "internalType": "address",
199
+ "name": "pivotOracle",
200
+ "type": "address"
201
+ },
202
+ {
203
+ "indexed": false,
204
+ "internalType": "address",
205
+ "name": "fallbackOracle",
206
+ "type": "address"
207
+ }
208
+ ],
209
+ "name": "TokenConfigAdded",
210
+ "type": "event"
211
+ },
212
+ {
213
+ "anonymous": false,
214
+ "inputs": [
215
+ {
216
+ "indexed": false,
217
+ "internalType": "address",
218
+ "name": "account",
219
+ "type": "address"
220
+ }
221
+ ],
222
+ "name": "Unpaused",
223
+ "type": "event"
224
+ },
225
+ {
226
+ "inputs": [],
227
+ "name": "BNB_ADDR",
228
+ "outputs": [
229
+ {
230
+ "internalType": "address",
231
+ "name": "",
232
+ "type": "address"
233
+ }
234
+ ],
235
+ "stateMutability": "view",
236
+ "type": "function"
237
+ },
238
+ {
239
+ "inputs": [],
240
+ "name": "INVALID_PRICE",
241
+ "outputs": [
242
+ {
243
+ "internalType": "uint256",
244
+ "name": "",
245
+ "type": "uint256"
246
+ }
247
+ ],
248
+ "stateMutability": "view",
249
+ "type": "function"
250
+ },
251
+ {
252
+ "inputs": [],
253
+ "name": "acceptOwnership",
254
+ "outputs": [],
255
+ "stateMutability": "nonpayable",
256
+ "type": "function"
257
+ },
258
+ {
259
+ "inputs": [],
260
+ "name": "accessControlManager",
261
+ "outputs": [
262
+ {
263
+ "internalType": "contract IAccessControlManagerV8",
264
+ "name": "",
265
+ "type": "address"
266
+ }
267
+ ],
268
+ "stateMutability": "view",
269
+ "type": "function"
270
+ },
271
+ {
272
+ "inputs": [],
273
+ "name": "boundValidator",
274
+ "outputs": [
275
+ {
276
+ "internalType": "contract BoundValidatorInterface",
277
+ "name": "",
278
+ "type": "address"
279
+ }
280
+ ],
281
+ "stateMutability": "view",
282
+ "type": "function"
283
+ },
284
+ {
285
+ "inputs": [
286
+ {
287
+ "internalType": "address",
288
+ "name": "asset",
289
+ "type": "address"
290
+ },
291
+ {
292
+ "internalType": "enum ResilientOracle.OracleRole",
293
+ "name": "role",
294
+ "type": "uint8"
295
+ },
296
+ {
297
+ "internalType": "bool",
298
+ "name": "enable",
299
+ "type": "bool"
300
+ }
301
+ ],
302
+ "name": "enableOracle",
303
+ "outputs": [],
304
+ "stateMutability": "nonpayable",
305
+ "type": "function"
306
+ },
307
+ {
308
+ "inputs": [
309
+ {
310
+ "internalType": "address",
311
+ "name": "asset",
312
+ "type": "address"
313
+ },
314
+ {
315
+ "internalType": "enum ResilientOracle.OracleRole",
316
+ "name": "role",
317
+ "type": "uint8"
318
+ }
319
+ ],
320
+ "name": "getOracle",
321
+ "outputs": [
322
+ {
323
+ "internalType": "address",
324
+ "name": "oracle",
325
+ "type": "address"
326
+ },
327
+ {
328
+ "internalType": "bool",
329
+ "name": "enabled",
330
+ "type": "bool"
331
+ }
332
+ ],
333
+ "stateMutability": "view",
334
+ "type": "function"
335
+ },
336
+ {
337
+ "inputs": [
338
+ {
339
+ "internalType": "address",
340
+ "name": "asset",
341
+ "type": "address"
342
+ }
343
+ ],
344
+ "name": "getPrice",
345
+ "outputs": [
346
+ {
347
+ "internalType": "uint256",
348
+ "name": "",
349
+ "type": "uint256"
350
+ }
351
+ ],
352
+ "stateMutability": "view",
353
+ "type": "function"
354
+ },
355
+ {
356
+ "inputs": [
357
+ {
358
+ "internalType": "address",
359
+ "name": "asset",
360
+ "type": "address"
361
+ }
362
+ ],
363
+ "name": "getTokenConfig",
364
+ "outputs": [
365
+ {
366
+ "components": [
367
+ {
368
+ "internalType": "address",
369
+ "name": "asset",
370
+ "type": "address"
371
+ },
372
+ {
373
+ "internalType": "address[3]",
374
+ "name": "oracles",
375
+ "type": "address[3]"
376
+ },
377
+ {
378
+ "internalType": "bool[3]",
379
+ "name": "enableFlagsForOracles",
380
+ "type": "bool[3]"
381
+ }
382
+ ],
383
+ "internalType": "struct ResilientOracle.TokenConfig",
384
+ "name": "",
385
+ "type": "tuple"
386
+ }
387
+ ],
388
+ "stateMutability": "view",
389
+ "type": "function"
390
+ },
391
+ {
392
+ "inputs": [
393
+ {
394
+ "internalType": "address",
395
+ "name": "vToken",
396
+ "type": "address"
397
+ }
398
+ ],
399
+ "name": "getUnderlyingPrice",
400
+ "outputs": [
401
+ {
402
+ "internalType": "uint256",
403
+ "name": "",
404
+ "type": "uint256"
405
+ }
406
+ ],
407
+ "stateMutability": "view",
408
+ "type": "function"
409
+ },
410
+ {
411
+ "inputs": [
412
+ {
413
+ "internalType": "address",
414
+ "name": "accessControlManager_",
415
+ "type": "address"
416
+ }
417
+ ],
418
+ "name": "initialize",
419
+ "outputs": [],
420
+ "stateMutability": "nonpayable",
421
+ "type": "function"
422
+ },
423
+ {
424
+ "inputs": [],
425
+ "name": "owner",
426
+ "outputs": [
427
+ {
428
+ "internalType": "address",
429
+ "name": "",
430
+ "type": "address"
431
+ }
432
+ ],
433
+ "stateMutability": "view",
434
+ "type": "function"
435
+ },
436
+ {
437
+ "inputs": [],
438
+ "name": "pause",
439
+ "outputs": [],
440
+ "stateMutability": "nonpayable",
441
+ "type": "function"
442
+ },
443
+ {
444
+ "inputs": [],
445
+ "name": "paused",
446
+ "outputs": [
447
+ {
448
+ "internalType": "bool",
449
+ "name": "",
450
+ "type": "bool"
451
+ }
452
+ ],
453
+ "stateMutability": "view",
454
+ "type": "function"
455
+ },
456
+ {
457
+ "inputs": [],
458
+ "name": "pendingOwner",
459
+ "outputs": [
460
+ {
461
+ "internalType": "address",
462
+ "name": "",
463
+ "type": "address"
464
+ }
465
+ ],
466
+ "stateMutability": "view",
467
+ "type": "function"
468
+ },
469
+ {
470
+ "inputs": [],
471
+ "name": "renounceOwnership",
472
+ "outputs": [],
473
+ "stateMutability": "nonpayable",
474
+ "type": "function"
475
+ },
476
+ {
477
+ "inputs": [
478
+ {
479
+ "internalType": "address",
480
+ "name": "accessControlManager_",
481
+ "type": "address"
482
+ }
483
+ ],
484
+ "name": "setAccessControlManager",
485
+ "outputs": [],
486
+ "stateMutability": "nonpayable",
487
+ "type": "function"
488
+ },
489
+ {
490
+ "inputs": [
491
+ {
492
+ "internalType": "address",
493
+ "name": "asset",
494
+ "type": "address"
495
+ },
496
+ {
497
+ "internalType": "address",
498
+ "name": "oracle",
499
+ "type": "address"
500
+ },
501
+ {
502
+ "internalType": "enum ResilientOracle.OracleRole",
503
+ "name": "role",
504
+ "type": "uint8"
505
+ }
506
+ ],
507
+ "name": "setOracle",
508
+ "outputs": [],
509
+ "stateMutability": "nonpayable",
510
+ "type": "function"
511
+ },
512
+ {
513
+ "inputs": [
514
+ {
515
+ "components": [
516
+ {
517
+ "internalType": "address",
518
+ "name": "asset",
519
+ "type": "address"
520
+ },
521
+ {
522
+ "internalType": "address[3]",
523
+ "name": "oracles",
524
+ "type": "address[3]"
525
+ },
526
+ {
527
+ "internalType": "bool[3]",
528
+ "name": "enableFlagsForOracles",
529
+ "type": "bool[3]"
530
+ }
531
+ ],
532
+ "internalType": "struct ResilientOracle.TokenConfig",
533
+ "name": "tokenConfig",
534
+ "type": "tuple"
535
+ }
536
+ ],
537
+ "name": "setTokenConfig",
538
+ "outputs": [],
539
+ "stateMutability": "nonpayable",
540
+ "type": "function"
541
+ },
542
+ {
543
+ "inputs": [
544
+ {
545
+ "components": [
546
+ {
547
+ "internalType": "address",
548
+ "name": "asset",
549
+ "type": "address"
550
+ },
551
+ {
552
+ "internalType": "address[3]",
553
+ "name": "oracles",
554
+ "type": "address[3]"
555
+ },
556
+ {
557
+ "internalType": "bool[3]",
558
+ "name": "enableFlagsForOracles",
559
+ "type": "bool[3]"
560
+ }
561
+ ],
562
+ "internalType": "struct ResilientOracle.TokenConfig[]",
563
+ "name": "tokenConfigs_",
564
+ "type": "tuple[]"
565
+ }
566
+ ],
567
+ "name": "setTokenConfigs",
568
+ "outputs": [],
569
+ "stateMutability": "nonpayable",
570
+ "type": "function"
571
+ },
572
+ {
573
+ "inputs": [
574
+ {
575
+ "internalType": "address",
576
+ "name": "newOwner",
577
+ "type": "address"
578
+ }
579
+ ],
580
+ "name": "transferOwnership",
581
+ "outputs": [],
582
+ "stateMutability": "nonpayable",
583
+ "type": "function"
584
+ },
585
+ {
586
+ "inputs": [],
587
+ "name": "unpause",
588
+ "outputs": [],
589
+ "stateMutability": "nonpayable",
590
+ "type": "function"
591
+ },
592
+ {
593
+ "inputs": [
594
+ {
595
+ "internalType": "address",
596
+ "name": "asset",
597
+ "type": "address"
598
+ }
599
+ ],
600
+ "name": "updateAssetPrice",
601
+ "outputs": [],
602
+ "stateMutability": "nonpayable",
603
+ "type": "function"
604
+ },
605
+ {
606
+ "inputs": [
607
+ {
608
+ "internalType": "address",
609
+ "name": "vToken",
610
+ "type": "address"
611
+ }
612
+ ],
613
+ "name": "updatePrice",
614
+ "outputs": [],
615
+ "stateMutability": "nonpayable",
616
+ "type": "function"
617
+ },
618
+ {
619
+ "inputs": [],
620
+ "name": "vBnb",
621
+ "outputs": [
622
+ {
623
+ "internalType": "address",
624
+ "name": "",
625
+ "type": "address"
626
+ }
627
+ ],
628
+ "stateMutability": "view",
629
+ "type": "function"
630
+ },
631
+ {
632
+ "inputs": [],
633
+ "name": "vai",
634
+ "outputs": [
635
+ {
636
+ "internalType": "address",
637
+ "name": "",
638
+ "type": "address"
639
+ }
640
+ ],
641
+ "stateMutability": "view",
642
+ "type": "function"
643
+ }
644
+ ],
645
+ "bytecode": "0x60e06040523480156200001157600080fd5b506040516200295938038062002959833981016040819052620000349162000216565b826001600160a01b038116620000805760405162461bcd60e51b815260206004820152601560248201526000805160206200293983398151915260448201526064015b60405180910390fd5b826001600160a01b038116620000c85760405162461bcd60e51b8152602060048201526015602482015260008051602062002939833981519152604482015260640162000077565b826001600160a01b038116620001105760405162461bcd60e51b8152602060048201526015602482015260008051602062002939833981519152604482015260640162000077565b6001600160a01b0380871660805285811660a052841660c052620001336200013f565b5050505050506200026a565b600054610100900460ff1615620001a95760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840162000077565b60005460ff90811614620001fb576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200021357600080fd5b50565b6000806000606084860312156200022c57600080fd5b83516200023981620001fd565b60208501519093506200024c81620001fd565b60408501519092506200025f81620001fd565b809150509250925092565b60805160a05160c051612675620002c4600039600081816101f30152818161159401528181611a910152611c330152600081816103780152818161173d015261177701526000818161029601526116e901526126756000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80638456cb59116100ee578063b62cad6911610097578063cb67e3b111610071578063cb67e3b1146103ad578063e30c3978146103cd578063f2fde38b146103de578063fc57d4df146103f157600080fd5b8063b62cad6914610360578063b62e4c9214610373578063c4d66de81461039a57600080fd5b806396e85ced116100c857806396e85ced14610329578063a6b1344a1461033c578063b4a0bdf31461034f57600080fd5b80638456cb59146102de5780638b855da4146102e65780638da5cb5b1461031857600080fd5b806341976e091161015b5780635ba3792d116101355780635ba3792d146102915780635c975abb146102b8578063715018a6146102ce57806379ba5097146102d657600080fd5b806341976e09146102555780634b932b8f146102765780634bf39cba1461028957600080fd5b806333d334941161018c57806333d33494146101ee5780633e83b6b8146102325780633f4ba83a1461024d57600080fd5b80630e32cb86146101b35780632cfa3871146101c8578063333a21b0146101db575b600080fd5b6101c66101c1366004612123565b610404565b005b6101c66101d63660046122c7565b610418565b6101c66101e9366004612377565b6104aa565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61021573bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6101c6610674565b610268610263366004612123565b6106bc565b604051908152602001610229565b6101c66102843660046123a2565b610726565b610268600081565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b60335460ff166040519015158152602001610229565b6101c66108d2565b6101c66108e4565b6101c661096f565b6102f96102f43660046123eb565b6109b5565b604080516001600160a01b039093168352901515602083015201610229565b6065546001600160a01b0316610215565b6101c6610337366004612123565b610a57565b6101c661034a366004612420565b610b1b565b60c9546001600160a01b0316610215565b6101c661036e366004612123565b610d83565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6101c66103a8366004612123565b610e38565b6103c06103bb366004612123565b610fbb565b6040516102299190612467565b6097546001600160a01b0316610215565b6101c66103ec366004612123565b611090565b6102686103ff366004612123565b611119565b61040c611191565b610415816111eb565b50565b805160000361046e5760405162461bcd60e51b815260206004820152601160248201527f6c656e6774682063616e2774206265203000000000000000000000000000000060448201526064015b60405180910390fd5b805160005b818110156104a55761049d838281518110610490576104906124e2565b60200260200101516104aa565b600101610473565b505050565b80516001600160a01b0381166105025760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6020820151516001600160a01b03811661055e5760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b61059c6040518060400160405280601b81526020017f736574546f6b656e436f6e66696728546f6b656e436f6e6669672900000000008152506112d9565b82516001600160a01b03908116600090815260fb60209081526040909120855181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558401518491906105fe9060018301906003611fa9565b5060408201516106149060048301906003612019565b505050602083810151808201518151865160409384015193516001600160a01b039485168152928416949184169316917fa51ad01e2270c314a7b78f0c60fe66c723f2d06c121d63fcdce776e654878fc1910160405180910390a4505050565b6106b26040518060400160405280600981526020017f756e7061757365282900000000000000000000000000000000000000000000008152506112d9565b6106ba6113a5565b565b60006106ca60335460ff1690565b156107175760405162461bcd60e51b815260206004820152601a60248201527f726573696c69656e74206f7261636c65206973207061757365640000000000006044820152606401610465565b61072082611415565b92915050565b826001600160a01b03811661077d5760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6001600160a01b03808516600090815260fb60205260409020548591166107e65760405162461bcd60e51b815260206004820152601760248201527f746f6b656e20636f6e666967206d7573742065786973740000000000000000006044820152606401610465565b6108246040518060400160405280602081526020017f656e61626c654f7261636c6528616464726573732c75696e74382c626f6f6c298152506112d9565b6001600160a01b038516600090815260fb60205260409020839060040185600281111561085357610853612511565b60038110610863576108636124e2565b602091828204019190066101000a81548160ff02191690831515021790555082151584600281111561089757610897612511565b6040516001600160a01b038816907fcf3cad1ec87208efbde5d82a0557484a78d4182c3ad16926a5463bc1f7234b3d90600090a45050505050565b6108da611191565b6106ba6000611659565b60975433906001600160a01b031681146109665760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610465565b61041581611659565b6109ad6040518060400160405280600781526020017f70617573652829000000000000000000000000000000000000000000000000008152506112d9565b6106ba61168a565b6001600160a01b038216600090815260fb6020526040812081906001018360028111156109e4576109e4612511565b600381106109f4576109f46124e2565b01546001600160a01b03858116600090815260fb6020526040902091169250600401836002811115610a2857610a28612511565b60038110610a3857610a386124e2565b602091828204019190069054906101000a900460ff1690509250929050565b6000610a62826116e5565b9050600080610a728360016109b5565b90925090506001600160a01b03821615801590610a8c5750805b15610b15576040517f725068a50000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015283169063725068a5906024016020604051808303816000875af1925050508015610b0e575060408051601f3d908101601f19168201909252610b0b91810190612540565b60015b15610b1557505b50505050565b826001600160a01b038116610b725760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6001600160a01b03808516600090815260fb6020526040902054859116610bdb5760405162461bcd60e51b815260206004820152601760248201527f746f6b656e20636f6e666967206d7573742065786973740000000000000000006044820152606401610465565b610c196040518060400160405280602081526020017f7365744f7261636c6528616464726573732c616464726573732c75696e7438298152506112d9565b6001600160a01b038416158015610c4157506000836002811115610c3f57610c3f612511565b145b15610cb45760405162461bcd60e51b815260206004820152602560248201527f63616e277420736574207a65726f206164647265737320746f206d61696e206f60448201527f7261636c650000000000000000000000000000000000000000000000000000006064820152608401610465565b6001600160a01b038516600090815260fb602052604090208490600101846002811115610ce357610ce3612511565b60038110610cf357610cf36124e2565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055826002811115610d3c57610d3c612511565b846001600160a01b0316866001600160a01b03167fea681d3efb830ef032a9c29a7215b5ceeeb546250d2c463dbf87817aecda1bf160405160405180910390a45050505050565b600080610d918360016109b5565b90925090506001600160a01b03821615801590610dab5750805b156104a5576040517f725068a50000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015283169063725068a5906024016020604051808303816000875af1925050508015610e2d575060408051601f3d908101601f19168201909252610e2a91810190612540565b60015b156104a55750505050565b600054610100900460ff1615808015610e585750600054600160ff909116105b80610e725750303b158015610e72575060005460ff166001145b610ee45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610465565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f4257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f4b82611802565b610f53611890565b8015610fb757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b610fc36120a6565b6001600160a01b03828116600090815260fb60209081526040918290208251606080820185528254909516815283519485019384905293909291840191600184019060039082845b81546001600160a01b0316815260019091019060200180831161100b575050509183525050604080516060810191829052602090920191906004840190600390826000855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116110505790505050505050815250509050919050565b611098611191565b609780546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556110e16065546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600061112760335460ff1690565b156111745760405162461bcd60e51b815260206004820152601a60248201527f726573696c69656e74206f7261636c65206973207061757365640000000000006044820152606401610465565b600061117f836116e5565b905061118a81611415565b9392505050565b6065546001600160a01b031633146106ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610465565b6001600160a01b0381166112675760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610465565b60c980546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610fae565b60c9546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab9061132590339086906004016125a6565b602060405180830381865afa158015611342573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136691906125d0565b905080610fb7573330836040517f4a3fa293000000000000000000000000000000000000000000000000000000008152600401610465939291906125ed565b6113ad611915565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60008080806114258560016109b5565b9150915080801561143e57506001600160a01b03821615155b156114c6576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528316906341976e0990602401602060405180830381865afa9250505080156114be575060408051601f3d908101601f191682019092526114bb91810190612540565b60015b156114c65792505b6000806114e887868580156114e357506001600160a01b03871615155b611967565b91509150600082141580156114fa5750805b15611509575095945050505050565b6000806115168988611b1c565b91509150600082141580156115285750805b156115395750979650505050505050565b831580159061154757508115155b80156115ff57506040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a8116600483015260248201869052604482018490527f000000000000000000000000000000000000000000000000000000000000000016906397c7033e90606401602060405180830381865afa1580156115db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ff91906125d0565b15611611575091979650505050505050565b60405162461bcd60e51b815260206004820152601e60248201527f696e76616c696420726573696c69656e74206f7261636c6520707269636500006044820152606401610465565b609780547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561041581611cbd565b611692611d27565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113f83390565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361173b575073bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361179b57507f0000000000000000000000000000000000000000000000000000000000000000919050565b816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107209190612622565b919050565b600054610100900460ff1661187f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b611887611d7a565b61041581611dff565b600054610100900460ff1661190d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba611e7c565b60335460ff166106ba5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610465565b6000806000806119788760006109b5565b9150915080801561199157506001600160a01b03821615155b15611b0a576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528316906341976e0990602401602060405180830381865afa925050508015611a11575060408051601f3d908101601f19168201909252611a0e91810190612540565b60015b611a2357600080935093505050611b14565b85611a3657935060019250611b14915050565b86611a4957935060009250611b14915050565b6040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152602482018390526044820189905282917f0000000000000000000000000000000000000000000000000000000000000000909116906397c7033e90606401602060405180830381865afa158015611ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afe91906125d0565b94509450505050611b14565b6000809350935050505b935093915050565b600080600080611b2d8660026109b5565b91509150808015611b4657506001600160a01b03821615155b15611cac576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301528316906341976e0990602401602060405180830381865afa925050508015611bc6575060408051601f3d908101601f19168201909252611bc391810190612540565b60015b611bd857600080935093505050611cb6565b85611beb57935060009250611cb6915050565b6040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018390526044820188905282917f0000000000000000000000000000000000000000000000000000000000000000909116906397c7033e90606401602060405180830381865afa158015611c7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca091906125d0565b94509450505050611cb6565b6000809350935050505b9250929050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60335460ff16156106ba5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610465565b600054610100900460ff16611df75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba611f23565b600054610100900460ff1661040c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b600054610100900460ff16611ef95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff16611fa05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba33611659565b8260038101928215612009579160200282015b8281111561200957825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909116178255602090920191600190910190611fbc565b506120159291506120db565b5090565b6001830191839082156120095791602002820160005b8382111561206c57835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030261202f565b80156120995782816101000a81549060ff021916905560010160208160000104928301926001030261206c565b50506120159291506120db565b604051806060016040528060006001600160a01b031681526020016120c96120f0565b81526020016120d66120f0565b905290565b5b8082111561201557600081556001016120dc565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461041557600080fd5b60006020828403121561213557600080fd5b813561118a8161210e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561219257612192612140565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156121c1576121c1612140565b604052919050565b801515811461041557600080fd5b600082601f8301126121e857600080fd5b6121f061216f565b80606084018581111561220257600080fd5b845b81811015612225578035612217816121c9565b845260209384019301612204565b509095945050505050565b600060e0828403121561224257600080fd5b61224a61216f565b905081356122578161210e565b81526020603f8301841361226a57600080fd5b61227261216f565b80608085018681111561228457600080fd5b8386015b818110156122a857803561229b8161210e565b8452928401928401612288565b5081848601526122b887826121d7565b60408601525050505092915050565b600060208083850312156122da57600080fd5b823567ffffffffffffffff808211156122f257600080fd5b818501915085601f83011261230657600080fd5b81358181111561231857612318612140565b612326848260051b01612198565b818152848101925060e091820284018501918883111561234557600080fd5b938501935b8285101561236b5761235c8986612230565b8452938401939285019261234a565b50979650505050505050565b600060e0828403121561238957600080fd5b61118a8383612230565b8035600381106117fd57600080fd5b6000806000606084860312156123b757600080fd5b83356123c28161210e565b92506123d060208501612393565b915060408401356123e0816121c9565b809150509250925092565b600080604083850312156123fe57600080fd5b82356124098161210e565b915061241760208401612393565b90509250929050565b60008060006060848603121561243557600080fd5b83356124408161210e565b925060208401356124508161210e565b915061245e60408501612393565b90509250925092565b600060e0820190506001600160a01b0380845116835260208085015181850160005b60038110156124a8578251851682529183019190830190600101612489565b505050604085015191506080840160005b60038110156124d85783511515825292820192908201906001016124b9565b5050505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561255257600080fd5b5051919050565b6000815180845260005b8181101561257f57602081850181015186830182015201612563565b81811115612591576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03831681526040602082015260006125c86040830184612559565b949350505050565b6000602082840312156125e257600080fd5b815161118a816121c9565b60006001600160a01b038086168352808516602084015250606060408301526126196060830184612559565b95945050505050565b60006020828403121561263457600080fd5b815161118a8161210e56fea2646970667358221220e9e8117580567310cce32d2d579e478a70b32493a4a30ef4eed88bab009d25fa64736f6c634300080d003363616e2774206265207a65726f20616464726573730000000000000000000000",
646
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c80638456cb59116100ee578063b62cad6911610097578063cb67e3b111610071578063cb67e3b1146103ad578063e30c3978146103cd578063f2fde38b146103de578063fc57d4df146103f157600080fd5b8063b62cad6914610360578063b62e4c9214610373578063c4d66de81461039a57600080fd5b806396e85ced116100c857806396e85ced14610329578063a6b1344a1461033c578063b4a0bdf31461034f57600080fd5b80638456cb59146102de5780638b855da4146102e65780638da5cb5b1461031857600080fd5b806341976e091161015b5780635ba3792d116101355780635ba3792d146102915780635c975abb146102b8578063715018a6146102ce57806379ba5097146102d657600080fd5b806341976e09146102555780634b932b8f146102765780634bf39cba1461028957600080fd5b806333d334941161018c57806333d33494146101ee5780633e83b6b8146102325780633f4ba83a1461024d57600080fd5b80630e32cb86146101b35780632cfa3871146101c8578063333a21b0146101db575b600080fd5b6101c66101c1366004612123565b610404565b005b6101c66101d63660046122c7565b610418565b6101c66101e9366004612377565b6104aa565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61021573bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb81565b6101c6610674565b610268610263366004612123565b6106bc565b604051908152602001610229565b6101c66102843660046123a2565b610726565b610268600081565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b60335460ff166040519015158152602001610229565b6101c66108d2565b6101c66108e4565b6101c661096f565b6102f96102f43660046123eb565b6109b5565b604080516001600160a01b039093168352901515602083015201610229565b6065546001600160a01b0316610215565b6101c6610337366004612123565b610a57565b6101c661034a366004612420565b610b1b565b60c9546001600160a01b0316610215565b6101c661036e366004612123565b610d83565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6101c66103a8366004612123565b610e38565b6103c06103bb366004612123565b610fbb565b6040516102299190612467565b6097546001600160a01b0316610215565b6101c66103ec366004612123565b611090565b6102686103ff366004612123565b611119565b61040c611191565b610415816111eb565b50565b805160000361046e5760405162461bcd60e51b815260206004820152601160248201527f6c656e6774682063616e2774206265203000000000000000000000000000000060448201526064015b60405180910390fd5b805160005b818110156104a55761049d838281518110610490576104906124e2565b60200260200101516104aa565b600101610473565b505050565b80516001600160a01b0381166105025760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6020820151516001600160a01b03811661055e5760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b61059c6040518060400160405280601b81526020017f736574546f6b656e436f6e66696728546f6b656e436f6e6669672900000000008152506112d9565b82516001600160a01b03908116600090815260fb60209081526040909120855181547fffffffffffffffffffffffff00000000000000000000000000000000000000001693169290921782558401518491906105fe9060018301906003611fa9565b5060408201516106149060048301906003612019565b505050602083810151808201518151865160409384015193516001600160a01b039485168152928416949184169316917fa51ad01e2270c314a7b78f0c60fe66c723f2d06c121d63fcdce776e654878fc1910160405180910390a4505050565b6106b26040518060400160405280600981526020017f756e7061757365282900000000000000000000000000000000000000000000008152506112d9565b6106ba6113a5565b565b60006106ca60335460ff1690565b156107175760405162461bcd60e51b815260206004820152601a60248201527f726573696c69656e74206f7261636c65206973207061757365640000000000006044820152606401610465565b61072082611415565b92915050565b826001600160a01b03811661077d5760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6001600160a01b03808516600090815260fb60205260409020548591166107e65760405162461bcd60e51b815260206004820152601760248201527f746f6b656e20636f6e666967206d7573742065786973740000000000000000006044820152606401610465565b6108246040518060400160405280602081526020017f656e61626c654f7261636c6528616464726573732c75696e74382c626f6f6c298152506112d9565b6001600160a01b038516600090815260fb60205260409020839060040185600281111561085357610853612511565b60038110610863576108636124e2565b602091828204019190066101000a81548160ff02191690831515021790555082151584600281111561089757610897612511565b6040516001600160a01b038816907fcf3cad1ec87208efbde5d82a0557484a78d4182c3ad16926a5463bc1f7234b3d90600090a45050505050565b6108da611191565b6106ba6000611659565b60975433906001600160a01b031681146109665760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e657200000000000000000000000000000000000000000000006064820152608401610465565b61041581611659565b6109ad6040518060400160405280600781526020017f70617573652829000000000000000000000000000000000000000000000000008152506112d9565b6106ba61168a565b6001600160a01b038216600090815260fb6020526040812081906001018360028111156109e4576109e4612511565b600381106109f4576109f46124e2565b01546001600160a01b03858116600090815260fb6020526040902091169250600401836002811115610a2857610a28612511565b60038110610a3857610a386124e2565b602091828204019190069054906101000a900460ff1690509250929050565b6000610a62826116e5565b9050600080610a728360016109b5565b90925090506001600160a01b03821615801590610a8c5750805b15610b15576040517f725068a50000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015283169063725068a5906024016020604051808303816000875af1925050508015610b0e575060408051601f3d908101601f19168201909252610b0b91810190612540565b60015b15610b1557505b50505050565b826001600160a01b038116610b725760405162461bcd60e51b815260206004820152601560248201527f63616e2774206265207a65726f206164647265737300000000000000000000006044820152606401610465565b6001600160a01b03808516600090815260fb6020526040902054859116610bdb5760405162461bcd60e51b815260206004820152601760248201527f746f6b656e20636f6e666967206d7573742065786973740000000000000000006044820152606401610465565b610c196040518060400160405280602081526020017f7365744f7261636c6528616464726573732c616464726573732c75696e7438298152506112d9565b6001600160a01b038416158015610c4157506000836002811115610c3f57610c3f612511565b145b15610cb45760405162461bcd60e51b815260206004820152602560248201527f63616e277420736574207a65726f206164647265737320746f206d61696e206f60448201527f7261636c650000000000000000000000000000000000000000000000000000006064820152608401610465565b6001600160a01b038516600090815260fb602052604090208490600101846002811115610ce357610ce3612511565b60038110610cf357610cf36124e2565b0180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055826002811115610d3c57610d3c612511565b846001600160a01b0316866001600160a01b03167fea681d3efb830ef032a9c29a7215b5ceeeb546250d2c463dbf87817aecda1bf160405160405180910390a45050505050565b600080610d918360016109b5565b90925090506001600160a01b03821615801590610dab5750805b156104a5576040517f725068a50000000000000000000000000000000000000000000000000000000081526001600160a01b03848116600483015283169063725068a5906024016020604051808303816000875af1925050508015610e2d575060408051601f3d908101601f19168201909252610e2a91810190612540565b60015b156104a55750505050565b600054610100900460ff1615808015610e585750600054600160ff909116105b80610e725750303b158015610e72575060005460ff166001145b610ee45760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610465565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610f4257600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610f4b82611802565b610f53611890565b8015610fb757600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b610fc36120a6565b6001600160a01b03828116600090815260fb60209081526040918290208251606080820185528254909516815283519485019384905293909291840191600184019060039082845b81546001600160a01b0316815260019091019060200180831161100b575050509183525050604080516060810191829052602090920191906004840190600390826000855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116110505790505050505050815250509050919050565b611098611191565b609780546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556110e16065546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b600061112760335460ff1690565b156111745760405162461bcd60e51b815260206004820152601a60248201527f726573696c69656e74206f7261636c65206973207061757365640000000000006044820152606401610465565b600061117f836116e5565b905061118a81611415565b9392505050565b6065546001600160a01b031633146106ba5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610465565b6001600160a01b0381166112675760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f64726573730000000000000000000000000000000000000000000000000000006064820152608401610465565b60c980546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610fae565b60c9546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab9061132590339086906004016125a6565b602060405180830381865afa158015611342573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061136691906125d0565b905080610fb7573330836040517f4a3fa293000000000000000000000000000000000000000000000000000000008152600401610465939291906125ed565b6113ad611915565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60008080806114258560016109b5565b9150915080801561143e57506001600160a01b03821615155b156114c6576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301528316906341976e0990602401602060405180830381865afa9250505080156114be575060408051601f3d908101601f191682019092526114bb91810190612540565b60015b156114c65792505b6000806114e887868580156114e357506001600160a01b03871615155b611967565b91509150600082141580156114fa5750805b15611509575095945050505050565b6000806115168988611b1c565b91509150600082141580156115285750805b156115395750979650505050505050565b831580159061154757508115155b80156115ff57506040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038a8116600483015260248201869052604482018490527f000000000000000000000000000000000000000000000000000000000000000016906397c7033e90606401602060405180830381865afa1580156115db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ff91906125d0565b15611611575091979650505050505050565b60405162461bcd60e51b815260206004820152601e60248201527f696e76616c696420726573696c69656e74206f7261636c6520707269636500006044820152606401610465565b609780547fffffffffffffffffffffffff000000000000000000000000000000000000000016905561041581611cbd565b611692611d27565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113f83390565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361173b575073bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361179b57507f0000000000000000000000000000000000000000000000000000000000000000919050565b816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107209190612622565b919050565b600054610100900460ff1661187f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b611887611d7a565b61041581611dff565b600054610100900460ff1661190d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba611e7c565b60335460ff166106ba5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f74207061757365640000000000000000000000006044820152606401610465565b6000806000806119788760006109b5565b9150915080801561199157506001600160a01b03821615155b15611b0a576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528316906341976e0990602401602060405180830381865afa925050508015611a11575060408051601f3d908101601f19168201909252611a0e91810190612540565b60015b611a2357600080935093505050611b14565b85611a3657935060019250611b14915050565b86611a4957935060009250611b14915050565b6040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038981166004830152602482018390526044820189905282917f0000000000000000000000000000000000000000000000000000000000000000909116906397c7033e90606401602060405180830381865afa158015611ada573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611afe91906125d0565b94509450505050611b14565b6000809350935050505b935093915050565b600080600080611b2d8660026109b5565b91509150808015611b4657506001600160a01b03821615155b15611cac576040517f41976e090000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301528316906341976e0990602401602060405180830381865afa925050508015611bc6575060408051601f3d908101601f19168201909252611bc391810190612540565b60015b611bd857600080935093505050611cb6565b85611beb57935060009250611cb6915050565b6040517f97c7033e0000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018390526044820188905282917f0000000000000000000000000000000000000000000000000000000000000000909116906397c7033e90606401602060405180830381865afa158015611c7c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ca091906125d0565b94509450505050611cb6565b6000809350935050505b9250929050565b606580546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60335460ff16156106ba5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a20706175736564000000000000000000000000000000006044820152606401610465565b600054610100900460ff16611df75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba611f23565b600054610100900460ff1661040c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b600054610100900460ff16611ef95760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b603380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b600054610100900460ff16611fa05760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610465565b6106ba33611659565b8260038101928215612009579160200282015b8281111561200957825182547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03909116178255602090920191600190910190611fbc565b506120159291506120db565b5090565b6001830191839082156120095791602002820160005b8382111561206c57835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030261202f565b80156120995782816101000a81549060ff021916905560010160208160000104928301926001030261206c565b50506120159291506120db565b604051806060016040528060006001600160a01b031681526020016120c96120f0565b81526020016120d66120f0565b905290565b5b8082111561201557600081556001016120dc565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461041557600080fd5b60006020828403121561213557600080fd5b813561118a8161210e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff8111828210171561219257612192612140565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156121c1576121c1612140565b604052919050565b801515811461041557600080fd5b600082601f8301126121e857600080fd5b6121f061216f565b80606084018581111561220257600080fd5b845b81811015612225578035612217816121c9565b845260209384019301612204565b509095945050505050565b600060e0828403121561224257600080fd5b61224a61216f565b905081356122578161210e565b81526020603f8301841361226a57600080fd5b61227261216f565b80608085018681111561228457600080fd5b8386015b818110156122a857803561229b8161210e565b8452928401928401612288565b5081848601526122b887826121d7565b60408601525050505092915050565b600060208083850312156122da57600080fd5b823567ffffffffffffffff808211156122f257600080fd5b818501915085601f83011261230657600080fd5b81358181111561231857612318612140565b612326848260051b01612198565b818152848101925060e091820284018501918883111561234557600080fd5b938501935b8285101561236b5761235c8986612230565b8452938401939285019261234a565b50979650505050505050565b600060e0828403121561238957600080fd5b61118a8383612230565b8035600381106117fd57600080fd5b6000806000606084860312156123b757600080fd5b83356123c28161210e565b92506123d060208501612393565b915060408401356123e0816121c9565b809150509250925092565b600080604083850312156123fe57600080fd5b82356124098161210e565b915061241760208401612393565b90509250929050565b60008060006060848603121561243557600080fd5b83356124408161210e565b925060208401356124508161210e565b915061245e60408501612393565b90509250925092565b600060e0820190506001600160a01b0380845116835260208085015181850160005b60038110156124a8578251851682529183019190830190600101612489565b505050604085015191506080840160005b60038110156124d85783511515825292820192908201906001016124b9565b5050505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60006020828403121561255257600080fd5b5051919050565b6000815180845260005b8181101561257f57602081850181015186830182015201612563565b81811115612591576000602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03831681526040602082015260006125c86040830184612559565b949350505050565b6000602082840312156125e257600080fd5b815161118a816121c9565b60006001600160a01b038086168352808516602084015250606060408301526126196060830184612559565b95945050505050565b60006020828403121561263457600080fd5b815161118a8161210e56fea2646970667358221220e9e8117580567310cce32d2d579e478a70b32493a4a30ef4eed88bab009d25fa64736f6c634300080d0033",
647
+ "linkReferences": {},
648
+ "deployedLinkReferences": {}
649
+ }