@artblocks/contracts 1.0.1 → 1.0.3

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 (199) hide show
  1. package/README.md +67 -154
  2. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +2 -2
  3. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  4. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +22 -4
  5. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +42 -5
  6. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  7. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  10. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  23. package/artifacts/contracts/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol}/GenArt721CoreV2_ENGINE_FLEX.json +3 -3
  24. package/artifacts/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol}/GenArt721CoreV2_PBAB.json +3 -3
  25. package/artifacts/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol}/GenArt721CoreV2_PRTNR.json +3 -3
  26. package/artifacts/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol}/GenArt721MinterBurner_PBAB.json +3 -3
  27. package/artifacts/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol}/GenArt721MinterDAExp_PBAB.json +3 -3
  28. package/artifacts/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol}/GenArt721Minter_PBAB.json +3 -3
  29. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1960 -0
  30. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +2247 -0
  31. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +2247 -0
  32. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +401 -0
  33. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +2281 -0
  34. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol/IAdminACLV0_PROHIBITION.json +359 -0
  35. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +1094 -0
  36. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +242 -0
  37. package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +2 -2
  38. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +41 -4
  39. package/artifacts/contracts/interfaces/0.8.x/IBytecodeStorageReader.sol/IBytecodeStorageReader.json +111 -0
  40. package/artifacts/contracts/interfaces/0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +172 -0
  41. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterSEAV0.sol/IFilteredMinterSEAV0.json +1034 -0
  42. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol/IGenArt721CoreContractExposesHashSeed.json +30 -0
  43. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +162 -0
  44. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +162 -0
  45. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +137 -13
  46. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +1060 -0
  47. package/artifacts/contracts/interfaces/0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +429 -0
  48. package/artifacts/contracts/interfaces/0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +30 -0
  49. package/artifacts/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol/IRandomizer_V3CoreBase.json +24 -0
  50. package/artifacts/contracts/interfaces/0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +207 -0
  51. package/artifacts/contracts/interfaces/0.8.x/IWETH.sol/IWETH.json +55 -0
  52. package/artifacts/contracts/libs/0.8.x/{BytecodeStorage.sol → BytecodeStorageV0.sol}/BytecodeStorage.json +3 -3
  53. package/artifacts/contracts/libs/0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +163 -0
  54. package/artifacts/contracts/libs/0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +10 -0
  55. package/artifacts/contracts/libs/0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  56. package/artifacts/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
  57. package/artifacts/contracts/libs/0.8.x/SSTORE2.sol/SSTORE2.json +10 -0
  58. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  59. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  60. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  61. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  62. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +295 -0
  63. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  64. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +692 -0
  65. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -2
  66. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +2 -2
  67. package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +2 -2
  68. package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +2 -2
  69. package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +2 -2
  70. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +104 -124
  71. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +2 -2
  72. package/artifacts/contracts/minter-suite/Minters/MinterSEAV0.sol/MinterSEAV0.json +1289 -0
  73. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +2 -2
  74. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +2 -2
  75. package/artifacts/contracts/mock/{BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json → BytecodeV0TextCR_DMock.sol/BytecodeV0TextCR_DMock.json} +4 -4
  76. package/artifacts/contracts/mock/BytecodeV1LibCallsMock.sol/BytecodeV1LibCallsMock.json +135 -0
  77. package/artifacts/contracts/mock/BytecodeV1TextCR_DMock.sol/BytecodeV1TextCR_DMock.json +301 -0
  78. package/artifacts/contracts/mock/DeadReceiverBidderMock.sol/DeadReceiverBidderMock.json +33 -0
  79. package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +2 -2
  80. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +114 -0
  81. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
  82. package/artifacts/contracts/mock/GasLimitReceiverBidderMock.sol/GasLimitReceiverBidderMock.json +46 -0
  83. package/artifacts/contracts/mock/GasLimitReceiverMock.sol/GasLimitReceiverMock.json +28 -0
  84. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +22 -4
  85. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +2 -2
  86. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +440 -0
  87. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +39 -0
  88. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  89. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  90. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  91. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  92. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +51 -0
  93. package/artifacts/contracts/mock/SSTORE2Mock.sol/SSTORE2Mock.json +118 -0
  94. package/artifacts/contracts/{BasicRandomizer.sol → randomizer/deprecated/BasicRandomizer.sol}/BasicRandomizer.json +3 -3
  95. package/artifacts/contracts/randomizer/deprecated/BasicRandomizerBase_v0_0_0.sol/RandomizerBase.json +10 -0
  96. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +229 -0
  97. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +102 -0
  98. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +30 -0
  99. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +231 -0
  100. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +2 -2
  101. package/contracts/AdminACLV0.sol +1 -1
  102. package/contracts/AdminACLV1.sol +1 -1
  103. package/contracts/DependencyRegistryV0.sol +89 -141
  104. package/contracts/GenArt721CoreV3.sol +160 -204
  105. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +1 -1
  106. package/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +1 -1
  107. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +1 -1
  108. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +1 -1
  109. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +1 -1
  110. package/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +1 -1
  111. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol +1 -1
  112. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +1 -1
  113. package/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +1 -1
  114. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol +1 -1
  115. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol +1 -1
  116. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +1 -1
  117. package/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +1 -1
  118. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +1 -1
  119. package/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +1 -1
  120. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +1 -1
  121. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +1 -1
  122. package/contracts/engine/{GenArt721CoreV2_ENGINE_FLEX.sol → V2/GenArt721CoreV2_ENGINE_FLEX.sol} +2 -2
  123. package/contracts/engine/{GenArt721CoreV2_PBAB.sol → V2/GenArt721CoreV2_PBAB.sol} +2 -2
  124. package/contracts/engine/{GenArt721CoreV2_PRTNR.sol → V2/GenArt721CoreV2_PRTNR.sol} +3 -3
  125. package/contracts/engine/{GenArt721MinterBurner_PBAB.sol → V2/GenArt721MinterBurner_PBAB.sol} +2 -2
  126. package/contracts/engine/{GenArt721MinterDAExp_PBAB.sol → V2/GenArt721MinterDAExp_PBAB.sol} +2 -2
  127. package/contracts/engine/{GenArt721Minter_PBAB.sol → V2/GenArt721Minter_PBAB.sol} +2 -2
  128. package/contracts/{GenArt721CoreV3_Engine.sol → engine/V3/GenArt721CoreV3_Engine.sol} +163 -216
  129. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +2283 -0
  130. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +2293 -0
  131. package/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol +281 -0
  132. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +2354 -0
  133. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IAdminACLV0_PROHIBITION.sol +123 -0
  134. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +29 -0
  135. package/contracts/engine-registry/CoreRegistryV1.sol +254 -0
  136. package/contracts/engine-registry/EngineRegistryV0.sol +1 -1
  137. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +164 -190
  138. package/contracts/interfaces/0.8.x/IBytecodeStorageReader.sol +62 -0
  139. package/contracts/interfaces/0.8.x/ICoreRegistryV1.sol +27 -0
  140. package/contracts/interfaces/0.8.x/IDelegationRegistry.sol +1 -1
  141. package/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol +1 -1
  142. package/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol +1 -1
  143. package/contracts/interfaces/0.8.x/IEngineRegistryV0.sol +1 -1
  144. package/contracts/interfaces/0.8.x/IFilteredMinterSEAV0.sol +164 -0
  145. package/contracts/interfaces/0.8.x/IGenArt721CoreContractExposesHashSeed.sol +11 -0
  146. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +42 -0
  147. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +0 -8
  148. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +132 -0
  149. package/contracts/interfaces/0.8.x/IMinterFilterV1.sol +158 -0
  150. package/contracts/interfaces/0.8.x/IPseudorandomAtomic.sol +16 -0
  151. package/contracts/interfaces/0.8.x/IRandomizerPolyptychV0.sol +1 -1
  152. package/contracts/interfaces/0.8.x/IRandomizerV2.sol +2 -5
  153. package/contracts/interfaces/0.8.x/IRandomizer_V3CoreBase.sol +10 -0
  154. package/contracts/interfaces/0.8.x/ISharedRandomizerV0.sol +105 -0
  155. package/contracts/interfaces/0.8.x/IWETH.sol +11 -0
  156. package/contracts/libs/0.8.x/BytecodeStorageV1.sol +399 -0
  157. package/contracts/libs/0.8.x/SSTORE2.sol +109 -0
  158. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +1 -1
  159. package/contracts/libs/integration-refs/weth9/weth9.sol +765 -0
  160. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +36 -48
  161. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +756 -0
  162. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +27 -35
  163. package/contracts/minter-suite/Minters/MinterDAExpV4.sol +17 -22
  164. package/contracts/minter-suite/Minters/MinterDALinV4.sol +16 -18
  165. package/contracts/minter-suite/Minters/MinterHolderV4.sol +20 -20
  166. package/contracts/minter-suite/Minters/MinterMerkleV5.sol +14 -16
  167. package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +37 -36
  168. package/contracts/minter-suite/Minters/MinterSEAV0.sol +1273 -0
  169. package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +12 -12
  170. package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +10 -11
  171. package/contracts/mock/{BytecodeTextCR_DMock.sol → BytecodeV0TextCR_DMock.sol} +5 -5
  172. package/contracts/mock/BytecodeV1LibCallsMock.sol +114 -0
  173. package/contracts/mock/BytecodeV1TextCR_DMock.sol +233 -0
  174. package/contracts/mock/DeadReceiverBidderMock.sol +23 -0
  175. package/contracts/mock/DeadReceiverMock.sol +1 -1
  176. package/contracts/mock/DummySharedMinter.sol +75 -0
  177. package/contracts/mock/GasLimitReceiverBidderMock.sol +23 -0
  178. package/contracts/mock/GasLimitReceiverMock.sol +19 -0
  179. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +14 -27
  180. package/contracts/mock/MockAdminACLV0.sol +1 -1
  181. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +207 -0
  182. package/contracts/mock/OriginRegisterMock.sol +27 -0
  183. package/contracts/mock/RandomizerV2_NoAssignMock.sol +3 -12
  184. package/contracts/mock/ReentrancySEAMock.sol +36 -0
  185. package/contracts/mock/SSTORE2Mock.sol +93 -0
  186. package/contracts/{BasicRandomizer.sol → randomizer/deprecated/BasicRandomizer.sol} +1 -1
  187. package/contracts/randomizer/deprecated/BasicRandomizerBase_v0_0_0.sol +23 -0
  188. package/contracts/{BasicPolyptychRandomizerV0.sol → randomizer/deprecated/PolyptychRandomizerV0.sol} +20 -29
  189. package/contracts/{BasicRandomizerV2.sol → randomizer/deprecated/RandomizerV2.sol} +6 -14
  190. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +30 -0
  191. package/contracts/randomizer/shared/SharedRandomizerV0.sol +245 -0
  192. package/package.json +36 -30
  193. package/.env.example +0 -10
  194. package/artifacts/contracts/BasicPolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +0 -229
  195. package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +0 -102
  196. package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +0 -1942
  197. package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +0 -109
  198. package/contracts/engine-registry/future/EngineRegistryV1.sol +0 -86
  199. /package/contracts/libs/0.8.x/{BytecodeStorage.sol → BytecodeStorageV0.sol} +0 -0
@@ -0,0 +1,2281 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "GenArt721CoreV3_Engine_Flex_PROHIBITION",
4
+ "sourceName": "contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "string",
10
+ "name": "_tokenName",
11
+ "type": "string"
12
+ },
13
+ {
14
+ "internalType": "string",
15
+ "name": "_tokenSymbol",
16
+ "type": "string"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_renderProviderAddress",
21
+ "type": "address"
22
+ },
23
+ {
24
+ "internalType": "address",
25
+ "name": "_platformProviderAddress",
26
+ "type": "address"
27
+ },
28
+ {
29
+ "internalType": "address",
30
+ "name": "_randomizerContract",
31
+ "type": "address"
32
+ },
33
+ {
34
+ "internalType": "address",
35
+ "name": "_adminACLContract",
36
+ "type": "address"
37
+ },
38
+ {
39
+ "internalType": "uint248",
40
+ "name": "_startingProjectId",
41
+ "type": "uint248"
42
+ },
43
+ {
44
+ "internalType": "bool",
45
+ "name": "_autoApproveArtistSplitProposals",
46
+ "type": "bool"
47
+ },
48
+ {
49
+ "internalType": "address",
50
+ "name": "_engineRegistryContract",
51
+ "type": "address"
52
+ }
53
+ ],
54
+ "stateMutability": "nonpayable",
55
+ "type": "constructor"
56
+ },
57
+ {
58
+ "anonymous": false,
59
+ "inputs": [
60
+ {
61
+ "indexed": true,
62
+ "internalType": "uint256",
63
+ "name": "_projectId",
64
+ "type": "uint256"
65
+ }
66
+ ],
67
+ "name": "AcceptedArtistAddressesAndSplits",
68
+ "type": "event"
69
+ },
70
+ {
71
+ "anonymous": false,
72
+ "inputs": [
73
+ {
74
+ "indexed": true,
75
+ "internalType": "address",
76
+ "name": "owner",
77
+ "type": "address"
78
+ },
79
+ {
80
+ "indexed": true,
81
+ "internalType": "address",
82
+ "name": "approved",
83
+ "type": "address"
84
+ },
85
+ {
86
+ "indexed": true,
87
+ "internalType": "uint256",
88
+ "name": "tokenId",
89
+ "type": "uint256"
90
+ }
91
+ ],
92
+ "name": "Approval",
93
+ "type": "event"
94
+ },
95
+ {
96
+ "anonymous": false,
97
+ "inputs": [
98
+ {
99
+ "indexed": true,
100
+ "internalType": "address",
101
+ "name": "owner",
102
+ "type": "address"
103
+ },
104
+ {
105
+ "indexed": true,
106
+ "internalType": "address",
107
+ "name": "operator",
108
+ "type": "address"
109
+ },
110
+ {
111
+ "indexed": false,
112
+ "internalType": "bool",
113
+ "name": "approved",
114
+ "type": "bool"
115
+ }
116
+ ],
117
+ "name": "ApprovalForAll",
118
+ "type": "event"
119
+ },
120
+ {
121
+ "anonymous": false,
122
+ "inputs": [
123
+ {
124
+ "indexed": true,
125
+ "internalType": "uint256",
126
+ "name": "_projectId",
127
+ "type": "uint256"
128
+ },
129
+ {
130
+ "indexed": true,
131
+ "internalType": "uint256",
132
+ "name": "_index",
133
+ "type": "uint256"
134
+ }
135
+ ],
136
+ "name": "ExternalAssetDependencyRemoved",
137
+ "type": "event"
138
+ },
139
+ {
140
+ "anonymous": false,
141
+ "inputs": [
142
+ {
143
+ "indexed": true,
144
+ "internalType": "uint256",
145
+ "name": "_projectId",
146
+ "type": "uint256"
147
+ },
148
+ {
149
+ "indexed": true,
150
+ "internalType": "uint256",
151
+ "name": "_index",
152
+ "type": "uint256"
153
+ },
154
+ {
155
+ "indexed": false,
156
+ "internalType": "string",
157
+ "name": "_cid",
158
+ "type": "string"
159
+ },
160
+ {
161
+ "indexed": false,
162
+ "internalType": "enum IGenArt721CoreContractV3_Engine_Flex.ExternalAssetDependencyType",
163
+ "name": "_dependencyType",
164
+ "type": "uint8"
165
+ },
166
+ {
167
+ "indexed": false,
168
+ "internalType": "uint24",
169
+ "name": "_externalAssetDependencyCount",
170
+ "type": "uint24"
171
+ }
172
+ ],
173
+ "name": "ExternalAssetDependencyUpdated",
174
+ "type": "event"
175
+ },
176
+ {
177
+ "anonymous": false,
178
+ "inputs": [
179
+ {
180
+ "indexed": true,
181
+ "internalType": "enum IGenArt721CoreContractV3_Engine_Flex.ExternalAssetDependencyType",
182
+ "name": "_dependencyType",
183
+ "type": "uint8"
184
+ },
185
+ {
186
+ "indexed": false,
187
+ "internalType": "string",
188
+ "name": "_gatewayAddress",
189
+ "type": "string"
190
+ }
191
+ ],
192
+ "name": "GatewayUpdated",
193
+ "type": "event"
194
+ },
195
+ {
196
+ "anonymous": false,
197
+ "inputs": [
198
+ {
199
+ "indexed": true,
200
+ "internalType": "address",
201
+ "name": "_to",
202
+ "type": "address"
203
+ },
204
+ {
205
+ "indexed": true,
206
+ "internalType": "uint256",
207
+ "name": "_tokenId",
208
+ "type": "uint256"
209
+ }
210
+ ],
211
+ "name": "Mint",
212
+ "type": "event"
213
+ },
214
+ {
215
+ "anonymous": false,
216
+ "inputs": [
217
+ {
218
+ "indexed": true,
219
+ "internalType": "address",
220
+ "name": "_currentMinter",
221
+ "type": "address"
222
+ }
223
+ ],
224
+ "name": "MinterUpdated",
225
+ "type": "event"
226
+ },
227
+ {
228
+ "anonymous": false,
229
+ "inputs": [
230
+ {
231
+ "indexed": true,
232
+ "internalType": "address",
233
+ "name": "previousOwner",
234
+ "type": "address"
235
+ },
236
+ {
237
+ "indexed": true,
238
+ "internalType": "address",
239
+ "name": "newOwner",
240
+ "type": "address"
241
+ }
242
+ ],
243
+ "name": "OwnershipTransferred",
244
+ "type": "event"
245
+ },
246
+ {
247
+ "anonymous": false,
248
+ "inputs": [
249
+ {
250
+ "indexed": true,
251
+ "internalType": "bytes32",
252
+ "name": "_field",
253
+ "type": "bytes32"
254
+ }
255
+ ],
256
+ "name": "PlatformUpdated",
257
+ "type": "event"
258
+ },
259
+ {
260
+ "anonymous": false,
261
+ "inputs": [
262
+ {
263
+ "indexed": true,
264
+ "internalType": "uint256",
265
+ "name": "_projectId",
266
+ "type": "uint256"
267
+ }
268
+ ],
269
+ "name": "ProjectExternalAssetDependenciesLocked",
270
+ "type": "event"
271
+ },
272
+ {
273
+ "anonymous": false,
274
+ "inputs": [
275
+ {
276
+ "indexed": true,
277
+ "internalType": "uint256",
278
+ "name": "_projectId",
279
+ "type": "uint256"
280
+ },
281
+ {
282
+ "indexed": true,
283
+ "internalType": "bytes32",
284
+ "name": "_update",
285
+ "type": "bytes32"
286
+ }
287
+ ],
288
+ "name": "ProjectUpdated",
289
+ "type": "event"
290
+ },
291
+ {
292
+ "anonymous": false,
293
+ "inputs": [
294
+ {
295
+ "indexed": true,
296
+ "internalType": "uint256",
297
+ "name": "_projectId",
298
+ "type": "uint256"
299
+ },
300
+ {
301
+ "indexed": false,
302
+ "internalType": "address",
303
+ "name": "_artistAddress",
304
+ "type": "address"
305
+ },
306
+ {
307
+ "indexed": false,
308
+ "internalType": "address",
309
+ "name": "_additionalPayeePrimarySales",
310
+ "type": "address"
311
+ },
312
+ {
313
+ "indexed": false,
314
+ "internalType": "uint256",
315
+ "name": "_additionalPayeePrimarySalesPercentage",
316
+ "type": "uint256"
317
+ },
318
+ {
319
+ "indexed": false,
320
+ "internalType": "address",
321
+ "name": "_additionalPayeeSecondarySales",
322
+ "type": "address"
323
+ },
324
+ {
325
+ "indexed": false,
326
+ "internalType": "uint256",
327
+ "name": "_additionalPayeeSecondarySalesPercentage",
328
+ "type": "uint256"
329
+ }
330
+ ],
331
+ "name": "ProposedArtistAddressesAndSplits",
332
+ "type": "event"
333
+ },
334
+ {
335
+ "anonymous": false,
336
+ "inputs": [
337
+ {
338
+ "indexed": true,
339
+ "internalType": "address",
340
+ "name": "from",
341
+ "type": "address"
342
+ },
343
+ {
344
+ "indexed": true,
345
+ "internalType": "address",
346
+ "name": "to",
347
+ "type": "address"
348
+ },
349
+ {
350
+ "indexed": true,
351
+ "internalType": "uint256",
352
+ "name": "tokenId",
353
+ "type": "uint256"
354
+ }
355
+ ],
356
+ "name": "Transfer",
357
+ "type": "event"
358
+ },
359
+ {
360
+ "inputs": [
361
+ {
362
+ "internalType": "string",
363
+ "name": "_projectName",
364
+ "type": "string"
365
+ },
366
+ {
367
+ "internalType": "address payable",
368
+ "name": "_artistAddress",
369
+ "type": "address"
370
+ }
371
+ ],
372
+ "name": "addProject",
373
+ "outputs": [],
374
+ "stateMutability": "nonpayable",
375
+ "type": "function"
376
+ },
377
+ {
378
+ "inputs": [
379
+ {
380
+ "internalType": "uint256",
381
+ "name": "_projectId",
382
+ "type": "uint256"
383
+ },
384
+ {
385
+ "internalType": "string",
386
+ "name": "_cidOrData",
387
+ "type": "string"
388
+ },
389
+ {
390
+ "internalType": "enum IGenArt721CoreContractV3_Engine_Flex.ExternalAssetDependencyType",
391
+ "name": "_dependencyType",
392
+ "type": "uint8"
393
+ }
394
+ ],
395
+ "name": "addProjectExternalAssetDependency",
396
+ "outputs": [],
397
+ "stateMutability": "nonpayable",
398
+ "type": "function"
399
+ },
400
+ {
401
+ "inputs": [
402
+ {
403
+ "internalType": "uint256",
404
+ "name": "_projectId",
405
+ "type": "uint256"
406
+ },
407
+ {
408
+ "internalType": "string",
409
+ "name": "_script",
410
+ "type": "string"
411
+ }
412
+ ],
413
+ "name": "addProjectScript",
414
+ "outputs": [],
415
+ "stateMutability": "nonpayable",
416
+ "type": "function"
417
+ },
418
+ {
419
+ "inputs": [],
420
+ "name": "admin",
421
+ "outputs": [
422
+ {
423
+ "internalType": "address",
424
+ "name": "",
425
+ "type": "address"
426
+ }
427
+ ],
428
+ "stateMutability": "view",
429
+ "type": "function"
430
+ },
431
+ {
432
+ "inputs": [
433
+ {
434
+ "internalType": "address",
435
+ "name": "_sender",
436
+ "type": "address"
437
+ },
438
+ {
439
+ "internalType": "address",
440
+ "name": "_contract",
441
+ "type": "address"
442
+ },
443
+ {
444
+ "internalType": "bytes4",
445
+ "name": "_selector",
446
+ "type": "bytes4"
447
+ }
448
+ ],
449
+ "name": "adminACLAllowed",
450
+ "outputs": [
451
+ {
452
+ "internalType": "bool",
453
+ "name": "",
454
+ "type": "bool"
455
+ }
456
+ ],
457
+ "stateMutability": "nonpayable",
458
+ "type": "function"
459
+ },
460
+ {
461
+ "inputs": [
462
+ {
463
+ "internalType": "address",
464
+ "name": "_sender",
465
+ "type": "address"
466
+ },
467
+ {
468
+ "internalType": "address",
469
+ "name": "_contract",
470
+ "type": "address"
471
+ },
472
+ {
473
+ "internalType": "bytes4",
474
+ "name": "_selector",
475
+ "type": "bytes4"
476
+ },
477
+ {
478
+ "internalType": "uint256",
479
+ "name": "_projectId",
480
+ "type": "uint256"
481
+ }
482
+ ],
483
+ "name": "adminACLAllowed",
484
+ "outputs": [
485
+ {
486
+ "internalType": "bool",
487
+ "name": "",
488
+ "type": "bool"
489
+ }
490
+ ],
491
+ "stateMutability": "nonpayable",
492
+ "type": "function"
493
+ },
494
+ {
495
+ "inputs": [],
496
+ "name": "adminACLContract",
497
+ "outputs": [
498
+ {
499
+ "internalType": "contract IAdminACLV0",
500
+ "name": "",
501
+ "type": "address"
502
+ }
503
+ ],
504
+ "stateMutability": "view",
505
+ "type": "function"
506
+ },
507
+ {
508
+ "inputs": [
509
+ {
510
+ "internalType": "uint256",
511
+ "name": "_projectId",
512
+ "type": "uint256"
513
+ },
514
+ {
515
+ "internalType": "address payable",
516
+ "name": "_artistAddress",
517
+ "type": "address"
518
+ },
519
+ {
520
+ "internalType": "address payable",
521
+ "name": "_additionalPayeePrimarySales",
522
+ "type": "address"
523
+ },
524
+ {
525
+ "internalType": "uint256",
526
+ "name": "_additionalPayeePrimarySalesPercentage",
527
+ "type": "uint256"
528
+ },
529
+ {
530
+ "internalType": "address payable",
531
+ "name": "_additionalPayeeSecondarySales",
532
+ "type": "address"
533
+ },
534
+ {
535
+ "internalType": "uint256",
536
+ "name": "_additionalPayeeSecondarySalesPercentage",
537
+ "type": "uint256"
538
+ }
539
+ ],
540
+ "name": "adminAcceptArtistAddressesAndSplits",
541
+ "outputs": [],
542
+ "stateMutability": "nonpayable",
543
+ "type": "function"
544
+ },
545
+ {
546
+ "inputs": [
547
+ {
548
+ "internalType": "address",
549
+ "name": "to",
550
+ "type": "address"
551
+ },
552
+ {
553
+ "internalType": "uint256",
554
+ "name": "tokenId",
555
+ "type": "uint256"
556
+ }
557
+ ],
558
+ "name": "approve",
559
+ "outputs": [],
560
+ "stateMutability": "nonpayable",
561
+ "type": "function"
562
+ },
563
+ {
564
+ "inputs": [],
565
+ "name": "artblocksDependencyRegistryAddress",
566
+ "outputs": [
567
+ {
568
+ "internalType": "address",
569
+ "name": "",
570
+ "type": "address"
571
+ }
572
+ ],
573
+ "stateMutability": "view",
574
+ "type": "function"
575
+ },
576
+ {
577
+ "inputs": [],
578
+ "name": "autoApproveArtistSplitProposals",
579
+ "outputs": [
580
+ {
581
+ "internalType": "bool",
582
+ "name": "",
583
+ "type": "bool"
584
+ }
585
+ ],
586
+ "stateMutability": "view",
587
+ "type": "function"
588
+ },
589
+ {
590
+ "inputs": [
591
+ {
592
+ "internalType": "address",
593
+ "name": "owner",
594
+ "type": "address"
595
+ }
596
+ ],
597
+ "name": "balanceOf",
598
+ "outputs": [
599
+ {
600
+ "internalType": "uint256",
601
+ "name": "",
602
+ "type": "uint256"
603
+ }
604
+ ],
605
+ "stateMutability": "view",
606
+ "type": "function"
607
+ },
608
+ {
609
+ "inputs": [],
610
+ "name": "coreType",
611
+ "outputs": [
612
+ {
613
+ "internalType": "string",
614
+ "name": "",
615
+ "type": "string"
616
+ }
617
+ ],
618
+ "stateMutability": "pure",
619
+ "type": "function"
620
+ },
621
+ {
622
+ "inputs": [],
623
+ "name": "coreVersion",
624
+ "outputs": [
625
+ {
626
+ "internalType": "string",
627
+ "name": "",
628
+ "type": "string"
629
+ }
630
+ ],
631
+ "stateMutability": "pure",
632
+ "type": "function"
633
+ },
634
+ {
635
+ "inputs": [],
636
+ "name": "defaultBaseURI",
637
+ "outputs": [
638
+ {
639
+ "internalType": "string",
640
+ "name": "",
641
+ "type": "string"
642
+ }
643
+ ],
644
+ "stateMutability": "view",
645
+ "type": "function"
646
+ },
647
+ {
648
+ "inputs": [],
649
+ "name": "forbidNewProjects",
650
+ "outputs": [],
651
+ "stateMutability": "nonpayable",
652
+ "type": "function"
653
+ },
654
+ {
655
+ "inputs": [
656
+ {
657
+ "internalType": "uint256",
658
+ "name": "tokenId",
659
+ "type": "uint256"
660
+ }
661
+ ],
662
+ "name": "getApproved",
663
+ "outputs": [
664
+ {
665
+ "internalType": "address",
666
+ "name": "",
667
+ "type": "address"
668
+ }
669
+ ],
670
+ "stateMutability": "view",
671
+ "type": "function"
672
+ },
673
+ {
674
+ "inputs": [
675
+ {
676
+ "internalType": "uint256",
677
+ "name": "_index",
678
+ "type": "uint256"
679
+ }
680
+ ],
681
+ "name": "getHistoricalRandomizerAt",
682
+ "outputs": [
683
+ {
684
+ "internalType": "address",
685
+ "name": "",
686
+ "type": "address"
687
+ }
688
+ ],
689
+ "stateMutability": "view",
690
+ "type": "function"
691
+ },
692
+ {
693
+ "inputs": [
694
+ {
695
+ "internalType": "uint256",
696
+ "name": "_projectId",
697
+ "type": "uint256"
698
+ },
699
+ {
700
+ "internalType": "uint256",
701
+ "name": "_price",
702
+ "type": "uint256"
703
+ }
704
+ ],
705
+ "name": "getPrimaryRevenueSplits",
706
+ "outputs": [
707
+ {
708
+ "internalType": "uint256",
709
+ "name": "renderProviderRevenue_",
710
+ "type": "uint256"
711
+ },
712
+ {
713
+ "internalType": "address payable",
714
+ "name": "renderProviderAddress_",
715
+ "type": "address"
716
+ },
717
+ {
718
+ "internalType": "uint256",
719
+ "name": "platformProviderRevenue_",
720
+ "type": "uint256"
721
+ },
722
+ {
723
+ "internalType": "address payable",
724
+ "name": "platformProviderAddress_",
725
+ "type": "address"
726
+ },
727
+ {
728
+ "internalType": "uint256",
729
+ "name": "artistRevenue_",
730
+ "type": "uint256"
731
+ },
732
+ {
733
+ "internalType": "address payable",
734
+ "name": "artistAddress_",
735
+ "type": "address"
736
+ },
737
+ {
738
+ "internalType": "uint256",
739
+ "name": "additionalPayeePrimaryRevenue_",
740
+ "type": "uint256"
741
+ },
742
+ {
743
+ "internalType": "address payable",
744
+ "name": "additionalPayeePrimaryAddress_",
745
+ "type": "address"
746
+ }
747
+ ],
748
+ "stateMutability": "view",
749
+ "type": "function"
750
+ },
751
+ {
752
+ "inputs": [
753
+ {
754
+ "internalType": "uint256",
755
+ "name": "_tokenId",
756
+ "type": "uint256"
757
+ }
758
+ ],
759
+ "name": "getRoyalties",
760
+ "outputs": [
761
+ {
762
+ "internalType": "address payable[]",
763
+ "name": "recipients",
764
+ "type": "address[]"
765
+ },
766
+ {
767
+ "internalType": "uint256[]",
768
+ "name": "bps",
769
+ "type": "uint256[]"
770
+ }
771
+ ],
772
+ "stateMutability": "view",
773
+ "type": "function"
774
+ },
775
+ {
776
+ "inputs": [
777
+ {
778
+ "internalType": "address",
779
+ "name": "owner",
780
+ "type": "address"
781
+ },
782
+ {
783
+ "internalType": "address",
784
+ "name": "operator",
785
+ "type": "address"
786
+ }
787
+ ],
788
+ "name": "isApprovedForAll",
789
+ "outputs": [
790
+ {
791
+ "internalType": "bool",
792
+ "name": "",
793
+ "type": "bool"
794
+ }
795
+ ],
796
+ "stateMutability": "view",
797
+ "type": "function"
798
+ },
799
+ {
800
+ "inputs": [
801
+ {
802
+ "internalType": "address",
803
+ "name": "_minter",
804
+ "type": "address"
805
+ }
806
+ ],
807
+ "name": "isMintWhitelisted",
808
+ "outputs": [
809
+ {
810
+ "internalType": "bool",
811
+ "name": "",
812
+ "type": "bool"
813
+ }
814
+ ],
815
+ "stateMutability": "view",
816
+ "type": "function"
817
+ },
818
+ {
819
+ "inputs": [
820
+ {
821
+ "internalType": "uint256",
822
+ "name": "_projectId",
823
+ "type": "uint256"
824
+ }
825
+ ],
826
+ "name": "lockProjectExternalAssetDependencies",
827
+ "outputs": [],
828
+ "stateMutability": "nonpayable",
829
+ "type": "function"
830
+ },
831
+ {
832
+ "inputs": [
833
+ {
834
+ "internalType": "address",
835
+ "name": "_to",
836
+ "type": "address"
837
+ },
838
+ {
839
+ "internalType": "uint256",
840
+ "name": "_projectId",
841
+ "type": "uint256"
842
+ },
843
+ {
844
+ "internalType": "address",
845
+ "name": "_by",
846
+ "type": "address"
847
+ }
848
+ ],
849
+ "name": "mint_Ecf",
850
+ "outputs": [
851
+ {
852
+ "internalType": "uint256",
853
+ "name": "_tokenId",
854
+ "type": "uint256"
855
+ }
856
+ ],
857
+ "stateMutability": "nonpayable",
858
+ "type": "function"
859
+ },
860
+ {
861
+ "inputs": [],
862
+ "name": "minterContract",
863
+ "outputs": [
864
+ {
865
+ "internalType": "address",
866
+ "name": "",
867
+ "type": "address"
868
+ }
869
+ ],
870
+ "stateMutability": "view",
871
+ "type": "function"
872
+ },
873
+ {
874
+ "inputs": [],
875
+ "name": "name",
876
+ "outputs": [
877
+ {
878
+ "internalType": "string",
879
+ "name": "",
880
+ "type": "string"
881
+ }
882
+ ],
883
+ "stateMutability": "view",
884
+ "type": "function"
885
+ },
886
+ {
887
+ "inputs": [],
888
+ "name": "newProjectsForbidden",
889
+ "outputs": [
890
+ {
891
+ "internalType": "bool",
892
+ "name": "",
893
+ "type": "bool"
894
+ }
895
+ ],
896
+ "stateMutability": "view",
897
+ "type": "function"
898
+ },
899
+ {
900
+ "inputs": [],
901
+ "name": "nextProjectId",
902
+ "outputs": [
903
+ {
904
+ "internalType": "uint256",
905
+ "name": "",
906
+ "type": "uint256"
907
+ }
908
+ ],
909
+ "stateMutability": "view",
910
+ "type": "function"
911
+ },
912
+ {
913
+ "inputs": [],
914
+ "name": "numHistoricalRandomizers",
915
+ "outputs": [
916
+ {
917
+ "internalType": "uint256",
918
+ "name": "",
919
+ "type": "uint256"
920
+ }
921
+ ],
922
+ "stateMutability": "view",
923
+ "type": "function"
924
+ },
925
+ {
926
+ "inputs": [],
927
+ "name": "owner",
928
+ "outputs": [
929
+ {
930
+ "internalType": "address",
931
+ "name": "",
932
+ "type": "address"
933
+ }
934
+ ],
935
+ "stateMutability": "view",
936
+ "type": "function"
937
+ },
938
+ {
939
+ "inputs": [
940
+ {
941
+ "internalType": "uint256",
942
+ "name": "tokenId",
943
+ "type": "uint256"
944
+ }
945
+ ],
946
+ "name": "ownerOf",
947
+ "outputs": [
948
+ {
949
+ "internalType": "address",
950
+ "name": "",
951
+ "type": "address"
952
+ }
953
+ ],
954
+ "stateMutability": "view",
955
+ "type": "function"
956
+ },
957
+ {
958
+ "inputs": [],
959
+ "name": "platformProviderPrimarySalesAddress",
960
+ "outputs": [
961
+ {
962
+ "internalType": "address payable",
963
+ "name": "",
964
+ "type": "address"
965
+ }
966
+ ],
967
+ "stateMutability": "view",
968
+ "type": "function"
969
+ },
970
+ {
971
+ "inputs": [],
972
+ "name": "platformProviderPrimarySalesPercentage",
973
+ "outputs": [
974
+ {
975
+ "internalType": "uint256",
976
+ "name": "",
977
+ "type": "uint256"
978
+ }
979
+ ],
980
+ "stateMutability": "view",
981
+ "type": "function"
982
+ },
983
+ {
984
+ "inputs": [],
985
+ "name": "platformProviderSecondarySalesAddress",
986
+ "outputs": [
987
+ {
988
+ "internalType": "address payable",
989
+ "name": "",
990
+ "type": "address"
991
+ }
992
+ ],
993
+ "stateMutability": "view",
994
+ "type": "function"
995
+ },
996
+ {
997
+ "inputs": [],
998
+ "name": "platformProviderSecondarySalesBPS",
999
+ "outputs": [
1000
+ {
1001
+ "internalType": "uint256",
1002
+ "name": "",
1003
+ "type": "uint256"
1004
+ }
1005
+ ],
1006
+ "stateMutability": "view",
1007
+ "type": "function"
1008
+ },
1009
+ {
1010
+ "inputs": [],
1011
+ "name": "preferredArweaveGateway",
1012
+ "outputs": [
1013
+ {
1014
+ "internalType": "string",
1015
+ "name": "",
1016
+ "type": "string"
1017
+ }
1018
+ ],
1019
+ "stateMutability": "view",
1020
+ "type": "function"
1021
+ },
1022
+ {
1023
+ "inputs": [],
1024
+ "name": "preferredIPFSGateway",
1025
+ "outputs": [
1026
+ {
1027
+ "internalType": "string",
1028
+ "name": "",
1029
+ "type": "string"
1030
+ }
1031
+ ],
1032
+ "stateMutability": "view",
1033
+ "type": "function"
1034
+ },
1035
+ {
1036
+ "inputs": [
1037
+ {
1038
+ "internalType": "uint256",
1039
+ "name": "_projectId",
1040
+ "type": "uint256"
1041
+ }
1042
+ ],
1043
+ "name": "projectArtistPaymentInfo",
1044
+ "outputs": [
1045
+ {
1046
+ "internalType": "address",
1047
+ "name": "artistAddress",
1048
+ "type": "address"
1049
+ },
1050
+ {
1051
+ "internalType": "address",
1052
+ "name": "additionalPayeePrimarySales",
1053
+ "type": "address"
1054
+ },
1055
+ {
1056
+ "internalType": "uint256",
1057
+ "name": "additionalPayeePrimarySalesPercentage",
1058
+ "type": "uint256"
1059
+ },
1060
+ {
1061
+ "internalType": "address",
1062
+ "name": "additionalPayeeSecondarySales",
1063
+ "type": "address"
1064
+ },
1065
+ {
1066
+ "internalType": "uint256",
1067
+ "name": "additionalPayeeSecondarySalesPercentage",
1068
+ "type": "uint256"
1069
+ },
1070
+ {
1071
+ "internalType": "uint256",
1072
+ "name": "secondaryMarketRoyaltyPercentage",
1073
+ "type": "uint256"
1074
+ }
1075
+ ],
1076
+ "stateMutability": "view",
1077
+ "type": "function"
1078
+ },
1079
+ {
1080
+ "inputs": [
1081
+ {
1082
+ "internalType": "uint256",
1083
+ "name": "_projectId",
1084
+ "type": "uint256"
1085
+ }
1086
+ ],
1087
+ "name": "projectDetails",
1088
+ "outputs": [
1089
+ {
1090
+ "internalType": "string",
1091
+ "name": "projectName",
1092
+ "type": "string"
1093
+ },
1094
+ {
1095
+ "internalType": "string",
1096
+ "name": "artist",
1097
+ "type": "string"
1098
+ },
1099
+ {
1100
+ "internalType": "string",
1101
+ "name": "description",
1102
+ "type": "string"
1103
+ },
1104
+ {
1105
+ "internalType": "string",
1106
+ "name": "website",
1107
+ "type": "string"
1108
+ },
1109
+ {
1110
+ "internalType": "string",
1111
+ "name": "license",
1112
+ "type": "string"
1113
+ }
1114
+ ],
1115
+ "stateMutability": "view",
1116
+ "type": "function"
1117
+ },
1118
+ {
1119
+ "inputs": [
1120
+ {
1121
+ "internalType": "uint256",
1122
+ "name": "_projectId",
1123
+ "type": "uint256"
1124
+ },
1125
+ {
1126
+ "internalType": "uint256",
1127
+ "name": "_index",
1128
+ "type": "uint256"
1129
+ }
1130
+ ],
1131
+ "name": "projectExternalAssetDependencyByIndex",
1132
+ "outputs": [
1133
+ {
1134
+ "components": [
1135
+ {
1136
+ "internalType": "string",
1137
+ "name": "cid",
1138
+ "type": "string"
1139
+ },
1140
+ {
1141
+ "internalType": "enum IGenArt721CoreContractV3_Engine_Flex.ExternalAssetDependencyType",
1142
+ "name": "dependencyType",
1143
+ "type": "uint8"
1144
+ },
1145
+ {
1146
+ "internalType": "address",
1147
+ "name": "bytecodeAddress",
1148
+ "type": "address"
1149
+ },
1150
+ {
1151
+ "internalType": "string",
1152
+ "name": "data",
1153
+ "type": "string"
1154
+ }
1155
+ ],
1156
+ "internalType": "struct IGenArt721CoreContractV3_Engine_Flex.ExternalAssetDependencyWithData",
1157
+ "name": "",
1158
+ "type": "tuple"
1159
+ }
1160
+ ],
1161
+ "stateMutability": "view",
1162
+ "type": "function"
1163
+ },
1164
+ {
1165
+ "inputs": [
1166
+ {
1167
+ "internalType": "uint256",
1168
+ "name": "_projectId",
1169
+ "type": "uint256"
1170
+ }
1171
+ ],
1172
+ "name": "projectExternalAssetDependencyCount",
1173
+ "outputs": [
1174
+ {
1175
+ "internalType": "uint256",
1176
+ "name": "",
1177
+ "type": "uint256"
1178
+ }
1179
+ ],
1180
+ "stateMutability": "view",
1181
+ "type": "function"
1182
+ },
1183
+ {
1184
+ "inputs": [
1185
+ {
1186
+ "internalType": "uint256",
1187
+ "name": "_projectId",
1188
+ "type": "uint256"
1189
+ }
1190
+ ],
1191
+ "name": "projectIdToAdditionalPayeePrimarySales",
1192
+ "outputs": [
1193
+ {
1194
+ "internalType": "address payable",
1195
+ "name": "",
1196
+ "type": "address"
1197
+ }
1198
+ ],
1199
+ "stateMutability": "view",
1200
+ "type": "function"
1201
+ },
1202
+ {
1203
+ "inputs": [
1204
+ {
1205
+ "internalType": "uint256",
1206
+ "name": "_projectId",
1207
+ "type": "uint256"
1208
+ }
1209
+ ],
1210
+ "name": "projectIdToAdditionalPayeePrimarySalesPercentage",
1211
+ "outputs": [
1212
+ {
1213
+ "internalType": "uint256",
1214
+ "name": "",
1215
+ "type": "uint256"
1216
+ }
1217
+ ],
1218
+ "stateMutability": "view",
1219
+ "type": "function"
1220
+ },
1221
+ {
1222
+ "inputs": [
1223
+ {
1224
+ "internalType": "uint256",
1225
+ "name": "_projectId",
1226
+ "type": "uint256"
1227
+ }
1228
+ ],
1229
+ "name": "projectIdToAdditionalPayeeSecondarySales",
1230
+ "outputs": [
1231
+ {
1232
+ "internalType": "address payable",
1233
+ "name": "",
1234
+ "type": "address"
1235
+ }
1236
+ ],
1237
+ "stateMutability": "view",
1238
+ "type": "function"
1239
+ },
1240
+ {
1241
+ "inputs": [
1242
+ {
1243
+ "internalType": "uint256",
1244
+ "name": "_projectId",
1245
+ "type": "uint256"
1246
+ }
1247
+ ],
1248
+ "name": "projectIdToAdditionalPayeeSecondarySalesPercentage",
1249
+ "outputs": [
1250
+ {
1251
+ "internalType": "uint256",
1252
+ "name": "",
1253
+ "type": "uint256"
1254
+ }
1255
+ ],
1256
+ "stateMutability": "view",
1257
+ "type": "function"
1258
+ },
1259
+ {
1260
+ "inputs": [
1261
+ {
1262
+ "internalType": "uint256",
1263
+ "name": "_projectId",
1264
+ "type": "uint256"
1265
+ }
1266
+ ],
1267
+ "name": "projectIdToArtistAddress",
1268
+ "outputs": [
1269
+ {
1270
+ "internalType": "address payable",
1271
+ "name": "",
1272
+ "type": "address"
1273
+ }
1274
+ ],
1275
+ "stateMutability": "view",
1276
+ "type": "function"
1277
+ },
1278
+ {
1279
+ "inputs": [
1280
+ {
1281
+ "internalType": "uint256",
1282
+ "name": "_projectId",
1283
+ "type": "uint256"
1284
+ }
1285
+ ],
1286
+ "name": "projectIdToSecondaryMarketRoyaltyPercentage",
1287
+ "outputs": [
1288
+ {
1289
+ "internalType": "uint256",
1290
+ "name": "",
1291
+ "type": "uint256"
1292
+ }
1293
+ ],
1294
+ "stateMutability": "view",
1295
+ "type": "function"
1296
+ },
1297
+ {
1298
+ "inputs": [
1299
+ {
1300
+ "internalType": "uint256",
1301
+ "name": "_projectId",
1302
+ "type": "uint256"
1303
+ },
1304
+ {
1305
+ "internalType": "uint256",
1306
+ "name": "_index",
1307
+ "type": "uint256"
1308
+ }
1309
+ ],
1310
+ "name": "projectScriptByIndex",
1311
+ "outputs": [
1312
+ {
1313
+ "internalType": "string",
1314
+ "name": "",
1315
+ "type": "string"
1316
+ }
1317
+ ],
1318
+ "stateMutability": "view",
1319
+ "type": "function"
1320
+ },
1321
+ {
1322
+ "inputs": [
1323
+ {
1324
+ "internalType": "uint256",
1325
+ "name": "_projectId",
1326
+ "type": "uint256"
1327
+ },
1328
+ {
1329
+ "internalType": "uint256",
1330
+ "name": "_index",
1331
+ "type": "uint256"
1332
+ }
1333
+ ],
1334
+ "name": "projectScriptBytecodeAddressByIndex",
1335
+ "outputs": [
1336
+ {
1337
+ "internalType": "address",
1338
+ "name": "",
1339
+ "type": "address"
1340
+ }
1341
+ ],
1342
+ "stateMutability": "view",
1343
+ "type": "function"
1344
+ },
1345
+ {
1346
+ "inputs": [
1347
+ {
1348
+ "internalType": "uint256",
1349
+ "name": "_projectId",
1350
+ "type": "uint256"
1351
+ }
1352
+ ],
1353
+ "name": "projectScriptDetails",
1354
+ "outputs": [
1355
+ {
1356
+ "internalType": "string",
1357
+ "name": "scriptTypeAndVersion",
1358
+ "type": "string"
1359
+ },
1360
+ {
1361
+ "internalType": "string",
1362
+ "name": "aspectRatio",
1363
+ "type": "string"
1364
+ },
1365
+ {
1366
+ "internalType": "uint256",
1367
+ "name": "scriptCount",
1368
+ "type": "uint256"
1369
+ }
1370
+ ],
1371
+ "stateMutability": "view",
1372
+ "type": "function"
1373
+ },
1374
+ {
1375
+ "inputs": [
1376
+ {
1377
+ "internalType": "uint256",
1378
+ "name": "_projectId",
1379
+ "type": "uint256"
1380
+ }
1381
+ ],
1382
+ "name": "projectStateData",
1383
+ "outputs": [
1384
+ {
1385
+ "internalType": "uint256",
1386
+ "name": "invocations",
1387
+ "type": "uint256"
1388
+ },
1389
+ {
1390
+ "internalType": "uint256",
1391
+ "name": "maxInvocations",
1392
+ "type": "uint256"
1393
+ },
1394
+ {
1395
+ "internalType": "bool",
1396
+ "name": "active",
1397
+ "type": "bool"
1398
+ },
1399
+ {
1400
+ "internalType": "bool",
1401
+ "name": "paused",
1402
+ "type": "bool"
1403
+ },
1404
+ {
1405
+ "internalType": "uint256",
1406
+ "name": "completedTimestamp",
1407
+ "type": "uint256"
1408
+ },
1409
+ {
1410
+ "internalType": "bool",
1411
+ "name": "locked",
1412
+ "type": "bool"
1413
+ }
1414
+ ],
1415
+ "stateMutability": "view",
1416
+ "type": "function"
1417
+ },
1418
+ {
1419
+ "inputs": [
1420
+ {
1421
+ "internalType": "uint256",
1422
+ "name": "_projectId",
1423
+ "type": "uint256"
1424
+ }
1425
+ ],
1426
+ "name": "projectURIInfo",
1427
+ "outputs": [
1428
+ {
1429
+ "internalType": "string",
1430
+ "name": "projectBaseURI",
1431
+ "type": "string"
1432
+ }
1433
+ ],
1434
+ "stateMutability": "view",
1435
+ "type": "function"
1436
+ },
1437
+ {
1438
+ "inputs": [
1439
+ {
1440
+ "internalType": "uint256",
1441
+ "name": "_projectId",
1442
+ "type": "uint256"
1443
+ },
1444
+ {
1445
+ "internalType": "address payable",
1446
+ "name": "_artistAddress",
1447
+ "type": "address"
1448
+ },
1449
+ {
1450
+ "internalType": "address payable",
1451
+ "name": "_additionalPayeePrimarySales",
1452
+ "type": "address"
1453
+ },
1454
+ {
1455
+ "internalType": "uint256",
1456
+ "name": "_additionalPayeePrimarySalesPercentage",
1457
+ "type": "uint256"
1458
+ },
1459
+ {
1460
+ "internalType": "address payable",
1461
+ "name": "_additionalPayeeSecondarySales",
1462
+ "type": "address"
1463
+ },
1464
+ {
1465
+ "internalType": "uint256",
1466
+ "name": "_additionalPayeeSecondarySalesPercentage",
1467
+ "type": "uint256"
1468
+ }
1469
+ ],
1470
+ "name": "proposeArtistPaymentAddressesAndSplits",
1471
+ "outputs": [],
1472
+ "stateMutability": "nonpayable",
1473
+ "type": "function"
1474
+ },
1475
+ {
1476
+ "inputs": [
1477
+ {
1478
+ "internalType": "uint256",
1479
+ "name": "",
1480
+ "type": "uint256"
1481
+ }
1482
+ ],
1483
+ "name": "proposedArtistAddressesAndSplitsHash",
1484
+ "outputs": [
1485
+ {
1486
+ "internalType": "bytes32",
1487
+ "name": "",
1488
+ "type": "bytes32"
1489
+ }
1490
+ ],
1491
+ "stateMutability": "view",
1492
+ "type": "function"
1493
+ },
1494
+ {
1495
+ "inputs": [],
1496
+ "name": "randomizerContract",
1497
+ "outputs": [
1498
+ {
1499
+ "internalType": "contract IRandomizerV2",
1500
+ "name": "",
1501
+ "type": "address"
1502
+ }
1503
+ ],
1504
+ "stateMutability": "view",
1505
+ "type": "function"
1506
+ },
1507
+ {
1508
+ "inputs": [
1509
+ {
1510
+ "internalType": "uint256",
1511
+ "name": "_projectId",
1512
+ "type": "uint256"
1513
+ },
1514
+ {
1515
+ "internalType": "uint256",
1516
+ "name": "_index",
1517
+ "type": "uint256"
1518
+ }
1519
+ ],
1520
+ "name": "removeProjectExternalAssetDependency",
1521
+ "outputs": [],
1522
+ "stateMutability": "nonpayable",
1523
+ "type": "function"
1524
+ },
1525
+ {
1526
+ "inputs": [
1527
+ {
1528
+ "internalType": "uint256",
1529
+ "name": "_projectId",
1530
+ "type": "uint256"
1531
+ }
1532
+ ],
1533
+ "name": "removeProjectLastScript",
1534
+ "outputs": [],
1535
+ "stateMutability": "nonpayable",
1536
+ "type": "function"
1537
+ },
1538
+ {
1539
+ "inputs": [],
1540
+ "name": "renderProviderPrimarySalesAddress",
1541
+ "outputs": [
1542
+ {
1543
+ "internalType": "address payable",
1544
+ "name": "",
1545
+ "type": "address"
1546
+ }
1547
+ ],
1548
+ "stateMutability": "view",
1549
+ "type": "function"
1550
+ },
1551
+ {
1552
+ "inputs": [],
1553
+ "name": "renderProviderPrimarySalesPercentage",
1554
+ "outputs": [
1555
+ {
1556
+ "internalType": "uint256",
1557
+ "name": "",
1558
+ "type": "uint256"
1559
+ }
1560
+ ],
1561
+ "stateMutability": "view",
1562
+ "type": "function"
1563
+ },
1564
+ {
1565
+ "inputs": [],
1566
+ "name": "renderProviderSecondarySalesAddress",
1567
+ "outputs": [
1568
+ {
1569
+ "internalType": "address payable",
1570
+ "name": "",
1571
+ "type": "address"
1572
+ }
1573
+ ],
1574
+ "stateMutability": "view",
1575
+ "type": "function"
1576
+ },
1577
+ {
1578
+ "inputs": [],
1579
+ "name": "renderProviderSecondarySalesBPS",
1580
+ "outputs": [
1581
+ {
1582
+ "internalType": "uint256",
1583
+ "name": "",
1584
+ "type": "uint256"
1585
+ }
1586
+ ],
1587
+ "stateMutability": "view",
1588
+ "type": "function"
1589
+ },
1590
+ {
1591
+ "inputs": [],
1592
+ "name": "renounceOwnership",
1593
+ "outputs": [],
1594
+ "stateMutability": "nonpayable",
1595
+ "type": "function"
1596
+ },
1597
+ {
1598
+ "inputs": [
1599
+ {
1600
+ "internalType": "address",
1601
+ "name": "from",
1602
+ "type": "address"
1603
+ },
1604
+ {
1605
+ "internalType": "address",
1606
+ "name": "to",
1607
+ "type": "address"
1608
+ },
1609
+ {
1610
+ "internalType": "uint256",
1611
+ "name": "tokenId",
1612
+ "type": "uint256"
1613
+ }
1614
+ ],
1615
+ "name": "safeTransferFrom",
1616
+ "outputs": [],
1617
+ "stateMutability": "nonpayable",
1618
+ "type": "function"
1619
+ },
1620
+ {
1621
+ "inputs": [
1622
+ {
1623
+ "internalType": "address",
1624
+ "name": "from",
1625
+ "type": "address"
1626
+ },
1627
+ {
1628
+ "internalType": "address",
1629
+ "name": "to",
1630
+ "type": "address"
1631
+ },
1632
+ {
1633
+ "internalType": "uint256",
1634
+ "name": "tokenId",
1635
+ "type": "uint256"
1636
+ },
1637
+ {
1638
+ "internalType": "bytes",
1639
+ "name": "data",
1640
+ "type": "bytes"
1641
+ }
1642
+ ],
1643
+ "name": "safeTransferFrom",
1644
+ "outputs": [],
1645
+ "stateMutability": "nonpayable",
1646
+ "type": "function"
1647
+ },
1648
+ {
1649
+ "inputs": [
1650
+ {
1651
+ "internalType": "address",
1652
+ "name": "operator",
1653
+ "type": "address"
1654
+ },
1655
+ {
1656
+ "internalType": "bool",
1657
+ "name": "approved",
1658
+ "type": "bool"
1659
+ }
1660
+ ],
1661
+ "name": "setApprovalForAll",
1662
+ "outputs": [],
1663
+ "stateMutability": "nonpayable",
1664
+ "type": "function"
1665
+ },
1666
+ {
1667
+ "inputs": [
1668
+ {
1669
+ "internalType": "uint256",
1670
+ "name": "_tokenId",
1671
+ "type": "uint256"
1672
+ },
1673
+ {
1674
+ "internalType": "bytes32",
1675
+ "name": "_hashSeed",
1676
+ "type": "bytes32"
1677
+ }
1678
+ ],
1679
+ "name": "setTokenHash_8PT",
1680
+ "outputs": [],
1681
+ "stateMutability": "nonpayable",
1682
+ "type": "function"
1683
+ },
1684
+ {
1685
+ "inputs": [],
1686
+ "name": "startingProjectId",
1687
+ "outputs": [
1688
+ {
1689
+ "internalType": "uint256",
1690
+ "name": "",
1691
+ "type": "uint256"
1692
+ }
1693
+ ],
1694
+ "stateMutability": "view",
1695
+ "type": "function"
1696
+ },
1697
+ {
1698
+ "inputs": [
1699
+ {
1700
+ "internalType": "bytes4",
1701
+ "name": "interfaceId",
1702
+ "type": "bytes4"
1703
+ }
1704
+ ],
1705
+ "name": "supportsInterface",
1706
+ "outputs": [
1707
+ {
1708
+ "internalType": "bool",
1709
+ "name": "",
1710
+ "type": "bool"
1711
+ }
1712
+ ],
1713
+ "stateMutability": "view",
1714
+ "type": "function"
1715
+ },
1716
+ {
1717
+ "inputs": [],
1718
+ "name": "symbol",
1719
+ "outputs": [
1720
+ {
1721
+ "internalType": "string",
1722
+ "name": "",
1723
+ "type": "string"
1724
+ }
1725
+ ],
1726
+ "stateMutability": "view",
1727
+ "type": "function"
1728
+ },
1729
+ {
1730
+ "inputs": [
1731
+ {
1732
+ "internalType": "uint256",
1733
+ "name": "_projectId",
1734
+ "type": "uint256"
1735
+ }
1736
+ ],
1737
+ "name": "toggleProjectIsActive",
1738
+ "outputs": [],
1739
+ "stateMutability": "nonpayable",
1740
+ "type": "function"
1741
+ },
1742
+ {
1743
+ "inputs": [
1744
+ {
1745
+ "internalType": "uint256",
1746
+ "name": "_projectId",
1747
+ "type": "uint256"
1748
+ }
1749
+ ],
1750
+ "name": "toggleProjectIsPaused",
1751
+ "outputs": [],
1752
+ "stateMutability": "nonpayable",
1753
+ "type": "function"
1754
+ },
1755
+ {
1756
+ "inputs": [
1757
+ {
1758
+ "internalType": "uint256",
1759
+ "name": "_tokenId",
1760
+ "type": "uint256"
1761
+ }
1762
+ ],
1763
+ "name": "tokenIdToHash",
1764
+ "outputs": [
1765
+ {
1766
+ "internalType": "bytes32",
1767
+ "name": "",
1768
+ "type": "bytes32"
1769
+ }
1770
+ ],
1771
+ "stateMutability": "view",
1772
+ "type": "function"
1773
+ },
1774
+ {
1775
+ "inputs": [
1776
+ {
1777
+ "internalType": "uint256",
1778
+ "name": "_tokenId",
1779
+ "type": "uint256"
1780
+ }
1781
+ ],
1782
+ "name": "tokenIdToHashSeed",
1783
+ "outputs": [
1784
+ {
1785
+ "internalType": "bytes12",
1786
+ "name": "",
1787
+ "type": "bytes12"
1788
+ }
1789
+ ],
1790
+ "stateMutability": "view",
1791
+ "type": "function"
1792
+ },
1793
+ {
1794
+ "inputs": [
1795
+ {
1796
+ "internalType": "uint256",
1797
+ "name": "_tokenId",
1798
+ "type": "uint256"
1799
+ }
1800
+ ],
1801
+ "name": "tokenIdToProjectId",
1802
+ "outputs": [
1803
+ {
1804
+ "internalType": "uint256",
1805
+ "name": "_projectId",
1806
+ "type": "uint256"
1807
+ }
1808
+ ],
1809
+ "stateMutability": "pure",
1810
+ "type": "function"
1811
+ },
1812
+ {
1813
+ "inputs": [
1814
+ {
1815
+ "internalType": "uint256",
1816
+ "name": "_tokenId",
1817
+ "type": "uint256"
1818
+ }
1819
+ ],
1820
+ "name": "tokenURI",
1821
+ "outputs": [
1822
+ {
1823
+ "internalType": "string",
1824
+ "name": "",
1825
+ "type": "string"
1826
+ }
1827
+ ],
1828
+ "stateMutability": "view",
1829
+ "type": "function"
1830
+ },
1831
+ {
1832
+ "inputs": [
1833
+ {
1834
+ "internalType": "address",
1835
+ "name": "from",
1836
+ "type": "address"
1837
+ },
1838
+ {
1839
+ "internalType": "address",
1840
+ "name": "to",
1841
+ "type": "address"
1842
+ },
1843
+ {
1844
+ "internalType": "uint256",
1845
+ "name": "tokenId",
1846
+ "type": "uint256"
1847
+ }
1848
+ ],
1849
+ "name": "transferFrom",
1850
+ "outputs": [],
1851
+ "stateMutability": "nonpayable",
1852
+ "type": "function"
1853
+ },
1854
+ {
1855
+ "inputs": [
1856
+ {
1857
+ "internalType": "address",
1858
+ "name": "newOwner",
1859
+ "type": "address"
1860
+ }
1861
+ ],
1862
+ "name": "transferOwnership",
1863
+ "outputs": [],
1864
+ "stateMutability": "nonpayable",
1865
+ "type": "function"
1866
+ },
1867
+ {
1868
+ "inputs": [
1869
+ {
1870
+ "internalType": "address",
1871
+ "name": "_artblocksDependencyRegistryAddress",
1872
+ "type": "address"
1873
+ }
1874
+ ],
1875
+ "name": "updateArtblocksDependencyRegistryAddress",
1876
+ "outputs": [],
1877
+ "stateMutability": "nonpayable",
1878
+ "type": "function"
1879
+ },
1880
+ {
1881
+ "inputs": [
1882
+ {
1883
+ "internalType": "string",
1884
+ "name": "_gateway",
1885
+ "type": "string"
1886
+ }
1887
+ ],
1888
+ "name": "updateArweaveGateway",
1889
+ "outputs": [],
1890
+ "stateMutability": "nonpayable",
1891
+ "type": "function"
1892
+ },
1893
+ {
1894
+ "inputs": [
1895
+ {
1896
+ "internalType": "string",
1897
+ "name": "_defaultBaseURI",
1898
+ "type": "string"
1899
+ }
1900
+ ],
1901
+ "name": "updateDefaultBaseURI",
1902
+ "outputs": [],
1903
+ "stateMutability": "nonpayable",
1904
+ "type": "function"
1905
+ },
1906
+ {
1907
+ "inputs": [
1908
+ {
1909
+ "internalType": "string",
1910
+ "name": "_gateway",
1911
+ "type": "string"
1912
+ }
1913
+ ],
1914
+ "name": "updateIPFSGateway",
1915
+ "outputs": [],
1916
+ "stateMutability": "nonpayable",
1917
+ "type": "function"
1918
+ },
1919
+ {
1920
+ "inputs": [
1921
+ {
1922
+ "internalType": "address",
1923
+ "name": "_address",
1924
+ "type": "address"
1925
+ }
1926
+ ],
1927
+ "name": "updateMinterContract",
1928
+ "outputs": [],
1929
+ "stateMutability": "nonpayable",
1930
+ "type": "function"
1931
+ },
1932
+ {
1933
+ "inputs": [
1934
+ {
1935
+ "internalType": "uint256",
1936
+ "name": "_projectId",
1937
+ "type": "uint256"
1938
+ },
1939
+ {
1940
+ "internalType": "address payable",
1941
+ "name": "_artistAddress",
1942
+ "type": "address"
1943
+ }
1944
+ ],
1945
+ "name": "updateProjectArtistAddress",
1946
+ "outputs": [],
1947
+ "stateMutability": "nonpayable",
1948
+ "type": "function"
1949
+ },
1950
+ {
1951
+ "inputs": [
1952
+ {
1953
+ "internalType": "uint256",
1954
+ "name": "_projectId",
1955
+ "type": "uint256"
1956
+ },
1957
+ {
1958
+ "internalType": "string",
1959
+ "name": "_projectArtistName",
1960
+ "type": "string"
1961
+ }
1962
+ ],
1963
+ "name": "updateProjectArtistName",
1964
+ "outputs": [],
1965
+ "stateMutability": "nonpayable",
1966
+ "type": "function"
1967
+ },
1968
+ {
1969
+ "inputs": [
1970
+ {
1971
+ "internalType": "uint256",
1972
+ "name": "_projectId",
1973
+ "type": "uint256"
1974
+ },
1975
+ {
1976
+ "internalType": "string",
1977
+ "name": "_aspectRatio",
1978
+ "type": "string"
1979
+ }
1980
+ ],
1981
+ "name": "updateProjectAspectRatio",
1982
+ "outputs": [],
1983
+ "stateMutability": "nonpayable",
1984
+ "type": "function"
1985
+ },
1986
+ {
1987
+ "inputs": [
1988
+ {
1989
+ "internalType": "uint256",
1990
+ "name": "_projectId",
1991
+ "type": "uint256"
1992
+ },
1993
+ {
1994
+ "internalType": "string",
1995
+ "name": "_newBaseURI",
1996
+ "type": "string"
1997
+ }
1998
+ ],
1999
+ "name": "updateProjectBaseURI",
2000
+ "outputs": [],
2001
+ "stateMutability": "nonpayable",
2002
+ "type": "function"
2003
+ },
2004
+ {
2005
+ "inputs": [
2006
+ {
2007
+ "internalType": "uint256",
2008
+ "name": "_projectId",
2009
+ "type": "uint256"
2010
+ },
2011
+ {
2012
+ "internalType": "string",
2013
+ "name": "_projectDescription",
2014
+ "type": "string"
2015
+ }
2016
+ ],
2017
+ "name": "updateProjectDescription",
2018
+ "outputs": [],
2019
+ "stateMutability": "nonpayable",
2020
+ "type": "function"
2021
+ },
2022
+ {
2023
+ "inputs": [
2024
+ {
2025
+ "internalType": "uint256",
2026
+ "name": "_projectId",
2027
+ "type": "uint256"
2028
+ },
2029
+ {
2030
+ "internalType": "uint256",
2031
+ "name": "_index",
2032
+ "type": "uint256"
2033
+ },
2034
+ {
2035
+ "internalType": "string",
2036
+ "name": "_cidOrData",
2037
+ "type": "string"
2038
+ },
2039
+ {
2040
+ "internalType": "enum IGenArt721CoreContractV3_Engine_Flex.ExternalAssetDependencyType",
2041
+ "name": "_dependencyType",
2042
+ "type": "uint8"
2043
+ }
2044
+ ],
2045
+ "name": "updateProjectExternalAssetDependency",
2046
+ "outputs": [],
2047
+ "stateMutability": "nonpayable",
2048
+ "type": "function"
2049
+ },
2050
+ {
2051
+ "inputs": [
2052
+ {
2053
+ "internalType": "uint256",
2054
+ "name": "_projectId",
2055
+ "type": "uint256"
2056
+ },
2057
+ {
2058
+ "internalType": "string",
2059
+ "name": "_projectLicense",
2060
+ "type": "string"
2061
+ }
2062
+ ],
2063
+ "name": "updateProjectLicense",
2064
+ "outputs": [],
2065
+ "stateMutability": "nonpayable",
2066
+ "type": "function"
2067
+ },
2068
+ {
2069
+ "inputs": [
2070
+ {
2071
+ "internalType": "uint256",
2072
+ "name": "_projectId",
2073
+ "type": "uint256"
2074
+ },
2075
+ {
2076
+ "internalType": "uint24",
2077
+ "name": "_maxInvocations",
2078
+ "type": "uint24"
2079
+ }
2080
+ ],
2081
+ "name": "updateProjectMaxInvocations",
2082
+ "outputs": [],
2083
+ "stateMutability": "nonpayable",
2084
+ "type": "function"
2085
+ },
2086
+ {
2087
+ "inputs": [
2088
+ {
2089
+ "internalType": "uint256",
2090
+ "name": "_projectId",
2091
+ "type": "uint256"
2092
+ },
2093
+ {
2094
+ "internalType": "string",
2095
+ "name": "_projectName",
2096
+ "type": "string"
2097
+ }
2098
+ ],
2099
+ "name": "updateProjectName",
2100
+ "outputs": [],
2101
+ "stateMutability": "nonpayable",
2102
+ "type": "function"
2103
+ },
2104
+ {
2105
+ "inputs": [
2106
+ {
2107
+ "internalType": "uint256",
2108
+ "name": "_projectId",
2109
+ "type": "uint256"
2110
+ },
2111
+ {
2112
+ "internalType": "uint256",
2113
+ "name": "_scriptId",
2114
+ "type": "uint256"
2115
+ },
2116
+ {
2117
+ "internalType": "string",
2118
+ "name": "_script",
2119
+ "type": "string"
2120
+ }
2121
+ ],
2122
+ "name": "updateProjectScript",
2123
+ "outputs": [],
2124
+ "stateMutability": "nonpayable",
2125
+ "type": "function"
2126
+ },
2127
+ {
2128
+ "inputs": [
2129
+ {
2130
+ "internalType": "uint256",
2131
+ "name": "_projectId",
2132
+ "type": "uint256"
2133
+ },
2134
+ {
2135
+ "internalType": "bytes32",
2136
+ "name": "_scriptTypeAndVersion",
2137
+ "type": "bytes32"
2138
+ }
2139
+ ],
2140
+ "name": "updateProjectScriptType",
2141
+ "outputs": [],
2142
+ "stateMutability": "nonpayable",
2143
+ "type": "function"
2144
+ },
2145
+ {
2146
+ "inputs": [
2147
+ {
2148
+ "internalType": "uint256",
2149
+ "name": "_projectId",
2150
+ "type": "uint256"
2151
+ },
2152
+ {
2153
+ "internalType": "uint256",
2154
+ "name": "_secondMarketRoyalty",
2155
+ "type": "uint256"
2156
+ }
2157
+ ],
2158
+ "name": "updateProjectSecondaryMarketRoyaltyPercentage",
2159
+ "outputs": [],
2160
+ "stateMutability": "nonpayable",
2161
+ "type": "function"
2162
+ },
2163
+ {
2164
+ "inputs": [
2165
+ {
2166
+ "internalType": "uint256",
2167
+ "name": "_projectId",
2168
+ "type": "uint256"
2169
+ },
2170
+ {
2171
+ "internalType": "string",
2172
+ "name": "_projectWebsite",
2173
+ "type": "string"
2174
+ }
2175
+ ],
2176
+ "name": "updateProjectWebsite",
2177
+ "outputs": [],
2178
+ "stateMutability": "nonpayable",
2179
+ "type": "function"
2180
+ },
2181
+ {
2182
+ "inputs": [
2183
+ {
2184
+ "internalType": "uint256",
2185
+ "name": "renderProviderPrimarySalesPercentage_",
2186
+ "type": "uint256"
2187
+ },
2188
+ {
2189
+ "internalType": "uint256",
2190
+ "name": "platformProviderPrimarySalesPercentage_",
2191
+ "type": "uint256"
2192
+ }
2193
+ ],
2194
+ "name": "updateProviderPrimarySalesPercentages",
2195
+ "outputs": [],
2196
+ "stateMutability": "nonpayable",
2197
+ "type": "function"
2198
+ },
2199
+ {
2200
+ "inputs": [
2201
+ {
2202
+ "internalType": "address payable",
2203
+ "name": "_renderProviderPrimarySalesAddress",
2204
+ "type": "address"
2205
+ },
2206
+ {
2207
+ "internalType": "address payable",
2208
+ "name": "_renderProviderSecondarySalesAddress",
2209
+ "type": "address"
2210
+ },
2211
+ {
2212
+ "internalType": "address payable",
2213
+ "name": "_platformProviderPrimarySalesAddress",
2214
+ "type": "address"
2215
+ },
2216
+ {
2217
+ "internalType": "address payable",
2218
+ "name": "_platformProviderSecondarySalesAddress",
2219
+ "type": "address"
2220
+ }
2221
+ ],
2222
+ "name": "updateProviderSalesAddresses",
2223
+ "outputs": [],
2224
+ "stateMutability": "nonpayable",
2225
+ "type": "function"
2226
+ },
2227
+ {
2228
+ "inputs": [
2229
+ {
2230
+ "internalType": "uint256",
2231
+ "name": "_renderProviderSecondarySalesBPS",
2232
+ "type": "uint256"
2233
+ },
2234
+ {
2235
+ "internalType": "uint256",
2236
+ "name": "_platformProviderSecondarySalesBPS",
2237
+ "type": "uint256"
2238
+ }
2239
+ ],
2240
+ "name": "updateProviderSecondarySalesBPS",
2241
+ "outputs": [],
2242
+ "stateMutability": "nonpayable",
2243
+ "type": "function"
2244
+ },
2245
+ {
2246
+ "inputs": [
2247
+ {
2248
+ "internalType": "address",
2249
+ "name": "_randomizerAddress",
2250
+ "type": "address"
2251
+ }
2252
+ ],
2253
+ "name": "updateRandomizerAddress",
2254
+ "outputs": [],
2255
+ "stateMutability": "nonpayable",
2256
+ "type": "function"
2257
+ }
2258
+ ],
2259
+ "bytecode": "0x60c06040526c1b995e1d141c9bda9958dd1259609a1b6007557f6e657750726f6a65637473466f7262696464656e0000000000000000000000006008556d64656661756c744261736555524960901b6009557072616e646f6d697a65724164647265737360781b600a557f646570656e64656e637952656769737472794164647265737300000000000000600b557f70726f766964657253616c657341646472657373657300000000000000000000600c557f70726f76696465725072696d61727950657263656e7461676573000000000000600d557f70726f76696465725365636f6e64617279425053000000000000000000000000600e556818dbdb5c1b195d195960ba1b600f556561637469766560d01b6010556c6172746973744164647265737360981b601155651c185d5cd95960d21b6012556618dc99585d195960ca1b601355636e616d6560e01b601455696172746973744e616d6560b01b60155570726f79616c747950657263656e7461676560781b6016556a3232b9b1b934b83a34b7b760a91b601755667765627369746560c81b601855666c6963656e736560c81b6019556d6d6178496e766f636174696f6e7360901b601a55651cd8dc9a5c1d60d21b601b55697363726970745479706560b01b601c556a617370656374526174696f60a81b601d55666261736555524960c81b601e556028805460ff60a01b19908116600560a11b90811790925560298054909116909117905560fa602b819055602d55603180546001600160881b0319167014303132333435363738396162636465661790553480156200025857600080fd5b5060405162006c2938038062006c298339810160408190526200027b9162000908565b888860006200028b838262000a92565b5060016200029a828262000a92565b505050620002b7620002b16200043e60201b60201c565b62000442565b620002c2876200046f565b620002cd866200046f565b620002d8856200046f565b620002e3846200046f565b81151560a0526001600160f81b0383166080526200030487808880620004ce565b6200030f8562000539565b6200031a8462000442565b620003516200032930620005b0565b6040516020016200033b919062000b5e565b60408051601f19818403018152919052620005dc565b602f80547fff00000000000000000000000000000000000000000000000000000000000000166001600160f81b03851617905560075460405160008051602062006c0983398151915290600090a260405163f889b3ed60e01b81523060048201526576332e312e3360d01b60248201527f47656e417274373231436f726556335f456e67696e655f466c6578000000000060448201526001600160a01b0382169063f889b3ed90606401600060405180830381600087803b1580156200041657600080fd5b505af11580156200042b573d6000803e3d6000fd5b5050505050505050505050505062000c26565b3390565b6200044d8162000609565b602280546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116620004cb5760405162461bcd60e51b815260206004820152601b60248201527f4d75737420696e707574206e6f6e2d7a65726f2061646472657373000000000060448201526064015b60405180910390fd5b50565b602980546001600160a01b038085166001600160a01b031992831617909255602c805484841690831617905560288054878416908316179055602a805492861692909116919091179055600c5460405160008051602062006c0983398151915290600090a250505050565b602080546001600160a01b0383166001600160a01b031991821681179092556021805460018101825560009182527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b5700180549092169092179055600a54604051909160008051602062006c0983398151915291a250565b603154606090620005d6906001600160a01b03841690600160801b900460ff166200065b565b92915050565b6030620005ea828262000a92565b5060095460405160008051602062006c0983398151915290600090a250565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b606060006200066c83600262000bc6565b6200067990600262000be0565b6001600160401b038111156200069357620006936200080d565b6040519080825280601f01601f191660200182016040528015620006be576020820181803683370190505b509050600360fc1b81600081518110620006dc57620006dc62000bf6565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106200070e576200070e62000bf6565b60200101906001600160f81b031916908160001a90535060006200073484600262000bc6565b6200074190600162000be0565b90505b6001811115620007b55760315460801b600f8616601081106200076b576200076b62000bf6565b1a60f81b82828151811062000784576200078462000bf6565b60200101906001600160f81b031916908160001a90535060049490941c93620007ad8162000c0c565b905062000744565b508315620008065760405162461bcd60e51b815260206004820152601760248201527f686578206c656e67746820696e73756666696369656e740000000000000000006044820152606401620004c2565b9392505050565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200084057818101518382015260200162000826565b50506000910152565b600082601f8301126200085b57600080fd5b81516001600160401b03808211156200087857620008786200080d565b604051601f8301601f19908116603f01168101908282118183101715620008a357620008a36200080d565b81604052838152866020858801011115620008bd57600080fd5b620008d084602083016020890162000823565b9695505050505050565b80516001600160a01b0381168114620008f257600080fd5b919050565b80518015158114620008f257600080fd5b60008060008060008060008060006101208a8c0312156200092857600080fd5b89516001600160401b03808211156200094057600080fd5b6200094e8d838e0162000849565b9a5060208c01519150808211156200096557600080fd5b50620009748c828d0162000849565b9850506200098560408b01620008da565b96506200099560608b01620008da565b9550620009a560808b01620008da565b9450620009b560a08b01620008da565b60c08b01519094506001600160f81b0381168114620009d357600080fd5b9250620009e360e08b01620008f7565b9150620009f46101008b01620008da565b90509295985092959850929598565b600181811c9082168062000a1857607f821691505b60208210810362000a3957634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000a8d57600081815260208120601f850160051c8101602086101562000a685750805b601f850160051c820191505b8181101562000a895782815560010162000a74565b5050505b505050565b81516001600160401b0381111562000aae5762000aae6200080d565b62000ac68162000abf845462000a03565b8462000a3f565b602080601f83116001811462000afe576000841562000ae55750858301515b600019600386901b1c1916600185901b17855562000a89565b600085815260208120601f198616915b8281101562000b2f5788860151825594840194600190910190840162000b0e565b508582101562000b4e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b7f68747470733a2f2f746f6b656e2e617274626c6f636b732e696f2f000000000081526000825162000b9881601b85016020870162000823565b602f60f81b601b939091019283015250601c01919050565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417620005d657620005d662000bb0565b80820180821115620005d657620005d662000bb0565b634e487b7160e01b600052603260045260246000fd5b60008162000c1e5762000c1e62000bb0565b506000190190565b60805160a051615faf62000c5a60003960008181610c940152611f72015260008181610de401526147ce0152615faf6000f3fe608060405234801561001057600080fd5b506004361061048d5760003560e01c8063715018a611610265578063b7b04fae1161014d578063b7b04fae14610b7a578063b7ba527d14610b8d578063b88d4fde14610b95578063b971136814610ba8578063ba3c234514610bb0578063bb3bafd614610bc3578063bd3d10e714610be4578063c34a03b514610bf7578063c6c7c5bf14610c0a578063c87b56dd14610c1d578063cc90e72514610c30578063d03c390c14610c43578063d50f513814610c56578063db21a84614610c69578063db2ff86114610c7c578063e6032df214610c8f578063e935b7b114610cb6578063e985e9c514610cc7578063eb9cd5d414610cda578063ed8abfda14610cfc578063f2fde38b14610d26578063f313d73314610d39578063f6cd39e314610dcf578063f851a44014610dd7578063f893c07b14610ddf57600080fd5b8063715018a6146108f157806376ee6fab146108f95780638639415b1461090c5780638c3c9cdd146109675780638da5cb5b1461097a5780638dd91a561461098257806392f00233146109a657806395d89b41146109b95780639a02e4fa146109c1578063a11ec70a146109f8578063a22cb46514610a0b578063a3b2cca614610a1e578063a47d29cb14610a31578063abcbb7b414610a5d578063ac11fa1c14610a65578063acad012414610a85578063acd4c66f14610a98578063ad0305ce14610aaa578063ad28329014610acc578063ad2cdfc414610af9578063ad576c4514610b26578063ae45ad9814610b39578063b1656ba314610b41578063b168762214610b54578063b75395e014610b6757600080fd5b806328ec8f501161038857806328ec8f50146106dd5780632b2741661461070a5780632b65e67d1461071d5780632b8258c5146107305780632d9c02051461073957806330ef4c5f1461074c57806336c7c12c1461075e578063378599631461077157806338c8e468146107845780633bb22553146107b05780633e48e848146107b957806341814cd3146107cc57806342842e0e146107df57806348337282146107f25780634e1d64af146108055780635464c3091461080d5780635508fd521461082057806358b9a5a914610834578063621a1f741461086c5780636352211e1461087f5780636689c8de1461089257806366e46237146108a557806369d14faf146108b85780636c907b7f146108cb57806370a08231146108de57600080fd5b80611e3c146104925780615de5146104a75780630132c697146104cd57806301856fd4146104e057806301ffc9a7146104f357806304143a5c1461051657806306fdde031461051e578063081812fc14610533578063095ea7b3146105535780630d170673146105665780630e79c928146105795780630ea5613f1461058c5780630ebeb0ee146105d657806310a9ef18146105ff57806317df5366146106125780631ab6014c146106255780631b689c0b146106385780631c05cad71461064b5780631e9bef461461065e5780632302cbda14610671578063230448b11461068457806323b872dd1461069757806325b75d68146106aa5780632642c6b6146106bd575b600080fd5b6104a56104a0366004614e92565b610e06565b005b6104ba6104b5366004614ec9565b610f37565b6040519081526020015b60405180910390f35b6104a56104db366004614f0b565b6111db565b6104a56104ee366004614e92565b6112f9565b610506610501366004614f59565b6113a1565b60405190151581526020016104c4565b6104a56113cc565b610526611437565b6040516104c49190614fcd565b610546610541366004614fe0565b6114c9565b6040516104c49190614ff9565b6104a561056136600461500d565b6114f0565b6104a5610574366004615104565b611605565b6104a5610587366004615104565b611664565b61059f61059a366004614fe0565b611853565b60408051968752602087019590955292151593850193909352151560608401526080830191909152151560a082015260c0016104c4565b6105466105e4366004614fe0565b6000908152602660205260409020546001600160a01b031690565b6104a561060d36600461515e565b6118b6565b601f54610546906001600160a01b031681565b602954610546906001600160a01b031681565b6104ba610646366004614fe0565b611a85565b6104a56106593660046151be565b611a94565b602254610546906001600160a01b031681565b6104a561067f36600461521a565b611ad7565b61050661069236600461524e565b611aff565b6104a56106a536600461528e565b611b9f565b6104a56106b8366004615104565b611bd0565b6106d06106cb366004614e92565b611c2f565b6040516104c49190615307565b6104ba6106eb366004614fe0565b600090815260266020526040902060010154600160a01b900460ff1690565b6104a5610718366004615368565b611da5565b6104a561072b366004615385565b611df9565b6104ba602d5481565b610526610747366004614fe0565b61215f565b602954600160a01b900460ff166104ba565b602054610546906001600160a01b031681565b6104a561077f366004615104565b612204565b610546610792366004614fe0565b6000908152602660205260409020600101546001600160a01b031690565b6104ba602b5481565b6104a56107c7366004615104565b612251565b602a54610546906001600160a01b031681565b6104a56107ed36600461528e565b6122a7565b6104a5610800366004615368565b6122c2565b610526612328565b6104a561081b3660046153ec565b612341565b602f5461050690600160f81b900460ff1681565b610546610842366004614e92565b6000918252602360209081526040808420928452600990920190529020546001600160a01b031690565b6104ba61087a366004614fe0565b6123a2565b61054661088d366004614fe0565b612404565b6105066108a036600461545d565b612439565b6104a56108b33660046154ae565b6124d8565b6104a56108c6366004615504565b61268d565b6104a56108d9366004615368565b6126fa565b6104ba6108ec366004615368565b61271f565b6104a56127a5565b6104a5610907366004615385565b6127bd565b61091f61091a366004614e92565b612985565b604080519889526001600160a01b0397881660208a015288019590955292851660608701526080860191909152831660a085015260c08401521660e0820152610100016104c4565b610526610975366004614e92565b612a8e565b610546612aed565b610995610990366004614fe0565b612b01565b6040516104c4959493929190615529565b602e54610546906001600160a01b031681565b610526612df5565b6109eb6109cf366004614fe0565b600090815260026020526040902054600160a01b900460a01b90565b6040516104c49190615596565b6104a5610a06366004614fe0565b612e04565b6104a5610a193660046155b9565b612e57565b6104a5610a2c366004615104565b612e66565b610546610a3f366004614fe0565b6000908152602660205260409020600201546001600160a01b031690565b610526612f3a565b6104ba610a73366004614fe0565b60276020526000908152604090205481565b6104a5610a93366004615104565b612fc8565b602854600160a01b900460ff166104ba565b610506610ab8366004615368565b602e546001600160a01b0390811691161490565b6104ba610ada366004614fe0565b6000908152602360205260409020600a0154610100900462ffffff1690565b6104ba610b07366004614fe0565b600090815260266020526040902060020154600160a01b900460ff1690565b6104a5610b34366004614e92565b613093565b61052661321e565b6104a5610b4f3660046155e7565b613247565b610546610b62366004614fe0565b613323565b602854610546906001600160a01b031681565b6104a5610b88366004615104565b61339b565b6105266133fa565b6104a5610ba3366004615636565b613407565b6021546104ba565b6104a5610bbe366004614fe0565b613439565b610bd6610bd1366004614fe0565b613499565b6040516104c49291906156b5565b6104a5610bf2366004614e92565b61372d565b6104a5610c05366004614e92565b6137e0565b602c54610546906001600160a01b031681565b610526610c2b366004614fe0565b613879565b6104a5610c3e366004615739565b613961565b6104a5610c51366004614fe0565b613a9d565b6104a5610c643660046153ec565b613b01565b6104a5610c77366004614e92565b613b29565b6104a5610c8a366004614fe0565b613bb5565b6105067f000000000000000000000000000000000000000000000000000000000000000081565b602f546001600160f81b03166104ba565b610506610cd536600461577f565b613cbd565b610ced610ce8366004614fe0565b613ceb565b6040516104c4939291906157ad565b6104ba610d0a366004614fe0565b600090815260266020526040902054600160a01b900460ff1690565b6104a5610d34366004615368565b613db7565b610d91610d47366004614fe0565b6000908152602660205260409020600281015481546001909201546001600160a01b03808316948482169460ff600160a01b95869004811695938516948490048116939091041690565b604080516001600160a01b039788168152958716602087015285019390935293166060830152608082019290925260a081019190915260c0016104c4565b610526613e2d565b610546613e3a565b6104ba7f000000000000000000000000000000000000000000000000000000000000000081565b610e0f82613e44565b600082815260026020908152604090912090546001600160a01b03163314610e785760405162461bcd60e51b815260206004820152601760248201527613db9b1e481c985b991bdb5a5e995c881b585e481cd95d604a1b60448201526064015b60405180910390fd5b8054600160a01b900460a01b6001600160a01b03191615610ed45760405162461bcd60e51b8152602060048201526016602482015275151bdad95b881a185cda08185b1c9958591e481cd95d60521b6044820152606401610e6f565b81610f155760405162461bcd60e51b8152602060048201526011602482015270139bc81e995c9bc81a185cda081cd95959607a1b6044820152606401610e6f565b805460a09290921c600160a01b026001600160a01b0390921691909117905550565b602e546000906001600160a01b03163314610f945760405162461bcd60e51b815260206004820152601e60248201527f4d757374206d696e742066726f6d206d696e74657220636f6e747261637400006044820152606401610e6f565b6000838152602360205260409020805462ffffff8082169160018301916301000000909104168083106110095760405162461bcd60e51b815260206004820152601f60248201527f4d757374206e6f7420657863656564206d617820696e766f636174696f6e73006044820152606401610e6f565b8354600160881b900460ff168061103c57506000878152602660205260409020600201546001600160a01b038781169116145b6110885760405162461bcd60e51b815260206004820181905260248201527f50726f6a656374206d75737420657869737420616e64206265206163746976656044820152606401610e6f565b8354600160901b900460ff1615806110bc57506000878152602660205260409020600201546001600160a01b038781169116145b6111005760405162461bcd60e51b8152602060048201526015602482015274283ab931b430b9b2b99030b932903830bab9b2b21760591b6044820152606401610e6f565b835462ffffff191662ffffff8381169182178655848116620f42408a02019190831690036111315761113188613e93565b61113b8982613ee3565b602054604051635b140b8d60e11b8152600481018390526001600160a01b039091169063b628171a90602401600060405180830381600087803b15801561118157600080fd5b505af1158015611195573d6000803e3d6000fd5b50506040518392506001600160a01b038c1691507f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688590600090a398975050505050505050565b6111ec82630132c69760e01b614015565b6000828152602360205260409020805462ffffff808216916301000000900481169084161061125c5760405162461bcd60e51b815260206004820152601c60248201527b4f6e6c79206d6178496e766f636174696f6e7320646563726561736560201b6044820152606401610e6f565b808362ffffff1610156112a85760405162461bcd60e51b81526020600482015260146024820152734f6e6c792067746520696e766f636174696f6e7360601b6044820152606401610e6f565b815465ffffff0000001916630100000062ffffff851602178255601a546040518590600080516020615f5a83398151915290600090a3808362ffffff16036112f3576112f384613e93565b50505050565b61130282614090565b6113128262615bf560e21b614015565b600082815260236020526040908190209061133090839060016140d8565b6113795760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610e6f565b60078101829055601c546040518490600080516020615f5a83398151915290600090a3505050565b60006001600160e01b03198216635d9dd7eb60e11b14806113c657506113c68261414b565b92915050565b6113df6301050e9760e21b60001961419b565b602f54600160f81b900460ff161561142d5760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903337b93134b23232b760791b6044820152606401610e6f565b6114356141ec565b565b606060008054611446906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611472906157e3565b80156114bf5780601f10611494576101008083540402835291602001916114bf565b820191906000526020600020905b8154815290600101906020018083116114a257829003601f168201915b5050505050905090565b60006114d48261422e565b506000908152600460205260409020546001600160a01b031690565b60006114fb82612404565b9050806001600160a01b0316836001600160a01b0316036115685760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610e6f565b336001600160a01b038216148061158457506115848133613cbd565b6115f65760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610e6f565b6116008383614253565b505050565b61160e82614090565b61161f82630d17067360e01b614015565b611628816142c1565b6000828152602360205260409020600101611643828261587a565b506014546040518390600080516020615f5a83398151915290600090a35050565b61166d82614090565b61167e826301cf392560e31b614015565b611687816142c1565b80518190600b8111156116db5760405162461bcd60e51b815260206004820152601c60248201527b41737065637420726174696f20666f726d617420746f6f206c6f6e6760201b6044820152606401610e6f565b60008060005b838110156117c75760008582815181106116fd576116fd615933565b01602001516001600160f81b0319169050600360fc1b81108015906117305750603960f81b6001600160f81b0319821611155b1561173f5760019250506117b5565b6001600160f81b03198116601760f91b0361176357836117635760019350506117b5565b60405162461bcd60e51b815260206004820152602160248201527f496d70726f7065726c7920666f726d61747465642061737065637420726174696044820152606f60f81b6064820152608401610e6f565b806117bf8161595f565b9150506116e1565b50806118135760405162461bcd60e51b815260206004820152601b60248201527a41737065637420726174696f20686173206e6f206e756d6265727360281b6044820152606401610e6f565b600086815260236020526040902060080161182e868261587a565b50601d546040518790600080516020615f5a83398151915290600090a3505050505050565b6000818152602360205260408120805462ffffff808216936301000000830490911692600160881b830460ff90811693600160901b810490911692600160481b9091046001600160401b0316916118a988614310565b1591505091939550919395565b6118bf8461435a565b6118d0846302153de360e31b614015565b6000848152602360205260409020600a0154610100900462ffffff1680841061190b5760405162461bcd60e51b8152600401610e6f90615978565b6000858152602360209081526040808320878452600b0190915290206001808201805460ff81169286929160ff19169083600281111561194d5761194d6152cf565b02179055506002846002811115611966576119666152cf565b03611a1757600281600281111561197f5761197f6152cf565b146119b857604080516020808201835260008083528a8152602382528381208a8252600b0190915291909120906119b6908261587a565b505b6119c1856143bb565b60008881526023602090815260408083208a8452600b01825280832060010180546001600160a01b039590951661010002610100600160a81b031990951694909417909355825190810190925281529450611a3f565b6000878152602360209081526040808320898452600b019091529020611a3d868261587a565b505b85877f1628bf0d5f04426de03959d1da1357d8210b3b99e35281256ab7e9bd55dae949878787604051611a74939291906159aa565b60405180910390a350505050505050565b60006113c6620f4240836159f5565b611aa7631c05cad760e01b60001961419b565b611ab08461446b565b611ab98361446b565b611ac28261446b565b611acb8161446b565b6112f3848484846144bf565b611aea63118165ed60e11b60001961419b565b611af3816142c1565b611afc81614529565b50565b600080611b0a612aed565b6001600160a01b031614158015611b97575060225460405163a8c4c7d360e01b81526001600160a01b039091169063a8c4c7d390611b549087908790879060001990600401615a09565b6020604051808303816000875af1158015611b73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b979190615a3c565b949350505050565b611ba93382614553565b611bc55760405162461bcd60e51b8152600401610e6f90615a59565b6116008383836145b1565b611bd982614090565b611bea826304b6ebad60e31b614015565b611bf3816142c1565b6000828152602360205260409020600501611c0e828261587a565b506019546040518390600080516020615f5a83398151915290600090a35050565b611c5b604080516080810190915260608152602081016000815260006020820152606060409091015290565b6000838152602360209081526040808320858452600b01909152908190206001810154825160808101909352815491926101009091046001600160a01b03169181908490611ca8906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd4906157e3565b8015611d215780601f10611cf657610100808354040283529160200191611d21565b820191906000526020600020905b815481529060010190602001808311611d0457829003601f168201915b5050509183525050600184015460209091019060ff166002811115611d4857611d486152cf565b81526001600160a01b03831660208201526040016002600185015460ff166002811115611d7757611d776152cf565b14611d915760405180602001604052806000815250611d9a565b611d9a8361474d565b905295945050505050565b611db8631593a0b360e11b60001961419b565b611dc18161446b565b601f80546001600160a01b0319166001600160a01b038316179055600b54604051600080516020615f3a83398151915290600090a250565b611e02866147cc565b611e0b8661484e565b611e148561446b565b600086815260266020526040902060648411801590611e34575060648211155b611e6e5760405162461bcd60e51b815260206004820152600b60248201526a4d6178206f66203130302560a81b6044820152606401610e6f565b831580611e8357506001600160a01b03851615155b611ecf5760405162461bcd60e51b815260206004820152601d60248201527f5072696d617279207061796565206973207a65726f20616464726573730000006044820152606401610e6f565b811580611ee457506001600160a01b03831615155b611f305760405162461bcd60e51b815260206004820152601f60248201527f5365636f6e64617279207061796565206973207a65726f2061646472657373006044820152606401610e6f565b867f6ff7d102bb3657a26dcbbcd299d821a066718a7cf76ae7cd98279f18b74da8ac8787878787604051611f68959493929190615aa7565b60405180910390a27f00000000000000000000000000000000000000000000000000000000000000008061200e57600282015482546001600160a01b03918216898316149160009181169089161480611fc857506001600160a01b038816155b60018501549091506000906001600160a01b0388811691161480611ff357506001600160a01b038716155b9050828015611fff5750815b80156120085750805b93505050505b8015612116576000801b602760008a815260200190815260200160002081905550868260020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550858260000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550848260020160146101000a81548160ff021916908360ff160217905550838260010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550828260010160146101000a81548160ff021916908360ff160217905550877fc582d05e1da854143bd3271ef4529d79cf5a69fc6057ae320f357acfd291b73860405160405180910390a2612155565b868686868660405160200161212f959493929190615aa7565b60408051601f19818403018152918152815160209283012060008b815260279093529120555b5050505050505050565b600081815260236020526040902060060180546060919061217f906157e3565b80601f01602080910402602001604051908101604052809291908181526020018280546121ab906157e3565b80156121f85780601f106121cd576101008083540402835291602001916121f8565b820191906000526020600020905b8154815290600101906020018083116121db57829003601f168201915b50505050509050919050565b61221582633785996360e01b614015565b6000828152602360205260409020600401612230828261587a565b506018546040518390600080516020615f5a83398151915290600090a35050565b612262826307c91d0960e31b614015565b61226b816142c1565b6000828152602360205260409020600601612286828261587a565b50601e546040518390600080516020615f5a83398151915290600090a35050565b61160083838360405180602001604052806000815250613407565b6122d5632419b94160e11b60001961419b565b6122de8161446b565b602e80546001600160a01b0319166001600160a01b0383169081179091556040517fad0f299ec81a386c98df0ac27dae11dd020ed1b56963c53a7292e7a3a314539a90600090a250565b606061233c6576332e312e3360d01b6148a5565b905090565b612354635464c30960e01b60001961419b565b6025612361828483615ada565b5060015b7f897675a9bb2e78c7082f6dd757f2db5e1d07724c1f2d46fea1da4e17e5061afd8383604051612396929190615b94565b60405180910390a25050565b600081815260026020526040812054600160a01b900460a01b6001600160a01b0319811682036123d55750600092915050565b806040516020016123e69190615596565b60405160208183030381529060405280519060200120915050919050565b6000818152600260205260408120546001600160a01b0316806113c65760405162461bcd60e51b8152600401610e6f90615bc3565b600080612444612aed565b6001600160a01b0316141580156124cf575060225460405163a8c4c7d360e01b81526001600160a01b039091169063a8c4c7d39061248c908890889088908890600401615a09565b6020604051808303816000875af11580156124ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124cf9190615a3c565b95945050505050565b6124e18361435a565b6124f2836366e4623760e01b614015565b6000838152602360205260408120600a0154610100900462ffffff16906002836002811115612523576125236152cf565b0361254657612531846143bb565b90506040518060200160405280600081525093505b6000604051806060016040528086815260200185600281111561256b5761256b6152cf565b81526001600160a01b038416602091820152600088815260238252604080822062ffffff88168352600b01909252208151919250829181906125ad908261587a565b50602082015160018083018054909160ff19909116908360028111156125d5576125d56152cf565b021790555060409190910151600191820180546001600160a01b0390921661010002610100600160a81b0319909216919091179055612615908490615bf5565b6000878152602360205260409020600a01805463ffffff00191661010062ffffff938416021790558316867f1628bf0d5f04426de03959d1da1357d8210b3b99e35281256ab7e9bd55dae949878761266e886001615bf5565b60405161267d939291906159aa565b60405180910390a3505050505050565b612696826147cc565b6126a7826369d14faf60e01b614910565b6126b08161446b565b60008281526026602052604080822060020180546001600160a01b0319166001600160a01b038516179055601154905190918491600080516020615f5a8339815191529190a35050565b61270d636c907b7f60e01b60001961419b565b6127168161446b565b611afc816149c8565b60006001600160a01b0382166127895760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610e6f565b506001600160a01b031660009081526003602052604090205490565b6127ad614a3e565b6127b56141ec565b611435614a9d565b6127c6866147cc565b6127d7866376ee6fab60e01b614910565b6127e08561446b565b84848484846040516020016127f9959493929190615aa7565b60408051601f19818403018152918152815160209283012060008981526027909352912054146128685760405162461bcd60e51b815260206004820152601a602482015279135d5cdd081b585d18da08185c9d1a5cdd081c1c9bdc1bdcd85b60321b6044820152606401610e6f565b6000602660008881526020019081526020016000209050858160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550848160000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550838160020160146101000a81548160ff021916908360ff160217905550828160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818160010160146101000a81548160ff021916908360ff1602179055506000801b6027600089815260200190815260200160002081905550867fc582d05e1da854143bd3271ef4529d79cf5a69fc6057ae320f357acfd291b73860405160405180910390a250505050505050565b60008281526026602052604081206028548291829182918291829182918291908a906064906129be90600160a01b900460ff1683615c18565b6129c891906159f5565b99506129d48a82615c2f565b6029549091506064906129f190600160a01b900460ff168d615c18565b6129fb91906159f5565b9750612a078882615c2f565b6002830154909150606490612a2690600160a01b900460ff1683615c18565b612a3091906159f5565b9350612a3c8482615c2f565b6028546029546001600160a01b039182169b5016975095508515612a6b5760028201546001600160a01b031694505b8315612a7f5781546001600160a01b031692505b50509295985092959890939650565b6000828152602360205260409020805460609190600160301b900462ffffff168310612aca5750506040805160208101909152600081526113c6565b6000838152600982016020526040902054611b97906001600160a01b031661474d565b600061233c6006546001600160a01b031690565b60608060608060606000602360008881526020019081526020016000209050806001018054612b2f906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612b5b906157e3565b8015612ba85780601f10612b7d57610100808354040283529160200191612ba8565b820191906000526020600020905b815481529060010190602001808311612b8b57829003601f168201915b50505050509550806002018054612bbe906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612bea906157e3565b8015612c375780601f10612c0c57610100808354040283529160200191612c37565b820191906000526020600020905b815481529060010190602001808311612c1a57829003601f168201915b50505050509450806003018054612c4d906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612c79906157e3565b8015612cc65780601f10612c9b57610100808354040283529160200191612cc6565b820191906000526020600020905b815481529060010190602001808311612ca957829003601f168201915b50505050509350806004018054612cdc906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612d08906157e3565b8015612d555780601f10612d2a57610100808354040283529160200191612d55565b820191906000526020600020905b815481529060010190602001808311612d3857829003601f168201915b50505050509250806005018054612d6b906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612d97906157e3565b8015612de45780601f10612db957610100808354040283529160200191612de4565b820191906000526020600020905b815481529060010190602001808311612dc757829003601f168201915b505050505091505091939590929450565b606060018054611446906157e3565b612e0d8161484e565b600081815260236020526040808220805460ff60901b198116600160901b9182900460ff1615909102179055601254905190918391600080516020615f5a8339815191529190a350565b612e62338383614aaf565b5050565b612e6f82614310565b15612e8a57612e85826351d9665360e11b614015565b612efe565b612e9d33306351d9665360e11b85612439565b612efe5760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920617274697374207768656e20756e6c6f636b65642c206f776e657260448201526b081dda195b881b1bd8dad95960a21b6064820152608401610e6f565b6000828152602360205260409020600301612f19828261587a565b506017546040518390600080516020615f5a83398151915290600090a35050565b60308054612f47906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612f73906157e3565b8015612fc05780601f10612f9557610100808354040283529160200191612fc0565b820191906000526020600020905b815481529060010190602001808311612fa357829003601f168201915b505050505081565b612fd182614090565b612fe282632b2b404960e21b614015565b612feb816142c1565b6000828152602360205260409020613002826143bb565b8154600160301b9081900462ffffff9081166000908152600985016020526040902080546001600160a01b0319166001600160a01b039490941693909317909255825461305492919004166001615bf5565b815462ffffff91909116600160301b0262ffffff60301b19909116178155601b546040518490600080516020615f5a83398151915290600090a3505050565b61309c8261435a565b6130ad8263ad576c4560e01b614015565b6000828152602360205260409020600a0154610100900462ffffff168082106130e85760405162461bcd60e51b8152600401610e6f90615978565b60006130f5600183615c42565b600085815260236020908152604080832062ffffff85168452600b019091528082208683529120919250908061312b8382615c5e565b50600182810154828201805460ff90921692909160ff191690836002811115613156576131566152cf565b021790555060019182015491018054610100600160a81b031916610100928390046001600160a01b0316909202919091179055600084815260236020908152604080832062ffffff85168452600b019091528120906131b58282614e44565b5060010180546001600160a81b0319169055600084815260236020526040808220600a01805463ffffff00191661010062ffffff86160217905551849186917fa2290757ebb75dea327ace340daae74c1ac76aca04f6fd163fbf5b87e6d707599190a350505050565b606061233c7a08ecadc82e4e86e646286dee4caac66be8adcced2dccabe8cd8caf602b1b6148a5565b61325083614090565b6132618363b1656ba360e01b614015565b61326a816142c1565b60008381526023602052604090208054600160301b900462ffffff1683106132cc5760405162461bcd60e51b81526020600482015260156024820152747363726970744964206f7574206f662072616e676560581b6044820152606401610e6f565b6132d5826143bb565b600084815260098301602052604080822080546001600160a01b0319166001600160a01b039490941693909317909255601b5491518691600080516020615f5a83398151915291a350505050565b602154600090821061336d5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610e6f565b6021828154811061338057613380615933565b6000918252602090912001546001600160a01b031692915050565b6133a482614090565b6133b582635bd827d760e11b614015565b6133be816142c1565b60008281526023602052604090206002016133d9828261587a565b506015546040518390600080516020615f5a83398151915290600090a35050565b60258054612f47906157e3565b6134113383614553565b61342d5760405162461bcd60e51b8152600401610e6f90615a59565b6112f384848484614b79565b6134428161435a565b6134538163ba3c234560e01b614015565b600081815260236020526040808220600a01805460ff191660011790555182917fcbd4f9053ca1f820efad7731ae6c938613bfef183ee6f03f61cc8d4ab583f5dc91a250565b6060806134a583613e44565b60408051600480825260a082019092529060208201608080368337505060408051600480825260a0820190925292945090506020820160808036833701905050905060006134f284611a85565b600081815260266020526040812080546001820154939450909260ff600160a01b928390048116939290910416908261352c836064615c2f565b6135369190615c18565b905060006135448484615c18565b602b54602d5491925090600084156135be5760028801548b516001600160a01b03909116908c908390811061357b5761357b615933565b6001600160a01b0390921660209283029190910190910152848a8261359f8161595f565b9350815181106135b1576135b1615933565b6020026020010181815250505b831561362c5760018801548b516001600160a01b03909116908c90839081106135e9576135e9615933565b6001600160a01b0390921660209283029190910190910152838a8261360d8161595f565b93508151811061361f5761361f615933565b6020026020010181815250505b821561369857602a548b516001600160a01b03909116908c908390811061365557613655615933565b6001600160a01b0390921660209283029190910190910152828a826136798161595f565b93508151811061368b5761368b615933565b6020026020010181815250505b811561370457602c548b516001600160a01b03909116908c90839081106136c1576136c1615933565b6001600160a01b0390921660209283029190910190910152818a826136e58161595f565b9350815181106136f7576136f7615933565b6020026020010181815250505b806004111561371f5780600403808c51038c52808b51038b52505b505050505050505050915091565b61374063bd3d10e760e01b60001961419b565b606461374c8284615d2a565b11156137955760405162461bcd60e51b81526020600482015260186024820152774d61782073756d206f66204f4e455f48554e44524544202560401b6044820152606401610e6f565b6028805460ff808516600160a01b90810260ff60a01b1993841617909355602980549185169093029116179055600d54604051600080516020615f3a83398151915290600090a25050565b6137f18263c34a03b560e01b614015565b605f8111156138355760405162461bcd60e51b815260206004820152601060248201526f13dd995c881b585e081c195c98d95b9d60821b6044820152606401610e6f565b600082815260266020526040808220805460ff60a01b1916600160a01b60ff861602179055601654905190918491600080516020615f5a8339815191529190a35050565b606061388482613e44565b60006023600061389385611a85565b815260200190815260200160002060060180546138af906157e3565b80601f01602080910402602001604051908101604052809291908181526020018280546138db906157e3565b80156139285780601f106138fd57610100808354040283529160200191613928565b820191906000526020600020905b81548152906001019060200180831161390b57829003601f168201915b505050505090508061393984614bac565b60405160200161394a929190615d3d565b604051602081830303815290604052915050919050565b61396a826142c1565b6139738161446b565b602f54600160f81b900460ff16156139c65760405162461bcd60e51b81526020600482015260166024820152752732bb90383937b532b1ba39903337b93134b23232b760511b6044820152606401610e6f565b602f546001600160f81b0316600081815260266020908152604080832060020180546001600160a01b0319166001600160a01b03871617905560239091529020600101613a13848261587a565b506000818152602360205260409020805465ffffff00000060ff60901b011916613d09601e1b600160901b01178155600601613a50603082615c5e565b50613a5c816001615d6c565b602f80546001600160f81b0319166001600160f81b03929092169190911790556013546040518290600080516020615f5a83398151915290600090a3505050565b613aae63340f0e4360e21b8261419b565b613ab7816147cc565b600081815260236020526040808220805460ff60881b198116600160881b9182900460ff1615909102179055601054905190918391600080516020615f5a8339815191529190a350565b613b14631aa1ea2760e31b60001961419b565b6024613b21828483615ada565b506000612365565b613b3c636d90d42360e11b60001961419b565b612710613b498284615d2a565b1115613b8d5760405162461bcd60e51b81526020600482015260136024820152724f766572206d61782073756d206f662042505360681b6044820152606401610e6f565b602b829055602d819055600e54604051600080516020615f3a83398151915290600090a25050565b613bbe81614090565b613bcf8163db2ff86160e01b614015565b60008181526023602052604090208054600160301b900462ffffff16613c2e5760405162461bcd60e51b81526020600482015260146024820152734e6f207363726970747320746f2072656d6f766560601b6044820152606401610e6f565b80546009820190600090613c5090600190600160301b900462ffffff16615c42565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b0319169055835462ffffff60301b198116600160301b9182900485166000190190941602929092178355601b54905190918491600080516020615f5a8339815191529190a35050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152602360205260408120600781015460609283929091613d0e906148a5565b9350806008018054613d1f906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054613d4b906157e3565b8015613d985780601f10613d6d57610100808354040283529160200191613d98565b820191906000526020600020905b815481529060010190602001808311613d7b57829003601f168201915b5050935496989297505050600160301b90940462ffffff169392505050565b613dbf614a3e565b6001600160a01b038116613e245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e6f565b611afc81614cac565b60248054612f47906157e3565b600061233c612aed565b613e4d81614cd7565b611afc5760405162461bcd60e51b8152602060048201526017602482015276151bdad95b88125108191bd95cc81b9bdd08195e1a5cdd604a1b6044820152606401610e6f565b600081815260236020526040808220805467ffffffffffffffff60481b1916600160481b426001600160401b031602179055600f54905190918391600080516020615f5a8339815191529190a350565b6001600160a01b038216613f395760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610e6f565b613f4281614cd7565b15613f8e5760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610e6f565b6001600160a01b0382166000908152600360205260408120805460019290613fb7908490615d2a565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000828152602660205260409020600201546001600160a01b0316331480614044575061404433308385612439565b612e625760405162461bcd60e51b815260206004820181905260248201527f4f6e6c7920617274697374206f722041646d696e2041434c20616c6c6f7765646044820152606401610e6f565b61409981614310565b611afc5760405162461bcd60e51b815260206004820152601060248201526f13db9b1e481a59881d5b9b1bd8dad95960821b6044820152606401610e6f565b600080805b60208160ff161015614137576000868260ff166020811061410057614100615933565b1a90508015801590614115575060808160ff16105b1561412e578560ff168160ff160361412e578260010192505b506001016140dd565b8360ff168260ff1614925050509392505050565b60006001600160e01b031982166380ac58cd60e01b148061417c57506001600160e01b03198216635b5e139f60e01b145b806113c657506301ffc9a760e01b6001600160e01b03198316146113c6565b6141a733308484612439565b612e625760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610e6f565b602f54600160f81b900460ff1661143557602f80546001600160f81b0316600160f81b179055600854604051600080516020615f3a83398151915290600090a2565b61423781614cd7565b611afc5760405162461bcd60e51b8152600401610e6f90615bc3565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061428882612404565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b8051600003611afc5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610e6f565b600061431b826147cc565b600082815260236020526040902054600160481b90046001600160401b031680158080611b9757506224ea006143518342615c2f565b10949350505050565b6000818152602360205260409020600a015460ff1615611afc5760405162461bcd60e51b815260206004820152601c60248201527b115e1d195c9b985b0819195c195b99195b98da595cc81b1bd8dad95960221b6044820152606401610e6f565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f2030846040516020016143f393929190615d8c565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166144655760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610e6f565b50919050565b6001600160a01b038116611afc5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610e6f565b602980546001600160a01b038085166001600160a01b031992831617909255602c805484841690831617905560288054878416908316179055602a805492861692909116919091179055600c54604051600080516020615f3a83398151915290600090a250505050565b6030614535828261587a565b50600954604051600080516020615f3a83398151915290600090a250565b60008061455f83612404565b9050806001600160a01b0316846001600160a01b0316148061458657506145868185613cbd565b80611b975750836001600160a01b031661459f846114c9565b6001600160a01b031614949350505050565b826001600160a01b03166145c482612404565b6001600160a01b0316146146285760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610e6f565b6001600160a01b03821661468a5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610e6f565b614695600082614253565b6001600160a01b03831660009081526003602052604081208054600192906146be908490615c2f565b90915550506001600160a01b03821660009081526003602052604081208054600192906146ec908490615d2a565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b604051630eacc5e760e31b815260609073__$f5e9d4569caf27524ac52628f2516ab106$__906375662f3890614787908590600401614ff9565b600060405180830381865af41580156147a4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113c69190810190615ded565b7f000000000000000000000000000000000000000000000000000000000000000081101580156148065750602f546001600160f81b031681105b611afc5760405162461bcd60e51b8152602060048201526019602482015278141c9bda9958dd08125108191bd95cc81b9bdd08195e1a5cdd603a1b6044820152606401610e6f565b6000818152602660205260409020600201546001600160a01b03163314611afc5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48185c9d1a5cdd60aa1b6044820152606401610e6f565b606060005b828160ff16602081106148bf576148bf615933565b1a60f81b6001600160f81b031916158015906148de575060208160ff16105b156148f557806148ed81615e5a565b9150506148aa565b60405191506040820160405280825282602083015250919050565b61491c33308385612439565b8061495b5750600061492c612aed565b6001600160a01b031614801561495b57506000828152602660205260409020600201546001600160a01b031633145b612e625760405162461bcd60e51b815260206004820152603860248201527f4f6e6c792041646d696e2041434c20616c6c6f7765642c206f722061727469736044820152771d081a59881bdddb995c881a185cc81c995b9bdd5b98d95960421b6064820152608401610e6f565b602080546001600160a01b0383166001600160a01b031991821681179092556021805460018101825560009182527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b5700180549092169092179055600a546040519091600080516020615f3a83398151915291a250565b33614a47612aed565b6001600160a01b0316146114355760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e6f565b614aa5614a3e565b6114356000614cac565b816001600160a01b0316836001600160a01b031603614b0c5760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610e6f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b614b848484846145b1565b614b9084848484614cf4565b6112f35760405162461bcd60e51b8152600401610e6f90615e79565b606081600003614bd35750506040805180820190915260018152600360fc1b602082015290565b8160005b8115614bfd5780614be78161595f565b9150614bf69050600a836159f5565b9150614bd7565b6000816001600160401b03811115614c1757614c17615039565b6040519080825280601f01601f191660200182016040528015614c41576020820181803683370190505b5090505b8415611b9757614c56600183615c2f565b9150614c63600a86615ecb565b614c6e906030615d2a565b60f81b818381518110614c8357614c83615933565b60200101906001600160f81b031916908160001a905350614ca5600a866159f5565b9450614c45565b614cb581614df2565b602280546001600160a01b0319166001600160a01b0392909216919091179055565b6000908152600260205260409020546001600160a01b0316151590565b60006001600160a01b0384163b15614dea57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290614d38903390899088908890600401615edf565b6020604051808303816000875af1925050508015614d73575060408051601f3d908101601f19168201909252614d7091810190615f1c565b60015b614dd0573d808015614da1576040519150601f19603f3d011682016040523d82523d6000602084013e614da6565b606091505b508051600003614dc85760405162461bcd60e51b8152600401610e6f90615e79565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611b97565b506001611b97565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b508054614e50906157e3565b6000825580601f10614e60575050565b601f016020900490600052602060002090810190611afc91905b80821115614e8e5760008155600101614e7a565b5090565b60008060408385031215614ea557600080fd5b50508035926020909101359150565b6001600160a01b0381168114611afc57600080fd5b600080600060608486031215614ede57600080fd5b8335614ee981614eb4565b9250602084013591506040840135614f0081614eb4565b809150509250925092565b60008060408385031215614f1e57600080fd5b82359150602083013562ffffff81168114614f3857600080fd5b809150509250929050565b6001600160e01b031981168114611afc57600080fd5b600060208284031215614f6b57600080fd5b8135614f7681614f43565b9392505050565b60005b83811015614f98578181015183820152602001614f80565b50506000910152565b60008151808452614fb9816020860160208601614f7d565b601f01601f19169290920160200192915050565b602081526000614f766020830184614fa1565b600060208284031215614ff257600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6000806040838503121561502057600080fd5b823561502b81614eb4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561507757615077615039565b604052919050565b60006001600160401b0382111561509857615098615039565b50601f01601f191660200190565b60006150b96150b48461507f565b61504f565b90508281528383830111156150cd57600080fd5b828260208301376000602084830101529392505050565b600082601f8301126150f557600080fd5b614f76838335602085016150a6565b6000806040838503121561511757600080fd5b8235915060208301356001600160401b0381111561513457600080fd5b615140858286016150e4565b9150509250929050565b80356003811061515957600080fd5b919050565b6000806000806080858703121561517457600080fd5b843593506020850135925060408501356001600160401b0381111561519857600080fd5b6151a4878288016150e4565b9250506151b36060860161514a565b905092959194509250565b600080600080608085870312156151d457600080fd5b84356151df81614eb4565b935060208501356151ef81614eb4565b925060408501356151ff81614eb4565b9150606085013561520f81614eb4565b939692955090935050565b60006020828403121561522c57600080fd5b81356001600160401b0381111561524257600080fd5b611b97848285016150e4565b60008060006060848603121561526357600080fd5b833561526e81614eb4565b9250602084013561527e81614eb4565b91506040840135614f0081614f43565b6000806000606084860312156152a357600080fd5b83356152ae81614eb4565b925060208401356152be81614eb4565b929592945050506040919091013590565b634e487b7160e01b600052602160045260246000fd5b6003811061530357634e487b7160e01b600052602160045260246000fd5b9052565b60208152600082516080602084015261532360a0840182614fa1565b9050602084015161533760408501826152e5565b5060408401516001600160a01b0316606084810191909152840151838203601f190160808501526124cf8282614fa1565b60006020828403121561537a57600080fd5b8135614f7681614eb4565b60008060008060008060c0878903121561539e57600080fd5b8635955060208701356153b081614eb4565b945060408701356153c081614eb4565b93506060870135925060808701356153d781614eb4565b8092505060a087013590509295509295509295565b600080602083850312156153ff57600080fd5b82356001600160401b038082111561541657600080fd5b818501915085601f83011261542a57600080fd5b81358181111561543957600080fd5b86602082850101111561544b57600080fd5b60209290920196919550909350505050565b6000806000806080858703121561547357600080fd5b843561547e81614eb4565b9350602085013561548e81614eb4565b9250604085013561549e81614f43565b9396929550929360600135925050565b6000806000606084860312156154c357600080fd5b8335925060208401356001600160401b038111156154e057600080fd5b6154ec868287016150e4565b9250506154fb6040850161514a565b90509250925092565b6000806040838503121561551757600080fd5b823591506020830135614f3881614eb4565b60a08152600061553c60a0830188614fa1565b828103602084015261554e8188614fa1565b905082810360408401526155628187614fa1565b905082810360608401526155768186614fa1565b9050828103608084015261558a8185614fa1565b98975050505050505050565b6001600160a01b031991909116815260200190565b8015158114611afc57600080fd5b600080604083850312156155cc57600080fd5b82356155d781614eb4565b91506020830135614f38816155ab565b6000806000606084860312156155fc57600080fd5b833592506020840135915060408401356001600160401b0381111561562057600080fd5b61562c868287016150e4565b9150509250925092565b6000806000806080858703121561564c57600080fd5b843561565781614eb4565b9350602085013561566781614eb4565b92506040850135915060608501356001600160401b0381111561568957600080fd5b8501601f8101871361569a57600080fd5b6156a9878235602084016150a6565b91505092959194509250565b604080825283519082018190526000906020906060840190828701845b828110156156f75781516001600160a01b0316845292840192908401906001016156d2565b5050508381038285015284518082528583019183019060005b8181101561572c57835183529284019291840191600101615710565b5090979650505050505050565b6000806040838503121561574c57600080fd5b82356001600160401b0381111561576257600080fd5b61576e858286016150e4565b9250506020830135614f3881614eb4565b6000806040838503121561579257600080fd5b823561579d81614eb4565b91506020830135614f3881614eb4565b6060815260006157c06060830186614fa1565b82810360208401526157d28186614fa1565b915050826040830152949350505050565b600181811c908216806157f757607f821691505b60208210810361446557634e487b7160e01b600052602260045260246000fd5b601f82111561160057600081815260208120601f850160051c8101602086101561583e5750805b601f850160051c820191505b8181101561585d5782815560010161584a565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561589357615893615039565b6158a7816158a184546157e3565b84615817565b602080601f8311600181146158d657600084156158c45750858301515b6158ce8582615865565b86555061585d565b600085815260208120601f198616915b82811015615905578886015182559484019460019091019084016158e6565b50858210156159235787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161597157615971615949565b5060010190565b602080825260189082015277417373657420696e646578206f7574206f662072616e676560401b604082015260600190565b6060815260006159bd6060830186614fa1565b90506159cc60208301856152e5565b62ffffff83166040830152949350505050565b634e487b7160e01b600052601260045260246000fd5b600082615a0457615a046159df565b500490565b6001600160a01b0394851681529290931660208301526001600160e01b0319166040820152606081019190915260800190565b600060208284031215615a4e57600080fd5b8151614f76816155ab565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6001600160a01b039586168152938516602085015260408401929092529092166060820152608081019190915260a00190565b6001600160401b03831115615af157615af1615039565b615b0583615aff83546157e3565b83615817565b6000601f841160018114615b335760008515615b215750838201355b615b2b8682615865565b845550615b8d565b600083815260209020601f19861690835b82811015615b645786850135825560209485019460019092019101615b44565b5086821015615b815760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b62ffffff818116838216019080821115615c1157615c11615949565b5092915050565b80820281158282048414176113c6576113c6615949565b818103818111156113c6576113c6615949565b62ffffff828116828216039080821115615c1157615c11615949565b818103615c69575050565b615c7382546157e3565b6001600160401b03811115615c8a57615c8a615039565b615c98816158a184546157e3565b6000601f821160018114615cc65760008315615cb45750848201545b615cbe8482615865565b855550615b8d565b600085815260209020601f19841690600086815260209020845b83811015615d005782860154825560019586019590910190602001615ce0565b50858310156159235793015460001960f8600387901b161c19169092555050600190811b01905550565b808201808211156113c6576113c6615949565b60008351615d4f818460208801614f7d565b835190830190615d63818360208801614f7d565b01949350505050565b6001600160f81b03818116838216019080821115615c1157615c11615949565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b03191660388301528251615dde81604c850160208701614f7d565b91909101604c01949350505050565b600060208284031215615dff57600080fd5b81516001600160401b03811115615e1557600080fd5b8201601f81018413615e2657600080fd5b8051615e346150b48261507f565b818152856020838501011115615e4957600080fd5b6124cf826020830160208601614f7d565b600060ff821660ff8103615e7057615e70615949565b60010192915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600082615eda57615eda6159df565b500690565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615f1290830184614fa1565b9695505050505050565b600060208284031215615f2e57600080fd5b8151614f7681614f4356fe8b810f233ce7ee6e962ab4d98bf0277751de1f5589de3dcc812ac2047994d009b96a30340e86d03ce4be42f94ac02d7b27b4a4cdae942beb69026718dfe66afca26469706673582212201931e895168345ea613eafd7bd28c073402253e1fde63dbd94e54fcfd46825e764736f6c634300081300338b810f233ce7ee6e962ab4d98bf0277751de1f5589de3dcc812ac2047994d009",
2260
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061048d5760003560e01c8063715018a611610265578063b7b04fae1161014d578063b7b04fae14610b7a578063b7ba527d14610b8d578063b88d4fde14610b95578063b971136814610ba8578063ba3c234514610bb0578063bb3bafd614610bc3578063bd3d10e714610be4578063c34a03b514610bf7578063c6c7c5bf14610c0a578063c87b56dd14610c1d578063cc90e72514610c30578063d03c390c14610c43578063d50f513814610c56578063db21a84614610c69578063db2ff86114610c7c578063e6032df214610c8f578063e935b7b114610cb6578063e985e9c514610cc7578063eb9cd5d414610cda578063ed8abfda14610cfc578063f2fde38b14610d26578063f313d73314610d39578063f6cd39e314610dcf578063f851a44014610dd7578063f893c07b14610ddf57600080fd5b8063715018a6146108f157806376ee6fab146108f95780638639415b1461090c5780638c3c9cdd146109675780638da5cb5b1461097a5780638dd91a561461098257806392f00233146109a657806395d89b41146109b95780639a02e4fa146109c1578063a11ec70a146109f8578063a22cb46514610a0b578063a3b2cca614610a1e578063a47d29cb14610a31578063abcbb7b414610a5d578063ac11fa1c14610a65578063acad012414610a85578063acd4c66f14610a98578063ad0305ce14610aaa578063ad28329014610acc578063ad2cdfc414610af9578063ad576c4514610b26578063ae45ad9814610b39578063b1656ba314610b41578063b168762214610b54578063b75395e014610b6757600080fd5b806328ec8f501161038857806328ec8f50146106dd5780632b2741661461070a5780632b65e67d1461071d5780632b8258c5146107305780632d9c02051461073957806330ef4c5f1461074c57806336c7c12c1461075e578063378599631461077157806338c8e468146107845780633bb22553146107b05780633e48e848146107b957806341814cd3146107cc57806342842e0e146107df57806348337282146107f25780634e1d64af146108055780635464c3091461080d5780635508fd521461082057806358b9a5a914610834578063621a1f741461086c5780636352211e1461087f5780636689c8de1461089257806366e46237146108a557806369d14faf146108b85780636c907b7f146108cb57806370a08231146108de57600080fd5b80611e3c146104925780615de5146104a75780630132c697146104cd57806301856fd4146104e057806301ffc9a7146104f357806304143a5c1461051657806306fdde031461051e578063081812fc14610533578063095ea7b3146105535780630d170673146105665780630e79c928146105795780630ea5613f1461058c5780630ebeb0ee146105d657806310a9ef18146105ff57806317df5366146106125780631ab6014c146106255780631b689c0b146106385780631c05cad71461064b5780631e9bef461461065e5780632302cbda14610671578063230448b11461068457806323b872dd1461069757806325b75d68146106aa5780632642c6b6146106bd575b600080fd5b6104a56104a0366004614e92565b610e06565b005b6104ba6104b5366004614ec9565b610f37565b6040519081526020015b60405180910390f35b6104a56104db366004614f0b565b6111db565b6104a56104ee366004614e92565b6112f9565b610506610501366004614f59565b6113a1565b60405190151581526020016104c4565b6104a56113cc565b610526611437565b6040516104c49190614fcd565b610546610541366004614fe0565b6114c9565b6040516104c49190614ff9565b6104a561056136600461500d565b6114f0565b6104a5610574366004615104565b611605565b6104a5610587366004615104565b611664565b61059f61059a366004614fe0565b611853565b60408051968752602087019590955292151593850193909352151560608401526080830191909152151560a082015260c0016104c4565b6105466105e4366004614fe0565b6000908152602660205260409020546001600160a01b031690565b6104a561060d36600461515e565b6118b6565b601f54610546906001600160a01b031681565b602954610546906001600160a01b031681565b6104ba610646366004614fe0565b611a85565b6104a56106593660046151be565b611a94565b602254610546906001600160a01b031681565b6104a561067f36600461521a565b611ad7565b61050661069236600461524e565b611aff565b6104a56106a536600461528e565b611b9f565b6104a56106b8366004615104565b611bd0565b6106d06106cb366004614e92565b611c2f565b6040516104c49190615307565b6104ba6106eb366004614fe0565b600090815260266020526040902060010154600160a01b900460ff1690565b6104a5610718366004615368565b611da5565b6104a561072b366004615385565b611df9565b6104ba602d5481565b610526610747366004614fe0565b61215f565b602954600160a01b900460ff166104ba565b602054610546906001600160a01b031681565b6104a561077f366004615104565b612204565b610546610792366004614fe0565b6000908152602660205260409020600101546001600160a01b031690565b6104ba602b5481565b6104a56107c7366004615104565b612251565b602a54610546906001600160a01b031681565b6104a56107ed36600461528e565b6122a7565b6104a5610800366004615368565b6122c2565b610526612328565b6104a561081b3660046153ec565b612341565b602f5461050690600160f81b900460ff1681565b610546610842366004614e92565b6000918252602360209081526040808420928452600990920190529020546001600160a01b031690565b6104ba61087a366004614fe0565b6123a2565b61054661088d366004614fe0565b612404565b6105066108a036600461545d565b612439565b6104a56108b33660046154ae565b6124d8565b6104a56108c6366004615504565b61268d565b6104a56108d9366004615368565b6126fa565b6104ba6108ec366004615368565b61271f565b6104a56127a5565b6104a5610907366004615385565b6127bd565b61091f61091a366004614e92565b612985565b604080519889526001600160a01b0397881660208a015288019590955292851660608701526080860191909152831660a085015260c08401521660e0820152610100016104c4565b610526610975366004614e92565b612a8e565b610546612aed565b610995610990366004614fe0565b612b01565b6040516104c4959493929190615529565b602e54610546906001600160a01b031681565b610526612df5565b6109eb6109cf366004614fe0565b600090815260026020526040902054600160a01b900460a01b90565b6040516104c49190615596565b6104a5610a06366004614fe0565b612e04565b6104a5610a193660046155b9565b612e57565b6104a5610a2c366004615104565b612e66565b610546610a3f366004614fe0565b6000908152602660205260409020600201546001600160a01b031690565b610526612f3a565b6104ba610a73366004614fe0565b60276020526000908152604090205481565b6104a5610a93366004615104565b612fc8565b602854600160a01b900460ff166104ba565b610506610ab8366004615368565b602e546001600160a01b0390811691161490565b6104ba610ada366004614fe0565b6000908152602360205260409020600a0154610100900462ffffff1690565b6104ba610b07366004614fe0565b600090815260266020526040902060020154600160a01b900460ff1690565b6104a5610b34366004614e92565b613093565b61052661321e565b6104a5610b4f3660046155e7565b613247565b610546610b62366004614fe0565b613323565b602854610546906001600160a01b031681565b6104a5610b88366004615104565b61339b565b6105266133fa565b6104a5610ba3366004615636565b613407565b6021546104ba565b6104a5610bbe366004614fe0565b613439565b610bd6610bd1366004614fe0565b613499565b6040516104c49291906156b5565b6104a5610bf2366004614e92565b61372d565b6104a5610c05366004614e92565b6137e0565b602c54610546906001600160a01b031681565b610526610c2b366004614fe0565b613879565b6104a5610c3e366004615739565b613961565b6104a5610c51366004614fe0565b613a9d565b6104a5610c643660046153ec565b613b01565b6104a5610c77366004614e92565b613b29565b6104a5610c8a366004614fe0565b613bb5565b6105067f000000000000000000000000000000000000000000000000000000000000000081565b602f546001600160f81b03166104ba565b610506610cd536600461577f565b613cbd565b610ced610ce8366004614fe0565b613ceb565b6040516104c4939291906157ad565b6104ba610d0a366004614fe0565b600090815260266020526040902054600160a01b900460ff1690565b6104a5610d34366004615368565b613db7565b610d91610d47366004614fe0565b6000908152602660205260409020600281015481546001909201546001600160a01b03808316948482169460ff600160a01b95869004811695938516948490048116939091041690565b604080516001600160a01b039788168152958716602087015285019390935293166060830152608082019290925260a081019190915260c0016104c4565b610526613e2d565b610546613e3a565b6104ba7f000000000000000000000000000000000000000000000000000000000000000081565b610e0f82613e44565b600082815260026020908152604090912090546001600160a01b03163314610e785760405162461bcd60e51b815260206004820152601760248201527613db9b1e481c985b991bdb5a5e995c881b585e481cd95d604a1b60448201526064015b60405180910390fd5b8054600160a01b900460a01b6001600160a01b03191615610ed45760405162461bcd60e51b8152602060048201526016602482015275151bdad95b881a185cda08185b1c9958591e481cd95d60521b6044820152606401610e6f565b81610f155760405162461bcd60e51b8152602060048201526011602482015270139bc81e995c9bc81a185cda081cd95959607a1b6044820152606401610e6f565b805460a09290921c600160a01b026001600160a01b0390921691909117905550565b602e546000906001600160a01b03163314610f945760405162461bcd60e51b815260206004820152601e60248201527f4d757374206d696e742066726f6d206d696e74657220636f6e747261637400006044820152606401610e6f565b6000838152602360205260409020805462ffffff8082169160018301916301000000909104168083106110095760405162461bcd60e51b815260206004820152601f60248201527f4d757374206e6f7420657863656564206d617820696e766f636174696f6e73006044820152606401610e6f565b8354600160881b900460ff168061103c57506000878152602660205260409020600201546001600160a01b038781169116145b6110885760405162461bcd60e51b815260206004820181905260248201527f50726f6a656374206d75737420657869737420616e64206265206163746976656044820152606401610e6f565b8354600160901b900460ff1615806110bc57506000878152602660205260409020600201546001600160a01b038781169116145b6111005760405162461bcd60e51b8152602060048201526015602482015274283ab931b430b9b2b99030b932903830bab9b2b21760591b6044820152606401610e6f565b835462ffffff191662ffffff8381169182178655848116620f42408a02019190831690036111315761113188613e93565b61113b8982613ee3565b602054604051635b140b8d60e11b8152600481018390526001600160a01b039091169063b628171a90602401600060405180830381600087803b15801561118157600080fd5b505af1158015611195573d6000803e3d6000fd5b50506040518392506001600160a01b038c1691507f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688590600090a398975050505050505050565b6111ec82630132c69760e01b614015565b6000828152602360205260409020805462ffffff808216916301000000900481169084161061125c5760405162461bcd60e51b815260206004820152601c60248201527b4f6e6c79206d6178496e766f636174696f6e7320646563726561736560201b6044820152606401610e6f565b808362ffffff1610156112a85760405162461bcd60e51b81526020600482015260146024820152734f6e6c792067746520696e766f636174696f6e7360601b6044820152606401610e6f565b815465ffffff0000001916630100000062ffffff851602178255601a546040518590600080516020615f5a83398151915290600090a3808362ffffff16036112f3576112f384613e93565b50505050565b61130282614090565b6113128262615bf560e21b614015565b600082815260236020526040908190209061133090839060016140d8565b6113795760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610e6f565b60078101829055601c546040518490600080516020615f5a83398151915290600090a3505050565b60006001600160e01b03198216635d9dd7eb60e11b14806113c657506113c68261414b565b92915050565b6113df6301050e9760e21b60001961419b565b602f54600160f81b900460ff161561142d5760405162461bcd60e51b815260206004820152601160248201527020b63932b0b23c903337b93134b23232b760791b6044820152606401610e6f565b6114356141ec565b565b606060008054611446906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611472906157e3565b80156114bf5780601f10611494576101008083540402835291602001916114bf565b820191906000526020600020905b8154815290600101906020018083116114a257829003601f168201915b5050505050905090565b60006114d48261422e565b506000908152600460205260409020546001600160a01b031690565b60006114fb82612404565b9050806001600160a01b0316836001600160a01b0316036115685760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610e6f565b336001600160a01b038216148061158457506115848133613cbd565b6115f65760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610e6f565b6116008383614253565b505050565b61160e82614090565b61161f82630d17067360e01b614015565b611628816142c1565b6000828152602360205260409020600101611643828261587a565b506014546040518390600080516020615f5a83398151915290600090a35050565b61166d82614090565b61167e826301cf392560e31b614015565b611687816142c1565b80518190600b8111156116db5760405162461bcd60e51b815260206004820152601c60248201527b41737065637420726174696f20666f726d617420746f6f206c6f6e6760201b6044820152606401610e6f565b60008060005b838110156117c75760008582815181106116fd576116fd615933565b01602001516001600160f81b0319169050600360fc1b81108015906117305750603960f81b6001600160f81b0319821611155b1561173f5760019250506117b5565b6001600160f81b03198116601760f91b0361176357836117635760019350506117b5565b60405162461bcd60e51b815260206004820152602160248201527f496d70726f7065726c7920666f726d61747465642061737065637420726174696044820152606f60f81b6064820152608401610e6f565b806117bf8161595f565b9150506116e1565b50806118135760405162461bcd60e51b815260206004820152601b60248201527a41737065637420726174696f20686173206e6f206e756d6265727360281b6044820152606401610e6f565b600086815260236020526040902060080161182e868261587a565b50601d546040518790600080516020615f5a83398151915290600090a3505050505050565b6000818152602360205260408120805462ffffff808216936301000000830490911692600160881b830460ff90811693600160901b810490911692600160481b9091046001600160401b0316916118a988614310565b1591505091939550919395565b6118bf8461435a565b6118d0846302153de360e31b614015565b6000848152602360205260409020600a0154610100900462ffffff1680841061190b5760405162461bcd60e51b8152600401610e6f90615978565b6000858152602360209081526040808320878452600b0190915290206001808201805460ff81169286929160ff19169083600281111561194d5761194d6152cf565b02179055506002846002811115611966576119666152cf565b03611a1757600281600281111561197f5761197f6152cf565b146119b857604080516020808201835260008083528a8152602382528381208a8252600b0190915291909120906119b6908261587a565b505b6119c1856143bb565b60008881526023602090815260408083208a8452600b01825280832060010180546001600160a01b039590951661010002610100600160a81b031990951694909417909355825190810190925281529450611a3f565b6000878152602360209081526040808320898452600b019091529020611a3d868261587a565b505b85877f1628bf0d5f04426de03959d1da1357d8210b3b99e35281256ab7e9bd55dae949878787604051611a74939291906159aa565b60405180910390a350505050505050565b60006113c6620f4240836159f5565b611aa7631c05cad760e01b60001961419b565b611ab08461446b565b611ab98361446b565b611ac28261446b565b611acb8161446b565b6112f3848484846144bf565b611aea63118165ed60e11b60001961419b565b611af3816142c1565b611afc81614529565b50565b600080611b0a612aed565b6001600160a01b031614158015611b97575060225460405163a8c4c7d360e01b81526001600160a01b039091169063a8c4c7d390611b549087908790879060001990600401615a09565b6020604051808303816000875af1158015611b73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b979190615a3c565b949350505050565b611ba93382614553565b611bc55760405162461bcd60e51b8152600401610e6f90615a59565b6116008383836145b1565b611bd982614090565b611bea826304b6ebad60e31b614015565b611bf3816142c1565b6000828152602360205260409020600501611c0e828261587a565b506019546040518390600080516020615f5a83398151915290600090a35050565b611c5b604080516080810190915260608152602081016000815260006020820152606060409091015290565b6000838152602360209081526040808320858452600b01909152908190206001810154825160808101909352815491926101009091046001600160a01b03169181908490611ca8906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054611cd4906157e3565b8015611d215780601f10611cf657610100808354040283529160200191611d21565b820191906000526020600020905b815481529060010190602001808311611d0457829003601f168201915b5050509183525050600184015460209091019060ff166002811115611d4857611d486152cf565b81526001600160a01b03831660208201526040016002600185015460ff166002811115611d7757611d776152cf565b14611d915760405180602001604052806000815250611d9a565b611d9a8361474d565b905295945050505050565b611db8631593a0b360e11b60001961419b565b611dc18161446b565b601f80546001600160a01b0319166001600160a01b038316179055600b54604051600080516020615f3a83398151915290600090a250565b611e02866147cc565b611e0b8661484e565b611e148561446b565b600086815260266020526040902060648411801590611e34575060648211155b611e6e5760405162461bcd60e51b815260206004820152600b60248201526a4d6178206f66203130302560a81b6044820152606401610e6f565b831580611e8357506001600160a01b03851615155b611ecf5760405162461bcd60e51b815260206004820152601d60248201527f5072696d617279207061796565206973207a65726f20616464726573730000006044820152606401610e6f565b811580611ee457506001600160a01b03831615155b611f305760405162461bcd60e51b815260206004820152601f60248201527f5365636f6e64617279207061796565206973207a65726f2061646472657373006044820152606401610e6f565b867f6ff7d102bb3657a26dcbbcd299d821a066718a7cf76ae7cd98279f18b74da8ac8787878787604051611f68959493929190615aa7565b60405180910390a27f00000000000000000000000000000000000000000000000000000000000000008061200e57600282015482546001600160a01b03918216898316149160009181169089161480611fc857506001600160a01b038816155b60018501549091506000906001600160a01b0388811691161480611ff357506001600160a01b038716155b9050828015611fff5750815b80156120085750805b93505050505b8015612116576000801b602760008a815260200190815260200160002081905550868260020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550858260000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550848260020160146101000a81548160ff021916908360ff160217905550838260010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550828260010160146101000a81548160ff021916908360ff160217905550877fc582d05e1da854143bd3271ef4529d79cf5a69fc6057ae320f357acfd291b73860405160405180910390a2612155565b868686868660405160200161212f959493929190615aa7565b60408051601f19818403018152918152815160209283012060008b815260279093529120555b5050505050505050565b600081815260236020526040902060060180546060919061217f906157e3565b80601f01602080910402602001604051908101604052809291908181526020018280546121ab906157e3565b80156121f85780601f106121cd576101008083540402835291602001916121f8565b820191906000526020600020905b8154815290600101906020018083116121db57829003601f168201915b50505050509050919050565b61221582633785996360e01b614015565b6000828152602360205260409020600401612230828261587a565b506018546040518390600080516020615f5a83398151915290600090a35050565b612262826307c91d0960e31b614015565b61226b816142c1565b6000828152602360205260409020600601612286828261587a565b50601e546040518390600080516020615f5a83398151915290600090a35050565b61160083838360405180602001604052806000815250613407565b6122d5632419b94160e11b60001961419b565b6122de8161446b565b602e80546001600160a01b0319166001600160a01b0383169081179091556040517fad0f299ec81a386c98df0ac27dae11dd020ed1b56963c53a7292e7a3a314539a90600090a250565b606061233c6576332e312e3360d01b6148a5565b905090565b612354635464c30960e01b60001961419b565b6025612361828483615ada565b5060015b7f897675a9bb2e78c7082f6dd757f2db5e1d07724c1f2d46fea1da4e17e5061afd8383604051612396929190615b94565b60405180910390a25050565b600081815260026020526040812054600160a01b900460a01b6001600160a01b0319811682036123d55750600092915050565b806040516020016123e69190615596565b60405160208183030381529060405280519060200120915050919050565b6000818152600260205260408120546001600160a01b0316806113c65760405162461bcd60e51b8152600401610e6f90615bc3565b600080612444612aed565b6001600160a01b0316141580156124cf575060225460405163a8c4c7d360e01b81526001600160a01b039091169063a8c4c7d39061248c908890889088908890600401615a09565b6020604051808303816000875af11580156124ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124cf9190615a3c565b95945050505050565b6124e18361435a565b6124f2836366e4623760e01b614015565b6000838152602360205260408120600a0154610100900462ffffff16906002836002811115612523576125236152cf565b0361254657612531846143bb565b90506040518060200160405280600081525093505b6000604051806060016040528086815260200185600281111561256b5761256b6152cf565b81526001600160a01b038416602091820152600088815260238252604080822062ffffff88168352600b01909252208151919250829181906125ad908261587a565b50602082015160018083018054909160ff19909116908360028111156125d5576125d56152cf565b021790555060409190910151600191820180546001600160a01b0390921661010002610100600160a81b0319909216919091179055612615908490615bf5565b6000878152602360205260409020600a01805463ffffff00191661010062ffffff938416021790558316867f1628bf0d5f04426de03959d1da1357d8210b3b99e35281256ab7e9bd55dae949878761266e886001615bf5565b60405161267d939291906159aa565b60405180910390a3505050505050565b612696826147cc565b6126a7826369d14faf60e01b614910565b6126b08161446b565b60008281526026602052604080822060020180546001600160a01b0319166001600160a01b038516179055601154905190918491600080516020615f5a8339815191529190a35050565b61270d636c907b7f60e01b60001961419b565b6127168161446b565b611afc816149c8565b60006001600160a01b0382166127895760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610e6f565b506001600160a01b031660009081526003602052604090205490565b6127ad614a3e565b6127b56141ec565b611435614a9d565b6127c6866147cc565b6127d7866376ee6fab60e01b614910565b6127e08561446b565b84848484846040516020016127f9959493929190615aa7565b60408051601f19818403018152918152815160209283012060008981526027909352912054146128685760405162461bcd60e51b815260206004820152601a602482015279135d5cdd081b585d18da08185c9d1a5cdd081c1c9bdc1bdcd85b60321b6044820152606401610e6f565b6000602660008881526020019081526020016000209050858160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550848160000160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550838160020160146101000a81548160ff021916908360ff160217905550828160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550818160010160146101000a81548160ff021916908360ff1602179055506000801b6027600089815260200190815260200160002081905550867fc582d05e1da854143bd3271ef4529d79cf5a69fc6057ae320f357acfd291b73860405160405180910390a250505050505050565b60008281526026602052604081206028548291829182918291829182918291908a906064906129be90600160a01b900460ff1683615c18565b6129c891906159f5565b99506129d48a82615c2f565b6029549091506064906129f190600160a01b900460ff168d615c18565b6129fb91906159f5565b9750612a078882615c2f565b6002830154909150606490612a2690600160a01b900460ff1683615c18565b612a3091906159f5565b9350612a3c8482615c2f565b6028546029546001600160a01b039182169b5016975095508515612a6b5760028201546001600160a01b031694505b8315612a7f5781546001600160a01b031692505b50509295985092959890939650565b6000828152602360205260409020805460609190600160301b900462ffffff168310612aca5750506040805160208101909152600081526113c6565b6000838152600982016020526040902054611b97906001600160a01b031661474d565b600061233c6006546001600160a01b031690565b60608060608060606000602360008881526020019081526020016000209050806001018054612b2f906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612b5b906157e3565b8015612ba85780601f10612b7d57610100808354040283529160200191612ba8565b820191906000526020600020905b815481529060010190602001808311612b8b57829003601f168201915b50505050509550806002018054612bbe906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612bea906157e3565b8015612c375780601f10612c0c57610100808354040283529160200191612c37565b820191906000526020600020905b815481529060010190602001808311612c1a57829003601f168201915b50505050509450806003018054612c4d906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612c79906157e3565b8015612cc65780601f10612c9b57610100808354040283529160200191612cc6565b820191906000526020600020905b815481529060010190602001808311612ca957829003601f168201915b50505050509350806004018054612cdc906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612d08906157e3565b8015612d555780601f10612d2a57610100808354040283529160200191612d55565b820191906000526020600020905b815481529060010190602001808311612d3857829003601f168201915b50505050509250806005018054612d6b906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612d97906157e3565b8015612de45780601f10612db957610100808354040283529160200191612de4565b820191906000526020600020905b815481529060010190602001808311612dc757829003601f168201915b505050505091505091939590929450565b606060018054611446906157e3565b612e0d8161484e565b600081815260236020526040808220805460ff60901b198116600160901b9182900460ff1615909102179055601254905190918391600080516020615f5a8339815191529190a350565b612e62338383614aaf565b5050565b612e6f82614310565b15612e8a57612e85826351d9665360e11b614015565b612efe565b612e9d33306351d9665360e11b85612439565b612efe5760405162461bcd60e51b815260206004820152602c60248201527f4f6e6c7920617274697374207768656e20756e6c6f636b65642c206f776e657260448201526b081dda195b881b1bd8dad95960a21b6064820152608401610e6f565b6000828152602360205260409020600301612f19828261587a565b506017546040518390600080516020615f5a83398151915290600090a35050565b60308054612f47906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054612f73906157e3565b8015612fc05780601f10612f9557610100808354040283529160200191612fc0565b820191906000526020600020905b815481529060010190602001808311612fa357829003601f168201915b505050505081565b612fd182614090565b612fe282632b2b404960e21b614015565b612feb816142c1565b6000828152602360205260409020613002826143bb565b8154600160301b9081900462ffffff9081166000908152600985016020526040902080546001600160a01b0319166001600160a01b039490941693909317909255825461305492919004166001615bf5565b815462ffffff91909116600160301b0262ffffff60301b19909116178155601b546040518490600080516020615f5a83398151915290600090a3505050565b61309c8261435a565b6130ad8263ad576c4560e01b614015565b6000828152602360205260409020600a0154610100900462ffffff168082106130e85760405162461bcd60e51b8152600401610e6f90615978565b60006130f5600183615c42565b600085815260236020908152604080832062ffffff85168452600b019091528082208683529120919250908061312b8382615c5e565b50600182810154828201805460ff90921692909160ff191690836002811115613156576131566152cf565b021790555060019182015491018054610100600160a81b031916610100928390046001600160a01b0316909202919091179055600084815260236020908152604080832062ffffff85168452600b019091528120906131b58282614e44565b5060010180546001600160a81b0319169055600084815260236020526040808220600a01805463ffffff00191661010062ffffff86160217905551849186917fa2290757ebb75dea327ace340daae74c1ac76aca04f6fd163fbf5b87e6d707599190a350505050565b606061233c7a08ecadc82e4e86e646286dee4caac66be8adcced2dccabe8cd8caf602b1b6148a5565b61325083614090565b6132618363b1656ba360e01b614015565b61326a816142c1565b60008381526023602052604090208054600160301b900462ffffff1683106132cc5760405162461bcd60e51b81526020600482015260156024820152747363726970744964206f7574206f662072616e676560581b6044820152606401610e6f565b6132d5826143bb565b600084815260098301602052604080822080546001600160a01b0319166001600160a01b039490941693909317909255601b5491518691600080516020615f5a83398151915291a350505050565b602154600090821061336d5760405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b6044820152606401610e6f565b6021828154811061338057613380615933565b6000918252602090912001546001600160a01b031692915050565b6133a482614090565b6133b582635bd827d760e11b614015565b6133be816142c1565b60008281526023602052604090206002016133d9828261587a565b506015546040518390600080516020615f5a83398151915290600090a35050565b60258054612f47906157e3565b6134113383614553565b61342d5760405162461bcd60e51b8152600401610e6f90615a59565b6112f384848484614b79565b6134428161435a565b6134538163ba3c234560e01b614015565b600081815260236020526040808220600a01805460ff191660011790555182917fcbd4f9053ca1f820efad7731ae6c938613bfef183ee6f03f61cc8d4ab583f5dc91a250565b6060806134a583613e44565b60408051600480825260a082019092529060208201608080368337505060408051600480825260a0820190925292945090506020820160808036833701905050905060006134f284611a85565b600081815260266020526040812080546001820154939450909260ff600160a01b928390048116939290910416908261352c836064615c2f565b6135369190615c18565b905060006135448484615c18565b602b54602d5491925090600084156135be5760028801548b516001600160a01b03909116908c908390811061357b5761357b615933565b6001600160a01b0390921660209283029190910190910152848a8261359f8161595f565b9350815181106135b1576135b1615933565b6020026020010181815250505b831561362c5760018801548b516001600160a01b03909116908c90839081106135e9576135e9615933565b6001600160a01b0390921660209283029190910190910152838a8261360d8161595f565b93508151811061361f5761361f615933565b6020026020010181815250505b821561369857602a548b516001600160a01b03909116908c908390811061365557613655615933565b6001600160a01b0390921660209283029190910190910152828a826136798161595f565b93508151811061368b5761368b615933565b6020026020010181815250505b811561370457602c548b516001600160a01b03909116908c90839081106136c1576136c1615933565b6001600160a01b0390921660209283029190910190910152818a826136e58161595f565b9350815181106136f7576136f7615933565b6020026020010181815250505b806004111561371f5780600403808c51038c52808b51038b52505b505050505050505050915091565b61374063bd3d10e760e01b60001961419b565b606461374c8284615d2a565b11156137955760405162461bcd60e51b81526020600482015260186024820152774d61782073756d206f66204f4e455f48554e44524544202560401b6044820152606401610e6f565b6028805460ff808516600160a01b90810260ff60a01b1993841617909355602980549185169093029116179055600d54604051600080516020615f3a83398151915290600090a25050565b6137f18263c34a03b560e01b614015565b605f8111156138355760405162461bcd60e51b815260206004820152601060248201526f13dd995c881b585e081c195c98d95b9d60821b6044820152606401610e6f565b600082815260266020526040808220805460ff60a01b1916600160a01b60ff861602179055601654905190918491600080516020615f5a8339815191529190a35050565b606061388482613e44565b60006023600061389385611a85565b815260200190815260200160002060060180546138af906157e3565b80601f01602080910402602001604051908101604052809291908181526020018280546138db906157e3565b80156139285780601f106138fd57610100808354040283529160200191613928565b820191906000526020600020905b81548152906001019060200180831161390b57829003601f168201915b505050505090508061393984614bac565b60405160200161394a929190615d3d565b604051602081830303815290604052915050919050565b61396a826142c1565b6139738161446b565b602f54600160f81b900460ff16156139c65760405162461bcd60e51b81526020600482015260166024820152752732bb90383937b532b1ba39903337b93134b23232b760511b6044820152606401610e6f565b602f546001600160f81b0316600081815260266020908152604080832060020180546001600160a01b0319166001600160a01b03871617905560239091529020600101613a13848261587a565b506000818152602360205260409020805465ffffff00000060ff60901b011916613d09601e1b600160901b01178155600601613a50603082615c5e565b50613a5c816001615d6c565b602f80546001600160f81b0319166001600160f81b03929092169190911790556013546040518290600080516020615f5a83398151915290600090a3505050565b613aae63340f0e4360e21b8261419b565b613ab7816147cc565b600081815260236020526040808220805460ff60881b198116600160881b9182900460ff1615909102179055601054905190918391600080516020615f5a8339815191529190a350565b613b14631aa1ea2760e31b60001961419b565b6024613b21828483615ada565b506000612365565b613b3c636d90d42360e11b60001961419b565b612710613b498284615d2a565b1115613b8d5760405162461bcd60e51b81526020600482015260136024820152724f766572206d61782073756d206f662042505360681b6044820152606401610e6f565b602b829055602d819055600e54604051600080516020615f3a83398151915290600090a25050565b613bbe81614090565b613bcf8163db2ff86160e01b614015565b60008181526023602052604090208054600160301b900462ffffff16613c2e5760405162461bcd60e51b81526020600482015260146024820152734e6f207363726970747320746f2072656d6f766560601b6044820152606401610e6f565b80546009820190600090613c5090600190600160301b900462ffffff16615c42565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b0319169055835462ffffff60301b198116600160301b9182900485166000190190941602929092178355601b54905190918491600080516020615f5a8339815191529190a35050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b6000818152602360205260408120600781015460609283929091613d0e906148a5565b9350806008018054613d1f906157e3565b80601f0160208091040260200160405190810160405280929190818152602001828054613d4b906157e3565b8015613d985780601f10613d6d57610100808354040283529160200191613d98565b820191906000526020600020905b815481529060010190602001808311613d7b57829003601f168201915b5050935496989297505050600160301b90940462ffffff169392505050565b613dbf614a3e565b6001600160a01b038116613e245760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610e6f565b611afc81614cac565b60248054612f47906157e3565b600061233c612aed565b613e4d81614cd7565b611afc5760405162461bcd60e51b8152602060048201526017602482015276151bdad95b88125108191bd95cc81b9bdd08195e1a5cdd604a1b6044820152606401610e6f565b600081815260236020526040808220805467ffffffffffffffff60481b1916600160481b426001600160401b031602179055600f54905190918391600080516020615f5a8339815191529190a350565b6001600160a01b038216613f395760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610e6f565b613f4281614cd7565b15613f8e5760405162461bcd60e51b815260206004820152601c60248201527b115490cdcc8c4e881d1bdad95b88185b1c9958591e481b5a5b9d195960221b6044820152606401610e6f565b6001600160a01b0382166000908152600360205260408120805460019290613fb7908490615d2a565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6000828152602660205260409020600201546001600160a01b0316331480614044575061404433308385612439565b612e625760405162461bcd60e51b815260206004820181905260248201527f4f6e6c7920617274697374206f722041646d696e2041434c20616c6c6f7765646044820152606401610e6f565b61409981614310565b611afc5760405162461bcd60e51b815260206004820152601060248201526f13db9b1e481a59881d5b9b1bd8dad95960821b6044820152606401610e6f565b600080805b60208160ff161015614137576000868260ff166020811061410057614100615933565b1a90508015801590614115575060808160ff16105b1561412e578560ff168160ff160361412e578260010192505b506001016140dd565b8360ff168260ff1614925050509392505050565b60006001600160e01b031982166380ac58cd60e01b148061417c57506001600160e01b03198216635b5e139f60e01b145b806113c657506301ffc9a760e01b6001600160e01b03198316146113c6565b6141a733308484612439565b612e625760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610e6f565b602f54600160f81b900460ff1661143557602f80546001600160f81b0316600160f81b179055600854604051600080516020615f3a83398151915290600090a2565b61423781614cd7565b611afc5760405162461bcd60e51b8152600401610e6f90615bc3565b600081815260046020526040902080546001600160a01b0319166001600160a01b038416908117909155819061428882612404565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b8051600003611afc5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610e6f565b600061431b826147cc565b600082815260236020526040902054600160481b90046001600160401b031680158080611b9757506224ea006143518342615c2f565b10949350505050565b6000818152602360205260409020600a015460ff1615611afc5760405162461bcd60e51b815260206004820152601c60248201527b115e1d195c9b985b0819195c195b99195b98da595cc81b1bd8dad95960221b6044820152606401610e6f565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f2030846040516020016143f393929190615d8c565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166144655760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610e6f565b50919050565b6001600160a01b038116611afc5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610e6f565b602980546001600160a01b038085166001600160a01b031992831617909255602c805484841690831617905560288054878416908316179055602a805492861692909116919091179055600c54604051600080516020615f3a83398151915290600090a250505050565b6030614535828261587a565b50600954604051600080516020615f3a83398151915290600090a250565b60008061455f83612404565b9050806001600160a01b0316846001600160a01b0316148061458657506145868185613cbd565b80611b975750836001600160a01b031661459f846114c9565b6001600160a01b031614949350505050565b826001600160a01b03166145c482612404565b6001600160a01b0316146146285760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610e6f565b6001600160a01b03821661468a5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610e6f565b614695600082614253565b6001600160a01b03831660009081526003602052604081208054600192906146be908490615c2f565b90915550506001600160a01b03821660009081526003602052604081208054600192906146ec908490615d2a565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b604051630eacc5e760e31b815260609073__$f5e9d4569caf27524ac52628f2516ab106$__906375662f3890614787908590600401614ff9565b600060405180830381865af41580156147a4573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113c69190810190615ded565b7f000000000000000000000000000000000000000000000000000000000000000081101580156148065750602f546001600160f81b031681105b611afc5760405162461bcd60e51b8152602060048201526019602482015278141c9bda9958dd08125108191bd95cc81b9bdd08195e1a5cdd603a1b6044820152606401610e6f565b6000818152602660205260409020600201546001600160a01b03163314611afc5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48185c9d1a5cdd60aa1b6044820152606401610e6f565b606060005b828160ff16602081106148bf576148bf615933565b1a60f81b6001600160f81b031916158015906148de575060208160ff16105b156148f557806148ed81615e5a565b9150506148aa565b60405191506040820160405280825282602083015250919050565b61491c33308385612439565b8061495b5750600061492c612aed565b6001600160a01b031614801561495b57506000828152602660205260409020600201546001600160a01b031633145b612e625760405162461bcd60e51b815260206004820152603860248201527f4f6e6c792041646d696e2041434c20616c6c6f7765642c206f722061727469736044820152771d081a59881bdddb995c881a185cc81c995b9bdd5b98d95960421b6064820152608401610e6f565b602080546001600160a01b0383166001600160a01b031991821681179092556021805460018101825560009182527f3a6357012c1a3ae0a17d304c9920310382d968ebcc4b1771f41c6b304205b5700180549092169092179055600a546040519091600080516020615f3a83398151915291a250565b33614a47612aed565b6001600160a01b0316146114355760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610e6f565b614aa5614a3e565b6114356000614cac565b816001600160a01b0316836001600160a01b031603614b0c5760405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606401610e6f565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b614b848484846145b1565b614b9084848484614cf4565b6112f35760405162461bcd60e51b8152600401610e6f90615e79565b606081600003614bd35750506040805180820190915260018152600360fc1b602082015290565b8160005b8115614bfd5780614be78161595f565b9150614bf69050600a836159f5565b9150614bd7565b6000816001600160401b03811115614c1757614c17615039565b6040519080825280601f01601f191660200182016040528015614c41576020820181803683370190505b5090505b8415611b9757614c56600183615c2f565b9150614c63600a86615ecb565b614c6e906030615d2a565b60f81b818381518110614c8357614c83615933565b60200101906001600160f81b031916908160001a905350614ca5600a866159f5565b9450614c45565b614cb581614df2565b602280546001600160a01b0319166001600160a01b0392909216919091179055565b6000908152600260205260409020546001600160a01b0316151590565b60006001600160a01b0384163b15614dea57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290614d38903390899088908890600401615edf565b6020604051808303816000875af1925050508015614d73575060408051601f3d908101601f19168201909252614d7091810190615f1c565b60015b614dd0573d808015614da1576040519150601f19603f3d011682016040523d82523d6000602084013e614da6565b606091505b508051600003614dc85760405162461bcd60e51b8152600401610e6f90615e79565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611b97565b506001611b97565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b508054614e50906157e3565b6000825580601f10614e60575050565b601f016020900490600052602060002090810190611afc91905b80821115614e8e5760008155600101614e7a565b5090565b60008060408385031215614ea557600080fd5b50508035926020909101359150565b6001600160a01b0381168114611afc57600080fd5b600080600060608486031215614ede57600080fd5b8335614ee981614eb4565b9250602084013591506040840135614f0081614eb4565b809150509250925092565b60008060408385031215614f1e57600080fd5b82359150602083013562ffffff81168114614f3857600080fd5b809150509250929050565b6001600160e01b031981168114611afc57600080fd5b600060208284031215614f6b57600080fd5b8135614f7681614f43565b9392505050565b60005b83811015614f98578181015183820152602001614f80565b50506000910152565b60008151808452614fb9816020860160208601614f7d565b601f01601f19169290920160200192915050565b602081526000614f766020830184614fa1565b600060208284031215614ff257600080fd5b5035919050565b6001600160a01b0391909116815260200190565b6000806040838503121561502057600080fd5b823561502b81614eb4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561507757615077615039565b604052919050565b60006001600160401b0382111561509857615098615039565b50601f01601f191660200190565b60006150b96150b48461507f565b61504f565b90508281528383830111156150cd57600080fd5b828260208301376000602084830101529392505050565b600082601f8301126150f557600080fd5b614f76838335602085016150a6565b6000806040838503121561511757600080fd5b8235915060208301356001600160401b0381111561513457600080fd5b615140858286016150e4565b9150509250929050565b80356003811061515957600080fd5b919050565b6000806000806080858703121561517457600080fd5b843593506020850135925060408501356001600160401b0381111561519857600080fd5b6151a4878288016150e4565b9250506151b36060860161514a565b905092959194509250565b600080600080608085870312156151d457600080fd5b84356151df81614eb4565b935060208501356151ef81614eb4565b925060408501356151ff81614eb4565b9150606085013561520f81614eb4565b939692955090935050565b60006020828403121561522c57600080fd5b81356001600160401b0381111561524257600080fd5b611b97848285016150e4565b60008060006060848603121561526357600080fd5b833561526e81614eb4565b9250602084013561527e81614eb4565b91506040840135614f0081614f43565b6000806000606084860312156152a357600080fd5b83356152ae81614eb4565b925060208401356152be81614eb4565b929592945050506040919091013590565b634e487b7160e01b600052602160045260246000fd5b6003811061530357634e487b7160e01b600052602160045260246000fd5b9052565b60208152600082516080602084015261532360a0840182614fa1565b9050602084015161533760408501826152e5565b5060408401516001600160a01b0316606084810191909152840151838203601f190160808501526124cf8282614fa1565b60006020828403121561537a57600080fd5b8135614f7681614eb4565b60008060008060008060c0878903121561539e57600080fd5b8635955060208701356153b081614eb4565b945060408701356153c081614eb4565b93506060870135925060808701356153d781614eb4565b8092505060a087013590509295509295509295565b600080602083850312156153ff57600080fd5b82356001600160401b038082111561541657600080fd5b818501915085601f83011261542a57600080fd5b81358181111561543957600080fd5b86602082850101111561544b57600080fd5b60209290920196919550909350505050565b6000806000806080858703121561547357600080fd5b843561547e81614eb4565b9350602085013561548e81614eb4565b9250604085013561549e81614f43565b9396929550929360600135925050565b6000806000606084860312156154c357600080fd5b8335925060208401356001600160401b038111156154e057600080fd5b6154ec868287016150e4565b9250506154fb6040850161514a565b90509250925092565b6000806040838503121561551757600080fd5b823591506020830135614f3881614eb4565b60a08152600061553c60a0830188614fa1565b828103602084015261554e8188614fa1565b905082810360408401526155628187614fa1565b905082810360608401526155768186614fa1565b9050828103608084015261558a8185614fa1565b98975050505050505050565b6001600160a01b031991909116815260200190565b8015158114611afc57600080fd5b600080604083850312156155cc57600080fd5b82356155d781614eb4565b91506020830135614f38816155ab565b6000806000606084860312156155fc57600080fd5b833592506020840135915060408401356001600160401b0381111561562057600080fd5b61562c868287016150e4565b9150509250925092565b6000806000806080858703121561564c57600080fd5b843561565781614eb4565b9350602085013561566781614eb4565b92506040850135915060608501356001600160401b0381111561568957600080fd5b8501601f8101871361569a57600080fd5b6156a9878235602084016150a6565b91505092959194509250565b604080825283519082018190526000906020906060840190828701845b828110156156f75781516001600160a01b0316845292840192908401906001016156d2565b5050508381038285015284518082528583019183019060005b8181101561572c57835183529284019291840191600101615710565b5090979650505050505050565b6000806040838503121561574c57600080fd5b82356001600160401b0381111561576257600080fd5b61576e858286016150e4565b9250506020830135614f3881614eb4565b6000806040838503121561579257600080fd5b823561579d81614eb4565b91506020830135614f3881614eb4565b6060815260006157c06060830186614fa1565b82810360208401526157d28186614fa1565b915050826040830152949350505050565b600181811c908216806157f757607f821691505b60208210810361446557634e487b7160e01b600052602260045260246000fd5b601f82111561160057600081815260208120601f850160051c8101602086101561583e5750805b601f850160051c820191505b8181101561585d5782815560010161584a565b505050505050565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561589357615893615039565b6158a7816158a184546157e3565b84615817565b602080601f8311600181146158d657600084156158c45750858301515b6158ce8582615865565b86555061585d565b600085815260208120601f198616915b82811015615905578886015182559484019460019091019084016158e6565b50858210156159235787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161597157615971615949565b5060010190565b602080825260189082015277417373657420696e646578206f7574206f662072616e676560401b604082015260600190565b6060815260006159bd6060830186614fa1565b90506159cc60208301856152e5565b62ffffff83166040830152949350505050565b634e487b7160e01b600052601260045260246000fd5b600082615a0457615a046159df565b500490565b6001600160a01b0394851681529290931660208301526001600160e01b0319166040820152606081019190915260800190565b600060208284031215615a4e57600080fd5b8151614f76816155ab565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b6001600160a01b039586168152938516602085015260408401929092529092166060820152608081019190915260a00190565b6001600160401b03831115615af157615af1615039565b615b0583615aff83546157e3565b83615817565b6000601f841160018114615b335760008515615b215750838201355b615b2b8682615865565b845550615b8d565b600083815260209020601f19861690835b82811015615b645786850135825560209485019460019092019101615b44565b5086821015615b815760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b602080825260189082015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604082015260600190565b62ffffff818116838216019080821115615c1157615c11615949565b5092915050565b80820281158282048414176113c6576113c6615949565b818103818111156113c6576113c6615949565b62ffffff828116828216039080821115615c1157615c11615949565b818103615c69575050565b615c7382546157e3565b6001600160401b03811115615c8a57615c8a615039565b615c98816158a184546157e3565b6000601f821160018114615cc65760008315615cb45750848201545b615cbe8482615865565b855550615b8d565b600085815260209020601f19841690600086815260209020845b83811015615d005782860154825560019586019590910190602001615ce0565b50858310156159235793015460001960f8600387901b161c19169092555050600190811b01905550565b808201808211156113c6576113c6615949565b60008351615d4f818460208801614f7d565b835190830190615d63818360208801614f7d565b01949350505050565b6001600160f81b03818116838216019080821115615c1157615c11615949565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b03191660388301528251615dde81604c850160208701614f7d565b91909101604c01949350505050565b600060208284031215615dff57600080fd5b81516001600160401b03811115615e1557600080fd5b8201601f81018413615e2657600080fd5b8051615e346150b48261507f565b818152856020838501011115615e4957600080fd5b6124cf826020830160208601614f7d565b600060ff821660ff8103615e7057615e70615949565b60010192915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600082615eda57615eda6159df565b500690565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615f1290830184614fa1565b9695505050505050565b600060208284031215615f2e57600080fd5b8151614f7681614f4356fe8b810f233ce7ee6e962ab4d98bf0277751de1f5589de3dcc812ac2047994d009b96a30340e86d03ce4be42f94ac02d7b27b4a4cdae942beb69026718dfe66afca26469706673582212201931e895168345ea613eafd7bd28c073402253e1fde63dbd94e54fcfd46825e764736f6c63430008130033",
2261
+ "linkReferences": {
2262
+ "contracts/libs/0.8.x/BytecodeStorageV1.sol": {
2263
+ "BytecodeStorageReader": [
2264
+ {
2265
+ "length": 20,
2266
+ "start": 21433
2267
+ }
2268
+ ]
2269
+ }
2270
+ },
2271
+ "deployedLinkReferences": {
2272
+ "contracts/libs/0.8.x/BytecodeStorageV1.sol": {
2273
+ "BytecodeStorageReader": [
2274
+ {
2275
+ "length": 20,
2276
+ "start": 18271
2277
+ }
2278
+ ]
2279
+ }
2280
+ }
2281
+ }