@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
@@ -1063,8 +1063,8 @@
1063
1063
  "type": "function"
1064
1064
  }
1065
1065
  ],
1066
- "bytecode": "0x6101606040523480156200001257600080fd5b506040516200442738038062004427833981016040819052620000359162000413565b808480858580620000456200016a565b6200004f62000195565b815160208084019190912082519183019190912060c082905260e08190527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f62000098620001b0565b60a052620000a8818484620001b4565b608052610100525050466101205250620000c490508162000218565b505060601b6001600160601b031916610140526001600160a01b03811615620000f257620000f2816200023c565b506001600160a01b03811662000142576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506040805160008152602081019091526200015f908290620002ff565b505050505062000581565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b602082015290565b6040805180820190915260018152603160f81b602082015290565b4690565b6000838383620001c3620001b0565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600654600160a01b900460ff16156200029c576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60068054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051620003329291906200054f565b60405180910390a160005b825181101562000395576001600860008584815181106200035a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016200033d565b5060005b8151811015620003f157600060086000848481518110620003b657fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000399565b505050565b80516001600160a01b03811681146200040e57600080fd5b919050565b6000806000806080858703121562000429578384fd5b6200043485620003f6565b9350602062000445818701620003f6565b93506200045560408701620003f6565b60608701519093506001600160401b038082111562000472578384fd5b818801915088601f83011262000486578384fd5b8151818111156200049357fe5b83810260405185828201018181108582111715620004ad57fe5b604052828152858101935084860182860187018d1015620004cc578788fd5b8795505b83861015620004f957620004e481620003f6565b855260019590950194938601938601620004d0565b50989b979a50959850505050505050565b6000815180845260208085019450808401835b83811015620005445781516001600160a01b0316875295820195908201906001016200051d565b509495945050505050565b6000604082526200056460408301856200050a565b82810360208401526200057881856200050a565b95945050505050565b60805160a05160c05160e05161010051610120516101405160601c613e45620005e26000398061130f528061255a525080610f605280611a055250806121165250806121585250806121375250806120bd5250806120ed5250613e456000f3fe6080604052600436106101f95760003560e01c80637b3c71d31161010d578063bc903cb8116100a0578063e4ea8b651161006f578063e4ea8b65146105ae578063eb9019d4146105c1578063f17c9d76146105e1578063f5a98383146105f6578063f937d6ad1461060b576101f9565b8063bc903cb81461052e578063bd590d7e14610564578063deaaa7cc14610584578063e17f212e14610599576101f9565b80639d6a890f116100dc5780639d6a890f146104ae578063a3c90b80146104ce578063a7a6224a146104ee578063b00c0b761461050e576101f9565b80637b3c71d314610439578063854121961461045957806386f90bbf146104795780639a8a059214610499576101f9565b80635267a15d116101905780635ff270791161015f5780635ff270791461039657806362354e03146103b657806367fc4029146103cb57806374e6310e146103eb57806374ec29a014610419576101f9565b80635267a15d1461033757806354fd4d501461034c57806356781388146103615780635aa6e67514610381576101f9565b80633e4f49e6116101cc5780633e4f49e61461028d57806340e58ee5146102ba57806343859632146102dc57806347c6614014610309576101f9565b8063047fc9aa146101fe57806306fdde031461022957806311a7aaaa1461024b5780633bccf4fd14610260575b600080fd5b34801561020a57600080fd5b50610213610620565b60405161022091906135fe565b60405180910390f35b34801561023557600080fd5b5061023e61062f565b6040516102209190613795565b34801561025757600080fd5b5061021361065b565b34801561026c57600080fd5b5061028061027b366004613481565b61066a565b604051610220919061375f565b34801561029957600080fd5b506102ad6102a8366004613382565b610730565b6040516102209190613781565b3480156102c657600080fd5b506102da6102d5366004613382565b610751565b005b3480156102e857600080fd5b506102fc6102f73660046133b2565b610814565b6040516102209190613754565b34801561031557600080fd5b50610329610324366004613382565b610844565b604051610220929190613cf8565b34801561034357600080fd5b5061021361085d565b34801561035857600080fd5b5061023e610882565b34801561036d57600080fd5b5061028061037c3660046133dd565b61089d565b34801561038d57600080fd5b506102136108c1565b3480156103a257600080fd5b506102da6103b1366004613221565b610958565b3480156103c257600080fd5b50610213610caf565b3480156103d757600080fd5b506102da6103e6366004613221565b610cba565b3480156103f757600080fd5b5061040b610406366004613221565b610da0565b604051610220929190613cdf565b34801561042557600080fd5b506102fc610434366004612f00565b610e47565b34801561044557600080fd5b506102806104543660046133ff565b610e65565b34801561046557600080fd5b5061028061047436600461304c565b610eb4565b34801561048557600080fd5b5061028061049436600461327c565b610ecd565b3480156104a557600080fd5b50610280610f5e565b3480156104ba57600080fd5b506102da6104c9366004612f00565b610f82565b3480156104da57600080fd5b506102806104e9366004612fa4565b61103b565b3480156104fa57600080fd5b506102da610509366004612f43565b611051565b34801561051a57600080fd5b506102da610529366004613181565b61109e565b34801561053a57600080fd5b5061054e610549366004613382565b611145565b6040516102209a999897969594939291906136c6565b34801561057057600080fd5b5061028061057f366004613249565b6111a4565b34801561059057600080fd5b506102806111f3565b3480156105a557600080fd5b506102fc611217565b6102806105bc366004612fa4565b611227565b3480156105cd57600080fd5b506102806105dc366004612f1a565b611238565b3480156105ed57600080fd5b50610213611244565b34801561060257600080fd5b506102da611253565b34801561061757600080fd5b5061021361130d565b6005546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6004546001600160a01b031681565b6000806106c86106c37f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f89896040516020016106a893929190613768565b60405160208183030381529060405280519060200120611331565b61137d565b905060006106d8828787876113ce565b90506001600160a01b0381166107095760405162461bcd60e51b815260040161070090613a3c565b60405180910390fd5b61072488828960405180602001604052806000815250611543565b98975050505050505050565b6000818152600260205260408120610749908390611604565b90505b919050565b60008181526002602052604090208054600160b01b900460ff16156107885760405162461bcd60e51b815260040161070090613b18565b80546001600160a01b031633146107b15760405162461bcd60e51b8152600401610700906137df565b806002015442106107d45760405162461bcd60e51b815260040161070090613863565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6040805180820190915260018152603160f81b602082015290565b60006108ba83338460405180602001604052806000815250611543565b9392505050565b600654600090600160a81b900460ff166108e6576006546001600160a01b0316610953565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561092657600080fd5b505afa15801561093a573d6000803e3d6000fd5b505050506040513d602081101561095057600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561099c57600080fd5b505afa1580156109b0573d6000803e3d6000fd5b505050506040513d60208110156109c657600080fd5b5051610a09576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526007602052604090208054610a75576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610acb576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b655780601f10610b3a57610100808354040283529160200191610b65565b820191906000526020600020905b815481529060010190602001808311610b4857829003601f168201915b505050506001600160e01b0319851660009081526007602052604081208181559293509050610b976001830182612c1a565b50506006805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310610be35780518252601f199092019160209182019101610bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610c45576040519150601f19603f3d011682016040523d82523d6000602084013e610c4a565b606091505b50506006805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610ca9816116e2565b50505050565b60076001609c1b0181565b610cc26116ff565b6001600160e01b03198116600090815260076020526040902054610d2d576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260076020526040812081815590610d9b6001830182612c1a565b505050565b6007602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015610e3d5780601f10610e1257610100808354040283529160200191610e3d565b820191906000526020600020905b815481529060010190602001808311610e2057829003601f168201915b5050505050905082565b6001600160a01b031660009081526008602052604090205460ff1690565b6000610ea985338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061154392505050565b90505b949350505050565b6000610ec38686868686611760565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610eac929185610f56565b6060815260200190600190039081610f415790505b508785611760565b7f000000000000000000000000000000000000000000000000000000000000000081565b600654600160a01b900460ff1615610fd8576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60068054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000610ea985858561104c866119f6565b611a01565b600654600160b01b900460ff16806110735750600654600160a81b900460ff16155b1561108f57611080611a5f565b61108a8282611a94565b61109a565b61109a600036611b7e565b5050565b6110a661085d565b6001600160a01b0316336001600160a01b031614611102576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61113b61113683836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611d03565b611e30565b61109a8282611e54565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b60408051600080825260208201818152828401828152606084019094529092610749929190846111e4565b60608152602001906001900390816111cf5790505b506111ee866119f6565b611f3a565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600654600160a81b900460ff1681565b6000610ea98585856111ee866119f6565b60006108ba8383612036565b6000546001600160a01b031681565b61125b6116ff565b600654600160a81b900460ff16156112ba576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60068054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061133b6120b9565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561142f5760405162461bcd60e51b8152600401808060200182810382526022815260200180613dab6022913960400191505060405180910390fd5b8360ff16601b148061144457508360ff16601c145b61147f5760405162461bcd60e51b8152600401808060200182810382526022815260200180613dcd6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114db573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610ea9576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161155d8783611604565b600781111561156857fe5b146115855760405162461bcd60e51b815260040161070090613b7e565b6000611595868360010154612036565b905060006115a588888885612183565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e888589866001015487600001546040516115f1959493929190613d06565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff16156116205750600761083e565b8154600160a81b900460ff16156116395750600661083e565b600282015461165a5760405162461bcd60e51b815260040161070090613a6c565b428260020154111561166e5750600061083e565b42826003015411156116825750600161083e565b61168c838361223b565b156116d9578154600160b81b900460ff166116a95750600461083e565b42826004015411156116bd5750600361083e565b42826005015411156116d15750600461083e565b50600561083e565b50600292915050565b3d604051818101604052816000823e82156116fb578181f35b8181fd5b6117076108c1565b6001600160a01b0316336001600160a01b03161461175e576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b600080600061177284606001516122e4565b915091506117803383612645565b61179c5760405162461bcd60e51b8152600401610700906138ec565b60008460400151116117c05760405162461bcd60e51b815260040161070090613b4f565b60008460e00151116117e45760405162461bcd60e51b815260040161070090613a99565b6127108460800151111561180a5760405162461bcd60e51b8152600401610700906138b5565b6113888460a001511015801561182657506127108460a0015111155b6118425760405162461bcd60e51b81526004016107009061393a565b60055460405163d9330e6360e01b81526000916001600160a01b03169063d9330e639061187390869060040161375f565b60206040518083038186803b15801561188b57600080fd5b505afa15801561189f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c3919061339a565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663ec31db0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561191557600080fd5b505afa158015611929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194d919061339a565b9050600080611964338d8d8d8d8b8b8f8c8c612650565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166119aa896127f6565b6119b38a612818565b8a600101548b600601548c600701548d600801546040516119df9c9b9a99989796959493929190613612565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f00000000000000000000000000000000000000000000000000000000000000003086868686604051602001611a3e96959493929190613c7b565b60408051601f19818403018152919052805160209091012095945050505050565b600654600160b01b900460ff1615611a8c57333014611a7a57fe5b6006805460ff60b01b1916905561175e565b61175e6116ff565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051611ac592919061372f565b60405180910390a160005b8251811015611b2557600160086000858481518110611aeb57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611ad0565b5060005b8151811015610d9b57600060086000848481518110611b4457fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611b29565b611b866116ff565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bce57600080fd5b505afa158015611be2573d6000803e3d6000fd5b505050506040513d6020811015611bf857600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260076020908152604090912083518155838201518051919350611c7e926001850192910190612c61565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611d47578181015183820152602001611d2f565b50505050905090810190601f168015611d745780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015611ddc57868181518110611daa57fe5b6020026020010151831415611dd457858181518110611dc557fe5b60200260200101519150611ddc565b600101611d95565b506001600160a01b038116611e27576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b611e8282826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b815250611d03565b600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611ed1828260405180604001604052806006815260200165537570706c7960d01b815250611d03565b600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000611f2f83836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b815250611d03565b9050610d9b81612834565b6000611f4885858585611a01565b6000818152600260205260409020805491925090600160a81b900460ff1615611f835760405162461bcd60e51b815260040161070090613c44565b80546001600160a01b03163314611fac5760405162461bcd60e51b8152600401610700906139a8565b6000611fb88383611604565b90506004816007811115611fc857fe5b14611fe55760405162461bcd60e51b815260040161070090613c0d565b815460ff60a81b1916600160a81b178255612001878787612856565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906120699086908690600401613716565b60206040518083038186803b15801561208157600080fd5b505afa158015612095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ba919061339a565b60007f00000000000000000000000000000000000000000000000000000000000000006120e461298e565b141561211157507f0000000000000000000000000000000000000000000000000000000000000000610658565b61217c7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612992565b9050610658565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff16156121cb5760405162461bcd60e51b815260040161070090613be2565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561220857805482018155610eac565b60ff8316600114156122235760018101805483019055610eac565b60405162461bcd60e51b815260040161070090613bab565b60008281526003602052604081206008830154600684015461225f916127106129f4565b815460018301540110156122815750508054600160a01b900460ff161561083e565b80546001820154600785015461229c929091016127106129f4565b8354600160a01b900460ff166122b35781546122b9565b81600101545b116122d25750508054600160a01b900460ff161561083e565b505054600160a01b900460ff16919050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561233757600080fd5b505afa15801561234b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236f919061339a565b6004805460405163e5399da360e01b81529293506000926001600160a01b039091169163e5399da3916123a49186910161375f565b60606040518083038186803b1580156123bc57600080fd5b505afa1580156123d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f4919061332d565b6000805460408051635397625b60e11b8152905193945043936001600160a01b039092169163a72ec4b691600480820192602092909190829003018186803b15801561243f57600080fd5b505afa158015612453573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612477919061339a565b604084015190915042035b60008511801561249157508781105b15612548576004805460405163e5399da360e01b81526000926001600160a01b039092169163e5399da3916124cc916000198b01910161375f565b60606040518083038186803b1580156124e457600080fd5b505afa1580156124f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251c919061332d565b905082816020015110156125305750612548565b60408101516000199096019590945042039050612482565b600084602001519050600042905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125b157600080fd5b505afa1580156125c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e9919061339a565b905060008282604051602001612600929190613cf8565b6040516020818303038152906040528051906020012060001c90506000848803828161262857fe5b6040909a015199069097039a509698505050505050505050915091565b60006108ba83610e47565b60008089518b51146126745760405162461bcd60e51b8152600401610700906137a8565b88518b51146126955760405162461bcd60e51b8152600401610700906137a8565b60006126a68c8c8c61104c8d6119f6565b60008181526002602081905260409091209081015491925090156126dc5760405162461bcd60e51b81526004016107009061382c565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff021916908315150217905550866020015142018160020181905550866040015181600201540181600301819055508488826003015403106127755760405162461bcd60e51b8152600401610700906139f5565b8c51156127c757805460ff60b81b1916600160b81b17815560c08701516003820154016004820181905560015411156127b15760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b6127fe612ced565b6002820154815260038201548160015b6020020152919050565b612820612ced565b60048201548152600582015481600161280e565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b83518110156128885783818151811061286f57fe5b602002602001015182019150808060010191505061285a565b508034146128a85760405162461bcd60e51b815260040161070090613ad0565b60005b8451811015612987576000808683815181106128c357fe5b60200260200101516001600160a01b03168684815181106128e057fe5b60200260200101518685815181106128f457fe5b602002602001015160405161290991906135e2565b60006040518083038185875af1925050503d8060008114612946576040519150601f19603f3d011682016040523d82523d6000602084013e61294b565b606091505b50915091508161297d578051156129655780518082602001fd5b60405162461bcd60e51b815260040161070090613971565b50506001016128ab565b5050505050565b4690565b600083838361299f61298e565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b6000808211612a3d576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612a4a575060006108ba565b83830283858281612a5757fe5b041415612a7057828181612a6757fe5b049150506108ba565b6000838681612a7b57fe5b0490506000848781612a8957fe5b0690506000858781612a9757fe5b0490506000868881612aa557fe5b069050612af3612abf88612ab98685612b00565b90612b59565b612aed612acc8686612b00565b612aed612ad98987612b00565b612aed8d612ae78c8b612b00565b90612b00565b90612bc0565b9998505050505050505050565b600082612b0f5750600061083e565b82820282848281612b1c57fe5b04146108ba5760405162461bcd60e51b8152600401808060200182810382526021815260200180613def6021913960400191505060405180910390fd5b6000808211612baf576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612bb857fe5b049392505050565b6000828201838110156108ba576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612c405750612c5e565b601f016020900490600052602060002090810190612c5e9190612d0b565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612c975760008555612cdd565b82601f10612cb057805160ff1916838001178555612cdd565b82800160010185558215612cdd579182015b82811115612cdd578251825591602001919060010190612cc2565b50612ce9929150612d0b565b5090565b60405180604001604052806002906020820280368337509192915050565b5b80821115612ce95760008155600101612d0c565b600067ffffffffffffffff831115612d3457fe5b612d47601f8401601f1916602001613d3c565b9050828152838383011115612d5b57600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461074c57600080fd5b600082601f830112612d99578081fd5b81356020612dae612da983613d60565b613d3c565b8281528181019085830183850287018401881015612dca578586fd5b855b85811015612def57612ddd82612d72565b84529284019290840190600101612dcc565b5090979650505050505050565b600082601f830112612e0c578081fd5b81356020612e1c612da983613d60565b82815281810190858301855b85811015612def578135880189603f820112612e42578788fd5b612e538a8783013560408401612d20565b8552509284019290840190600101612e28565b600082601f830112612e76578081fd5b81356020612e86612da983613d60565b8281528181019085830183850287018401881015612ea2578586fd5b855b85811015612def57813584529284019290840190600101612ea4565b8035801515811461074c57600080fd5b600082601f830112612ee0578081fd5b6108ba83833560208501612d20565b803560ff8116811461074c57600080fd5b600060208284031215612f11578081fd5b6108ba82612d72565b60008060408385031215612f2c578081fd5b612f3583612d72565b946020939093013593505050565b60008060408385031215612f55578182fd5b823567ffffffffffffffff80821115612f6c578384fd5b612f7886838701612d89565b93506020850135915080821115612f8d578283fd5b50612f9a85828601612d89565b9150509250929050565b60008060008060808587031215612fb9578182fd5b843567ffffffffffffffff80821115612fd0578384fd5b612fdc88838901612d89565b95506020870135915080821115612ff1578384fd5b612ffd88838901612e66565b94506040870135915080821115613012578384fd5b61301e88838901612dfc565b93506060870135915080821115613033578283fd5b5061304087828801612ed0565b91505092959194509250565b6000806000806000858703610180811215613065578384fd5b863567ffffffffffffffff8082111561307c578586fd5b6130888a838b01612d89565b9750602089013591508082111561309d578586fd5b6130a98a838b01612e66565b965060408901359150808211156130be578586fd5b6130ca8a838b01612dfc565b955060608901359150808211156130df578384fd5b6130eb8a838b01612ed0565b9450610100915081607f1984011215613102578384fd5b6040519250818301838110828211171561311857fe5b6040525061312860808901612ec0565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b60008060408385031215613193578182fd5b823567ffffffffffffffff808211156131aa578384fd5b818501915085601f8301126131bd578384fd5b813560206131cd612da983613d60565b82815281810190858301838502870184018b10156131e9578889fd5b8896505b8487101561320b5780358352600196909601959183019183016131ed565b5096505086013592505080821115612f8d578283fd5b600060208284031215613232578081fd5b81356001600160e01b0319811681146108ba578182fd5b60006020828403121561325a578081fd5b813567ffffffffffffffff811115613270578182fd5b610eac84828501612ed0565b60008082840360e081121561328f578283fd5b833567ffffffffffffffff808211156132a6578485fd5b6132b287838801612ed0565b945060c0601f19840112156132c5578384fd5b604051925060c08301915082821081831117156132de57fe5b506040526132ee60208501612ec0565b815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b60006060828403121561333e578081fd5b6040516060810181811067ffffffffffffffff8211171561335b57fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613393578081fd5b5035919050565b6000602082840312156133ab578081fd5b5051919050565b600080604083850312156133c4578182fd5b823591506133d460208401612d72565b90509250929050565b600080604083850312156133ef578182fd5b823591506133d460208401612eef565b60008060008060608587031215613414578182fd5b8435935061342460208601612eef565b9250604085013567ffffffffffffffff80821115613440578384fd5b818701915087601f830112613453578384fd5b813581811115613461578485fd5b886020828501011115613472578485fd5b95989497505060200194505050565b600080600080600060a08688031215613498578283fd5b853594506134a860208701612eef565b93506134b660408701612eef565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b838110156135065781516001600160a01b0316875295820195908201906001016134e1565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156135575782840389526135458483516135b6565b9885019893509084019060010161352d565b5091979650505050505050565b8060005b6002811015610ca9578151845260209384019390910190600101613568565b6000815180845260208085019450808401835b838110156135065781518752958201959082019060010161359a565b600081518084526135ce816020860160208601613d7e565b601f01601f19169290920160200192915050565b600082516135f4818460208701613d7e565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c0602082018190526000906136378382018f6134ce565b9050828103604084015261364b818e613587565b9050828103606084015261365f818d613511565b90508281036080840152613673818c6135b6565b91505088151560a083015261368b60c0830189613564565b613699610100830188613564565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b60006040825261374260408301856134ce565b8281036020840152611e2781856134ce565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b602081016008831061378f57fe5b91905290565b6000602082526108ba60208301846135b6565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c060408201819052600090613ca5908301876134ce565b8281036060840152613cb78187613587565b90508281036080840152613ccb8186613511565b9150508260a0830152979650505050505050565b600083825260406020830152610eac60408301846135b6565b918252602082015260400190565b600060ff8716825285602083015260a06040830152613d2860a08301866135b6565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff81118282101715613d5857fe5b604052919050565b600067ffffffffffffffff821115613d7457fe5b5060209081020190565b60005b83811015613d99578181015183820152602001613d81565b83811115610ca9575050600091015256fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122008a1d4486d60479f298067e36a6e9b5718f8bb127de3ccab0684af95b85a2dec64736f6c63430007060033",
1067
- "deployedBytecode": "0x6080604052600436106101f95760003560e01c80637b3c71d31161010d578063bc903cb8116100a0578063e4ea8b651161006f578063e4ea8b65146105ae578063eb9019d4146105c1578063f17c9d76146105e1578063f5a98383146105f6578063f937d6ad1461060b576101f9565b8063bc903cb81461052e578063bd590d7e14610564578063deaaa7cc14610584578063e17f212e14610599576101f9565b80639d6a890f116100dc5780639d6a890f146104ae578063a3c90b80146104ce578063a7a6224a146104ee578063b00c0b761461050e576101f9565b80637b3c71d314610439578063854121961461045957806386f90bbf146104795780639a8a059214610499576101f9565b80635267a15d116101905780635ff270791161015f5780635ff270791461039657806362354e03146103b657806367fc4029146103cb57806374e6310e146103eb57806374ec29a014610419576101f9565b80635267a15d1461033757806354fd4d501461034c57806356781388146103615780635aa6e67514610381576101f9565b80633e4f49e6116101cc5780633e4f49e61461028d57806340e58ee5146102ba57806343859632146102dc57806347c6614014610309576101f9565b8063047fc9aa146101fe57806306fdde031461022957806311a7aaaa1461024b5780633bccf4fd14610260575b600080fd5b34801561020a57600080fd5b50610213610620565b60405161022091906135fe565b60405180910390f35b34801561023557600080fd5b5061023e61062f565b6040516102209190613795565b34801561025757600080fd5b5061021361065b565b34801561026c57600080fd5b5061028061027b366004613481565b61066a565b604051610220919061375f565b34801561029957600080fd5b506102ad6102a8366004613382565b610730565b6040516102209190613781565b3480156102c657600080fd5b506102da6102d5366004613382565b610751565b005b3480156102e857600080fd5b506102fc6102f73660046133b2565b610814565b6040516102209190613754565b34801561031557600080fd5b50610329610324366004613382565b610844565b604051610220929190613cf8565b34801561034357600080fd5b5061021361085d565b34801561035857600080fd5b5061023e610882565b34801561036d57600080fd5b5061028061037c3660046133dd565b61089d565b34801561038d57600080fd5b506102136108c1565b3480156103a257600080fd5b506102da6103b1366004613221565b610958565b3480156103c257600080fd5b50610213610caf565b3480156103d757600080fd5b506102da6103e6366004613221565b610cba565b3480156103f757600080fd5b5061040b610406366004613221565b610da0565b604051610220929190613cdf565b34801561042557600080fd5b506102fc610434366004612f00565b610e47565b34801561044557600080fd5b506102806104543660046133ff565b610e65565b34801561046557600080fd5b5061028061047436600461304c565b610eb4565b34801561048557600080fd5b5061028061049436600461327c565b610ecd565b3480156104a557600080fd5b50610280610f5e565b3480156104ba57600080fd5b506102da6104c9366004612f00565b610f82565b3480156104da57600080fd5b506102806104e9366004612fa4565b61103b565b3480156104fa57600080fd5b506102da610509366004612f43565b611051565b34801561051a57600080fd5b506102da610529366004613181565b61109e565b34801561053a57600080fd5b5061054e610549366004613382565b611145565b6040516102209a999897969594939291906136c6565b34801561057057600080fd5b5061028061057f366004613249565b6111a4565b34801561059057600080fd5b506102806111f3565b3480156105a557600080fd5b506102fc611217565b6102806105bc366004612fa4565b611227565b3480156105cd57600080fd5b506102806105dc366004612f1a565b611238565b3480156105ed57600080fd5b50610213611244565b34801561060257600080fd5b506102da611253565b34801561061757600080fd5b5061021361130d565b6005546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6004546001600160a01b031681565b6000806106c86106c37f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f89896040516020016106a893929190613768565b60405160208183030381529060405280519060200120611331565b61137d565b905060006106d8828787876113ce565b90506001600160a01b0381166107095760405162461bcd60e51b815260040161070090613a3c565b60405180910390fd5b61072488828960405180602001604052806000815250611543565b98975050505050505050565b6000818152600260205260408120610749908390611604565b90505b919050565b60008181526002602052604090208054600160b01b900460ff16156107885760405162461bcd60e51b815260040161070090613b18565b80546001600160a01b031633146107b15760405162461bcd60e51b8152600401610700906137df565b806002015442106107d45760405162461bcd60e51b815260040161070090613863565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6040805180820190915260018152603160f81b602082015290565b60006108ba83338460405180602001604052806000815250611543565b9392505050565b600654600090600160a81b900460ff166108e6576006546001600160a01b0316610953565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561092657600080fd5b505afa15801561093a573d6000803e3d6000fd5b505050506040513d602081101561095057600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561099c57600080fd5b505afa1580156109b0573d6000803e3d6000fd5b505050506040513d60208110156109c657600080fd5b5051610a09576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526007602052604090208054610a75576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610acb576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b655780601f10610b3a57610100808354040283529160200191610b65565b820191906000526020600020905b815481529060010190602001808311610b4857829003601f168201915b505050506001600160e01b0319851660009081526007602052604081208181559293509050610b976001830182612c1a565b50506006805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310610be35780518252601f199092019160209182019101610bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610c45576040519150601f19603f3d011682016040523d82523d6000602084013e610c4a565b606091505b50506006805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610ca9816116e2565b50505050565b60076001609c1b0181565b610cc26116ff565b6001600160e01b03198116600090815260076020526040902054610d2d576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260076020526040812081815590610d9b6001830182612c1a565b505050565b6007602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015610e3d5780601f10610e1257610100808354040283529160200191610e3d565b820191906000526020600020905b815481529060010190602001808311610e2057829003601f168201915b5050505050905082565b6001600160a01b031660009081526008602052604090205460ff1690565b6000610ea985338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061154392505050565b90505b949350505050565b6000610ec38686868686611760565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610eac929185610f56565b6060815260200190600190039081610f415790505b508785611760565b7f000000000000000000000000000000000000000000000000000000000000000081565b600654600160a01b900460ff1615610fd8576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60068054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000610ea985858561104c866119f6565b611a01565b600654600160b01b900460ff16806110735750600654600160a81b900460ff16155b1561108f57611080611a5f565b61108a8282611a94565b61109a565b61109a600036611b7e565b5050565b6110a661085d565b6001600160a01b0316336001600160a01b031614611102576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61113b61113683836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611d03565b611e30565b61109a8282611e54565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b60408051600080825260208201818152828401828152606084019094529092610749929190846111e4565b60608152602001906001900390816111cf5790505b506111ee866119f6565b611f3a565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600654600160a81b900460ff1681565b6000610ea98585856111ee866119f6565b60006108ba8383612036565b6000546001600160a01b031681565b61125b6116ff565b600654600160a81b900460ff16156112ba576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60068054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061133b6120b9565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561142f5760405162461bcd60e51b8152600401808060200182810382526022815260200180613dab6022913960400191505060405180910390fd5b8360ff16601b148061144457508360ff16601c145b61147f5760405162461bcd60e51b8152600401808060200182810382526022815260200180613dcd6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114db573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610ea9576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161155d8783611604565b600781111561156857fe5b146115855760405162461bcd60e51b815260040161070090613b7e565b6000611595868360010154612036565b905060006115a588888885612183565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e888589866001015487600001546040516115f1959493929190613d06565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff16156116205750600761083e565b8154600160a81b900460ff16156116395750600661083e565b600282015461165a5760405162461bcd60e51b815260040161070090613a6c565b428260020154111561166e5750600061083e565b42826003015411156116825750600161083e565b61168c838361223b565b156116d9578154600160b81b900460ff166116a95750600461083e565b42826004015411156116bd5750600361083e565b42826005015411156116d15750600461083e565b50600561083e565b50600292915050565b3d604051818101604052816000823e82156116fb578181f35b8181fd5b6117076108c1565b6001600160a01b0316336001600160a01b03161461175e576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b600080600061177284606001516122e4565b915091506117803383612645565b61179c5760405162461bcd60e51b8152600401610700906138ec565b60008460400151116117c05760405162461bcd60e51b815260040161070090613b4f565b60008460e00151116117e45760405162461bcd60e51b815260040161070090613a99565b6127108460800151111561180a5760405162461bcd60e51b8152600401610700906138b5565b6113888460a001511015801561182657506127108460a0015111155b6118425760405162461bcd60e51b81526004016107009061393a565b60055460405163d9330e6360e01b81526000916001600160a01b03169063d9330e639061187390869060040161375f565b60206040518083038186803b15801561188b57600080fd5b505afa15801561189f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c3919061339a565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663ec31db0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561191557600080fd5b505afa158015611929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194d919061339a565b9050600080611964338d8d8d8d8b8b8f8c8c612650565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166119aa896127f6565b6119b38a612818565b8a600101548b600601548c600701548d600801546040516119df9c9b9a99989796959493929190613612565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f00000000000000000000000000000000000000000000000000000000000000003086868686604051602001611a3e96959493929190613c7b565b60408051601f19818403018152919052805160209091012095945050505050565b600654600160b01b900460ff1615611a8c57333014611a7a57fe5b6006805460ff60b01b1916905561175e565b61175e6116ff565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051611ac592919061372f565b60405180910390a160005b8251811015611b2557600160086000858481518110611aeb57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611ad0565b5060005b8151811015610d9b57600060086000848481518110611b4457fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611b29565b611b866116ff565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bce57600080fd5b505afa158015611be2573d6000803e3d6000fd5b505050506040513d6020811015611bf857600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260076020908152604090912083518155838201518051919350611c7e926001850192910190612c61565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611d47578181015183820152602001611d2f565b50505050905090810190601f168015611d745780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015611ddc57868181518110611daa57fe5b6020026020010151831415611dd457858181518110611dc557fe5b60200260200101519150611ddc565b600101611d95565b506001600160a01b038116611e27576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b611e8282826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b815250611d03565b600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611ed1828260405180604001604052806006815260200165537570706c7960d01b815250611d03565b600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000611f2f83836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b815250611d03565b9050610d9b81612834565b6000611f4885858585611a01565b6000818152600260205260409020805491925090600160a81b900460ff1615611f835760405162461bcd60e51b815260040161070090613c44565b80546001600160a01b03163314611fac5760405162461bcd60e51b8152600401610700906139a8565b6000611fb88383611604565b90506004816007811115611fc857fe5b14611fe55760405162461bcd60e51b815260040161070090613c0d565b815460ff60a81b1916600160a81b178255612001878787612856565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906120699086908690600401613716565b60206040518083038186803b15801561208157600080fd5b505afa158015612095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ba919061339a565b60007f00000000000000000000000000000000000000000000000000000000000000006120e461298e565b141561211157507f0000000000000000000000000000000000000000000000000000000000000000610658565b61217c7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612992565b9050610658565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff16156121cb5760405162461bcd60e51b815260040161070090613be2565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561220857805482018155610eac565b60ff8316600114156122235760018101805483019055610eac565b60405162461bcd60e51b815260040161070090613bab565b60008281526003602052604081206008830154600684015461225f916127106129f4565b815460018301540110156122815750508054600160a01b900460ff161561083e565b80546001820154600785015461229c929091016127106129f4565b8354600160a01b900460ff166122b35781546122b9565b81600101545b116122d25750508054600160a01b900460ff161561083e565b505054600160a01b900460ff16919050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561233757600080fd5b505afa15801561234b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236f919061339a565b6004805460405163e5399da360e01b81529293506000926001600160a01b039091169163e5399da3916123a49186910161375f565b60606040518083038186803b1580156123bc57600080fd5b505afa1580156123d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f4919061332d565b6000805460408051635397625b60e11b8152905193945043936001600160a01b039092169163a72ec4b691600480820192602092909190829003018186803b15801561243f57600080fd5b505afa158015612453573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612477919061339a565b604084015190915042035b60008511801561249157508781105b15612548576004805460405163e5399da360e01b81526000926001600160a01b039092169163e5399da3916124cc916000198b01910161375f565b60606040518083038186803b1580156124e457600080fd5b505afa1580156124f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251c919061332d565b905082816020015110156125305750612548565b60408101516000199096019590945042039050612482565b600084602001519050600042905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125b157600080fd5b505afa1580156125c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e9919061339a565b905060008282604051602001612600929190613cf8565b6040516020818303038152906040528051906020012060001c90506000848803828161262857fe5b6040909a015199069097039a509698505050505050505050915091565b60006108ba83610e47565b60008089518b51146126745760405162461bcd60e51b8152600401610700906137a8565b88518b51146126955760405162461bcd60e51b8152600401610700906137a8565b60006126a68c8c8c61104c8d6119f6565b60008181526002602081905260409091209081015491925090156126dc5760405162461bcd60e51b81526004016107009061382c565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff021916908315150217905550866020015142018160020181905550866040015181600201540181600301819055508488826003015403106127755760405162461bcd60e51b8152600401610700906139f5565b8c51156127c757805460ff60b81b1916600160b81b17815560c08701516003820154016004820181905560015411156127b15760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b6127fe612ced565b6002820154815260038201548160015b6020020152919050565b612820612ced565b60048201548152600582015481600161280e565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b83518110156128885783818151811061286f57fe5b602002602001015182019150808060010191505061285a565b508034146128a85760405162461bcd60e51b815260040161070090613ad0565b60005b8451811015612987576000808683815181106128c357fe5b60200260200101516001600160a01b03168684815181106128e057fe5b60200260200101518685815181106128f457fe5b602002602001015160405161290991906135e2565b60006040518083038185875af1925050503d8060008114612946576040519150601f19603f3d011682016040523d82523d6000602084013e61294b565b606091505b50915091508161297d578051156129655780518082602001fd5b60405162461bcd60e51b815260040161070090613971565b50506001016128ab565b5050505050565b4690565b600083838361299f61298e565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b6000808211612a3d576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612a4a575060006108ba565b83830283858281612a5757fe5b041415612a7057828181612a6757fe5b049150506108ba565b6000838681612a7b57fe5b0490506000848781612a8957fe5b0690506000858781612a9757fe5b0490506000868881612aa557fe5b069050612af3612abf88612ab98685612b00565b90612b59565b612aed612acc8686612b00565b612aed612ad98987612b00565b612aed8d612ae78c8b612b00565b90612b00565b90612bc0565b9998505050505050505050565b600082612b0f5750600061083e565b82820282848281612b1c57fe5b04146108ba5760405162461bcd60e51b8152600401808060200182810382526021815260200180613def6021913960400191505060405180910390fd5b6000808211612baf576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612bb857fe5b049392505050565b6000828201838110156108ba576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612c405750612c5e565b601f016020900490600052602060002090810190612c5e9190612d0b565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612c975760008555612cdd565b82601f10612cb057805160ff1916838001178555612cdd565b82800160010185558215612cdd579182015b82811115612cdd578251825591602001919060010190612cc2565b50612ce9929150612d0b565b5090565b60405180604001604052806002906020820280368337509192915050565b5b80821115612ce95760008155600101612d0c565b600067ffffffffffffffff831115612d3457fe5b612d47601f8401601f1916602001613d3c565b9050828152838383011115612d5b57600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461074c57600080fd5b600082601f830112612d99578081fd5b81356020612dae612da983613d60565b613d3c565b8281528181019085830183850287018401881015612dca578586fd5b855b85811015612def57612ddd82612d72565b84529284019290840190600101612dcc565b5090979650505050505050565b600082601f830112612e0c578081fd5b81356020612e1c612da983613d60565b82815281810190858301855b85811015612def578135880189603f820112612e42578788fd5b612e538a8783013560408401612d20565b8552509284019290840190600101612e28565b600082601f830112612e76578081fd5b81356020612e86612da983613d60565b8281528181019085830183850287018401881015612ea2578586fd5b855b85811015612def57813584529284019290840190600101612ea4565b8035801515811461074c57600080fd5b600082601f830112612ee0578081fd5b6108ba83833560208501612d20565b803560ff8116811461074c57600080fd5b600060208284031215612f11578081fd5b6108ba82612d72565b60008060408385031215612f2c578081fd5b612f3583612d72565b946020939093013593505050565b60008060408385031215612f55578182fd5b823567ffffffffffffffff80821115612f6c578384fd5b612f7886838701612d89565b93506020850135915080821115612f8d578283fd5b50612f9a85828601612d89565b9150509250929050565b60008060008060808587031215612fb9578182fd5b843567ffffffffffffffff80821115612fd0578384fd5b612fdc88838901612d89565b95506020870135915080821115612ff1578384fd5b612ffd88838901612e66565b94506040870135915080821115613012578384fd5b61301e88838901612dfc565b93506060870135915080821115613033578283fd5b5061304087828801612ed0565b91505092959194509250565b6000806000806000858703610180811215613065578384fd5b863567ffffffffffffffff8082111561307c578586fd5b6130888a838b01612d89565b9750602089013591508082111561309d578586fd5b6130a98a838b01612e66565b965060408901359150808211156130be578586fd5b6130ca8a838b01612dfc565b955060608901359150808211156130df578384fd5b6130eb8a838b01612ed0565b9450610100915081607f1984011215613102578384fd5b6040519250818301838110828211171561311857fe5b6040525061312860808901612ec0565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b60008060408385031215613193578182fd5b823567ffffffffffffffff808211156131aa578384fd5b818501915085601f8301126131bd578384fd5b813560206131cd612da983613d60565b82815281810190858301838502870184018b10156131e9578889fd5b8896505b8487101561320b5780358352600196909601959183019183016131ed565b5096505086013592505080821115612f8d578283fd5b600060208284031215613232578081fd5b81356001600160e01b0319811681146108ba578182fd5b60006020828403121561325a578081fd5b813567ffffffffffffffff811115613270578182fd5b610eac84828501612ed0565b60008082840360e081121561328f578283fd5b833567ffffffffffffffff808211156132a6578485fd5b6132b287838801612ed0565b945060c0601f19840112156132c5578384fd5b604051925060c08301915082821081831117156132de57fe5b506040526132ee60208501612ec0565b815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b60006060828403121561333e578081fd5b6040516060810181811067ffffffffffffffff8211171561335b57fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613393578081fd5b5035919050565b6000602082840312156133ab578081fd5b5051919050565b600080604083850312156133c4578182fd5b823591506133d460208401612d72565b90509250929050565b600080604083850312156133ef578182fd5b823591506133d460208401612eef565b60008060008060608587031215613414578182fd5b8435935061342460208601612eef565b9250604085013567ffffffffffffffff80821115613440578384fd5b818701915087601f830112613453578384fd5b813581811115613461578485fd5b886020828501011115613472578485fd5b95989497505060200194505050565b600080600080600060a08688031215613498578283fd5b853594506134a860208701612eef565b93506134b660408701612eef565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b838110156135065781516001600160a01b0316875295820195908201906001016134e1565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156135575782840389526135458483516135b6565b9885019893509084019060010161352d565b5091979650505050505050565b8060005b6002811015610ca9578151845260209384019390910190600101613568565b6000815180845260208085019450808401835b838110156135065781518752958201959082019060010161359a565b600081518084526135ce816020860160208601613d7e565b601f01601f19169290920160200192915050565b600082516135f4818460208701613d7e565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c0602082018190526000906136378382018f6134ce565b9050828103604084015261364b818e613587565b9050828103606084015261365f818d613511565b90508281036080840152613673818c6135b6565b91505088151560a083015261368b60c0830189613564565b613699610100830188613564565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b60006040825261374260408301856134ce565b8281036020840152611e2781856134ce565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b602081016008831061378f57fe5b91905290565b6000602082526108ba60208301846135b6565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c060408201819052600090613ca5908301876134ce565b8281036060840152613cb78187613587565b90508281036080840152613ccb8186613511565b9150508260a0830152979650505050505050565b600083825260406020830152610eac60408301846135b6565b918252602082015260400190565b600060ff8716825285602083015260a06040830152613d2860a08301866135b6565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff81118282101715613d5857fe5b604052919050565b600067ffffffffffffffff821115613d7457fe5b5060209081020190565b60005b83811015613d99578181015183820152602001613d81565b83811115610ca9575050600091015256fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a264697066735822122008a1d4486d60479f298067e36a6e9b5718f8bb127de3ccab0684af95b85a2dec64736f6c63430007060033",
1066
+ "bytecode": "0x6101606040523480156200001257600080fd5b506040516200442738038062004427833981016040819052620000359162000413565b808480858580620000456200016a565b6200004f62000195565b815160208084019190912082519183019190912060c082905260e08190527f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f62000098620001b0565b60a052620000a8818484620001b4565b608052610100525050466101205250620000c490508162000218565b505060601b6001600160601b031916610140526001600160a01b03811615620000f257620000f2816200023c565b506001600160a01b03811662000142576040805162461bcd60e51b815260206004820152601060248201526f5f676f7665726e616e6365207a65726f60801b604482015290519081900360640190fd5b506040805160008152602081019091526200015f908290620002ff565b505050505062000581565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b602082015290565b6040805180820190915260018152603160f81b602082015290565b4690565b6000838383620001c3620001b0565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b600654600160a01b900460ff16156200029c576040805162461bcd60e51b815260206004820152601460248201527f696e697469616c6973656420213d2066616c7365000000000000000000000000604482015290519081900360640190fd5b60068054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051620003329291906200054f565b60405180910390a160005b825181101562000395576001600860008584815181106200035a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016200033d565b5060005b8151811015620003f157600060086000848481518110620003b657fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000399565b505050565b80516001600160a01b03811681146200040e57600080fd5b919050565b6000806000806080858703121562000429578384fd5b6200043485620003f6565b9350602062000445818701620003f6565b93506200045560408701620003f6565b60608701519093506001600160401b038082111562000472578384fd5b818801915088601f83011262000486578384fd5b8151818111156200049357fe5b83810260405185828201018181108582111715620004ad57fe5b604052828152858101935084860182860187018d1015620004cc578788fd5b8795505b83861015620004f957620004e481620003f6565b855260019590950194938601938601620004d0565b50989b979a50959850505050505050565b6000815180845260208085019450808401835b83811015620005445781516001600160a01b0316875295820195908201906001016200051d565b509495945050505050565b6000604082526200056460408301856200050a565b82810360208401526200057881856200050a565b95945050505050565b60805160a05160c05160e05161010051610120516101405160601c613e45620005e26000398061130f528061255a525080610f605280611a055250806121165250806121585250806121375250806120bd5250806120ed5250613e456000f3fe6080604052600436106101f95760003560e01c80637b3c71d31161010d578063bc903cb8116100a0578063e4ea8b651161006f578063e4ea8b65146105ae578063eb9019d4146105c1578063f17c9d76146105e1578063f5a98383146105f6578063f937d6ad1461060b576101f9565b8063bc903cb81461052e578063bd590d7e14610564578063deaaa7cc14610584578063e17f212e14610599576101f9565b80639d6a890f116100dc5780639d6a890f146104ae578063a3c90b80146104ce578063a7a6224a146104ee578063b00c0b761461050e576101f9565b80637b3c71d314610439578063854121961461045957806386f90bbf146104795780639a8a059214610499576101f9565b80635267a15d116101905780635ff270791161015f5780635ff270791461039657806362354e03146103b657806367fc4029146103cb57806374e6310e146103eb57806374ec29a014610419576101f9565b80635267a15d1461033757806354fd4d501461034c57806356781388146103615780635aa6e67514610381576101f9565b80633e4f49e6116101cc5780633e4f49e61461028d57806340e58ee5146102ba57806343859632146102dc57806347c6614014610309576101f9565b8063047fc9aa146101fe57806306fdde031461022957806311a7aaaa1461024b5780633bccf4fd14610260575b600080fd5b34801561020a57600080fd5b50610213610620565b60405161022091906135fe565b60405180910390f35b34801561023557600080fd5b5061023e61062f565b6040516102209190613795565b34801561025757600080fd5b5061021361065b565b34801561026c57600080fd5b5061028061027b366004613481565b61066a565b604051610220919061375f565b34801561029957600080fd5b506102ad6102a8366004613382565b610730565b6040516102209190613781565b3480156102c657600080fd5b506102da6102d5366004613382565b610751565b005b3480156102e857600080fd5b506102fc6102f73660046133b2565b610814565b6040516102209190613754565b34801561031557600080fd5b50610329610324366004613382565b610844565b604051610220929190613cf8565b34801561034357600080fd5b5061021361085d565b34801561035857600080fd5b5061023e610882565b34801561036d57600080fd5b5061028061037c3660046133dd565b61089d565b34801561038d57600080fd5b506102136108c1565b3480156103a257600080fd5b506102da6103b1366004613221565b610958565b3480156103c257600080fd5b50610213610caf565b3480156103d757600080fd5b506102da6103e6366004613221565b610cba565b3480156103f757600080fd5b5061040b610406366004613221565b610da0565b604051610220929190613cdf565b34801561042557600080fd5b506102fc610434366004612f00565b610e47565b34801561044557600080fd5b506102806104543660046133ff565b610e65565b34801561046557600080fd5b5061028061047436600461304c565b610eb4565b34801561048557600080fd5b5061028061049436600461327c565b610ecd565b3480156104a557600080fd5b50610280610f5e565b3480156104ba57600080fd5b506102da6104c9366004612f00565b610f82565b3480156104da57600080fd5b506102806104e9366004612fa4565b61103b565b3480156104fa57600080fd5b506102da610509366004612f43565b611051565b34801561051a57600080fd5b506102da610529366004613181565b61109e565b34801561053a57600080fd5b5061054e610549366004613382565b611145565b6040516102209a999897969594939291906136c6565b34801561057057600080fd5b5061028061057f366004613249565b6111a4565b34801561059057600080fd5b506102806111f3565b3480156105a557600080fd5b506102fc611217565b6102806105bc366004612fa4565b611227565b3480156105cd57600080fd5b506102806105dc366004612f1a565b611238565b3480156105ed57600080fd5b50610213611244565b34801561060257600080fd5b506102da611253565b34801561061757600080fd5b5061021361130d565b6005546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6004546001600160a01b031681565b6000806106c86106c37f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f89896040516020016106a893929190613768565b60405160208183030381529060405280519060200120611331565b61137d565b905060006106d8828787876113ce565b90506001600160a01b0381166107095760405162461bcd60e51b815260040161070090613a3c565b60405180910390fd5b61072488828960405180602001604052806000815250611543565b98975050505050505050565b6000818152600260205260408120610749908390611604565b90505b919050565b60008181526002602052604090208054600160b01b900460ff16156107885760405162461bcd60e51b815260040161070090613b18565b80546001600160a01b031633146107b15760405162461bcd60e51b8152600401610700906137df565b806002015442106107d45760405162461bcd60e51b815260040161070090613863565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6040805180820190915260018152603160f81b602082015290565b60006108ba83338460405180602001604052806000815250611543565b9392505050565b600654600090600160a81b900460ff166108e6576006546001600160a01b0316610953565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561092657600080fd5b505afa15801561093a573d6000803e3d6000fd5b505050506040513d602081101561095057600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561099c57600080fd5b505afa1580156109b0573d6000803e3d6000fd5b505050506040513d60208110156109c657600080fd5b5051610a09576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526007602052604090208054610a75576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610acb576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b655780601f10610b3a57610100808354040283529160200191610b65565b820191906000526020600020905b815481529060010190602001808311610b4857829003601f168201915b505050506001600160e01b0319851660009081526007602052604081208181559293509050610b976001830182612c1a565b50506006805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310610be35780518252601f199092019160209182019101610bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610c45576040519150601f19603f3d011682016040523d82523d6000602084013e610c4a565b606091505b50506006805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610ca9816116e2565b50505050565b60076001609c1b0181565b610cc26116ff565b6001600160e01b03198116600090815260076020526040902054610d2d576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260076020526040812081815590610d9b6001830182612c1a565b505050565b6007602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015610e3d5780601f10610e1257610100808354040283529160200191610e3d565b820191906000526020600020905b815481529060010190602001808311610e2057829003601f168201915b5050505050905082565b6001600160a01b031660009081526008602052604090205460ff1690565b6000610ea985338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061154392505050565b90505b949350505050565b6000610ec38686868686611760565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610eac929185610f56565b6060815260200190600190039081610f415790505b508785611760565b7f000000000000000000000000000000000000000000000000000000000000000081565b600654600160a01b900460ff1615610fd8576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60068054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000610ea985858561104c866119f6565b611a01565b600654600160b01b900460ff16806110735750600654600160a81b900460ff16155b1561108f57611080611a5f565b61108a8282611a94565b61109a565b61109a600036611b7e565b5050565b6110a661085d565b6001600160a01b0316336001600160a01b031614611102576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61113b61113683836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611d03565b611e30565b61109a8282611e54565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b60408051600080825260208201818152828401828152606084019094529092610749929190846111e4565b60608152602001906001900390816111cf5790505b506111ee866119f6565b611f3a565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600654600160a81b900460ff1681565b6000610ea98585856111ee866119f6565b60006108ba8383612036565b6000546001600160a01b031681565b61125b6116ff565b600654600160a81b900460ff16156112ba576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60068054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061133b6120b9565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561142f5760405162461bcd60e51b8152600401808060200182810382526022815260200180613dab6022913960400191505060405180910390fd5b8360ff16601b148061144457508360ff16601c145b61147f5760405162461bcd60e51b8152600401808060200182810382526022815260200180613dcd6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114db573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610ea9576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161155d8783611604565b600781111561156857fe5b146115855760405162461bcd60e51b815260040161070090613b7e565b6000611595868360010154612036565b905060006115a588888885612183565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e888589866001015487600001546040516115f1959493929190613d06565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff16156116205750600761083e565b8154600160a81b900460ff16156116395750600661083e565b600282015461165a5760405162461bcd60e51b815260040161070090613a6c565b428260020154111561166e5750600061083e565b42826003015411156116825750600161083e565b61168c838361223b565b156116d9578154600160b81b900460ff166116a95750600461083e565b42826004015411156116bd5750600361083e565b42826005015411156116d15750600461083e565b50600561083e565b50600292915050565b3d604051818101604052816000823e82156116fb578181f35b8181fd5b6117076108c1565b6001600160a01b0316336001600160a01b03161461175e576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b600080600061177284606001516122e4565b915091506117803383612645565b61179c5760405162461bcd60e51b8152600401610700906138ec565b60008460400151116117c05760405162461bcd60e51b815260040161070090613b4f565b60008460e00151116117e45760405162461bcd60e51b815260040161070090613a99565b6127108460800151111561180a5760405162461bcd60e51b8152600401610700906138b5565b6113888460a001511015801561182657506127108460a0015111155b6118425760405162461bcd60e51b81526004016107009061393a565b60055460405163d9330e6360e01b81526000916001600160a01b03169063d9330e639061187390869060040161375f565b60206040518083038186803b15801561188b57600080fd5b505afa15801561189f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c3919061339a565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663ec31db0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561191557600080fd5b505afa158015611929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194d919061339a565b9050600080611964338d8d8d8d8b8b8f8c8c612650565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166119aa896127f6565b6119b38a612818565b8a600101548b600601548c600701548d600801546040516119df9c9b9a99989796959493929190613612565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f00000000000000000000000000000000000000000000000000000000000000003086868686604051602001611a3e96959493929190613c7b565b60408051601f19818403018152919052805160209091012095945050505050565b600654600160b01b900460ff1615611a8c57333014611a7a57fe5b6006805460ff60b01b1916905561175e565b61175e6116ff565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051611ac592919061372f565b60405180910390a160005b8251811015611b2557600160086000858481518110611aeb57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611ad0565b5060005b8151811015610d9b57600060086000848481518110611b4457fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611b29565b611b866116ff565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bce57600080fd5b505afa158015611be2573d6000803e3d6000fd5b505050506040513d6020811015611bf857600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260076020908152604090912083518155838201518051919350611c7e926001850192910190612c61565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611d47578181015183820152602001611d2f565b50505050905090810190601f168015611d745780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015611ddc57868181518110611daa57fe5b6020026020010151831415611dd457858181518110611dc557fe5b60200260200101519150611ddc565b600101611d95565b506001600160a01b038116611e27576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b611e8282826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b815250611d03565b600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611ed1828260405180604001604052806006815260200165537570706c7960d01b815250611d03565b600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000611f2f83836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b815250611d03565b9050610d9b81612834565b6000611f4885858585611a01565b6000818152600260205260409020805491925090600160a81b900460ff1615611f835760405162461bcd60e51b815260040161070090613c44565b80546001600160a01b03163314611fac5760405162461bcd60e51b8152600401610700906139a8565b6000611fb88383611604565b90506004816007811115611fc857fe5b14611fe55760405162461bcd60e51b815260040161070090613c0d565b815460ff60a81b1916600160a81b178255612001878787612856565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906120699086908690600401613716565b60206040518083038186803b15801561208157600080fd5b505afa158015612095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ba919061339a565b60007f00000000000000000000000000000000000000000000000000000000000000006120e461298e565b141561211157507f0000000000000000000000000000000000000000000000000000000000000000610658565b61217c7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612992565b9050610658565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff16156121cb5760405162461bcd60e51b815260040161070090613be2565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561220857805482018155610eac565b60ff8316600114156122235760018101805483019055610eac565b60405162461bcd60e51b815260040161070090613bab565b60008281526003602052604081206008830154600684015461225f916127106129f4565b815460018301540110156122815750508054600160a01b900460ff161561083e565b80546001820154600785015461229c929091016127106129f4565b8354600160a01b900460ff166122b35781546122b9565b81600101545b116122d25750508054600160a01b900460ff161561083e565b505054600160a01b900460ff16919050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561233757600080fd5b505afa15801561234b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236f919061339a565b6004805460405163e5399da360e01b81529293506000926001600160a01b039091169163e5399da3916123a49186910161375f565b60606040518083038186803b1580156123bc57600080fd5b505afa1580156123d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f4919061332d565b6000805460408051635397625b60e11b8152905193945043936001600160a01b039092169163a72ec4b691600480820192602092909190829003018186803b15801561243f57600080fd5b505afa158015612453573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612477919061339a565b604084015190915042035b60008511801561249157508781105b15612548576004805460405163e5399da360e01b81526000926001600160a01b039092169163e5399da3916124cc916000198b01910161375f565b60606040518083038186803b1580156124e457600080fd5b505afa1580156124f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251c919061332d565b905082816020015110156125305750612548565b60408101516000199096019590945042039050612482565b600084602001519050600042905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125b157600080fd5b505afa1580156125c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e9919061339a565b905060008282604051602001612600929190613cf8565b6040516020818303038152906040528051906020012060001c90506000848803828161262857fe5b6040909a015199069097039a509698505050505050505050915091565b60006108ba83610e47565b60008089518b51146126745760405162461bcd60e51b8152600401610700906137a8565b88518b51146126955760405162461bcd60e51b8152600401610700906137a8565b60006126a68c8c8c61104c8d6119f6565b60008181526002602081905260409091209081015491925090156126dc5760405162461bcd60e51b81526004016107009061382c565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff021916908315150217905550866020015142018160020181905550866040015181600201540181600301819055508488826003015403106127755760405162461bcd60e51b8152600401610700906139f5565b8c51156127c757805460ff60b81b1916600160b81b17815560c08701516003820154016004820181905560015411156127b15760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b6127fe612ced565b6002820154815260038201548160015b6020020152919050565b612820612ced565b60048201548152600582015481600161280e565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b83518110156128885783818151811061286f57fe5b602002602001015182019150808060010191505061285a565b508034146128a85760405162461bcd60e51b815260040161070090613ad0565b60005b8451811015612987576000808683815181106128c357fe5b60200260200101516001600160a01b03168684815181106128e057fe5b60200260200101518685815181106128f457fe5b602002602001015160405161290991906135e2565b60006040518083038185875af1925050503d8060008114612946576040519150601f19603f3d011682016040523d82523d6000602084013e61294b565b606091505b50915091508161297d578051156129655780518082602001fd5b60405162461bcd60e51b815260040161070090613971565b50506001016128ab565b5050505050565b4690565b600083838361299f61298e565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b6000808211612a3d576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612a4a575060006108ba565b83830283858281612a5757fe5b041415612a7057828181612a6757fe5b049150506108ba565b6000838681612a7b57fe5b0490506000848781612a8957fe5b0690506000858781612a9757fe5b0490506000868881612aa557fe5b069050612af3612abf88612ab98685612b00565b90612b59565b612aed612acc8686612b00565b612aed612ad98987612b00565b612aed8d612ae78c8b612b00565b90612b00565b90612bc0565b9998505050505050505050565b600082612b0f5750600061083e565b82820282848281612b1c57fe5b04146108ba5760405162461bcd60e51b8152600401808060200182810382526021815260200180613def6021913960400191505060405180910390fd5b6000808211612baf576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612bb857fe5b049392505050565b6000828201838110156108ba576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612c405750612c5e565b601f016020900490600052602060002090810190612c5e9190612d0b565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612c975760008555612cdd565b82601f10612cb057805160ff1916838001178555612cdd565b82800160010185558215612cdd579182015b82811115612cdd578251825591602001919060010190612cc2565b50612ce9929150612d0b565b5090565b60405180604001604052806002906020820280368337509192915050565b5b80821115612ce95760008155600101612d0c565b600067ffffffffffffffff831115612d3457fe5b612d47601f8401601f1916602001613d3c565b9050828152838383011115612d5b57600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461074c57600080fd5b600082601f830112612d99578081fd5b81356020612dae612da983613d60565b613d3c565b8281528181019085830183850287018401881015612dca578586fd5b855b85811015612def57612ddd82612d72565b84529284019290840190600101612dcc565b5090979650505050505050565b600082601f830112612e0c578081fd5b81356020612e1c612da983613d60565b82815281810190858301855b85811015612def578135880189603f820112612e42578788fd5b612e538a8783013560408401612d20565b8552509284019290840190600101612e28565b600082601f830112612e76578081fd5b81356020612e86612da983613d60565b8281528181019085830183850287018401881015612ea2578586fd5b855b85811015612def57813584529284019290840190600101612ea4565b8035801515811461074c57600080fd5b600082601f830112612ee0578081fd5b6108ba83833560208501612d20565b803560ff8116811461074c57600080fd5b600060208284031215612f11578081fd5b6108ba82612d72565b60008060408385031215612f2c578081fd5b612f3583612d72565b946020939093013593505050565b60008060408385031215612f55578182fd5b823567ffffffffffffffff80821115612f6c578384fd5b612f7886838701612d89565b93506020850135915080821115612f8d578283fd5b50612f9a85828601612d89565b9150509250929050565b60008060008060808587031215612fb9578182fd5b843567ffffffffffffffff80821115612fd0578384fd5b612fdc88838901612d89565b95506020870135915080821115612ff1578384fd5b612ffd88838901612e66565b94506040870135915080821115613012578384fd5b61301e88838901612dfc565b93506060870135915080821115613033578283fd5b5061304087828801612ed0565b91505092959194509250565b6000806000806000858703610180811215613065578384fd5b863567ffffffffffffffff8082111561307c578586fd5b6130888a838b01612d89565b9750602089013591508082111561309d578586fd5b6130a98a838b01612e66565b965060408901359150808211156130be578586fd5b6130ca8a838b01612dfc565b955060608901359150808211156130df578384fd5b6130eb8a838b01612ed0565b9450610100915081607f1984011215613102578384fd5b6040519250818301838110828211171561311857fe5b6040525061312860808901612ec0565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b60008060408385031215613193578182fd5b823567ffffffffffffffff808211156131aa578384fd5b818501915085601f8301126131bd578384fd5b813560206131cd612da983613d60565b82815281810190858301838502870184018b10156131e9578889fd5b8896505b8487101561320b5780358352600196909601959183019183016131ed565b5096505086013592505080821115612f8d578283fd5b600060208284031215613232578081fd5b81356001600160e01b0319811681146108ba578182fd5b60006020828403121561325a578081fd5b813567ffffffffffffffff811115613270578182fd5b610eac84828501612ed0565b60008082840360e081121561328f578283fd5b833567ffffffffffffffff808211156132a6578485fd5b6132b287838801612ed0565b945060c0601f19840112156132c5578384fd5b604051925060c08301915082821081831117156132de57fe5b506040526132ee60208501612ec0565b815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b60006060828403121561333e578081fd5b6040516060810181811067ffffffffffffffff8211171561335b57fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613393578081fd5b5035919050565b6000602082840312156133ab578081fd5b5051919050565b600080604083850312156133c4578182fd5b823591506133d460208401612d72565b90509250929050565b600080604083850312156133ef578182fd5b823591506133d460208401612eef565b60008060008060608587031215613414578182fd5b8435935061342460208601612eef565b9250604085013567ffffffffffffffff80821115613440578384fd5b818701915087601f830112613453578384fd5b813581811115613461578485fd5b886020828501011115613472578485fd5b95989497505060200194505050565b600080600080600060a08688031215613498578283fd5b853594506134a860208701612eef565b93506134b660408701612eef565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b838110156135065781516001600160a01b0316875295820195908201906001016134e1565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156135575782840389526135458483516135b6565b9885019893509084019060010161352d565b5091979650505050505050565b8060005b6002811015610ca9578151845260209384019390910190600101613568565b6000815180845260208085019450808401835b838110156135065781518752958201959082019060010161359a565b600081518084526135ce816020860160208601613d7e565b601f01601f19169290920160200192915050565b600082516135f4818460208701613d7e565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c0602082018190526000906136378382018f6134ce565b9050828103604084015261364b818e613587565b9050828103606084015261365f818d613511565b90508281036080840152613673818c6135b6565b91505088151560a083015261368b60c0830189613564565b613699610100830188613564565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b60006040825261374260408301856134ce565b8281036020840152611e2781856134ce565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b602081016008831061378f57fe5b91905290565b6000602082526108ba60208301846135b6565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c060408201819052600090613ca5908301876134ce565b8281036060840152613cb78187613587565b90508281036080840152613ccb8186613511565b9150508260a0830152979650505050505050565b600083825260406020830152610eac60408301846135b6565b918252602082015260400190565b600060ff8716825285602083015260a06040830152613d2860a08301866135b6565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff81118282101715613d5857fe5b604052919050565b600067ffffffffffffffff821115613d7457fe5b5060209081020190565b60005b83811015613d99578181015183820152602001613d81565b83811115610ca9575050600091015256fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c780e8e651c6643a8e3b22154f43278a44919ebaa682bdc19f2f2c3e841363cf64736f6c63430007060033",
1067
+ "deployedBytecode": "0x6080604052600436106101f95760003560e01c80637b3c71d31161010d578063bc903cb8116100a0578063e4ea8b651161006f578063e4ea8b65146105ae578063eb9019d4146105c1578063f17c9d76146105e1578063f5a98383146105f6578063f937d6ad1461060b576101f9565b8063bc903cb81461052e578063bd590d7e14610564578063deaaa7cc14610584578063e17f212e14610599576101f9565b80639d6a890f116100dc5780639d6a890f146104ae578063a3c90b80146104ce578063a7a6224a146104ee578063b00c0b761461050e576101f9565b80637b3c71d314610439578063854121961461045957806386f90bbf146104795780639a8a059214610499576101f9565b80635267a15d116101905780635ff270791161015f5780635ff270791461039657806362354e03146103b657806367fc4029146103cb57806374e6310e146103eb57806374ec29a014610419576101f9565b80635267a15d1461033757806354fd4d501461034c57806356781388146103615780635aa6e67514610381576101f9565b80633e4f49e6116101cc5780633e4f49e61461028d57806340e58ee5146102ba57806343859632146102dc57806347c6614014610309576101f9565b8063047fc9aa146101fe57806306fdde031461022957806311a7aaaa1461024b5780633bccf4fd14610260575b600080fd5b34801561020a57600080fd5b50610213610620565b60405161022091906135fe565b60405180910390f35b34801561023557600080fd5b5061023e61062f565b6040516102209190613795565b34801561025757600080fd5b5061021361065b565b34801561026c57600080fd5b5061028061027b366004613481565b61066a565b604051610220919061375f565b34801561029957600080fd5b506102ad6102a8366004613382565b610730565b6040516102209190613781565b3480156102c657600080fd5b506102da6102d5366004613382565b610751565b005b3480156102e857600080fd5b506102fc6102f73660046133b2565b610814565b6040516102209190613754565b34801561031557600080fd5b50610329610324366004613382565b610844565b604051610220929190613cf8565b34801561034357600080fd5b5061021361085d565b34801561035857600080fd5b5061023e610882565b34801561036d57600080fd5b5061028061037c3660046133dd565b61089d565b34801561038d57600080fd5b506102136108c1565b3480156103a257600080fd5b506102da6103b1366004613221565b610958565b3480156103c257600080fd5b50610213610caf565b3480156103d757600080fd5b506102da6103e6366004613221565b610cba565b3480156103f757600080fd5b5061040b610406366004613221565b610da0565b604051610220929190613cdf565b34801561042557600080fd5b506102fc610434366004612f00565b610e47565b34801561044557600080fd5b506102806104543660046133ff565b610e65565b34801561046557600080fd5b5061028061047436600461304c565b610eb4565b34801561048557600080fd5b5061028061049436600461327c565b610ecd565b3480156104a557600080fd5b50610280610f5e565b3480156104ba57600080fd5b506102da6104c9366004612f00565b610f82565b3480156104da57600080fd5b506102806104e9366004612fa4565b61103b565b3480156104fa57600080fd5b506102da610509366004612f43565b611051565b34801561051a57600080fd5b506102da610529366004613181565b61109e565b34801561053a57600080fd5b5061054e610549366004613382565b611145565b6040516102209a999897969594939291906136c6565b34801561057057600080fd5b5061028061057f366004613249565b6111a4565b34801561059057600080fd5b506102806111f3565b3480156105a557600080fd5b506102fc611217565b6102806105bc366004612fa4565b611227565b3480156105cd57600080fd5b506102806105dc366004612f1a565b611238565b3480156105ed57600080fd5b50610213611244565b34801561060257600080fd5b506102da611253565b34801561061757600080fd5b5061021361130d565b6005546001600160a01b031681565b6040805180820190915260118152702837b63634b733a337bab73230ba34b7b760791b60208201525b90565b6004546001600160a01b031681565b6000806106c86106c37f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f89896040516020016106a893929190613768565b60405160208183030381529060405280519060200120611331565b61137d565b905060006106d8828787876113ce565b90506001600160a01b0381166107095760405162461bcd60e51b815260040161070090613a3c565b60405180910390fd5b61072488828960405180602001604052806000815250611543565b98975050505050505050565b6000818152600260205260408120610749908390611604565b90505b919050565b60008181526002602052604090208054600160b01b900460ff16156107885760405162461bcd60e51b815260040161070090613b18565b80546001600160a01b031633146107b15760405162461bcd60e51b8152600401610700906137df565b806002015442106107d45760405162461bcd60e51b815260040161070090613863565b805460ff60b01b1916600160b01b17815560405182907f789cf55be980739dad1d0699b93b58e806b51c9d96619bfa8fe0a28abaa7b30c90600090a25050565b60008281526003602090815260408083206001600160a01b038516845260020190915290205460ff165b92915050565b6000908152600360205260409020600181015490549091565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e77195490565b6040805180820190915260018152603160f81b602082015290565b60006108ba83338460405180602001604052806000815250611543565b9392505050565b600654600090600160a81b900460ff166108e6576006546001600160a01b0316610953565b60076001609c1b016001600160a01b031663732524946040518163ffffffff1660e01b815260040160206040518083038186803b15801561092657600080fd5b505afa15801561093a573d6000803e3d6000fd5b505050506040513d602081101561095057600080fd5b50515b905090565b60408051630debfda360e41b8152336004820152905160076001609c1b019163debfda30916024808301926020929190829003018186803b15801561099c57600080fd5b505afa1580156109b0573d6000803e3d6000fd5b505050506040513d60208110156109c657600080fd5b5051610a09576040805162461bcd60e51b815260206004820152600d60248201526c37b7363c9032bc32b1baba37b960991b604482015290519081900360640190fd5b6001600160e01b0319811660009081526007602052604090208054610a75576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b8054421015610acb576040805162461bcd60e51b815260206004820152601960248201527f74696d656c6f636b3a206e6f7420616c6c6f7765642079657400000000000000604482015290519081900360640190fd5b6000816001018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b655780601f10610b3a57610100808354040283529160200191610b65565b820191906000526020600020905b815481529060010190602001808311610b4857829003601f168201915b505050506001600160e01b0319851660009081526007602052604081208181559293509050610b976001830182612c1a565b50506006805460ff60b01b1916600160b01b17905560405181516000913091849190819060208401908083835b60208310610be35780518252601f199092019160209182019101610bc4565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610c45576040519150601f19603f3d011682016040523d82523d6000602084013e610c4a565b606091505b50506006805460ff60b01b19169055604080516001600160e01b03198716815242602082015281519293507fa7326b57fc9cfe267aaea5e7f0b01757154d265620a0585819416ee9ddd2c438929081900390910190a1610ca9816116e2565b50505050565b60076001609c1b0181565b610cc26116ff565b6001600160e01b03198116600090815260076020526040902054610d2d576040805162461bcd60e51b815260206004820152601a60248201527f74696d656c6f636b3a20696e76616c69642073656c6563746f72000000000000604482015290519081900360640190fd5b604080516001600160e01b03198316815242602082015281517f7735b2391c38a81419c513e30ca578db7158eadd7101511b23e221c654d19cf8929181900390910190a16001600160e01b03198116600090815260076020526040812081815590610d9b6001830182612c1a565b505050565b6007602090815260009182526040918290208054600180830180548651600293821615610100026000190190911692909204601f810186900486028301860190965285825291949293909290830182828015610e3d5780601f10610e1257610100808354040283529160200191610e3d565b820191906000526020600020905b815481529060010190602001808311610e2057829003601f168201915b5050505050905082565b6001600160a01b031660009081526008602052604090205460ff1690565b6000610ea985338686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061154392505050565b90505b949350505050565b6000610ec38686868686611760565b9695505050505050565b6040805161010081018252825115158152602080840151818301528383015182840152606080850151818401526080808601519084015260a08086015190840152600060c08401819052600160e0850152845181815292830181815283860182815292840190955293610eac929185610f56565b6060815260200190600190039081610f415790505b508785611760565b7f000000000000000000000000000000000000000000000000000000000000000081565b600654600160a01b900460ff1615610fd8576040805162461bcd60e51b8152602060048201526014602482015273696e697469616c6973656420213d2066616c736560601b604482015290519081900360640190fd5b60068054600160a01b60ff60a01b19909116176001600160a01b0319166001600160a01b03831690811790915560408051918252517f9789733827840833afc031fb2ef9ab6894271f77bad2085687cf4ae5c7bee4db916020908290030190a150565b6000610ea985858561104c866119f6565b611a01565b600654600160b01b900460ff16806110735750600654600160a81b900460ff16155b1561108f57611080611a5f565b61108a8282611a94565b61109a565b61109a600036611b7e565b5050565b6110a661085d565b6001600160a01b0316336001600160a01b031614611102576040805162461bcd60e51b815260206004820152601460248201527337b7363c9030b2323932b9b9903ab83230ba32b960611b604482015290519081900360640190fd5b61113b61113683836040518060400160405280600e81526020016d20b2323932b9b9aab83230ba32b960911b815250611d03565b611e30565b61109a8282611e54565b60009081526002602081905260409091208054600182015492820154600383015460048401546005850154600686015460078701546008909701546001600160a01b03871699600160a01b90970460ff16989795969495939492939192565b60408051600080825260208201818152828401828152606084019094529092610749929190846111e4565b60608152602001906001900390816111cf5790505b506111ee866119f6565b611f3a565b7f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b600654600160a81b900460ff1681565b6000610ea98585856111ee866119f6565b60006108ba8383612036565b6000546001600160a01b031681565b61125b6116ff565b600654600160a81b900460ff16156112ba576040805162461bcd60e51b815260206004820152601a60248201527f616c726561647920696e2070726f64756374696f6e206d6f6465000000000000604482015290519081900360640190fd5b60068054600161ff0160a01b031916600160a81b1790556040805160076001609c1b01815290517f83af113638b5422f9e977cebc0aaf0eaf2188eb9a8baae7f9d46c42b33a1560c9181900360200190a1565b7f000000000000000000000000000000000000000000000000000000000000000081565b600061133b6120b9565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561142f5760405162461bcd60e51b8152600401808060200182810382526022815260200180613dab6022913960400191505060405180910390fd5b8360ff16601b148061144457508360ff16601c145b61147f5760405162461bcd60e51b8152600401808060200182810382526022815260200180613dcd6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156114db573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610ea9576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b6000848152600260205260408120600161155d8783611604565b600781111561156857fe5b146115855760405162461bcd60e51b815260040161070090613b7e565b6000611595868360010154612036565b905060006115a588888885612183565b905087876001600160a01b03167fdd14487524f5e7c93029ad24503aa74e185d049a8c975136786a20eacc5e1b4e888589866001015487600001546040516115f1959493929190613d06565b60405180910390a3509695505050505050565b8054600090600160b01b900460ff16156116205750600761083e565b8154600160a81b900460ff16156116395750600661083e565b600282015461165a5760405162461bcd60e51b815260040161070090613a6c565b428260020154111561166e5750600061083e565b42826003015411156116825750600161083e565b61168c838361223b565b156116d9578154600160b81b900460ff166116a95750600461083e565b42826004015411156116bd5750600361083e565b42826005015411156116d15750600461083e565b50600561083e565b50600292915050565b3d604051818101604052816000823e82156116fb578181f35b8181fd5b6117076108c1565b6001600160a01b0316336001600160a01b03161461175e576040805162461bcd60e51b815260206004820152600f60248201526e6f6e6c7920676f7665726e616e636560881b604482015290519081900360640190fd5b565b600080600061177284606001516122e4565b915091506117803383612645565b61179c5760405162461bcd60e51b8152600401610700906138ec565b60008460400151116117c05760405162461bcd60e51b815260040161070090613b4f565b60008460e00151116117e45760405162461bcd60e51b815260040161070090613a99565b6127108460800151111561180a5760405162461bcd60e51b8152600401610700906138b5565b6113888460a001511015801561182657506127108460a0015111155b6118425760405162461bcd60e51b81526004016107009061393a565b60055460405163d9330e6360e01b81526000916001600160a01b03169063d9330e639061187390869060040161375f565b60206040518083038186803b15801561188b57600080fd5b505afa15801561189f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c3919061339a565b90506000600460009054906101000a90046001600160a01b03166001600160a01b031663ec31db0c6040518163ffffffff1660e01b815260040160206040518083038186803b15801561191557600080fd5b505afa158015611929573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061194d919061339a565b9050600080611964338d8d8d8d8b8b8f8c8c612650565b91509150817f72ae4a121488f73dfdb9308e9ecdcd1fc31e5f6c553b6f1fb65650d04406e6ec338e8e8e8e8760000160149054906101000a900460ff166119aa896127f6565b6119b38a612818565b8a600101548b600601548c600701548d600801546040516119df9c9b9a99989796959493929190613612565b60405180910390a2509a9950505050505050505050565b805160209091012090565b60007f00000000000000000000000000000000000000000000000000000000000000003086868686604051602001611a3e96959493929190613c7b565b60408051601f19818403018152919052805160209091012095945050505050565b600654600160b01b900460ff1615611a8c57333014611a7a57fe5b6006805460ff60b01b1916905561175e565b61175e6116ff565b7f4b8f4e528b6d075c6c9d025e58db64e36b460c1516341b1ab7339b4c6d5bcb8a8282604051611ac592919061372f565b60405180910390a160005b8251811015611b2557600160086000858481518110611aeb57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611ad0565b5060005b8151811015610d9b57600060086000848481518110611b4457fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101611b29565b611b866116ff565b600082359050600060076001609c1b016001600160a01b0316636221a54b6040518163ffffffff1660e01b815260040160206040518083038186803b158015611bce57600080fd5b505afa158015611be2573d6000803e3d6000fd5b505050506040513d6020811015611bf857600080fd5b505160408051808201825242830180825282516020601f89018190048102820181019094528781529394509290918281019190889088908190840183828082843760009201829052509390945250506001600160e01b03198616815260076020908152604090912083518155838201518051919350611c7e926001850192910190612c61565b509050507fed948300a3694aa01d4a6b258bfd664350193d770c0b51f8387277f6d83ea3b68382878760405180856001600160e01b0319168152602001848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a15050505050565b600080826040516020018080602001828103825283818151815260200191508051906020019080838360005b83811015611d47578181015183820152602001611d2f565b50505050905090810190601f168015611d745780820380516001836020036101000a031916815260200191505b50925050506040516020818303038152906040528051906020012090506000805b8651811015611ddc57868181518110611daa57fe5b6020026020010151831415611dd457858181518110611dc557fe5b60200260200101519150611ddc565b600101611d95565b506001600160a01b038116611e27576040805162461bcd60e51b815260206004820152600c60248201526b61646472657373207a65726f60a01b604482015290519081900360640190fd5b95945050505050565b7f714f205b2abd25bef1d06a1af944e38c113fe6160375c4e1d6d5cf28848e771955565b611e8282826040518060400160405280600b81526020016a233a39b7a6b0b730b3b2b960a91b815250611d03565b600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611ed1828260405180604001604052806006815260200165537570706c7960d01b815250611d03565b600560006101000a8154816001600160a01b0302191690836001600160a01b031602179055506000611f2f83836040518060400160405280601381526020017223b7bb32b93730b731b2ab37ba32a837bbb2b960691b815250611d03565b9050610d9b81612834565b6000611f4885858585611a01565b6000818152600260205260409020805491925090600160a81b900460ff1615611f835760405162461bcd60e51b815260040161070090613c44565b80546001600160a01b03163314611fac5760405162461bcd60e51b8152600401610700906139a8565b6000611fb88383611604565b90506004816007811115611fc857fe5b14611fe55760405162461bcd60e51b815260040161070090613c0d565b815460ff60a81b1916600160a81b178255612001878787612856565b60405183907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a25050949350505050565b60008054604051631257fcdb60e31b81526001600160a01b03909116906392bfe6d8906120699086908690600401613716565b60206040518083038186803b15801561208157600080fd5b505afa158015612095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108ba919061339a565b60007f00000000000000000000000000000000000000000000000000000000000000006120e461298e565b141561211157507f0000000000000000000000000000000000000000000000000000000000000000610658565b61217c7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000612992565b9050610658565b60008481526003602090815260408083206001600160a01b0387168452600281019092529091205460ff16156121cb5760405162461bcd60e51b815260040161070090613be2565b6001600160a01b03841660009081526002820160205260408120805460ff1916600117905560ff168360ff16141561220857805482018155610eac565b60ff8316600114156122235760018101805483019055610eac565b60405162461bcd60e51b815260040161070090613bab565b60008281526003602052604081206008830154600684015461225f916127106129f4565b815460018301540110156122815750508054600160a01b900460ff161561083e565b80546001820154600785015461229c929091016127106129f4565b8354600160a01b900460ff166122b35781546122b9565b81600101545b116122d25750508054600160a01b900460ff161561083e565b505054600160a01b900460ff16919050565b6000806000600460009054906101000a90046001600160a01b03166001600160a01b031663e7c830d46040518163ffffffff1660e01b815260040160206040518083038186803b15801561233757600080fd5b505afa15801561234b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236f919061339a565b6004805460405163e5399da360e01b81529293506000926001600160a01b039091169163e5399da3916123a49186910161375f565b60606040518083038186803b1580156123bc57600080fd5b505afa1580156123d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f4919061332d565b6000805460408051635397625b60e11b8152905193945043936001600160a01b039092169163a72ec4b691600480820192602092909190829003018186803b15801561243f57600080fd5b505afa158015612453573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612477919061339a565b604084015190915042035b60008511801561249157508781105b15612548576004805460405163e5399da360e01b81526000926001600160a01b039092169163e5399da3916124cc916000198b01910161375f565b60606040518083038186803b1580156124e457600080fd5b505afa1580156124f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251c919061332d565b905082816020015110156125305750612548565b60408101516000199096019590945042039050612482565b600084602001519050600042905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d89601fd6040518163ffffffff1660e01b815260040160206040518083038186803b1580156125b157600080fd5b505afa1580156125c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e9919061339a565b905060008282604051602001612600929190613cf8565b6040516020818303038152906040528051906020012060001c90506000848803828161262857fe5b6040909a015199069097039a509698505050505050505050915091565b60006108ba83610e47565b60008089518b51146126745760405162461bcd60e51b8152600401610700906137a8565b88518b51146126955760405162461bcd60e51b8152600401610700906137a8565b60006126a68c8c8c61104c8d6119f6565b60008181526002602081905260409091209081015491925090156126dc5760405162461bcd60e51b81526004016107009061382c565b8d8160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088816001018190555086600001518160000160146101000a81548160ff021916908315150217905550866020015142018160020181905550866040015181600201540181600301819055508488826003015403106127755760405162461bcd60e51b8152600401610700906139f5565b8c51156127c757805460ff60b81b1916600160b81b17815560c08701516003820154016004820181905560015411156127b15760015460048201555b60e0870151600482015401600582018190556001555b6080870151600682015560a087015160078201556008810186905590925090509a509a98505050505050505050565b6127fe612ced565b6002820154815260038201548160015b6020020152919050565b612820612ced565b60048201548152600582015481600161280e565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000805b83518110156128885783818151811061286f57fe5b602002602001015182019150808060010191505061285a565b508034146128a85760405162461bcd60e51b815260040161070090613ad0565b60005b8451811015612987576000808683815181106128c357fe5b60200260200101516001600160a01b03168684815181106128e057fe5b60200260200101518685815181106128f457fe5b602002602001015160405161290991906135e2565b60006040518083038185875af1925050503d8060008114612946576040519150601f19603f3d011682016040523d82523d6000602084013e61294b565b606091505b50915091508161297d578051156129655780518082602001fd5b60405162461bcd60e51b815260040161070090613971565b50506001016128ab565b5050505050565b4690565b600083838361299f61298e565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b03168152602001955050505050506040516020818303038152906040528051906020012090509392505050565b6000808211612a3d576040805162461bcd60e51b815260206004820152601060248201526f4469766973696f6e206279207a65726f60801b604482015290519081900360640190fd5b83612a4a575060006108ba565b83830283858281612a5757fe5b041415612a7057828181612a6757fe5b049150506108ba565b6000838681612a7b57fe5b0490506000848781612a8957fe5b0690506000858781612a9757fe5b0490506000868881612aa557fe5b069050612af3612abf88612ab98685612b00565b90612b59565b612aed612acc8686612b00565b612aed612ad98987612b00565b612aed8d612ae78c8b612b00565b90612b00565b90612bc0565b9998505050505050505050565b600082612b0f5750600061083e565b82820282848281612b1c57fe5b04146108ba5760405162461bcd60e51b8152600401808060200182810382526021815260200180613def6021913960400191505060405180910390fd5b6000808211612baf576040805162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b818381612bb857fe5b049392505050565b6000828201838110156108ba576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b50805460018160011615610100020316600290046000825580601f10612c405750612c5e565b601f016020900490600052602060002090810190612c5e9190612d0b565b50565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282612c975760008555612cdd565b82601f10612cb057805160ff1916838001178555612cdd565b82800160010185558215612cdd579182015b82811115612cdd578251825591602001919060010190612cc2565b50612ce9929150612d0b565b5090565b60405180604001604052806002906020820280368337509192915050565b5b80821115612ce95760008155600101612d0c565b600067ffffffffffffffff831115612d3457fe5b612d47601f8401601f1916602001613d3c565b9050828152838383011115612d5b57600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461074c57600080fd5b600082601f830112612d99578081fd5b81356020612dae612da983613d60565b613d3c565b8281528181019085830183850287018401881015612dca578586fd5b855b85811015612def57612ddd82612d72565b84529284019290840190600101612dcc565b5090979650505050505050565b600082601f830112612e0c578081fd5b81356020612e1c612da983613d60565b82815281810190858301855b85811015612def578135880189603f820112612e42578788fd5b612e538a8783013560408401612d20565b8552509284019290840190600101612e28565b600082601f830112612e76578081fd5b81356020612e86612da983613d60565b8281528181019085830183850287018401881015612ea2578586fd5b855b85811015612def57813584529284019290840190600101612ea4565b8035801515811461074c57600080fd5b600082601f830112612ee0578081fd5b6108ba83833560208501612d20565b803560ff8116811461074c57600080fd5b600060208284031215612f11578081fd5b6108ba82612d72565b60008060408385031215612f2c578081fd5b612f3583612d72565b946020939093013593505050565b60008060408385031215612f55578182fd5b823567ffffffffffffffff80821115612f6c578384fd5b612f7886838701612d89565b93506020850135915080821115612f8d578283fd5b50612f9a85828601612d89565b9150509250929050565b60008060008060808587031215612fb9578182fd5b843567ffffffffffffffff80821115612fd0578384fd5b612fdc88838901612d89565b95506020870135915080821115612ff1578384fd5b612ffd88838901612e66565b94506040870135915080821115613012578384fd5b61301e88838901612dfc565b93506060870135915080821115613033578283fd5b5061304087828801612ed0565b91505092959194509250565b6000806000806000858703610180811215613065578384fd5b863567ffffffffffffffff8082111561307c578586fd5b6130888a838b01612d89565b9750602089013591508082111561309d578586fd5b6130a98a838b01612e66565b965060408901359150808211156130be578586fd5b6130ca8a838b01612dfc565b955060608901359150808211156130df578384fd5b6130eb8a838b01612ed0565b9450610100915081607f1984011215613102578384fd5b6040519250818301838110828211171561311857fe5b6040525061312860808901612ec0565b825260a0880135602083015260c0880135604083015260e088013560608301528088013560808301525061012087013560a082015261014087013560c082015261016087013560e0820152809150509295509295909350565b60008060408385031215613193578182fd5b823567ffffffffffffffff808211156131aa578384fd5b818501915085601f8301126131bd578384fd5b813560206131cd612da983613d60565b82815281810190858301838502870184018b10156131e9578889fd5b8896505b8487101561320b5780358352600196909601959183019183016131ed565b5096505086013592505080821115612f8d578283fd5b600060208284031215613232578081fd5b81356001600160e01b0319811681146108ba578182fd5b60006020828403121561325a578081fd5b813567ffffffffffffffff811115613270578182fd5b610eac84828501612ed0565b60008082840360e081121561328f578283fd5b833567ffffffffffffffff808211156132a6578485fd5b6132b287838801612ed0565b945060c0601f19840112156132c5578384fd5b604051925060c08301915082821081831117156132de57fe5b506040526132ee60208501612ec0565b815260408401356020820152606084013560408201526080840135606082015260a0840135608082015260c084013560a0820152809150509250929050565b60006060828403121561333e578081fd5b6040516060810181811067ffffffffffffffff8211171561335b57fe5b80604052508251815260208301516020820152604083015160408201528091505092915050565b600060208284031215613393578081fd5b5035919050565b6000602082840312156133ab578081fd5b5051919050565b600080604083850312156133c4578182fd5b823591506133d460208401612d72565b90509250929050565b600080604083850312156133ef578182fd5b823591506133d460208401612eef565b60008060008060608587031215613414578182fd5b8435935061342460208601612eef565b9250604085013567ffffffffffffffff80821115613440578384fd5b818701915087601f830112613453578384fd5b813581811115613461578485fd5b886020828501011115613472578485fd5b95989497505060200194505050565b600080600080600060a08688031215613498578283fd5b853594506134a860208701612eef565b93506134b660408701612eef565b94979396509394606081013594506080013592915050565b6000815180845260208085019450808401835b838110156135065781516001600160a01b0316875295820195908201906001016134e1565b509495945050505050565b6000815180845260208085018081965082840281019150828601855b858110156135575782840389526135458483516135b6565b9885019893509084019060010161352d565b5091979650505050505050565b8060005b6002811015610ca9578151845260209384019390910190600101613568565b6000815180845260208085019450808401835b838110156135065781518752958201959082019060010161359a565b600081518084526135ce816020860160208601613d7e565b601f01601f19169290920160200192915050565b600082516135f4818460208701613d7e565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b038d1681526101c0602082018190526000906136378382018f6134ce565b9050828103604084015261364b818e613587565b9050828103606084015261365f818d613511565b90508281036080840152613673818c6135b6565b91505088151560a083015261368b60c0830189613564565b613699610100830188613564565b856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b6001600160a01b039a909a168a5297151560208a015260408901969096526060880194909452608087019290925260a086015260c085015260e08401526101008301526101208201526101400190565b6001600160a01b03929092168252602082015260400190565b60006040825261374260408301856134ce565b8281036020840152611e2781856134ce565b901515815260200190565b90815260200190565b928352602083019190915260ff16604082015260600190565b602081016008831061378f57fe5b91905290565b6000602082526108ba60208301846135b6565b60208082526017908201527f696e76616c69642070726f706f73616c206c656e677468000000000000000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526017908201527f70726f706f73616c20616c726561647920657869737473000000000000000000604082015260600190565b60208082526032908201527f70726f706f73616c2063616e206f6e6c792062652063616e63656c6564206265604082015271666f726520766f74696e672073746172747360701b606082015260800190565b6020808252601e908201527f696e76616c6964207468726573686f6c64436f6e646974696f6e424950530000604082015260600190565b6020808252602e908201527f7375626d6974746572206973206e6f7420656c696769626c6520746f2073756260408201526d1b5a5d0818481c1c9bdc1bdcd85b60921b606082015260800190565b6020808252601d908201527f696e76616c6964206d616a6f72697479436f6e646974696f6e42495053000000604082015260600190565b6020808252601d908201527f63616c6c20726576657274656420776974686f7574206d657373616765000000604082015260600190565b6020808252602d908201527f70726f706f73616c2063616e206f6e6c7920626520657865637574656420627960408201526c1034ba3990383937b837b9b2b960991b606082015260800190565b60208082526027908201527f766f746520706f77657220626c6f636b20697320746f6f2066617220696e20746040820152661a19481c185cdd60ca1b606082015260800190565b602080825260169082015275696e76616c696420766f7465207369676e617475726560501b604082015260600190565b6020808252601390820152721d5b9adb9bdddb881c1c9bdc1bdcd85b081a59606a1b604082015260600190565b60208082526018908201527f657865637574696f6e20706572696f6420746f6f206c6f770000000000000000604082015260600190565b60208082526028908201527f73756d206f66205f76616c75657320646f6573206e6f7420657175616c73206d60408201526773672e76616c756560c01b606082015260800190565b6020808252601c908201527f70726f706f73616c20697320616c72656164792063616e63656c656400000000604082015260600190565b602080825260159082015274766f74696e6720706572696f6420746f6f206c6f7760581b604082015260600190565b60208082526013908201527270726f706f73616c206e6f742061637469766560681b604082015260600190565b6020808252601f908201527f696e76616c69642076616c756520666f7220656e756d20566f74655479706500604082015260600190565b6020808252601190820152701d9bdd1948185b1c9958591e4818d85cdd607a1b604082015260600190565b6020808252601f908201527f70726f706f73616c206e6f7420696e20657865637574696f6e20737461746500604082015260600190565b60208082526019908201527f70726f706f73616c20616c726561647920657865637574656400000000000000604082015260600190565b8681526001600160a01b038616602082015260c060408201819052600090613ca5908301876134ce565b8281036060840152613cb78187613587565b90508281036080840152613ccb8186613511565b9150508260a0830152979650505050505050565b600083825260406020830152610eac60408301846135b6565b918252602082015260400190565b600060ff8716825285602083015260a06040830152613d2860a08301866135b6565b606083019490945250608001529392505050565b60405181810167ffffffffffffffff81118282101715613d5857fe5b604052919050565b600067ffffffffffffffff821115613d7457fe5b5060209081020190565b60005b83811015613d99578181015183820152602001613d81565b83811115610ca9575050600091015256fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220c780e8e651c6643a8e3b22154f43278a44919ebaa682bdc19f2f2c3e841363cf64736f6c63430007060033",
1068
1068
  "linkReferences": {},
1069
1069
  "deployedLinkReferences": {}
1070
1070
  }