@flarenetwork/flare-periphery-contract-artifacts 0.1.0 → 0.1.2

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 (317) hide show
  1. package/coston/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  2. package/coston/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  3. package/coston/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  4. package/coston/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +6 -19
  5. package/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +0 -13
  6. package/coston/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  7. package/coston2/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  8. package/coston2/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  9. package/coston2/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  10. package/coston2/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  11. package/coston2/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  12. package/coston2/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  13. package/coston2/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  14. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  15. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  16. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  17. package/coston2/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  18. package/coston2/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  19. package/coston2/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  20. package/coston2/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  21. package/coston2/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  22. package/coston2/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  23. package/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  24. package/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  25. package/coston2/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  26. package/coston2/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  27. package/coston2/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  28. package/coston2/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  29. package/coston2/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  30. package/coston2/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  31. package/coston2/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  32. package/coston2/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  33. package/coston2/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  34. package/coston2/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  35. package/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  36. package/coston2/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  37. package/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  38. package/coston2/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  39. package/coston2/artifacts/contracts/userInterfaces/IAddressBinder.sol/IAddressBinder.json +121 -0
  40. package/coston2/artifacts/contracts/userInterfaces/IGovernanceVotePower.sol/IGovernanceVotePower.json +1 -1
  41. package/coston2/artifacts/contracts/userInterfaces/IPChainStakeMirror.sol/IPChainStakeMirror.json +575 -0
  42. package/coston2/artifacts/contracts/userInterfaces/IPChainStakeMirrorMultiSigVoting.sol/IPChainStakeMirrorMultiSigVoting.json +311 -0
  43. package/coston2/artifacts/contracts/userInterfaces/IPChainStakeMirrorVerifier.sol/IPChainStakeMirrorVerifier.json +10 -0
  44. package/coston2/artifacts/contracts/userInterfaces/IPChainVotePower.sol/IPChainVotePower.json +309 -0
  45. package/coston2/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  46. package/coston2/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  47. package/coston2/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  48. package/coston2/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  49. package/coston2/deploys/contracts.json +23 -3
  50. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.d.ts +68 -0
  51. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.d.ts.map +1 -0
  52. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.js +164 -0
  53. package/dist/coston/StateConnector/libs/ts/AttestationDefinitionStore.js.map +1 -0
  54. package/dist/coston/StateConnector/libs/ts/AttestationResponse.d.ts +33 -0
  55. package/dist/coston/StateConnector/libs/ts/AttestationResponse.d.ts.map +1 -0
  56. package/dist/coston/StateConnector/libs/ts/AttestationResponse.js +30 -0
  57. package/dist/coston/StateConnector/libs/ts/AttestationResponse.js.map +1 -0
  58. package/dist/coston/StateConnector/libs/ts/MerkleTree.d.ts +103 -0
  59. package/dist/coston/StateConnector/libs/ts/MerkleTree.d.ts.map +1 -0
  60. package/dist/coston/StateConnector/libs/ts/MerkleTree.js +212 -0
  61. package/dist/coston/StateConnector/libs/ts/MerkleTree.js.map +1 -0
  62. package/dist/coston/StateConnector/libs/ts/config-types.d.ts +143 -0
  63. package/dist/coston/StateConnector/libs/ts/config-types.d.ts.map +1 -0
  64. package/dist/coston/StateConnector/libs/ts/config-types.js +3 -0
  65. package/dist/coston/StateConnector/libs/ts/config-types.js.map +1 -0
  66. package/dist/coston/StateConnector/libs/ts/interfaces.d.ts +32 -0
  67. package/dist/coston/StateConnector/libs/ts/interfaces.d.ts.map +1 -0
  68. package/dist/coston/StateConnector/libs/ts/interfaces.js +3 -0
  69. package/dist/coston/StateConnector/libs/ts/interfaces.js.map +1 -0
  70. package/dist/coston/StateConnector/libs/ts/random.d.ts +9 -0
  71. package/dist/coston/StateConnector/libs/ts/random.d.ts.map +1 -0
  72. package/dist/coston/StateConnector/libs/ts/random.js +70 -0
  73. package/dist/coston/StateConnector/libs/ts/random.js.map +1 -0
  74. package/dist/coston/StateConnector/libs/ts/utils.d.ts +73 -0
  75. package/dist/coston/StateConnector/libs/ts/utils.d.ts.map +1 -0
  76. package/dist/coston/StateConnector/libs/ts/utils.js +282 -0
  77. package/dist/coston/StateConnector/libs/ts/utils.js.map +1 -0
  78. package/dist/coston/StateConnector/typescript/AddressValidity.d.ts +91 -0
  79. package/dist/coston/StateConnector/typescript/AddressValidity.d.ts.map +1 -0
  80. package/dist/coston/StateConnector/typescript/AddressValidity.js +9 -0
  81. package/dist/coston/StateConnector/typescript/AddressValidity.js.map +1 -0
  82. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.d.ts +107 -0
  83. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.d.ts.map +1 -0
  84. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.js +9 -0
  85. package/dist/coston/StateConnector/typescript/BalanceDecreasingTransaction.js.map +1 -0
  86. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.d.ts +103 -0
  87. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.d.ts.map +1 -0
  88. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.js +9 -0
  89. package/dist/coston/StateConnector/typescript/ConfirmedBlockHeightExists.js.map +1 -0
  90. package/dist/coston/StateConnector/typescript/EVMTransaction.d.ts +160 -0
  91. package/dist/coston/StateConnector/typescript/EVMTransaction.d.ts.map +1 -0
  92. package/dist/coston/StateConnector/typescript/EVMTransaction.js +9 -0
  93. package/dist/coston/StateConnector/typescript/EVMTransaction.js.map +1 -0
  94. package/dist/coston/StateConnector/typescript/Payment.d.ts +139 -0
  95. package/dist/coston/StateConnector/typescript/Payment.d.ts.map +1 -0
  96. package/dist/coston/StateConnector/typescript/Payment.js +9 -0
  97. package/dist/coston/StateConnector/typescript/Payment.js.map +1 -0
  98. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.d.ts +115 -0
  99. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.d.ts.map +1 -0
  100. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.js +9 -0
  101. package/dist/coston/StateConnector/typescript/ReferencedPaymentNonexistence.js.map +1 -0
  102. package/dist/coston/StateConnector/typescript/TypeTemplate.d.ts +146 -0
  103. package/dist/coston/StateConnector/typescript/TypeTemplate.d.ts.map +1 -0
  104. package/dist/coston/StateConnector/typescript/TypeTemplate.js +9 -0
  105. package/dist/coston/StateConnector/typescript/TypeTemplate.js.map +1 -0
  106. package/dist/coston/StateConnector/typescript/data-sources/data-sources.d.ts +29 -0
  107. package/dist/coston/StateConnector/typescript/data-sources/data-sources.d.ts.map +1 -0
  108. package/dist/coston/StateConnector/typescript/data-sources/data-sources.js +33 -0
  109. package/dist/coston/StateConnector/typescript/data-sources/data-sources.js.map +1 -0
  110. package/dist/coston/StateConnector/typescript/index.d.ts +9 -0
  111. package/dist/coston/StateConnector/typescript/index.d.ts.map +1 -0
  112. package/dist/coston/StateConnector/typescript/index.js +25 -0
  113. package/dist/coston/StateConnector/typescript/index.js.map +1 -0
  114. package/dist/coston/abis.d.ts.map +1 -1
  115. package/dist/coston/abis.js +2 -0
  116. package/dist/coston/abis.js.map +1 -1
  117. package/dist/coston/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  118. package/dist/coston/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  119. package/dist/coston/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  120. package/dist/coston/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +6 -19
  121. package/dist/coston/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +0 -13
  122. package/dist/coston/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  123. package/dist/coston/deploys/mapper.js.map +1 -1
  124. package/dist/coston2/abis.d.ts.map +1 -1
  125. package/dist/coston2/abis.js +20 -2
  126. package/dist/coston2/abis.js.map +1 -1
  127. package/dist/coston2/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  128. package/dist/coston2/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  129. package/dist/coston2/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  130. package/dist/coston2/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  131. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  132. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  133. package/dist/coston2/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  134. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  135. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  136. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  137. package/dist/coston2/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  138. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  139. package/dist/coston2/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  140. package/dist/coston2/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  141. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  142. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  143. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  144. package/dist/coston2/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  145. package/dist/coston2/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  146. package/dist/coston2/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  147. package/dist/coston2/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  148. package/dist/coston2/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  149. package/dist/coston2/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  150. package/dist/coston2/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  151. package/dist/coston2/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  152. package/dist/coston2/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  153. package/dist/coston2/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  154. package/dist/coston2/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  155. package/dist/coston2/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  156. package/dist/coston2/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  157. package/dist/coston2/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  158. package/dist/coston2/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  159. package/dist/coston2/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  160. package/dist/coston2/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  161. package/dist/coston2/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  162. package/dist/coston2/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  163. package/dist/coston2/deploys/addresses.d.ts +4 -0
  164. package/dist/coston2/deploys/addresses.d.ts.map +1 -1
  165. package/dist/coston2/deploys/addresses.js +6 -2
  166. package/dist/coston2/deploys/addresses.js.map +1 -1
  167. package/dist/coston2/deploys/contracts.json +23 -3
  168. package/dist/coston2/deploys/mapper.js.map +1 -1
  169. package/dist/flare/abis.d.ts.map +1 -1
  170. package/dist/flare/abis.js +20 -2
  171. package/dist/flare/abis.js.map +1 -1
  172. package/dist/flare/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  173. package/dist/flare/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  174. package/dist/flare/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  175. package/dist/flare/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  176. package/dist/flare/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  177. package/dist/flare/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  178. package/dist/flare/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  179. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  180. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  181. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  182. package/dist/flare/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  183. package/dist/flare/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  184. package/dist/flare/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  185. package/dist/flare/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  186. package/dist/flare/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  187. package/dist/flare/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  188. package/dist/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  189. package/dist/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  190. package/dist/flare/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  191. package/dist/flare/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  192. package/dist/flare/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  193. package/dist/flare/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  194. package/dist/flare/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  195. package/dist/flare/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  196. package/dist/flare/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  197. package/dist/flare/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  198. package/dist/flare/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  199. package/dist/flare/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  200. package/dist/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  201. package/dist/flare/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  202. package/dist/flare/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  203. package/dist/flare/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  204. package/dist/flare/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  205. package/dist/flare/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  206. package/dist/flare/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  207. package/dist/flare/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  208. package/dist/flare/deploys/addresses.d.ts +4 -0
  209. package/dist/flare/deploys/addresses.d.ts.map +1 -1
  210. package/dist/flare/deploys/addresses.js +6 -2
  211. package/dist/flare/deploys/addresses.js.map +1 -1
  212. package/dist/flare/deploys/contracts.json +23 -3
  213. package/dist/flare/deploys/mapper.js.map +1 -1
  214. package/dist/songbird/abis.d.ts.map +1 -1
  215. package/dist/songbird/abis.js +20 -14
  216. package/dist/songbird/abis.js.map +1 -1
  217. package/dist/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  218. package/dist/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  219. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  220. package/dist/songbird/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  221. package/dist/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +273 -298
  222. package/dist/songbird/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +463 -0
  223. package/dist/songbird/artifacts/contracts/inflation/implementation/SelfDestructBurner.sol/SelfDestructBurner.json +73 -0
  224. package/dist/songbird/artifacts/contracts/inflation/implementation/Supply.sol/Supply.json +290 -51
  225. package/dist/songbird/artifacts/contracts/inflation/interface/{IIInflationSharingPercentageProvider.sol/IIInflationSharingPercentageProvider.json → IIInflationAllocation.sol/IIInflationAllocation.json} +15 -2
  226. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationReceiver.sol/IIInflationReceiver.json +26 -0
  227. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  228. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationV1.sol/IIInflationV1.json +142 -0
  229. package/dist/songbird/artifacts/contracts/inflation/interface/IIPreInflationCalculation.sol/IIPreInflationCalculation.json +18 -0
  230. package/dist/songbird/artifacts/contracts/inflation/interface/IISupply.sol/IISupply.json +6 -12
  231. package/dist/songbird/artifacts/contracts/inflation/lib/{RewardServices.sol/RewardServices.json → InflationRewardServices.sol/InflationRewardServices.json} +25 -6
  232. package/dist/songbird/artifacts/contracts/inflation/lib/InflationTimeSlots.sol/InflationTimeSlots.json +10 -0
  233. package/dist/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  234. package/dist/songbird/artifacts/contracts/tokenPools/implementation/InflationReceiver.sol/InflationReceiver.json +127 -0
  235. package/dist/songbird/artifacts/contracts/tokenPools/implementation/TokenPoolBase.sol/TokenPoolBase.json +10 -0
  236. package/dist/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +13 -0
  237. package/dist/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  238. package/dist/songbird/deploys/addresses.js +3 -3
  239. package/dist/songbird/deploys/contracts.json +3 -3
  240. package/dist/songbird/deploys/mapper.js.map +1 -1
  241. package/flare/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  242. package/flare/artifacts/contracts/claiming/implementation/DelegationAccount.sol/DelegationAccount.json +2 -2
  243. package/flare/artifacts/contracts/ftso/implementation/Ftso.sol/Ftso.json +2 -2
  244. package/flare/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  245. package/flare/artifacts/contracts/ftso/lib/FtsoEpoch.sol/FtsoEpoch.json +2 -2
  246. package/flare/artifacts/contracts/ftso/lib/FtsoManagement.sol/FtsoManagement.json +2 -2
  247. package/flare/artifacts/contracts/ftso/lib/FtsoManagerSettings.sol/FtsoManagerSettings.json +2 -2
  248. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockFtsoRegistry.json +2 -2
  249. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockPriceSubmitter.json +2 -2
  250. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/PriceProviderMockContracts.sol/MockVoterWhitelister.json +2 -2
  251. package/flare/artifacts/contracts/ftso/priceProviderMockContracts/priceProviderMockFtso.sol/MockNpmFtso.json +2 -2
  252. package/flare/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  253. package/flare/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  254. package/flare/artifacts/contracts/staking/implementation/AddressBinder.sol/AddressBinder.json +121 -0
  255. package/flare/artifacts/contracts/staking/implementation/PChainStake.sol/PChainStake.json +512 -0
  256. package/flare/artifacts/contracts/staking/implementation/PChainStakeMirror.sol/PChainStakeMirror.json +1299 -0
  257. package/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorMultiSigVoting.sol/PChainStakeMirrorMultiSigVoting.json +579 -0
  258. package/flare/artifacts/contracts/staking/implementation/PChainStakeMirrorVerifier.sol/PChainStakeMirrorVerifier.json +168 -0
  259. package/flare/artifacts/contracts/staking/interface/IIPChainStakeMirrorVerifier.sol/IIPChainStakeMirrorVerifier.json +72 -0
  260. package/flare/artifacts/contracts/staking/lib/PChainStakeHistory.sol/PChainStakeHistory.json +24 -0
  261. package/flare/artifacts/contracts/token/implementation/CombinedNat.sol/CombinedNat.json +128 -0
  262. package/flare/artifacts/contracts/token/implementation/GovernanceVotePower.sol/GovernanceVotePower.json +20 -2
  263. package/flare/artifacts/contracts/token/implementation/VPContract.sol/VPContract.json +2 -2
  264. package/flare/artifacts/contracts/token/implementation/VPToken.sol/VPToken.json +2 -2
  265. package/flare/artifacts/contracts/token/implementation/WNat.sol/WNat.json +2 -2
  266. package/flare/artifacts/contracts/token/{lib → interface}/IICombinedNatBalance.sol/IICombinedNatBalance.json +33 -1
  267. package/flare/artifacts/contracts/token/interface/IIGovernanceVotePower.sol/IIGovernanceVotePower.json +14 -1
  268. package/flare/artifacts/contracts/tokenPools/implementation/AttestationProviderRewardManager.sol/AttestationProviderRewardManager.json +2 -2
  269. package/flare/artifacts/contracts/tokenPools/implementation/DistributionToDelegators.sol/DistributionToDelegators.json +2 -2
  270. package/flare/artifacts/contracts/tokenPools/implementation/Escrow.sol/Escrow.json +2 -2
  271. package/flare/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  272. package/flare/artifacts/contracts/tokenPools/implementation/ValidatorRewardManager.sol/ValidatorRewardManager.json +2 -2
  273. package/flare/artifacts/contracts/userInterfaces/IAddressBinder.sol/IAddressBinder.json +121 -0
  274. package/flare/artifacts/contracts/userInterfaces/IGovernanceVotePower.sol/IGovernanceVotePower.json +1 -1
  275. package/flare/artifacts/contracts/userInterfaces/IPChainStakeMirror.sol/IPChainStakeMirror.json +575 -0
  276. package/flare/artifacts/contracts/userInterfaces/IPChainStakeMirrorMultiSigVoting.sol/IPChainStakeMirrorMultiSigVoting.json +311 -0
  277. package/flare/artifacts/contracts/userInterfaces/IPChainStakeMirrorVerifier.sol/IPChainStakeMirrorVerifier.json +10 -0
  278. package/flare/artifacts/contracts/userInterfaces/IPChainVotePower.sol/IPChainVotePower.json +309 -0
  279. package/flare/artifacts/contracts/utils/implementation/BytesLib.sol/BytesLib.json +10 -0
  280. package/flare/artifacts/contracts/utils/implementation/FtsoRegistry.sol/FtsoRegistry.json +2 -2
  281. package/flare/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  282. package/flare/artifacts/contracts/utils/implementation/VoterWhitelister.sol/VoterWhitelister.json +2 -2
  283. package/flare/deploys/contracts.json +23 -3
  284. package/package.json +3 -2
  285. package/songbird/artifacts/contracts/claiming/implementation/ClaimSetupManager.sol/ClaimSetupManager.json +2 -2
  286. package/songbird/artifacts/contracts/ftso/implementation/FtsoManager.sol/FtsoManager.json +2 -2
  287. package/songbird/artifacts/contracts/governance/implementation/PollingFoundation.sol/PollingFoundation.json +2 -2
  288. package/songbird/artifacts/contracts/governance/implementation/PollingFtso.sol/PollingFtso.json +2 -2
  289. package/songbird/artifacts/contracts/inflation/implementation/Inflation.sol/Inflation.json +273 -298
  290. package/songbird/artifacts/contracts/inflation/implementation/InflationAllocation.sol/InflationAllocation.json +463 -0
  291. package/songbird/artifacts/contracts/inflation/implementation/SelfDestructBurner.sol/SelfDestructBurner.json +73 -0
  292. package/songbird/artifacts/contracts/inflation/implementation/Supply.sol/Supply.json +290 -51
  293. package/songbird/artifacts/contracts/inflation/interface/{IIInflationSharingPercentageProvider.sol/IIInflationSharingPercentageProvider.json → IIInflationAllocation.sol/IIInflationAllocation.json} +15 -2
  294. package/songbird/artifacts/contracts/inflation/interface/IIInflationReceiver.sol/IIInflationReceiver.json +26 -0
  295. package/songbird/artifacts/contracts/inflation/interface/IIInflationReceiverV1.sol/IIInflationReceiverV1.json +57 -0
  296. package/songbird/artifacts/contracts/inflation/interface/IIInflationV1.sol/IIInflationV1.json +142 -0
  297. package/songbird/artifacts/contracts/inflation/interface/IIPreInflationCalculation.sol/IIPreInflationCalculation.json +18 -0
  298. package/songbird/artifacts/contracts/inflation/interface/IISupply.sol/IISupply.json +6 -12
  299. package/songbird/artifacts/contracts/inflation/lib/{RewardServices.sol/RewardServices.json → InflationRewardServices.sol/InflationRewardServices.json} +25 -6
  300. package/songbird/artifacts/contracts/inflation/lib/InflationTimeSlots.sol/InflationTimeSlots.json +10 -0
  301. package/songbird/artifacts/contracts/tokenPools/implementation/FtsoRewardManager.sol/FtsoRewardManager.json +2 -2
  302. package/songbird/artifacts/contracts/tokenPools/implementation/InflationReceiver.sol/InflationReceiver.json +127 -0
  303. package/songbird/artifacts/contracts/tokenPools/implementation/TokenPoolBase.sol/TokenPoolBase.json +10 -0
  304. package/songbird/artifacts/contracts/tokenPools/interface/IIFtsoRewardManager.sol/IIFtsoRewardManager.json +13 -0
  305. package/songbird/artifacts/contracts/userInterfaces/IGenericRewardManager.sol/IGenericRewardManager.json +248 -0
  306. package/songbird/artifacts/contracts/utils/implementation/FtsoV2Upgrader.sol/FtsoV2Upgrader.json +2 -2
  307. package/songbird/deploys/contracts.json +3 -3
  308. package/dist/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +0 -351
  309. package/dist/songbird/artifacts/contracts/inflation/interface/IIInflationPercentageProvider.sol/IIInflationPercentageProvider.json +0 -24
  310. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +0 -10
  311. package/dist/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +0 -10
  312. package/dist/songbird/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +0 -30
  313. package/songbird/artifacts/contracts/governance/implementation/InflationAllocation.sol/InflationAllocation.json +0 -351
  314. package/songbird/artifacts/contracts/inflation/interface/IIInflationPercentageProvider.sol/IIInflationPercentageProvider.json +0 -24
  315. package/songbird/artifacts/contracts/inflation/lib/InflationAnnum.sol/InflationAnnum.json +0 -10
  316. package/songbird/artifacts/contracts/inflation/lib/InflationAnnums.sol/InflationAnnums.json +0 -10
  317. package/songbird/artifacts/contracts/inflation/lib/RewardService.sol/RewardService.json +0 -30
@@ -16,13 +16,8 @@
16
16
  "type": "address"
17
17
  },
18
18
  {
19
- "internalType": "contract IIInflationPercentageProvider",
20
- "name": "_inflationPercentageProvider",
21
- "type": "address"
22
- },
23
- {
24
- "internalType": "contract IIInflationSharingPercentageProvider",
25
- "name": "_inflationSharingPercentageProvider",
19
+ "internalType": "address",
20
+ "name": "_addressUpdater",
26
21
  "type": "address"
27
22
  },
28
23
  {
@@ -39,12 +34,24 @@
39
34
  "inputs": [
40
35
  {
41
36
  "indexed": false,
42
- "internalType": "address",
43
- "name": "proposedGovernance",
44
- "type": "address"
37
+ "internalType": "bytes4",
38
+ "name": "selector",
39
+ "type": "bytes4"
40
+ },
41
+ {
42
+ "indexed": false,
43
+ "internalType": "uint256",
44
+ "name": "allowedAfterTimestamp",
45
+ "type": "uint256"
46
+ },
47
+ {
48
+ "indexed": false,
49
+ "internalType": "bytes",
50
+ "name": "encodedCall",
51
+ "type": "bytes"
45
52
  }
46
53
  ],
47
- "name": "GovernanceProposed",
54
+ "name": "GovernanceCallTimelocked",
48
55
  "type": "event"
49
56
  },
50
57
  {
@@ -53,17 +60,11 @@
53
60
  {
54
61
  "indexed": false,
55
62
  "internalType": "address",
56
- "name": "oldGovernance",
57
- "type": "address"
58
- },
59
- {
60
- "indexed": false,
61
- "internalType": "address",
62
- "name": "newGoveranance",
63
+ "name": "initialGovernance",
63
64
  "type": "address"
64
65
  }
65
66
  ],
66
- "name": "GovernanceUpdated",
67
+ "name": "GovernanceInitialised",
67
68
  "type": "event"
68
69
  },
69
70
  {
@@ -71,12 +72,12 @@
71
72
  "inputs": [
72
73
  {
73
74
  "indexed": false,
74
- "internalType": "uint256",
75
- "name": "amountWei",
76
- "type": "uint256"
75
+ "internalType": "address",
76
+ "name": "governanceSettings",
77
+ "type": "address"
77
78
  }
78
79
  ],
79
- "name": "InflationAuthorized",
80
+ "name": "GovernedProductionModeEntered",
80
81
  "type": "event"
81
82
  },
82
83
  {
@@ -84,12 +85,12 @@
84
85
  "inputs": [
85
86
  {
86
87
  "indexed": false,
87
- "internalType": "contract IIInflationPercentageProvider",
88
- "name": "inflationPercentageProvider",
88
+ "internalType": "contract IIInflationAllocation",
89
+ "name": "inflationAllocation",
89
90
  "type": "address"
90
91
  }
91
92
  ],
92
- "name": "InflationPercentageProviderSet",
93
+ "name": "InflationAllocationSet",
93
94
  "type": "event"
94
95
  },
95
96
  {
@@ -97,12 +98,12 @@
97
98
  "inputs": [
98
99
  {
99
100
  "indexed": false,
100
- "internalType": "contract IIInflationSharingPercentageProvider",
101
- "name": "inflationSharingPercentageProvider",
102
- "type": "address"
101
+ "internalType": "uint256",
102
+ "name": "amountWei",
103
+ "type": "uint256"
103
104
  }
104
105
  ],
105
- "name": "InflationSharingPercentageProviderSet",
106
+ "name": "InflationAuthorized",
106
107
  "type": "event"
107
108
  },
108
109
  {
@@ -110,18 +111,18 @@
110
111
  "inputs": [
111
112
  {
112
113
  "indexed": false,
113
- "internalType": "uint256",
114
- "name": "amountWei",
115
- "type": "uint256"
114
+ "internalType": "contract IIInflationReceiver",
115
+ "name": "inflationReceiver",
116
+ "type": "address"
116
117
  },
117
118
  {
118
119
  "indexed": false,
119
120
  "internalType": "uint256",
120
- "name": "selfDestructAmountWei",
121
+ "name": "amountWei",
121
122
  "type": "uint256"
122
123
  }
123
124
  ],
124
- "name": "MintingReceived",
125
+ "name": "InflationRewardServiceDailyAuthorizedInflationComputed",
125
126
  "type": "event"
126
127
  },
127
128
  {
@@ -129,79 +130,87 @@
129
130
  "inputs": [
130
131
  {
131
132
  "indexed": false,
132
- "internalType": "uint16",
133
- "name": "daysInAnnum",
134
- "type": "uint16"
133
+ "internalType": "contract IIInflationReceiver",
134
+ "name": "inflationReceiver",
135
+ "type": "address"
135
136
  },
136
137
  {
137
138
  "indexed": false,
138
139
  "internalType": "uint256",
139
- "name": "startTimeStamp",
140
+ "name": "amountWei",
140
141
  "type": "uint256"
141
- },
142
+ }
143
+ ],
144
+ "name": "InflationRewardServiceTopupComputed",
145
+ "type": "event"
146
+ },
147
+ {
148
+ "anonymous": false,
149
+ "inputs": [
142
150
  {
143
151
  "indexed": false,
144
- "internalType": "uint256",
145
- "name": "endTimeStamp",
146
- "type": "uint256"
152
+ "internalType": "contract IIInflationReceiver",
153
+ "name": "inflationReceiver",
154
+ "type": "address"
147
155
  },
148
156
  {
149
157
  "indexed": false,
150
158
  "internalType": "uint256",
151
- "name": "inflatableSupplyWei",
159
+ "name": "amountWei",
152
160
  "type": "uint256"
153
- },
161
+ }
162
+ ],
163
+ "name": "InflationRewardServiceTopupRequestReceived",
164
+ "type": "event"
165
+ },
166
+ {
167
+ "anonymous": false,
168
+ "inputs": [
154
169
  {
155
170
  "indexed": false,
156
171
  "internalType": "uint256",
157
- "name": "recognizedInflationWei",
172
+ "name": "amountWei",
158
173
  "type": "uint256"
159
174
  },
160
175
  {
161
176
  "indexed": false,
162
177
  "internalType": "uint256",
163
- "name": "totalAuthorizedInflationWei",
178
+ "name": "selfDestructAmountWei",
164
179
  "type": "uint256"
165
- },
180
+ }
181
+ ],
182
+ "name": "MintingReceived",
183
+ "type": "event"
184
+ },
185
+ {
186
+ "anonymous": false,
187
+ "inputs": [
166
188
  {
167
189
  "indexed": false,
168
190
  "internalType": "uint256",
169
- "name": "totalInflationTopupRequestedWei",
191
+ "name": "startTimeStamp",
170
192
  "type": "uint256"
171
193
  },
172
194
  {
173
195
  "indexed": false,
174
196
  "internalType": "uint256",
175
- "name": "totalInflationTopupReceivedWei",
197
+ "name": "endTimeStamp",
176
198
  "type": "uint256"
177
199
  },
178
200
  {
179
201
  "indexed": false,
180
202
  "internalType": "uint256",
181
- "name": "totalInflationTopupWithdrawnWei",
203
+ "name": "inflatableSupplyWei",
182
204
  "type": "uint256"
183
- }
184
- ],
185
- "name": "NewAnnumInitialized",
186
- "type": "event"
187
- },
188
- {
189
- "anonymous": false,
190
- "inputs": [
191
- {
192
- "indexed": false,
193
- "internalType": "contract IIInflationReceiver",
194
- "name": "inflationReceiver",
195
- "type": "address"
196
205
  },
197
206
  {
198
207
  "indexed": false,
199
208
  "internalType": "uint256",
200
- "name": "amountWei",
209
+ "name": "recognizedInflationWei",
201
210
  "type": "uint256"
202
211
  }
203
212
  ],
204
- "name": "RewardServiceDailyAuthorizedInflationComputed",
213
+ "name": "NewTimeSlotInitialized",
205
214
  "type": "event"
206
215
  },
207
216
  {
@@ -209,18 +218,18 @@
209
218
  "inputs": [
210
219
  {
211
220
  "indexed": false,
212
- "internalType": "contract IIInflationReceiver",
213
- "name": "inflationReceiver",
221
+ "internalType": "contract IISupply",
222
+ "name": "oldSupply",
214
223
  "type": "address"
215
224
  },
216
225
  {
217
226
  "indexed": false,
218
- "internalType": "uint256",
219
- "name": "amountWei",
220
- "type": "uint256"
227
+ "internalType": "contract IISupply",
228
+ "name": "newSupply",
229
+ "type": "address"
221
230
  }
222
231
  ],
223
- "name": "RewardServiceTopupComputed",
232
+ "name": "SupplySet",
224
233
  "type": "event"
225
234
  },
226
235
  {
@@ -228,18 +237,18 @@
228
237
  "inputs": [
229
238
  {
230
239
  "indexed": false,
231
- "internalType": "contract IIInflationReceiver",
232
- "name": "inflationReceiver",
233
- "type": "address"
240
+ "internalType": "bytes4",
241
+ "name": "selector",
242
+ "type": "bytes4"
234
243
  },
235
244
  {
236
245
  "indexed": false,
237
246
  "internalType": "uint256",
238
- "name": "amountWei",
247
+ "name": "timestamp",
239
248
  "type": "uint256"
240
249
  }
241
250
  ],
242
- "name": "RewardServiceTopupRequestReceived",
251
+ "name": "TimelockedGovernanceCallCanceled",
243
252
  "type": "event"
244
253
  },
245
254
  {
@@ -247,18 +256,18 @@
247
256
  "inputs": [
248
257
  {
249
258
  "indexed": false,
250
- "internalType": "contract IISupply",
251
- "name": "oldSupply",
252
- "type": "address"
259
+ "internalType": "bytes4",
260
+ "name": "selector",
261
+ "type": "bytes4"
253
262
  },
254
263
  {
255
264
  "indexed": false,
256
- "internalType": "contract IISupply",
257
- "name": "newSupply",
258
- "type": "address"
265
+ "internalType": "uint256",
266
+ "name": "timestamp",
267
+ "type": "uint256"
259
268
  }
260
269
  ],
261
- "name": "SupplySet",
270
+ "name": "TimelockedGovernanceCallExecuted",
262
271
  "type": "event"
263
272
  },
264
273
  {
@@ -297,7 +306,13 @@
297
306
  {
298
307
  "indexed": false,
299
308
  "internalType": "uint256",
300
- "name": "amountWei",
309
+ "name": "requestAmountWei",
310
+ "type": "uint256"
311
+ },
312
+ {
313
+ "indexed": false,
314
+ "internalType": "uint256",
315
+ "name": "reRequestAmountWei",
301
316
  "type": "uint256"
302
317
  }
303
318
  ],
@@ -305,8 +320,14 @@
305
320
  "type": "event"
306
321
  },
307
322
  {
308
- "inputs": [],
309
- "name": "claimGovernance",
323
+ "inputs": [
324
+ {
325
+ "internalType": "bytes4",
326
+ "name": "_selector",
327
+ "type": "bytes4"
328
+ }
329
+ ],
330
+ "name": "cancelGovernanceCall",
310
331
  "outputs": [],
311
332
  "stateMutability": "nonpayable",
312
333
  "type": "function"
@@ -324,6 +345,19 @@
324
345
  "stateMutability": "nonpayable",
325
346
  "type": "function"
326
347
  },
348
+ {
349
+ "inputs": [
350
+ {
351
+ "internalType": "bytes4",
352
+ "name": "_selector",
353
+ "type": "bytes4"
354
+ }
355
+ ],
356
+ "name": "executeGovernanceCall",
357
+ "outputs": [],
358
+ "stateMutability": "nonpayable",
359
+ "type": "function"
360
+ },
327
361
  {
328
362
  "inputs": [],
329
363
  "name": "flareDaemon",
@@ -338,14 +372,34 @@
338
372
  "type": "function"
339
373
  },
340
374
  {
341
- "inputs": [
375
+ "inputs": [],
376
+ "name": "getAddressUpdater",
377
+ "outputs": [
342
378
  {
343
- "internalType": "uint256",
344
- "name": "_index",
345
- "type": "uint256"
379
+ "internalType": "address",
380
+ "name": "_addressUpdater",
381
+ "type": "address"
346
382
  }
347
383
  ],
348
- "name": "getAnnum",
384
+ "stateMutability": "view",
385
+ "type": "function"
386
+ },
387
+ {
388
+ "inputs": [],
389
+ "name": "getContractName",
390
+ "outputs": [
391
+ {
392
+ "internalType": "string",
393
+ "name": "",
394
+ "type": "string"
395
+ }
396
+ ],
397
+ "stateMutability": "pure",
398
+ "type": "function"
399
+ },
400
+ {
401
+ "inputs": [],
402
+ "name": "getCurrentTimeSlot",
349
403
  "outputs": [
350
404
  {
351
405
  "components": [
@@ -354,11 +408,6 @@
354
408
  "name": "recognizedInflationWei",
355
409
  "type": "uint256"
356
410
  },
357
- {
358
- "internalType": "uint16",
359
- "name": "daysInAnnum",
360
- "type": "uint16"
361
- },
362
411
  {
363
412
  "internalType": "uint256",
364
413
  "name": "startTimeStamp",
@@ -368,73 +417,9 @@
368
417
  "internalType": "uint256",
369
418
  "name": "endTimeStamp",
370
419
  "type": "uint256"
371
- },
372
- {
373
- "components": [
374
- {
375
- "components": [
376
- {
377
- "internalType": "contract IIInflationReceiver",
378
- "name": "inflationReceiver",
379
- "type": "address"
380
- },
381
- {
382
- "internalType": "uint256",
383
- "name": "authorizedInflationWei",
384
- "type": "uint256"
385
- },
386
- {
387
- "internalType": "uint256",
388
- "name": "lastDailyAuthorizedInflationWei",
389
- "type": "uint256"
390
- },
391
- {
392
- "internalType": "uint256",
393
- "name": "inflationTopupRequestedWei",
394
- "type": "uint256"
395
- },
396
- {
397
- "internalType": "uint256",
398
- "name": "inflationTopupReceivedWei",
399
- "type": "uint256"
400
- },
401
- {
402
- "internalType": "uint256",
403
- "name": "inflationTopupWithdrawnWei",
404
- "type": "uint256"
405
- }
406
- ],
407
- "internalType": "struct RewardService.RewardServiceState[]",
408
- "name": "rewardServices",
409
- "type": "tuple[]"
410
- },
411
- {
412
- "internalType": "uint256",
413
- "name": "totalAuthorizedInflationWei",
414
- "type": "uint256"
415
- },
416
- {
417
- "internalType": "uint256",
418
- "name": "totalInflationTopupRequestedWei",
419
- "type": "uint256"
420
- },
421
- {
422
- "internalType": "uint256",
423
- "name": "totalInflationTopupReceivedWei",
424
- "type": "uint256"
425
- },
426
- {
427
- "internalType": "uint256",
428
- "name": "totalInflationTopupWithdrawnWei",
429
- "type": "uint256"
430
- }
431
- ],
432
- "internalType": "struct RewardServices.RewardServicesState",
433
- "name": "rewardServices",
434
- "type": "tuple"
435
420
  }
436
421
  ],
437
- "internalType": "struct InflationAnnum.InflationAnnumState",
422
+ "internalType": "struct InflationTimeSlots.InflationTimeSlot",
438
423
  "name": "",
439
424
  "type": "tuple"
440
425
  }
@@ -444,96 +429,99 @@
444
429
  },
445
430
  {
446
431
  "inputs": [],
447
- "name": "getCurrentAnnum",
432
+ "name": "getCurrentTimeSlotId",
433
+ "outputs": [
434
+ {
435
+ "internalType": "uint256",
436
+ "name": "",
437
+ "type": "uint256"
438
+ }
439
+ ],
440
+ "stateMutability": "view",
441
+ "type": "function"
442
+ },
443
+ {
444
+ "inputs": [],
445
+ "name": "getNextExpectedTopupTs",
446
+ "outputs": [
447
+ {
448
+ "internalType": "uint256",
449
+ "name": "_nextTopupTs",
450
+ "type": "uint256"
451
+ }
452
+ ],
453
+ "stateMutability": "view",
454
+ "type": "function"
455
+ },
456
+ {
457
+ "inputs": [],
458
+ "name": "getRewardServices",
448
459
  "outputs": [
449
460
  {
450
461
  "components": [
462
+ {
463
+ "internalType": "contract IIInflationReceiver",
464
+ "name": "inflationReceiver",
465
+ "type": "address"
466
+ },
451
467
  {
452
468
  "internalType": "uint256",
453
- "name": "recognizedInflationWei",
469
+ "name": "authorizedInflationWei",
454
470
  "type": "uint256"
455
471
  },
456
472
  {
457
- "internalType": "uint16",
458
- "name": "daysInAnnum",
459
- "type": "uint16"
473
+ "internalType": "uint256",
474
+ "name": "lastDailyAuthorizedInflationWei",
475
+ "type": "uint256"
460
476
  },
461
477
  {
462
478
  "internalType": "uint256",
463
- "name": "startTimeStamp",
479
+ "name": "inflationTopupRequestedWei",
464
480
  "type": "uint256"
465
481
  },
466
482
  {
467
483
  "internalType": "uint256",
468
- "name": "endTimeStamp",
484
+ "name": "inflationTopupDistributedWei",
485
+ "type": "uint256"
486
+ }
487
+ ],
488
+ "internalType": "struct InflationRewardServices.RewardService[]",
489
+ "name": "",
490
+ "type": "tuple[]"
491
+ }
492
+ ],
493
+ "stateMutability": "view",
494
+ "type": "function"
495
+ },
496
+ {
497
+ "inputs": [
498
+ {
499
+ "internalType": "uint256",
500
+ "name": "_index",
501
+ "type": "uint256"
502
+ }
503
+ ],
504
+ "name": "getTimeSlot",
505
+ "outputs": [
506
+ {
507
+ "components": [
508
+ {
509
+ "internalType": "uint256",
510
+ "name": "recognizedInflationWei",
469
511
  "type": "uint256"
470
512
  },
471
513
  {
472
- "components": [
473
- {
474
- "components": [
475
- {
476
- "internalType": "contract IIInflationReceiver",
477
- "name": "inflationReceiver",
478
- "type": "address"
479
- },
480
- {
481
- "internalType": "uint256",
482
- "name": "authorizedInflationWei",
483
- "type": "uint256"
484
- },
485
- {
486
- "internalType": "uint256",
487
- "name": "lastDailyAuthorizedInflationWei",
488
- "type": "uint256"
489
- },
490
- {
491
- "internalType": "uint256",
492
- "name": "inflationTopupRequestedWei",
493
- "type": "uint256"
494
- },
495
- {
496
- "internalType": "uint256",
497
- "name": "inflationTopupReceivedWei",
498
- "type": "uint256"
499
- },
500
- {
501
- "internalType": "uint256",
502
- "name": "inflationTopupWithdrawnWei",
503
- "type": "uint256"
504
- }
505
- ],
506
- "internalType": "struct RewardService.RewardServiceState[]",
507
- "name": "rewardServices",
508
- "type": "tuple[]"
509
- },
510
- {
511
- "internalType": "uint256",
512
- "name": "totalAuthorizedInflationWei",
513
- "type": "uint256"
514
- },
515
- {
516
- "internalType": "uint256",
517
- "name": "totalInflationTopupRequestedWei",
518
- "type": "uint256"
519
- },
520
- {
521
- "internalType": "uint256",
522
- "name": "totalInflationTopupReceivedWei",
523
- "type": "uint256"
524
- },
525
- {
526
- "internalType": "uint256",
527
- "name": "totalInflationTopupWithdrawnWei",
528
- "type": "uint256"
529
- }
530
- ],
531
- "internalType": "struct RewardServices.RewardServicesState",
532
- "name": "rewardServices",
533
- "type": "tuple"
514
+ "internalType": "uint256",
515
+ "name": "startTimeStamp",
516
+ "type": "uint256"
517
+ },
518
+ {
519
+ "internalType": "uint256",
520
+ "name": "endTimeStamp",
521
+ "type": "uint256"
534
522
  }
535
523
  ],
536
- "internalType": "struct InflationAnnum.InflationAnnumState",
524
+ "internalType": "struct InflationTimeSlots.InflationTimeSlot",
537
525
  "name": "",
538
526
  "type": "tuple"
539
527
  }
@@ -574,7 +562,7 @@
574
562
  "type": "tuple"
575
563
  }
576
564
  ],
577
- "stateMutability": "nonpayable",
565
+ "stateMutability": "view",
578
566
  "type": "function"
579
567
  },
580
568
  {
@@ -593,28 +581,13 @@
593
581
  },
594
582
  {
595
583
  "internalType": "uint256",
596
- "name": "_totalInflationTopupReceivedWei",
597
- "type": "uint256"
598
- },
599
- {
600
- "internalType": "uint256",
601
- "name": "_totalInflationTopupWithdrawnWei",
584
+ "name": "_totalInflationTopupDistributedWei",
602
585
  "type": "uint256"
603
586
  },
604
587
  {
605
588
  "internalType": "uint256",
606
589
  "name": "_totalRecognizedInflationWei",
607
590
  "type": "uint256"
608
- },
609
- {
610
- "internalType": "uint256",
611
- "name": "_totalSelfDestructReceivedWei",
612
- "type": "uint256"
613
- },
614
- {
615
- "internalType": "uint256",
616
- "name": "_totalSelfDestructWithdrawnWei",
617
- "type": "uint256"
618
591
  }
619
592
  ],
620
593
  "stateMutability": "view",
@@ -635,10 +608,10 @@
635
608
  },
636
609
  {
637
610
  "inputs": [],
638
- "name": "inflationPercentageProvider",
611
+ "name": "governanceSettings",
639
612
  "outputs": [
640
613
  {
641
- "internalType": "contract IIInflationPercentageProvider",
614
+ "internalType": "contract IGovernanceSettings",
642
615
  "name": "",
643
616
  "type": "address"
644
617
  }
@@ -648,10 +621,10 @@
648
621
  },
649
622
  {
650
623
  "inputs": [],
651
- "name": "inflationSharingPercentageProvider",
624
+ "name": "inflationAllocation",
652
625
  "outputs": [
653
626
  {
654
- "internalType": "contract IIInflationSharingPercentageProvider",
627
+ "internalType": "contract IIInflationAllocation",
655
628
  "name": "",
656
629
  "type": "address"
657
630
  }
@@ -663,7 +636,7 @@
663
636
  "inputs": [
664
637
  {
665
638
  "internalType": "address",
666
- "name": "_governance",
639
+ "name": "_initialGovernance",
667
640
  "type": "address"
668
641
  }
669
642
  ],
@@ -686,26 +659,26 @@
686
659
  "type": "function"
687
660
  },
688
661
  {
689
- "inputs": [
662
+ "inputs": [],
663
+ "name": "preInflationCalculation",
664
+ "outputs": [
690
665
  {
691
- "internalType": "address",
692
- "name": "_governance",
666
+ "internalType": "contract IIPreInflationCalculation",
667
+ "name": "",
693
668
  "type": "address"
694
669
  }
695
670
  ],
696
- "name": "proposeGovernance",
697
- "outputs": [],
698
- "stateMutability": "nonpayable",
671
+ "stateMutability": "view",
699
672
  "type": "function"
700
673
  },
701
674
  {
702
675
  "inputs": [],
703
- "name": "proposedGovernance",
676
+ "name": "productionMode",
704
677
  "outputs": [
705
678
  {
706
- "internalType": "address",
679
+ "internalType": "bool",
707
680
  "name": "",
708
- "type": "address"
681
+ "type": "bool"
709
682
  }
710
683
  ],
711
684
  "stateMutability": "view",
@@ -747,25 +720,17 @@
747
720
  {
748
721
  "inputs": [
749
722
  {
750
- "internalType": "contract IIInflationPercentageProvider",
751
- "name": "_inflationPercentageProvider",
723
+ "internalType": "contract IIInflationV1",
724
+ "name": "_oldInflation",
752
725
  "type": "address"
753
- }
754
- ],
755
- "name": "setInflationPercentageProvider",
756
- "outputs": [],
757
- "stateMutability": "nonpayable",
758
- "type": "function"
759
- },
760
- {
761
- "inputs": [
726
+ },
762
727
  {
763
- "internalType": "contract IIInflationSharingPercentageProvider",
764
- "name": "_inflationSharingPercentageProvider",
765
- "type": "address"
728
+ "internalType": "uint256",
729
+ "name": "_noOfAnnums",
730
+ "type": "uint256"
766
731
  }
767
732
  ],
768
- "name": "setInflationSharingPercentageProvider",
733
+ "name": "setInitialData",
769
734
  "outputs": [],
770
735
  "stateMutability": "nonpayable",
771
736
  "type": "function"
@@ -773,12 +738,12 @@
773
738
  {
774
739
  "inputs": [
775
740
  {
776
- "internalType": "contract IISupply",
777
- "name": "_supply",
741
+ "internalType": "contract IIPreInflationCalculation",
742
+ "name": "_preInflationCalculation",
778
743
  "type": "address"
779
744
  }
780
745
  ],
781
- "name": "setSupply",
746
+ "name": "setPreInflationCalculation",
782
747
  "outputs": [],
783
748
  "stateMutability": "nonpayable",
784
749
  "type": "function"
@@ -834,25 +799,30 @@
834
799
  },
835
800
  {
836
801
  "inputs": [],
837
- "name": "totalSelfDestructReceivedWei",
838
- "outputs": [
802
+ "name": "switchToProductionMode",
803
+ "outputs": [],
804
+ "stateMutability": "nonpayable",
805
+ "type": "function"
806
+ },
807
+ {
808
+ "inputs": [
839
809
  {
840
- "internalType": "uint256",
810
+ "internalType": "bytes4",
841
811
  "name": "",
842
- "type": "uint256"
812
+ "type": "bytes4"
843
813
  }
844
814
  ],
845
- "stateMutability": "view",
846
- "type": "function"
847
- },
848
- {
849
- "inputs": [],
850
- "name": "totalSelfDestructWithdrawnWei",
815
+ "name": "timelockedCalls",
851
816
  "outputs": [
852
817
  {
853
818
  "internalType": "uint256",
854
- "name": "",
819
+ "name": "allowedAfterTimestamp",
855
820
  "type": "uint256"
821
+ },
822
+ {
823
+ "internalType": "bytes",
824
+ "name": "encodedCall",
825
+ "type": "bytes"
856
826
  }
857
827
  ],
858
828
  "stateMutability": "view",
@@ -861,19 +831,24 @@
861
831
  {
862
832
  "inputs": [
863
833
  {
864
- "internalType": "address",
865
- "name": "_governance",
866
- "type": "address"
834
+ "internalType": "bytes32[]",
835
+ "name": "_contractNameHashes",
836
+ "type": "bytes32[]"
837
+ },
838
+ {
839
+ "internalType": "address[]",
840
+ "name": "_contractAddresses",
841
+ "type": "address[]"
867
842
  }
868
843
  ],
869
- "name": "transferGovernance",
844
+ "name": "updateContractAddresses",
870
845
  "outputs": [],
871
846
  "stateMutability": "nonpayable",
872
847
  "type": "function"
873
848
  }
874
849
  ],
875
- "bytecode": "0x60c06040523480156200001157600080fd5b5060405162003396380380620033968339810160408190526200003491620002d0565b848481806001600160a01b0381161562000053576200005381620001ec565b506001600160a01b038116620000a3576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506001600160a01b038116620000f4576040805162461bcd60e51b8152602060048201526011602482015270666c617265206461656d6f6e207a65726f60781b604482015290519081900360640190fd5b60601b6001600160601b0319166080525060408051808201909152600c81526b06164647265737320697320360a41b602082015283906001600160a01b0382166200015d5760405162461bcd60e51b815260040162000154919062000343565b60405180910390fd5b5060408051808201909152600c81526b06164647265737320697320360a41b602082015283906001600160a01b038216620001ad5760405162461bcd60e51b815260040162000154919062000343565b5050600280546001600160a01b039586166001600160a01b03199182161790915560038054949095169316929092179092555060a05250620003b29050565b600154600160a01b900460ff16156200024c576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b600080600080600060a08688031215620002e8578081fd5b8551620002f58162000399565b6020870151909550620003088162000399565b60408701519094506200031b8162000399565b60608701519093506200032e8162000399565b80925050608086015190509295509295909350565b6000602080835283518082850152825b81811015620003715785810183015185820160400152820162000353565b81811115620003835783604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b0381168114620003af57600080fd5b50565b60805160601c60a051612fa4620003f2600039806108125280610e265250806107aa5280610aa55280610e02528061101952806112275250612fa46000f3fe6080604052600436106101815760003560e01c80639d6a890f116100d1578063c9d3dc871161008a578063e22fdece11610064578063e22fdece146103e8578063f4091864146103fd578063f64cee611461041d578063fb12efec1461043d57610181565b8063c9d3dc871461039e578063cf02a55b146103b3578063d38bfff4146103c857610181565b80639d6a890f1461030a578063a10775321461032a578063b8cca0cf1461033f578063c373a08e14610354578063c39049e414610374578063c611c2c51461039657610181565b80635d36b1901161013e5780636e61ab96116101185780636e61ab961461029857806372993615146102b857806375ff07b9146102cd57806384e10a90146102e257610181565b80635d36b1901461024c57806360f7ac97146102615780636d0e8c341461027657610181565b8063047fc9aa146101865780630edab99e146101b157806319fad18b146101c657806333ed77cc146101e85780634b13e8721461020a5780635aa6e67514610237575b600080fd5b34801561019257600080fd5b5061019b61045d565b6040516101a89190612b54565b60405180910390f35b3480156101bd57600080fd5b5061019b61046c565b3480156101d257600080fd5b506101e66101e1366004612978565b61047b565b005b3480156101f457600080fd5b506101fd61058c565b6040516101a89190612d8d565b34801561021657600080fd5b5061022a610225366004612978565b610592565b6040516101a89190612ce5565b34801561024357600080fd5b5061019b61066d565b34801561025857600080fd5b506101e661067c565b34801561026d57600080fd5b5061019b61073e565b34801561028257600080fd5b5061028b61074d565b6040516101a89190612b68565b3480156102a457600080fd5b506101e66102b3366004612a70565b610b6e565b3480156102c457600080fd5b506101fd610ced565b3480156102d957600080fd5b5061019b610cf3565b3480156102ee57600080fd5b506102f7610d02565b6040516101a89796959493929190612da4565b34801561031657600080fd5b506101e6610325366004612978565b610d26565b34801561033657600080fd5b5061019b610e00565b34801561034b57600080fd5b506101fd610e24565b34801561036057600080fd5b506101e661036f366004612978565b610e48565b34801561038057600080fd5b50610389610eed565b6040516101a89190612bf9565b6101e661100e565b3480156103aa57600080fd5b506101fd61114c565b3480156103bf57600080fd5b506101fd611152565b3480156103d457600080fd5b506101e66103e3366004612978565b611158565b3480156103f457600080fd5b5061028b61121a565b34801561040957600080fd5b506101e6610418366004612978565b611293565b34801561042957600080fd5b50610389610438366004612b16565b611388565b34801561044957600080fd5b506101e6610458366004612978565b6114aa565b6004546001600160a01b031681565b6002546001600160a01b031681565b60408051808201909152600c81526b06164647265737320697320360a41b602082015281906001600160a01b0382166104d05760405162461bcd60e51b81526004016104c79190612ba6565b60405180910390fd5b506000546001600160a01b03163314610522576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6004546040517f9a9b245c8db671c90d6db95f7ff0c18c15378a1d55ee4aea21759be8ad27d30e91610561916001600160a01b03909116908590612b8c565b60405180910390a150600480546001600160a01b0319166001600160a01b0392909216919091179055565b60105481565b61059a6128ef565b60408051808201909152600c81526b06164647265737320697320360a41b602082015282906001600160a01b0382166105e65760405162461bcd60e51b81526004016104c79190612ba6565b506001600160a01b0383166000908152600d60205260409020600281015460ff1661062d57805460ff19908116825560786001808401919091556002830180549092161790555b8054839060ff16600181111561063f57fe5b9081600181111561064c57fe5b905250600181015460208401526002015460ff161515604083015250919050565b6000546001600160a01b031681565b6001546001600160a01b031633146106cb576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd0818db185a5b585a5b9d609a1b604482015290519081900360640190fd5b600054600154604080516001600160a01b03938416815292909116602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001546001600160a01b031681565b60045460408051808201909152600c81526b06164647265737320697320360a41b60208201526000916001600160a01b0316908161079e5760405162461bcd60e51b81526004016104c79190612ba6565b50336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610810576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000004210156108415760019150610b6a565b60105461084d57426010555b6108576005611593565b6108695761086442611597565b610898565b60006108756005611886565b60030154905080421115610896576108966108918260016118fb565b611597565b505b600c5442906108aa90620151806118fb565b1015610b655742600c81905550600061095242600360009054906101000a90046001600160a01b03166001600160a01b031663c853b8d46040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090d57600080fd5b505af1158015610921573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109499190810190612994565b6005919061195e565b90507fe69ea09c0c2d88b5a023a23e65e8ffeb65667d6b7b4076cbee9ba25f54502355816040516109839190612d8d565b60405180910390a160048054604051630512107160e51b81526001600160a01b039091169163a2420e20916109ba91859101612d8d565b600060405180830381600087803b1580156109d457600080fd5b505af19250505080156109e5575060015b610a48576109f1612dfe565b806109fc5750610a16565b8060405162461bcd60e51b81526004016104c79190612ba6565b6040518060600160405280603c8152602001612f33603c913960405162461bcd60e51b81526004016104c79190612ba6565b6000610a556005306119c0565b90507f1f0936062e6ce780790714a1ec5787d290675660a8566059ac9d6cfb2a336eec81604051610a869190612d8d565b60405180910390a160405163074ef3eb60e51b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e9de7d6090610ada908490600401612d8d565b600060405180830381600087803b158015610af457600080fd5b505af1925050508015610b05575060015b610b6257610b11612dfe565b806109fc5750604080518082018252601d81527f756e6b6e6f776e206572726f722e20726571756573744d696e74696e670000006020820152905162461bcd60e51b81526104c79190600401612ba6565b50505b600191505b5090565b60408051808201909152600c81526b06164647265737320697320360a41b602082015283906001600160a01b038216610bba5760405162461bcd60e51b81526004016104c79190612ba6565b506000546001600160a01b03163314610c0c576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6000836001811115610c1a57fe5b1415610c6357604080518082019091526009815268746f707570206c6f7760b81b602082015260648311610c615760405162461bcd60e51b81526004016104c79190612ba6565b505b6001600160a01b0384166000908152600d6020526040902080548490829060ff191660018381811115610c9257fe5b0217905550600180820184905560028201805460ff191690911790556040517fcf085312d79a75faa5f1b9f6bec58a64813338f5e5e5759573cab22c6da2d25b90610cde908390612d14565b60405180910390a15050505050565b600e5481565b6003546001600160a01b031681565b600854600954600a54600b54600754600e54600f5495969495939492939192909190565b600154600160a01b900460ff1615610d7c576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03163314610e99576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f95fb40be3a947982072902a887b521248d1d8931a39eb38f84f4d6fd758b699181900360200190a150565b610ef5612911565b610eff6005611886565b6040805160a0808201835283548252600184015461ffff1660208084019190915260028501548385015260038501546060840152835160048601805460c0938102830184019096529281018581529395946080870194919392849291849160009085015b82821015610fd45760008481526020908190206040805160c0810182526006860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460a08301529083529092019101610f63565b5050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250508152505090505b90565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461107f576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b600061108b6005611a08565b90506000611097611a71565b905060006110a54783611aa4565b905080156110be57600e546110ba90826118fb565b600e555b7f992ba5c7b7d6602101783b4d28d0b93011fb883039e68c729b933bf71167862783826040516110ef929190612d96565b60405180910390a150505047611103611a71565b146040518060400160405280600e81526020016d6f7574206f662062616c616e636560901b815250906111495760405162461bcd60e51b81526004016104c79190612ba6565b50565b600c5481565b600f5481565b6000546001600160a01b031633146111a9576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461128d576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b50600090565b60408051808201909152600c81526b06164647265737320697320360a41b602082015281906001600160a01b0382166112df5760405162461bcd60e51b81526004016104c79190612ba6565b506000546001600160a01b03163314611331576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0384161790556040517f0af082a7803e8aab87aaf1c3d3579edf164f730507c244637104bcbf68795a059061137c908490612b54565b60405180910390a15050565b611390612911565b61139b600583611b01565b6040805160a0808201835283548252600184015461ffff1660208084019190915260028501548385015260038501546060840152835160048601805460c0938102830184019096529281018581529395946080870194919392849291849160009085015b828210156114705760008481526020908190206040805160c0810182526006860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460a083015290835290920191016113ff565b5050509082525060018201546020820152600282015460408201526003820154606082015260049091015460809091015290525092915050565b60408051808201909152600c81526b06164647265737320697320360a41b602082015281906001600160a01b0382166114f65760405162461bcd60e51b81526004016104c79190612ba6565b506000546001600160a01b03163314611548576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0384161790556040517f678eecd70ad0d081346cfe3b80c1ea3a8face065f7d1b3f7342f50d202b7893e9061137c908490612b54565b5490565b6000600460009054906101000a90046001600160a01b03166001600160a01b0316631b73b4cb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161f9190612b2e565b9050600260009054906101000a90046001600160a01b03166001600160a01b031663981940296040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561167157600080fd5b505af19250505080156116a1575060408051601f3d908101601f1916820190925261169e91810190612b2e565b60015b6116e5576116ad612dfe565b806109fc5750604051806060016040528060268152602001612eec6026913960405162461bcd60e51b81526004016104c79190612ba6565b6116f26005848484611b73565b5060006116ff6005611886565b6040805160a0808201835283548252600184015461ffff1660208084019190915260028501548385015260038501546060840152835160048601805460c0938102830184019096529281018581529395946080870194919392849291849160009085015b828210156117d45760008481526020908190206040805160c0810182526006860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460a08301529083529092019101611763565b5050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250508152505090507ffa3b6f810dd40012f117b5a482760aa3252aa7bc7f7d78004bace4223dec497981602001518260400151836060015185856000015186608001516020015187608001516040015188608001516060015189608001516080015160405161187999989796959493929190612d48565b60405180910390a1505050565b60008061189283611593565b11604051806040016040528060088152602001676e6f20616e6e756d60c01b815250906118d25760405162461bcd60e51b81526004016104c79190612ba6565b50816000018260010154815481106118e657fe5b90600052602060002090600902019050919050565b600082820183811015611955576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60008061196a85611886565b60028601546003870154919250611992916119858488611c33565b6004850192919087611c52565b60038601549092506119a490836118fb565b60038601819055600286015410156119b857fe5b509392505050565b6000806119cc84611886565b90506119db6004820184611ea3565b60048501549092506119ed90836118fb565b6004850181905560038501541015611a0157fe5b5092915050565b600080611a1483611886565b9050611a2281600401611fc7565b6005840154909250611a3490836118fb565b6005840181905560048401541015611a4857fe5b6006830154611a5790836118fb565b6006840181905560058401541015611a6b57fe5b50919050565b600f54600e54600b54600a54600093611a9f939092611a9992611a9391611aa4565b906118fb565b90611aa4565b905090565b600082821115611afb576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000611b0c83611593565b8210604051806040016040528060088152602001676e6f20616e6e756d60c01b81525090611b4d5760405162461bcd60e51b81526004016104c79190612ba6565b50826000018281548110611b5d57fe5b9060005260206000209060090201905092915050565b6000611b7e85611593565b1115611bd557611b8d84611886565b60030154831160405180604001604052806009815260200168746f6f206561726c7960b81b81525090611bd35760405162461bcd60e51b81526004016104c79190612ba6565b505b8354600181018555600085815260209020600990910201611bf881858585612171565b80546002860154611c08916118fb565b6002860155845460011015611c2c57600185810154611c26916118fb565b60018601555b5050505050565b60008260030154821115611c4357fe5b6119556001611a9385856121be565b6000815160001415611c6657506000611e9a565b6000611c7c84611c768888611aa4565b906121ea565b6001880154909250829150611c9190826118fb565b600188015561271060005b8451811015611e96576000611cd3868381518110611cb657fe5b60200260200101516020015184866122519092919063ffffffff16565b9050611cdf8482611aa4565b9350611d0b868381518110611cf057fe5b60200260200101516020015184611aa490919063ffffffff16565b9250600080611d318c898681518110611d2057fe5b602002602001015160000151612353565b915091508115611d755760008c6000018281548110611d4c57fe5b90600052602060002090600602019050611d6f84826123b690919063ffffffff16565b50611dc6565b8b54600181018d5560008d815260209020895160069092020190611dba908a9087908110611d9f57fe5b602002602001015160000151826123d290919063ffffffff16565b611dc481856123b6565b505b878481518110611dd257fe5b6020026020010151600001516001600160a01b031663e2739563846040518263ffffffff1660e01b8152600401611e099190612d8d565b600060405180830381600087803b158015611e2357600080fd5b505af1158015611e37573d6000803e3d6000fd5b505050507fea9b87b57d7b678dd3c9da933ff547ad63395e04ee46cd57894c7b53618dc39a888581518110611e6857fe5b60200260200101516000015184604051611e83929190612b73565b60405180910390a1505050600101611c9c565b5050505b95945050505050565b6000805b8354811015611fa3576000836001600160a01b0316634b13e872866000018481548110611ed057fe5b60009182526020909120600690910201546040516001600160e01b031960e084901b168152611f0b916001600160a01b031690600401612b54565b606060405180830381600087803b158015611f2557600080fd5b505af1158015611f39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5d9190612ab0565b9050611f98611f9182876000018581548110611f7557fe5b906000526020600020906006020161241390919063ffffffff16565b84906118fb565b925050600101611ea7565b506002830154611fb390826118fb565b600284018190556001840154101561195857fe5b6000805b8254811015611a6b576000611ffb846000018381548110611fe857fe5b9060005260206000209060060201612561565b905061202c8185600001848154811061201057fe5b906000526020600020906006020161257e90919063ffffffff16565b600384015461203b90826118fb565b6003850155835484908390811061204e57fe5b60009182526020822060069091020154604080516306201f1d60e01b815290516001600160a01b03909216926306201f1d928592600480820193929182900301818588803b15801561209f57600080fd5b505af11580156120b3573d6000803e3d6000fd5b50505050506120e7818560000184815481106120cb57fe5b906000526020600020906006020161259990919063ffffffff16565b60048401546120f690826118fb565b600485015561210583826118fb565b92507f4839bc860ac633cfbce1fe18dc3c135733eca7b2dc8ed40e6e6b713a431bcf4484600001838154811061213757fe5b6000918252602090912060069091020154604051612160916001600160a01b0316908490612b73565b60405180910390a150600101611fcb565b6002840183905561218282826125b4565b845561218d836125c3565b6003850181905561219f9084906125da565b600194909401805461ffff191661ffff90951694909417909355505050565b6003820154600090808311156121d8576000915050611958565b6121e28382612605565b915050611958565b6000808211612240576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161224957fe5b049392505050565b600080821161229a576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836122a75750600061234c565b838302838582816122b457fe5b0414156122cd578281816122c457fe5b0491505061234c565b60008386816122d857fe5b04905060008487816122e657fe5b06905060008587816122f457fe5b049050600086888161230257fe5b06905061234461231688611c768685612620565b611a936123238686612620565b611a936123308987612620565b611a938d61233e8c8b612620565b90612620565b955050505050505b9392505050565b600080805b84548110156123ae57836001600160a01b031685600001828154811061237a57fe5b60009182526020909120600690910201546001600160a01b031614156123a657809150600192506123ae565b600101612358565b509250929050565b60018201546123c590826118fb565b6001830155600290910155565b81546001600160a01b0319166001600160a01b0391909116178155600060018201819055600282018190556003820181905560048201819055600590910155565b81546000906001600160a01b031631818351600181111561243057fe5b14156124cb576020830151600285015460009161244f91906064612251565b9050600082821115612468576124658284611aa4565b90505b600061247387612561565b9050818111156124865760009450612493565b6124908282611aa4565b94505b60006124b48860040154611a99848b60010154611aa490919063ffffffff16565b9050808611156124c2578095505b50505050612500565b6001835160018111156124da57fe5b14156124fa57600384015460018501546124f391611aa4565b9150612500565b60009150fe5b600384015461250f90836118fb565b600385015583546040517f9145b1e2df1630c4e7b11419b36afb9de07a4dc780726dfa970f265b1d627ad791612552916001600160a01b03909116908590612b73565b60405180910390a15092915050565b600061195882600401548360030154611aa490919063ffffffff16565b600482015461258d90826118fb565b82600401819055505050565b60058201546125a890826118fb565b82600501819055505050565b60006119558383612710612251565b600061195860016125d48482612679565b906126df565b6000806125f26125eb8460016118fb565b8590612605565b90506125fd816126ef565b949350505050565b60008183111561261457600080fd5b62015180838303612249565b60008261262f57506000611958565b8282028284828161263c57fe5b04146119555760405162461bcd60e51b8152600401808060200182810382526021815260200180612f126021913960400191505060405180910390fd5b600080808061268c620151808704612732565b91870194509250905060006126a184846127c8565b9050808211156126af578091505b620151808706620151806126c486868661284e565b02019450868510156126d557600080fd5b5050505092915050565b8082038281111561195857600080fd5b6000620100008210610b6a5760405162461bcd60e51b8152600401808060200182810382526026815260200180612ec66026913960400191505060405180910390fd5b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f846050028161278957fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806127d95750816003145b806127e45750816005145b806127ef5750816007145b806127fa5750816008145b80612805575081600a145b80612810575081600c145b1561281d5750601f611958565b8160021461282d5750601e611958565b612836836128ca565b61284157601c612844565b601d5b60ff169392505050565b60006107b284101561285f57600080fd5b838383600062253d8c600460036064611324600c600d19890105890101050205600c80600d19870105600c02600287030361016f028161289b57fe5b0560046105b5600c600d1989010589016112c0010205617d4b8603010103039050809450505050509392505050565b6000600482061580156128df57506064820615155b8061195857505061019090061590565b6040805160608101909152806000815260006020820181905260409091015290565b6040518060a0016040528060008152602001600061ffff1681526020016000815260200160008152602001612944612949565b905290565b6040518060a0016040528060608152602001600081526020016000815260200160008152602001600081525090565b600060208284031215612989578081fd5b813561195581612ea3565b600060208083850312156129a6578182fd5b825167ffffffffffffffff808211156129bd578384fd5b818501915085601f8301126129d0578384fd5b8151818111156129dc57fe5b6129e98485830201612dd4565b818152848101908486016040808502870188018b1015612a07578889fd5b8896505b84871015612a615780828c031215612a21578889fd5b80518181018181108882111715612a3457fe5b82528251612a4181612ea3565b815282890151898201528452600196909601959287019290810190612a0b565b50909998505050505050505050565b600080600060608486031215612a84578182fd5b8335612a8f81612ea3565b92506020840135612a9f81612eb8565b929592945050506040919091013590565b600060608284031215612ac1578081fd5b6040516060810181811067ffffffffffffffff82111715612ade57fe5b6040528251612aec81612eb8565b81526020838101519082015260408301518015158114612b0a578283fd5b60408201529392505050565b600060208284031215612b27578081fd5b5035919050565b600060208284031215612b3f578081fd5b5051919050565b60028110612b5057fe5b9052565b6001600160a01b0391909116815260200190565b901515815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392831681529116602082015260400190565b6000602080835283518082850152825b81811015612bd257858101830151858201604001528201612bb6565b81811115612be35783604083870101525b50601f01601f1916929092016040019392505050565b6000602080835260c084518285015281850151604061ffff821681870152808701519150606082818801528088015192506080838189015280890151935060a080818a01526101608901855182888c01528181518084526101808d0191508a830193508b92505b80831015612cb257835180516001600160a01b031683528b8101518c84015288810151898401528781015188840152868101518784015285015185830152928a01926001929092019190890190612c60565b509887015160e08c0152505050918301516101008801528201516101208701520151610140909401939093529392505050565b6000606082019050612cf8828451612b46565b6020830151602083015260408301511515604083015292915050565b6000606082019050612d2a8260ff855416612b46565b6001830154602083015260029092015460ff16151560409091015290565b61ffff999099168952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b90815260200190565b918252602082015260400190565b968752602087019590955260408601939093526060850191909152608084015260a083015260c082015260e00190565b60405181810167ffffffffffffffff81118282101715612df057fe5b604052919050565b60e01c90565b600060443d1015612e0e5761100b565b600481823e6308c379a0612e228251612df8565b14612e2c5761100b565b6040513d600319016004823e80513d67ffffffffffffffff8160248401118184111715612e5c575050505061100b565b82840192508251915080821115612e76575050505061100b565b503d83016020828401011115612e8e5750505061100b565b601f01601f1916810160200160405291505090565b6001600160a01b038116811461114957600080fd5b6002811061114957600080fdfe53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473756e6b6e6f776e206572726f722e20676574416e6e75616c50657263656e7461676542697073536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77756e6b6e6f776e206572726f722e20757064617465417574686f72697a6564496e666c6174696f6e416e6443697263756c6174696e67537570706c79a2646970667358221220d43aadb9ec38d32dfd107f3fc18505be7548785b8913e065ac03fe8874315e0b64736f6c63430007060033",
876
- "deployedBytecode": "0x6080604052600436106101815760003560e01c80639d6a890f116100d1578063c9d3dc871161008a578063e22fdece11610064578063e22fdece146103e8578063f4091864146103fd578063f64cee611461041d578063fb12efec1461043d57610181565b8063c9d3dc871461039e578063cf02a55b146103b3578063d38bfff4146103c857610181565b80639d6a890f1461030a578063a10775321461032a578063b8cca0cf1461033f578063c373a08e14610354578063c39049e414610374578063c611c2c51461039657610181565b80635d36b1901161013e5780636e61ab96116101185780636e61ab961461029857806372993615146102b857806375ff07b9146102cd57806384e10a90146102e257610181565b80635d36b1901461024c57806360f7ac97146102615780636d0e8c341461027657610181565b8063047fc9aa146101865780630edab99e146101b157806319fad18b146101c657806333ed77cc146101e85780634b13e8721461020a5780635aa6e67514610237575b600080fd5b34801561019257600080fd5b5061019b61045d565b6040516101a89190612b54565b60405180910390f35b3480156101bd57600080fd5b5061019b61046c565b3480156101d257600080fd5b506101e66101e1366004612978565b61047b565b005b3480156101f457600080fd5b506101fd61058c565b6040516101a89190612d8d565b34801561021657600080fd5b5061022a610225366004612978565b610592565b6040516101a89190612ce5565b34801561024357600080fd5b5061019b61066d565b34801561025857600080fd5b506101e661067c565b34801561026d57600080fd5b5061019b61073e565b34801561028257600080fd5b5061028b61074d565b6040516101a89190612b68565b3480156102a457600080fd5b506101e66102b3366004612a70565b610b6e565b3480156102c457600080fd5b506101fd610ced565b3480156102d957600080fd5b5061019b610cf3565b3480156102ee57600080fd5b506102f7610d02565b6040516101a89796959493929190612da4565b34801561031657600080fd5b506101e6610325366004612978565b610d26565b34801561033657600080fd5b5061019b610e00565b34801561034b57600080fd5b506101fd610e24565b34801561036057600080fd5b506101e661036f366004612978565b610e48565b34801561038057600080fd5b50610389610eed565b6040516101a89190612bf9565b6101e661100e565b3480156103aa57600080fd5b506101fd61114c565b3480156103bf57600080fd5b506101fd611152565b3480156103d457600080fd5b506101e66103e3366004612978565b611158565b3480156103f457600080fd5b5061028b61121a565b34801561040957600080fd5b506101e6610418366004612978565b611293565b34801561042957600080fd5b50610389610438366004612b16565b611388565b34801561044957600080fd5b506101e6610458366004612978565b6114aa565b6004546001600160a01b031681565b6002546001600160a01b031681565b60408051808201909152600c81526b06164647265737320697320360a41b602082015281906001600160a01b0382166104d05760405162461bcd60e51b81526004016104c79190612ba6565b60405180910390fd5b506000546001600160a01b03163314610522576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6004546040517f9a9b245c8db671c90d6db95f7ff0c18c15378a1d55ee4aea21759be8ad27d30e91610561916001600160a01b03909116908590612b8c565b60405180910390a150600480546001600160a01b0319166001600160a01b0392909216919091179055565b60105481565b61059a6128ef565b60408051808201909152600c81526b06164647265737320697320360a41b602082015282906001600160a01b0382166105e65760405162461bcd60e51b81526004016104c79190612ba6565b506001600160a01b0383166000908152600d60205260409020600281015460ff1661062d57805460ff19908116825560786001808401919091556002830180549092161790555b8054839060ff16600181111561063f57fe5b9081600181111561064c57fe5b905250600181015460208401526002015460ff161515604083015250919050565b6000546001600160a01b031681565b6001546001600160a01b031633146106cb576040805162461bcd60e51b815260206004820152600d60248201526c1b9bdd0818db185a5b585a5b9d609a1b604482015290519081900360640190fd5b600054600154604080516001600160a01b03938416815292909116602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a160018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b6001546001600160a01b031681565b60045460408051808201909152600c81526b06164647265737320697320360a41b60208201526000916001600160a01b0316908161079e5760405162461bcd60e51b81526004016104c79190612ba6565b50336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610810576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b7f00000000000000000000000000000000000000000000000000000000000000004210156108415760019150610b6a565b60105461084d57426010555b6108576005611593565b6108695761086442611597565b610898565b60006108756005611886565b60030154905080421115610896576108966108918260016118fb565b611597565b505b600c5442906108aa90620151806118fb565b1015610b655742600c81905550600061095242600360009054906101000a90046001600160a01b03166001600160a01b031663c853b8d46040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561090d57600080fd5b505af1158015610921573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109499190810190612994565b6005919061195e565b90507fe69ea09c0c2d88b5a023a23e65e8ffeb65667d6b7b4076cbee9ba25f54502355816040516109839190612d8d565b60405180910390a160048054604051630512107160e51b81526001600160a01b039091169163a2420e20916109ba91859101612d8d565b600060405180830381600087803b1580156109d457600080fd5b505af19250505080156109e5575060015b610a48576109f1612dfe565b806109fc5750610a16565b8060405162461bcd60e51b81526004016104c79190612ba6565b6040518060600160405280603c8152602001612f33603c913960405162461bcd60e51b81526004016104c79190612ba6565b6000610a556005306119c0565b90507f1f0936062e6ce780790714a1ec5787d290675660a8566059ac9d6cfb2a336eec81604051610a869190612d8d565b60405180910390a160405163074ef3eb60e51b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e9de7d6090610ada908490600401612d8d565b600060405180830381600087803b158015610af457600080fd5b505af1925050508015610b05575060015b610b6257610b11612dfe565b806109fc5750604080518082018252601d81527f756e6b6e6f776e206572726f722e20726571756573744d696e74696e670000006020820152905162461bcd60e51b81526104c79190600401612ba6565b50505b600191505b5090565b60408051808201909152600c81526b06164647265737320697320360a41b602082015283906001600160a01b038216610bba5760405162461bcd60e51b81526004016104c79190612ba6565b506000546001600160a01b03163314610c0c576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b6000836001811115610c1a57fe5b1415610c6357604080518082019091526009815268746f707570206c6f7760b81b602082015260648311610c615760405162461bcd60e51b81526004016104c79190612ba6565b505b6001600160a01b0384166000908152600d6020526040902080548490829060ff191660018381811115610c9257fe5b0217905550600180820184905560028201805460ff191690911790556040517fcf085312d79a75faa5f1b9f6bec58a64813338f5e5e5759573cab22c6da2d25b90610cde908390612d14565b60405180910390a15050505050565b600e5481565b6003546001600160a01b031681565b600854600954600a54600b54600754600e54600f5495969495939492939192909190565b600154600160a01b900460ff1615610d7c576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b6001805460ff60a01b1916600160a01b179055600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000546001600160a01b03163314610e99576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600180546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f1f95fb40be3a947982072902a887b521248d1d8931a39eb38f84f4d6fd758b699181900360200190a150565b610ef5612911565b610eff6005611886565b6040805160a0808201835283548252600184015461ffff1660208084019190915260028501548385015260038501546060840152835160048601805460c0938102830184019096529281018581529395946080870194919392849291849160009085015b82821015610fd45760008481526020908190206040805160c0810182526006860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460a08301529083529092019101610f63565b5050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250508152505090505b90565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461107f576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b600061108b6005611a08565b90506000611097611a71565b905060006110a54783611aa4565b905080156110be57600e546110ba90826118fb565b600e555b7f992ba5c7b7d6602101783b4d28d0b93011fb883039e68c729b933bf71167862783826040516110ef929190612d96565b60405180910390a150505047611103611a71565b146040518060400160405280600e81526020016d6f7574206f662062616c616e636560901b815250906111495760405162461bcd60e51b81526004016104c79190612ba6565b50565b600c5481565b600f5481565b6000546001600160a01b031633146111a9576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600054604080516001600160a01b039283168152918316602083015280517f434a2db650703b36c824e745330d6397cdaa9ee2cc891a4938ae853e1c50b68d9281900390910190a1600080546001600160a01b039092166001600160a01b0319928316179055600180549091169055565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461128d576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b50600090565b60408051808201909152600c81526b06164647265737320697320360a41b602082015281906001600160a01b0382166112df5760405162461bcd60e51b81526004016104c79190612ba6565b506000546001600160a01b03163314611331576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0384161790556040517f0af082a7803e8aab87aaf1c3d3579edf164f730507c244637104bcbf68795a059061137c908490612b54565b60405180910390a15050565b611390612911565b61139b600583611b01565b6040805160a0808201835283548252600184015461ffff1660208084019190915260028501548385015260038501546060840152835160048601805460c0938102830184019096529281018581529395946080870194919392849291849160009085015b828210156114705760008481526020908190206040805160c0810182526006860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460a083015290835290920191016113ff565b5050509082525060018201546020820152600282015460408201526003820154606082015260049091015460809091015290525092915050565b60408051808201909152600c81526b06164647265737320697320360a41b602082015281906001600160a01b0382166114f65760405162461bcd60e51b81526004016104c79190612ba6565b506000546001600160a01b03163314611548576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0384161790556040517f678eecd70ad0d081346cfe3b80c1ea3a8face065f7d1b3f7342f50d202b7893e9061137c908490612b54565b5490565b6000600460009054906101000a90046001600160a01b03166001600160a01b0316631b73b4cb6040518163ffffffff1660e01b815260040160206040518083038186803b1580156115e757600080fd5b505afa1580156115fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161f9190612b2e565b9050600260009054906101000a90046001600160a01b03166001600160a01b031663981940296040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561167157600080fd5b505af19250505080156116a1575060408051601f3d908101601f1916820190925261169e91810190612b2e565b60015b6116e5576116ad612dfe565b806109fc5750604051806060016040528060268152602001612eec6026913960405162461bcd60e51b81526004016104c79190612ba6565b6116f26005848484611b73565b5060006116ff6005611886565b6040805160a0808201835283548252600184015461ffff1660208084019190915260028501548385015260038501546060840152835160048601805460c0938102830184019096529281018581529395946080870194919392849291849160009085015b828210156117d45760008481526020908190206040805160c0810182526006860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460a08301529083529092019101611763565b5050505081526020016001820154815260200160028201548152602001600382015481526020016004820154815250508152505090507ffa3b6f810dd40012f117b5a482760aa3252aa7bc7f7d78004bace4223dec497981602001518260400151836060015185856000015186608001516020015187608001516040015188608001516060015189608001516080015160405161187999989796959493929190612d48565b60405180910390a1505050565b60008061189283611593565b11604051806040016040528060088152602001676e6f20616e6e756d60c01b815250906118d25760405162461bcd60e51b81526004016104c79190612ba6565b50816000018260010154815481106118e657fe5b90600052602060002090600902019050919050565b600082820183811015611955576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b60008061196a85611886565b60028601546003870154919250611992916119858488611c33565b6004850192919087611c52565b60038601549092506119a490836118fb565b60038601819055600286015410156119b857fe5b509392505050565b6000806119cc84611886565b90506119db6004820184611ea3565b60048501549092506119ed90836118fb565b6004850181905560038501541015611a0157fe5b5092915050565b600080611a1483611886565b9050611a2281600401611fc7565b6005840154909250611a3490836118fb565b6005840181905560048401541015611a4857fe5b6006830154611a5790836118fb565b6006840181905560058401541015611a6b57fe5b50919050565b600f54600e54600b54600a54600093611a9f939092611a9992611a9391611aa4565b906118fb565b90611aa4565b905090565b600082821115611afb576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000611b0c83611593565b8210604051806040016040528060088152602001676e6f20616e6e756d60c01b81525090611b4d5760405162461bcd60e51b81526004016104c79190612ba6565b50826000018281548110611b5d57fe5b9060005260206000209060090201905092915050565b6000611b7e85611593565b1115611bd557611b8d84611886565b60030154831160405180604001604052806009815260200168746f6f206561726c7960b81b81525090611bd35760405162461bcd60e51b81526004016104c79190612ba6565b505b8354600181018555600085815260209020600990910201611bf881858585612171565b80546002860154611c08916118fb565b6002860155845460011015611c2c57600185810154611c26916118fb565b60018601555b5050505050565b60008260030154821115611c4357fe5b6119556001611a9385856121be565b6000815160001415611c6657506000611e9a565b6000611c7c84611c768888611aa4565b906121ea565b6001880154909250829150611c9190826118fb565b600188015561271060005b8451811015611e96576000611cd3868381518110611cb657fe5b60200260200101516020015184866122519092919063ffffffff16565b9050611cdf8482611aa4565b9350611d0b868381518110611cf057fe5b60200260200101516020015184611aa490919063ffffffff16565b9250600080611d318c898681518110611d2057fe5b602002602001015160000151612353565b915091508115611d755760008c6000018281548110611d4c57fe5b90600052602060002090600602019050611d6f84826123b690919063ffffffff16565b50611dc6565b8b54600181018d5560008d815260209020895160069092020190611dba908a9087908110611d9f57fe5b602002602001015160000151826123d290919063ffffffff16565b611dc481856123b6565b505b878481518110611dd257fe5b6020026020010151600001516001600160a01b031663e2739563846040518263ffffffff1660e01b8152600401611e099190612d8d565b600060405180830381600087803b158015611e2357600080fd5b505af1158015611e37573d6000803e3d6000fd5b505050507fea9b87b57d7b678dd3c9da933ff547ad63395e04ee46cd57894c7b53618dc39a888581518110611e6857fe5b60200260200101516000015184604051611e83929190612b73565b60405180910390a1505050600101611c9c565b5050505b95945050505050565b6000805b8354811015611fa3576000836001600160a01b0316634b13e872866000018481548110611ed057fe5b60009182526020909120600690910201546040516001600160e01b031960e084901b168152611f0b916001600160a01b031690600401612b54565b606060405180830381600087803b158015611f2557600080fd5b505af1158015611f39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f5d9190612ab0565b9050611f98611f9182876000018581548110611f7557fe5b906000526020600020906006020161241390919063ffffffff16565b84906118fb565b925050600101611ea7565b506002830154611fb390826118fb565b600284018190556001840154101561195857fe5b6000805b8254811015611a6b576000611ffb846000018381548110611fe857fe5b9060005260206000209060060201612561565b905061202c8185600001848154811061201057fe5b906000526020600020906006020161257e90919063ffffffff16565b600384015461203b90826118fb565b6003850155835484908390811061204e57fe5b60009182526020822060069091020154604080516306201f1d60e01b815290516001600160a01b03909216926306201f1d928592600480820193929182900301818588803b15801561209f57600080fd5b505af11580156120b3573d6000803e3d6000fd5b50505050506120e7818560000184815481106120cb57fe5b906000526020600020906006020161259990919063ffffffff16565b60048401546120f690826118fb565b600485015561210583826118fb565b92507f4839bc860ac633cfbce1fe18dc3c135733eca7b2dc8ed40e6e6b713a431bcf4484600001838154811061213757fe5b6000918252602090912060069091020154604051612160916001600160a01b0316908490612b73565b60405180910390a150600101611fcb565b6002840183905561218282826125b4565b845561218d836125c3565b6003850181905561219f9084906125da565b600194909401805461ffff191661ffff90951694909417909355505050565b6003820154600090808311156121d8576000915050611958565b6121e28382612605565b915050611958565b6000808211612240576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b81838161224957fe5b049392505050565b600080821161229a576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b836122a75750600061234c565b838302838582816122b457fe5b0414156122cd578281816122c457fe5b0491505061234c565b60008386816122d857fe5b04905060008487816122e657fe5b06905060008587816122f457fe5b049050600086888161230257fe5b06905061234461231688611c768685612620565b611a936123238686612620565b611a936123308987612620565b611a938d61233e8c8b612620565b90612620565b955050505050505b9392505050565b600080805b84548110156123ae57836001600160a01b031685600001828154811061237a57fe5b60009182526020909120600690910201546001600160a01b031614156123a657809150600192506123ae565b600101612358565b509250929050565b60018201546123c590826118fb565b6001830155600290910155565b81546001600160a01b0319166001600160a01b0391909116178155600060018201819055600282018190556003820181905560048201819055600590910155565b81546000906001600160a01b031631818351600181111561243057fe5b14156124cb576020830151600285015460009161244f91906064612251565b9050600082821115612468576124658284611aa4565b90505b600061247387612561565b9050818111156124865760009450612493565b6124908282611aa4565b94505b60006124b48860040154611a99848b60010154611aa490919063ffffffff16565b9050808611156124c2578095505b50505050612500565b6001835160018111156124da57fe5b14156124fa57600384015460018501546124f391611aa4565b9150612500565b60009150fe5b600384015461250f90836118fb565b600385015583546040517f9145b1e2df1630c4e7b11419b36afb9de07a4dc780726dfa970f265b1d627ad791612552916001600160a01b03909116908590612b73565b60405180910390a15092915050565b600061195882600401548360030154611aa490919063ffffffff16565b600482015461258d90826118fb565b82600401819055505050565b60058201546125a890826118fb565b82600501819055505050565b60006119558383612710612251565b600061195860016125d48482612679565b906126df565b6000806125f26125eb8460016118fb565b8590612605565b90506125fd816126ef565b949350505050565b60008183111561261457600080fd5b62015180838303612249565b60008261262f57506000611958565b8282028284828161263c57fe5b04146119555760405162461bcd60e51b8152600401808060200182810382526021815260200180612f126021913960400191505060405180910390fd5b600080808061268c620151808704612732565b91870194509250905060006126a184846127c8565b9050808211156126af578091505b620151808706620151806126c486868661284e565b02019450868510156126d557600080fd5b5050505092915050565b8082038281111561195857600080fd5b6000620100008210610b6a5760405162461bcd60e51b8152600401808060200182810382526026815260200180612ec66026913960400191505060405180910390fd5b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f846050028161278957fe5b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b600081600114806127d95750816003145b806127e45750816005145b806127ef5750816007145b806127fa5750816008145b80612805575081600a145b80612810575081600c145b1561281d5750601f611958565b8160021461282d5750601e611958565b612836836128ca565b61284157601c612844565b601d5b60ff169392505050565b60006107b284101561285f57600080fd5b838383600062253d8c600460036064611324600c600d19890105890101050205600c80600d19870105600c02600287030361016f028161289b57fe5b0560046105b5600c600d1989010589016112c0010205617d4b8603010103039050809450505050509392505050565b6000600482061580156128df57506064820615155b8061195857505061019090061590565b6040805160608101909152806000815260006020820181905260409091015290565b6040518060a0016040528060008152602001600061ffff1681526020016000815260200160008152602001612944612949565b905290565b6040518060a0016040528060608152602001600081526020016000815260200160008152602001600081525090565b600060208284031215612989578081fd5b813561195581612ea3565b600060208083850312156129a6578182fd5b825167ffffffffffffffff808211156129bd578384fd5b818501915085601f8301126129d0578384fd5b8151818111156129dc57fe5b6129e98485830201612dd4565b818152848101908486016040808502870188018b1015612a07578889fd5b8896505b84871015612a615780828c031215612a21578889fd5b80518181018181108882111715612a3457fe5b82528251612a4181612ea3565b815282890151898201528452600196909601959287019290810190612a0b565b50909998505050505050505050565b600080600060608486031215612a84578182fd5b8335612a8f81612ea3565b92506020840135612a9f81612eb8565b929592945050506040919091013590565b600060608284031215612ac1578081fd5b6040516060810181811067ffffffffffffffff82111715612ade57fe5b6040528251612aec81612eb8565b81526020838101519082015260408301518015158114612b0a578283fd5b60408201529392505050565b600060208284031215612b27578081fd5b5035919050565b600060208284031215612b3f578081fd5b5051919050565b60028110612b5057fe5b9052565b6001600160a01b0391909116815260200190565b901515815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392831681529116602082015260400190565b6000602080835283518082850152825b81811015612bd257858101830151858201604001528201612bb6565b81811115612be35783604083870101525b50601f01601f1916929092016040019392505050565b6000602080835260c084518285015281850151604061ffff821681870152808701519150606082818801528088015192506080838189015280890151935060a080818a01526101608901855182888c01528181518084526101808d0191508a830193508b92505b80831015612cb257835180516001600160a01b031683528b8101518c84015288810151898401528781015188840152868101518784015285015185830152928a01926001929092019190890190612c60565b509887015160e08c0152505050918301516101008801528201516101208701520151610140909401939093529392505050565b6000606082019050612cf8828451612b46565b6020830151602083015260408301511515604083015292915050565b6000606082019050612d2a8260ff855416612b46565b6001830154602083015260029092015460ff16151560409091015290565b61ffff999099168952602089019790975260408801959095526060870193909352608086019190915260a085015260c084015260e08301526101008201526101200190565b90815260200190565b918252602082015260400190565b968752602087019590955260408601939093526060850191909152608084015260a083015260c082015260e00190565b60405181810167ffffffffffffffff81118282101715612df057fe5b604052919050565b60e01c90565b600060443d1015612e0e5761100b565b600481823e6308c379a0612e228251612df8565b14612e2c5761100b565b6040513d600319016004823e80513d67ffffffffffffffff8160248401118184111715612e5c575050505061100b565b82840192508251915080821115612e76575050505061100b565b503d83016020828401011115612e8e5750505061100b565b601f01601f1916810160200160405291505090565b6001600160a01b038116811461114957600080fd5b6002811061114957600080fdfe53616665436173743a2076616c756520646f65736e27742066697420696e2031362062697473756e6b6e6f776e206572726f722e20676574416e6e75616c50657263656e7461676542697073536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77756e6b6e6f776e206572726f722e20757064617465417574686f72697a6564496e666c6174696f6e416e6443697263756c6174696e67537570706c79a2646970667358221220d43aadb9ec38d32dfd107f3fc18505be7548785b8913e065ac03fe8874315e0b64736f6c63430007060033",
850
+ "bytecode": "0x60c06040523480156200001157600080fd5b506040516200408138038062004081833981016040819052620000349162000206565b81848481806001600160a01b03811615620000545762000054816200011f565b506001600160a01b038116620000a4576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506001600160a01b038116620000f5576040805162461bcd60e51b8152602060048201526011602482015270666c617265206461656d6f6e207a65726f60781b604482015290519081900360640190fd5b60601b6001600160601b031916608052506200011181620001e2565b5060a0525062000278915050565b600054600160a01b900460ff16156200017f576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600080600080608085870312156200021c578384fd5b845162000229816200025f565b60208601519094506200023c816200025f565b60408601519093506200024f816200025f565b6060959095015193969295505050565b6001600160a01b03811681146200027557600080fd5b50565b60805160601c60a051613dba620002c760003980610d0a5280611aad525080610ca25280610fe052806110715280611139528061120a52806115d45280611ada5280611c045250613dba6000f3fe6080604052600436106101d85760003560e01c806374e6310e11610102578063c611c2c511610095578063f3f8dcf911610064578063f3f8dcf9146104ec578063f5a9838314610501578063f5f5ba7214610516578063f639c12c14610538576101d8565b8063c611c2c5146104a5578063c9d3dc87146104ad578063e17f212e146104c2578063e22fdece146104d7576101d8565b8063aa5b5eca116100d1578063aa5b5eca1461042e578063b00c0b7614610450578063b6f1f74914610470578063b8cca0cf14610490576101d8565b806374e6310e146103a657806384e10a90146103d45780639d6a890f146103f9578063a107753214610419576101d8565b80635aa6e6751161017a57806367fc40291161014957806367fc40291461032f5780636d0e8c341461034f5780636e61ab96146103715780637292d72714610391576101d8565b80635aa6e675146102d05780635f61a576146102e55780635ff27079146102fa57806362354e031461031a576101d8565b80632b85dcc9116101b65780632b85dcc91461023f57806333ed77cc1461026c5780634b13e8721461028e5780635267a15d146102bb576101d8565b8063047fc9aa146101dd578063095bfd5a1461020857806317f4c8441461022a575b600080fd5b3480156101e957600080fd5b506101f261054d565b6040516101ff9190613a18565b60405180910390f35b34801561021457600080fd5b5061022861022336600461364a565b61055c565b005b34801561023657600080fd5b506101f26105b9565b34801561024b57600080fd5b5061025f61025a36600461398f565b6105c8565b6040516101ff9190613b21565b34801561027857600080fd5b50610281610605565b6040516101ff9190613ba5565b34801561029a57600080fd5b506102ae6102a936600461364a565b61060b565b6040516101ff9190613b42565b3480156102c757600080fd5b506101f26106e2565b3480156102dc57600080fd5b506101f2610707565b3480156102f157600080fd5b5061025f6107aa565b34801561030657600080fd5b506102286103153660046137ee565b6107e3565b34801561032657600080fd5b506101f2610b45565b34801561033b57600080fd5b5061022861034a3660046137ee565b610b5d565b34801561035b57600080fd5b50610364610c45565b6040516101ff9190613aa3565b34801561037d57600080fd5b5061022861038c366004613816565b6112ec565b34801561039d57600080fd5b50610281611453565b3480156103b257600080fd5b506103c66103c13660046137ee565b61145f565b6040516101ff929190613bae565b3480156103e057600080fd5b506103e9611505565b6040516101ff9493929190613bd5565b34801561040557600080fd5b5061022861041436600461364a565b611519565b34801561042557600080fd5b506101f26115d2565b34801561043a57600080fd5b506104436115f6565b6040516101ff9190613a2c565b34801561045c57600080fd5b5061022861046b366004613666565b61168d565b34801561047c57600080fd5b5061022861048b366004613856565b611738565b34801561049c57600080fd5b50610281611aab565b610228611acf565b3480156104b957600080fd5b50610281611be1565b3480156104ce57600080fd5b50610364611be7565b3480156104e357600080fd5b50610364611bf7565b3480156104f857600080fd5b506101f2611c70565b34801561050d57600080fd5b50610228611c7f565b34801561052257600080fd5b5061052b611d46565b6040516101ff9190613ae1565b34801561054457600080fd5b50610281611d69565b6003546001600160a01b031681565b600054600160b01b900460ff168061057e5750600054600160a81b900460ff16155b156105ab5761058b611d7c565b600480546001600160a01b0319166001600160a01b0383161790556105b6565b6105b6600036611db3565b50565b6004546001600160a01b031681565b6105d0613361565b6105db600583611f43565b6040805160608101825282548152600183015460208201526002909201549082015290505b919050565b600e5481565b610613613382565b60408051808201909152600c81526b06164647265737320697320360a41b602082015282906001600160a01b0382166106685760405162461bcd60e51b815260040161065f9190613ae1565b60405180910390fd5b506001600160a01b0383166000908152600d6020526040908190208151606081019092528054829060ff16600181111561069e57fe5b60018111156106a957fe5b81526001820154602082015260029091015460ff1615156040918201528101519092506106dc5760008252607860208301525b50919050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff1661072a576000546001600160a01b03166107a4565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561077757600080fd5b505afa15801561078b573d6000803e3d6000fd5b505050506040513d60208110156107a157600080fd5b50515b90505b90565b6107b2613361565b6107bc6005611fb9565b60408051606081018252825481526001830154602082015260029092015490820152905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b15801561083457600080fd5b505afa158015610848573d6000803e3d6000fd5b505050506040513d602081101561085e57600080fd5b50516108a1576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b031981166000908152600160205260409020805461090d576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610963576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109fd5780601f106109d2576101008083540402835291602001916109fd565b820191906000526020600020905b8154815290600101906020018083116109e057829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250610a3191508301826133a4565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310610a795780518252601f199092019160209182019101610a5a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610adb576040519150601f19603f3d011682016040523d82523d6000602084013e610ae0565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610b3f81612032565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b610b6561204f565b6001600160e01b03198116600090815260016020526040902054610bd0576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260016020819052604082208281559190610c40908301826133a4565b505050565b60035460408051808201909152600c81526b06164647265737320697320360a41b60208201526000916001600160a01b03169081610c965760405162461bcd60e51b815260040161065f9190613ae1565b50336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d08576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b7f0000000000000000000000000000000000000000000000000000000000000000421015610d3957600191506112e8565b600e54610d455742600e555b610d4f60056120ae565b610d6157610d5c426120b2565b610d86565b6000610d6d6005611fb9565b60020154905080421115610d8457610d84426120b2565b505b600c544290610d9890620151806122fd565b116112e35742600c556004546001600160a01b031615610e0e576004805460408051630ffd91a760e31b815290516001600160a01b0390921692637fec8d3892828201926000929082900301818387803b158015610df557600080fd5b505af1158015610e09573d6000803e3d6000fd5b505050505b6000610ec4600854600954610e2d42610e276005611fb9565b90612360565b600260009054906101000a90046001600160a01b03166001600160a01b031663c853b8d46040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e7d57600080fd5b505af1158015610e91573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eb9919081019061371d565b600793929190612385565b600954909150610ed490826122fd565b60098190556008541015610ee457fe5b7fe69ea09c0c2d88b5a023a23e65e8ffeb65667d6b7b4076cbee9ba25f5450235581604051610f139190613ba5565b60405180910390a1600354604051630512107160e51b81526001600160a01b039091169063a2420e2090610f4b908490600401613ba5565b600060405180830381600087803b158015610f6557600080fd5b505af1925050508015610f76575060015b610fd957610f82613c38565b80610f8d5750610fa7565b8060405162461bcd60e51b815260040161065f9190613ae1565b6040518060600160405280603c8152602001613d49603c913960405162461bcd60e51b815260040161065f9190613ae1565b60006111067f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663106637506040518163ffffffff1660e01b815260040160206040518083038186803b15801561103757600080fd5b505afa15801561104b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106f91906139a7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166362da19a56040518163ffffffff1660e01b815260040160206040518083038186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110091906139a7565b906125c1565b90506000611121600b54600a546125c190919063ffffffff16565b90508181101561112d57fe5b600061119930611190847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634f6a77b56040518163ffffffff1660e01b815260040160206040518083038186803b1580156110c857600080fd5b6007919061261e565b600a549091506111a990826122fd565b600a81905560095410156111b957fe5b60006111c583856125c1565b90507f0cfbdd1f8cebf9e30091fd690a7310feed553243a69b27e7c3f13f68511b1bf282826040516111f8929190613bc7565b60405180910390a16001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e9de7d6061123984846122fd565b6040518263ffffffff1660e01b81526004016112559190613ba5565b600060405180830381600087803b15801561126f57600080fd5b505af1925050508015611280575060015b6112dd5761128c613c38565b80610f8d5750604080518082018252601d81527f756e6b6e6f776e206572726f722e20726571756573744d696e74696e670000006020820152905162461bcd60e51b815261065f9190600401613ae1565b50505050505b600191505b5090565b60408051808201909152600c81526b06164647265737320697320360a41b602082015283906001600160a01b0382166113385760405162461bcd60e51b815260040161065f9190613ae1565b50600054600160b01b900460ff168061135b5750600054600160a81b900460ff16155b1561144857611368611d7c565b600083600181111561137657fe5b14156113bf57604080518082019091526009815268746f707570206c6f7760b81b6020820152606483116113bd5760405162461bcd60e51b815260040161065f9190613ae1565b505b6001600160a01b0384166000908152600d6020526040902080548490829060ff1916600183818111156113ee57fe5b0217905550600180820184905560028201805460ff191690911790556040517fcf085312d79a75faa5f1b9f6bec58a64813338f5e5e5759573cab22c6da2d25b9061143a908390613b71565b60405180910390a150610b3f565b610b3f600036611db3565b60006107a46005612983565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156114fb5780601f106114d0576101008083540402835291602001916114fb565b820191906000526020600020905b8154815290600101906020018083116114de57829003601f168201915b5050505050905082565b600954600a54600b54600854929391929091565b600054600160a01b900460ff161561156f576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606007600001805480602002602001604051908101604052809291908181526020016000905b828210156116845760008481526020908190206040805160a0810182526005860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600401546080830152908352909201910161161d565b50505050905090565b6116956106e2565b6001600160a01b0316336001600160a01b0316146116f1576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61172a61172583836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506129dc565b612b0b565b6117348282612b2f565b5050565b61174061204f565b600c54156117605760405162461bcd60e51b815260040161065f90613af4565b816001600160a01b031663c9d3dc876040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561179b57600080fd5b505af11580156117af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d391906139a7565b600c81905550816001600160a01b03166333ed77cc6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561181457600080fd5b505af1158015611828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184c91906139a7565b600e5560008080805b84811015611a015760405163f64cee6160e01b81526000906001600160a01b0388169063f64cee619061188c908590600401613ba5565b60006040518083038186803b1580156118a457600080fd5b505afa1580156118b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118e09190810190613881565b905060005b608082015151518110156119f7576000826080015160000151828151811061190957fe5b6020026020010151905060008061192e83600001516007612c4f90919063ffffffff16565b915091506000821561195d57600780548390811061194857fe5b906000526020600020906005020190506119a3565b5060078054600181018255600091909152835160059091027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801906119a3908290612cb2565b604084015160028201556020840151600180830180548301905560608601516003840180548201905560809096015160049093018054840190559a0199989093019796909201959290920191506118e59050565b5050600101611855565b506009839055600a91909155600b55600881905560058054600181018255600091909152600e547f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1600392909202918201557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0810191909155600c546201517f017f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db2909101555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b40576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b6000611b4c6007612cec565b600b54909150611b5c90826122fd565b600b819055600a541015611b6c57fe5b478015611ba45760405161dead9082156108fc029083906000818181858888f19350505050158015611ba2573d6000803e3d6000fd5b505b7f992ba5c7b7d6602101783b4d28d0b93011fb883039e68c729b933bf7116786278282604051611bd5929190613bc7565b60405180910390a15050565b600c5481565b600054600160a81b900460ff1681565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611c6a576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b50600090565b6002546001600160a01b031681565b611c8761204f565b600054600160a81b900460ff1615611ce6576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60408051808201909152600981526824b7333630ba34b7b760b91b602082015290565b600c546000906107a490620151806122fd565b600054600160b01b900460ff1615611da957333014611d9757fe5b6000805460ff60b01b19169055611db1565b611db161204f565b565b611dbb61204f565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e1057600080fd5b505afa158015611e24573d6000803e3d6000fd5b505050506040513d6020811015611e3a57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450611ebe939285019201906133e8565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b6000611f4e836120ae565b82106040518060400160405280600c81526020016b1b9bc81d1a5b59481cdb1bdd60a21b81525090611f935760405162461bcd60e51b815260040161065f9190613ae1565b50826000018281548110611fa357fe5b9060005260206000209060030201905092915050565b600080611fc5836120ae565b116040518060400160405280600c81526020016b1b9bc81d1a5b59481cdb1bdd60a21b815250906120095760405162461bcd60e51b815260040161065f9190613ae1565b508160000182600101548154811061201d57fe5b90600052602060002090600302019050919050565b3d604051818101604052816000823e821561204b578181f35b8181fd5b612057610707565b6001600160a01b0316336001600160a01b031614611db1576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b5490565b600360009054906101000a90046001600160a01b03166001600160a01b0316633c8c461c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561210257600080fd5b505af1158015612116573d6000803e3d6000fd5b505050506000600360009054906101000a90046001600160a01b03166001600160a01b0316631b73b4cb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561216a57600080fd5b505afa15801561217e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a291906139a7565b9050600260009054906101000a90046001600160a01b03166001600160a01b0316638f0612b36040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156121f457600080fd5b505af1925050508015612224575060408051601f3d908101601f19168201909252612221918101906139a7565b60015b61226857612230613c38565b80610f8d5750604051806060016040528060288152602001613d006028913960405162461bcd60e51b815260040161065f9190613ae1565b60006122776005858585612e49565b60408051606081018252825480825260018401546020830152600290930154918101919091526008549092506122ac916122fd565b6008556020810151604080830151835191517fd95e6623748edc96036b6d22300c879547b6fe4d203faa4162c6b7ec38867577936122ef93909291889190613bd5565b60405180910390a150505050565b600082820183811015612357576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b6000826002015482111561237057fe5b612357600161237f8585612f0e565b906122fd565b6000815160001415612399575060006125b8565b60006123af846123a988886125c1565b90612f3f565b915081905061271060005b84518110156125b45760006123f18683815181106123d457fe5b6020026020010151602001518486612fa69092919063ffffffff16565b90506123fd84826125c1565b935061242986838151811061240e57fe5b602002602001015160200151846125c190919063ffffffff16565b925060008061244f8c89868151811061243e57fe5b602002602001015160000151612c4f565b9150915081156124935760008c600001828154811061246a57fe5b9060005260206000209060050201905061248d84826130a690919063ffffffff16565b506124e4565b8b54600181018d5560008d8152602090208951600590920201906124d8908a90879081106124bd57fe5b60200260200101516000015182612cb290919063ffffffff16565b6124e281856130a6565b505b8784815181106124f057fe5b6020026020010151600001516001600160a01b031663e2739563846040518263ffffffff1660e01b81526004016125279190613ba5565b600060405180830381600087803b15801561254157600080fd5b505af1158015612555573d6000803e3d6000fd5b505050507f0b86a1e961341119b156e2e5b986ca99709eb0591aa39750d01a3c2e0399add788858151811061258657fe5b602002602001015160000151846040516125a1929190613aae565b60405180910390a15050506001016123ba565b5050505b95945050505050565b600082821115612618576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b8254600090819067ffffffffffffffff8111801561263b57600080fd5b50604051908082528060200260200182016040528015612665578160200160208202803683370190505b50905060005b8554811015612782576000856001600160a01b0316634b13e87288600001848154811061269457fe5b60009182526020909120600590910201546040516001600160e01b031960e084901b1681526126cf916001600160a01b031690600401613a18565b60606040518083038186803b1580156126e757600080fd5b505afa1580156126fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271f9190613929565b905060006127528289600001858154811061273657fe5b90600052602060002090600502016130c290919063ffffffff16565b90508084848151811061276157fe5b602090810291909101015261277685826122fd565b9450505060010161266b565b5082821115612883578282038260005b87548110156128755760008482815181106127a957fe5b6020026020010151111561286d5760006127e18583815181106127c857fe5b6020026020010151848661323d9092919063ffffffff16565b90506128098583815181106127f257fe5b6020026020010151846125c190919063ffffffff16565b92506128318186848151811061281b57fe5b60200260200101516125c190919063ffffffff16565b85838151811061283d57fe5b602090810291909101015261285286826125c1565b955061285e84826125c1565b93508261286b5750612875565b505b600101612792565b508484111561288057fe5b50505b60005b855481101561297a576128d582828151811061289e57fe5b60200260200101518760000183815481106128b557fe5b9060005260206000209060050201600301546122fd90919063ffffffff16565b8660000182815481106128e457fe5b9060005260206000209060050201600301819055507f86ad53975f577f32dfee1a85bbe2b8c97e435f9ad4c235a3cb220929897727f086600001828154811061292957fe5b600091825260209091206005909102015483516001600160a01b039091169084908490811061295457fe5b602002602001015160405161296a929190613aae565b60405180910390a1600101612886565b50509392505050565b60008061298f836120ae565b116040518060400160405280600c81526020016b1b9bc81d1a5b59481cdb1bdd60a21b815250906129d35760405162461bcd60e51b815260040161065f9190613ae1565b50506001015490565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015612a20578181015183820152602001612a08565b50505050905090810190601f168015612a4d5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015612ab557868181518110612a8357fe5b6020026020010151831415612aad57858181518110612a9e57fe5b60200260200101519150612ab5565b600101612a6e565b506001600160a01b038116612b00576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b9150505b9392505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b6000612b5a838360405180604001604052806006815260200165537570706c7960d01b8152506129dc565b6003546040519192507f9a9b245c8db671c90d6db95f7ff0c18c15378a1d55ee4aea21759be8ad27d30e91612b9a916001600160a01b0316908490613ac7565b60405180910390a1600380546001600160a01b0319166001600160a01b03831617905560408051808201909152601381527224b7333630ba34b7b720b63637b1b0ba34b7b760691b6020820152612bf490849084906129dc565b600280546001600160a01b0319166001600160a01b0392831617908190556040517f53cd61e1fdebbc2af2597f77a6a3681c1abbd8771874cc85cf65e035cf85b2af92612c42921690613a18565b60405180910390a1505050565b600080805b8454811015612caa57836001600160a01b0316856000018281548110612c7657fe5b60009182526020909120600590910201546001600160a01b03161415612ca25780915060019250612caa565b600101612c54565b509250929050565b81546001600160a01b0319166001600160a01b03919091161781556000600182018190556002820181905560038201819055600490910155565b6000805b82548110156106dc576000612d20846000018381548110612d0d57fe5b9060005260206000209060050201613277565b9050612d5181856000018481548110612d3557fe5b906000526020600020906005020161329490919063ffffffff16565b836000018281548110612d6057fe5b60009182526020822060059091020154604080516306201f1d60e01b815290516001600160a01b03909216926306201f1d928592600480820193929182900301818588803b158015612db157600080fd5b505af1158015612dc5573d6000803e3d6000fd5b5050505050612ddd81846122fd90919063ffffffff16565b92507f8178963edaf663c9d0ed4a9433661fd6b5a9a556f4df742fafea7dabdd350cdb846000018381548110612e0f57fe5b6000918252602090912060059091020154604051612e38916001600160a01b0316908490613aae565b60405180910390a150600101612cf0565b600080612e55866120ae565b1115612eac57612e6485611fb9565b60020154841160405180604001604052806009815260200168746f6f206561726c7960b81b81525090612eaa5760405162461bcd60e51b815260040161065f9190613ae1565b505b508354600181810186556000868152602090206003909202909101908101849055612ed783836132af565b8155612ee2846132de565b6002820155845460011015612f0657600185810154612f00916122fd565b60018601555b949350505050565b600282015460009080831115612f2857600091505061235a565b620151808382030491505061235a565b5092915050565b6000808211612f95576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612f9e57fe5b049392505050565b6000808211612fef576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612ffc57506000612b04565b8383028385828161300957fe5b0414156130225782818161301957fe5b04915050612b04565b600083868161302d57fe5b049050600084878161303b57fe5b069050600085878161304957fe5b049050600086888161305757fe5b06905061309961306b886123a986856132f2565b61237f61307886866132f2565b61237f61308589876132f2565b61237f8d6130938c8b6132f2565b906132f2565b9998505050505050505050565b60018201546130b590826122fd565b6001830155600290910155565b6000808360000160009054906101000a90046001600160a01b03166001600160a01b031663af04cd3b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561311557600080fd5b505afa925050508015613145575060408051601f3d908101601f19168201909252613142918101906139a7565b60015b61315b575082546001600160a01b03163161315e565b90505b60008351600181111561316d57fe5b1415613208576020830151600285015460009161318c91906064612fa6565b90506000828211156131a5576131a282846125c1565b90505b60006131b087613277565b9050818111156131c357600094506131d0565b6131cd82826125c1565b94505b60006131f18860040154611100848b600101546125c190919063ffffffff16565b9050808611156131ff578095505b50505050612f38565b60018351600181111561321757fe5b14156132375760038401546001850154613230916125c1565b9150612f38565b60009150fe5b60008061324b858585612fa6565b90506000838061325757fe5b8587099050801561326b578160010161326d565b815b9695505050505050565b600061235a826004015483600301546125c190919063ffffffff16565b60048201546132a390826122fd565b82600401819055505050565b60006123576132c284846201d4c0612fa6565b6132d96b026c62ad77dc602dae000000600c612f3f565b61334b565b600061235a60016111008462278d006122fd565b6000826133015750600061235a565b8282028284828161330e57fe5b04146123575760405162461bcd60e51b8152600401808060200182810382526021815260200180613d286021913960400191505060405180910390fd5b600081831061335a5781612357565b5090919050565b60405180606001604052806000815260200160008152602001600081525090565b6040805160608101909152806000815260006020820181905260409091015290565b50805460018160011615610100020316600290046000825580601f106133ca57506105b6565b601f0160209004906000526020600020908101906105b6919061346c565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261341e5760008555613464565b82601f1061343757805160ff1916838001178555613464565b82800160010185558215613464579182015b82811115613464578251825591602001919060010190613449565b506112e89291505b5b808211156112e8576000815560010161346d565b600082601f830112613491578081fd5b813560206134a66134a183613c14565b613bf0565b82815281810190858301838502870184018810156134c2578586fd5b855b858110156134e95781356134d781613cdd565b845292840192908401906001016134c4565b5090979650505050505050565b600060a0808385031215613508578182fd5b6040805182810167ffffffffffffffff828210818311171561352657fe5b818452829550865191508082111561353d57600080fd5b818701915087601f83011261355157600080fd5b815160206135616134a183613c14565b8281528181019085830160c0808602880185018e101561358057600080fd5b600097505b858810156136005780828f03121561359c57600080fd5b895181810181811089821117156135af57fe5b8b5282516135bc81613cdd565b815282860151868201528a8301518b82015260608084015190820152608080840151908201528b8301518c8201528452600197909701969284019290810190613585565b505080875250508089015181860152505050508185015182820152606085015160608201526080850151608082015250505092915050565b805161ffff8116811461060057600080fd5b60006020828403121561365b578081fd5b813561235781613cdd565b60008060408385031215613678578081fd5b823567ffffffffffffffff8082111561368f578283fd5b818501915085601f8301126136a2578283fd5b813560206136b26134a183613c14565b82815281810190858301838502870184018b10156136ce578788fd5b8796505b848710156136f05780358352600196909601959183019183016136d2565b5096505086013592505080821115613706578283fd5b5061371385828601613481565b9150509250929050565b6000602080838503121561372f578182fd5b825167ffffffffffffffff80821115613746578384fd5b818501915085601f830112613759578384fd5b81516137676134a182613c14565b818152848101908486016040808502870188018b1015613785578889fd5b8896505b848710156137df5780828c03121561379f578889fd5b805181810181811088821117156137b257fe5b825282516137bf81613cdd565b815282890151898201528452600196909601959287019290810190613789565b50909998505050505050505050565b6000602082840312156137ff578081fd5b81356001600160e01b031981168114612357578182fd5b60008060006060848603121561382a578081fd5b833561383581613cdd565b9250602084013561384581613cf2565b929592945050506040919091013590565b60008060408385031215613868578182fd5b823561387381613cdd565b946020939093013593505050565b600060208284031215613892578081fd5b815167ffffffffffffffff808211156138a9578283fd5b9083019060a082860312156138bc578283fd5b60405160a0810181811083821117156138d157fe5b604052825181526138e460208401613638565b6020820152604083015160408201526060830151606082015260808301518281111561390e578485fd5b61391a878286016134f6565b60808301525095945050505050565b60006060828403121561393a578081fd5b6040516060810181811067ffffffffffffffff8211171561395757fe5b604052825161396581613cf2565b81526020838101519082015260408301518015158114613983578283fd5b60408201529392505050565b6000602082840312156139a0578081fd5b5035919050565b6000602082840312156139b8578081fd5b5051919050565b60008151808452815b818110156139e4576020818501810151868301820152016139c8565b818111156139f55782602083870101525b50601f01601f19169290920160200192915050565b60028110613a1457fe5b9052565b6001600160a01b0391909116815260200190565b602080825282518282018190526000919060409081850190868401855b82811015613a9657815180516001600160a01b0316855286810151878601528581015186860152606080820151908601526080908101519085015260a09093019290850190600101613a49565b5091979650505050505050565b901515815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392831681529116602082015260400190565b60006020825261235760208301846139bf565b602080825260139082015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604082015260600190565b81518152602080830151908201526040918201519181019190915260600190565b6000606082019050613b55828451613a0a565b6020830151602083015260408301511515604083015292915050565b6000606082019050613b878260ff855416613a0a565b6001830154602083015260029092015460ff16151560409091015290565b90815260200190565b600083825260406020830152612f0660408301846139bf565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b60405181810167ffffffffffffffff81118282101715613c0c57fe5b604052919050565b600067ffffffffffffffff821115613c2857fe5b5060209081020190565b60e01c90565b600060443d1015613c48576107a7565b600481823e6308c379a0613c5c8251613c32565b14613c66576107a7565b6040513d600319016004823e80513d67ffffffffffffffff8160248401118184111715613c9657505050506107a7565b82840192508251915080821115613cb057505050506107a7565b503d83016020828401011115613cc8575050506107a7565b601f01601f1916810160200160405291505090565b6001600160a01b03811681146105b657600080fd5b600281106105b657600080fdfe756e6b6e6f776e206572726f722e2067657454696d65536c6f7450657263656e7461676542697073536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77756e6b6e6f776e206572726f722e20757064617465417574686f72697a6564496e666c6174696f6e416e6443697263756c6174696e67537570706c79a26469706673582212203635a85c29566936146a5d54327e3a6a49ff43e99326200716f72340e93c105664736f6c63430007060033",
851
+ "deployedBytecode": "0x6080604052600436106101d85760003560e01c806374e6310e11610102578063c611c2c511610095578063f3f8dcf911610064578063f3f8dcf9146104ec578063f5a9838314610501578063f5f5ba7214610516578063f639c12c14610538576101d8565b8063c611c2c5146104a5578063c9d3dc87146104ad578063e17f212e146104c2578063e22fdece146104d7576101d8565b8063aa5b5eca116100d1578063aa5b5eca1461042e578063b00c0b7614610450578063b6f1f74914610470578063b8cca0cf14610490576101d8565b806374e6310e146103a657806384e10a90146103d45780639d6a890f146103f9578063a107753214610419576101d8565b80635aa6e6751161017a57806367fc40291161014957806367fc40291461032f5780636d0e8c341461034f5780636e61ab96146103715780637292d72714610391576101d8565b80635aa6e675146102d05780635f61a576146102e55780635ff27079146102fa57806362354e031461031a576101d8565b80632b85dcc9116101b65780632b85dcc91461023f57806333ed77cc1461026c5780634b13e8721461028e5780635267a15d146102bb576101d8565b8063047fc9aa146101dd578063095bfd5a1461020857806317f4c8441461022a575b600080fd5b3480156101e957600080fd5b506101f261054d565b6040516101ff9190613a18565b60405180910390f35b34801561021457600080fd5b5061022861022336600461364a565b61055c565b005b34801561023657600080fd5b506101f26105b9565b34801561024b57600080fd5b5061025f61025a36600461398f565b6105c8565b6040516101ff9190613b21565b34801561027857600080fd5b50610281610605565b6040516101ff9190613ba5565b34801561029a57600080fd5b506102ae6102a936600461364a565b61060b565b6040516101ff9190613b42565b3480156102c757600080fd5b506101f26106e2565b3480156102dc57600080fd5b506101f2610707565b3480156102f157600080fd5b5061025f6107aa565b34801561030657600080fd5b506102286103153660046137ee565b6107e3565b34801561032657600080fd5b506101f2610b45565b34801561033b57600080fd5b5061022861034a3660046137ee565b610b5d565b34801561035b57600080fd5b50610364610c45565b6040516101ff9190613aa3565b34801561037d57600080fd5b5061022861038c366004613816565b6112ec565b34801561039d57600080fd5b50610281611453565b3480156103b257600080fd5b506103c66103c13660046137ee565b61145f565b6040516101ff929190613bae565b3480156103e057600080fd5b506103e9611505565b6040516101ff9493929190613bd5565b34801561040557600080fd5b5061022861041436600461364a565b611519565b34801561042557600080fd5b506101f26115d2565b34801561043a57600080fd5b506104436115f6565b6040516101ff9190613a2c565b34801561045c57600080fd5b5061022861046b366004613666565b61168d565b34801561047c57600080fd5b5061022861048b366004613856565b611738565b34801561049c57600080fd5b50610281611aab565b610228611acf565b3480156104b957600080fd5b50610281611be1565b3480156104ce57600080fd5b50610364611be7565b3480156104e357600080fd5b50610364611bf7565b3480156104f857600080fd5b506101f2611c70565b34801561050d57600080fd5b50610228611c7f565b34801561052257600080fd5b5061052b611d46565b6040516101ff9190613ae1565b34801561054457600080fd5b50610281611d69565b6003546001600160a01b031681565b600054600160b01b900460ff168061057e5750600054600160a81b900460ff16155b156105ab5761058b611d7c565b600480546001600160a01b0319166001600160a01b0383161790556105b6565b6105b6600036611db3565b50565b6004546001600160a01b031681565b6105d0613361565b6105db600583611f43565b6040805160608101825282548152600183015460208201526002909201549082015290505b919050565b600e5481565b610613613382565b60408051808201909152600c81526b06164647265737320697320360a41b602082015282906001600160a01b0382166106685760405162461bcd60e51b815260040161065f9190613ae1565b60405180910390fd5b506001600160a01b0383166000908152600d6020526040908190208151606081019092528054829060ff16600181111561069e57fe5b60018111156106a957fe5b81526001820154602082015260029091015460ff1615156040918201528101519092506106dc5760008252607860208301525b50919050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b60008054600160a81b900460ff1661072a576000546001600160a01b03166107a4565b73183faff6997c98a812a3b98748fc80241d08f3126001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561077757600080fd5b505afa15801561078b573d6000803e3d6000fd5b505050506040513d60208110156107a157600080fd5b50515b90505b90565b6107b2613361565b6107bc6005611fb9565b60408051606081018252825481526001830154602082015260029092015490820152905090565b60408051630debfda360e41b8152336004820152905173183faff6997c98a812a3b98748fc80241d08f3129163debfda30916024808301926020929190829003018186803b15801561083457600080fd5b505afa158015610848573d6000803e3d6000fd5b505050506040513d602081101561085e57600080fd5b50516108a1576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b031981166000908152600160205260409020805461090d576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610963576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109fd5780601f106109d2576101008083540402835291602001916109fd565b820191906000526020600020905b8154815290600101906020018083116109e057829003601f168201915b5050506001600160e01b0319861660009081526001602081905260408220828155949550909250610a3191508301826133a4565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b60208310610a795780518252601f199092019160209182019101610a5a565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610adb576040519150601f19603f3d011682016040523d82523d6000602084013e610ae0565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610b3f81612032565b50505050565b73183faff6997c98a812a3b98748fc80241d08f31281565b610b6561204f565b6001600160e01b03198116600090815260016020526040902054610bd0576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260016020819052604082208281559190610c40908301826133a4565b505050565b60035460408051808201909152600c81526b06164647265737320697320360a41b60208201526000916001600160a01b03169081610c965760405162461bcd60e51b815260040161065f9190613ae1565b50336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d08576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b7f0000000000000000000000000000000000000000000000000000000000000000421015610d3957600191506112e8565b600e54610d455742600e555b610d4f60056120ae565b610d6157610d5c426120b2565b610d86565b6000610d6d6005611fb9565b60020154905080421115610d8457610d84426120b2565b505b600c544290610d9890620151806122fd565b116112e35742600c556004546001600160a01b031615610e0e576004805460408051630ffd91a760e31b815290516001600160a01b0390921692637fec8d3892828201926000929082900301818387803b158015610df557600080fd5b505af1158015610e09573d6000803e3d6000fd5b505050505b6000610ec4600854600954610e2d42610e276005611fb9565b90612360565b600260009054906101000a90046001600160a01b03166001600160a01b031663c853b8d46040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e7d57600080fd5b505af1158015610e91573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eb9919081019061371d565b600793929190612385565b600954909150610ed490826122fd565b60098190556008541015610ee457fe5b7fe69ea09c0c2d88b5a023a23e65e8ffeb65667d6b7b4076cbee9ba25f5450235581604051610f139190613ba5565b60405180910390a1600354604051630512107160e51b81526001600160a01b039091169063a2420e2090610f4b908490600401613ba5565b600060405180830381600087803b158015610f6557600080fd5b505af1925050508015610f76575060015b610fd957610f82613c38565b80610f8d5750610fa7565b8060405162461bcd60e51b815260040161065f9190613ae1565b6040518060600160405280603c8152602001613d49603c913960405162461bcd60e51b815260040161065f9190613ae1565b60006111067f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663106637506040518163ffffffff1660e01b815260040160206040518083038186803b15801561103757600080fd5b505afa15801561104b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106f91906139a7565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166362da19a56040518163ffffffff1660e01b815260040160206040518083038186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061110091906139a7565b906125c1565b90506000611121600b54600a546125c190919063ffffffff16565b90508181101561112d57fe5b600061119930611190847f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634f6a77b56040518163ffffffff1660e01b815260040160206040518083038186803b1580156110c857600080fd5b6007919061261e565b600a549091506111a990826122fd565b600a81905560095410156111b957fe5b60006111c583856125c1565b90507f0cfbdd1f8cebf9e30091fd690a7310feed553243a69b27e7c3f13f68511b1bf282826040516111f8929190613bc7565b60405180910390a16001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663e9de7d6061123984846122fd565b6040518263ffffffff1660e01b81526004016112559190613ba5565b600060405180830381600087803b15801561126f57600080fd5b505af1925050508015611280575060015b6112dd5761128c613c38565b80610f8d5750604080518082018252601d81527f756e6b6e6f776e206572726f722e20726571756573744d696e74696e670000006020820152905162461bcd60e51b815261065f9190600401613ae1565b50505050505b600191505b5090565b60408051808201909152600c81526b06164647265737320697320360a41b602082015283906001600160a01b0382166113385760405162461bcd60e51b815260040161065f9190613ae1565b50600054600160b01b900460ff168061135b5750600054600160a81b900460ff16155b1561144857611368611d7c565b600083600181111561137657fe5b14156113bf57604080518082019091526009815268746f707570206c6f7760b81b6020820152606483116113bd5760405162461bcd60e51b815260040161065f9190613ae1565b505b6001600160a01b0384166000908152600d6020526040902080548490829060ff1916600183818111156113ee57fe5b0217905550600180820184905560028201805460ff191690911790556040517fcf085312d79a75faa5f1b9f6bec58a64813338f5e5e5759573cab22c6da2d25b9061143a908390613b71565b60405180910390a150610b3f565b610b3f600036611db3565b60006107a46005612983565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f810185900485028601850190965285855290949193929091908301828280156114fb5780601f106114d0576101008083540402835291602001916114fb565b820191906000526020600020905b8154815290600101906020018083116114de57829003601f168201915b5050505050905082565b600954600a54600b54600854929391929091565b600054600160a01b900460ff161561156f576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f000000000000000000000000000000000000000000000000000000000000000081565b60606007600001805480602002602001604051908101604052809291908181526020016000905b828210156116845760008481526020908190206040805160a0810182526005860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600401546080830152908352909201910161161d565b50505050905090565b6116956106e2565b6001600160a01b0316336001600160a01b0316146116f1576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61172a61172583836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b8152506129dc565b612b0b565b6117348282612b2f565b5050565b61174061204f565b600c54156117605760405162461bcd60e51b815260040161065f90613af4565b816001600160a01b031663c9d3dc876040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561179b57600080fd5b505af11580156117af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d391906139a7565b600c81905550816001600160a01b03166333ed77cc6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561181457600080fd5b505af1158015611828573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184c91906139a7565b600e5560008080805b84811015611a015760405163f64cee6160e01b81526000906001600160a01b0388169063f64cee619061188c908590600401613ba5565b60006040518083038186803b1580156118a457600080fd5b505afa1580156118b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118e09190810190613881565b905060005b608082015151518110156119f7576000826080015160000151828151811061190957fe5b6020026020010151905060008061192e83600001516007612c4f90919063ffffffff16565b915091506000821561195d57600780548390811061194857fe5b906000526020600020906005020190506119a3565b5060078054600181018255600091909152835160059091027fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68801906119a3908290612cb2565b604084015160028201556020840151600180830180548301905560608601516003840180548201905560809096015160049093018054840190559a0199989093019796909201959290920191506118e59050565b5050600101611855565b506009839055600a91909155600b55600881905560058054600181018255600091909152600e547f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db1600392909202918201557f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0810191909155600c546201517f017f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db2909101555050565b7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611b40576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b6000611b4c6007612cec565b600b54909150611b5c90826122fd565b600b819055600a541015611b6c57fe5b478015611ba45760405161dead9082156108fc029083906000818181858888f19350505050158015611ba2573d6000803e3d6000fd5b505b7f992ba5c7b7d6602101783b4d28d0b93011fb883039e68c729b933bf7116786278282604051611bd5929190613bc7565b60405180910390a15050565b600c5481565b600054600160a81b900460ff1681565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611c6a576040805162461bcd60e51b815260206004820152601160248201527037b7363c90333630b932903230b2b6b7b760791b604482015290519081900360640190fd5b50600090565b6002546001600160a01b031681565b611c8761204f565b600054600160a81b900460ff1615611ce6576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805173183faff6997c98a812a3b98748fc80241d08f312815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60408051808201909152600981526824b7333630ba34b7b760b91b602082015290565b600c546000906107a490620151806122fd565b600054600160b01b900460ff1615611da957333014611d9757fe5b6000805460ff60b01b19169055611db1565b611db161204f565b565b611dbb61204f565b600082359050600073183faff6997c98a812a3b98748fc80241d08f3126001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e1057600080fd5b505afa158015611e24573d6000803e3d6000fd5b505050506040513d6020811015611e3a57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260016020818152604090922084518155848301518051919450611ebe939285019201906133e8565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b6000611f4e836120ae565b82106040518060400160405280600c81526020016b1b9bc81d1a5b59481cdb1bdd60a21b81525090611f935760405162461bcd60e51b815260040161065f9190613ae1565b50826000018281548110611fa357fe5b9060005260206000209060030201905092915050565b600080611fc5836120ae565b116040518060400160405280600c81526020016b1b9bc81d1a5b59481cdb1bdd60a21b815250906120095760405162461bcd60e51b815260040161065f9190613ae1565b508160000182600101548154811061201d57fe5b90600052602060002090600302019050919050565b3d604051818101604052816000823e821561204b578181f35b8181fd5b612057610707565b6001600160a01b0316336001600160a01b031614611db1576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b5490565b600360009054906101000a90046001600160a01b03166001600160a01b0316633c8c461c6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561210257600080fd5b505af1158015612116573d6000803e3d6000fd5b505050506000600360009054906101000a90046001600160a01b03166001600160a01b0316631b73b4cb6040518163ffffffff1660e01b815260040160206040518083038186803b15801561216a57600080fd5b505afa15801561217e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121a291906139a7565b9050600260009054906101000a90046001600160a01b03166001600160a01b0316638f0612b36040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156121f457600080fd5b505af1925050508015612224575060408051601f3d908101601f19168201909252612221918101906139a7565b60015b61226857612230613c38565b80610f8d5750604051806060016040528060288152602001613d006028913960405162461bcd60e51b815260040161065f9190613ae1565b60006122776005858585612e49565b60408051606081018252825480825260018401546020830152600290930154918101919091526008549092506122ac916122fd565b6008556020810151604080830151835191517fd95e6623748edc96036b6d22300c879547b6fe4d203faa4162c6b7ec38867577936122ef93909291889190613bd5565b60405180910390a150505050565b600082820183811015612357576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b6000826002015482111561237057fe5b612357600161237f8585612f0e565b906122fd565b6000815160001415612399575060006125b8565b60006123af846123a988886125c1565b90612f3f565b915081905061271060005b84518110156125b45760006123f18683815181106123d457fe5b6020026020010151602001518486612fa69092919063ffffffff16565b90506123fd84826125c1565b935061242986838151811061240e57fe5b602002602001015160200151846125c190919063ffffffff16565b925060008061244f8c89868151811061243e57fe5b602002602001015160000151612c4f565b9150915081156124935760008c600001828154811061246a57fe5b9060005260206000209060050201905061248d84826130a690919063ffffffff16565b506124e4565b8b54600181018d5560008d8152602090208951600590920201906124d8908a90879081106124bd57fe5b60200260200101516000015182612cb290919063ffffffff16565b6124e281856130a6565b505b8784815181106124f057fe5b6020026020010151600001516001600160a01b031663e2739563846040518263ffffffff1660e01b81526004016125279190613ba5565b600060405180830381600087803b15801561254157600080fd5b505af1158015612555573d6000803e3d6000fd5b505050507f0b86a1e961341119b156e2e5b986ca99709eb0591aa39750d01a3c2e0399add788858151811061258657fe5b602002602001015160000151846040516125a1929190613aae565b60405180910390a15050506001016123ba565b5050505b95945050505050565b600082821115612618576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b8254600090819067ffffffffffffffff8111801561263b57600080fd5b50604051908082528060200260200182016040528015612665578160200160208202803683370190505b50905060005b8554811015612782576000856001600160a01b0316634b13e87288600001848154811061269457fe5b60009182526020909120600590910201546040516001600160e01b031960e084901b1681526126cf916001600160a01b031690600401613a18565b60606040518083038186803b1580156126e757600080fd5b505afa1580156126fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271f9190613929565b905060006127528289600001858154811061273657fe5b90600052602060002090600502016130c290919063ffffffff16565b90508084848151811061276157fe5b602090810291909101015261277685826122fd565b9450505060010161266b565b5082821115612883578282038260005b87548110156128755760008482815181106127a957fe5b6020026020010151111561286d5760006127e18583815181106127c857fe5b6020026020010151848661323d9092919063ffffffff16565b90506128098583815181106127f257fe5b6020026020010151846125c190919063ffffffff16565b92506128318186848151811061281b57fe5b60200260200101516125c190919063ffffffff16565b85838151811061283d57fe5b602090810291909101015261285286826125c1565b955061285e84826125c1565b93508261286b5750612875565b505b600101612792565b508484111561288057fe5b50505b60005b855481101561297a576128d582828151811061289e57fe5b60200260200101518760000183815481106128b557fe5b9060005260206000209060050201600301546122fd90919063ffffffff16565b8660000182815481106128e457fe5b9060005260206000209060050201600301819055507f86ad53975f577f32dfee1a85bbe2b8c97e435f9ad4c235a3cb220929897727f086600001828154811061292957fe5b600091825260209091206005909102015483516001600160a01b039091169084908490811061295457fe5b602002602001015160405161296a929190613aae565b60405180910390a1600101612886565b50509392505050565b60008061298f836120ae565b116040518060400160405280600c81526020016b1b9bc81d1a5b59481cdb1bdd60a21b815250906129d35760405162461bcd60e51b815260040161065f9190613ae1565b50506001015490565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015612a20578181015183820152602001612a08565b50505050905090810190601f168015612a4d5780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015612ab557868181518110612a8357fe5b6020026020010151831415612aad57858181518110612a9e57fe5b60200260200101519150612ab5565b600101612a6e565b506001600160a01b038116612b00576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b9150505b9392505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b6000612b5a838360405180604001604052806006815260200165537570706c7960d01b8152506129dc565b6003546040519192507f9a9b245c8db671c90d6db95f7ff0c18c15378a1d55ee4aea21759be8ad27d30e91612b9a916001600160a01b0316908490613ac7565b60405180910390a1600380546001600160a01b0319166001600160a01b03831617905560408051808201909152601381527224b7333630ba34b7b720b63637b1b0ba34b7b760691b6020820152612bf490849084906129dc565b600280546001600160a01b0319166001600160a01b0392831617908190556040517f53cd61e1fdebbc2af2597f77a6a3681c1abbd8771874cc85cf65e035cf85b2af92612c42921690613a18565b60405180910390a1505050565b600080805b8454811015612caa57836001600160a01b0316856000018281548110612c7657fe5b60009182526020909120600590910201546001600160a01b03161415612ca25780915060019250612caa565b600101612c54565b509250929050565b81546001600160a01b0319166001600160a01b03919091161781556000600182018190556002820181905560038201819055600490910155565b6000805b82548110156106dc576000612d20846000018381548110612d0d57fe5b9060005260206000209060050201613277565b9050612d5181856000018481548110612d3557fe5b906000526020600020906005020161329490919063ffffffff16565b836000018281548110612d6057fe5b60009182526020822060059091020154604080516306201f1d60e01b815290516001600160a01b03909216926306201f1d928592600480820193929182900301818588803b158015612db157600080fd5b505af1158015612dc5573d6000803e3d6000fd5b5050505050612ddd81846122fd90919063ffffffff16565b92507f8178963edaf663c9d0ed4a9433661fd6b5a9a556f4df742fafea7dabdd350cdb846000018381548110612e0f57fe5b6000918252602090912060059091020154604051612e38916001600160a01b0316908490613aae565b60405180910390a150600101612cf0565b600080612e55866120ae565b1115612eac57612e6485611fb9565b60020154841160405180604001604052806009815260200168746f6f206561726c7960b81b81525090612eaa5760405162461bcd60e51b815260040161065f9190613ae1565b505b508354600181810186556000868152602090206003909202909101908101849055612ed783836132af565b8155612ee2846132de565b6002820155845460011015612f0657600185810154612f00916122fd565b60018601555b949350505050565b600282015460009080831115612f2857600091505061235a565b620151808382030491505061235a565b5092915050565b6000808211612f95576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612f9e57fe5b049392505050565b6000808211612fef576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612ffc57506000612b04565b8383028385828161300957fe5b0414156130225782818161301957fe5b04915050612b04565b600083868161302d57fe5b049050600084878161303b57fe5b069050600085878161304957fe5b049050600086888161305757fe5b06905061309961306b886123a986856132f2565b61237f61307886866132f2565b61237f61308589876132f2565b61237f8d6130938c8b6132f2565b906132f2565b9998505050505050505050565b60018201546130b590826122fd565b6001830155600290910155565b6000808360000160009054906101000a90046001600160a01b03166001600160a01b031663af04cd3b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561311557600080fd5b505afa925050508015613145575060408051601f3d908101601f19168201909252613142918101906139a7565b60015b61315b575082546001600160a01b03163161315e565b90505b60008351600181111561316d57fe5b1415613208576020830151600285015460009161318c91906064612fa6565b90506000828211156131a5576131a282846125c1565b90505b60006131b087613277565b9050818111156131c357600094506131d0565b6131cd82826125c1565b94505b60006131f18860040154611100848b600101546125c190919063ffffffff16565b9050808611156131ff578095505b50505050612f38565b60018351600181111561321757fe5b14156132375760038401546001850154613230916125c1565b9150612f38565b60009150fe5b60008061324b858585612fa6565b90506000838061325757fe5b8587099050801561326b578160010161326d565b815b9695505050505050565b600061235a826004015483600301546125c190919063ffffffff16565b60048201546132a390826122fd565b82600401819055505050565b60006123576132c284846201d4c0612fa6565b6132d96b026c62ad77dc602dae000000600c612f3f565b61334b565b600061235a60016111008462278d006122fd565b6000826133015750600061235a565b8282028284828161330e57fe5b04146123575760405162461bcd60e51b8152600401808060200182810382526021815260200180613d286021913960400191505060405180910390fd5b600081831061335a5781612357565b5090919050565b60405180606001604052806000815260200160008152602001600081525090565b6040805160608101909152806000815260006020820181905260409091015290565b50805460018160011615610100020316600290046000825580601f106133ca57506105b6565b601f0160209004906000526020600020908101906105b6919061346c565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261341e5760008555613464565b82601f1061343757805160ff1916838001178555613464565b82800160010185558215613464579182015b82811115613464578251825591602001919060010190613449565b506112e89291505b5b808211156112e8576000815560010161346d565b600082601f830112613491578081fd5b813560206134a66134a183613c14565b613bf0565b82815281810190858301838502870184018810156134c2578586fd5b855b858110156134e95781356134d781613cdd565b845292840192908401906001016134c4565b5090979650505050505050565b600060a0808385031215613508578182fd5b6040805182810167ffffffffffffffff828210818311171561352657fe5b818452829550865191508082111561353d57600080fd5b818701915087601f83011261355157600080fd5b815160206135616134a183613c14565b8281528181019085830160c0808602880185018e101561358057600080fd5b600097505b858810156136005780828f03121561359c57600080fd5b895181810181811089821117156135af57fe5b8b5282516135bc81613cdd565b815282860151868201528a8301518b82015260608084015190820152608080840151908201528b8301518c8201528452600197909701969284019290810190613585565b505080875250508089015181860152505050508185015182820152606085015160608201526080850151608082015250505092915050565b805161ffff8116811461060057600080fd5b60006020828403121561365b578081fd5b813561235781613cdd565b60008060408385031215613678578081fd5b823567ffffffffffffffff8082111561368f578283fd5b818501915085601f8301126136a2578283fd5b813560206136b26134a183613c14565b82815281810190858301838502870184018b10156136ce578788fd5b8796505b848710156136f05780358352600196909601959183019183016136d2565b5096505086013592505080821115613706578283fd5b5061371385828601613481565b9150509250929050565b6000602080838503121561372f578182fd5b825167ffffffffffffffff80821115613746578384fd5b818501915085601f830112613759578384fd5b81516137676134a182613c14565b818152848101908486016040808502870188018b1015613785578889fd5b8896505b848710156137df5780828c03121561379f578889fd5b805181810181811088821117156137b257fe5b825282516137bf81613cdd565b815282890151898201528452600196909601959287019290810190613789565b50909998505050505050505050565b6000602082840312156137ff578081fd5b81356001600160e01b031981168114612357578182fd5b60008060006060848603121561382a578081fd5b833561383581613cdd565b9250602084013561384581613cf2565b929592945050506040919091013590565b60008060408385031215613868578182fd5b823561387381613cdd565b946020939093013593505050565b600060208284031215613892578081fd5b815167ffffffffffffffff808211156138a9578283fd5b9083019060a082860312156138bc578283fd5b60405160a0810181811083821117156138d157fe5b604052825181526138e460208401613638565b6020820152604083015160408201526060830151606082015260808301518281111561390e578485fd5b61391a878286016134f6565b60808301525095945050505050565b60006060828403121561393a578081fd5b6040516060810181811067ffffffffffffffff8211171561395757fe5b604052825161396581613cf2565b81526020838101519082015260408301518015158114613983578283fd5b60408201529392505050565b6000602082840312156139a0578081fd5b5035919050565b6000602082840312156139b8578081fd5b5051919050565b60008151808452815b818110156139e4576020818501810151868301820152016139c8565b818111156139f55782602083870101525b50601f01601f19169290920160200192915050565b60028110613a1457fe5b9052565b6001600160a01b0391909116815260200190565b602080825282518282018190526000919060409081850190868401855b82811015613a9657815180516001600160a01b0316855286810151878601528581015186860152606080820151908601526080908101519085015260a09093019290850190600101613a49565b5091979650505050505050565b901515815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0392831681529116602082015260400190565b60006020825261235760208301846139bf565b602080825260139082015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604082015260600190565b81518152602080830151908201526040918201519181019190915260600190565b6000606082019050613b55828451613a0a565b6020830151602083015260408301511515604083015292915050565b6000606082019050613b878260ff855416613a0a565b6001830154602083015260029092015460ff16151560409091015290565b90815260200190565b600083825260406020830152612f0660408301846139bf565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b60405181810167ffffffffffffffff81118282101715613c0c57fe5b604052919050565b600067ffffffffffffffff821115613c2857fe5b5060209081020190565b60e01c90565b600060443d1015613c48576107a7565b600481823e6308c379a0613c5c8251613c32565b14613c66576107a7565b6040513d600319016004823e80513d67ffffffffffffffff8160248401118184111715613c9657505050506107a7565b82840192508251915080821115613cb057505050506107a7565b503d83016020828401011115613cc8575050506107a7565b601f01601f1916810160200160405291505090565b6001600160a01b03811681146105b657600080fd5b600281106105b657600080fdfe756e6b6e6f776e206572726f722e2067657454696d65536c6f7450657263656e7461676542697073536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77756e6b6e6f776e206572726f722e20757064617465417574686f72697a6564496e666c6174696f6e416e6443697263756c6174696e67537570706c79a26469706673582212203635a85c29566936146a5d54327e3a6a49ff43e99326200716f72340e93c105664736f6c63430007060033",
877
852
  "linkReferences": {},
878
853
  "deployedLinkReferences": {}
879
854
  }