@artblocks/contracts 1.0.4 → 1.2.0

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 (289) hide show
  1. package/README.md +75 -7
  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 +336 -131
  5. package/artifacts/contracts/archive/GenArt721CoreV3.sol/GenArt721CoreV3.json +2047 -0
  6. package/artifacts/contracts/archive/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2021 -0
  7. package/artifacts/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol/MinterBase.json +1 -1
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  10. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol/MinterDAExpV4.json +3 -3
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  12. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +2 -2
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +1109 -0
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  16. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol/MinterDALinV4.json +3 -3
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  20. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol/MinterHolderV4.json +3 -3
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  25. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol/MinterMerkleV5.json +3 -3
  26. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +31 -63
  27. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol/MinterPolyptychV0.json +3 -3
  28. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol/MinterSEAV0.json +3 -3
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  31. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol/MinterSetPriceV4.json +3 -3
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +65 -2
  33. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +65 -2
  34. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  35. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  36. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +807 -0
  37. package/artifacts/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +65 -2
  38. package/artifacts/contracts/engine/V2/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +65 -2
  39. package/artifacts/contracts/engine/V3/EngineFactoryV0.sol/EngineFactoryV0.json +606 -0
  40. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +565 -209
  41. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +785 -227
  42. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +40 -15
  43. package/artifacts/contracts/engine/V3/forks/PROHIBITION/AdminACLV0_PROHIBITION.sol/AdminACLV0_PROHIBITION.json +2 -2
  44. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +40 -15
  45. package/artifacts/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.json +36 -68
  46. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +12 -12
  47. package/artifacts/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol/IAdminACLV0_Extended.json +140 -0
  48. package/artifacts/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol/IBytecodeStorageReaderV2.json +130 -0
  49. package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +6 -6
  50. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +71 -39
  51. package/artifacts/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol/IEngineFactoryV0.json +283 -0
  52. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +12 -12
  53. package/artifacts/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +12 -12
  54. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +30 -62
  55. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +30 -62
  56. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +170 -104
  57. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol/IGenArt721CoreContractV3_Engine_Flex.json +170 -104
  58. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.json +1028 -0
  59. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol/IGenArt721CoreContractV3_Engine_PreV3p2.json +741 -0
  60. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol/IGenArt721CoreContractV3_ProjectFinance.json +87 -0
  61. package/artifacts/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol/IGenArt721Minter_PBAB.json +279 -0
  62. package/artifacts/contracts/interfaces/v0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +22 -22
  63. package/artifacts/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol/IPseudorandomAtomic.json +1 -1
  64. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +26 -101
  65. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +1 -57
  66. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +1 -57
  67. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +2 -21
  68. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol/ISharedMinterHolderERC20V0.json +158 -0
  69. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +15 -90
  70. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +10 -36
  71. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol/ISharedMinterRAMV0.json +62 -0
  72. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol/ISharedMinterRequired.json +37 -0
  73. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +4 -236
  74. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +5 -5
  75. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +7 -423
  76. package/artifacts/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +17 -17
  77. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol/ISplitAtomicFactoryV0.json +170 -0
  78. package/artifacts/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol/ISplitAtomicV0.json +126 -0
  79. package/artifacts/contracts/interfaces/v0.8.x/ISplitProviderV0.sol/ISplitProviderV0.json +98 -0
  80. package/artifacts/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol/ISplitFactoryV2.json +123 -0
  81. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +2 -2
  82. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +2 -2
  83. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +2 -2
  84. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +2 -2
  85. package/artifacts/contracts/libs/integration-refs/weth9/weth9.sol/WETH9_.json +2 -2
  86. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
  87. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  88. package/artifacts/contracts/libs/v0.8.x/BitMap.sol/BitMaps256.json +10 -0
  89. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV0.sol/BytecodeStorage.json +2 -2
  90. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageReader.json +2 -2
  91. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV1.sol/BytecodeStorageWriter.json +2 -2
  92. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageReader.json +214 -0
  93. package/artifacts/contracts/libs/v0.8.x/BytecodeStorageV2.sol/BytecodeStorageWriter.json +10 -0
  94. package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  95. package/artifacts/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol/DependencyRegistryStorageLib.json +10 -0
  96. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +2 -2
  97. package/artifacts/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol/ERC721_PackedHashSeedV1.json +444 -0
  98. package/artifacts/contracts/libs/v0.8.x/PackedBools.sol/PackedBools.json +10 -0
  99. package/artifacts/contracts/libs/v0.8.x/SSTORE2.sol/SSTORE2.json +2 -2
  100. package/artifacts/contracts/libs/v0.8.x/V3FlexLib.sol/V3FlexLib.json +208 -0
  101. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +60 -3
  102. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +30 -0
  103. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +60 -3
  104. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +346 -0
  105. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +29 -3
  106. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +30 -3
  107. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  108. package/artifacts/contracts/libs/v0.8.x/minter-libs/RAMLib.sol/RAMLib.json +398 -0
  109. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +254 -3
  110. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +48 -3
  111. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +41 -3
  112. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +35 -3
  113. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +79 -3
  114. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  115. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +41 -41
  116. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +66 -632
  117. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +67 -594
  118. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +33 -524
  119. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +66 -632
  120. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +33 -524
  121. package/artifacts/contracts/minter-suite/Minters/MinterRAMV0.sol/MinterRAMV0.json +1374 -0
  122. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +56 -722
  123. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +58 -454
  124. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +61 -552
  125. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +55 -497
  126. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +110 -571
  127. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +69 -560
  128. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +28 -444
  129. package/artifacts/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol/MinterSetPriceV5_SingleCore.json +417 -0
  130. package/artifacts/contracts/mock/BytecodeV2LibCallsMock.sol/BytecodeV2LibCallsMock.json +154 -0
  131. package/artifacts/contracts/mock/BytecodeV2TextCR_DMock.sol/BytecodeV2TextCR_DMock.json +428 -0
  132. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  133. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +2 -2
  134. package/artifacts/contracts/mock/ForceSendMock.sol/ForceSendMock.json +24 -0
  135. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +4 -9
  136. package/artifacts/contracts/mock/Mock0xSplitsV2PullFactory.sol/Mock0xSplitsV2PullFactory.json +149 -0
  137. package/artifacts/contracts/mock/Mock0xSplitsV2Splitter.sol/Mock0xSplitsV2Splitter.json +99 -0
  138. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +20 -2
  139. package/artifacts/contracts/mock/MockAdminACLV0_PROHIBITION.sol/MockAdminACLV0Events_PROHIBITION.json +20 -2
  140. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  141. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +2 -2
  142. package/artifacts/contracts/mock/ReentrancyGenArt721MinterMock.sol/ReentrancyGenArt721MinterMock.json +100 -0
  143. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +2 -2
  144. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +136 -0
  145. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +2 -2
  146. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +105 -0
  147. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +2 -2
  148. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +100 -0
  149. package/artifacts/contracts/mock/ReentrancySEAMock.sol/ReentrancySEAAutoBidderMock.json +2 -2
  150. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +69 -0
  151. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterDrainETHMock.json +54 -0
  152. package/artifacts/contracts/mock/ReentrancySplitterMocks.sol/ReentrancySplitterSendETHMock.json +54 -0
  153. package/artifacts/contracts/randomizer/deprecated/PolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +2 -2
  154. package/artifacts/contracts/randomizer/deprecated/RandomizerV2.sol/BasicRandomizerV2.json +2 -2
  155. package/artifacts/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol/PseudorandomAtomic.json +2 -2
  156. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +19 -19
  157. package/artifacts/contracts/split/SplitAtomicFactoryV0.sol/SplitAtomicFactoryV0.json +203 -0
  158. package/artifacts/contracts/split/SplitAtomicV0.sol/SplitAtomicV0.json +168 -0
  159. package/artifacts/contracts/split/split-provider/SplitProviderV0.sol/SplitProviderV0.json +141 -0
  160. package/contracts/AdminACLV0.sol +6 -2
  161. package/contracts/AdminACLV1.sol +2 -2
  162. package/contracts/DependencyRegistryV0.sol +737 -390
  163. package/contracts/{GenArt721CoreV3.sol → archive/GenArt721CoreV3.sol} +56 -20
  164. package/contracts/{explorations → archive}/GenArt721CoreV3_Explorations.sol +49 -13
  165. package/contracts/{minter-suite → archive/minter-suite}/Minters/MinterBase_v0_1_1.sol +4 -4
  166. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExp}/MinterDAExpV4.sol +4 -4
  167. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +4 -4
  168. package/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV1.sol +5 -5
  169. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV2.sol +9 -62
  170. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDALin}/MinterDALinV4.sol +4 -4
  171. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterHolder}/MinterHolderV4.sol +5 -5
  172. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterMerkle}/MinterMerkleV5.sol +5 -5
  173. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterPolyptych}/MinterPolyptychV0.sol +7 -7
  174. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSEA}/MinterSEAV0.sol +13 -13
  175. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPrice}/MinterSetPriceV4.sol +4 -4
  176. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol +82 -10
  177. package/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol +82 -10
  178. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterSetPriceERC20}/MinterSetPriceERC20V4.sol +88 -21
  179. package/contracts/engine/V2/GenArt721MinterBurner_PBAB.sol +81 -22
  180. package/contracts/engine/V2/GenArt721Minter_PBAB.sol +80 -22
  181. package/contracts/engine/V3/EngineFactoryV0.sol +419 -0
  182. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +893 -493
  183. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +1053 -655
  184. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +7 -13
  185. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +5 -11
  186. package/contracts/engine/V3/forks/PROHIBITION/interfaces/IGenArt721CoreContractV3_Engine_Flex_PROHIBITION.sol +2 -2
  187. package/contracts/engine-registry/CoreRegistryV1.sol +58 -65
  188. package/contracts/interfaces/v0.8.x/IAdminACLV0_Extended.sol +20 -0
  189. package/contracts/interfaces/v0.8.x/IBytecodeStorageReaderV2.sol +23 -0
  190. package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +6 -8
  191. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +48 -43
  192. package/contracts/interfaces/v0.8.x/IEngineFactoryV0.sol +124 -0
  193. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV0.sol +1 -3
  194. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpSettlementV1.sol +1 -3
  195. package/contracts/interfaces/v0.8.x/IFilteredMinterDAExpV1.sol +1 -3
  196. package/contracts/interfaces/v0.8.x/IFilteredMinterDALinV1.sol +1 -3
  197. package/contracts/interfaces/v0.8.x/IFilteredMinterHolderV2.sol +1 -3
  198. package/contracts/interfaces/v0.8.x/IFilteredMinterMerkleV2.sol +1 -3
  199. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Base.sol +115 -11
  200. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine.sol +84 -8
  201. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex.sol +26 -8
  202. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_Flex_PreV3p2.sol +141 -0
  203. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_Engine_PreV3p2.sol +78 -0
  204. package/contracts/interfaces/v0.8.x/IGenArt721CoreContractV3_ProjectFinance.sol +47 -0
  205. package/contracts/interfaces/v0.8.x/IGenArt721Minter_PBAB.sol +91 -0
  206. package/contracts/interfaces/v0.8.x/IMinterFilterV1.sol +25 -25
  207. package/contracts/interfaces/v0.8.x/IPseudorandomAtomic.sol +1 -3
  208. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +30 -20
  209. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +1 -14
  210. package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +1 -15
  211. package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +2 -8
  212. package/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol +47 -0
  213. package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +15 -43
  214. package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +10 -20
  215. package/contracts/interfaces/v0.8.x/ISharedMinterRAMV0.sol +23 -0
  216. package/contracts/interfaces/v0.8.x/ISharedMinterRequired.sol +20 -0
  217. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +1 -67
  218. package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +5 -5
  219. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +18 -160
  220. package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +37 -37
  221. package/contracts/interfaces/v0.8.x/ISplitAtomicFactoryV0.sol +81 -0
  222. package/contracts/interfaces/v0.8.x/ISplitAtomicV0.sol +72 -0
  223. package/contracts/interfaces/v0.8.x/ISplitProviderV0.sol +49 -0
  224. package/contracts/interfaces/v0.8.x/integration-refs/splits-0x-v2/ISplitFactoryV2.sol +62 -0
  225. package/contracts/libs/v0.8.x/ABHelpers.sol +31 -17
  226. package/contracts/libs/v0.8.x/AuthLib.sol +101 -102
  227. package/contracts/libs/v0.8.x/BitMap.sol +112 -0
  228. package/contracts/libs/v0.8.x/BytecodeStorageV2.sol +593 -0
  229. package/contracts/libs/v0.8.x/Bytes32Strings.sol +5 -5
  230. package/contracts/libs/v0.8.x/DependencyRegistryStorageLib.sol +90 -0
  231. package/contracts/libs/v0.8.x/ERC721_PackedHashSeedV1.sol +591 -0
  232. package/contracts/libs/v0.8.x/PackedBools.sol +42 -0
  233. package/contracts/libs/v0.8.x/V3FlexLib.sol +591 -0
  234. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +162 -39
  235. package/contracts/libs/v0.8.x/minter-libs/DALib.sol +26 -0
  236. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +139 -37
  237. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +171 -0
  238. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +299 -158
  239. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +268 -55
  240. package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +138 -58
  241. package/contracts/libs/v0.8.x/minter-libs/RAMLib.sol +2927 -0
  242. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +796 -123
  243. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +131 -13
  244. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +607 -224
  245. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +494 -330
  246. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +217 -78
  247. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +358 -309
  248. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +391 -491
  249. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +396 -632
  250. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +212 -273
  251. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +393 -488
  252. package/contracts/minter-suite/Minters/MinterDALinV5.sol +220 -277
  253. package/contracts/minter-suite/Minters/MinterRAMV0.sol +1205 -0
  254. package/contracts/minter-suite/Minters/MinterSEAV1.sol +329 -677
  255. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +287 -303
  256. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +355 -446
  257. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +328 -416
  258. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +552 -622
  259. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +429 -553
  260. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +180 -227
  261. package/contracts/minter-suite/Minters/one-off/MinterSetPriceV5_SingleCore.sol +446 -0
  262. package/contracts/mock/BytecodeV2LibCallsMock.sol +128 -0
  263. package/contracts/mock/BytecodeV2TextCR_DMock.sol +316 -0
  264. package/contracts/mock/ForceSendMock.sol +22 -0
  265. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +3 -10
  266. package/contracts/mock/Mock0xSplitsV2PullFactory.sol +75 -0
  267. package/contracts/mock/Mock0xSplitsV2Splitter.sol +47 -0
  268. package/contracts/mock/MockAdminACLV0.sol +21 -0
  269. package/contracts/mock/MockAdminACLV0_PROHIBITION.sol +21 -0
  270. package/contracts/mock/ReentrancyGenArt721MinterMock.sol +47 -0
  271. package/contracts/mock/ReentrancyHolderMockShared.sol +59 -0
  272. package/contracts/mock/ReentrancyMerkleMockShared.sol +58 -0
  273. package/contracts/mock/ReentrancyMockShared.sol +48 -0
  274. package/contracts/mock/ReentrancySEAMockShared.sol +40 -0
  275. package/contracts/mock/ReentrancySplitterMocks.sol +67 -0
  276. package/contracts/randomizer/primitive/PseudorandomAtomicBasic.sol +1 -1
  277. package/contracts/randomizer/shared/SharedRandomizerV0.sol +79 -71
  278. package/contracts/split/SplitAtomicFactoryV0.sol +121 -0
  279. package/contracts/split/SplitAtomicV0.sol +265 -0
  280. package/contracts/split/split-provider/SplitProviderV0.sol +201 -0
  281. package/package.json +79 -45
  282. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +0 -1965
  283. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +0 -1939
  284. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +0 -1127
  285. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +0 -768
  286. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +0 -208
  287. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +0 -301
  288. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +0 -168
  289. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +0 -221
@@ -9,25 +9,31 @@
9
9
  {
10
10
  "indexed": true,
11
11
  "internalType": "bytes32",
12
- "name": "_dependencyType",
12
+ "name": "dependencyNameAndVersion",
13
+ "type": "bytes32"
14
+ },
15
+ {
16
+ "indexed": true,
17
+ "internalType": "bytes32",
18
+ "name": "licenseType",
13
19
  "type": "bytes32"
14
20
  },
15
21
  {
16
22
  "indexed": false,
17
23
  "internalType": "string",
18
- "name": "_preferredCDN",
24
+ "name": "preferredCDN",
19
25
  "type": "string"
20
26
  },
21
27
  {
22
28
  "indexed": false,
23
29
  "internalType": "string",
24
- "name": "_preferredRepository",
30
+ "name": "preferredRepository",
25
31
  "type": "string"
26
32
  },
27
33
  {
28
34
  "indexed": false,
29
35
  "internalType": "string",
30
- "name": "_referenceWebsite",
36
+ "name": "website",
31
37
  "type": "string"
32
38
  }
33
39
  ],
@@ -40,13 +46,13 @@
40
46
  {
41
47
  "indexed": true,
42
48
  "internalType": "bytes32",
43
- "name": "_dependencyType",
49
+ "name": "dependencyNameAndVersion",
44
50
  "type": "bytes32"
45
51
  },
46
52
  {
47
53
  "indexed": true,
48
54
  "internalType": "uint256",
49
- "name": "_additionalCDNIndex",
55
+ "name": "additionalCDNIndex",
50
56
  "type": "uint256"
51
57
  }
52
58
  ],
@@ -59,19 +65,19 @@
59
65
  {
60
66
  "indexed": true,
61
67
  "internalType": "bytes32",
62
- "name": "_dependencyType",
68
+ "name": "dependencyNameAndVersion",
63
69
  "type": "bytes32"
64
70
  },
65
71
  {
66
72
  "indexed": false,
67
73
  "internalType": "string",
68
- "name": "_additionalCDN",
74
+ "name": "additionalCDN",
69
75
  "type": "string"
70
76
  },
71
77
  {
72
78
  "indexed": false,
73
79
  "internalType": "uint256",
74
- "name": "_additionalCDNIndex",
80
+ "name": "additionalCDNIndex",
75
81
  "type": "uint256"
76
82
  }
77
83
  ],
@@ -84,13 +90,13 @@
84
90
  {
85
91
  "indexed": true,
86
92
  "internalType": "bytes32",
87
- "name": "_dependencyType",
93
+ "name": "dependencyNameAndVersion",
88
94
  "type": "bytes32"
89
95
  },
90
96
  {
91
97
  "indexed": true,
92
98
  "internalType": "uint256",
93
- "name": "_additionalRepositoryIndex",
99
+ "name": "additionalRepositoryIndex",
94
100
  "type": "uint256"
95
101
  }
96
102
  ],
@@ -103,19 +109,19 @@
103
109
  {
104
110
  "indexed": true,
105
111
  "internalType": "bytes32",
106
- "name": "_dependencyType",
112
+ "name": "dependencyNameAndVersion",
107
113
  "type": "bytes32"
108
114
  },
109
115
  {
110
116
  "indexed": false,
111
117
  "internalType": "string",
112
- "name": "_additionalRepository",
118
+ "name": "additionalRepository",
113
119
  "type": "string"
114
120
  },
115
121
  {
116
122
  "indexed": false,
117
123
  "internalType": "uint256",
118
- "name": "_additionalRepositoryIndex",
124
+ "name": "additionalRepositoryIndex",
119
125
  "type": "uint256"
120
126
  }
121
127
  ],
@@ -128,13 +134,13 @@
128
134
  {
129
135
  "indexed": true,
130
136
  "internalType": "bytes32",
131
- "name": "_dependencyType",
137
+ "name": "dependencyNameAndVersion",
132
138
  "type": "bytes32"
133
139
  },
134
140
  {
135
141
  "indexed": false,
136
142
  "internalType": "string",
137
- "name": "_preferredCDN",
143
+ "name": "preferredCDN",
138
144
  "type": "string"
139
145
  }
140
146
  ],
@@ -147,13 +153,13 @@
147
153
  {
148
154
  "indexed": true,
149
155
  "internalType": "bytes32",
150
- "name": "_dependencyType",
156
+ "name": "dependencyNameAndVersion",
151
157
  "type": "bytes32"
152
158
  },
153
159
  {
154
160
  "indexed": false,
155
161
  "internalType": "string",
156
- "name": "_preferredRepository",
162
+ "name": "preferredRepository",
157
163
  "type": "string"
158
164
  }
159
165
  ],
@@ -166,17 +172,11 @@
166
172
  {
167
173
  "indexed": true,
168
174
  "internalType": "bytes32",
169
- "name": "_dependencyType",
175
+ "name": "dependencyNameAndVersion",
170
176
  "type": "bytes32"
171
- },
172
- {
173
- "indexed": false,
174
- "internalType": "string",
175
- "name": "_referenceWebsite",
176
- "type": "string"
177
177
  }
178
178
  ],
179
- "name": "DependencyReferenceWebsiteUpdated",
179
+ "name": "DependencyRemoved",
180
180
  "type": "event"
181
181
  },
182
182
  {
@@ -185,11 +185,11 @@
185
185
  {
186
186
  "indexed": true,
187
187
  "internalType": "bytes32",
188
- "name": "_dependencyType",
188
+ "name": "dependencyNameAndVersion",
189
189
  "type": "bytes32"
190
190
  }
191
191
  ],
192
- "name": "DependencyRemoved",
192
+ "name": "DependencyScriptUpdated",
193
193
  "type": "event"
194
194
  },
195
195
  {
@@ -198,11 +198,17 @@
198
198
  {
199
199
  "indexed": true,
200
200
  "internalType": "bytes32",
201
- "name": "_dependencyType",
201
+ "name": "dependencyNameAndVersion",
202
202
  "type": "bytes32"
203
+ },
204
+ {
205
+ "indexed": false,
206
+ "internalType": "string",
207
+ "name": "website",
208
+ "type": "string"
203
209
  }
204
210
  ],
205
- "name": "DependencyScriptUpdated",
211
+ "name": "DependencyWebsiteUpdated",
206
212
  "type": "event"
207
213
  },
208
214
  {
@@ -218,6 +224,32 @@
218
224
  "name": "Initialized",
219
225
  "type": "event"
220
226
  },
227
+ {
228
+ "anonymous": false,
229
+ "inputs": [
230
+ {
231
+ "indexed": true,
232
+ "internalType": "bytes32",
233
+ "name": "licenseType",
234
+ "type": "bytes32"
235
+ }
236
+ ],
237
+ "name": "LicenseTextUpdated",
238
+ "type": "event"
239
+ },
240
+ {
241
+ "anonymous": false,
242
+ "inputs": [
243
+ {
244
+ "indexed": true,
245
+ "internalType": "bytes32",
246
+ "name": "licenseType",
247
+ "type": "bytes32"
248
+ }
249
+ ],
250
+ "name": "LicenseTypeAdded",
251
+ "type": "event"
252
+ },
221
253
  {
222
254
  "anonymous": false,
223
255
  "inputs": [
@@ -243,23 +275,23 @@
243
275
  {
244
276
  "indexed": true,
245
277
  "internalType": "address",
246
- "name": "_coreContractAddress",
278
+ "name": "coreContractAddress",
247
279
  "type": "address"
248
280
  },
249
281
  {
250
282
  "indexed": true,
251
283
  "internalType": "uint256",
252
- "name": "_projectId",
284
+ "name": "projectId",
253
285
  "type": "uint256"
254
286
  },
255
287
  {
256
288
  "indexed": false,
257
289
  "internalType": "bytes32",
258
- "name": "_dependencyType",
290
+ "name": "dependencyNameAndVersion",
259
291
  "type": "bytes32"
260
292
  }
261
293
  ],
262
- "name": "ProjectDependencyTypeOverrideAdded",
294
+ "name": "ProjectDependencyOverrideAdded",
263
295
  "type": "event"
264
296
  },
265
297
  {
@@ -268,17 +300,17 @@
268
300
  {
269
301
  "indexed": true,
270
302
  "internalType": "address",
271
- "name": "_coreContractAddress",
303
+ "name": "coreContractAddress",
272
304
  "type": "address"
273
305
  },
274
306
  {
275
307
  "indexed": true,
276
308
  "internalType": "uint256",
277
- "name": "_projectId",
309
+ "name": "projectId",
278
310
  "type": "uint256"
279
311
  }
280
312
  ],
281
- "name": "ProjectDependencyTypeOverrideRemoved",
313
+ "name": "ProjectDependencyOverrideRemoved",
282
314
  "type": "event"
283
315
  },
284
316
  {
@@ -287,7 +319,7 @@
287
319
  {
288
320
  "indexed": true,
289
321
  "internalType": "address",
290
- "name": "_coreContractAddress",
322
+ "name": "coreContractAddress",
291
323
  "type": "address"
292
324
  }
293
325
  ],
@@ -300,7 +332,7 @@
300
332
  {
301
333
  "indexed": true,
302
334
  "internalType": "address",
303
- "name": "_coreContractAddress",
335
+ "name": "coreContractAddress",
304
336
  "type": "address"
305
337
  }
306
338
  ],
@@ -311,22 +343,27 @@
311
343
  "inputs": [
312
344
  {
313
345
  "internalType": "bytes32",
314
- "name": "_dependencyType",
346
+ "name": "dependencyNameAndVersion",
347
+ "type": "bytes32"
348
+ },
349
+ {
350
+ "internalType": "bytes32",
351
+ "name": "licenseType",
315
352
  "type": "bytes32"
316
353
  },
317
354
  {
318
355
  "internalType": "string",
319
- "name": "_preferredCDN",
356
+ "name": "preferredCDN",
320
357
  "type": "string"
321
358
  },
322
359
  {
323
360
  "internalType": "string",
324
- "name": "_preferredRepository",
361
+ "name": "preferredRepository",
325
362
  "type": "string"
326
363
  },
327
364
  {
328
365
  "internalType": "string",
329
- "name": "_referenceWebsite",
366
+ "name": "dependencyWebsite",
330
367
  "type": "string"
331
368
  }
332
369
  ],
@@ -339,12 +376,12 @@
339
376
  "inputs": [
340
377
  {
341
378
  "internalType": "bytes32",
342
- "name": "_dependencyType",
379
+ "name": "dependencyNameAndVersion",
343
380
  "type": "bytes32"
344
381
  },
345
382
  {
346
383
  "internalType": "string",
347
- "name": "_additionalCDN",
384
+ "name": "additionalCDN",
348
385
  "type": "string"
349
386
  }
350
387
  ],
@@ -357,12 +394,12 @@
357
394
  "inputs": [
358
395
  {
359
396
  "internalType": "bytes32",
360
- "name": "_dependencyType",
397
+ "name": "dependencyNameAndVersion",
361
398
  "type": "bytes32"
362
399
  },
363
400
  {
364
401
  "internalType": "string",
365
- "name": "_additionalRepository",
402
+ "name": "additionalRepository",
366
403
  "type": "string"
367
404
  }
368
405
  ],
@@ -375,12 +412,12 @@
375
412
  "inputs": [
376
413
  {
377
414
  "internalType": "bytes32",
378
- "name": "_dependencyType",
415
+ "name": "dependencyNameAndVersion",
379
416
  "type": "bytes32"
380
417
  },
381
418
  {
382
419
  "internalType": "string",
383
- "name": "_script",
420
+ "name": "script",
384
421
  "type": "string"
385
422
  }
386
423
  ],
@@ -393,12 +430,12 @@
393
430
  "inputs": [
394
431
  {
395
432
  "internalType": "bytes32",
396
- "name": "_dependencyType",
433
+ "name": "dependencyNameAndVersion",
397
434
  "type": "bytes32"
398
435
  },
399
436
  {
400
437
  "internalType": "address",
401
- "name": "_scriptPointer",
438
+ "name": "scriptPointer",
402
439
  "type": "address"
403
440
  }
404
441
  ],
@@ -407,25 +444,56 @@
407
444
  "stateMutability": "nonpayable",
408
445
  "type": "function"
409
446
  },
447
+ {
448
+ "inputs": [
449
+ {
450
+ "internalType": "bytes32",
451
+ "name": "licenseType",
452
+ "type": "bytes32"
453
+ },
454
+ {
455
+ "internalType": "string",
456
+ "name": "text",
457
+ "type": "string"
458
+ }
459
+ ],
460
+ "name": "addLicenseText",
461
+ "outputs": [],
462
+ "stateMutability": "nonpayable",
463
+ "type": "function"
464
+ },
465
+ {
466
+ "inputs": [
467
+ {
468
+ "internalType": "bytes32",
469
+ "name": "licenseType",
470
+ "type": "bytes32"
471
+ }
472
+ ],
473
+ "name": "addLicenseType",
474
+ "outputs": [],
475
+ "stateMutability": "nonpayable",
476
+ "type": "function"
477
+ },
410
478
  {
411
479
  "inputs": [
412
480
  {
413
481
  "internalType": "address",
414
- "name": "_contractAddress",
482
+ "name": "contractAddress",
415
483
  "type": "address"
416
484
  },
417
485
  {
418
486
  "internalType": "uint256",
419
- "name": "_projectId",
487
+ "name": "projectId",
420
488
  "type": "uint256"
421
489
  },
422
490
  {
423
491
  "internalType": "bytes32",
424
- "name": "_dependencyType",
492
+ "name": "dependencyNameAndVersion",
425
493
  "type": "bytes32"
426
494
  }
427
495
  ],
428
- "name": "addProjectDependencyTypeOverride",
496
+ "name": "addProjectDependencyOverride",
429
497
  "outputs": [],
430
498
  "stateMutability": "nonpayable",
431
499
  "type": "function"
@@ -434,7 +502,7 @@
434
502
  "inputs": [
435
503
  {
436
504
  "internalType": "address",
437
- "name": "_contractAddress",
505
+ "name": "contractAddress",
438
506
  "type": "address"
439
507
  }
440
508
  ],
@@ -447,17 +515,17 @@
447
515
  "inputs": [
448
516
  {
449
517
  "internalType": "address",
450
- "name": "_sender",
518
+ "name": "sender",
451
519
  "type": "address"
452
520
  },
453
521
  {
454
522
  "internalType": "address",
455
- "name": "_contract",
523
+ "name": "contract_",
456
524
  "type": "address"
457
525
  },
458
526
  {
459
527
  "internalType": "bytes4",
460
- "name": "_selector",
528
+ "name": "selector",
461
529
  "type": "bytes4"
462
530
  }
463
531
  ],
@@ -477,7 +545,7 @@
477
545
  "name": "adminACLContract",
478
546
  "outputs": [
479
547
  {
480
- "internalType": "contract IAdminACLV0",
548
+ "internalType": "address",
481
549
  "name": "",
482
550
  "type": "address"
483
551
  }
@@ -489,12 +557,12 @@
489
557
  "inputs": [
490
558
  {
491
559
  "internalType": "bytes32",
492
- "name": "_dependencyType",
560
+ "name": "dependencyNameAndVersion",
493
561
  "type": "bytes32"
494
562
  },
495
563
  {
496
564
  "internalType": "uint256",
497
- "name": "_index",
565
+ "name": "index",
498
566
  "type": "uint256"
499
567
  }
500
568
  ],
@@ -513,12 +581,12 @@
513
581
  "inputs": [
514
582
  {
515
583
  "internalType": "bytes32",
516
- "name": "_dependencyType",
584
+ "name": "dependencyNameAndVersion",
517
585
  "type": "bytes32"
518
586
  },
519
587
  {
520
588
  "internalType": "uint256",
521
- "name": "_index",
589
+ "name": "index",
522
590
  "type": "uint256"
523
591
  }
524
592
  ],
@@ -533,11 +601,24 @@
533
601
  "stateMutability": "view",
534
602
  "type": "function"
535
603
  },
604
+ {
605
+ "inputs": [],
606
+ "name": "getDependencyCount",
607
+ "outputs": [
608
+ {
609
+ "internalType": "uint256",
610
+ "name": "",
611
+ "type": "uint256"
612
+ }
613
+ ],
614
+ "stateMutability": "view",
615
+ "type": "function"
616
+ },
536
617
  {
537
618
  "inputs": [
538
619
  {
539
620
  "internalType": "bytes32",
540
- "name": "_dependencyType",
621
+ "name": "dependencyNameAndVersion",
541
622
  "type": "bytes32"
542
623
  }
543
624
  ],
@@ -545,7 +626,12 @@
545
626
  "outputs": [
546
627
  {
547
628
  "internalType": "string",
548
- "name": "typeAndVersion",
629
+ "name": "nameAndVersion",
630
+ "type": "string"
631
+ },
632
+ {
633
+ "internalType": "string",
634
+ "name": "licenseType",
549
635
  "type": "string"
550
636
  },
551
637
  {
@@ -570,7 +656,7 @@
570
656
  },
571
657
  {
572
658
  "internalType": "string",
573
- "name": "referenceWebsite",
659
+ "name": "dependencyWebsite",
574
660
  "type": "string"
575
661
  },
576
662
  {
@@ -587,16 +673,72 @@
587
673
  "stateMutability": "view",
588
674
  "type": "function"
589
675
  },
676
+ {
677
+ "inputs": [
678
+ {
679
+ "internalType": "uint256",
680
+ "name": "index",
681
+ "type": "uint256"
682
+ }
683
+ ],
684
+ "name": "getDependencyNameAndVersion",
685
+ "outputs": [
686
+ {
687
+ "internalType": "string",
688
+ "name": "",
689
+ "type": "string"
690
+ }
691
+ ],
692
+ "stateMutability": "view",
693
+ "type": "function"
694
+ },
695
+ {
696
+ "inputs": [
697
+ {
698
+ "internalType": "address",
699
+ "name": "contractAddress",
700
+ "type": "address"
701
+ },
702
+ {
703
+ "internalType": "uint256",
704
+ "name": "projectId",
705
+ "type": "uint256"
706
+ }
707
+ ],
708
+ "name": "getDependencyNameAndVersionForProject",
709
+ "outputs": [
710
+ {
711
+ "internalType": "string",
712
+ "name": "",
713
+ "type": "string"
714
+ }
715
+ ],
716
+ "stateMutability": "view",
717
+ "type": "function"
718
+ },
719
+ {
720
+ "inputs": [],
721
+ "name": "getDependencyNamesAndVersions",
722
+ "outputs": [
723
+ {
724
+ "internalType": "string[]",
725
+ "name": "",
726
+ "type": "string[]"
727
+ }
728
+ ],
729
+ "stateMutability": "view",
730
+ "type": "function"
731
+ },
590
732
  {
591
733
  "inputs": [
592
734
  {
593
735
  "internalType": "bytes32",
594
- "name": "_dependencyType",
736
+ "name": "dependencyNameAndVersion",
595
737
  "type": "bytes32"
596
738
  },
597
739
  {
598
740
  "internalType": "uint256",
599
- "name": "_index",
741
+ "name": "index",
600
742
  "type": "uint256"
601
743
  }
602
744
  ],
@@ -615,12 +757,12 @@
615
757
  "inputs": [
616
758
  {
617
759
  "internalType": "bytes32",
618
- "name": "_dependencyType",
760
+ "name": "dependencyNameAndVersion",
619
761
  "type": "bytes32"
620
762
  },
621
763
  {
622
764
  "internalType": "uint256",
623
- "name": "_index",
765
+ "name": "index",
624
766
  "type": "uint256"
625
767
  }
626
768
  ],
@@ -639,12 +781,12 @@
639
781
  "inputs": [
640
782
  {
641
783
  "internalType": "bytes32",
642
- "name": "_dependencyType",
784
+ "name": "dependencyNameAndVersion",
643
785
  "type": "bytes32"
644
786
  },
645
787
  {
646
788
  "internalType": "uint256",
647
- "name": "_index",
789
+ "name": "index",
648
790
  "type": "uint256"
649
791
  }
650
792
  ],
@@ -663,7 +805,7 @@
663
805
  "inputs": [
664
806
  {
665
807
  "internalType": "bytes32",
666
- "name": "_dependencyType",
808
+ "name": "dependencyNameAndVersion",
667
809
  "type": "bytes32"
668
810
  }
669
811
  ],
@@ -680,13 +822,18 @@
680
822
  },
681
823
  {
682
824
  "inputs": [
825
+ {
826
+ "internalType": "bytes32",
827
+ "name": "licenseType",
828
+ "type": "bytes32"
829
+ },
683
830
  {
684
831
  "internalType": "uint256",
685
- "name": "_index",
832
+ "name": "index",
686
833
  "type": "uint256"
687
834
  }
688
835
  ],
689
- "name": "getDependencyType",
836
+ "name": "getLicenseText",
690
837
  "outputs": [
691
838
  {
692
839
  "internalType": "string",
@@ -698,8 +845,14 @@
698
845
  "type": "function"
699
846
  },
700
847
  {
701
- "inputs": [],
702
- "name": "getDependencyTypeCount",
848
+ "inputs": [
849
+ {
850
+ "internalType": "bytes32",
851
+ "name": "licenseType",
852
+ "type": "bytes32"
853
+ }
854
+ ],
855
+ "name": "getLicenseTextChunkCount",
703
856
  "outputs": [
704
857
  {
705
858
  "internalType": "uint256",
@@ -712,18 +865,13 @@
712
865
  },
713
866
  {
714
867
  "inputs": [
715
- {
716
- "internalType": "address",
717
- "name": "_contractAddress",
718
- "type": "address"
719
- },
720
868
  {
721
869
  "internalType": "uint256",
722
- "name": "_projectId",
870
+ "name": "index",
723
871
  "type": "uint256"
724
872
  }
725
873
  ],
726
- "name": "getDependencyTypeForProject",
874
+ "name": "getLicenseType",
727
875
  "outputs": [
728
876
  {
729
877
  "internalType": "string",
@@ -736,7 +884,20 @@
736
884
  },
737
885
  {
738
886
  "inputs": [],
739
- "name": "getDependencyTypes",
887
+ "name": "getLicenseTypeCount",
888
+ "outputs": [
889
+ {
890
+ "internalType": "uint256",
891
+ "name": "",
892
+ "type": "uint256"
893
+ }
894
+ ],
895
+ "stateMutability": "view",
896
+ "type": "function"
897
+ },
898
+ {
899
+ "inputs": [],
900
+ "name": "getLicenseTypes",
740
901
  "outputs": [
741
902
  {
742
903
  "internalType": "string[]",
@@ -751,7 +912,7 @@
751
912
  "inputs": [
752
913
  {
753
914
  "internalType": "uint256",
754
- "name": "_index",
915
+ "name": "index",
755
916
  "type": "uint256"
756
917
  }
757
918
  ],
@@ -796,7 +957,7 @@
796
957
  "inputs": [
797
958
  {
798
959
  "internalType": "address",
799
- "name": "_adminACLContract",
960
+ "name": "adminACLContract_",
800
961
  "type": "address"
801
962
  }
802
963
  ],
@@ -841,7 +1002,7 @@
841
1002
  "inputs": [
842
1003
  {
843
1004
  "internalType": "bytes32",
844
- "name": "_dependencyType",
1005
+ "name": "dependencyNameAndVersion",
845
1006
  "type": "bytes32"
846
1007
  }
847
1008
  ],
@@ -854,12 +1015,12 @@
854
1015
  "inputs": [
855
1016
  {
856
1017
  "internalType": "bytes32",
857
- "name": "_dependencyType",
1018
+ "name": "dependencyNameAndVersion",
858
1019
  "type": "bytes32"
859
1020
  },
860
1021
  {
861
1022
  "internalType": "uint256",
862
- "name": "_index",
1023
+ "name": "index",
863
1024
  "type": "uint256"
864
1025
  }
865
1026
  ],
@@ -872,12 +1033,12 @@
872
1033
  "inputs": [
873
1034
  {
874
1035
  "internalType": "bytes32",
875
- "name": "_dependencyType",
1036
+ "name": "dependencyNameAndVersion",
876
1037
  "type": "bytes32"
877
1038
  },
878
1039
  {
879
1040
  "internalType": "uint256",
880
- "name": "_index",
1041
+ "name": "index",
881
1042
  "type": "uint256"
882
1043
  }
883
1044
  ],
@@ -890,7 +1051,7 @@
890
1051
  "inputs": [
891
1052
  {
892
1053
  "internalType": "bytes32",
893
- "name": "_dependencyType",
1054
+ "name": "dependencyNameAndVersion",
894
1055
  "type": "bytes32"
895
1056
  }
896
1057
  ],
@@ -899,20 +1060,33 @@
899
1060
  "stateMutability": "nonpayable",
900
1061
  "type": "function"
901
1062
  },
1063
+ {
1064
+ "inputs": [
1065
+ {
1066
+ "internalType": "bytes32",
1067
+ "name": "licenseType",
1068
+ "type": "bytes32"
1069
+ }
1070
+ ],
1071
+ "name": "removeLicenseLastText",
1072
+ "outputs": [],
1073
+ "stateMutability": "nonpayable",
1074
+ "type": "function"
1075
+ },
902
1076
  {
903
1077
  "inputs": [
904
1078
  {
905
1079
  "internalType": "address",
906
- "name": "_contractAddress",
1080
+ "name": "contractAddress",
907
1081
  "type": "address"
908
1082
  },
909
1083
  {
910
1084
  "internalType": "uint256",
911
- "name": "_projectId",
1085
+ "name": "projectId",
912
1086
  "type": "uint256"
913
1087
  }
914
1088
  ],
915
- "name": "removeProjectDependencyTypeOverride",
1089
+ "name": "removeProjectDependencyOverride",
916
1090
  "outputs": [],
917
1091
  "stateMutability": "nonpayable",
918
1092
  "type": "function"
@@ -921,7 +1095,7 @@
921
1095
  "inputs": [
922
1096
  {
923
1097
  "internalType": "address",
924
- "name": "_contractAddress",
1098
+ "name": "contractAddress",
925
1099
  "type": "address"
926
1100
  }
927
1101
  ],
@@ -954,17 +1128,17 @@
954
1128
  "inputs": [
955
1129
  {
956
1130
  "internalType": "bytes32",
957
- "name": "_dependencyType",
1131
+ "name": "dependencyNameAndVersion",
958
1132
  "type": "bytes32"
959
1133
  },
960
1134
  {
961
1135
  "internalType": "uint256",
962
- "name": "_index",
1136
+ "name": "index",
963
1137
  "type": "uint256"
964
1138
  },
965
1139
  {
966
1140
  "internalType": "string",
967
- "name": "_additionalCDN",
1141
+ "name": "additionalCDN",
968
1142
  "type": "string"
969
1143
  }
970
1144
  ],
@@ -977,17 +1151,17 @@
977
1151
  "inputs": [
978
1152
  {
979
1153
  "internalType": "bytes32",
980
- "name": "_dependencyType",
1154
+ "name": "dependencyNameAndVersion",
981
1155
  "type": "bytes32"
982
1156
  },
983
1157
  {
984
1158
  "internalType": "uint256",
985
- "name": "_index",
1159
+ "name": "index",
986
1160
  "type": "uint256"
987
1161
  },
988
1162
  {
989
1163
  "internalType": "string",
990
- "name": "_additionalRepository",
1164
+ "name": "additionalRepository",
991
1165
  "type": "string"
992
1166
  }
993
1167
  ],
@@ -1000,12 +1174,12 @@
1000
1174
  "inputs": [
1001
1175
  {
1002
1176
  "internalType": "bytes32",
1003
- "name": "_dependencyType",
1177
+ "name": "dependencyNameAndVersion",
1004
1178
  "type": "bytes32"
1005
1179
  },
1006
1180
  {
1007
1181
  "internalType": "string",
1008
- "name": "_preferredCDN",
1182
+ "name": "preferredCDN",
1009
1183
  "type": "string"
1010
1184
  }
1011
1185
  ],
@@ -1018,12 +1192,12 @@
1018
1192
  "inputs": [
1019
1193
  {
1020
1194
  "internalType": "bytes32",
1021
- "name": "_dependencyType",
1195
+ "name": "dependencyNameAndVersion",
1022
1196
  "type": "bytes32"
1023
1197
  },
1024
1198
  {
1025
1199
  "internalType": "string",
1026
- "name": "_preferredRepository",
1200
+ "name": "preferredRepository",
1027
1201
  "type": "string"
1028
1202
  }
1029
1203
  ],
@@ -1036,16 +1210,21 @@
1036
1210
  "inputs": [
1037
1211
  {
1038
1212
  "internalType": "bytes32",
1039
- "name": "_dependencyType",
1213
+ "name": "dependencyNameAndVersion",
1040
1214
  "type": "bytes32"
1041
1215
  },
1216
+ {
1217
+ "internalType": "uint256",
1218
+ "name": "index",
1219
+ "type": "uint256"
1220
+ },
1042
1221
  {
1043
1222
  "internalType": "string",
1044
- "name": "_referenceWebsite",
1223
+ "name": "script",
1045
1224
  "type": "string"
1046
1225
  }
1047
1226
  ],
1048
- "name": "updateDependencyReferenceWebsite",
1227
+ "name": "updateDependencyScript",
1049
1228
  "outputs": [],
1050
1229
  "stateMutability": "nonpayable",
1051
1230
  "type": "function"
@@ -1054,21 +1233,39 @@
1054
1233
  "inputs": [
1055
1234
  {
1056
1235
  "internalType": "bytes32",
1057
- "name": "_dependencyType",
1236
+ "name": "dependencyNameAndVersion",
1058
1237
  "type": "bytes32"
1059
1238
  },
1060
1239
  {
1061
1240
  "internalType": "uint256",
1062
- "name": "_index",
1241
+ "name": "index",
1063
1242
  "type": "uint256"
1064
1243
  },
1244
+ {
1245
+ "internalType": "address",
1246
+ "name": "scriptPointer",
1247
+ "type": "address"
1248
+ }
1249
+ ],
1250
+ "name": "updateDependencyScriptPointer",
1251
+ "outputs": [],
1252
+ "stateMutability": "nonpayable",
1253
+ "type": "function"
1254
+ },
1255
+ {
1256
+ "inputs": [
1257
+ {
1258
+ "internalType": "bytes32",
1259
+ "name": "dependencyNameAndVersion",
1260
+ "type": "bytes32"
1261
+ },
1065
1262
  {
1066
1263
  "internalType": "string",
1067
- "name": "_script",
1264
+ "name": "dependencyWebsite",
1068
1265
  "type": "string"
1069
1266
  }
1070
1267
  ],
1071
- "name": "updateDependencyScript",
1268
+ "name": "updateDependencyWebsite",
1072
1269
  "outputs": [],
1073
1270
  "stateMutability": "nonpayable",
1074
1271
  "type": "function"
@@ -1077,46 +1274,50 @@
1077
1274
  "inputs": [
1078
1275
  {
1079
1276
  "internalType": "bytes32",
1080
- "name": "_dependencyType",
1277
+ "name": "licenseType",
1081
1278
  "type": "bytes32"
1082
1279
  },
1083
1280
  {
1084
1281
  "internalType": "uint256",
1085
- "name": "_index",
1282
+ "name": "index",
1086
1283
  "type": "uint256"
1087
1284
  },
1088
1285
  {
1089
- "internalType": "address",
1090
- "name": "_scriptPointer",
1091
- "type": "address"
1286
+ "internalType": "string",
1287
+ "name": "text",
1288
+ "type": "string"
1092
1289
  }
1093
1290
  ],
1094
- "name": "updateDependencyScriptPointer",
1291
+ "name": "updateLicenseText",
1095
1292
  "outputs": [],
1096
1293
  "stateMutability": "nonpayable",
1097
1294
  "type": "function"
1098
1295
  }
1099
1296
  ],
1100
- "bytecode": "0x608060405234801561001057600080fd5b5061311d806100206000396000f3fe608060405234801561001057600080fd5b50600436106101f25760003560e01c80638da5cb5b116101165780638da5cb5b146103d4578063a1a7a47b146103dc578063a809c1fc146103ef578063b86b69f114610402578063ba2285121461040a578063bbf2aefb1461041d578063bd880b4614610430578063be3d3ee614610443578063c0cd565f14610456578063c4d66de814610469578063caaa3bb71461047c578063cea2961a1461048f578063dbc71ccb146104a2578063dc33f4ae146104b5578063dfa3be53146104c8578063f0b99382146104db578063f146f17f146104ee578063f2fde38b14610501578063f73f499114610514578063f8ac18be14610527578063f9c0fae61461053a57600080fd5b8062e87903146101f757806307f9f786146102205780631376218614610235578063199eb8e01461024a5780631a051d491461025d5780631e9bef4614610270578063230448b11461029057806325ffb376146102b35780633bd7cfa2146102da5780633e76919a146102ed578063474bbdc2146103005780634bd1a38714610313578063518cb3df1461032657806351eda9991461033957806352ccc0211461034e5780635668bc5e146103615780635710f83d1461039e5780636dfa9f56146103b1578063715018a6146103c45780637cbb45c8146103cc575b600080fd5b61020a61020536600461262e565b61054d565b60405161021791906126a0565b60405180910390f35b610228610617565b60405161021791906126b3565b6102486102433660046127c3565b6106c6565b005b61024861025836600461282e565b610766565b61024861026b3660046127c3565b6107c1565b606554610283906001600160a01b031681565b6040516102179190612849565b6102a361029e36600461285d565b610861565b6040519015158152602001610217565b6102c66102c13660046128b1565b61090f565b6040516102179897969594939291906128ca565b6102486102e836600461294f565b610b26565b6102836102fb3660046128b1565b610b97565b61020a61030e366004612995565b610bb7565b6102486103213660046129bf565b610cf8565b61020a61033436600461262e565b610dbb565b610341610faa565b60405161021791906129eb565b61024861035c3660046128b1565b611069565b61039061036f3660046128b1565b600090815260686020526040902060060154600160301b900462ffffff1690565b604051908152602001610217565b6102486103ac36600461294f565b61117d565b6102486103bf36600461262e565b611235565b610248611327565b61039061133b565b61028361134c565b6102486103ea36600461262e565b611360565b6102486103fd366004612a4d565b61142e565b610390611573565b61039061041836600461262e565b61157f565b61024861042b366004612ade565b61164f565b61020a61043e3660046128b1565b6116d0565b61024861045136600461294f565b6116ee565b610248610464366004612b11565b611750565b61024861047736600461282e565b6117e0565b61024861048a3660046127c3565b6118fb565b6102a361049d36600461282e565b611994565b6102486104b036600461282e565b6119a1565b6102486104c336600461294f565b611a52565b6102836104d636600461262e565b611ae1565b61020a6104e936600461262e565b611b2a565b6102486104fc36600461294f565b611b73565b61024861050f36600461282e565b611c24565b610248610522366004612995565b611c9d565b6102486105353660046128b1565b611d6d565b61024861054836600461294f565b611ed7565b600082815260686020526040902060068101546060919061057490849062ffffff16611f3c565b60008381526001820160205260409020805461058f90612b46565b80601f01602080910402602001604051908101604052809291908181526020018280546105bb90612b46565b80156106085780601f106105dd57610100808354040283529160200191610608565b820191906000526020600020905b8154815290600101906020018083116105eb57829003601f168201915b50505050509150505b92915050565b606060006106256069611f80565b90506000816001600160401b0381111561064157610641612700565b60405190808252806020026020018201604052801561066a578160200160208202803683370190505b50905060005b828110156106bf57610683606982611f8a565b82828151811061069557610695612b7a565b6001600160a01b0390921660209283029190910190910152806106b781612ba6565b915050610670565b5092915050565b6106d66309bb10c360e11b611f96565b6106df81611fe6565b6106e883612035565b6000838152606860205260409020600681015461070b90849062ffffff16611f3c565b600083815260018201602052604090206107258382612c23565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d8385604051610758929190612cdc565b60405180910390a250505050565b61077562ccf5c760e51b611f96565b61077e8161208c565b6107896069826120e1565b506040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b6107d1631a051d4960e01b611f96565b6107da81611fe6565b6107e383612035565b6000838152606860205260409020600681015461080d908490600160301b900462ffffff16611f3c565b610816826120f6565b600084815260058301602052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206130c883398151915291a250505050565b60008061086c61134c565b6001600160a01b03161415801561090557506065546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af11580156108e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109059190612cfe565b90505b9392505050565b60008181526068602052604081206060918291829082908290829081906109358a6121a6565b60068201548254839162ffffff808216926002850192630100000081048316926004870192600160301b9092041680151591879061097290612b46565b80601f016020809104026020016040519081016040528092919081815260200182805461099e90612b46565b80156109eb5780601f106109c0576101008083540402835291602001916109eb565b820191906000526020600020905b8154815290600101906020018083116109ce57829003601f168201915b505050505096508480546109fe90612b46565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2a90612b46565b8015610a775780601f10610a4c57610100808354040283529160200191610a77565b820191906000526020600020905b815481529060010190602001808311610a5a57829003601f168201915b50505050509450828054610a8a90612b46565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab690612b46565b8015610b035780601f10610ad857610100808354040283529160200191610b03565b820191906000526020600020905b815481529060010190602001808311610ae657829003601f168201915b505050505092509850985098509850985098509850985050919395975091939597565b610b36631debe7d160e11b611f96565b610b3f82612035565b6000828152606860205260409020600401610b5a8282612c23565b50817f9959f3af1c0191277b92c192984b5ca38adaf82d8465332b4da850e0e6a199f482604051610b8b91906126a0565b60405180910390a25050565b6000610bac82610ba76069611f80565b611f3c565b610611606983611f8a565b6060610bc28361208c565b6001600160a01b0383166000908152606b602090815260408083208584529091529020548015610bfd57610bf5816121a6565b915050610611565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610c6357506040513d6000823e601f3d908101601f19168201604052610c609190810190612d70565b60015b610cec5760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a4015b60405180910390fd5b82945050505050610611565b610d08634bd1a38760e01b611f96565b610d1181612211565b610d1a82612035565b6000828152606860209081526040808320600681018054600160301b9081900462ffffff9081168752600584019095529290942080546001600160a01b0319166001600160a01b0387161790559254610d7892919004166001612ddc565b60068201805462ffffff92909216600160301b0262ffffff60301b1990921691909117905560405183906000805160206130c883398151915290600090a2505050565b6000828152606860205260409020600681015460609190610de9908490600160301b900462ffffff16611f3c565b600083815260058201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a33190610e3e908590600401612849565b602060405180830381865af4158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f9190612df8565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f208103610f2e57604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990610edf908590600401612849565b600060405180830381865af4158015610efc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f249190810190612e11565b9350505050610611565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f3890610f65908590600401612849565b600060405180830381865af4158015610f82573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f249190810190612e59565b60606000610fb86066611f80565b6001600160401b03811115610fcf57610fcf612700565b60405190808252806020026020018201604052801561100257816020015b6060815260200190600190039081610fed5790505b50905060006110116066611f80565b905060005b818110156110615761103161102c606683611f8a565b6121a6565b83828151811061104357611043612b7a565b6020026020010181905250808061105990612ba6565b915050611016565b509092915050565b6110796352ccc02160e01b611f96565b61108281612035565b60008181526068602052604090206006810154600160301b900462ffffff166110ed5760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610ce3565b6006810154600582019060009061111290600190600160301b900462ffffff16612e8d565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560068401805462ffffff60301b198116600160301b9182900486166000190190951602939093179092555183916000805160206130c883398151915291a25050565b61118d635710f83d60e01b611f96565b61119681611fe6565b61119f82612035565b600082815260686020908152604080832060068101546301000000900462ffffff168085526003820190935292206111d78482612c23565b506111e3816001612ea9565b8260060160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde8483604051610758929190612cdc565b6112456336fd4fab60e11b611f96565b61124e82612035565b600082815260686020526040902060068101546301000000900462ffffff166112778382611f3c565b6000611284600183612ebc565b6000868152606860209081526040808320848452600390810183528184208985529088019092529091209192506112bb9082612ecf565b50600081815260038401602052604081206112d5916125e0565b60068301805465ffffff0000001916630100000062ffffff841602179055604051849086907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a35050505050565b61132f612265565b61133960006122c4565b565b60006113476066611f80565b905090565b60006113476033546001600160a01b031690565b61137063a1a7a47b60e01b611f96565b61137982612035565b6000828152606860205260409020600681015462ffffff1661139b8382611f3c565b60006113a8600183612ebc565b600081815260018501602052604080822087835291209192506113cb9082612ecf565b50600081815260018401602052604081206113e5916125e0565b60068301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b61143e632a02707f60e21b611f96565b6114496066856122ef565b156114965760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520616c72656164792065786973747300006044820152606401610ce3565b6114a384604060016122fb565b6114ec5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610ce3565b6114f760668561236e565b506000848152606860205260409020806115118582612c23565b50600281016115208482612c23565b506004810161152f8382612c23565b50847f39626dd6a5a74e9944752116c5e878fbb4c1ac0cab72cd316f6f25ee19cff76585858560405161156493929190612fa3565b60405180910390a25050505050565b60006113476069611f80565b600082815260686020526040812060068101546115a9908490600160301b900462ffffff16611f3c565b60008481526068602090815260408083208684526005019091529081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a33191611606916001600160a01b031690600401612849565b602060405180830381865af4158015611623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116479190612df8565b949350505050565b61165f63bbf2aefb60e01b611f96565b61166881612035565b6116718361208c565b6001600160a01b0383166000818152606b6020908152604080832086845282529182902084905590518381528492917f27d39273f3676c181ec3de60b583da776123d9f9517761fb91f370a83c798918910160405180910390a3505050565b60606116e082610ba76066611f80565b61061161102c606684611f8a565b6116fe635f1e9f7360e11b611f96565b61170782612035565b600082815260686020526040902061171f8282612c23565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051610b8b91906126a0565b61176063c0cd565f60e01b611f96565b61176981612211565b61177283612035565b6000838152606860205260409020600681015461179c908490600160301b900462ffffff16611f3c565b600083815260058201602052604080822080546001600160a01b0319166001600160a01b0386161790555185916000805160206130c883398151915291a250505050565b600054610100900460ff16158080156118005750600054600160ff909116105b8061181a5750303b15801561181a575060005460ff166001145b61187d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ce3565b6000805460ff1916600117905580156118a0576000805461ff0019166101001790555b6118a861237a565b6118b1826122c4565b80156118f7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61190b63caaa3bb760e01b611f96565b61191481611fe6565b61191d83612035565b600083815260686020526040902060068101546119479084906301000000900462ffffff16611f3c565b600083815260038201602052604090206119618382612c23565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde8385604051610758929190612cdc565b60006106116069836123a9565b6119b163dbc71ccb60e01b611f96565b6119ba81612211565b6119c56069826123a9565b15611a0f5760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b6044820152606401610ce3565b611a1a6069826123be565b506040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b611a62636e19fa5760e11b611f96565b611a6b81611fe6565b611a7482612035565b6000828152606860205260409020611a8b826120f6565b600682018054600160301b9081900462ffffff9081166000908152600586016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054610d7892919004166001612ddc565b60008281526068602052604081206006810154611b0b908490600160301b900462ffffff16611f3c565b60009283526005016020525060409020546001600160a01b0316919050565b6000828152606860205260409020600681015460609190611b589084906301000000900462ffffff16611f3c565b60008381526003820160205260409020805461058f90612b46565b611b8363f146f17f60e01b611f96565b611b8c81611fe6565b611b9582612035565b6000828152606860209081526040808320600681015462ffffff16808552600182019093529220611bc68482612c23565b50611bd2816001612ea9565b8260060160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d8483604051610758929190612cdc565b611c2c612265565b6001600160a01b038116611c915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ce3565b611c9a816122c4565b50565b611cad63f73f499160e01b611f96565b6001600160a01b0382166000908152606b60209081526040808320848452909152902054611d1b5760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b6044820152606401610ce3565b6001600160a01b0382166000818152606b60209081526040808320858452909152808220829055518392917f0732620824c0200808d04ab037f3abc3c31853170b90f5a855d32f44486048ed91a35050565b611d7d637c560c5f60e11b611f96565b611d8681612035565b6000818152606860205260409020600681015462ffffff16158015611db9575060068101546301000000900462ffffff16155b8015611dd357506006810154600160301b900462ffffff16155b611e555760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a401610ce3565b611e606066836123d3565b50600082815260686020526040812090611e7a82826125e0565b611e886002830160006125e0565b611e966004830160006125e0565b5060060180546001600160481b031916905560405182907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a25050565b611ee7637ce07d7360e11b611f96565b611ef082612035565b6000828152606860205260409020600201611f0b8282612c23565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051610b8b91906126a0565b8082106118f75760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b6044820152606401610ce3565b6000610611825490565b600061090883836123df565b611fa1333083610861565b611c9a5760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610ce3565b8051600003611c9a5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610ce3565b6120406066826122ef565b611c9a5760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520646f6573206e6f7420657869737400006044820152606401610ce3565b6120976069826123a9565b611c9a5760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b6044820152606401610ce3565b6000610908836001600160a01b038416612409565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f20308460405160200161212e93929190612fe6565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166121a05760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610ce3565b50919050565b606060005b828160ff16602081106121c0576121c0612b7a565b1a60f81b6001600160f81b031916158015906121df575060208160ff16105b156121f657806121ee81613047565b9150506121ab565b60405191506040820160405280825282602083015250919050565b6001600160a01b038116611c9a5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610ce3565b3361226e61134c565b6001600160a01b0316146113395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ce3565b6122cd816124fc565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000610908838361254e565b600080805b60208160ff16101561235a576000868260ff166020811061232357612323612b7a565b1a90508015801590612338575060808160ff16105b15612351578560ff168160ff1603612351578260010192505b50600101612300565b8360ff168260ff1614925050509392505050565b60006109088383612566565b600054610100900460ff166123a15760405162461bcd60e51b8152600401610ce390613066565b6113396125b0565b6000610908836001600160a01b03841661254e565b6000610908836001600160a01b038416612566565b60006109088383612409565b60008260000182815481106123f6576123f6612b7a565b9060005260206000200154905092915050565b600081815260018301602052604081205480156124f257600061242d600183612ebc565b855490915060009061244190600190612ebc565b90508181146124a657600086600001828154811061246157612461612b7a565b906000526020600020015490508087600001848154811061248457612484612b7a565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806124b7576124b76130b1565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610611565b6000915050610611565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60009081526001919091016020526040902054151590565b6000612572838361254e565b6125a857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610611565b506000610611565b600054610100900460ff166125d75760405162461bcd60e51b8152600401610ce390613066565b611339336122c4565b5080546125ec90612b46565b6000825580601f106125fc575050565b601f016020900490600052602060002090810190611c9a91905b8082111561262a5760008155600101612616565b5090565b6000806040838503121561264157600080fd5b50508035926020909101359150565b60005b8381101561266b578181015183820152602001612653565b50506000910152565b6000815180845261268c816020860160208601612650565b601f01601f19169290920160200192915050565b6020815260006109086020830184612674565b6020808252825182820181905260009190848201906040850190845b818110156126f45783516001600160a01b0316835292840192918401916001016126cf565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561273e5761273e612700565b604052919050565b60006001600160401b0382111561275f5761275f612700565b50601f01601f191660200190565b600082601f83011261277e57600080fd5b813561279161278c82612746565b612716565b8181528460208386010111156127a657600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156127d857600080fd5b833592506020840135915060408401356001600160401b038111156127fc57600080fd5b6128088682870161276d565b9150509250925092565b80356001600160a01b038116811461282957600080fd5b919050565b60006020828403121561284057600080fd5b61090882612812565b6001600160a01b0391909116815260200190565b60008060006060848603121561287257600080fd5b61287b84612812565b925061288960208501612812565b915060408401356001600160e01b0319811681146128a657600080fd5b809150509250925092565b6000602082840312156128c357600080fd5b5035919050565b60006101008083526128de8184018c612674565b905082810360208401526128f2818b612674565b905062ffffff808a1660408501528382036060850152612912828a612674565b9150808816608085015283820360a085015261292e8288612674565b925085151560c085015280851660e085015250509998505050505050505050565b6000806040838503121561296257600080fd5b8235915060208301356001600160401b0381111561297f57600080fd5b61298b8582860161276d565b9150509250929050565b600080604083850312156129a857600080fd5b6129b183612812565b946020939093013593505050565b600080604083850312156129d257600080fd5b823591506129e260208401612812565b90509250929050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612a4057603f19888603018452612a2e858351612674565b94509285019290850190600101612a12565b5092979650505050505050565b60008060008060808587031215612a6357600080fd5b8435935060208501356001600160401b0380821115612a8157600080fd5b612a8d8883890161276d565b94506040870135915080821115612aa357600080fd5b612aaf8883890161276d565b93506060870135915080821115612ac557600080fd5b50612ad28782880161276d565b91505092959194509250565b600080600060608486031215612af357600080fd5b612afc84612812565b95602085013595506040909401359392505050565b600080600060608486031215612b2657600080fd5b8335925060208401359150612b3d60408501612812565b90509250925092565b600181811c90821680612b5a57607f821691505b6020821081036121a057634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612bb857612bb8612b90565b5060010190565b601f821115612c0957600081815260208120601f850160051c81016020861015612be65750805b601f850160051c820191505b81811015612c0557828155600101612bf2565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b03811115612c3c57612c3c612700565b612c5081612c4a8454612b46565b84612bbf565b602080601f831160018114612c7f5760008415612c6d5750858301515b612c778582612c0e565b865550612c05565b600085815260208120601f198616915b82811015612cae57888601518255948401946001909101908401612c8f565b5085821015612ccc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612cef6040830185612674565b90508260208301529392505050565b600060208284031215612d1057600080fd5b8151801515811461090857600080fd5b6000612d2e61278c84612746565b9050828152838383011115612d4257600080fd5b610908836020830184612650565b600082601f830112612d6157600080fd5b61090883835160208501612d20565b600080600060608486031215612d8557600080fd5b83516001600160401b0380821115612d9c57600080fd5b612da887838801612d50565b94506020860151915080821115612dbe57600080fd5b50612dcb86828701612d50565b925050604084015190509250925092565b62ffffff8181168382160190808211156106bf576106bf612b90565b600060208284031215612e0a57600080fd5b5051919050565b600060208284031215612e2357600080fd5b81516001600160401b03811115612e3957600080fd5b8201601f81018413612e4a57600080fd5b61164784825160208401612d20565b600060208284031215612e6b57600080fd5b81516001600160401b03811115612e8157600080fd5b61164784828501612d50565b62ffffff8281168282160390808211156106bf576106bf612b90565b8082018082111561061157610611612b90565b8181038181111561061157610611612b90565b818103612eda575050565b612ee48254612b46565b6001600160401b03811115612efb57612efb612700565b612f0981612c4a8454612b46565b6000601f821160018114612f375760008315612f255750848201545b612f2f8482612c0e565b855550612f9c565b600085815260209020601f19841690600086815260209020845b83811015612f715782860154825560019586019590910190602001612f51565b5085831015612f8f5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b606081526000612fb66060830186612674565b8281036020840152612fc88186612674565b90508281036040840152612fdc8185612674565b9695505050505050565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161303881604c850160208701612650565b91909101604c01949350505050565b600060ff821660ff810361305d5761305d612b90565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfef79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a2646970667358221220b96a0622d27a10bb89e881ac599099fe1d5de63ab3afef59e8def32cc4dca6b664736f6c63430008130033",
1101
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101f25760003560e01c80638da5cb5b116101165780638da5cb5b146103d4578063a1a7a47b146103dc578063a809c1fc146103ef578063b86b69f114610402578063ba2285121461040a578063bbf2aefb1461041d578063bd880b4614610430578063be3d3ee614610443578063c0cd565f14610456578063c4d66de814610469578063caaa3bb71461047c578063cea2961a1461048f578063dbc71ccb146104a2578063dc33f4ae146104b5578063dfa3be53146104c8578063f0b99382146104db578063f146f17f146104ee578063f2fde38b14610501578063f73f499114610514578063f8ac18be14610527578063f9c0fae61461053a57600080fd5b8062e87903146101f757806307f9f786146102205780631376218614610235578063199eb8e01461024a5780631a051d491461025d5780631e9bef4614610270578063230448b11461029057806325ffb376146102b35780633bd7cfa2146102da5780633e76919a146102ed578063474bbdc2146103005780634bd1a38714610313578063518cb3df1461032657806351eda9991461033957806352ccc0211461034e5780635668bc5e146103615780635710f83d1461039e5780636dfa9f56146103b1578063715018a6146103c45780637cbb45c8146103cc575b600080fd5b61020a61020536600461262e565b61054d565b60405161021791906126a0565b60405180910390f35b610228610617565b60405161021791906126b3565b6102486102433660046127c3565b6106c6565b005b61024861025836600461282e565b610766565b61024861026b3660046127c3565b6107c1565b606554610283906001600160a01b031681565b6040516102179190612849565b6102a361029e36600461285d565b610861565b6040519015158152602001610217565b6102c66102c13660046128b1565b61090f565b6040516102179897969594939291906128ca565b6102486102e836600461294f565b610b26565b6102836102fb3660046128b1565b610b97565b61020a61030e366004612995565b610bb7565b6102486103213660046129bf565b610cf8565b61020a61033436600461262e565b610dbb565b610341610faa565b60405161021791906129eb565b61024861035c3660046128b1565b611069565b61039061036f3660046128b1565b600090815260686020526040902060060154600160301b900462ffffff1690565b604051908152602001610217565b6102486103ac36600461294f565b61117d565b6102486103bf36600461262e565b611235565b610248611327565b61039061133b565b61028361134c565b6102486103ea36600461262e565b611360565b6102486103fd366004612a4d565b61142e565b610390611573565b61039061041836600461262e565b61157f565b61024861042b366004612ade565b61164f565b61020a61043e3660046128b1565b6116d0565b61024861045136600461294f565b6116ee565b610248610464366004612b11565b611750565b61024861047736600461282e565b6117e0565b61024861048a3660046127c3565b6118fb565b6102a361049d36600461282e565b611994565b6102486104b036600461282e565b6119a1565b6102486104c336600461294f565b611a52565b6102836104d636600461262e565b611ae1565b61020a6104e936600461262e565b611b2a565b6102486104fc36600461294f565b611b73565b61024861050f36600461282e565b611c24565b610248610522366004612995565b611c9d565b6102486105353660046128b1565b611d6d565b61024861054836600461294f565b611ed7565b600082815260686020526040902060068101546060919061057490849062ffffff16611f3c565b60008381526001820160205260409020805461058f90612b46565b80601f01602080910402602001604051908101604052809291908181526020018280546105bb90612b46565b80156106085780601f106105dd57610100808354040283529160200191610608565b820191906000526020600020905b8154815290600101906020018083116105eb57829003601f168201915b50505050509150505b92915050565b606060006106256069611f80565b90506000816001600160401b0381111561064157610641612700565b60405190808252806020026020018201604052801561066a578160200160208202803683370190505b50905060005b828110156106bf57610683606982611f8a565b82828151811061069557610695612b7a565b6001600160a01b0390921660209283029190910190910152806106b781612ba6565b915050610670565b5092915050565b6106d66309bb10c360e11b611f96565b6106df81611fe6565b6106e883612035565b6000838152606860205260409020600681015461070b90849062ffffff16611f3c565b600083815260018201602052604090206107258382612c23565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d8385604051610758929190612cdc565b60405180910390a250505050565b61077562ccf5c760e51b611f96565b61077e8161208c565b6107896069826120e1565b506040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b6107d1631a051d4960e01b611f96565b6107da81611fe6565b6107e383612035565b6000838152606860205260409020600681015461080d908490600160301b900462ffffff16611f3c565b610816826120f6565b600084815260058301602052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206130c883398151915291a250505050565b60008061086c61134c565b6001600160a01b03161415801561090557506065546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af11580156108e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109059190612cfe565b90505b9392505050565b60008181526068602052604081206060918291829082908290829081906109358a6121a6565b60068201548254839162ffffff808216926002850192630100000081048316926004870192600160301b9092041680151591879061097290612b46565b80601f016020809104026020016040519081016040528092919081815260200182805461099e90612b46565b80156109eb5780601f106109c0576101008083540402835291602001916109eb565b820191906000526020600020905b8154815290600101906020018083116109ce57829003601f168201915b505050505096508480546109fe90612b46565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2a90612b46565b8015610a775780601f10610a4c57610100808354040283529160200191610a77565b820191906000526020600020905b815481529060010190602001808311610a5a57829003601f168201915b50505050509450828054610a8a90612b46565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab690612b46565b8015610b035780601f10610ad857610100808354040283529160200191610b03565b820191906000526020600020905b815481529060010190602001808311610ae657829003601f168201915b505050505092509850985098509850985098509850985050919395975091939597565b610b36631debe7d160e11b611f96565b610b3f82612035565b6000828152606860205260409020600401610b5a8282612c23565b50817f9959f3af1c0191277b92c192984b5ca38adaf82d8465332b4da850e0e6a199f482604051610b8b91906126a0565b60405180910390a25050565b6000610bac82610ba76069611f80565b611f3c565b610611606983611f8a565b6060610bc28361208c565b6001600160a01b0383166000908152606b602090815260408083208584529091529020548015610bfd57610bf5816121a6565b915050610611565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610c6357506040513d6000823e601f3d908101601f19168201604052610c609190810190612d70565b60015b610cec5760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a4015b60405180910390fd5b82945050505050610611565b610d08634bd1a38760e01b611f96565b610d1181612211565b610d1a82612035565b6000828152606860209081526040808320600681018054600160301b9081900462ffffff9081168752600584019095529290942080546001600160a01b0319166001600160a01b0387161790559254610d7892919004166001612ddc565b60068201805462ffffff92909216600160301b0262ffffff60301b1990921691909117905560405183906000805160206130c883398151915290600090a2505050565b6000828152606860205260409020600681015460609190610de9908490600160301b900462ffffff16611f3c565b600083815260058201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a33190610e3e908590600401612849565b602060405180830381865af4158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f9190612df8565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f208103610f2e57604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990610edf908590600401612849565b600060405180830381865af4158015610efc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f249190810190612e11565b9350505050610611565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f3890610f65908590600401612849565b600060405180830381865af4158015610f82573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f249190810190612e59565b60606000610fb86066611f80565b6001600160401b03811115610fcf57610fcf612700565b60405190808252806020026020018201604052801561100257816020015b6060815260200190600190039081610fed5790505b50905060006110116066611f80565b905060005b818110156110615761103161102c606683611f8a565b6121a6565b83828151811061104357611043612b7a565b6020026020010181905250808061105990612ba6565b915050611016565b509092915050565b6110796352ccc02160e01b611f96565b61108281612035565b60008181526068602052604090206006810154600160301b900462ffffff166110ed5760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610ce3565b6006810154600582019060009061111290600190600160301b900462ffffff16612e8d565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560068401805462ffffff60301b198116600160301b9182900486166000190190951602939093179092555183916000805160206130c883398151915291a25050565b61118d635710f83d60e01b611f96565b61119681611fe6565b61119f82612035565b600082815260686020908152604080832060068101546301000000900462ffffff168085526003820190935292206111d78482612c23565b506111e3816001612ea9565b8260060160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde8483604051610758929190612cdc565b6112456336fd4fab60e11b611f96565b61124e82612035565b600082815260686020526040902060068101546301000000900462ffffff166112778382611f3c565b6000611284600183612ebc565b6000868152606860209081526040808320848452600390810183528184208985529088019092529091209192506112bb9082612ecf565b50600081815260038401602052604081206112d5916125e0565b60068301805465ffffff0000001916630100000062ffffff841602179055604051849086907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a35050505050565b61132f612265565b61133960006122c4565b565b60006113476066611f80565b905090565b60006113476033546001600160a01b031690565b61137063a1a7a47b60e01b611f96565b61137982612035565b6000828152606860205260409020600681015462ffffff1661139b8382611f3c565b60006113a8600183612ebc565b600081815260018501602052604080822087835291209192506113cb9082612ecf565b50600081815260018401602052604081206113e5916125e0565b60068301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b61143e632a02707f60e21b611f96565b6114496066856122ef565b156114965760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520616c72656164792065786973747300006044820152606401610ce3565b6114a384604060016122fb565b6114ec5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610ce3565b6114f760668561236e565b506000848152606860205260409020806115118582612c23565b50600281016115208482612c23565b506004810161152f8382612c23565b50847f39626dd6a5a74e9944752116c5e878fbb4c1ac0cab72cd316f6f25ee19cff76585858560405161156493929190612fa3565b60405180910390a25050505050565b60006113476069611f80565b600082815260686020526040812060068101546115a9908490600160301b900462ffffff16611f3c565b60008481526068602090815260408083208684526005019091529081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a33191611606916001600160a01b031690600401612849565b602060405180830381865af4158015611623573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116479190612df8565b949350505050565b61165f63bbf2aefb60e01b611f96565b61166881612035565b6116718361208c565b6001600160a01b0383166000818152606b6020908152604080832086845282529182902084905590518381528492917f27d39273f3676c181ec3de60b583da776123d9f9517761fb91f370a83c798918910160405180910390a3505050565b60606116e082610ba76066611f80565b61061161102c606684611f8a565b6116fe635f1e9f7360e11b611f96565b61170782612035565b600082815260686020526040902061171f8282612c23565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051610b8b91906126a0565b61176063c0cd565f60e01b611f96565b61176981612211565b61177283612035565b6000838152606860205260409020600681015461179c908490600160301b900462ffffff16611f3c565b600083815260058201602052604080822080546001600160a01b0319166001600160a01b0386161790555185916000805160206130c883398151915291a250505050565b600054610100900460ff16158080156118005750600054600160ff909116105b8061181a5750303b15801561181a575060005460ff166001145b61187d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610ce3565b6000805460ff1916600117905580156118a0576000805461ff0019166101001790555b6118a861237a565b6118b1826122c4565b80156118f7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b61190b63caaa3bb760e01b611f96565b61191481611fe6565b61191d83612035565b600083815260686020526040902060068101546119479084906301000000900462ffffff16611f3c565b600083815260038201602052604090206119618382612c23565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde8385604051610758929190612cdc565b60006106116069836123a9565b6119b163dbc71ccb60e01b611f96565b6119ba81612211565b6119c56069826123a9565b15611a0f5760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b6044820152606401610ce3565b611a1a6069826123be565b506040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b611a62636e19fa5760e11b611f96565b611a6b81611fe6565b611a7482612035565b6000828152606860205260409020611a8b826120f6565b600682018054600160301b9081900462ffffff9081166000908152600586016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054610d7892919004166001612ddc565b60008281526068602052604081206006810154611b0b908490600160301b900462ffffff16611f3c565b60009283526005016020525060409020546001600160a01b0316919050565b6000828152606860205260409020600681015460609190611b589084906301000000900462ffffff16611f3c565b60008381526003820160205260409020805461058f90612b46565b611b8363f146f17f60e01b611f96565b611b8c81611fe6565b611b9582612035565b6000828152606860209081526040808320600681015462ffffff16808552600182019093529220611bc68482612c23565b50611bd2816001612ea9565b8260060160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d8483604051610758929190612cdc565b611c2c612265565b6001600160a01b038116611c915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ce3565b611c9a816122c4565b50565b611cad63f73f499160e01b611f96565b6001600160a01b0382166000908152606b60209081526040808320848452909152902054611d1b5760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b6044820152606401610ce3565b6001600160a01b0382166000818152606b60209081526040808320858452909152808220829055518392917f0732620824c0200808d04ab037f3abc3c31853170b90f5a855d32f44486048ed91a35050565b611d7d637c560c5f60e11b611f96565b611d8681612035565b6000818152606860205260409020600681015462ffffff16158015611db9575060068101546301000000900462ffffff16155b8015611dd357506006810154600160301b900462ffffff16155b611e555760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a401610ce3565b611e606066836123d3565b50600082815260686020526040812090611e7a82826125e0565b611e886002830160006125e0565b611e966004830160006125e0565b5060060180546001600160481b031916905560405182907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a25050565b611ee7637ce07d7360e11b611f96565b611ef082612035565b6000828152606860205260409020600201611f0b8282612c23565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051610b8b91906126a0565b8082106118f75760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b6044820152606401610ce3565b6000610611825490565b600061090883836123df565b611fa1333083610861565b611c9a5760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610ce3565b8051600003611c9a5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610ce3565b6120406066826122ef565b611c9a5760405162461bcd60e51b815260206004820152601e60248201527f446570656e64656e6379207479706520646f6573206e6f7420657869737400006044820152606401610ce3565b6120976069826123a9565b611c9a5760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b6044820152606401610ce3565b6000610908836001600160a01b038416612409565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f20308460405160200161212e93929190612fe6565b60405160208183030381529060405290508051602082016000f091506001600160a01b0382166121a05760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610ce3565b50919050565b606060005b828160ff16602081106121c0576121c0612b7a565b1a60f81b6001600160f81b031916158015906121df575060208160ff16105b156121f657806121ee81613047565b9150506121ab565b60405191506040820160405280825282602083015250919050565b6001600160a01b038116611c9a5760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610ce3565b3361226e61134c565b6001600160a01b0316146113395760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ce3565b6122cd816124fc565b606580546001600160a01b0319166001600160a01b0392909216919091179055565b6000610908838361254e565b600080805b60208160ff16101561235a576000868260ff166020811061232357612323612b7a565b1a90508015801590612338575060808160ff16105b15612351578560ff168160ff1603612351578260010192505b50600101612300565b8360ff168260ff1614925050509392505050565b60006109088383612566565b600054610100900460ff166123a15760405162461bcd60e51b8152600401610ce390613066565b6113396125b0565b6000610908836001600160a01b03841661254e565b6000610908836001600160a01b038416612566565b60006109088383612409565b60008260000182815481106123f6576123f6612b7a565b9060005260206000200154905092915050565b600081815260018301602052604081205480156124f257600061242d600183612ebc565b855490915060009061244190600190612ebc565b90508181146124a657600086600001828154811061246157612461612b7a565b906000526020600020015490508087600001848154811061248457612484612b7a565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806124b7576124b76130b1565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610611565b6000915050610611565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60009081526001919091016020526040902054151590565b6000612572838361254e565b6125a857508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610611565b506000610611565b600054610100900460ff166125d75760405162461bcd60e51b8152600401610ce390613066565b611339336122c4565b5080546125ec90612b46565b6000825580601f106125fc575050565b601f016020900490600052602060002090810190611c9a91905b8082111561262a5760008155600101612616565b5090565b6000806040838503121561264157600080fd5b50508035926020909101359150565b60005b8381101561266b578181015183820152602001612653565b50506000910152565b6000815180845261268c816020860160208601612650565b601f01601f19169290920160200192915050565b6020815260006109086020830184612674565b6020808252825182820181905260009190848201906040850190845b818110156126f45783516001600160a01b0316835292840192918401916001016126cf565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561273e5761273e612700565b604052919050565b60006001600160401b0382111561275f5761275f612700565b50601f01601f191660200190565b600082601f83011261277e57600080fd5b813561279161278c82612746565b612716565b8181528460208386010111156127a657600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156127d857600080fd5b833592506020840135915060408401356001600160401b038111156127fc57600080fd5b6128088682870161276d565b9150509250925092565b80356001600160a01b038116811461282957600080fd5b919050565b60006020828403121561284057600080fd5b61090882612812565b6001600160a01b0391909116815260200190565b60008060006060848603121561287257600080fd5b61287b84612812565b925061288960208501612812565b915060408401356001600160e01b0319811681146128a657600080fd5b809150509250925092565b6000602082840312156128c357600080fd5b5035919050565b60006101008083526128de8184018c612674565b905082810360208401526128f2818b612674565b905062ffffff808a1660408501528382036060850152612912828a612674565b9150808816608085015283820360a085015261292e8288612674565b925085151560c085015280851660e085015250509998505050505050505050565b6000806040838503121561296257600080fd5b8235915060208301356001600160401b0381111561297f57600080fd5b61298b8582860161276d565b9150509250929050565b600080604083850312156129a857600080fd5b6129b183612812565b946020939093013593505050565b600080604083850312156129d257600080fd5b823591506129e260208401612812565b90509250929050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015612a4057603f19888603018452612a2e858351612674565b94509285019290850190600101612a12565b5092979650505050505050565b60008060008060808587031215612a6357600080fd5b8435935060208501356001600160401b0380821115612a8157600080fd5b612a8d8883890161276d565b94506040870135915080821115612aa357600080fd5b612aaf8883890161276d565b93506060870135915080821115612ac557600080fd5b50612ad28782880161276d565b91505092959194509250565b600080600060608486031215612af357600080fd5b612afc84612812565b95602085013595506040909401359392505050565b600080600060608486031215612b2657600080fd5b8335925060208401359150612b3d60408501612812565b90509250925092565b600181811c90821680612b5a57607f821691505b6020821081036121a057634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612bb857612bb8612b90565b5060010190565b601f821115612c0957600081815260208120601f850160051c81016020861015612be65750805b601f850160051c820191505b81811015612c0557828155600101612bf2565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b03811115612c3c57612c3c612700565b612c5081612c4a8454612b46565b84612bbf565b602080601f831160018114612c7f5760008415612c6d5750858301515b612c778582612c0e565b865550612c05565b600085815260208120601f198616915b82811015612cae57888601518255948401946001909101908401612c8f565b5085821015612ccc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b604081526000612cef6040830185612674565b90508260208301529392505050565b600060208284031215612d1057600080fd5b8151801515811461090857600080fd5b6000612d2e61278c84612746565b9050828152838383011115612d4257600080fd5b610908836020830184612650565b600082601f830112612d6157600080fd5b61090883835160208501612d20565b600080600060608486031215612d8557600080fd5b83516001600160401b0380821115612d9c57600080fd5b612da887838801612d50565b94506020860151915080821115612dbe57600080fd5b50612dcb86828701612d50565b925050604084015190509250925092565b62ffffff8181168382160190808211156106bf576106bf612b90565b600060208284031215612e0a57600080fd5b5051919050565b600060208284031215612e2357600080fd5b81516001600160401b03811115612e3957600080fd5b8201601f81018413612e4a57600080fd5b61164784825160208401612d20565b600060208284031215612e6b57600080fd5b81516001600160401b03811115612e8157600080fd5b61164784828501612d50565b62ffffff8281168282160390808211156106bf576106bf612b90565b8082018082111561061157610611612b90565b8181038181111561061157610611612b90565b818103612eda575050565b612ee48254612b46565b6001600160401b03811115612efb57612efb612700565b612f0981612c4a8454612b46565b6000601f821160018114612f375760008315612f255750848201545b612f2f8482612c0e565b855550612f9c565b600085815260209020601f19841690600086815260209020845b83811015612f715782860154825560019586019590910190602001612f51565b5085831015612f8f5781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b606081526000612fb66060830186612674565b8281036020840152612fc88186612674565b90508281036040840152612fdc8185612674565b9695505050505050565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161303881604c850160208701612650565b91909101604c01949350505050565b600060ff821660ff810361305d5761305d612b90565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfef79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a2646970667358221220b96a0622d27a10bb89e881ac599099fe1d5de63ab3afef59e8def32cc4dca6b664736f6c63430008130033",
1297
+ "bytecode": "0x608060405234801561001057600080fd5b50613a68806100206000396000f3fe608060405234801561001057600080fd5b50600436106102555760003560e01c80639532f2f4116101425780639532f2f414610463578063a0a82bd314610478578063a1a7a47b1461048b578063ad6b414d1461049e578063b1d24cb2146104b1578063b86b69f1146104c4578063ba228512146104cc578063be3d3ee6146104df578063c0739270146104f2578063c0cd565f14610505578063c42ae81414610518578063c4d66de81461052b578063caaa3bb71461053e578063cc86ba4b14610551578063cea2961a14610564578063dbc71ccb14610577578063dc33f4ae1461058a578063dfa3be531461059d578063f0b99382146105b0578063f146f17f146105c3578063f2fde38b146105d6578063f8ac18be146105e9578063f9c0fae6146105fc578063fb5cd19b1461060f578063fed37e821461061757600080fd5b8062e879031461025a57806307f9f78614610283578063137621861461029857806316a1012d146102ad578063199eb8e0146102c05780631a051d49146102d35780631e9bef46146102e6578063230448b1146102fb57806325ffb3761461031e5780633e76919a1461034657806344346a5f14610359578063447b051a1461036f5780634a78a932146103825780634bd1a387146103955780634f5267ef146103a8578063518cb3df146103bb57806352ccc021146103ce5780635668bc5e146103e15780635710f83d146103f4578063613d57fd1461040757806366d549a11461041a5780636dfa9f561461042d578063715018a61461044057806371b70a71146104485780638da5cb5b1461045b575b600080fd5b61026d610268366004612f39565b61061f565b60405161027a9190612fab565b60405180910390f35b61028b6106f8565b60405161027a9190612fbe565b6102ab6102a63660046130ce565b6107ae565b005b6102ab6102bb3660046130ce565b61085f565b6102ab6102ce366004613139565b610907565b6102ab6102e13660046130ce565b6109c7565b6102ee610a78565b60405161027a9190613154565b61030e610309366004613168565b610a91565b604051901515815260200161027a565b61033161032c3660046131bc565b610b45565b60405161027a999897969594939291906131d5565b6102ee6103543660046131bc565b610d80565b610361610daf565b60405190815260200161027a565b6102ab61037d366004613270565b610dc9565b61026d6103903660046132a3565b610e57565b6102ab6103a33660046132cd565b610faa565b6102ab6103b63660046132a3565b61107c565b61026d6103c9366004612f39565b61115e565b6102ab6103dc3660046131bc565b61135c565b6103616103ef3660046131bc565b611481565b6102ab6104023660046132f9565b6114ae565b6103616104153660046131bc565b611578565b6102ab61042836600461333f565b61159e565b6102ab61043b366004612f39565b6116f4565b6102ab6117f9565b61026d610456366004612f39565b61180d565b6102ee611896565b61046b6118aa565b60405161027a91906133da565b6102ab6104863660046132f9565b611968565b6102ab610499366004612f39565b611a30565b6102ab6104ac3660046131bc565b611b0f565b61026d6104bf3660046131bc565b611c14565b610361611c42565b6103616104da366004612f39565b611c57565b6102ab6104ed3660046132f9565b611d2d565b6102ab6105003660046131bc565b611dac565b6102ab61051336600461343c565b611ea2565b6102ab6105263660046132f9565b611f43565b6102ab610539366004613139565b611fb3565b6102ab61054c3660046130ce565b6120ce565b61026d61055f3660046131bc565b612178565b61030e610572366004613139565b6121a6565b6102ab610585366004613139565b6121bd565b6102ab6105983660046132f9565b61226b565b6102ee6105ab366004612f39565b61230a565b61026d6105be366004612f39565b612365565b6102ab6105d13660046132f9565b6123bd565b6102ab6105e4366004613139565b612480565b6102ab6105f73660046131bc565b6124f9565b6102ab61060a3660046132f9565b61267e565b61046b6126f1565b61036161279f565b6060600061062b6127b4565b600085815260059190910160205260409020600781015490915061065590849062ffffff166127d8565b60008381526002820160205260409020805461067090613471565b80601f016020809104026020016040519081016040528092919081815260200182805461069c90613471565b80156106e95780601f106106be576101008083540402835291602001916106e9565b820191906000526020600020905b8154815290600101906020018083116106cc57829003601f168201915b50505050509150505b92915050565b606060006107046127b4565b905060006107148260070161281c565b90506000816001600160401b038111156107305761073061300b565b604051908082528060200260200182016040528015610759578160200160208202803683370190505b50905060005b828110156107a6576107746007850182612826565b828281518110610786576107866134a5565b6001600160a01b039092166020928302919091019091015260010161075f565b509392505050565b6107be6309bb10c360e11b612832565b6107c781612882565b6107d0836128d1565b60006107da6127b4565b600085815260059190910160205260409020600781015490915061080490849062ffffff166127d8565b6000838152600282016020526040902061081e838261351f565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516108519291906135d8565b60405180910390a250505050565b61086f6316a1012d60e01b612832565b61087881612882565b6108818361292e565b600061088b6127b4565b60008581526006919091016020526040902060018101549091506108b590849062ffffff166127d8565b6108be8261298d565b60008481526020839052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206139f383398151915291a250505050565b61091662ccf5c760e51b612832565b61092b816109226127b4565b60070190612a3d565b6109905760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b60648201526084015b60405180910390fd5b6040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b6109d7631a051d4960e01b612832565b6109e081612882565b6109e9836128d1565b60006109f36127b4565b6000858152600591909101602052604090206007810154909150610a24908490600160301b900462ffffff166127d8565b610a2d8261298d565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b03949094169390931790925590518591600080516020613a1383398151915291a250505050565b6000610a826127b4565b546001600160a01b0316919050565b600080610a9c611896565b6001600160a01b031614158015610b3b5750610ab66127b4565b546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015610b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3b91906135fa565b90505b9392505050565b606080606060006060600060606000806000610b5f6127b4565b60008c8152600591909101602052604090209050610b7c8b612a52565b8154610b8790612a52565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610bc890613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf490613471565b8015610c415780601f10610c1657610100808354040283529160200191610c41565b820191906000526020600020905b815481529060010190602001808311610c2457829003601f168201915b50505050509650848054610c5490613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8090613471565b8015610ccd5780601f10610ca257610100808354040283529160200191610ccd565b820191906000526020600020905b815481529060010190602001808311610cb057829003601f168201915b50505050509450828054610ce090613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0c90613471565b8015610d595780601f10610d2e57610100808354040283529160200191610d59565b820191906000526020600020905b815481529060010190602001808311610d3c57829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b600080610d8b6127b4565b9050610da283610d9d8360070161281c565b6127d8565b610b3e6007820184612826565b6000610dc4610dbc6127b4565b60010161281c565b905090565b610dd963223d828d60e11b612832565b610de2816128d1565b610deb83612abd565b80610df46127b4565b6001600160a01b03851660008181526009929092016020908152604080842087855282529283902093909355905183815284927ff2f4de0c34a4899f5cf7a30aced71b0c27f629f80fb61efc06c7a12ecabdb7ba910160405180910390a3505050565b6060610e6283612abd565b6000610e6c6127b4565b6001600160a01b03851660009081526009919091016020908152604080832086845290915290205490508015610ead57610ea581612a52565b9150506106f2565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610f1357506040513d6000823e601f3d908101601f19168201604052610f10919081019061366c565b60015b610f975760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a401610987565b829450505050506106f2565b5092915050565b610fba634bd1a38760e01b612832565b610fc381612b13565b610fcc826128d1565b6000610fd66127b4565b600084815260059190910160209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b038816179055925492935061103992041660016136ee565b60078201805462ffffff92909216600160301b0262ffffff60301b199092169190911790556040518390600080516020613a1383398151915290600090a2505050565b61108c634f5267ef60e01b612832565b60006110966127b4565b6001600160a01b038416600090815260098201602090815260408083208684529091529020549091506111095760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b6044820152606401610987565b6001600160a01b03831660008181526009830160209081526040808320868452909152808220829055518492917f618154ee1a16009759db8e59ff744e79dd094831be73c4b9383f885678c20b7391a3505050565b6060600061116a6127b4565b600085815260059190910160205260409020600781015490915061119b908490600160301b900462ffffff166127d8565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906111f0908590600401613154565b602060405180830381865af415801561120d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611231919061370a565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f2081036112e057604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990611291908590600401613154565b600060405180830381865af41580156112ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112d69190810190613723565b93505050506106f2565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f3890611317908590600401613154565b600060405180830381865af4158015611334573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112d6919081019061376b565b61136c6352ccc02160e01b612832565b611375816128d1565b600061137f6127b4565b6000838152600591909101602052604090206007810154909150600160301b900462ffffff166113f15760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610987565b6007810154600682019060009061141690600190600160301b900462ffffff1661379f565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b918290048616600019019095160293909317909255518391600080516020613a1383398151915291a25050565b600061148b6127b4565b6000928352600501602052506040902060070154600160301b900462ffffff1690565b6114be635710f83d60e01b612832565b6114c781612882565b6114d0826128d1565b60006114da6127b4565b60008481526005919091016020908152604080832060078101546301000000900462ffffff168085526004820190935292209192509061151a848261351f565b506115268160016137bb565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516108519291906135d8565b60006115826127b4565b600092835260060160205250604090206001015462ffffff1690565b6115ae6366d549a160e01b612832565b6115b78461292e565b6115c48560406001612b67565b61160d5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610987565b60006116176127b4565b90506116266001820187612bdb565b61166e5760405162461bcd60e51b8152602060048201526019602482015278446570656e64656e637920616c72656164792065786973747360381b6044820152606401610987565b600086815260058201602052604090208581556001810161168f868261351f565b506003810161169e858261351f565b50600581016116ad848261351f565b5085877f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb778787876040516116e3939291906137ce565b60405180910390a350505050505050565b6117046336fd4fab60e11b612832565b61170d826128d1565b60006117176127b4565b600084815260058201602052604090206007810154919250906301000000900462ffffff1661174684826127d8565b6000611753600183613811565b60008781526005860160209081526040808320848452600490810183528184208a855290880190925290912091925061178c9082613824565b50600081815260048401602052604081206117a691612eeb565b60078301805465ffffff0000001916630100000062ffffff841602179055604051859087907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a3505050505050565b611801612be7565b61180b6000612c46565b565b606060006118196127b4565b600085815260069190910160205260409020600181015490915061184390849062ffffff166127d8565b60008381526020829052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906111f0908590600401613154565b6000610dc46033546001600160a01b031690565b606060006118b66127b4565b905060006118c68260010161281c565b90506000816001600160401b038111156118e2576118e261300b565b60405190808252806020026020018201604052801561191557816020015b60608152602001906001900390816119005790505b50905060005b828110156107a6576119386119336001860183612826565b612a52565b82828151811061194a5761194a6134a5565b60200260200101819052508080611960906138f8565b91505061191b565b61197863a0a82bd360e01b612832565b61198181612882565b61198a8261292e565b60006119946127b4565b60008481526006919091016020526040902090506119b18261298d565b6001828101805462ffffff908116600090815260208690526040902080546001600160a01b0319166001600160a01b039590951694909417909355546119f89216906136ee565b60018201805462ffffff191662ffffff9290921691909117905560405183906000805160206139f383398151915290600090a2505050565b611a4063a1a7a47b60e01b612832565b611a49826128d1565b6000611a536127b4565b600084815260059190910160205260409020600781015490915062ffffff16611a7c83826127d8565b6000611a89600183613811565b60008181526002850160205260408082208783529120919250611aac9082613824565b5060008181526002840160205260408120611ac691612eeb565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b611b1f63ad6b414d60e01b612832565b611b288161292e565b6000611b326127b4565b600083815260069190910160205260409020600181015490915062ffffff1680611ba95760405162461bcd60e51b815260206004820152602260248201527f5468657265206973206e6f206c6963656e7365207465787420746f2072656d6f604482015261766560f01b6064820152608401610987565b816000611bb760018461379f565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560018501805462ffffff19166000198601909416939093179092555184916000805160206139f383398151915291a2505050565b60606000611c206127b4565b9050611c3283610d9d8360010161281c565b610b3e6119336001830185612826565b6000610dc4611c4f6127b4565b60070161281c565b600080611c626127b4565b6000858152600591909101602052604090206007810154909150611c93908490600160301b900462ffffff166127d8565b60008381526006820160205260409081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a33191611ce4916001600160a01b031690600401613154565b602060405180830381865af4158015611d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d25919061370a565b949350505050565b611d3d635f1e9f7360e11b612832565b611d46826128d1565b80611d4f6127b4565b60008481526005919091016020526040902060010190611d6f908261351f565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051611da09190612fab565b60405180910390a25050565b611dbc630c07392760e41b612832565b80611e155760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b6064820152608401610987565b611e2a81611e216127b4565b60030190612bdb565b611e745760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b6044820152606401610987565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b611eb263c0cd565f60e01b612832565b611ebb81612b13565b611ec4836128d1565b6000611ece6127b4565b6000858152600591909101602052604090206007810154909150611eff908490600160301b900462ffffff166127d8565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b038616179055518591600080516020613a1383398151915291a250505050565b611f5363310aba0560e21b612832565b611f5c826128d1565b80611f656127b4565b60008481526005918201602052604090200190611f82908261351f565b50817f94747dffac14b8b9a15e699c998cc8f42ad81f21ae95e155c8a1c49403117b8b82604051611da09190612fab565b600054610100900460ff1615808015611fd35750600054600160ff909116105b80611fed5750303b158015611fed575060005460ff166001145b6120505760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610987565b6000805460ff191660011790558015612073576000805461ff0019166101001790555b61207b612c79565b61208482612c46565b80156120ca576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6120de63caaa3bb760e01b612832565b6120e781612882565b6120f0836128d1565b60006120fa6127b4565b600085815260059190910160205260409020600781015490915061212b9084906301000000900462ffffff166127d8565b60008381526004820160205260409020612145838261351f565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516108519291906135d8565b606060006121846127b4565b905061219683610d9d8360030161281c565b610b3e6119336003830185612826565b60006106f2826121b46127b4565b60070190612ca8565b6121cd63dbc71ccb60e01b612832565b6121d681612b13565b6121eb816121e26127b4565b60070190612cbd565b6122345760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b6044820152606401610987565b6040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b61227b636e19fa5760e11b612832565b61228481612882565b61228d826128d1565b60006122976127b4565b60008481526005919091016020526040902090506122b48261298d565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054611039929190041660016136ee565b6000806123156127b4565b6000858152600591909101602052604090206007810154909150612346908490600160301b900462ffffff166127d8565b60009283526006016020525060409020546001600160a01b0316919050565b606060006123716127b4565b60008581526005919091016020526040902060078101549091506123a29084906301000000900462ffffff166127d8565b60008381526004820160205260409020805461067090613471565b6123cd63f146f17f60e01b612832565b6123d681612882565b6123df826128d1565b60006123e96127b4565b600084815260059190910160209081526040808320600781015462ffffff1680855260028201909352922091925090612422848261351f565b5061242e8160016137bb565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516108519291906135d8565b612488612be7565b6001600160a01b0381166124ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610987565b6124f681612c46565b50565b612509637c560c5f60e11b612832565b612512816128d1565b600061251c6127b4565b6000838152600582016020526040902060078101549192509062ffffff16158015612555575060078101546301000000900462ffffff16155b801561256f57506007810154600160301b900462ffffff16155b6125f15760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a401610987565b6125fe6001830184612cd2565b5060008381526005830160205260408120818155906126206001830182612eeb565b61262e600383016000612eeb565b61263c600583016000612eeb565b5060070180546001600160481b031916905560405183907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a2505050565b61268e637ce07d7360e11b612832565b612697826128d1565b806126a06127b4565b600084815260059190910160205260409020600301906126c0908261351f565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051611da09190612fab565b606060006126fd6127b4565b9050600061270d8260030161281c565b90506000816001600160401b038111156127295761272961300b565b60405190808252806020026020018201604052801561275c57816020015b60608152602001906001900390816127475790505b50905060005b828110156107a65761277a6119336003860183612826565b82828151811061278c5761278c6134a5565b6020908102919091010152600101612762565b6000610dc46127ac6127b4565b60030161281c565b7fb1832496845cc2c2d1bd0879f9ba0b1ef7ffcfdc79a541ee494477d8e10b9a3190565b8082106120ca5760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b6044820152606401610987565b60006106f2825490565b6000610b3e8383612cde565b61283d333083610a91565b6124f65760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610987565b80516000036124f65760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610987565b6128e6816128dd6127b4565b60010190612d08565b6124f65760405162461bcd60e51b815260206004820152601960248201527811195c195b99195b98de48191bd95cc81b9bdd08195e1a5cdd603a1b6044820152606401610987565b6129438161293a6127b4565b60030190612d08565b6124f65760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b6044820152606401610987565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f2030846040516020016129c593929190613911565b60405160208183030381529060405290508051602082016000f091506001600160a01b038216612a375760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610987565b50919050565b6000610b3e836001600160a01b038416612d14565b606060005b828160ff1660208110612a6c57612a6c6134a5565b1a60f81b6001600160f81b03191615801590612a8b575060208160ff16105b15612aa25780612a9a81613972565b915050612a57565b60405191506040820160405280825282602083015250919050565b612ac9816121b46127b4565b6124f65760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b6044820152606401610987565b6001600160a01b0381166124f65760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610987565b60008060005b60208160ff161015612bc7576000868260ff1660208110612b9057612b906134a5565b1a90508015801590612ba5575060808160ff16105b15612bbe578560ff168160ff1603612bbe578260010192505b50600101612b6d565b8360ff168260ff1614925050509392505050565b6000610b3e8383612e07565b33612bf0611896565b6001600160a01b03161461180b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610987565b612c4f81612e51565b80612c586127b4565b80546001600160a01b0319166001600160a01b039290921691909117905550565b600054610100900460ff16612ca05760405162461bcd60e51b815260040161098790613991565b61180b612ea3565b6000610b3e836001600160a01b038416612ed3565b6000610b3e836001600160a01b038416612e07565b6000610b3e8383612d14565b6000826000018281548110612cf557612cf56134a5565b9060005260206000200154905092915050565b6000610b3e8383612ed3565b60008181526001830160205260408120548015612dfd576000612d38600183613811565b8554909150600090612d4c90600190613811565b9050818114612db1576000866000018281548110612d6c57612d6c6134a5565b9060005260206000200154905080876000018481548110612d8f57612d8f6134a5565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612dc257612dc26139dc565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106f2565b60009150506106f2565b6000612e138383612ed3565b612e49575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106f2565b5060006106f2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16612eca5760405162461bcd60e51b815260040161098790613991565b61180b33612c46565b60009081526001919091016020526040902054151590565b508054612ef790613471565b6000825580601f10612f07575050565b601f0160209004906000526020600020908101906124f691905b80821115612f355760008155600101612f21565b5090565b60008060408385031215612f4c57600080fd5b50508035926020909101359150565b60005b83811015612f76578181015183820152602001612f5e565b50506000910152565b60008151808452612f97816020860160208601612f5b565b601f01601f19169290920160200192915050565b602081526000610b3e6020830184612f7f565b6020808252825182820181905260009190848201906040850190845b81811015612fff5783516001600160a01b031683529284019291840191600101612fda565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156130495761304961300b565b604052919050565b60006001600160401b0382111561306a5761306a61300b565b50601f01601f191660200190565b600082601f83011261308957600080fd5b813561309c61309782613051565b613021565b8181528460208386010111156130b157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156130e357600080fd5b833592506020840135915060408401356001600160401b0381111561310757600080fd5b61311386828701613078565b9150509250925092565b80356001600160a01b038116811461313457600080fd5b919050565b60006020828403121561314b57600080fd5b610b3e8261311d565b6001600160a01b0391909116815260200190565b60008060006060848603121561317d57600080fd5b6131868461311d565b92506131946020850161311d565b915060408401356001600160e01b0319811681146131b157600080fd5b809150509250925092565b6000602082840312156131ce57600080fd5b5035919050565b60006101208083526131e98184018d612f7f565b905082810360208401526131fd818c612f7f565b90508281036040840152613211818b612f7f565b905062ffffff808a1660608501528382036080850152613231828a612f7f565b915080881660a085015283820360c085015261324d8288612f7f565b925085151560e085015280851661010085015250509a9950505050505050505050565b60008060006060848603121561328557600080fd5b61328e8461311d565b95602085013595506040909401359392505050565b600080604083850312156132b657600080fd5b6132bf8361311d565b946020939093013593505050565b600080604083850312156132e057600080fd5b823591506132f06020840161311d565b90509250929050565b6000806040838503121561330c57600080fd5b8235915060208301356001600160401b0381111561332957600080fd5b61333585828601613078565b9150509250929050565b600080600080600060a0868803121561335757600080fd5b853594506020860135935060408601356001600160401b038082111561337c57600080fd5b61338889838a01613078565b9450606088013591508082111561339e57600080fd5b6133aa89838a01613078565b935060808801359150808211156133c057600080fd5b506133cd88828901613078565b9150509295509295909350565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561342f57603f1988860301845261341d858351612f7f565b94509285019290850190600101613401565b5092979650505050505050565b60008060006060848603121561345157600080fd5b83359250602084013591506134686040850161311d565b90509250925092565b600181811c9082168061348557607f821691505b602082108103612a3757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b601f82111561350557600081815260208120601f850160051c810160208610156134e25750805b601f850160051c820191505b81811015613501578281556001016134ee565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b038111156135385761353861300b565b61354c816135468454613471565b846134bb565b602080601f83116001811461357b57600084156135695750858301515b613573858261350a565b865550613501565b600085815260208120601f198616915b828110156135aa5788860151825594840194600190910190840161358b565b50858210156135c85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6040815260006135eb6040830185612f7f565b90508260208301529392505050565b60006020828403121561360c57600080fd5b81518015158114610b3e57600080fd5b600061362a61309784613051565b905082815283838301111561363e57600080fd5b610b3e836020830184612f5b565b600082601f83011261365d57600080fd5b610b3e8383516020850161361c565b60008060006060848603121561368157600080fd5b83516001600160401b038082111561369857600080fd5b6136a48783880161364c565b945060208601519150808211156136ba57600080fd5b506136c78682870161364c565b925050604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b62ffffff818116838216019080821115610fa357610fa36136d8565b60006020828403121561371c57600080fd5b5051919050565b60006020828403121561373557600080fd5b81516001600160401b0381111561374b57600080fd5b8201601f8101841361375c57600080fd5b611d258482516020840161361c565b60006020828403121561377d57600080fd5b81516001600160401b0381111561379357600080fd5b611d258482850161364c565b62ffffff828116828216039080821115610fa357610fa36136d8565b808201808211156106f2576106f26136d8565b6060815260006137e16060830186612f7f565b82810360208401526137f38186612f7f565b905082810360408401526138078185612f7f565b9695505050505050565b818103818111156106f2576106f26136d8565b81810361382f575050565b6138398254613471565b6001600160401b038111156138505761385061300b565b61385e816135468454613471565b6000601f82116001811461388c576000831561387a5750848201545b613884848261350a565b8555506138f1565b600085815260209020601f19841690600086815260209020845b838110156138c657828601548255600195860195909101906020016138a6565b50858310156138e45781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b60006001820161390a5761390a6136d8565b5060010190565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161396381604c850160208701612f5b565b91909101604c01949350505050565b600060ff821660ff8103613988576139886136d8565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfe5d7871759f44bc77f64c9eb647afdcf4a49d2fbba70fc64411a3bdc750b05274f79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a26469706673582212206bea8239315a7b7d8769e84ac35190ddba4034e098a49387000f6223d3bf88a964736f6c63430008130033",
1298
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102555760003560e01c80639532f2f4116101425780639532f2f414610463578063a0a82bd314610478578063a1a7a47b1461048b578063ad6b414d1461049e578063b1d24cb2146104b1578063b86b69f1146104c4578063ba228512146104cc578063be3d3ee6146104df578063c0739270146104f2578063c0cd565f14610505578063c42ae81414610518578063c4d66de81461052b578063caaa3bb71461053e578063cc86ba4b14610551578063cea2961a14610564578063dbc71ccb14610577578063dc33f4ae1461058a578063dfa3be531461059d578063f0b99382146105b0578063f146f17f146105c3578063f2fde38b146105d6578063f8ac18be146105e9578063f9c0fae6146105fc578063fb5cd19b1461060f578063fed37e821461061757600080fd5b8062e879031461025a57806307f9f78614610283578063137621861461029857806316a1012d146102ad578063199eb8e0146102c05780631a051d49146102d35780631e9bef46146102e6578063230448b1146102fb57806325ffb3761461031e5780633e76919a1461034657806344346a5f14610359578063447b051a1461036f5780634a78a932146103825780634bd1a387146103955780634f5267ef146103a8578063518cb3df146103bb57806352ccc021146103ce5780635668bc5e146103e15780635710f83d146103f4578063613d57fd1461040757806366d549a11461041a5780636dfa9f561461042d578063715018a61461044057806371b70a71146104485780638da5cb5b1461045b575b600080fd5b61026d610268366004612f39565b61061f565b60405161027a9190612fab565b60405180910390f35b61028b6106f8565b60405161027a9190612fbe565b6102ab6102a63660046130ce565b6107ae565b005b6102ab6102bb3660046130ce565b61085f565b6102ab6102ce366004613139565b610907565b6102ab6102e13660046130ce565b6109c7565b6102ee610a78565b60405161027a9190613154565b61030e610309366004613168565b610a91565b604051901515815260200161027a565b61033161032c3660046131bc565b610b45565b60405161027a999897969594939291906131d5565b6102ee6103543660046131bc565b610d80565b610361610daf565b60405190815260200161027a565b6102ab61037d366004613270565b610dc9565b61026d6103903660046132a3565b610e57565b6102ab6103a33660046132cd565b610faa565b6102ab6103b63660046132a3565b61107c565b61026d6103c9366004612f39565b61115e565b6102ab6103dc3660046131bc565b61135c565b6103616103ef3660046131bc565b611481565b6102ab6104023660046132f9565b6114ae565b6103616104153660046131bc565b611578565b6102ab61042836600461333f565b61159e565b6102ab61043b366004612f39565b6116f4565b6102ab6117f9565b61026d610456366004612f39565b61180d565b6102ee611896565b61046b6118aa565b60405161027a91906133da565b6102ab6104863660046132f9565b611968565b6102ab610499366004612f39565b611a30565b6102ab6104ac3660046131bc565b611b0f565b61026d6104bf3660046131bc565b611c14565b610361611c42565b6103616104da366004612f39565b611c57565b6102ab6104ed3660046132f9565b611d2d565b6102ab6105003660046131bc565b611dac565b6102ab61051336600461343c565b611ea2565b6102ab6105263660046132f9565b611f43565b6102ab610539366004613139565b611fb3565b6102ab61054c3660046130ce565b6120ce565b61026d61055f3660046131bc565b612178565b61030e610572366004613139565b6121a6565b6102ab610585366004613139565b6121bd565b6102ab6105983660046132f9565b61226b565b6102ee6105ab366004612f39565b61230a565b61026d6105be366004612f39565b612365565b6102ab6105d13660046132f9565b6123bd565b6102ab6105e4366004613139565b612480565b6102ab6105f73660046131bc565b6124f9565b6102ab61060a3660046132f9565b61267e565b61046b6126f1565b61036161279f565b6060600061062b6127b4565b600085815260059190910160205260409020600781015490915061065590849062ffffff166127d8565b60008381526002820160205260409020805461067090613471565b80601f016020809104026020016040519081016040528092919081815260200182805461069c90613471565b80156106e95780601f106106be576101008083540402835291602001916106e9565b820191906000526020600020905b8154815290600101906020018083116106cc57829003601f168201915b50505050509150505b92915050565b606060006107046127b4565b905060006107148260070161281c565b90506000816001600160401b038111156107305761073061300b565b604051908082528060200260200182016040528015610759578160200160208202803683370190505b50905060005b828110156107a6576107746007850182612826565b828281518110610786576107866134a5565b6001600160a01b039092166020928302919091019091015260010161075f565b509392505050565b6107be6309bb10c360e11b612832565b6107c781612882565b6107d0836128d1565b60006107da6127b4565b600085815260059190910160205260409020600781015490915061080490849062ffffff166127d8565b6000838152600282016020526040902061081e838261351f565b50837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d83856040516108519291906135d8565b60405180910390a250505050565b61086f6316a1012d60e01b612832565b61087881612882565b6108818361292e565b600061088b6127b4565b60008581526006919091016020526040902060018101549091506108b590849062ffffff166127d8565b6108be8261298d565b60008481526020839052604080822080546001600160a01b0319166001600160a01b039490941693909317909255905185916000805160206139f383398151915291a250505050565b61091662ccf5c760e51b612832565b61092b816109226127b4565b60070190612a3d565b6109905760405162461bcd60e51b815260206004820152602b60248201527f436f726520636f6e747261637420616c72656164792072656d6f766564206f7260448201526a081b9bdd081a5b881cd95d60aa1b60648201526084015b60405180910390fd5b6040516001600160a01b038216907f2453d2f77bae1012d39e2257356d2566625ebe0ffd6094198aa051689dc65ba090600090a250565b6109d7631a051d4960e01b612832565b6109e081612882565b6109e9836128d1565b60006109f36127b4565b6000858152600591909101602052604090206007810154909150610a24908490600160301b900462ffffff166127d8565b610a2d8261298d565b600084815260068301602052604080822080546001600160a01b0319166001600160a01b03949094169390931790925590518591600080516020613a1383398151915291a250505050565b6000610a826127b4565b546001600160a01b0316919050565b600080610a9c611896565b6001600160a01b031614158015610b3b5750610ab66127b4565b546040516217798b60e61b81526001600160a01b03868116600483015285811660248301526001600160e01b031985166044830152909116906305de62c0906064016020604051808303816000875af1158015610b17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b3b91906135fa565b90505b9392505050565b606080606060006060600060606000806000610b5f6127b4565b60008c8152600591909101602052604090209050610b7c8b612a52565b8154610b8790612a52565b6007830154600184018054909162ffffff8082169260038801926301000000810483169260058a0192600160301b90920416801515918790610bc890613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf490613471565b8015610c415780601f10610c1657610100808354040283529160200191610c41565b820191906000526020600020905b815481529060010190602001808311610c2457829003601f168201915b50505050509650848054610c5490613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8090613471565b8015610ccd5780601f10610ca257610100808354040283529160200191610ccd565b820191906000526020600020905b815481529060010190602001808311610cb057829003601f168201915b50505050509450828054610ce090613471565b80601f0160208091040260200160405190810160405280929190818152602001828054610d0c90613471565b8015610d595780601f10610d2e57610100808354040283529160200191610d59565b820191906000526020600020905b815481529060010190602001808311610d3c57829003601f168201915b50505050509250995099509950995099509950995099509950509193959799909294969850565b600080610d8b6127b4565b9050610da283610d9d8360070161281c565b6127d8565b610b3e6007820184612826565b6000610dc4610dbc6127b4565b60010161281c565b905090565b610dd963223d828d60e11b612832565b610de2816128d1565b610deb83612abd565b80610df46127b4565b6001600160a01b03851660008181526009929092016020908152604080842087855282529283902093909355905183815284927ff2f4de0c34a4899f5cf7a30aced71b0c27f629f80fb61efc06c7a12ecabdb7ba910160405180910390a3505050565b6060610e6283612abd565b6000610e6c6127b4565b6001600160a01b03851660009081526009919091016020908152604080832086845290915290205490508015610ead57610ea581612a52565b9150506106f2565b604051633ae7357560e21b8152600481018490526001600160a01b0385169063eb9cd5d490602401600060405180830381865afa925050508015610f1357506040513d6000823e601f3d908101601f19168201604052610f10919081019061366c565b60015b610f975760405162461bcd60e51b815260206004820152604960248201527f436f6e747261637420646f6573206e6f7420696d706c656d656e742070726f6a60448201527f65637453637269707444657461696c7320616e6420686173206e6f206f7665726064820152683934b2329039b2ba1760b91b608482015260a401610987565b829450505050506106f2565b5092915050565b610fba634bd1a38760e01b612832565b610fc381612b13565b610fcc826128d1565b6000610fd66127b4565b600084815260059190910160209081526040808320600781018054600160301b9081900462ffffff9081168752600684019095529290942080546001600160a01b0319166001600160a01b038816179055925492935061103992041660016136ee565b60078201805462ffffff92909216600160301b0262ffffff60301b199092169190911790556040518390600080516020613a1383398151915290600090a2505050565b61108c634f5267ef60e01b612832565b60006110966127b4565b6001600160a01b038416600090815260098201602090815260408083208684529091529020549091506111095760405162461bcd60e51b815260206004820152601b60248201527a139bc81bdd995c9c9a5919481cd95d08199bdc881c1c9bda9958dd602a1b6044820152606401610987565b6001600160a01b03831660008181526009830160209081526040808320868452909152808220829055518492917f618154ee1a16009759db8e59ff744e79dd094831be73c4b9383f885678c20b7391a3505050565b6060600061116a6127b4565b600085815260059190910160205260409020600781015490915061119b908490600160301b900462ffffff166127d8565b600083815260068201602052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906111f0908590600401613154565b602060405180830381865af415801561120d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611231919061370a565b90507f554e4b4e4f574e5f56455253494f4e5f535452494e475f5f5f5f5f5f5f5f5f2081036112e057604051632475d70960e01b815273__$55f4e50e6128becd8bf164b272db98df09$__90632475d70990611291908590600401613154565b600060405180830381865af41580156112ae573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112d69190810190613723565b93505050506106f2565b604051630eacc5e760e31b815273__$55f4e50e6128becd8bf164b272db98df09$__906375662f3890611317908590600401613154565b600060405180830381865af4158015611334573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112d6919081019061376b565b61136c6352ccc02160e01b612832565b611375816128d1565b600061137f6127b4565b6000838152600591909101602052604090206007810154909150600160301b900462ffffff166113f15760405162461bcd60e51b815260206004820152601e60248201527f746865726520617265206e6f207363726970747320746f2072656d6f766500006044820152606401610987565b6007810154600682019060009061141690600190600160301b900462ffffff1661379f565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560078401805462ffffff60301b198116600160301b918290048616600019019095160293909317909255518391600080516020613a1383398151915291a25050565b600061148b6127b4565b6000928352600501602052506040902060070154600160301b900462ffffff1690565b6114be635710f83d60e01b612832565b6114c781612882565b6114d0826128d1565b60006114da6127b4565b60008481526005919091016020908152604080832060078101546301000000900462ffffff168085526004820190935292209192509061151a848261351f565b506115268160016137bb565b8260070160036101000a81548162ffffff021916908362ffffff160217905550837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde84836040516108519291906135d8565b60006115826127b4565b600092835260060160205250604090206001015462ffffff1690565b6115ae6366d549a160e01b612832565b6115b78461292e565b6115c48560406001612b67565b61160d5760405162461bcd60e51b815260206004820152601a60248201527901b5d5cdd0818dbdb9d185a5b88195e1858dd1b1e481bdb9948160361b6044820152606401610987565b60006116176127b4565b90506116266001820187612bdb565b61166e5760405162461bcd60e51b8152602060048201526019602482015278446570656e64656e637920616c72656164792065786973747360381b6044820152606401610987565b600086815260058201602052604090208581556001810161168f868261351f565b506003810161169e858261351f565b50600581016116ad848261351f565b5085877f14d15ecf0e955bdd7a921efba642deef4d718696d3fc369454c84817fed0fb778787876040516116e3939291906137ce565b60405180910390a350505050505050565b6117046336fd4fab60e11b612832565b61170d826128d1565b60006117176127b4565b600084815260058201602052604090206007810154919250906301000000900462ffffff1661174684826127d8565b6000611753600183613811565b60008781526005860160209081526040808320848452600490810183528184208a855290880190925290912091925061178c9082613824565b50600081815260048401602052604081206117a691612eeb565b60078301805465ffffff0000001916630100000062ffffff841602179055604051859087907fc02725dfc9639e3399432cdae3db1c062229f4cc41bcc18631517617c020b71c90600090a3505050505050565b611801612be7565b61180b6000612c46565b565b606060006118196127b4565b600085815260069190910160205260409020600181015490915061184390849062ffffff166127d8565b60008381526020829052604080822054905163cc31a33160e01b81526001600160a01b03909116919073__$55f4e50e6128becd8bf164b272db98df09$__9063cc31a331906111f0908590600401613154565b6000610dc46033546001600160a01b031690565b606060006118b66127b4565b905060006118c68260010161281c565b90506000816001600160401b038111156118e2576118e261300b565b60405190808252806020026020018201604052801561191557816020015b60608152602001906001900390816119005790505b50905060005b828110156107a6576119386119336001860183612826565b612a52565b82828151811061194a5761194a6134a5565b60200260200101819052508080611960906138f8565b91505061191b565b61197863a0a82bd360e01b612832565b61198181612882565b61198a8261292e565b60006119946127b4565b60008481526006919091016020526040902090506119b18261298d565b6001828101805462ffffff908116600090815260208690526040902080546001600160a01b0319166001600160a01b039590951694909417909355546119f89216906136ee565b60018201805462ffffff191662ffffff9290921691909117905560405183906000805160206139f383398151915290600090a2505050565b611a4063a1a7a47b60e01b612832565b611a49826128d1565b6000611a536127b4565b600084815260059190910160205260409020600781015490915062ffffff16611a7c83826127d8565b6000611a89600183613811565b60008181526002850160205260408082208783529120919250611aac9082613824565b5060008181526002840160205260408120611ac691612eeb565b60078301805462ffffff191662ffffff8316179055604051849086907f225454b600cf489553fde6e3b7f5e458b1093c035390b678067ea799b3b016cd90600090a35050505050565b611b1f63ad6b414d60e01b612832565b611b288161292e565b6000611b326127b4565b600083815260069190910160205260409020600181015490915062ffffff1680611ba95760405162461bcd60e51b815260206004820152602260248201527f5468657265206973206e6f206c6963656e7365207465787420746f2072656d6f604482015261766560f01b6064820152608401610987565b816000611bb760018461379f565b62ffffff908116825260208201929092526040908101600090812080546001600160a01b031916905560018501805462ffffff19166000198601909416939093179092555184916000805160206139f383398151915291a2505050565b60606000611c206127b4565b9050611c3283610d9d8360010161281c565b610b3e6119336001830185612826565b6000610dc4611c4f6127b4565b60070161281c565b600080611c626127b4565b6000858152600591909101602052604090206007810154909150611c93908490600160301b900462ffffff166127d8565b60008381526006820160205260409081902054905163cc31a33160e01b815273__$55f4e50e6128becd8bf164b272db98df09$__9163cc31a33191611ce4916001600160a01b031690600401613154565b602060405180830381865af4158015611d01573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d25919061370a565b949350505050565b611d3d635f1e9f7360e11b612832565b611d46826128d1565b80611d4f6127b4565b60008481526005919091016020526040902060010190611d6f908261351f565b50817fc9890a31ec780bb5a8a017d683d3913f97260548d71c2cee78194ed2833f023582604051611da09190612fab565b60405180910390a25050565b611dbc630c07392760e41b612832565b80611e155760405162461bcd60e51b815260206004820152602360248201527f4c6963656e736520747970652063616e6e6f7420626520656d70747920737472604482015262696e6760e81b6064820152608401610987565b611e2a81611e216127b4565b60030190612bdb565b611e745760405162461bcd60e51b815260206004820152601b60248201527a4c6963656e7365207479706520616c72656164792065786973747360281b6044820152606401610987565b60405181907fad5dcce4588345db351371d105540f3fb69966f418d923539f19d5f44a1cfc4b90600090a250565b611eb263c0cd565f60e01b612832565b611ebb81612b13565b611ec4836128d1565b6000611ece6127b4565b6000858152600591909101602052604090206007810154909150611eff908490600160301b900462ffffff166127d8565b600083815260068201602052604080822080546001600160a01b0319166001600160a01b038616179055518591600080516020613a1383398151915291a250505050565b611f5363310aba0560e21b612832565b611f5c826128d1565b80611f656127b4565b60008481526005918201602052604090200190611f82908261351f565b50817f94747dffac14b8b9a15e699c998cc8f42ad81f21ae95e155c8a1c49403117b8b82604051611da09190612fab565b600054610100900460ff1615808015611fd35750600054600160ff909116105b80611fed5750303b158015611fed575060005460ff166001145b6120505760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610987565b6000805460ff191660011790558015612073576000805461ff0019166101001790555b61207b612c79565b61208482612c46565b80156120ca576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050565b6120de63caaa3bb760e01b612832565b6120e781612882565b6120f0836128d1565b60006120fa6127b4565b600085815260059190910160205260409020600781015490915061212b9084906301000000900462ffffff166127d8565b60008381526004820160205260409020612145838261351f565b50837ffe07adc986f904acd19c0f4f5d0716973976f0450de010a753a52d119ddadbde83856040516108519291906135d8565b606060006121846127b4565b905061219683610d9d8360030161281c565b610b3e6119336003830185612826565b60006106f2826121b46127b4565b60070190612ca8565b6121cd63dbc71ccb60e01b612832565b6121d681612b13565b6121eb816121e26127b4565b60070190612cbd565b6122345760405162461bcd60e51b815260206004820152601a60248201527910dbdb9d1c9858dd08185b1c9958591e481cdd5c1c1bdc9d195960321b6044820152606401610987565b6040516001600160a01b038216907f59e1b889b92ad05213b7934a67c5d824348c868455d1c741a2cfe16e46d832dc90600090a250565b61227b636e19fa5760e11b612832565b61228481612882565b61228d826128d1565b60006122976127b4565b60008481526005919091016020526040902090506122b48261298d565b600782018054600160301b9081900462ffffff9081166000908152600686016020526040902080546001600160a01b0319166001600160a01b0395909516949094179093559054611039929190041660016136ee565b6000806123156127b4565b6000858152600591909101602052604090206007810154909150612346908490600160301b900462ffffff166127d8565b60009283526006016020525060409020546001600160a01b0316919050565b606060006123716127b4565b60008581526005919091016020526040902060078101549091506123a29084906301000000900462ffffff166127d8565b60008381526004820160205260409020805461067090613471565b6123cd63f146f17f60e01b612832565b6123d681612882565b6123df826128d1565b60006123e96127b4565b600084815260059190910160209081526040808320600781015462ffffff1680855260028201909352922091925090612422848261351f565b5061242e8160016137bb565b8260070160006101000a81548162ffffff021916908362ffffff160217905550837f5f667fb1eaf23e0fee1a9dcc154d842202b184eb9ad83502c00c784808a8d00d84836040516108519291906135d8565b612488612be7565b6001600160a01b0381166124ed5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610987565b6124f681612c46565b50565b612509637c560c5f60e11b612832565b612512816128d1565b600061251c6127b4565b6000838152600582016020526040902060078101549192509062ffffff16158015612555575060078101546301000000900462ffffff16155b801561256f57506007810154600160301b900462ffffff16155b6125f15760405162461bcd60e51b815260206004820152604760248201527f43616e6e6f742072656d6f766520646570656e64656e6379207769746820616460448201527f646974696f6e616c2043444e732c207265706f7369746f726965732c206f72206064820152667363726970747360c81b608482015260a401610987565b6125fe6001830184612cd2565b5060008381526005830160205260408120818155906126206001830182612eeb565b61262e600383016000612eeb565b61263c600583016000612eeb565b5060070180546001600160481b031916905560405183907f60e2aa021c4f5303dd65e2173f0180636e4d42eaefc6187278e92bee9d06aa7290600090a2505050565b61268e637ce07d7360e11b612832565b612697826128d1565b806126a06127b4565b600084815260059190910160205260409020600301906126c0908261351f565b50817f774918414e4887efe5349a305fe253ee8b1e3fe0c2117012f0c215645693cbfd82604051611da09190612fab565b606060006126fd6127b4565b9050600061270d8260030161281c565b90506000816001600160401b038111156127295761272961300b565b60405190808252806020026020018201604052801561275c57816020015b60608152602001906001900390816127475790505b50905060005b828110156107a65761277a6119336003860183612826565b82828151811061278c5761278c6134a5565b6020908102919091010152600101612762565b6000610dc46127ac6127b4565b60030161281c565b7fb1832496845cc2c2d1bd0879f9ba0b1ef7ffcfdc79a541ee494477d8e10b9a3190565b8082106120ca5760405162461bcd60e51b8152602060048201526012602482015271496e646578206f7574206f662072616e676560701b6044820152606401610987565b60006106f2825490565b6000610b3e8383612cde565b61283d333083610a91565b6124f65760405162461bcd60e51b815260206004820152601660248201527513db9b1e4810591b5a5b881050d308185b1b1bddd95960521b6044820152606401610987565b80516000036124f65760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d656d70747920737472696e6760281b6044820152606401610987565b6128e6816128dd6127b4565b60010190612d08565b6124f65760405162461bcd60e51b815260206004820152601960248201527811195c195b99195b98de48191bd95cc81b9bdd08195e1a5cdd603a1b6044820152606401610987565b6129438161293a6127b4565b60030190612d08565b6124f65760405162461bcd60e51b815260206004820152601b60248201527a131a58d95b9cd9481d1e5c1948191bd95cc81b9bdd08195e1a5cdd602a1b6044820152606401610987565b6000807f42797465636f646553746f726167655f56312e302e305f5f5f5f5f5f5f5f5f2030846040516020016129c593929190613911565b60405160208183030381529060405290508051602082016000f091506001600160a01b038216612a375760405162461bcd60e51b815260206004820152601e60248201527f436f6e7472616374417353746f726167653a205772697465204572726f7200006044820152606401610987565b50919050565b6000610b3e836001600160a01b038416612d14565b606060005b828160ff1660208110612a6c57612a6c6134a5565b1a60f81b6001600160f81b03191615801590612a8b575060208160ff16105b15612aa25780612a9a81613972565b915050612a57565b60405191506040820160405280825282602083015250919050565b612ac9816121b46127b4565b6124f65760405162461bcd60e51b815260206004820152601b60248201527a10dbdc994818dbdb9d1c9858dd081b9bdd081cdd5c1c1bdc9d1959602a1b6044820152606401610987565b6001600160a01b0381166124f65760405162461bcd60e51b815260206004820152601b60248201527a4d75737420696e707574206e6f6e2d7a65726f206164647265737360281b6044820152606401610987565b60008060005b60208160ff161015612bc7576000868260ff1660208110612b9057612b906134a5565b1a90508015801590612ba5575060808160ff16105b15612bbe578560ff168160ff1603612bbe578260010192505b50600101612b6d565b8360ff168260ff1614925050509392505050565b6000610b3e8383612e07565b33612bf0611896565b6001600160a01b03161461180b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610987565b612c4f81612e51565b80612c586127b4565b80546001600160a01b0319166001600160a01b039290921691909117905550565b600054610100900460ff16612ca05760405162461bcd60e51b815260040161098790613991565b61180b612ea3565b6000610b3e836001600160a01b038416612ed3565b6000610b3e836001600160a01b038416612e07565b6000610b3e8383612d14565b6000826000018281548110612cf557612cf56134a5565b9060005260206000200154905092915050565b6000610b3e8383612ed3565b60008181526001830160205260408120548015612dfd576000612d38600183613811565b8554909150600090612d4c90600190613811565b9050818114612db1576000866000018281548110612d6c57612d6c6134a5565b9060005260206000200154905080876000018481548110612d8f57612d8f6134a5565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612dc257612dc26139dc565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106f2565b60009150506106f2565b6000612e138383612ed3565b612e49575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106f2565b5060006106f2565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16612eca5760405162461bcd60e51b815260040161098790613991565b61180b33612c46565b60009081526001919091016020526040902054151590565b508054612ef790613471565b6000825580601f10612f07575050565b601f0160209004906000526020600020908101906124f691905b80821115612f355760008155600101612f21565b5090565b60008060408385031215612f4c57600080fd5b50508035926020909101359150565b60005b83811015612f76578181015183820152602001612f5e565b50506000910152565b60008151808452612f97816020860160208601612f5b565b601f01601f19169290920160200192915050565b602081526000610b3e6020830184612f7f565b6020808252825182820181905260009190848201906040850190845b81811015612fff5783516001600160a01b031683529284019291840191600101612fda565b50909695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156130495761304961300b565b604052919050565b60006001600160401b0382111561306a5761306a61300b565b50601f01601f191660200190565b600082601f83011261308957600080fd5b813561309c61309782613051565b613021565b8181528460208386010111156130b157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000606084860312156130e357600080fd5b833592506020840135915060408401356001600160401b0381111561310757600080fd5b61311386828701613078565b9150509250925092565b80356001600160a01b038116811461313457600080fd5b919050565b60006020828403121561314b57600080fd5b610b3e8261311d565b6001600160a01b0391909116815260200190565b60008060006060848603121561317d57600080fd5b6131868461311d565b92506131946020850161311d565b915060408401356001600160e01b0319811681146131b157600080fd5b809150509250925092565b6000602082840312156131ce57600080fd5b5035919050565b60006101208083526131e98184018d612f7f565b905082810360208401526131fd818c612f7f565b90508281036040840152613211818b612f7f565b905062ffffff808a1660608501528382036080850152613231828a612f7f565b915080881660a085015283820360c085015261324d8288612f7f565b925085151560e085015280851661010085015250509a9950505050505050505050565b60008060006060848603121561328557600080fd5b61328e8461311d565b95602085013595506040909401359392505050565b600080604083850312156132b657600080fd5b6132bf8361311d565b946020939093013593505050565b600080604083850312156132e057600080fd5b823591506132f06020840161311d565b90509250929050565b6000806040838503121561330c57600080fd5b8235915060208301356001600160401b0381111561332957600080fd5b61333585828601613078565b9150509250929050565b600080600080600060a0868803121561335757600080fd5b853594506020860135935060408601356001600160401b038082111561337c57600080fd5b61338889838a01613078565b9450606088013591508082111561339e57600080fd5b6133aa89838a01613078565b935060808801359150808211156133c057600080fd5b506133cd88828901613078565b9150509295509295909350565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561342f57603f1988860301845261341d858351612f7f565b94509285019290850190600101613401565b5092979650505050505050565b60008060006060848603121561345157600080fd5b83359250602084013591506134686040850161311d565b90509250925092565b600181811c9082168061348557607f821691505b602082108103612a3757634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b601f82111561350557600081815260208120601f850160051c810160208610156134e25750805b601f850160051c820191505b81811015613501578281556001016134ee565b5050505b505050565b600019600383901b1c191660019190911b1790565b81516001600160401b038111156135385761353861300b565b61354c816135468454613471565b846134bb565b602080601f83116001811461357b57600084156135695750858301515b613573858261350a565b865550613501565b600085815260208120601f198616915b828110156135aa5788860151825594840194600190910190840161358b565b50858210156135c85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6040815260006135eb6040830185612f7f565b90508260208301529392505050565b60006020828403121561360c57600080fd5b81518015158114610b3e57600080fd5b600061362a61309784613051565b905082815283838301111561363e57600080fd5b610b3e836020830184612f5b565b600082601f83011261365d57600080fd5b610b3e8383516020850161361c565b60008060006060848603121561368157600080fd5b83516001600160401b038082111561369857600080fd5b6136a48783880161364c565b945060208601519150808211156136ba57600080fd5b506136c78682870161364c565b925050604084015190509250925092565b634e487b7160e01b600052601160045260246000fd5b62ffffff818116838216019080821115610fa357610fa36136d8565b60006020828403121561371c57600080fd5b5051919050565b60006020828403121561373557600080fd5b81516001600160401b0381111561374b57600080fd5b8201601f8101841361375c57600080fd5b611d258482516020840161361c565b60006020828403121561377d57600080fd5b81516001600160401b0381111561379357600080fd5b611d258482850161364c565b62ffffff828116828216039080821115610fa357610fa36136d8565b808201808211156106f2576106f26136d8565b6060815260006137e16060830186612f7f565b82810360208401526137f38186612f7f565b905082810360408401526138078185612f7f565b9695505050505050565b818103818111156106f2576106f26136d8565b81810361382f575050565b6138398254613471565b6001600160401b038111156138505761385061300b565b61385e816135468454613471565b6000601f82116001811461388c576000831561387a5750848201545b613884848261350a565b8555506138f1565b600085815260209020601f19841690600086815260209020845b838110156138c657828601548255600195860195909101906020016138a6565b50858310156138e45781850154600019600388901b60f8161c191681555b50505060018360011b0184555b5050505050565b60006001820161390a5761390a6136d8565b5060010190565b6a600b5981380380925939f360a81b8152607f60f91b600b820152600c81018490526000602c8201819052606084901b6001600160601b0319166038830152825161396381604c850160208701612f5b565b91909101604c01949350505050565b600060ff821660ff8103613988576139886136d8565b60010192915050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b634e487b7160e01b600052603160045260246000fdfe5d7871759f44bc77f64c9eb647afdcf4a49d2fbba70fc64411a3bdc750b05274f79e11fc86b9bf37d5dfd4359c053136f7c046da6a08f9cf7ca56d80d5aab839a26469706673582212206bea8239315a7b7d8769e84ac35190ddba4034e098a49387000f6223d3bf88a964736f6c63430008130033",
1102
1299
  "linkReferences": {
1103
1300
  "contracts/libs/v0.8.x/BytecodeStorageV1.sol": {
1104
1301
  "BytecodeStorageReader": [
1105
1302
  {
1106
1303
  "length": 20,
1107
- "start": 3638
1304
+ "start": 4584
1108
1305
  },
1109
1306
  {
1110
1307
  "length": 20,
1111
- "start": 3799
1308
+ "start": 4745
1112
1309
  },
1113
1310
  {
1114
1311
  "length": 20,
1115
- "start": 3933
1312
+ "start": 4879
1116
1313
  },
1117
1314
  {
1118
1315
  "length": 20,
1119
- "start": 5622
1316
+ "start": 6286
1317
+ },
1318
+ {
1319
+ "length": 20,
1320
+ "start": 7380
1120
1321
  }
1121
1322
  ]
1122
1323
  }
@@ -1126,19 +1327,23 @@
1126
1327
  "BytecodeStorageReader": [
1127
1328
  {
1128
1329
  "length": 20,
1129
- "start": 3606
1330
+ "start": 4552
1331
+ },
1332
+ {
1333
+ "length": 20,
1334
+ "start": 4713
1130
1335
  },
1131
1336
  {
1132
1337
  "length": 20,
1133
- "start": 3767
1338
+ "start": 4847
1134
1339
  },
1135
1340
  {
1136
1341
  "length": 20,
1137
- "start": 3901
1342
+ "start": 6254
1138
1343
  },
1139
1344
  {
1140
1345
  "length": 20,
1141
- "start": 5590
1346
+ "start": 7348
1142
1347
  }
1143
1348
  ]
1144
1349
  }