@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
@@ -1180,8 +1180,8 @@
1180
1180
  "type": "function"
1181
1181
  }
1182
1182
  ],
1183
- "bytecode": "0x608060405260006012553480156200001657600080fd5b5060405162003c1538038062003c158339810160408190526200003991620001c0565b8180826200004781620000bc565b506001600160a01b0381161562000063576200006381620000e0565b506001600160a01b038116620000b3576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b505050620001f7565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600054600160a01b900460ff161562000140576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b80516001600160a01b0381168114620001bb57600080fd5b919050565b60008060408385031215620001d3578182fd5b620001de83620001a3565b9150620001ee60208401620001a3565b90509250929050565b613a0e80620002076000396000f3fe6080604052600436106102ae5760003560e01c806367fc402911610175578063aa98df39116100dc578063ddcec24411610095578063eb08ab281161006f578063eb08ab28146107fd578063f0ab3dd914610812578063f5a9838314610827578063f61c90db1461083c576102ae565b8063ddcec244146107be578063e17f212e146107d3578063ea4685de146107e8576102ae565b8063aa98df3914610719578063b00c0b761461072c578063bc903cb81461074c578063c2b0d47b1461077f578063cb85fe3514610794578063d7484db2146107a9576102ae565b80638dd324821161012e5780638dd324821461066457806396537cbe146106845780639850d32b146106a45780639d2dc81c146106b95780639d6a890f146106d9578063a230c524146106f9576102ae565b806367fc4029146105a15780636d1a350e146105c157806374e6310e146105e15780637727e1131461060f5780637fd169d0146106245780638ab060a914610644576102ae565b80633f66935c1161021957806356781388116101d2578063567813881461050057806359c077c0146105205780635aa6e675146105355780635ff270791461054a57806362354e031461056a57806365ca7cbe1461057f576102ae565b80633f66935c1461043057806340e58ee51461045057806342b4632e14610470578063438596321461049057806347c66140146104b05780635267a15d146104de576102ae565b806319eb8d481161026b57806319eb8d481461035f578063229acb171461038c5780632eec3858146103b9578063306face1146103ce5780633deae725146103ee5780633e4f49e614610403576102ae565b8063029d010d146102b35780630b1ca49a146102ca57806311466e7d146102ea5780631156575d1461031557806313ea5d291461032a57806315281cfb1461034a575b600080fd5b3480156102bf57600080fd5b506102c8610851565b005b3480156102d657600080fd5b506102c86102e5366004612f40565b610ae0565b3480156102f657600080fd5b506102ff610d7d565b60405161030c91906138bd565b60405180910390f35b34801561032157600080fd5b506102ff610d83565b34801561033657600080fd5b506102c8610345366004612f40565b610d89565b34801561035657600080fd5b506102ff610e41565b34801561036b57600080fd5b5061037f61037a366004612f5a565b610e47565b60405161030c91906133bc565b34801561039857600080fd5b506103ac6103a7366004613133565b610e64565b60405161030c91906133db565b3480156103c557600080fd5b506102ff610f08565b3480156103da57600080fd5b506102c86103e9366004612f40565b610f0e565b3480156103fa57600080fd5b506102ff611011565b34801561040f57600080fd5b5061042361041e366004613133565b611017565b60405161030c91906133c7565b34801561043c57600080fd5b506102ff61044b366004612f40565b611038565b34801561045c57600080fd5b506102c861046b366004613133565b61104a565b34801561047c57600080fd5b5061037f61048b366004612f40565b611123565b34801561049c57600080fd5b5061037f6104ab366004613163565b611136565b3480156104bc57600080fd5b506104d06104cb366004613133565b611165565b60405161030c9291906138fe565b3480156104ea57600080fd5b506104f361117e565b60405161030c91906132b2565b34801561050c57600080fd5b506102c861051b366004613222565b6111a3565b34801561052c57600080fd5b506102ff61127e565b34801561054157600080fd5b506104f3611284565b34801561055657600080fd5b506102c8610565366004613084565b611319565b34801561057657600080fd5b506104f361166e565b34801561058b57600080fd5b50610594611679565b60405161030c919061336f565b3480156105ad57600080fd5b506102c86105bc366004613084565b6116de565b3480156105cd57600080fd5b506104f36105dc366004612f40565b6117c6565b3480156105ed57600080fd5b506106016105fc366004613084565b6117e1565b60405161030c9291906138dd565b34801561061b57600080fd5b506102ff611887565b34801561063057600080fd5b506102c861063f3660046131b1565b61188d565b34801561065057600080fd5b506104f361065f366004612f40565b61198e565b34801561067057600080fd5b506102c861067f366004612f83565b6119a9565b34801561069057600080fd5b506102ff61069f366004612f40565b611b51565b3480156106b057600080fd5b506104f3611b63565b3480156106c557600080fd5b506102ff6106d4366004612f40565b611b72565b3480156106e557600080fd5b506102c86106f4366004612f40565b611b84565b34801561070557600080fd5b5061037f610714366004612f40565b611c3d565b6102ff6107273660046130ac565b611c5a565b34801561073857600080fd5b506102c8610747366004612fe4565b611e87565b34801561075857600080fd5b5061076c610767366004613133565b611f2e565b60405161030c97969594939291906133ee565b34801561078b57600080fd5b506104f3612009565b3480156107a057600080fd5b506102ff612018565b3480156107b557600080fd5b506104f361201e565b3480156107ca57600080fd5b506102ff61202d565b3480156107df57600080fd5b5061037f612033565b3480156107f457600080fd5b506102ff612043565b34801561080957600080fd5b506102ff612049565b34801561081e57600080fd5b5061060161204f565b34801561083357600080fd5b506102c86120f5565b34801561084857600080fd5b506102ff6121af565b600061085c336121b5565b6001600160a01b0381166000908152600a60205260409020549091501561089e5760405162461bcd60e51b81526004016108959061343b565b60405180910390fd5b600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b919061314b565b6019546001600160a01b03841660009081526006602052604090205491925062015180020142101561095f5760405162461bcd60e51b815260040161089590613789565b60155461096d908290612229565b600b54604051631194e01d60e21b81526001600160a01b039091169063465380749061099d9086906004016132b2565b60206040518083038186803b1580156109b557600080fd5b505afa1580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed919061314b565b10610a0a5760405162461bcd60e51b81526004016108959061363f565b805b601454610a1a908390612229565b811115610ad157600c5460405163eb82dd7f60e01b81526000916001600160a01b03169063eb82dd7f90610a589060001986019088906004016138c6565b604080518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa7919061318e565b50905080610ac75760405162461bcd60e51b81526004016108959061361b565b5060001901610a0c565b50610adc8282612286565b5050565b6001600160a01b0381166000908152600a6020526040902054610b155760405162461bcd60e51b8152600401610895906137b3565b600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015610b5a57600080fd5b505afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b92919061314b565b6016546001600160a01b03841660009081526008602052604090205491925001811115610c80576000815b601654610bcb908490612229565b811115610c6857600c5460405163eb82dd7f60e01b81526000916001600160a01b03169063eb82dd7f90610c099060001986019089906004016138c6565b604080518083038186803b158015610c2057600080fd5b505afa158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c58919061318e565b5092909201915060001901610bbd565b5080610c7e57610c7783612301565b5050610d7a565b505b6012546001600160a01b038316600090815260076020526040812054601754909190819083850310610d6257835b83811115610d6057601754821415610cc557610d60565b600081815260026020526040812090610cde8383612376565b9050610cea83836123fe565b8015610d1657506003816004811115610cff57fe5b1480610d1657506004816004811115610d1457fe5b145b15610d5557600184019350610d2b838a611136565b610d36576001850194505b6018548510610d5557610d4889612301565b5050505050505050610d7a565b505060001901610cae565b505b60405162461bcd60e51b8152600401610895906135ed565b50565b60145481565b600d5481565b600054600160b01b900460ff1680610dab5750600054600160a81b900460ff16155b15610e3657610db861243a565b6001600160a01b038116610dde5760405162461bcd60e51b8152600401610895906136fb565b601380546001600160a01b0319166001600160a01b0383161790556040517f0f10c1d0da464c1238d07effa37ea79a31fff7393da1bf0a720107001f6700b890610e299083906132b2565b60405180910390a1610d7a565b610d7a600036612471565b60175481565b6000610e5b610e55846121b5565b836125f4565b90505b92915050565b600081815260026020818152604092839020805484516001821615610100026000190190911693909304601f8101839004830284018301909452838352606093909291839190830182828015610efb5780601f10610ed057610100808354040283529160200191610efb565b820191906000526020600020905b815481529060010190602001808311610ede57829003601f168201915b5050505050915050919050565b60115481565b336000908152600460209081526040808320546001600160a01b039081168085526005909352922080546001600160a01b031916905590821615610fad576001600160a01b038281166000908152600560205260409020541615610f845760405162461bcd60e51b81526004016108959061348e565b6001600160a01b038216600090815260056020526040902080546001600160a01b031916331790555b336000818152600460205260409081902080546001600160a01b0319166001600160a01b038616179055517f14264d9310cb5cfd212adbd1fce42bade30859c1a7bd7930d4c15c642bc6249b916110059185906132c6565b60405180910390a15050565b600f5481565b6000818152600260205260408120611030908390612376565b90505b919050565b60066020526000908152604090205481565b60008181526002602052604090206001810154600160a01b900460ff16156110845760405162461bcd60e51b8152600401610895906136c4565b61108d336121b5565b60018201546001600160a01b039081169116146110bc5760405162461bcd60e51b815260040161089590613721565b806002015442106110df5760405162461bcd60e51b815260040161089590613507565b60018101805460ff60a01b1916600160a01b17905560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b6000611030611131836121b5565b612622565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff1692915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6000828152600260208190526040909120906111bf8483612376565b60048111156111ca57fe5b146111e75760405162461bcd60e51b815260040161089590613802565b60006111f2336121b5565b90506111fe81856125f4565b61121a5760405162461bcd60e51b8152600401610895906135a7565b6000611227858386612658565b905084826001600160a01b03167f5272ea0ffb2aa83ab5b7fcaa2d8a959323e41f6ece4cced28718d18793843b66868460010154856000015460405161126f9392919061395a565b60405180910390a35050505050565b60195481565b60008054600160a81b900460ff166112a7576000546001600160a01b0316611314565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b1580156112e757600080fd5b505afa1580156112fb573d6000803e3d6000fd5b505050506040513d602081101561131157600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561135d57600080fd5b505afa158015611371573d6000803e3d6000fd5b505050506040513d602081101561138757600080fd5b50516113ca576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054611436576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b805442101561148c576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115265780601f106114fb57610100808354040283529160200191611526565b820191906000526020600020905b81548152906001019060200180831161150957829003601f168201915b5050506001600160e01b031986166000908152600160208190526040822082815594955090925061155a9150830182612dd1565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b602083106115a25780518252601f199092019160209182019101611583565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611604576040519150601f19603f3d011682016040523d82523d6000602084013e611609565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a16116688161271a565b50505050565b60076001609c1b0181565b606060096000018054806020026020016040519081016040528092919081815260200182805480156116d457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116b6575b5050505050905090565b6116e6612737565b6001600160e01b03198116600090815260016020526040902054611751576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600160208190526040822082815591906117c190830182612dd1565b505050565b6004602052600090815260409020546001600160a01b031681565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f8101859004850286018501909652858552909491939290919083018282801561187d5780601f106118525761010080835404028352916020019161187d565b820191906000526020600020905b81548152906001019060200180831161186057829003601f168201915b5050505050905082565b60105481565b6013546001600160a01b031633146118b75760405162461bcd60e51b8152600401610895906134de565b60008a1180156118c957506127108911155b80156118d757506127108811155b80156118e257508386115b6118fe5760405162461bcd60e51b815260040161089590613891565b600d8b9055600e8a9055600f899055601088905560118790556014869055601585905560168490556017839055601882905560198190556040517fbb910a9c0db5059981263f5607af296884645adfd2998ae59cae8c7efa9edcd290611979908d908d908d908d908d908d908d908d908d908d908d9061390c565b60405180910390a15050505050505050505050565b6005602052600090815260409020546001600160a01b031681565b6013546001600160a01b031633146119d35760405162461bcd60e51b8152600401610895906134de565b60005b8151811015611a525760008282815181106119ed57fe5b6020026020010151905060096001016000826001600160a01b03166001600160a01b031681526020019081526020016000205460001415611a405760405162461bcd60e51b8152600401610895906137b3565b611a4981612301565b506001016119d6565b50600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015611a9857600080fd5b505afa158015611aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad0919061314b565b905060005b8351811015611668576000848281518110611aec57fe5b6020026020010151905060096001016000826001600160a01b03166001600160a01b0316815260200190815260200160002054600014611b3e5760405162461bcd60e51b81526004016108959061343b565b611b488184612286565b50600101611ad5565b60076020526000908152604090205481565b6013546001600160a01b031681565b60086020526000908152604090205481565b600054600160a01b900460ff1615611bda576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6001600160a01b03166000908152600a6020526040902054151590565b600080611c66336121b5565b9050611c7181612622565b611c8d5760405162461bcd60e51b815260040161089590613559565b3460115414611cae5760405162461bcd60e51b815260040161089590613696565b60128054600190810191829055600082815260026020818152604090922092830180546001600160a01b0319166001600160a01b038716179055600d544201908301819055600e54016003830155600f546004830155601054600583015585519294509091611d2291839190870190612e15565b5060006009600001805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050835160078701555091925060009150505b8151811015611de8576001836006016000848481518110611dae57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611d91565b506001820154600283015460038401546004850154600586015460405189957f1986b4feedb3f25a75bf9c91113b849b8d51d82294b3129bb2dc1ec49f37720895611e48956001600160a01b03909216948d9491939091906009906132e0565b60405180910390a260405161dead903480156108fc02916000818181858888f19350505050158015611e7e573d6000803e3d6000fd5b50505050919050565b611e8f61117e565b6001600160a01b0316336001600160a01b031614611eeb576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b611f24611f1f83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250612796565b6128c3565b610adc82826128e7565b600081815260026020818152604080842060018082015482860154600384015460048501546005860154865488516101009782161597909702600019011699909904601f81018990048902860189019097528685526060996001600160a01b0390941698929791969095929491839190830182828015611fef5780601f10611fc457610100808354040283529160200191611fef565b820191906000526020600020905b815481529060010190602001808311611fd257829003601f168201915b505050505097508060070154915050919395979092949650565b600b546001600160a01b031681565b600e5481565b600c546001600160a01b031681565b60165481565b600054600160a81b900460ff1681565b60185481565b60125481565b601254600081815260026020818152604092839020805484516001821615610100026000190190911693909304601f81018390048302840183019094528383526060939092918391908301828280156120e95780601f106120be576101008083540402835291602001916120e9565b820191906000526020600020905b8154815290600101906020018083116120cc57829003601f168201915b50505050509150509091565b6120fd612737565b600054600160a81b900460ff161561215c576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60155481565b6013546000906001600160a01b03838116911614156121d5575080611033565b6001600160a01b0382166000908152600a6020526040902054156121fa575080611033565b6001600160a01b03808316600090815260056020526040902054168015612222579050611033565b5090919050565b600082821115612280576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b7f24be00480491b27b633d208fff5843a684b70e462ec21a0f41c94f2b753ac300826040516122b591906132b2565b60405180910390a16122c8600983612998565b6012546001600160a01b039092166000908152600760209081526040808320949094556008815283822092909255600690915290812055565b7f1dab341b3e11359cceb89825317b6ce5580bcb2d0f18ff30098c144c6f6fcb1e8160405161233091906132b2565b60405180910390a1612343600982612a01565b6001600160a01b031660009081526007602090815260408083208390556008825280832083905560069091529020429055565b6001810154600090600160a01b900460ff161561239557506000610e5e565b60028201546123b65760405162461bcd60e51b815260040161089590613669565b42826002015411156123ca57506001610e5e565b42826003015411156123de57506002610e5e565b6123e88383612afc565b156123f557506004610e5e565b50600392915050565b600080600061240c85611165565b9150915061242f84600701546127108660040154612b719092919063ffffffff16565b910110159392505050565b600054600160b01b900460ff16156124675733301461245557fe5b6000805460ff60b01b1916905561246f565b61246f612737565b565b612479612737565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156124c157600080fd5b505afa1580156124d5573d6000803e3d6000fd5b505050506040513d60208110156124eb57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b0319861681526001602081815260409092208451815584830151805191945061256f93928501920190612e15565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b60009081526002602090815260408083206001600160a01b0394909416835260069093019052205460ff1690565b6001600160a01b0381166000908152600a60205260408120541515806110305750506013546001600160a01b0390811691161490565b60008381526003602090815260408083206001600160a01b0386168452600281019092529091205460ff16156126a05760405162461bcd60e51b815260040161089590613866565b6001600160a01b03831660009081526002820160205260408120805460ff1916600117905560ff168260ff1614156126de5780546001018155612713565b60ff8216600114156126fb57600181810180549091019055612713565b60405162461bcd60e51b81526004016108959061382f565b9392505050565b3d604051818101604052816000823e8215612733578181f35b8181fd5b61273f611284565b6001600160a01b0316336001600160a01b03161461246f576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156127da5781810151838201526020016127c2565b50505050905090810190601f1680156128075780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b865181101561286f5786818151811061283d57fe5b60200260200101518314156128675785818151811061285857fe5b6020026020010151915061286f565b600101612828565b506001600160a01b0381166128ba576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61291a82826040518060400160405280601081526020016f2b37ba32b92bb434ba32b634b9ba32b960811b815250612796565b600b60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612974828260405180604001604052806011815260200170233a39b7a932bbb0b93226b0b730b3b2b960791b815250612796565b600c80546001600160a01b0319166001600160a01b03929092169190911790555050565b6001600160a01b0381166000908152600183016020526040902054156129bd57610adc565b8154600180820184556000848152602080822090930180546001600160a01b0319166001600160a01b03959095169485179055845493815293019052604090912055565b6001600160a01b038116600090815260018301602052604090205480612a275750610adc565b8254811015612aaf57825460009084906000198101908110612a4557fe5b60009182526020909120015484546001600160a01b039091169150819085906000198501908110612a7257fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260018501909152604090208190555b8254839080612aba57fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03841682526001850190526040812055505050565b600082815260036020526040812060078301546004840154612b2091612710612b71565b81546001830154011015612b38576000915050610e5e565b805460018201546005850154612b5392909101612710612bab565b816001015411612b67576000915050610e5e565b5060019392505050565b600080612b7f858585612bab565b905060008380612b8b57fe5b85870990508015612b9f5781600101612ba1565b815b9695505050505050565b6000808211612bf4576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612c0157506000612713565b83830283858281612c0e57fe5b041415612c2757828181612c1e57fe5b04915050612713565b6000838681612c3257fe5b0490506000848781612c4057fe5b0690506000858781612c4e57fe5b0490506000868881612c5c57fe5b069050612caa612c7688612c708685612cb7565b90612d10565b612ca4612c838686612cb7565b612ca4612c908987612cb7565b612ca48d612c9e8c8b612cb7565b90612cb7565b90612d77565b9998505050505050505050565b600082612cc657506000610e5e565b82820282848281612cd357fe5b0414610e5b5760405162461bcd60e51b81526004018080602001828103825260218152602001806139b86021913960400191505060405180910390fd5b6000808211612d66576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612d6f57fe5b049392505050565b600082820183811015610e5b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612df75750610d7a565b601f016020900490600052602060002090810190610d7a9190612ea1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e4b5760008555612e91565b82601f10612e6457805160ff1916838001178555612e91565b82800160010185558215612e91579182015b82811115612e91578251825591602001919060010190612e76565b50612e9d929150612ea1565b5090565b5b80821115612e9d5760008155600101612ea2565b80356001600160a01b038116811461103357600080fd5b600082601f830112612edd578081fd5b81356020612ef2612eed83613999565b613975565b8281528181019085830183850287018401881015612f0e578586fd5b855b85811015612f3357612f2182612eb6565b84529284019290840190600101612f10565b5090979650505050505050565b600060208284031215612f51578081fd5b610e5b82612eb6565b60008060408385031215612f6c578081fd5b612f7583612eb6565b946020939093013593505050565b60008060408385031215612f95578182fd5b823567ffffffffffffffff80821115612fac578384fd5b612fb886838701612ecd565b93506020850135915080821115612fcd578283fd5b50612fda85828601612ecd565b9150509250929050565b60008060408385031215612ff6578182fd5b823567ffffffffffffffff8082111561300d578384fd5b818501915085601f830112613020578384fd5b81356020613030612eed83613999565b82815281810190858301838502870184018b101561304c578889fd5b8896505b8487101561306e578035835260019690960195918301918301613050565b5096505086013592505080821115612fcd578283fd5b600060208284031215613095578081fd5b81356001600160e01b031981168114610e5b578182fd5b600060208083850312156130be578182fd5b823567ffffffffffffffff808211156130d5578384fd5b818501915085601f8301126130e8578384fd5b8135818111156130f457fe5b613106601f8201601f19168501613975565b9150808252868482850101111561311b578485fd5b80848401858401378101909201929092529392505050565b600060208284031215613144578081fd5b5035919050565b60006020828403121561315c578081fd5b5051919050565b60008060408385031215613175578182fd5b8235915061318560208401612eb6565b90509250929050565b600080604083850312156131a0578182fd5b505080516020909101519092909150565b60008060008060008060008060008060006101608c8e0312156131d2578687fd5b505089359b60208b01359b5060408b01359a60608101359a506080810135995060a0810135985060c0810135975060e0810135965061010081013595506101208101359450610140013592509050565b60008060408385031215613234578182fd5b82359150602083013560ff8116811461324b578182fd5b809150509250929050565b6001600160a01b0316815260200190565b60008151808452815b8181101561328c57602081850181015186830182015201613270565b8181111561329d5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b600060018060a01b03808a16835260e0602084015261330260e084018a613267565b8860408501528760608501528660808501528560a085015283810360c0850152808554808352602083019150868552602085209250845b8181101561335d5761334e8386865416613256565b60019485019490935001613339565b50909c9b505050505050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156133b05783516001600160a01b03168352928401929184019160010161338b565b50909695505050505050565b901515815260200190565b60208101600583106133d557fe5b91905290565b600060208252610e5b6020830184613267565b600060e0825261340160e083018a613267565b6001600160a01b039890981660208301525060408101959095526060850193909352608084019190915260a083015260c090910152919050565b60208082526033908201527f6163636f756e7420697320616c72656164792061206d656d626572206f66207460408201527206865206d616e6167656d656e742067726f757606c1b606082015260800190565b60208082526030908201527f6164647265737320697320616c726561647920612070726f7879206f6620736f60408201526f36b2903230ba3090383937bb34b232b960811b606082015260800190565b6020808252600f908201526e37b7363c9036b0b4b73a30b4b732b960891b604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b60208082526026908201527f61646472657373206973206e6f7420656c696769626c6520746f2063617374206040820152656120766f746560d01b606082015260800190565b60208082526014908201527331b0b73737ba103932b6b7bb329036b2b6b132b960611b604082015260600190565b6020808252600a90820152696e6f207265776172647360b01b604082015260600190565b60208082526010908201526f1c9958d95b9d1b1e4818da1a5b1b195960821b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b6020808252601490820152731c1c9bdc1bdcd85b08199959481a5b9d985b1a5960621b604082015260600190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b6020808252600c908201526b7a65726f206164647265737360a01b604082015260600190565b60208082526042908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201527f206974732070726f706f736572206f72206869732070726f7879206164647265606082015261737360f01b608082015260a00190565b60208082526010908201526f1c9958d95b9d1b1e481c995b5bdd995960821b604082015260600190565b6020808252602f908201527f6163636f756e74206973206e6f742061206d656d626572206f6620746865206d60408201526e0616e6167656d656e742067726f757608c1b606082015260800190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b602080825260129082015271696e76616c696420706172616d657465727360701b604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b6000838252604060208301526138f66040830184613267565b949350505050565b918252602082015260400190565b9a8b5260208b019990995260408a01979097526060890195909552608088019390935260a087019190915260c086015260e08501526101008401526101208301526101408201526101600190565b60ff9390931683526020830191909152604082015260600190565b60405181810167ffffffffffffffff8111828210171561399157fe5b604052919050565b600067ffffffffffffffff8211156139ad57fe5b506020908102019056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e8b1a865e8f3833ca2fe388b90474dde391fdcbfe3c6983c54d5afb6982b150764736f6c63430007060033",
1184
- "deployedBytecode": "0x6080604052600436106102ae5760003560e01c806367fc402911610175578063aa98df39116100dc578063ddcec24411610095578063eb08ab281161006f578063eb08ab28146107fd578063f0ab3dd914610812578063f5a9838314610827578063f61c90db1461083c576102ae565b8063ddcec244146107be578063e17f212e146107d3578063ea4685de146107e8576102ae565b8063aa98df3914610719578063b00c0b761461072c578063bc903cb81461074c578063c2b0d47b1461077f578063cb85fe3514610794578063d7484db2146107a9576102ae565b80638dd324821161012e5780638dd324821461066457806396537cbe146106845780639850d32b146106a45780639d2dc81c146106b95780639d6a890f146106d9578063a230c524146106f9576102ae565b806367fc4029146105a15780636d1a350e146105c157806374e6310e146105e15780637727e1131461060f5780637fd169d0146106245780638ab060a914610644576102ae565b80633f66935c1161021957806356781388116101d2578063567813881461050057806359c077c0146105205780635aa6e675146105355780635ff270791461054a57806362354e031461056a57806365ca7cbe1461057f576102ae565b80633f66935c1461043057806340e58ee51461045057806342b4632e14610470578063438596321461049057806347c66140146104b05780635267a15d146104de576102ae565b806319eb8d481161026b57806319eb8d481461035f578063229acb171461038c5780632eec3858146103b9578063306face1146103ce5780633deae725146103ee5780633e4f49e614610403576102ae565b8063029d010d146102b35780630b1ca49a146102ca57806311466e7d146102ea5780631156575d1461031557806313ea5d291461032a57806315281cfb1461034a575b600080fd5b3480156102bf57600080fd5b506102c8610851565b005b3480156102d657600080fd5b506102c86102e5366004612f40565b610ae0565b3480156102f657600080fd5b506102ff610d7d565b60405161030c91906138bd565b60405180910390f35b34801561032157600080fd5b506102ff610d83565b34801561033657600080fd5b506102c8610345366004612f40565b610d89565b34801561035657600080fd5b506102ff610e41565b34801561036b57600080fd5b5061037f61037a366004612f5a565b610e47565b60405161030c91906133bc565b34801561039857600080fd5b506103ac6103a7366004613133565b610e64565b60405161030c91906133db565b3480156103c557600080fd5b506102ff610f08565b3480156103da57600080fd5b506102c86103e9366004612f40565b610f0e565b3480156103fa57600080fd5b506102ff611011565b34801561040f57600080fd5b5061042361041e366004613133565b611017565b60405161030c91906133c7565b34801561043c57600080fd5b506102ff61044b366004612f40565b611038565b34801561045c57600080fd5b506102c861046b366004613133565b61104a565b34801561047c57600080fd5b5061037f61048b366004612f40565b611123565b34801561049c57600080fd5b5061037f6104ab366004613163565b611136565b3480156104bc57600080fd5b506104d06104cb366004613133565b611165565b60405161030c9291906138fe565b3480156104ea57600080fd5b506104f361117e565b60405161030c91906132b2565b34801561050c57600080fd5b506102c861051b366004613222565b6111a3565b34801561052c57600080fd5b506102ff61127e565b34801561054157600080fd5b506104f3611284565b34801561055657600080fd5b506102c8610565366004613084565b611319565b34801561057657600080fd5b506104f361166e565b34801561058b57600080fd5b50610594611679565b60405161030c919061336f565b3480156105ad57600080fd5b506102c86105bc366004613084565b6116de565b3480156105cd57600080fd5b506104f36105dc366004612f40565b6117c6565b3480156105ed57600080fd5b506106016105fc366004613084565b6117e1565b60405161030c9291906138dd565b34801561061b57600080fd5b506102ff611887565b34801561063057600080fd5b506102c861063f3660046131b1565b61188d565b34801561065057600080fd5b506104f361065f366004612f40565b61198e565b34801561067057600080fd5b506102c861067f366004612f83565b6119a9565b34801561069057600080fd5b506102ff61069f366004612f40565b611b51565b3480156106b057600080fd5b506104f3611b63565b3480156106c557600080fd5b506102ff6106d4366004612f40565b611b72565b3480156106e557600080fd5b506102c86106f4366004612f40565b611b84565b34801561070557600080fd5b5061037f610714366004612f40565b611c3d565b6102ff6107273660046130ac565b611c5a565b34801561073857600080fd5b506102c8610747366004612fe4565b611e87565b34801561075857600080fd5b5061076c610767366004613133565b611f2e565b60405161030c97969594939291906133ee565b34801561078b57600080fd5b506104f3612009565b3480156107a057600080fd5b506102ff612018565b3480156107b557600080fd5b506104f361201e565b3480156107ca57600080fd5b506102ff61202d565b3480156107df57600080fd5b5061037f612033565b3480156107f457600080fd5b506102ff612043565b34801561080957600080fd5b506102ff612049565b34801561081e57600080fd5b5061060161204f565b34801561083357600080fd5b506102c86120f5565b34801561084857600080fd5b506102ff6121af565b600061085c336121b5565b6001600160a01b0381166000908152600a60205260409020549091501561089e5760405162461bcd60e51b81526004016108959061343b565b60405180910390fd5b600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b919061314b565b6019546001600160a01b03841660009081526006602052604090205491925062015180020142101561095f5760405162461bcd60e51b815260040161089590613789565b60155461096d908290612229565b600b54604051631194e01d60e21b81526001600160a01b039091169063465380749061099d9086906004016132b2565b60206040518083038186803b1580156109b557600080fd5b505afa1580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed919061314b565b10610a0a5760405162461bcd60e51b81526004016108959061363f565b805b601454610a1a908390612229565b811115610ad157600c5460405163eb82dd7f60e01b81526000916001600160a01b03169063eb82dd7f90610a589060001986019088906004016138c6565b604080518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa7919061318e565b50905080610ac75760405162461bcd60e51b81526004016108959061361b565b5060001901610a0c565b50610adc8282612286565b5050565b6001600160a01b0381166000908152600a6020526040902054610b155760405162461bcd60e51b8152600401610895906137b3565b600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015610b5a57600080fd5b505afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b92919061314b565b6016546001600160a01b03841660009081526008602052604090205491925001811115610c80576000815b601654610bcb908490612229565b811115610c6857600c5460405163eb82dd7f60e01b81526000916001600160a01b03169063eb82dd7f90610c099060001986019089906004016138c6565b604080518083038186803b158015610c2057600080fd5b505afa158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c58919061318e565b5092909201915060001901610bbd565b5080610c7e57610c7783612301565b5050610d7a565b505b6012546001600160a01b038316600090815260076020526040812054601754909190819083850310610d6257835b83811115610d6057601754821415610cc557610d60565b600081815260026020526040812090610cde8383612376565b9050610cea83836123fe565b8015610d1657506003816004811115610cff57fe5b1480610d1657506004816004811115610d1457fe5b145b15610d5557600184019350610d2b838a611136565b610d36576001850194505b6018548510610d5557610d4889612301565b5050505050505050610d7a565b505060001901610cae565b505b60405162461bcd60e51b8152600401610895906135ed565b50565b60145481565b600d5481565b600054600160b01b900460ff1680610dab5750600054600160a81b900460ff16155b15610e3657610db861243a565b6001600160a01b038116610dde5760405162461bcd60e51b8152600401610895906136fb565b601380546001600160a01b0319166001600160a01b0383161790556040517f0f10c1d0da464c1238d07effa37ea79a31fff7393da1bf0a720107001f6700b890610e299083906132b2565b60405180910390a1610d7a565b610d7a600036612471565b60175481565b6000610e5b610e55846121b5565b836125f4565b90505b92915050565b600081815260026020818152604092839020805484516001821615610100026000190190911693909304601f8101839004830284018301909452838352606093909291839190830182828015610efb5780601f10610ed057610100808354040283529160200191610efb565b820191906000526020600020905b815481529060010190602001808311610ede57829003601f168201915b5050505050915050919050565b60115481565b336000908152600460209081526040808320546001600160a01b039081168085526005909352922080546001600160a01b031916905590821615610fad576001600160a01b038281166000908152600560205260409020541615610f845760405162461bcd60e51b81526004016108959061348e565b6001600160a01b038216600090815260056020526040902080546001600160a01b031916331790555b336000818152600460205260409081902080546001600160a01b0319166001600160a01b038616179055517f14264d9310cb5cfd212adbd1fce42bade30859c1a7bd7930d4c15c642bc6249b916110059185906132c6565b60405180910390a15050565b600f5481565b6000818152600260205260408120611030908390612376565b90505b919050565b60066020526000908152604090205481565b60008181526002602052604090206001810154600160a01b900460ff16156110845760405162461bcd60e51b8152600401610895906136c4565b61108d336121b5565b60018201546001600160a01b039081169116146110bc5760405162461bcd60e51b815260040161089590613721565b806002015442106110df5760405162461bcd60e51b815260040161089590613507565b60018101805460ff60a01b1916600160a01b17905560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b6000611030611131836121b5565b612622565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff1692915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6000828152600260208190526040909120906111bf8483612376565b60048111156111ca57fe5b146111e75760405162461bcd60e51b815260040161089590613802565b60006111f2336121b5565b90506111fe81856125f4565b61121a5760405162461bcd60e51b8152600401610895906135a7565b6000611227858386612658565b905084826001600160a01b03167f5272ea0ffb2aa83ab5b7fcaa2d8a959323e41f6ece4cced28718d18793843b66868460010154856000015460405161126f9392919061395a565b60405180910390a35050505050565b60195481565b60008054600160a81b900460ff166112a7576000546001600160a01b0316611314565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b1580156112e757600080fd5b505afa1580156112fb573d6000803e3d6000fd5b505050506040513d602081101561131157600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561135d57600080fd5b505afa158015611371573d6000803e3d6000fd5b505050506040513d602081101561138757600080fd5b50516113ca576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054611436576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b805442101561148c576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115265780601f106114fb57610100808354040283529160200191611526565b820191906000526020600020905b81548152906001019060200180831161150957829003601f168201915b5050506001600160e01b031986166000908152600160208190526040822082815594955090925061155a9150830182612dd1565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b602083106115a25780518252601f199092019160209182019101611583565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611604576040519150601f19603f3d011682016040523d82523d6000602084013e611609565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a16116688161271a565b50505050565b60076001609c1b0181565b606060096000018054806020026020016040519081016040528092919081815260200182805480156116d457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116b6575b5050505050905090565b6116e6612737565b6001600160e01b03198116600090815260016020526040902054611751576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600160208190526040822082815591906117c190830182612dd1565b505050565b6004602052600090815260409020546001600160a01b031681565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f8101859004850286018501909652858552909491939290919083018282801561187d5780601f106118525761010080835404028352916020019161187d565b820191906000526020600020905b81548152906001019060200180831161186057829003601f168201915b5050505050905082565b60105481565b6013546001600160a01b031633146118b75760405162461bcd60e51b8152600401610895906134de565b60008a1180156118c957506127108911155b80156118d757506127108811155b80156118e257508386115b6118fe5760405162461bcd60e51b815260040161089590613891565b600d8b9055600e8a9055600f899055601088905560118790556014869055601585905560168490556017839055601882905560198190556040517fbb910a9c0db5059981263f5607af296884645adfd2998ae59cae8c7efa9edcd290611979908d908d908d908d908d908d908d908d908d908d908d9061390c565b60405180910390a15050505050505050505050565b6005602052600090815260409020546001600160a01b031681565b6013546001600160a01b031633146119d35760405162461bcd60e51b8152600401610895906134de565b60005b8151811015611a525760008282815181106119ed57fe5b6020026020010151905060096001016000826001600160a01b03166001600160a01b031681526020019081526020016000205460001415611a405760405162461bcd60e51b8152600401610895906137b3565b611a4981612301565b506001016119d6565b50600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015611a9857600080fd5b505afa158015611aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad0919061314b565b905060005b8351811015611668576000848281518110611aec57fe5b6020026020010151905060096001016000826001600160a01b03166001600160a01b0316815260200190815260200160002054600014611b3e5760405162461bcd60e51b81526004016108959061343b565b611b488184612286565b50600101611ad5565b60076020526000908152604090205481565b6013546001600160a01b031681565b60086020526000908152604090205481565b600054600160a01b900460ff1615611bda576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6001600160a01b03166000908152600a6020526040902054151590565b600080611c66336121b5565b9050611c7181612622565b611c8d5760405162461bcd60e51b815260040161089590613559565b3460115414611cae5760405162461bcd60e51b815260040161089590613696565b60128054600190810191829055600082815260026020818152604090922092830180546001600160a01b0319166001600160a01b038716179055600d544201908301819055600e54016003830155600f546004830155601054600583015585519294509091611d2291839190870190612e15565b5060006009600001805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050835160078701555091925060009150505b8151811015611de8576001836006016000848481518110611dae57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611d91565b506001820154600283015460038401546004850154600586015460405189957f1986b4feedb3f25a75bf9c91113b849b8d51d82294b3129bb2dc1ec49f37720895611e48956001600160a01b03909216948d9491939091906009906132e0565b60405180910390a260405161dead903480156108fc02916000818181858888f19350505050158015611e7e573d6000803e3d6000fd5b50505050919050565b611e8f61117e565b6001600160a01b0316336001600160a01b031614611eeb576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b611f24611f1f83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250612796565b6128c3565b610adc82826128e7565b600081815260026020818152604080842060018082015482860154600384015460048501546005860154865488516101009782161597909702600019011699909904601f81018990048902860189019097528685526060996001600160a01b0390941698929791969095929491839190830182828015611fef5780601f10611fc457610100808354040283529160200191611fef565b820191906000526020600020905b815481529060010190602001808311611fd257829003601f168201915b505050505097508060070154915050919395979092949650565b600b546001600160a01b031681565b600e5481565b600c546001600160a01b031681565b60165481565b600054600160a81b900460ff1681565b60185481565b60125481565b601254600081815260026020818152604092839020805484516001821615610100026000190190911693909304601f81018390048302840183019094528383526060939092918391908301828280156120e95780601f106120be576101008083540402835291602001916120e9565b820191906000526020600020905b8154815290600101906020018083116120cc57829003601f168201915b50505050509150509091565b6120fd612737565b600054600160a81b900460ff161561215c576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60155481565b6013546000906001600160a01b03838116911614156121d5575080611033565b6001600160a01b0382166000908152600a6020526040902054156121fa575080611033565b6001600160a01b03808316600090815260056020526040902054168015612222579050611033565b5090919050565b600082821115612280576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b7f24be00480491b27b633d208fff5843a684b70e462ec21a0f41c94f2b753ac300826040516122b591906132b2565b60405180910390a16122c8600983612998565b6012546001600160a01b039092166000908152600760209081526040808320949094556008815283822092909255600690915290812055565b7f1dab341b3e11359cceb89825317b6ce5580bcb2d0f18ff30098c144c6f6fcb1e8160405161233091906132b2565b60405180910390a1612343600982612a01565b6001600160a01b031660009081526007602090815260408083208390556008825280832083905560069091529020429055565b6001810154600090600160a01b900460ff161561239557506000610e5e565b60028201546123b65760405162461bcd60e51b815260040161089590613669565b42826002015411156123ca57506001610e5e565b42826003015411156123de57506002610e5e565b6123e88383612afc565b156123f557506004610e5e565b50600392915050565b600080600061240c85611165565b9150915061242f84600701546127108660040154612b719092919063ffffffff16565b910110159392505050565b600054600160b01b900460ff16156124675733301461245557fe5b6000805460ff60b01b1916905561246f565b61246f612737565b565b612479612737565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156124c157600080fd5b505afa1580156124d5573d6000803e3d6000fd5b505050506040513d60208110156124eb57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b0319861681526001602081815260409092208451815584830151805191945061256f93928501920190612e15565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b60009081526002602090815260408083206001600160a01b0394909416835260069093019052205460ff1690565b6001600160a01b0381166000908152600a60205260408120541515806110305750506013546001600160a01b0390811691161490565b60008381526003602090815260408083206001600160a01b0386168452600281019092529091205460ff16156126a05760405162461bcd60e51b815260040161089590613866565b6001600160a01b03831660009081526002820160205260408120805460ff1916600117905560ff168260ff1614156126de5780546001018155612713565b60ff8216600114156126fb57600181810180549091019055612713565b60405162461bcd60e51b81526004016108959061382f565b9392505050565b3d604051818101604052816000823e8215612733578181f35b8181fd5b61273f611284565b6001600160a01b0316336001600160a01b03161461246f576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156127da5781810151838201526020016127c2565b50505050905090810190601f1680156128075780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b865181101561286f5786818151811061283d57fe5b60200260200101518314156128675785818151811061285857fe5b6020026020010151915061286f565b600101612828565b506001600160a01b0381166128ba576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61291a82826040518060400160405280601081526020016f2b37ba32b92bb434ba32b634b9ba32b960811b815250612796565b600b60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612974828260405180604001604052806011815260200170233a39b7a932bbb0b93226b0b730b3b2b960791b815250612796565b600c80546001600160a01b0319166001600160a01b03929092169190911790555050565b6001600160a01b0381166000908152600183016020526040902054156129bd57610adc565b8154600180820184556000848152602080822090930180546001600160a01b0319166001600160a01b03959095169485179055845493815293019052604090912055565b6001600160a01b038116600090815260018301602052604090205480612a275750610adc565b8254811015612aaf57825460009084906000198101908110612a4557fe5b60009182526020909120015484546001600160a01b039091169150819085906000198501908110612a7257fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260018501909152604090208190555b8254839080612aba57fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03841682526001850190526040812055505050565b600082815260036020526040812060078301546004840154612b2091612710612b71565b81546001830154011015612b38576000915050610e5e565b805460018201546005850154612b5392909101612710612bab565b816001015411612b67576000915050610e5e565b5060019392505050565b600080612b7f858585612bab565b905060008380612b8b57fe5b85870990508015612b9f5781600101612ba1565b815b9695505050505050565b6000808211612bf4576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612c0157506000612713565b83830283858281612c0e57fe5b041415612c2757828181612c1e57fe5b04915050612713565b6000838681612c3257fe5b0490506000848781612c4057fe5b0690506000858781612c4e57fe5b0490506000868881612c5c57fe5b069050612caa612c7688612c708685612cb7565b90612d10565b612ca4612c838686612cb7565b612ca4612c908987612cb7565b612ca48d612c9e8c8b612cb7565b90612cb7565b90612d77565b9998505050505050505050565b600082612cc657506000610e5e565b82820282848281612cd357fe5b0414610e5b5760405162461bcd60e51b81526004018080602001828103825260218152602001806139b86021913960400191505060405180910390fd5b6000808211612d66576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612d6f57fe5b049392505050565b600082820183811015610e5b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612df75750610d7a565b601f016020900490600052602060002090810190610d7a9190612ea1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e4b5760008555612e91565b82601f10612e6457805160ff1916838001178555612e91565b82800160010185558215612e91579182015b82811115612e91578251825591602001919060010190612e76565b50612e9d929150612ea1565b5090565b5b80821115612e9d5760008155600101612ea2565b80356001600160a01b038116811461103357600080fd5b600082601f830112612edd578081fd5b81356020612ef2612eed83613999565b613975565b8281528181019085830183850287018401881015612f0e578586fd5b855b85811015612f3357612f2182612eb6565b84529284019290840190600101612f10565b5090979650505050505050565b600060208284031215612f51578081fd5b610e5b82612eb6565b60008060408385031215612f6c578081fd5b612f7583612eb6565b946020939093013593505050565b60008060408385031215612f95578182fd5b823567ffffffffffffffff80821115612fac578384fd5b612fb886838701612ecd565b93506020850135915080821115612fcd578283fd5b50612fda85828601612ecd565b9150509250929050565b60008060408385031215612ff6578182fd5b823567ffffffffffffffff8082111561300d578384fd5b818501915085601f830112613020578384fd5b81356020613030612eed83613999565b82815281810190858301838502870184018b101561304c578889fd5b8896505b8487101561306e578035835260019690960195918301918301613050565b5096505086013592505080821115612fcd578283fd5b600060208284031215613095578081fd5b81356001600160e01b031981168114610e5b578182fd5b600060208083850312156130be578182fd5b823567ffffffffffffffff808211156130d5578384fd5b818501915085601f8301126130e8578384fd5b8135818111156130f457fe5b613106601f8201601f19168501613975565b9150808252868482850101111561311b578485fd5b80848401858401378101909201929092529392505050565b600060208284031215613144578081fd5b5035919050565b60006020828403121561315c578081fd5b5051919050565b60008060408385031215613175578182fd5b8235915061318560208401612eb6565b90509250929050565b600080604083850312156131a0578182fd5b505080516020909101519092909150565b60008060008060008060008060008060006101608c8e0312156131d2578687fd5b505089359b60208b01359b5060408b01359a60608101359a506080810135995060a0810135985060c0810135975060e0810135965061010081013595506101208101359450610140013592509050565b60008060408385031215613234578182fd5b82359150602083013560ff8116811461324b578182fd5b809150509250929050565b6001600160a01b0316815260200190565b60008151808452815b8181101561328c57602081850181015186830182015201613270565b8181111561329d5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b600060018060a01b03808a16835260e0602084015261330260e084018a613267565b8860408501528760608501528660808501528560a085015283810360c0850152808554808352602083019150868552602085209250845b8181101561335d5761334e8386865416613256565b60019485019490935001613339565b50909c9b505050505050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156133b05783516001600160a01b03168352928401929184019160010161338b565b50909695505050505050565b901515815260200190565b60208101600583106133d557fe5b91905290565b600060208252610e5b6020830184613267565b600060e0825261340160e083018a613267565b6001600160a01b039890981660208301525060408101959095526060850193909352608084019190915260a083015260c090910152919050565b60208082526033908201527f6163636f756e7420697320616c72656164792061206d656d626572206f66207460408201527206865206d616e6167656d656e742067726f757606c1b606082015260800190565b60208082526030908201527f6164647265737320697320616c726561647920612070726f7879206f6620736f60408201526f36b2903230ba3090383937bb34b232b960811b606082015260800190565b6020808252600f908201526e37b7363c9036b0b4b73a30b4b732b960891b604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b60208082526026908201527f61646472657373206973206e6f7420656c696769626c6520746f2063617374206040820152656120766f746560d01b606082015260800190565b60208082526014908201527331b0b73737ba103932b6b7bb329036b2b6b132b960611b604082015260600190565b6020808252600a90820152696e6f207265776172647360b01b604082015260600190565b60208082526010908201526f1c9958d95b9d1b1e4818da1a5b1b195960821b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b6020808252601490820152731c1c9bdc1bdcd85b08199959481a5b9d985b1a5960621b604082015260600190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b6020808252600c908201526b7a65726f206164647265737360a01b604082015260600190565b60208082526042908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201527f206974732070726f706f736572206f72206869732070726f7879206164647265606082015261737360f01b608082015260a00190565b60208082526010908201526f1c9958d95b9d1b1e481c995b5bdd995960821b604082015260600190565b6020808252602f908201527f6163636f756e74206973206e6f742061206d656d626572206f6620746865206d60408201526e0616e6167656d656e742067726f757608c1b606082015260800190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b602080825260129082015271696e76616c696420706172616d657465727360701b604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b6000838252604060208301526138f66040830184613267565b949350505050565b918252602082015260400190565b9a8b5260208b019990995260408a01979097526060890195909552608088019390935260a087019190915260c086015260e08501526101008401526101208301526101408201526101600190565b60ff9390931683526020830191909152604082015260600190565b60405181810167ffffffffffffffff8111828210171561399157fe5b604052919050565b600067ffffffffffffffff8211156139ad57fe5b506020908102019056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220e8b1a865e8f3833ca2fe388b90474dde391fdcbfe3c6983c54d5afb6982b150764736f6c63430007060033",
1183
+ "bytecode": "0x608060405260006012553480156200001657600080fd5b5060405162003c1538038062003c158339810160408190526200003991620001c0565b8180826200004781620000bc565b506001600160a01b0381161562000063576200006381620000e0565b506001600160a01b038116620000b3576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b505050620001f7565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600054600160a01b900460ff161562000140576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b80516001600160a01b0381168114620001bb57600080fd5b919050565b60008060408385031215620001d3578182fd5b620001de83620001a3565b9150620001ee60208401620001a3565b90509250929050565b613a0e80620002076000396000f3fe6080604052600436106102ae5760003560e01c806367fc402911610175578063aa98df39116100dc578063ddcec24411610095578063eb08ab281161006f578063eb08ab28146107fd578063f0ab3dd914610812578063f5a9838314610827578063f61c90db1461083c576102ae565b8063ddcec244146107be578063e17f212e146107d3578063ea4685de146107e8576102ae565b8063aa98df3914610719578063b00c0b761461072c578063bc903cb81461074c578063c2b0d47b1461077f578063cb85fe3514610794578063d7484db2146107a9576102ae565b80638dd324821161012e5780638dd324821461066457806396537cbe146106845780639850d32b146106a45780639d2dc81c146106b95780639d6a890f146106d9578063a230c524146106f9576102ae565b806367fc4029146105a15780636d1a350e146105c157806374e6310e146105e15780637727e1131461060f5780637fd169d0146106245780638ab060a914610644576102ae565b80633f66935c1161021957806356781388116101d2578063567813881461050057806359c077c0146105205780635aa6e675146105355780635ff270791461054a57806362354e031461056a57806365ca7cbe1461057f576102ae565b80633f66935c1461043057806340e58ee51461045057806342b4632e14610470578063438596321461049057806347c66140146104b05780635267a15d146104de576102ae565b806319eb8d481161026b57806319eb8d481461035f578063229acb171461038c5780632eec3858146103b9578063306face1146103ce5780633deae725146103ee5780633e4f49e614610403576102ae565b8063029d010d146102b35780630b1ca49a146102ca57806311466e7d146102ea5780631156575d1461031557806313ea5d291461032a57806315281cfb1461034a575b600080fd5b3480156102bf57600080fd5b506102c8610851565b005b3480156102d657600080fd5b506102c86102e5366004612f40565b610ae0565b3480156102f657600080fd5b506102ff610d7d565b60405161030c91906138bd565b60405180910390f35b34801561032157600080fd5b506102ff610d83565b34801561033657600080fd5b506102c8610345366004612f40565b610d89565b34801561035657600080fd5b506102ff610e41565b34801561036b57600080fd5b5061037f61037a366004612f5a565b610e47565b60405161030c91906133bc565b34801561039857600080fd5b506103ac6103a7366004613133565b610e64565b60405161030c91906133db565b3480156103c557600080fd5b506102ff610f08565b3480156103da57600080fd5b506102c86103e9366004612f40565b610f0e565b3480156103fa57600080fd5b506102ff611011565b34801561040f57600080fd5b5061042361041e366004613133565b611017565b60405161030c91906133c7565b34801561043c57600080fd5b506102ff61044b366004612f40565b611038565b34801561045c57600080fd5b506102c861046b366004613133565b61104a565b34801561047c57600080fd5b5061037f61048b366004612f40565b611123565b34801561049c57600080fd5b5061037f6104ab366004613163565b611136565b3480156104bc57600080fd5b506104d06104cb366004613133565b611165565b60405161030c9291906138fe565b3480156104ea57600080fd5b506104f361117e565b60405161030c91906132b2565b34801561050c57600080fd5b506102c861051b366004613222565b6111a3565b34801561052c57600080fd5b506102ff61127e565b34801561054157600080fd5b506104f3611284565b34801561055657600080fd5b506102c8610565366004613084565b611319565b34801561057657600080fd5b506104f361166e565b34801561058b57600080fd5b50610594611679565b60405161030c919061336f565b3480156105ad57600080fd5b506102c86105bc366004613084565b6116de565b3480156105cd57600080fd5b506104f36105dc366004612f40565b6117c6565b3480156105ed57600080fd5b506106016105fc366004613084565b6117e1565b60405161030c9291906138dd565b34801561061b57600080fd5b506102ff611887565b34801561063057600080fd5b506102c861063f3660046131b1565b61188d565b34801561065057600080fd5b506104f361065f366004612f40565b61198e565b34801561067057600080fd5b506102c861067f366004612f83565b6119a9565b34801561069057600080fd5b506102ff61069f366004612f40565b611b51565b3480156106b057600080fd5b506104f3611b63565b3480156106c557600080fd5b506102ff6106d4366004612f40565b611b72565b3480156106e557600080fd5b506102c86106f4366004612f40565b611b84565b34801561070557600080fd5b5061037f610714366004612f40565b611c3d565b6102ff6107273660046130ac565b611c5a565b34801561073857600080fd5b506102c8610747366004612fe4565b611e87565b34801561075857600080fd5b5061076c610767366004613133565b611f2e565b60405161030c97969594939291906133ee565b34801561078b57600080fd5b506104f3612009565b3480156107a057600080fd5b506102ff612018565b3480156107b557600080fd5b506104f361201e565b3480156107ca57600080fd5b506102ff61202d565b3480156107df57600080fd5b5061037f612033565b3480156107f457600080fd5b506102ff612043565b34801561080957600080fd5b506102ff612049565b34801561081e57600080fd5b5061060161204f565b34801561083357600080fd5b506102c86120f5565b34801561084857600080fd5b506102ff6121af565b600061085c336121b5565b6001600160a01b0381166000908152600a60205260409020549091501561089e5760405162461bcd60e51b81526004016108959061343b565b60405180910390fd5b600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b919061314b565b6019546001600160a01b03841660009081526006602052604090205491925062015180020142101561095f5760405162461bcd60e51b815260040161089590613789565b60155461096d908290612229565b600b54604051631194e01d60e21b81526001600160a01b039091169063465380749061099d9086906004016132b2565b60206040518083038186803b1580156109b557600080fd5b505afa1580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed919061314b565b10610a0a5760405162461bcd60e51b81526004016108959061363f565b805b601454610a1a908390612229565b811115610ad157600c5460405163eb82dd7f60e01b81526000916001600160a01b03169063eb82dd7f90610a589060001986019088906004016138c6565b604080518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa7919061318e565b50905080610ac75760405162461bcd60e51b81526004016108959061361b565b5060001901610a0c565b50610adc8282612286565b5050565b6001600160a01b0381166000908152600a6020526040902054610b155760405162461bcd60e51b8152600401610895906137b3565b600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015610b5a57600080fd5b505afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b92919061314b565b6016546001600160a01b03841660009081526008602052604090205491925001811115610c80576000815b601654610bcb908490612229565b811115610c6857600c5460405163eb82dd7f60e01b81526000916001600160a01b03169063eb82dd7f90610c099060001986019089906004016138c6565b604080518083038186803b158015610c2057600080fd5b505afa158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c58919061318e565b5092909201915060001901610bbd565b5080610c7e57610c7783612301565b5050610d7a565b505b6012546001600160a01b038316600090815260076020526040812054601754909190819083850310610d6257835b83811115610d6057601754821415610cc557610d60565b600081815260026020526040812090610cde8383612376565b9050610cea83836123fe565b8015610d1657506003816004811115610cff57fe5b1480610d1657506004816004811115610d1457fe5b145b15610d5557600184019350610d2b838a611136565b610d36576001850194505b6018548510610d5557610d4889612301565b5050505050505050610d7a565b505060001901610cae565b505b60405162461bcd60e51b8152600401610895906135ed565b50565b60145481565b600d5481565b600054600160b01b900460ff1680610dab5750600054600160a81b900460ff16155b15610e3657610db861243a565b6001600160a01b038116610dde5760405162461bcd60e51b8152600401610895906136fb565b601380546001600160a01b0319166001600160a01b0383161790556040517f0f10c1d0da464c1238d07effa37ea79a31fff7393da1bf0a720107001f6700b890610e299083906132b2565b60405180910390a1610d7a565b610d7a600036612471565b60175481565b6000610e5b610e55846121b5565b836125f4565b90505b92915050565b600081815260026020818152604092839020805484516001821615610100026000190190911693909304601f8101839004830284018301909452838352606093909291839190830182828015610efb5780601f10610ed057610100808354040283529160200191610efb565b820191906000526020600020905b815481529060010190602001808311610ede57829003601f168201915b5050505050915050919050565b60115481565b336000908152600460209081526040808320546001600160a01b039081168085526005909352922080546001600160a01b031916905590821615610fad576001600160a01b038281166000908152600560205260409020541615610f845760405162461bcd60e51b81526004016108959061348e565b6001600160a01b038216600090815260056020526040902080546001600160a01b031916331790555b336000818152600460205260409081902080546001600160a01b0319166001600160a01b038616179055517f14264d9310cb5cfd212adbd1fce42bade30859c1a7bd7930d4c15c642bc6249b916110059185906132c6565b60405180910390a15050565b600f5481565b6000818152600260205260408120611030908390612376565b90505b919050565b60066020526000908152604090205481565b60008181526002602052604090206001810154600160a01b900460ff16156110845760405162461bcd60e51b8152600401610895906136c4565b61108d336121b5565b60018201546001600160a01b039081169116146110bc5760405162461bcd60e51b815260040161089590613721565b806002015442106110df5760405162461bcd60e51b815260040161089590613507565b60018101805460ff60a01b1916600160a01b17905560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b6000611030611131836121b5565b612622565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff1692915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6000828152600260208190526040909120906111bf8483612376565b60048111156111ca57fe5b146111e75760405162461bcd60e51b815260040161089590613802565b60006111f2336121b5565b90506111fe81856125f4565b61121a5760405162461bcd60e51b8152600401610895906135a7565b6000611227858386612658565b905084826001600160a01b03167f5272ea0ffb2aa83ab5b7fcaa2d8a959323e41f6ece4cced28718d18793843b66868460010154856000015460405161126f9392919061395a565b60405180910390a35050505050565b60195481565b60008054600160a81b900460ff166112a7576000546001600160a01b0316611314565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b1580156112e757600080fd5b505afa1580156112fb573d6000803e3d6000fd5b505050506040513d602081101561131157600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561135d57600080fd5b505afa158015611371573d6000803e3d6000fd5b505050506040513d602081101561138757600080fd5b50516113ca576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054611436576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b805442101561148c576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115265780601f106114fb57610100808354040283529160200191611526565b820191906000526020600020905b81548152906001019060200180831161150957829003601f168201915b5050506001600160e01b031986166000908152600160208190526040822082815594955090925061155a9150830182612dd1565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b602083106115a25780518252601f199092019160209182019101611583565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611604576040519150601f19603f3d011682016040523d82523d6000602084013e611609565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a16116688161271a565b50505050565b60076001609c1b0181565b606060096000018054806020026020016040519081016040528092919081815260200182805480156116d457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116b6575b5050505050905090565b6116e6612737565b6001600160e01b03198116600090815260016020526040902054611751576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600160208190526040822082815591906117c190830182612dd1565b505050565b6004602052600090815260409020546001600160a01b031681565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f8101859004850286018501909652858552909491939290919083018282801561187d5780601f106118525761010080835404028352916020019161187d565b820191906000526020600020905b81548152906001019060200180831161186057829003601f168201915b5050505050905082565b60105481565b6013546001600160a01b031633146118b75760405162461bcd60e51b8152600401610895906134de565b60008a1180156118c957506127108911155b80156118d757506127108811155b80156118e257508386115b6118fe5760405162461bcd60e51b815260040161089590613891565b600d8b9055600e8a9055600f899055601088905560118790556014869055601585905560168490556017839055601882905560198190556040517fbb910a9c0db5059981263f5607af296884645adfd2998ae59cae8c7efa9edcd290611979908d908d908d908d908d908d908d908d908d908d908d9061390c565b60405180910390a15050505050505050505050565b6005602052600090815260409020546001600160a01b031681565b6013546001600160a01b031633146119d35760405162461bcd60e51b8152600401610895906134de565b60005b8151811015611a525760008282815181106119ed57fe5b6020026020010151905060096001016000826001600160a01b03166001600160a01b031681526020019081526020016000205460001415611a405760405162461bcd60e51b8152600401610895906137b3565b611a4981612301565b506001016119d6565b50600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015611a9857600080fd5b505afa158015611aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad0919061314b565b905060005b8351811015611668576000848281518110611aec57fe5b6020026020010151905060096001016000826001600160a01b03166001600160a01b0316815260200190815260200160002054600014611b3e5760405162461bcd60e51b81526004016108959061343b565b611b488184612286565b50600101611ad5565b60076020526000908152604090205481565b6013546001600160a01b031681565b60086020526000908152604090205481565b600054600160a01b900460ff1615611bda576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6001600160a01b03166000908152600a6020526040902054151590565b600080611c66336121b5565b9050611c7181612622565b611c8d5760405162461bcd60e51b815260040161089590613559565b3460115414611cae5760405162461bcd60e51b815260040161089590613696565b60128054600190810191829055600082815260026020818152604090922092830180546001600160a01b0319166001600160a01b038716179055600d544201908301819055600e54016003830155600f546004830155601054600583015585519294509091611d2291839190870190612e15565b5060006009600001805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050835160078701555091925060009150505b8151811015611de8576001836006016000848481518110611dae57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611d91565b506001820154600283015460038401546004850154600586015460405189957f1986b4feedb3f25a75bf9c91113b849b8d51d82294b3129bb2dc1ec49f37720895611e48956001600160a01b03909216948d9491939091906009906132e0565b60405180910390a260405161dead903480156108fc02916000818181858888f19350505050158015611e7e573d6000803e3d6000fd5b50505050919050565b611e8f61117e565b6001600160a01b0316336001600160a01b031614611eeb576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b611f24611f1f83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250612796565b6128c3565b610adc82826128e7565b600081815260026020818152604080842060018082015482860154600384015460048501546005860154865488516101009782161597909702600019011699909904601f81018990048902860189019097528685526060996001600160a01b0390941698929791969095929491839190830182828015611fef5780601f10611fc457610100808354040283529160200191611fef565b820191906000526020600020905b815481529060010190602001808311611fd257829003601f168201915b505050505097508060070154915050919395979092949650565b600b546001600160a01b031681565b600e5481565b600c546001600160a01b031681565b60165481565b600054600160a81b900460ff1681565b60185481565b60125481565b601254600081815260026020818152604092839020805484516001821615610100026000190190911693909304601f81018390048302840183019094528383526060939092918391908301828280156120e95780601f106120be576101008083540402835291602001916120e9565b820191906000526020600020905b8154815290600101906020018083116120cc57829003601f168201915b50505050509150509091565b6120fd612737565b600054600160a81b900460ff161561215c576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60155481565b6013546000906001600160a01b03838116911614156121d5575080611033565b6001600160a01b0382166000908152600a6020526040902054156121fa575080611033565b6001600160a01b03808316600090815260056020526040902054168015612222579050611033565b5090919050565b600082821115612280576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b7f24be00480491b27b633d208fff5843a684b70e462ec21a0f41c94f2b753ac300826040516122b591906132b2565b60405180910390a16122c8600983612998565b6012546001600160a01b039092166000908152600760209081526040808320949094556008815283822092909255600690915290812055565b7f1dab341b3e11359cceb89825317b6ce5580bcb2d0f18ff30098c144c6f6fcb1e8160405161233091906132b2565b60405180910390a1612343600982612a01565b6001600160a01b031660009081526007602090815260408083208390556008825280832083905560069091529020429055565b6001810154600090600160a01b900460ff161561239557506000610e5e565b60028201546123b65760405162461bcd60e51b815260040161089590613669565b42826002015411156123ca57506001610e5e565b42826003015411156123de57506002610e5e565b6123e88383612afc565b156123f557506004610e5e565b50600392915050565b600080600061240c85611165565b9150915061242f84600701546127108660040154612b719092919063ffffffff16565b910110159392505050565b600054600160b01b900460ff16156124675733301461245557fe5b6000805460ff60b01b1916905561246f565b61246f612737565b565b612479612737565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156124c157600080fd5b505afa1580156124d5573d6000803e3d6000fd5b505050506040513d60208110156124eb57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b0319861681526001602081815260409092208451815584830151805191945061256f93928501920190612e15565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b60009081526002602090815260408083206001600160a01b0394909416835260069093019052205460ff1690565b6001600160a01b0381166000908152600a60205260408120541515806110305750506013546001600160a01b0390811691161490565b60008381526003602090815260408083206001600160a01b0386168452600281019092529091205460ff16156126a05760405162461bcd60e51b815260040161089590613866565b6001600160a01b03831660009081526002820160205260408120805460ff1916600117905560ff168260ff1614156126de5780546001018155612713565b60ff8216600114156126fb57600181810180549091019055612713565b60405162461bcd60e51b81526004016108959061382f565b9392505050565b3d604051818101604052816000823e8215612733578181f35b8181fd5b61273f611284565b6001600160a01b0316336001600160a01b03161461246f576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156127da5781810151838201526020016127c2565b50505050905090810190601f1680156128075780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b865181101561286f5786818151811061283d57fe5b60200260200101518314156128675785818151811061285857fe5b6020026020010151915061286f565b600101612828565b506001600160a01b0381166128ba576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61291a82826040518060400160405280601081526020016f2b37ba32b92bb434ba32b634b9ba32b960811b815250612796565b600b60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612974828260405180604001604052806011815260200170233a39b7a932bbb0b93226b0b730b3b2b960791b815250612796565b600c80546001600160a01b0319166001600160a01b03929092169190911790555050565b6001600160a01b0381166000908152600183016020526040902054156129bd57610adc565b8154600180820184556000848152602080822090930180546001600160a01b0319166001600160a01b03959095169485179055845493815293019052604090912055565b6001600160a01b038116600090815260018301602052604090205480612a275750610adc565b8254811015612aaf57825460009084906000198101908110612a4557fe5b60009182526020909120015484546001600160a01b039091169150819085906000198501908110612a7257fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260018501909152604090208190555b8254839080612aba57fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03841682526001850190526040812055505050565b600082815260036020526040812060078301546004840154612b2091612710612b71565b81546001830154011015612b38576000915050610e5e565b805460018201546005850154612b5392909101612710612bab565b816001015411612b67576000915050610e5e565b5060019392505050565b600080612b7f858585612bab565b905060008380612b8b57fe5b85870990508015612b9f5781600101612ba1565b815b9695505050505050565b6000808211612bf4576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612c0157506000612713565b83830283858281612c0e57fe5b041415612c2757828181612c1e57fe5b04915050612713565b6000838681612c3257fe5b0490506000848781612c4057fe5b0690506000858781612c4e57fe5b0490506000868881612c5c57fe5b069050612caa612c7688612c708685612cb7565b90612d10565b612ca4612c838686612cb7565b612ca4612c908987612cb7565b612ca48d612c9e8c8b612cb7565b90612cb7565b90612d77565b9998505050505050505050565b600082612cc657506000610e5e565b82820282848281612cd357fe5b0414610e5b5760405162461bcd60e51b81526004018080602001828103825260218152602001806139b86021913960400191505060405180910390fd5b6000808211612d66576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612d6f57fe5b049392505050565b600082820183811015610e5b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612df75750610d7a565b601f016020900490600052602060002090810190610d7a9190612ea1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e4b5760008555612e91565b82601f10612e6457805160ff1916838001178555612e91565b82800160010185558215612e91579182015b82811115612e91578251825591602001919060010190612e76565b50612e9d929150612ea1565b5090565b5b80821115612e9d5760008155600101612ea2565b80356001600160a01b038116811461103357600080fd5b600082601f830112612edd578081fd5b81356020612ef2612eed83613999565b613975565b8281528181019085830183850287018401881015612f0e578586fd5b855b85811015612f3357612f2182612eb6565b84529284019290840190600101612f10565b5090979650505050505050565b600060208284031215612f51578081fd5b610e5b82612eb6565b60008060408385031215612f6c578081fd5b612f7583612eb6565b946020939093013593505050565b60008060408385031215612f95578182fd5b823567ffffffffffffffff80821115612fac578384fd5b612fb886838701612ecd565b93506020850135915080821115612fcd578283fd5b50612fda85828601612ecd565b9150509250929050565b60008060408385031215612ff6578182fd5b823567ffffffffffffffff8082111561300d578384fd5b818501915085601f830112613020578384fd5b81356020613030612eed83613999565b82815281810190858301838502870184018b101561304c578889fd5b8896505b8487101561306e578035835260019690960195918301918301613050565b5096505086013592505080821115612fcd578283fd5b600060208284031215613095578081fd5b81356001600160e01b031981168114610e5b578182fd5b600060208083850312156130be578182fd5b823567ffffffffffffffff808211156130d5578384fd5b818501915085601f8301126130e8578384fd5b8135818111156130f457fe5b613106601f8201601f19168501613975565b9150808252868482850101111561311b578485fd5b80848401858401378101909201929092529392505050565b600060208284031215613144578081fd5b5035919050565b60006020828403121561315c578081fd5b5051919050565b60008060408385031215613175578182fd5b8235915061318560208401612eb6565b90509250929050565b600080604083850312156131a0578182fd5b505080516020909101519092909150565b60008060008060008060008060008060006101608c8e0312156131d2578687fd5b505089359b60208b01359b5060408b01359a60608101359a506080810135995060a0810135985060c0810135975060e0810135965061010081013595506101208101359450610140013592509050565b60008060408385031215613234578182fd5b82359150602083013560ff8116811461324b578182fd5b809150509250929050565b6001600160a01b0316815260200190565b60008151808452815b8181101561328c57602081850181015186830182015201613270565b8181111561329d5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b600060018060a01b03808a16835260e0602084015261330260e084018a613267565b8860408501528760608501528660808501528560a085015283810360c0850152808554808352602083019150868552602085209250845b8181101561335d5761334e8386865416613256565b60019485019490935001613339565b50909c9b505050505050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156133b05783516001600160a01b03168352928401929184019160010161338b565b50909695505050505050565b901515815260200190565b60208101600583106133d557fe5b91905290565b600060208252610e5b6020830184613267565b600060e0825261340160e083018a613267565b6001600160a01b039890981660208301525060408101959095526060850193909352608084019190915260a083015260c090910152919050565b60208082526033908201527f6163636f756e7420697320616c72656164792061206d656d626572206f66207460408201527206865206d616e6167656d656e742067726f757606c1b606082015260800190565b60208082526030908201527f6164647265737320697320616c726561647920612070726f7879206f6620736f60408201526f36b2903230ba3090383937bb34b232b960811b606082015260800190565b6020808252600f908201526e37b7363c9036b0b4b73a30b4b732b960891b604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b60208082526026908201527f61646472657373206973206e6f7420656c696769626c6520746f2063617374206040820152656120766f746560d01b606082015260800190565b60208082526014908201527331b0b73737ba103932b6b7bb329036b2b6b132b960611b604082015260600190565b6020808252600a90820152696e6f207265776172647360b01b604082015260600190565b60208082526010908201526f1c9958d95b9d1b1e4818da1a5b1b195960821b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b6020808252601490820152731c1c9bdc1bdcd85b08199959481a5b9d985b1a5960621b604082015260600190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b6020808252600c908201526b7a65726f206164647265737360a01b604082015260600190565b60208082526042908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201527f206974732070726f706f736572206f72206869732070726f7879206164647265606082015261737360f01b608082015260a00190565b60208082526010908201526f1c9958d95b9d1b1e481c995b5bdd995960821b604082015260600190565b6020808252602f908201527f6163636f756e74206973206e6f742061206d656d626572206f6620746865206d60408201526e0616e6167656d656e742067726f757608c1b606082015260800190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b602080825260129082015271696e76616c696420706172616d657465727360701b604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b6000838252604060208301526138f66040830184613267565b949350505050565b918252602082015260400190565b9a8b5260208b019990995260408a01979097526060890195909552608088019390935260a087019190915260c086015260e08501526101008401526101208301526101408201526101600190565b60ff9390931683526020830191909152604082015260600190565b60405181810167ffffffffffffffff8111828210171561399157fe5b604052919050565b600067ffffffffffffffff8211156139ad57fe5b506020908102019056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212204760c06dd1d1ee00953225c6de52c7ff08e71bd58f126c27fb928e887295ce4b64736f6c63430007060033",
1184
+ "deployedBytecode": "0x6080604052600436106102ae5760003560e01c806367fc402911610175578063aa98df39116100dc578063ddcec24411610095578063eb08ab281161006f578063eb08ab28146107fd578063f0ab3dd914610812578063f5a9838314610827578063f61c90db1461083c576102ae565b8063ddcec244146107be578063e17f212e146107d3578063ea4685de146107e8576102ae565b8063aa98df3914610719578063b00c0b761461072c578063bc903cb81461074c578063c2b0d47b1461077f578063cb85fe3514610794578063d7484db2146107a9576102ae565b80638dd324821161012e5780638dd324821461066457806396537cbe146106845780639850d32b146106a45780639d2dc81c146106b95780639d6a890f146106d9578063a230c524146106f9576102ae565b806367fc4029146105a15780636d1a350e146105c157806374e6310e146105e15780637727e1131461060f5780637fd169d0146106245780638ab060a914610644576102ae565b80633f66935c1161021957806356781388116101d2578063567813881461050057806359c077c0146105205780635aa6e675146105355780635ff270791461054a57806362354e031461056a57806365ca7cbe1461057f576102ae565b80633f66935c1461043057806340e58ee51461045057806342b4632e14610470578063438596321461049057806347c66140146104b05780635267a15d146104de576102ae565b806319eb8d481161026b57806319eb8d481461035f578063229acb171461038c5780632eec3858146103b9578063306face1146103ce5780633deae725146103ee5780633e4f49e614610403576102ae565b8063029d010d146102b35780630b1ca49a146102ca57806311466e7d146102ea5780631156575d1461031557806313ea5d291461032a57806315281cfb1461034a575b600080fd5b3480156102bf57600080fd5b506102c8610851565b005b3480156102d657600080fd5b506102c86102e5366004612f40565b610ae0565b3480156102f657600080fd5b506102ff610d7d565b60405161030c91906138bd565b60405180910390f35b34801561032157600080fd5b506102ff610d83565b34801561033657600080fd5b506102c8610345366004612f40565b610d89565b34801561035657600080fd5b506102ff610e41565b34801561036b57600080fd5b5061037f61037a366004612f5a565b610e47565b60405161030c91906133bc565b34801561039857600080fd5b506103ac6103a7366004613133565b610e64565b60405161030c91906133db565b3480156103c557600080fd5b506102ff610f08565b3480156103da57600080fd5b506102c86103e9366004612f40565b610f0e565b3480156103fa57600080fd5b506102ff611011565b34801561040f57600080fd5b5061042361041e366004613133565b611017565b60405161030c91906133c7565b34801561043c57600080fd5b506102ff61044b366004612f40565b611038565b34801561045c57600080fd5b506102c861046b366004613133565b61104a565b34801561047c57600080fd5b5061037f61048b366004612f40565b611123565b34801561049c57600080fd5b5061037f6104ab366004613163565b611136565b3480156104bc57600080fd5b506104d06104cb366004613133565b611165565b60405161030c9291906138fe565b3480156104ea57600080fd5b506104f361117e565b60405161030c91906132b2565b34801561050c57600080fd5b506102c861051b366004613222565b6111a3565b34801561052c57600080fd5b506102ff61127e565b34801561054157600080fd5b506104f3611284565b34801561055657600080fd5b506102c8610565366004613084565b611319565b34801561057657600080fd5b506104f361166e565b34801561058b57600080fd5b50610594611679565b60405161030c919061336f565b3480156105ad57600080fd5b506102c86105bc366004613084565b6116de565b3480156105cd57600080fd5b506104f36105dc366004612f40565b6117c6565b3480156105ed57600080fd5b506106016105fc366004613084565b6117e1565b60405161030c9291906138dd565b34801561061b57600080fd5b506102ff611887565b34801561063057600080fd5b506102c861063f3660046131b1565b61188d565b34801561065057600080fd5b506104f361065f366004612f40565b61198e565b34801561067057600080fd5b506102c861067f366004612f83565b6119a9565b34801561069057600080fd5b506102ff61069f366004612f40565b611b51565b3480156106b057600080fd5b506104f3611b63565b3480156106c557600080fd5b506102ff6106d4366004612f40565b611b72565b3480156106e557600080fd5b506102c86106f4366004612f40565b611b84565b34801561070557600080fd5b5061037f610714366004612f40565b611c3d565b6102ff6107273660046130ac565b611c5a565b34801561073857600080fd5b506102c8610747366004612fe4565b611e87565b34801561075857600080fd5b5061076c610767366004613133565b611f2e565b60405161030c97969594939291906133ee565b34801561078b57600080fd5b506104f3612009565b3480156107a057600080fd5b506102ff612018565b3480156107b557600080fd5b506104f361201e565b3480156107ca57600080fd5b506102ff61202d565b3480156107df57600080fd5b5061037f612033565b3480156107f457600080fd5b506102ff612043565b34801561080957600080fd5b506102ff612049565b34801561081e57600080fd5b5061060161204f565b34801561083357600080fd5b506102c86120f5565b34801561084857600080fd5b506102ff6121af565b600061085c336121b5565b6001600160a01b0381166000908152600a60205260409020549091501561089e5760405162461bcd60e51b81526004016108959061343b565b60405180910390fd5b600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b1580156108e357600080fd5b505afa1580156108f7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091b919061314b565b6019546001600160a01b03841660009081526006602052604090205491925062015180020142101561095f5760405162461bcd60e51b815260040161089590613789565b60155461096d908290612229565b600b54604051631194e01d60e21b81526001600160a01b039091169063465380749061099d9086906004016132b2565b60206040518083038186803b1580156109b557600080fd5b505afa1580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed919061314b565b10610a0a5760405162461bcd60e51b81526004016108959061363f565b805b601454610a1a908390612229565b811115610ad157600c5460405163eb82dd7f60e01b81526000916001600160a01b03169063eb82dd7f90610a589060001986019088906004016138c6565b604080518083038186803b158015610a6f57600080fd5b505afa158015610a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aa7919061318e565b50905080610ac75760405162461bcd60e51b81526004016108959061361b565b5060001901610a0c565b50610adc8282612286565b5050565b6001600160a01b0381166000908152600a6020526040902054610b155760405162461bcd60e51b8152600401610895906137b3565b600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015610b5a57600080fd5b505afa158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b92919061314b565b6016546001600160a01b03841660009081526008602052604090205491925001811115610c80576000815b601654610bcb908490612229565b811115610c6857600c5460405163eb82dd7f60e01b81526000916001600160a01b03169063eb82dd7f90610c099060001986019089906004016138c6565b604080518083038186803b158015610c2057600080fd5b505afa158015610c34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c58919061318e565b5092909201915060001901610bbd565b5080610c7e57610c7783612301565b5050610d7a565b505b6012546001600160a01b038316600090815260076020526040812054601754909190819083850310610d6257835b83811115610d6057601754821415610cc557610d60565b600081815260026020526040812090610cde8383612376565b9050610cea83836123fe565b8015610d1657506003816004811115610cff57fe5b1480610d1657506004816004811115610d1457fe5b145b15610d5557600184019350610d2b838a611136565b610d36576001850194505b6018548510610d5557610d4889612301565b5050505050505050610d7a565b505060001901610cae565b505b60405162461bcd60e51b8152600401610895906135ed565b50565b60145481565b600d5481565b600054600160b01b900460ff1680610dab5750600054600160a81b900460ff16155b15610e3657610db861243a565b6001600160a01b038116610dde5760405162461bcd60e51b8152600401610895906136fb565b601380546001600160a01b0319166001600160a01b0383161790556040517f0f10c1d0da464c1238d07effa37ea79a31fff7393da1bf0a720107001f6700b890610e299083906132b2565b60405180910390a1610d7a565b610d7a600036612471565b60175481565b6000610e5b610e55846121b5565b836125f4565b90505b92915050565b600081815260026020818152604092839020805484516001821615610100026000190190911693909304601f8101839004830284018301909452838352606093909291839190830182828015610efb5780601f10610ed057610100808354040283529160200191610efb565b820191906000526020600020905b815481529060010190602001808311610ede57829003601f168201915b5050505050915050919050565b60115481565b336000908152600460209081526040808320546001600160a01b039081168085526005909352922080546001600160a01b031916905590821615610fad576001600160a01b038281166000908152600560205260409020541615610f845760405162461bcd60e51b81526004016108959061348e565b6001600160a01b038216600090815260056020526040902080546001600160a01b031916331790555b336000818152600460205260409081902080546001600160a01b0319166001600160a01b038616179055517f14264d9310cb5cfd212adbd1fce42bade30859c1a7bd7930d4c15c642bc6249b916110059185906132c6565b60405180910390a15050565b600f5481565b6000818152600260205260408120611030908390612376565b90505b919050565b60066020526000908152604090205481565b60008181526002602052604090206001810154600160a01b900460ff16156110845760405162461bcd60e51b8152600401610895906136c4565b61108d336121b5565b60018201546001600160a01b039081169116146110bc5760405162461bcd60e51b815260040161089590613721565b806002015442106110df5760405162461bcd60e51b815260040161089590613507565b60018101805460ff60a01b1916600160a01b17905560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b6000611030611131836121b5565b612622565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff1692915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6000828152600260208190526040909120906111bf8483612376565b60048111156111ca57fe5b146111e75760405162461bcd60e51b815260040161089590613802565b60006111f2336121b5565b90506111fe81856125f4565b61121a5760405162461bcd60e51b8152600401610895906135a7565b6000611227858386612658565b905084826001600160a01b03167f5272ea0ffb2aa83ab5b7fcaa2d8a959323e41f6ece4cced28718d18793843b66868460010154856000015460405161126f9392919061395a565b60405180910390a35050505050565b60195481565b60008054600160a81b900460ff166112a7576000546001600160a01b0316611314565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b1580156112e757600080fd5b505afa1580156112fb573d6000803e3d6000fd5b505050506040513d602081101561131157600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561135d57600080fd5b505afa158015611371573d6000803e3d6000fd5b505050506040513d602081101561138757600080fd5b50516113ca576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526001602052604090208054611436576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b805442101561148c576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156115265780601f106114fb57610100808354040283529160200191611526565b820191906000526020600020905b81548152906001019060200180831161150957829003601f168201915b5050506001600160e01b031986166000908152600160208190526040822082815594955090925061155a9150830182612dd1565b50506000805460ff60b01b1916600160b01b178155604051825130918491819060208401908083835b602083106115a25780518252601f199092019160209182019101611583565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611604576040519150601f19603f3d011682016040523d82523d6000602084013e611609565b606091505b50506000805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a16116688161271a565b50505050565b60076001609c1b0181565b606060096000018054806020026020016040519081016040528092919081815260200182805480156116d457602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116116b6575b5050505050905090565b6116e6612737565b6001600160e01b03198116600090815260016020526040902054611751576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b031981166000908152600160208190526040822082815591906117c190830182612dd1565b505050565b6004602052600090815260409020546001600160a01b031681565b600160208181526000928352604092839020805481840180548651600296821615610100026000190190911695909504601f8101859004850286018501909652858552909491939290919083018282801561187d5780601f106118525761010080835404028352916020019161187d565b820191906000526020600020905b81548152906001019060200180831161186057829003601f168201915b5050505050905082565b60105481565b6013546001600160a01b031633146118b75760405162461bcd60e51b8152600401610895906134de565b60008a1180156118c957506127108911155b80156118d757506127108811155b80156118e257508386115b6118fe5760405162461bcd60e51b815260040161089590613891565b600d8b9055600e8a9055600f899055601088905560118790556014869055601585905560168490556017839055601882905560198190556040517fbb910a9c0db5059981263f5607af296884645adfd2998ae59cae8c7efa9edcd290611979908d908d908d908d908d908d908d908d908d908d908d9061390c565b60405180910390a15050505050505050505050565b6005602052600090815260409020546001600160a01b031681565b6013546001600160a01b031633146119d35760405162461bcd60e51b8152600401610895906134de565b60005b8151811015611a525760008282815181106119ed57fe5b6020026020010151905060096001016000826001600160a01b03166001600160a01b031681526020019081526020016000205460001415611a405760405162461bcd60e51b8152600401610895906137b3565b611a4981612301565b506001016119d6565b50600c54604080516339f20c3560e21b815290516000926001600160a01b03169163e7c830d4916004808301926020929190829003018186803b158015611a9857600080fd5b505afa158015611aac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ad0919061314b565b905060005b8351811015611668576000848281518110611aec57fe5b6020026020010151905060096001016000826001600160a01b03166001600160a01b0316815260200190815260200160002054600014611b3e5760405162461bcd60e51b81526004016108959061343b565b611b488184612286565b50600101611ad5565b60076020526000908152604090205481565b6013546001600160a01b031681565b60086020526000908152604090205481565b600054600160a01b900460ff1615611bda576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60008054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6001600160a01b03166000908152600a6020526040902054151590565b600080611c66336121b5565b9050611c7181612622565b611c8d5760405162461bcd60e51b815260040161089590613559565b3460115414611cae5760405162461bcd60e51b815260040161089590613696565b60128054600190810191829055600082815260026020818152604090922092830180546001600160a01b0319166001600160a01b038716179055600d544201908301819055600e54016003830155600f546004830155601054600583015585519294509091611d2291839190870190612e15565b5060006009600001805480602002602001604051908101604052809291908181526020018280548015611d7e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611d60575b5050835160078701555091925060009150505b8151811015611de8576001836006016000848481518110611dae57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611d91565b506001820154600283015460038401546004850154600586015460405189957f1986b4feedb3f25a75bf9c91113b849b8d51d82294b3129bb2dc1ec49f37720895611e48956001600160a01b03909216948d9491939091906009906132e0565b60405180910390a260405161dead903480156108fc02916000818181858888f19350505050158015611e7e573d6000803e3d6000fd5b50505050919050565b611e8f61117e565b6001600160a01b0316336001600160a01b031614611eeb576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b611f24611f1f83836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250612796565b6128c3565b610adc82826128e7565b600081815260026020818152604080842060018082015482860154600384015460048501546005860154865488516101009782161597909702600019011699909904601f81018990048902860189019097528685526060996001600160a01b0390941698929791969095929491839190830182828015611fef5780601f10611fc457610100808354040283529160200191611fef565b820191906000526020600020905b815481529060010190602001808311611fd257829003601f168201915b505050505097508060070154915050919395979092949650565b600b546001600160a01b031681565b600e5481565b600c546001600160a01b031681565b60165481565b600054600160a81b900460ff1681565b60185481565b60125481565b601254600081815260026020818152604092839020805484516001821615610100026000190190911693909304601f81018390048302840183019094528383526060939092918391908301828280156120e95780601f106120be576101008083540402835291602001916120e9565b820191906000526020600020905b8154815290600101906020018083116120cc57829003601f168201915b50505050509150509091565b6120fd612737565b600054600160a81b900460ff161561215c576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60008054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b60155481565b6013546000906001600160a01b03838116911614156121d5575080611033565b6001600160a01b0382166000908152600a6020526040902054156121fa575080611033565b6001600160a01b03808316600090815260056020526040902054168015612222579050611033565b5090919050565b600082821115612280576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b7f24be00480491b27b633d208fff5843a684b70e462ec21a0f41c94f2b753ac300826040516122b591906132b2565b60405180910390a16122c8600983612998565b6012546001600160a01b039092166000908152600760209081526040808320949094556008815283822092909255600690915290812055565b7f1dab341b3e11359cceb89825317b6ce5580bcb2d0f18ff30098c144c6f6fcb1e8160405161233091906132b2565b60405180910390a1612343600982612a01565b6001600160a01b031660009081526007602090815260408083208390556008825280832083905560069091529020429055565b6001810154600090600160a01b900460ff161561239557506000610e5e565b60028201546123b65760405162461bcd60e51b815260040161089590613669565b42826002015411156123ca57506001610e5e565b42826003015411156123de57506002610e5e565b6123e88383612afc565b156123f557506004610e5e565b50600392915050565b600080600061240c85611165565b9150915061242f84600701546127108660040154612b719092919063ffffffff16565b910110159392505050565b600054600160b01b900460ff16156124675733301461245557fe5b6000805460ff60b01b1916905561246f565b61246f612737565b565b612479612737565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156124c157600080fd5b505afa1580156124d5573d6000803e3d6000fd5b505050506040513d60208110156124eb57600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b0319861681526001602081815260409092208451815584830151805191945061256f93928501920190612e15565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b60009081526002602090815260408083206001600160a01b0394909416835260069093019052205460ff1690565b6001600160a01b0381166000908152600a60205260408120541515806110305750506013546001600160a01b0390811691161490565b60008381526003602090815260408083206001600160a01b0386168452600281019092529091205460ff16156126a05760405162461bcd60e51b815260040161089590613866565b6001600160a01b03831660009081526002820160205260408120805460ff1916600117905560ff168260ff1614156126de5780546001018155612713565b60ff8216600114156126fb57600181810180549091019055612713565b60405162461bcd60e51b81526004016108959061382f565b9392505050565b3d604051818101604052816000823e8215612733578181f35b8181fd5b61273f611284565b6001600160a01b0316336001600160a01b03161461246f576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156127da5781810151838201526020016127c2565b50505050905090810190601f1680156128075780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b865181101561286f5786818151811061283d57fe5b60200260200101518314156128675785818151811061285857fe5b6020026020010151915061286f565b600101612828565b506001600160a01b0381166128ba576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b61291a82826040518060400160405280601081526020016f2b37ba32b92bb434ba32b634b9ba32b960811b815250612796565b600b60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550612974828260405180604001604052806011815260200170233a39b7a932bbb0b93226b0b730b3b2b960791b815250612796565b600c80546001600160a01b0319166001600160a01b03929092169190911790555050565b6001600160a01b0381166000908152600183016020526040902054156129bd57610adc565b8154600180820184556000848152602080822090930180546001600160a01b0319166001600160a01b03959095169485179055845493815293019052604090912055565b6001600160a01b038116600090815260018301602052604090205480612a275750610adc565b8254811015612aaf57825460009084906000198101908110612a4557fe5b60009182526020909120015484546001600160a01b039091169150819085906000198501908110612a7257fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815260018501909152604090208190555b8254839080612aba57fe5b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b03841682526001850190526040812055505050565b600082815260036020526040812060078301546004840154612b2091612710612b71565b81546001830154011015612b38576000915050610e5e565b805460018201546005850154612b5392909101612710612bab565b816001015411612b67576000915050610e5e565b5060019392505050565b600080612b7f858585612bab565b905060008380612b8b57fe5b85870990508015612b9f5781600101612ba1565b815b9695505050505050565b6000808211612bf4576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612c0157506000612713565b83830283858281612c0e57fe5b041415612c2757828181612c1e57fe5b04915050612713565b6000838681612c3257fe5b0490506000848781612c4057fe5b0690506000858781612c4e57fe5b0490506000868881612c5c57fe5b069050612caa612c7688612c708685612cb7565b90612d10565b612ca4612c838686612cb7565b612ca4612c908987612cb7565b612ca48d612c9e8c8b612cb7565b90612cb7565b90612d77565b9998505050505050505050565b600082612cc657506000610e5e565b82820282848281612cd357fe5b0414610e5b5760405162461bcd60e51b81526004018080602001828103825260218152602001806139b86021913960400191505060405180910390fd5b6000808211612d66576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612d6f57fe5b049392505050565b600082820183811015610e5b576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612df75750610d7a565b601f016020900490600052602060002090810190610d7a9190612ea1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612e4b5760008555612e91565b82601f10612e6457805160ff1916838001178555612e91565b82800160010185558215612e91579182015b82811115612e91578251825591602001919060010190612e76565b50612e9d929150612ea1565b5090565b5b80821115612e9d5760008155600101612ea2565b80356001600160a01b038116811461103357600080fd5b600082601f830112612edd578081fd5b81356020612ef2612eed83613999565b613975565b8281528181019085830183850287018401881015612f0e578586fd5b855b85811015612f3357612f2182612eb6565b84529284019290840190600101612f10565b5090979650505050505050565b600060208284031215612f51578081fd5b610e5b82612eb6565b60008060408385031215612f6c578081fd5b612f7583612eb6565b946020939093013593505050565b60008060408385031215612f95578182fd5b823567ffffffffffffffff80821115612fac578384fd5b612fb886838701612ecd565b93506020850135915080821115612fcd578283fd5b50612fda85828601612ecd565b9150509250929050565b60008060408385031215612ff6578182fd5b823567ffffffffffffffff8082111561300d578384fd5b818501915085601f830112613020578384fd5b81356020613030612eed83613999565b82815281810190858301838502870184018b101561304c578889fd5b8896505b8487101561306e578035835260019690960195918301918301613050565b5096505086013592505080821115612fcd578283fd5b600060208284031215613095578081fd5b81356001600160e01b031981168114610e5b578182fd5b600060208083850312156130be578182fd5b823567ffffffffffffffff808211156130d5578384fd5b818501915085601f8301126130e8578384fd5b8135818111156130f457fe5b613106601f8201601f19168501613975565b9150808252868482850101111561311b578485fd5b80848401858401378101909201929092529392505050565b600060208284031215613144578081fd5b5035919050565b60006020828403121561315c578081fd5b5051919050565b60008060408385031215613175578182fd5b8235915061318560208401612eb6565b90509250929050565b600080604083850312156131a0578182fd5b505080516020909101519092909150565b60008060008060008060008060008060006101608c8e0312156131d2578687fd5b505089359b60208b01359b5060408b01359a60608101359a506080810135995060a0810135985060c0810135975060e0810135965061010081013595506101208101359450610140013592509050565b60008060408385031215613234578182fd5b82359150602083013560ff8116811461324b578182fd5b809150509250929050565b6001600160a01b0316815260200190565b60008151808452815b8181101561328c57602081850181015186830182015201613270565b8181111561329d5782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b600060018060a01b03808a16835260e0602084015261330260e084018a613267565b8860408501528760608501528660808501528560a085015283810360c0850152808554808352602083019150868552602085209250845b8181101561335d5761334e8386865416613256565b60019485019490935001613339565b50909c9b505050505050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156133b05783516001600160a01b03168352928401929184019160010161338b565b50909695505050505050565b901515815260200190565b60208101600583106133d557fe5b91905290565b600060208252610e5b6020830184613267565b600060e0825261340160e083018a613267565b6001600160a01b039890981660208301525060408101959095526060850193909352608084019190915260a083015260c090910152919050565b60208082526033908201527f6163636f756e7420697320616c72656164792061206d656d626572206f66207460408201527206865206d616e6167656d656e742067726f757606c1b606082015260800190565b60208082526030908201527f6164647265737320697320616c726561647920612070726f7879206f6620736f60408201526f36b2903230ba3090383937bb34b232b960811b606082015260800190565b6020808252600f908201526e37b7363c9036b0b4b73a30b4b732b960891b604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b60208082526026908201527f61646472657373206973206e6f7420656c696769626c6520746f2063617374206040820152656120766f746560d01b606082015260800190565b60208082526014908201527331b0b73737ba103932b6b7bb329036b2b6b132b960611b604082015260600190565b6020808252600a90820152696e6f207265776172647360b01b604082015260600190565b60208082526010908201526f1c9958d95b9d1b1e4818da1a5b1b195960821b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b6020808252601490820152731c1c9bdc1bdcd85b08199959481a5b9d985b1a5960621b604082015260600190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b6020808252600c908201526b7a65726f206164647265737360a01b604082015260600190565b60208082526042908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201527f206974732070726f706f736572206f72206869732070726f7879206164647265606082015261737360f01b608082015260a00190565b60208082526010908201526f1c9958d95b9d1b1e481c995b5bdd995960821b604082015260600190565b6020808252602f908201527f6163636f756e74206973206e6f742061206d656d626572206f6620746865206d60408201526e0616e6167656d656e742067726f757608c1b606082015260800190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b602080825260129082015271696e76616c696420706172616d657465727360701b604082015260600190565b90815260200190565b9182526001600160a01b0316602082015260400190565b6000838252604060208301526138f66040830184613267565b949350505050565b918252602082015260400190565b9a8b5260208b019990995260408a01979097526060890195909552608088019390935260a087019190915260c086015260e08501526101008401526101208301526101408201526101600190565b60ff9390931683526020830191909152604082015260600190565b60405181810167ffffffffffffffff8111828210171561399157fe5b604052919050565b600067ffffffffffffffff8211156139ad57fe5b506020908102019056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212204760c06dd1d1ee00953225c6de52c7ff08e71bd58f126c27fb928e887295ce4b64736f6c63430007060033",
1185
1185
  "linkReferences": {},
1186
1186
  "deployedLinkReferences": {}
1187
1187
  }
@@ -0,0 +1,121 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "AddressBinder",
4
+ "sourceName": "contracts/staking/implementation/AddressBinder.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "bytes",
12
+ "name": "publicKey",
13
+ "type": "bytes"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "bytes20",
18
+ "name": "pAddress",
19
+ "type": "bytes20"
20
+ },
21
+ {
22
+ "indexed": false,
23
+ "internalType": "address",
24
+ "name": "cAddress",
25
+ "type": "address"
26
+ }
27
+ ],
28
+ "name": "AddressesRegistered",
29
+ "type": "event"
30
+ },
31
+ {
32
+ "inputs": [
33
+ {
34
+ "internalType": "address",
35
+ "name": "",
36
+ "type": "address"
37
+ }
38
+ ],
39
+ "name": "cAddressToPAddress",
40
+ "outputs": [
41
+ {
42
+ "internalType": "bytes20",
43
+ "name": "",
44
+ "type": "bytes20"
45
+ }
46
+ ],
47
+ "stateMutability": "view",
48
+ "type": "function"
49
+ },
50
+ {
51
+ "inputs": [
52
+ {
53
+ "internalType": "bytes20",
54
+ "name": "",
55
+ "type": "bytes20"
56
+ }
57
+ ],
58
+ "name": "pAddressToCAddress",
59
+ "outputs": [
60
+ {
61
+ "internalType": "address",
62
+ "name": "",
63
+ "type": "address"
64
+ }
65
+ ],
66
+ "stateMutability": "view",
67
+ "type": "function"
68
+ },
69
+ {
70
+ "inputs": [
71
+ {
72
+ "internalType": "bytes",
73
+ "name": "_publicKey",
74
+ "type": "bytes"
75
+ },
76
+ {
77
+ "internalType": "bytes20",
78
+ "name": "_pAddress",
79
+ "type": "bytes20"
80
+ },
81
+ {
82
+ "internalType": "address",
83
+ "name": "_cAddress",
84
+ "type": "address"
85
+ }
86
+ ],
87
+ "name": "registerAddresses",
88
+ "outputs": [],
89
+ "stateMutability": "nonpayable",
90
+ "type": "function"
91
+ },
92
+ {
93
+ "inputs": [
94
+ {
95
+ "internalType": "bytes",
96
+ "name": "_publicKey",
97
+ "type": "bytes"
98
+ }
99
+ ],
100
+ "name": "registerPublicKey",
101
+ "outputs": [
102
+ {
103
+ "internalType": "bytes20",
104
+ "name": "_pAddress",
105
+ "type": "bytes20"
106
+ },
107
+ {
108
+ "internalType": "address",
109
+ "name": "_cAddress",
110
+ "type": "address"
111
+ }
112
+ ],
113
+ "stateMutability": "nonpayable",
114
+ "type": "function"
115
+ }
116
+ ],
117
+ "bytecode": "0x608060405234801561001057600080fd5b50610b8b806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063373e6999146100515780635b75d79c14610094578063856235941461011f578063e82199ad146101bb575b600080fd5b6100786004803603602081101561006757600080fd5b50356001600160601b0319166101fe565b604080516001600160a01b039092168252519081900360200190f35b61011d600480360360608110156100aa57600080fd5b8101906020810181356401000000008111156100c557600080fd5b8201836020820111156100d757600080fd5b803590602001918460018302840111640100000000831117156100f957600080fd5b919350915080356001600160601b03191690602001356001600160a01b0316610219565b005b61018f6004803603602081101561013557600080fd5b81019060208101813564010000000081111561015057600080fd5b82018360208201111561016257600080fd5b8035906020019184600183028401116401000000008311171561018457600080fd5b50909250905061038b565b604080516001600160601b031990931683526001600160a01b0390911660208301528051918290030190f35b6101e1600480360360208110156101d157600080fd5b50356001600160a01b031661046d565b604080516001600160601b03199092168252519081900360200190f35b6000602081905290815260409020546001600160a01b031681565b6102238484610482565b6001600160601b031983811691161461026d5760405162461bcd60e51b8152600401808060200182810382526028815260200180610b2e6028913960400191505060405180910390fd5b6102778484610636565b6001600160a01b0316816001600160a01b0316146102c65760405162461bcd60e51b8152600401808060200182810382526028815260200180610b066028913960400191505060405180910390fd5b6001600160601b0319821660008181526020818152604080832080546001600160a01b0387166001600160a01b0319918216811790925581855260018452938290208054606089811c9190961617905581519283019490945281019290925280825281018490527f5438d74d11fdde1d4f54295fb3e6c454489914c68bb311c255399c3328ae30829085908590859085908060808101868680828437600083820152604051601f909101601f191690920182900397509095505050505050a150505050565b6000806103988484610482565b91506103a48484610636565b6001600160601b0319831660008181526020818152604080832080546001600160a01b0387166001600160a01b031991821681179092558185526001845293829020805460608a811c9190961617905581519283019490945281019290925280825281018590529091507f5438d74d11fdde1d4f54295fb3e6c454489914c68bb311c255399c3328ae30829085908590859085908060808101868680828437600083820152604051601f909101601f191690920182900397509095505050505050a19250929050565b60016020526000908152604090205460601b81565b600080600061049185856106c2565b9150915060006104a18383610968565b905060006002826040516020018082805190602001908083835b602083106104da5780518252601f1990920191602091820191016104bb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b6020831061053d5780518252601f19909201916020918201910161051e565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa15801561057c573d6000803e3d6000fd5b5050506040513d602081101561059157600080fd5b505160408051602081810184905282518083038201815291830192839052815193945060039391929182918401908083835b602083106105e25780518252601f1990920191602091820191016105c3565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa158015610621573d6000803e3d6000fd5b50506040515160601b98975050505050505050565b600080600061064585856106c2565b91509150600060405180604001604052808481526020018381525090506000816040516020018082600260200280838360005b83811015610690578181015183820152602001610678565b505050509050019150506040516020818303038152906040528051906020012090508060001c94505050505092915050565b6000806000848460008181106106d457fe5b909101356001600160f81b031916915050604084141561077a5761072d85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506109a2915050565b604080516020601f880181900481028201810190925286815261076d918890889081908401838280828437600092019190915250602092506109a2915050565b60001c9250925050610961565b60418414801561079757506001600160f81b03198116600160fa1b145b1561081e576107de85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506109a2915050565b604080516020601f880181900481028201810190925286815261076d918890889081908401838280828437600092019190915250602192506109a2915050565b602184141561091457600061086b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506109a2915050565b905060006108996401000003d01980848509840960070163400000f4600160fe1b036401000003d0196109fe565b90506001600160f81b03198316600160f91b14156108d7578160028206156108c957816401000003d019036108cb565b815b94509450505050610961565b6001600160f81b03198316600360f81b1415610911578160028206156108fd57816108cb565b94506401000003d019039250610961915050565b50505b6040805162461bcd60e51b815260206004820152601a60248201527f77726f6e6720666f726d6174206f66207075626c6963206b6579000000000000604482015290519081900360640190fd5b9250929050565b606061099b61097a6002840615610a44565b60408051602080820188905282518083039091018152908201909152610a88565b9392505050565b600081602001835110156109f5576040805162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b604482015290519081900360640190fd5b50016020015190565b600060015b8315610a3c578360011660011415610a23578280610a1d57fe5b85820990505b8280610a2b57fe5b8586099450600184901c9350610a03565b949350505050565b606081610a5557600360f81b610a5b565b600160f91b5b604080516001600160f81b0319909216602083015280518083036001018152602190920190529050919050565b6060806040519050835180825260208201818101602087015b81831015610ab9578051835260209283019201610aa1565b50855184518101855292509050808201602086015b81831015610ae6578051835260209283019201610ace565b508651929092011591909101601f01601f19166040525090509291505056fe6320636861696e206164647265737320646f65736e2774206d61746368207075626c6963206b65797020636861696e206164647265737320646f65736e2774206d61746368207075626c6963206b6579a264697066735822122086e55a9656ed935a0cd3f6c09b953d55fd4f60be466965a52d056c34f6f70d4364736f6c63430007060033",
118
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c8063373e6999146100515780635b75d79c14610094578063856235941461011f578063e82199ad146101bb575b600080fd5b6100786004803603602081101561006757600080fd5b50356001600160601b0319166101fe565b604080516001600160a01b039092168252519081900360200190f35b61011d600480360360608110156100aa57600080fd5b8101906020810181356401000000008111156100c557600080fd5b8201836020820111156100d757600080fd5b803590602001918460018302840111640100000000831117156100f957600080fd5b919350915080356001600160601b03191690602001356001600160a01b0316610219565b005b61018f6004803603602081101561013557600080fd5b81019060208101813564010000000081111561015057600080fd5b82018360208201111561016257600080fd5b8035906020019184600183028401116401000000008311171561018457600080fd5b50909250905061038b565b604080516001600160601b031990931683526001600160a01b0390911660208301528051918290030190f35b6101e1600480360360208110156101d157600080fd5b50356001600160a01b031661046d565b604080516001600160601b03199092168252519081900360200190f35b6000602081905290815260409020546001600160a01b031681565b6102238484610482565b6001600160601b031983811691161461026d5760405162461bcd60e51b8152600401808060200182810382526028815260200180610b2e6028913960400191505060405180910390fd5b6102778484610636565b6001600160a01b0316816001600160a01b0316146102c65760405162461bcd60e51b8152600401808060200182810382526028815260200180610b066028913960400191505060405180910390fd5b6001600160601b0319821660008181526020818152604080832080546001600160a01b0387166001600160a01b0319918216811790925581855260018452938290208054606089811c9190961617905581519283019490945281019290925280825281018490527f5438d74d11fdde1d4f54295fb3e6c454489914c68bb311c255399c3328ae30829085908590859085908060808101868680828437600083820152604051601f909101601f191690920182900397509095505050505050a150505050565b6000806103988484610482565b91506103a48484610636565b6001600160601b0319831660008181526020818152604080832080546001600160a01b0387166001600160a01b031991821681179092558185526001845293829020805460608a811c9190961617905581519283019490945281019290925280825281018590529091507f5438d74d11fdde1d4f54295fb3e6c454489914c68bb311c255399c3328ae30829085908590859085908060808101868680828437600083820152604051601f909101601f191690920182900397509095505050505050a19250929050565b60016020526000908152604090205460601b81565b600080600061049185856106c2565b9150915060006104a18383610968565b905060006002826040516020018082805190602001908083835b602083106104da5780518252601f1990920191602091820191016104bb565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040516020818303038152906040526040518082805190602001908083835b6020831061053d5780518252601f19909201916020918201910161051e565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa15801561057c573d6000803e3d6000fd5b5050506040513d602081101561059157600080fd5b505160408051602081810184905282518083038201815291830192839052815193945060039391929182918401908083835b602083106105e25780518252601f1990920191602091820191016105c3565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa158015610621573d6000803e3d6000fd5b50506040515160601b98975050505050505050565b600080600061064585856106c2565b91509150600060405180604001604052808481526020018381525090506000816040516020018082600260200280838360005b83811015610690578181015183820152602001610678565b505050509050019150506040516020818303038152906040528051906020012090508060001c94505050505092915050565b6000806000848460008181106106d457fe5b909101356001600160f81b031916915050604084141561077a5761072d85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506109a2915050565b604080516020601f880181900481028201810190925286815261076d918890889081908401838280828437600092019190915250602092506109a2915050565b60001c9250925050610961565b60418414801561079757506001600160f81b03198116600160fa1b145b1561081e576107de85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506109a2915050565b604080516020601f880181900481028201810190925286815261076d918890889081908401838280828437600092019190915250602192506109a2915050565b602184141561091457600061086b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250600192506109a2915050565b905060006108996401000003d01980848509840960070163400000f4600160fe1b036401000003d0196109fe565b90506001600160f81b03198316600160f91b14156108d7578160028206156108c957816401000003d019036108cb565b815b94509450505050610961565b6001600160f81b03198316600360f81b1415610911578160028206156108fd57816108cb565b94506401000003d019039250610961915050565b50505b6040805162461bcd60e51b815260206004820152601a60248201527f77726f6e6720666f726d6174206f66207075626c6963206b6579000000000000604482015290519081900360640190fd5b9250929050565b606061099b61097a6002840615610a44565b60408051602080820188905282518083039091018152908201909152610a88565b9392505050565b600081602001835110156109f5576040805162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b604482015290519081900360640190fd5b50016020015190565b600060015b8315610a3c578360011660011415610a23578280610a1d57fe5b85820990505b8280610a2b57fe5b8586099450600184901c9350610a03565b949350505050565b606081610a5557600360f81b610a5b565b600160f91b5b604080516001600160f81b0319909216602083015280518083036001018152602190920190529050919050565b6060806040519050835180825260208201818101602087015b81831015610ab9578051835260209283019201610aa1565b50855184518101855292509050808201602086015b81831015610ae6578051835260209283019201610ace565b508651929092011591909101601f01601f19166040525090509291505056fe6320636861696e206164647265737320646f65736e2774206d61746368207075626c6963206b65797020636861696e206164647265737320646f65736e2774206d61746368207075626c6963206b6579a264697066735822122086e55a9656ed935a0cd3f6c09b953d55fd4f60be466965a52d056c34f6f70d4364736f6c63430007060033",
119
+ "linkReferences": {},
120
+ "deployedLinkReferences": {}
121
+ }