@artblocks/contracts 0.0.1

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 (196) hide show
  1. package/.env.example +10 -0
  2. package/LICENSE +165 -0
  3. package/README.md +286 -0
  4. package/artifacts/contracts/AdminACLV0.sol/AdminACLV0.json +164 -0
  5. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +248 -0
  6. package/artifacts/contracts/BasicRandomizer.sol/BasicRandomizer.json +24 -0
  7. package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +102 -0
  8. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +1020 -0
  9. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +1928 -0
  10. package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +1942 -0
  11. package/artifacts/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol/GenArt721CoreV2_ENGINE_FLEX.json +1708 -0
  12. package/artifacts/contracts/engine/GenArt721CoreV2_PBAB.sol/GenArt721CoreV2_PBAB.json +1410 -0
  13. package/artifacts/contracts/engine/GenArt721CoreV2_PRTNR.sol/GenArt721CoreV2_PRTNR.json +1436 -0
  14. package/artifacts/contracts/engine/GenArt721MinterBurner_PBAB.sol/GenArt721MinterBurner_PBAB.json +437 -0
  15. package/artifacts/contracts/engine/GenArt721MinterDAExp_PBAB.sol/GenArt721MinterDAExp_PBAB.json +508 -0
  16. package/artifacts/contracts/engine/GenArt721Minter_PBAB.sol/GenArt721Minter_PBAB.json +381 -0
  17. package/artifacts/contracts/engine-registry/EngineRegistryV0.sol/EngineRegistryV0.json +109 -0
  18. package/artifacts/contracts/engine-registry/future/EngineRegistryV1.sol/EngineRegistryV1.json +109 -0
  19. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +1902 -0
  20. package/artifacts/contracts/interfaces/0.5.x/IBonusContract.sol/IBonusContract.json +47 -0
  21. package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +413 -0
  22. package/artifacts/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +392 -0
  23. package/artifacts/contracts/interfaces/0.5.x/IRandomizer.sol/IRandomizer.json +26 -0
  24. package/artifacts/contracts/interfaces/0.8.x/IAdminACLV0.sol/IAdminACLV0.json +122 -0
  25. package/artifacts/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol/IArtblocksRoyaltyOverride.json +59 -0
  26. package/artifacts/contracts/interfaces/0.8.x/IBonusContract.sol/IBonusContract.json +43 -0
  27. package/artifacts/contracts/interfaces/0.8.x/IDelegationRegistry.sol/IDelegationRegistry.json +510 -0
  28. package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol/IDependencyRegistryCompatibleV0.json +53 -0
  29. package/artifacts/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +350 -0
  30. package/artifacts/contracts/interfaces/0.8.x/IEngineRegistryV0.sol/IEngineRegistryV0.json +85 -0
  31. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol/IFilteredMinterDAExpSettlementV0.json +730 -0
  32. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol/IFilteredMinterDAExpV0.json +311 -0
  33. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol/IFilteredMinterDAExpV1.json +617 -0
  34. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol/IFilteredMinterDALinV0.json +292 -0
  35. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol/IFilteredMinterDALinV1.json +598 -0
  36. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol/IFilteredMinterHolderV0.json +355 -0
  37. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol/IFilteredMinterHolderV1.json +368 -0
  38. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol/IFilteredMinterHolderV2.json +674 -0
  39. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol/IFilteredMinterMerkleV0.json +551 -0
  40. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol/IFilteredMinterMerkleV1.json +564 -0
  41. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol/IFilteredMinterMerkleV2.json +601 -0
  42. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV0.sol/IFilteredMinterV0.json +216 -0
  43. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV1.sol/IFilteredMinterV1.json +485 -0
  44. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterV2.sol/IFilteredMinterV2.json +522 -0
  45. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol/IGenArt721CoreContractV1.json +299 -0
  46. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol/IGenArt721CoreContractV3.json +609 -0
  47. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol/IGenArt721CoreContractV3_Base.json +448 -0
  48. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol/IGenArt721CoreContractV3_Engine.json +649 -0
  49. package/artifacts/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol/IGenArt721CoreV2_PBAB.json +362 -0
  50. package/artifacts/contracts/interfaces/0.8.x/IManifold.sol/IManifold.json +35 -0
  51. package/artifacts/contracts/interfaces/0.8.x/IMinterFilterV0.sol/IMinterFilterV0.json +192 -0
  52. package/artifacts/contracts/interfaces/0.8.x/IRandomizer.sol/IRandomizer.json +24 -0
  53. package/artifacts/contracts/interfaces/0.8.x/IRandomizerV2.sol/IRandomizerV2.json +37 -0
  54. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Address.json +10 -0
  55. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Counters.json +10 -0
  56. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/CustomERC721Metadata.json +425 -0
  57. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC165.json +38 -0
  58. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721.json +322 -0
  59. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/ERC721Enumerable.json +384 -0
  60. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/GenArt721CoreV1.json +1773 -0
  61. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC165.json +32 -0
  62. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721.json +316 -0
  63. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Enumerable.json +378 -0
  64. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/IERC721Receiver.json +47 -0
  65. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/SafeMath.json +10 -0
  66. package/artifacts/contracts/legacy/GenArt721CoreV1.sol/Strings.json +10 -0
  67. package/artifacts/contracts/legacy/GenArt721LegacyMinter.sol/GenArt721LegacyMinter.json +338 -0
  68. package/artifacts/contracts/libs/0.5.x/CustomERC721Metadata.sol/CustomERC721Metadata.json +425 -0
  69. package/artifacts/contracts/libs/0.5.x/IERC20.sol/IERC20.json +206 -0
  70. package/artifacts/contracts/libs/0.5.x/SafeMath.sol/SafeMath.json +10 -0
  71. package/artifacts/contracts/libs/0.5.x/Strings.sol/Strings.json +10 -0
  72. package/artifacts/contracts/libs/0.8.x/BytecodeStorage.sol/BytecodeStorage.json +10 -0
  73. package/artifacts/contracts/libs/0.8.x/Bytes32Strings.sol/Bytes32Strings.json +10 -0
  74. package/artifacts/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol/ERC721_PackedHashSeed.json +357 -0
  75. package/artifacts/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol/DelegationRegistry.json +529 -0
  76. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol/GnosisSafeMock.json +1037 -0
  77. package/artifacts/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol/GnosisSafeProxyFactoryMock.json +172 -0
  78. package/artifacts/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol/MultiSendMock.json +24 -0
  79. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +342 -0
  80. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +322 -0
  81. package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +550 -0
  82. package/artifacts/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +856 -0
  83. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +1053 -0
  84. package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +526 -0
  85. package/artifacts/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +832 -0
  86. package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +794 -0
  87. package/artifacts/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +1100 -0
  88. package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +1002 -0
  89. package/artifacts/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +1039 -0
  90. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +365 -0
  91. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +671 -0
  92. package/artifacts/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol/MinterSetPriceV1.json +288 -0
  93. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +436 -0
  94. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +742 -0
  95. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +461 -0
  96. package/artifacts/contracts/mock/BytecodeTextCR_DMock.sol/BytecodeTextCR_DMock.json +194 -0
  97. package/artifacts/contracts/mock/DeadReceiverMock.sol/DeadReceiverMock.json +15 -0
  98. package/artifacts/contracts/mock/ERC20Mock.sol/ERC20Mock.json +292 -0
  99. package/artifacts/contracts/mock/MockAdminACLV0.sol/MockAdminACLV0Events.json +165 -0
  100. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +128 -0
  101. package/artifacts/contracts/mock/ReentrancyHolderMock.sol/ReentrancyHolderMock.json +118 -0
  102. package/artifacts/contracts/mock/ReentrancyMerkleMock.sol/ReentrancyMerkleMock.json +87 -0
  103. package/artifacts/contracts/mock/ReentrancyMock.sol/ReentrancyMock.json +82 -0
  104. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride.sol/GenArt721RoyaltyOverride.json +208 -0
  105. package/artifacts/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol/GenArt721RoyaltyOverride_PBAB.json +301 -0
  106. package/contracts/AdminACLV0.sol +103 -0
  107. package/contracts/AdminACLV1.sol +193 -0
  108. package/contracts/BasicRandomizer.sol +23 -0
  109. package/contracts/BasicRandomizerV2.sol +36 -0
  110. package/contracts/DependencyRegistryV0.sol +893 -0
  111. package/contracts/GenArt721CoreV3.sol +2001 -0
  112. package/contracts/GenArt721CoreV3_Engine.sol +2061 -0
  113. package/contracts/engine/GenArt721CoreV2_ENGINE_FLEX.sol +887 -0
  114. package/contracts/engine/GenArt721CoreV2_PBAB.sol +695 -0
  115. package/contracts/engine/GenArt721CoreV2_PRTNR.sol +749 -0
  116. package/contracts/engine/GenArt721MinterBurner_PBAB.sol +467 -0
  117. package/contracts/engine/GenArt721MinterDAExp_PBAB.sol +614 -0
  118. package/contracts/engine/GenArt721Minter_PBAB.sol +420 -0
  119. package/contracts/engine-registry/EngineRegistryV0.sol +72 -0
  120. package/contracts/engine-registry/future/EngineRegistryV1.sol +86 -0
  121. package/contracts/explorations/GenArt721CoreV3_Explorations.sol +1989 -0
  122. package/contracts/interfaces/0.5.x/IBonusContract.sol +10 -0
  123. package/contracts/interfaces/0.5.x/IGenArt721CoreContractV1.sol +91 -0
  124. package/contracts/interfaces/0.5.x/IGenArt721CoreV2_PBAB.sol +92 -0
  125. package/contracts/interfaces/0.5.x/IRandomizer.sol +8 -0
  126. package/contracts/interfaces/0.8.x/IAdminACLV0.sol +51 -0
  127. package/contracts/interfaces/0.8.x/IArtblocksRoyaltyOverride.sol +34 -0
  128. package/contracts/interfaces/0.8.x/IBonusContract.sol +10 -0
  129. package/contracts/interfaces/0.8.x/IDelegationRegistry.sol +221 -0
  130. package/contracts/interfaces/0.8.x/IDependencyRegistryCompatibleV0.sol +31 -0
  131. package/contracts/interfaces/0.8.x/IDependencyRegistryV0.sol +95 -0
  132. package/contracts/interfaces/0.8.x/IEngineRegistryV0.sol +38 -0
  133. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV0.sol +70 -0
  134. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV0.sol +35 -0
  135. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpV1.sol +16 -0
  136. package/contracts/interfaces/0.8.x/IFilteredMinterDALinV0.sol +32 -0
  137. package/contracts/interfaces/0.8.x/IFilteredMinterDALinV1.sol +16 -0
  138. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV0.sol +68 -0
  139. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV1.sol +19 -0
  140. package/contracts/interfaces/0.8.x/IFilteredMinterHolderV2.sol +19 -0
  141. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV0.sol +37 -0
  142. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV1.sol +19 -0
  143. package/contracts/interfaces/0.8.x/IFilteredMinterMerkleV2.sol +19 -0
  144. package/contracts/interfaces/0.8.x/IFilteredMinterV0.sol +74 -0
  145. package/contracts/interfaces/0.8.x/IFilteredMinterV1.sol +127 -0
  146. package/contracts/interfaces/0.8.x/IFilteredMinterV2.sol +30 -0
  147. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV1.sol +73 -0
  148. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3.sol +79 -0
  149. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Base.sol +127 -0
  150. package/contracts/interfaces/0.8.x/IGenArt721CoreContractV3_Engine.sol +80 -0
  151. package/contracts/interfaces/0.8.x/IGenArt721CoreV2_PBAB.sol +91 -0
  152. package/contracts/interfaces/0.8.x/IManifold.sol +24 -0
  153. package/contracts/interfaces/0.8.x/IMinterFilterV0.sol +47 -0
  154. package/contracts/interfaces/0.8.x/IRandomizer.sol +8 -0
  155. package/contracts/interfaces/0.8.x/IRandomizerV2.sol +15 -0
  156. package/contracts/legacy/GenArt721CoreV1.sol +1593 -0
  157. package/contracts/legacy/GenArt721LegacyMinter.sol +275 -0
  158. package/contracts/libs/0.5.x/CustomERC721Metadata.sol +52 -0
  159. package/contracts/libs/0.5.x/IERC20.sol +96 -0
  160. package/contracts/libs/0.5.x/SafeMath.sol +98 -0
  161. package/contracts/libs/0.5.x/Strings.sol +92 -0
  162. package/contracts/libs/0.8.x/BytecodeStorage.sol +314 -0
  163. package/contracts/libs/0.8.x/Bytes32Strings.sol +66 -0
  164. package/contracts/libs/0.8.x/ERC721_PackedHashSeed.sol +514 -0
  165. package/contracts/libs/integration-refs/delegation-registry/DelegationRegistry.sol +663 -0
  166. package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol +6 -0
  167. package/contracts/libs/integration-refs/gnosis-safe/GnosisSafeProxyFactoryMock.sol +6 -0
  168. package/contracts/libs/integration-refs/gnosis-safe/MultiSendMock.sol +6 -0
  169. package/contracts/minter-suite/MinterFilter/MinterFilterV0.sol +291 -0
  170. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +320 -0
  171. package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol +571 -0
  172. package/contracts/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol +622 -0
  173. package/contracts/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol +1066 -0
  174. package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV2.sol +527 -0
  175. package/contracts/minter-suite/Minters/MinterDALin/MinterDALinV3.sol +576 -0
  176. package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV2.sol +749 -0
  177. package/contracts/minter-suite/Minters/MinterHolder/MinterHolderV3.sol +798 -0
  178. package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol +682 -0
  179. package/contracts/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol +733 -0
  180. package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol +350 -0
  181. package/contracts/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol +401 -0
  182. package/contracts/minter-suite/Minters/MinterSetPrice/deprecated/MinterSetPriceV1.sol +274 -0
  183. package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol +491 -0
  184. package/contracts/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol +542 -0
  185. package/contracts/minter-suite/Minters/MinterSetPriceERC20/deprecated/MinterSetPriceERC20V0.sol +470 -0
  186. package/contracts/mock/BytecodeTextCR_DMock.sol +184 -0
  187. package/contracts/mock/DeadReceiverMock.sol +13 -0
  188. package/contracts/mock/ERC20Mock.sol +11 -0
  189. package/contracts/mock/MockAdminACLV0.sol +65 -0
  190. package/contracts/mock/RandomizerV2_NoAssignMock.sol +43 -0
  191. package/contracts/mock/ReentrancyHolderMock.sol +50 -0
  192. package/contracts/mock/ReentrancyMerkleMock.sol +64 -0
  193. package/contracts/mock/ReentrancyMock.sol +44 -0
  194. package/contracts/royalty-registry/GenArt721RoyaltyOverride.sol +168 -0
  195. package/contracts/royalty-registry/GenArt721RoyaltyOverride_PBAB.sol +221 -0
  196. package/package.json +83 -0
@@ -0,0 +1,1037 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "GnosisSafeMock",
4
+ "sourceName": "contracts/libs/integration-refs/gnosis-safe/GnosisSafeMock.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "address",
12
+ "name": "owner",
13
+ "type": "address"
14
+ }
15
+ ],
16
+ "name": "AddedOwner",
17
+ "type": "event"
18
+ },
19
+ {
20
+ "anonymous": false,
21
+ "inputs": [
22
+ {
23
+ "indexed": true,
24
+ "internalType": "bytes32",
25
+ "name": "approvedHash",
26
+ "type": "bytes32"
27
+ },
28
+ {
29
+ "indexed": true,
30
+ "internalType": "address",
31
+ "name": "owner",
32
+ "type": "address"
33
+ }
34
+ ],
35
+ "name": "ApproveHash",
36
+ "type": "event"
37
+ },
38
+ {
39
+ "anonymous": false,
40
+ "inputs": [
41
+ {
42
+ "indexed": false,
43
+ "internalType": "address",
44
+ "name": "handler",
45
+ "type": "address"
46
+ }
47
+ ],
48
+ "name": "ChangedFallbackHandler",
49
+ "type": "event"
50
+ },
51
+ {
52
+ "anonymous": false,
53
+ "inputs": [
54
+ {
55
+ "indexed": false,
56
+ "internalType": "address",
57
+ "name": "guard",
58
+ "type": "address"
59
+ }
60
+ ],
61
+ "name": "ChangedGuard",
62
+ "type": "event"
63
+ },
64
+ {
65
+ "anonymous": false,
66
+ "inputs": [
67
+ {
68
+ "indexed": false,
69
+ "internalType": "uint256",
70
+ "name": "threshold",
71
+ "type": "uint256"
72
+ }
73
+ ],
74
+ "name": "ChangedThreshold",
75
+ "type": "event"
76
+ },
77
+ {
78
+ "anonymous": false,
79
+ "inputs": [
80
+ {
81
+ "indexed": false,
82
+ "internalType": "address",
83
+ "name": "module",
84
+ "type": "address"
85
+ }
86
+ ],
87
+ "name": "DisabledModule",
88
+ "type": "event"
89
+ },
90
+ {
91
+ "anonymous": false,
92
+ "inputs": [
93
+ {
94
+ "indexed": false,
95
+ "internalType": "address",
96
+ "name": "module",
97
+ "type": "address"
98
+ }
99
+ ],
100
+ "name": "EnabledModule",
101
+ "type": "event"
102
+ },
103
+ {
104
+ "anonymous": false,
105
+ "inputs": [
106
+ {
107
+ "indexed": false,
108
+ "internalType": "bytes32",
109
+ "name": "txHash",
110
+ "type": "bytes32"
111
+ },
112
+ {
113
+ "indexed": false,
114
+ "internalType": "uint256",
115
+ "name": "payment",
116
+ "type": "uint256"
117
+ }
118
+ ],
119
+ "name": "ExecutionFailure",
120
+ "type": "event"
121
+ },
122
+ {
123
+ "anonymous": false,
124
+ "inputs": [
125
+ {
126
+ "indexed": true,
127
+ "internalType": "address",
128
+ "name": "module",
129
+ "type": "address"
130
+ }
131
+ ],
132
+ "name": "ExecutionFromModuleFailure",
133
+ "type": "event"
134
+ },
135
+ {
136
+ "anonymous": false,
137
+ "inputs": [
138
+ {
139
+ "indexed": true,
140
+ "internalType": "address",
141
+ "name": "module",
142
+ "type": "address"
143
+ }
144
+ ],
145
+ "name": "ExecutionFromModuleSuccess",
146
+ "type": "event"
147
+ },
148
+ {
149
+ "anonymous": false,
150
+ "inputs": [
151
+ {
152
+ "indexed": false,
153
+ "internalType": "bytes32",
154
+ "name": "txHash",
155
+ "type": "bytes32"
156
+ },
157
+ {
158
+ "indexed": false,
159
+ "internalType": "uint256",
160
+ "name": "payment",
161
+ "type": "uint256"
162
+ }
163
+ ],
164
+ "name": "ExecutionSuccess",
165
+ "type": "event"
166
+ },
167
+ {
168
+ "anonymous": false,
169
+ "inputs": [
170
+ {
171
+ "indexed": false,
172
+ "internalType": "address",
173
+ "name": "owner",
174
+ "type": "address"
175
+ }
176
+ ],
177
+ "name": "RemovedOwner",
178
+ "type": "event"
179
+ },
180
+ {
181
+ "anonymous": false,
182
+ "inputs": [
183
+ {
184
+ "indexed": true,
185
+ "internalType": "address",
186
+ "name": "sender",
187
+ "type": "address"
188
+ },
189
+ {
190
+ "indexed": false,
191
+ "internalType": "uint256",
192
+ "name": "value",
193
+ "type": "uint256"
194
+ }
195
+ ],
196
+ "name": "SafeReceived",
197
+ "type": "event"
198
+ },
199
+ {
200
+ "anonymous": false,
201
+ "inputs": [
202
+ {
203
+ "indexed": true,
204
+ "internalType": "address",
205
+ "name": "initiator",
206
+ "type": "address"
207
+ },
208
+ {
209
+ "indexed": false,
210
+ "internalType": "address[]",
211
+ "name": "owners",
212
+ "type": "address[]"
213
+ },
214
+ {
215
+ "indexed": false,
216
+ "internalType": "uint256",
217
+ "name": "threshold",
218
+ "type": "uint256"
219
+ },
220
+ {
221
+ "indexed": false,
222
+ "internalType": "address",
223
+ "name": "initializer",
224
+ "type": "address"
225
+ },
226
+ {
227
+ "indexed": false,
228
+ "internalType": "address",
229
+ "name": "fallbackHandler",
230
+ "type": "address"
231
+ }
232
+ ],
233
+ "name": "SafeSetup",
234
+ "type": "event"
235
+ },
236
+ {
237
+ "anonymous": false,
238
+ "inputs": [
239
+ {
240
+ "indexed": true,
241
+ "internalType": "bytes32",
242
+ "name": "msgHash",
243
+ "type": "bytes32"
244
+ }
245
+ ],
246
+ "name": "SignMsg",
247
+ "type": "event"
248
+ },
249
+ {
250
+ "stateMutability": "nonpayable",
251
+ "type": "fallback"
252
+ },
253
+ {
254
+ "inputs": [],
255
+ "name": "VERSION",
256
+ "outputs": [
257
+ {
258
+ "internalType": "string",
259
+ "name": "",
260
+ "type": "string"
261
+ }
262
+ ],
263
+ "stateMutability": "view",
264
+ "type": "function"
265
+ },
266
+ {
267
+ "inputs": [
268
+ {
269
+ "internalType": "address",
270
+ "name": "owner",
271
+ "type": "address"
272
+ },
273
+ {
274
+ "internalType": "uint256",
275
+ "name": "_threshold",
276
+ "type": "uint256"
277
+ }
278
+ ],
279
+ "name": "addOwnerWithThreshold",
280
+ "outputs": [],
281
+ "stateMutability": "nonpayable",
282
+ "type": "function"
283
+ },
284
+ {
285
+ "inputs": [
286
+ {
287
+ "internalType": "bytes32",
288
+ "name": "hashToApprove",
289
+ "type": "bytes32"
290
+ }
291
+ ],
292
+ "name": "approveHash",
293
+ "outputs": [],
294
+ "stateMutability": "nonpayable",
295
+ "type": "function"
296
+ },
297
+ {
298
+ "inputs": [
299
+ {
300
+ "internalType": "address",
301
+ "name": "",
302
+ "type": "address"
303
+ },
304
+ {
305
+ "internalType": "bytes32",
306
+ "name": "",
307
+ "type": "bytes32"
308
+ }
309
+ ],
310
+ "name": "approvedHashes",
311
+ "outputs": [
312
+ {
313
+ "internalType": "uint256",
314
+ "name": "",
315
+ "type": "uint256"
316
+ }
317
+ ],
318
+ "stateMutability": "view",
319
+ "type": "function"
320
+ },
321
+ {
322
+ "inputs": [
323
+ {
324
+ "internalType": "uint256",
325
+ "name": "_threshold",
326
+ "type": "uint256"
327
+ }
328
+ ],
329
+ "name": "changeThreshold",
330
+ "outputs": [],
331
+ "stateMutability": "nonpayable",
332
+ "type": "function"
333
+ },
334
+ {
335
+ "inputs": [
336
+ {
337
+ "internalType": "bytes32",
338
+ "name": "dataHash",
339
+ "type": "bytes32"
340
+ },
341
+ {
342
+ "internalType": "bytes",
343
+ "name": "data",
344
+ "type": "bytes"
345
+ },
346
+ {
347
+ "internalType": "bytes",
348
+ "name": "signatures",
349
+ "type": "bytes"
350
+ },
351
+ {
352
+ "internalType": "uint256",
353
+ "name": "requiredSignatures",
354
+ "type": "uint256"
355
+ }
356
+ ],
357
+ "name": "checkNSignatures",
358
+ "outputs": [],
359
+ "stateMutability": "view",
360
+ "type": "function"
361
+ },
362
+ {
363
+ "inputs": [
364
+ {
365
+ "internalType": "bytes32",
366
+ "name": "dataHash",
367
+ "type": "bytes32"
368
+ },
369
+ {
370
+ "internalType": "bytes",
371
+ "name": "data",
372
+ "type": "bytes"
373
+ },
374
+ {
375
+ "internalType": "bytes",
376
+ "name": "signatures",
377
+ "type": "bytes"
378
+ }
379
+ ],
380
+ "name": "checkSignatures",
381
+ "outputs": [],
382
+ "stateMutability": "view",
383
+ "type": "function"
384
+ },
385
+ {
386
+ "inputs": [
387
+ {
388
+ "internalType": "address",
389
+ "name": "prevModule",
390
+ "type": "address"
391
+ },
392
+ {
393
+ "internalType": "address",
394
+ "name": "module",
395
+ "type": "address"
396
+ }
397
+ ],
398
+ "name": "disableModule",
399
+ "outputs": [],
400
+ "stateMutability": "nonpayable",
401
+ "type": "function"
402
+ },
403
+ {
404
+ "inputs": [],
405
+ "name": "domainSeparator",
406
+ "outputs": [
407
+ {
408
+ "internalType": "bytes32",
409
+ "name": "",
410
+ "type": "bytes32"
411
+ }
412
+ ],
413
+ "stateMutability": "view",
414
+ "type": "function"
415
+ },
416
+ {
417
+ "inputs": [
418
+ {
419
+ "internalType": "address",
420
+ "name": "module",
421
+ "type": "address"
422
+ }
423
+ ],
424
+ "name": "enableModule",
425
+ "outputs": [],
426
+ "stateMutability": "nonpayable",
427
+ "type": "function"
428
+ },
429
+ {
430
+ "inputs": [
431
+ {
432
+ "internalType": "address",
433
+ "name": "to",
434
+ "type": "address"
435
+ },
436
+ {
437
+ "internalType": "uint256",
438
+ "name": "value",
439
+ "type": "uint256"
440
+ },
441
+ {
442
+ "internalType": "bytes",
443
+ "name": "data",
444
+ "type": "bytes"
445
+ },
446
+ {
447
+ "internalType": "enum Enum.Operation",
448
+ "name": "operation",
449
+ "type": "uint8"
450
+ },
451
+ {
452
+ "internalType": "uint256",
453
+ "name": "safeTxGas",
454
+ "type": "uint256"
455
+ },
456
+ {
457
+ "internalType": "uint256",
458
+ "name": "baseGas",
459
+ "type": "uint256"
460
+ },
461
+ {
462
+ "internalType": "uint256",
463
+ "name": "gasPrice",
464
+ "type": "uint256"
465
+ },
466
+ {
467
+ "internalType": "address",
468
+ "name": "gasToken",
469
+ "type": "address"
470
+ },
471
+ {
472
+ "internalType": "address",
473
+ "name": "refundReceiver",
474
+ "type": "address"
475
+ },
476
+ {
477
+ "internalType": "uint256",
478
+ "name": "_nonce",
479
+ "type": "uint256"
480
+ }
481
+ ],
482
+ "name": "encodeTransactionData",
483
+ "outputs": [
484
+ {
485
+ "internalType": "bytes",
486
+ "name": "",
487
+ "type": "bytes"
488
+ }
489
+ ],
490
+ "stateMutability": "view",
491
+ "type": "function"
492
+ },
493
+ {
494
+ "inputs": [
495
+ {
496
+ "internalType": "address",
497
+ "name": "to",
498
+ "type": "address"
499
+ },
500
+ {
501
+ "internalType": "uint256",
502
+ "name": "value",
503
+ "type": "uint256"
504
+ },
505
+ {
506
+ "internalType": "bytes",
507
+ "name": "data",
508
+ "type": "bytes"
509
+ },
510
+ {
511
+ "internalType": "enum Enum.Operation",
512
+ "name": "operation",
513
+ "type": "uint8"
514
+ },
515
+ {
516
+ "internalType": "uint256",
517
+ "name": "safeTxGas",
518
+ "type": "uint256"
519
+ },
520
+ {
521
+ "internalType": "uint256",
522
+ "name": "baseGas",
523
+ "type": "uint256"
524
+ },
525
+ {
526
+ "internalType": "uint256",
527
+ "name": "gasPrice",
528
+ "type": "uint256"
529
+ },
530
+ {
531
+ "internalType": "address",
532
+ "name": "gasToken",
533
+ "type": "address"
534
+ },
535
+ {
536
+ "internalType": "address payable",
537
+ "name": "refundReceiver",
538
+ "type": "address"
539
+ },
540
+ {
541
+ "internalType": "bytes",
542
+ "name": "signatures",
543
+ "type": "bytes"
544
+ }
545
+ ],
546
+ "name": "execTransaction",
547
+ "outputs": [
548
+ {
549
+ "internalType": "bool",
550
+ "name": "success",
551
+ "type": "bool"
552
+ }
553
+ ],
554
+ "stateMutability": "payable",
555
+ "type": "function"
556
+ },
557
+ {
558
+ "inputs": [
559
+ {
560
+ "internalType": "address",
561
+ "name": "to",
562
+ "type": "address"
563
+ },
564
+ {
565
+ "internalType": "uint256",
566
+ "name": "value",
567
+ "type": "uint256"
568
+ },
569
+ {
570
+ "internalType": "bytes",
571
+ "name": "data",
572
+ "type": "bytes"
573
+ },
574
+ {
575
+ "internalType": "enum Enum.Operation",
576
+ "name": "operation",
577
+ "type": "uint8"
578
+ }
579
+ ],
580
+ "name": "execTransactionFromModule",
581
+ "outputs": [
582
+ {
583
+ "internalType": "bool",
584
+ "name": "success",
585
+ "type": "bool"
586
+ }
587
+ ],
588
+ "stateMutability": "nonpayable",
589
+ "type": "function"
590
+ },
591
+ {
592
+ "inputs": [
593
+ {
594
+ "internalType": "address",
595
+ "name": "to",
596
+ "type": "address"
597
+ },
598
+ {
599
+ "internalType": "uint256",
600
+ "name": "value",
601
+ "type": "uint256"
602
+ },
603
+ {
604
+ "internalType": "bytes",
605
+ "name": "data",
606
+ "type": "bytes"
607
+ },
608
+ {
609
+ "internalType": "enum Enum.Operation",
610
+ "name": "operation",
611
+ "type": "uint8"
612
+ }
613
+ ],
614
+ "name": "execTransactionFromModuleReturnData",
615
+ "outputs": [
616
+ {
617
+ "internalType": "bool",
618
+ "name": "success",
619
+ "type": "bool"
620
+ },
621
+ {
622
+ "internalType": "bytes",
623
+ "name": "returnData",
624
+ "type": "bytes"
625
+ }
626
+ ],
627
+ "stateMutability": "nonpayable",
628
+ "type": "function"
629
+ },
630
+ {
631
+ "inputs": [],
632
+ "name": "getChainId",
633
+ "outputs": [
634
+ {
635
+ "internalType": "uint256",
636
+ "name": "",
637
+ "type": "uint256"
638
+ }
639
+ ],
640
+ "stateMutability": "view",
641
+ "type": "function"
642
+ },
643
+ {
644
+ "inputs": [
645
+ {
646
+ "internalType": "address",
647
+ "name": "start",
648
+ "type": "address"
649
+ },
650
+ {
651
+ "internalType": "uint256",
652
+ "name": "pageSize",
653
+ "type": "uint256"
654
+ }
655
+ ],
656
+ "name": "getModulesPaginated",
657
+ "outputs": [
658
+ {
659
+ "internalType": "address[]",
660
+ "name": "array",
661
+ "type": "address[]"
662
+ },
663
+ {
664
+ "internalType": "address",
665
+ "name": "next",
666
+ "type": "address"
667
+ }
668
+ ],
669
+ "stateMutability": "view",
670
+ "type": "function"
671
+ },
672
+ {
673
+ "inputs": [],
674
+ "name": "getOwners",
675
+ "outputs": [
676
+ {
677
+ "internalType": "address[]",
678
+ "name": "",
679
+ "type": "address[]"
680
+ }
681
+ ],
682
+ "stateMutability": "view",
683
+ "type": "function"
684
+ },
685
+ {
686
+ "inputs": [
687
+ {
688
+ "internalType": "uint256",
689
+ "name": "offset",
690
+ "type": "uint256"
691
+ },
692
+ {
693
+ "internalType": "uint256",
694
+ "name": "length",
695
+ "type": "uint256"
696
+ }
697
+ ],
698
+ "name": "getStorageAt",
699
+ "outputs": [
700
+ {
701
+ "internalType": "bytes",
702
+ "name": "",
703
+ "type": "bytes"
704
+ }
705
+ ],
706
+ "stateMutability": "view",
707
+ "type": "function"
708
+ },
709
+ {
710
+ "inputs": [],
711
+ "name": "getThreshold",
712
+ "outputs": [
713
+ {
714
+ "internalType": "uint256",
715
+ "name": "",
716
+ "type": "uint256"
717
+ }
718
+ ],
719
+ "stateMutability": "view",
720
+ "type": "function"
721
+ },
722
+ {
723
+ "inputs": [
724
+ {
725
+ "internalType": "address",
726
+ "name": "to",
727
+ "type": "address"
728
+ },
729
+ {
730
+ "internalType": "uint256",
731
+ "name": "value",
732
+ "type": "uint256"
733
+ },
734
+ {
735
+ "internalType": "bytes",
736
+ "name": "data",
737
+ "type": "bytes"
738
+ },
739
+ {
740
+ "internalType": "enum Enum.Operation",
741
+ "name": "operation",
742
+ "type": "uint8"
743
+ },
744
+ {
745
+ "internalType": "uint256",
746
+ "name": "safeTxGas",
747
+ "type": "uint256"
748
+ },
749
+ {
750
+ "internalType": "uint256",
751
+ "name": "baseGas",
752
+ "type": "uint256"
753
+ },
754
+ {
755
+ "internalType": "uint256",
756
+ "name": "gasPrice",
757
+ "type": "uint256"
758
+ },
759
+ {
760
+ "internalType": "address",
761
+ "name": "gasToken",
762
+ "type": "address"
763
+ },
764
+ {
765
+ "internalType": "address",
766
+ "name": "refundReceiver",
767
+ "type": "address"
768
+ },
769
+ {
770
+ "internalType": "uint256",
771
+ "name": "_nonce",
772
+ "type": "uint256"
773
+ }
774
+ ],
775
+ "name": "getTransactionHash",
776
+ "outputs": [
777
+ {
778
+ "internalType": "bytes32",
779
+ "name": "",
780
+ "type": "bytes32"
781
+ }
782
+ ],
783
+ "stateMutability": "view",
784
+ "type": "function"
785
+ },
786
+ {
787
+ "inputs": [
788
+ {
789
+ "internalType": "address",
790
+ "name": "module",
791
+ "type": "address"
792
+ }
793
+ ],
794
+ "name": "isModuleEnabled",
795
+ "outputs": [
796
+ {
797
+ "internalType": "bool",
798
+ "name": "",
799
+ "type": "bool"
800
+ }
801
+ ],
802
+ "stateMutability": "view",
803
+ "type": "function"
804
+ },
805
+ {
806
+ "inputs": [
807
+ {
808
+ "internalType": "address",
809
+ "name": "owner",
810
+ "type": "address"
811
+ }
812
+ ],
813
+ "name": "isOwner",
814
+ "outputs": [
815
+ {
816
+ "internalType": "bool",
817
+ "name": "",
818
+ "type": "bool"
819
+ }
820
+ ],
821
+ "stateMutability": "view",
822
+ "type": "function"
823
+ },
824
+ {
825
+ "inputs": [],
826
+ "name": "nonce",
827
+ "outputs": [
828
+ {
829
+ "internalType": "uint256",
830
+ "name": "",
831
+ "type": "uint256"
832
+ }
833
+ ],
834
+ "stateMutability": "view",
835
+ "type": "function"
836
+ },
837
+ {
838
+ "inputs": [
839
+ {
840
+ "internalType": "address",
841
+ "name": "prevOwner",
842
+ "type": "address"
843
+ },
844
+ {
845
+ "internalType": "address",
846
+ "name": "owner",
847
+ "type": "address"
848
+ },
849
+ {
850
+ "internalType": "uint256",
851
+ "name": "_threshold",
852
+ "type": "uint256"
853
+ }
854
+ ],
855
+ "name": "removeOwner",
856
+ "outputs": [],
857
+ "stateMutability": "nonpayable",
858
+ "type": "function"
859
+ },
860
+ {
861
+ "inputs": [
862
+ {
863
+ "internalType": "address",
864
+ "name": "to",
865
+ "type": "address"
866
+ },
867
+ {
868
+ "internalType": "uint256",
869
+ "name": "value",
870
+ "type": "uint256"
871
+ },
872
+ {
873
+ "internalType": "bytes",
874
+ "name": "data",
875
+ "type": "bytes"
876
+ },
877
+ {
878
+ "internalType": "enum Enum.Operation",
879
+ "name": "operation",
880
+ "type": "uint8"
881
+ }
882
+ ],
883
+ "name": "requiredTxGas",
884
+ "outputs": [
885
+ {
886
+ "internalType": "uint256",
887
+ "name": "",
888
+ "type": "uint256"
889
+ }
890
+ ],
891
+ "stateMutability": "nonpayable",
892
+ "type": "function"
893
+ },
894
+ {
895
+ "inputs": [
896
+ {
897
+ "internalType": "address",
898
+ "name": "handler",
899
+ "type": "address"
900
+ }
901
+ ],
902
+ "name": "setFallbackHandler",
903
+ "outputs": [],
904
+ "stateMutability": "nonpayable",
905
+ "type": "function"
906
+ },
907
+ {
908
+ "inputs": [
909
+ {
910
+ "internalType": "address",
911
+ "name": "guard",
912
+ "type": "address"
913
+ }
914
+ ],
915
+ "name": "setGuard",
916
+ "outputs": [],
917
+ "stateMutability": "nonpayable",
918
+ "type": "function"
919
+ },
920
+ {
921
+ "inputs": [
922
+ {
923
+ "internalType": "address[]",
924
+ "name": "_owners",
925
+ "type": "address[]"
926
+ },
927
+ {
928
+ "internalType": "uint256",
929
+ "name": "_threshold",
930
+ "type": "uint256"
931
+ },
932
+ {
933
+ "internalType": "address",
934
+ "name": "to",
935
+ "type": "address"
936
+ },
937
+ {
938
+ "internalType": "bytes",
939
+ "name": "data",
940
+ "type": "bytes"
941
+ },
942
+ {
943
+ "internalType": "address",
944
+ "name": "fallbackHandler",
945
+ "type": "address"
946
+ },
947
+ {
948
+ "internalType": "address",
949
+ "name": "paymentToken",
950
+ "type": "address"
951
+ },
952
+ {
953
+ "internalType": "uint256",
954
+ "name": "payment",
955
+ "type": "uint256"
956
+ },
957
+ {
958
+ "internalType": "address payable",
959
+ "name": "paymentReceiver",
960
+ "type": "address"
961
+ }
962
+ ],
963
+ "name": "setup",
964
+ "outputs": [],
965
+ "stateMutability": "nonpayable",
966
+ "type": "function"
967
+ },
968
+ {
969
+ "inputs": [
970
+ {
971
+ "internalType": "bytes32",
972
+ "name": "",
973
+ "type": "bytes32"
974
+ }
975
+ ],
976
+ "name": "signedMessages",
977
+ "outputs": [
978
+ {
979
+ "internalType": "uint256",
980
+ "name": "",
981
+ "type": "uint256"
982
+ }
983
+ ],
984
+ "stateMutability": "view",
985
+ "type": "function"
986
+ },
987
+ {
988
+ "inputs": [
989
+ {
990
+ "internalType": "address",
991
+ "name": "targetContract",
992
+ "type": "address"
993
+ },
994
+ {
995
+ "internalType": "bytes",
996
+ "name": "calldataPayload",
997
+ "type": "bytes"
998
+ }
999
+ ],
1000
+ "name": "simulateAndRevert",
1001
+ "outputs": [],
1002
+ "stateMutability": "nonpayable",
1003
+ "type": "function"
1004
+ },
1005
+ {
1006
+ "inputs": [
1007
+ {
1008
+ "internalType": "address",
1009
+ "name": "prevOwner",
1010
+ "type": "address"
1011
+ },
1012
+ {
1013
+ "internalType": "address",
1014
+ "name": "oldOwner",
1015
+ "type": "address"
1016
+ },
1017
+ {
1018
+ "internalType": "address",
1019
+ "name": "newOwner",
1020
+ "type": "address"
1021
+ }
1022
+ ],
1023
+ "name": "swapOwner",
1024
+ "outputs": [],
1025
+ "stateMutability": "nonpayable",
1026
+ "type": "function"
1027
+ },
1028
+ {
1029
+ "stateMutability": "payable",
1030
+ "type": "receive"
1031
+ }
1032
+ ],
1033
+ "bytecode": "0x608060405234801561001057600080fd5b506001600455612f41806100256000396000f3fe60806040526004361061017c5760003560e01c8063affed0e0116100d2578063affed0e014610447578063b4faba091461045d578063b63e800d1461047d578063c4ca3a9c1461049d578063cc2f8452146104bd578063d4d9bdcd146104eb578063d8d11f781461050b578063e009cfde1461052b578063e19a9dd91461054b578063e318b52b1461056b578063e75235b81461058b578063e86637db146105a0578063f08a0323146105c0578063f698da25146105e0578063f8dc5dd9146105f5578063ffa1ad7414610615576101b8565b80630d582f131461021e57806312fb68e0146102405780632d9ad53d146102605780632f54bf6e146102955780633408e470146102b5578063468721a7146102d25780635229073f146102f25780635624b25b146103205780635ae6bd371461034d578063610b59251461037a578063694e80c31461039a5780636a761202146103ba5780637d832974146103cd578063934f3a1114610405578063a0e67e2b14610425576101b8565b366101b85760405134815233907f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d9060200160405180910390a2005b3480156101c457600080fd5b507f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d58054806101ef57005b36600080373360601b365260008060143601600080855af190503d6000803e80610218573d6000fd5b503d6000f35b34801561022a57600080fd5b5061023e61023936600461232e565b610646565b005b34801561024c57600080fd5b5061023e61025b3660046123fc565b6107a1565b34801561026c57600080fd5b5061028061027b366004612470565b610bef565b60405190151581526020015b60405180910390f35b3480156102a157600080fd5b506102806102b0366004612470565b610c2a565b3480156102c157600080fd5b50465b60405190815260200161028c565b3480156102de57600080fd5b506102806102ed36600461249c565b610c62565b3480156102fe57600080fd5b5061031261030d36600461249c565b610d39565b60405161028c92919061254b565b34801561032c57600080fd5b5061034061033b366004612566565b610d6f565b60405161028c9190612588565b34801561035957600080fd5b506102c461036836600461259b565b60076020526000908152604090205481565b34801561038657600080fd5b5061023e610395366004612470565b610df4565b3480156103a657600080fd5b5061023e6103b536600461259b565b610f12565b6102806103c83660046125fc565b610f92565b3480156103d957600080fd5b506102c46103e836600461232e565b600860209081526000928352604080842090915290825290205481565b34801561041157600080fd5b5061023e6104203660046126d4565b6112db565b34801561043157600080fd5b5061043a611325565b60405161028c9190612791565b34801561045357600080fd5b506102c460055481565b34801561046957600080fd5b5061023e6104783660046127a4565b611415565b34801561048957600080fd5b5061023e6104983660046127f3565b611438565b3480156104a957600080fd5b506102c46104b83660046128e7565b61153a565b3480156104c957600080fd5b506104dd6104d836600461232e565b6115d4565b60405161028c929190612957565b3480156104f757600080fd5b5061023e61050636600461259b565b6116cd565b34801561051757600080fd5b506102c4610526366004612981565b611762565b34801561053757600080fd5b5061023e610546366004612a41565b61178f565b34801561055757600080fd5b5061023e610566366004612470565b6118a8565b34801561057757600080fd5b5061023e610586366004612a7a565b611904565b34801561059757600080fd5b506004546102c4565b3480156105ac57600080fd5b506103406105bb366004612981565b611ad9565b3480156105cc57600080fd5b5061023e6105db366004612470565b611bb2565b3480156105ec57600080fd5b506102c4611bf2565b34801561060157600080fd5b5061023e610610366004612ac5565b611c49565b34801561062157600080fd5b50610340604051806040016040528060058152602001640312e332e360dc1b81525081565b61064e611d9f565b6001600160a01b0382161580159061067057506001600160a01b038216600114155b801561068557506001600160a01b0382163014155b6106aa5760405162461bcd60e51b81526004016106a190612b06565b60405180910390fd5b6001600160a01b0382811660009081526002602052604090205416156106e25760405162461bcd60e51b81526004016106a190612b25565b60026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e080546001600160a01b038481166000818152604081208054939094166001600160a01b03199384161790935560018352835490911617909155600380549161074f83612b5a565b91905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea26826040516107839190612b73565b60405180910390a1806004541461079d5761079d81610f12565b5050565b6107ac816041611dd8565b825110156107e45760405162461bcd60e51b8152602060048201526005602482015264047533032360dc1b60448201526064016106a1565b6000808060008060005b86811015610be3576041818102890160208101516040820151919092015160ff169550909350915060008490036109bf57919350839161082f876041611dd8565b8210156108665760405162461bcd60e51b8152602060048201526005602482015264475330323160d81b60448201526064016106a1565b8751610873836020611e14565b11156108a95760405162461bcd60e51b815260206004820152600560248201526423a998191960d91b60448201526064016106a1565b6020828901810151895190916108cc9083906108c6908790611e14565b90611e14565b11156109025760405162461bcd60e51b8152602060048201526005602482015264475330323360d81b60448201526064016106a1565b6040516320c13b0b60e01b8082528a8501602001916001600160a01b038916906320c13b0b90610938908f908690600401612b87565b602060405180830381865afa158015610955573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109799190612bac565b6001600160e01b031916146109b85760405162461bcd60e51b815260206004820152600560248201526411d4cc0c8d60da1b60448201526064016106a1565b5050610b49565b8360ff16600103610a41579193508391336001600160a01b0384161480610a0857506001600160a01b03851660009081526008602090815260408083208d845290915290205415155b610a3c5760405162461bcd60e51b8152602060048201526005602482015264475330323560d81b60448201526064016106a1565b610b49565b601e8460ff161115610af7576040517b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6020820152603c81018b9052600190605c0160405160208183030381529060405280519060200120600486610aa59190612bd6565b858560405160008152602001604052604051610ac49493929190612bef565b6020604051602081039080840390855afa158015610ae6573d6000803e3d6000fd5b505050602060405103519450610b49565b60018a85858560405160008152602001604052604051610b1a9493929190612bef565b6020604051602081039080840390855afa158015610b3c573d6000803e3d6000fd5b5050506020604051035194505b856001600160a01b0316856001600160a01b0316118015610b8357506001600160a01b038581166000908152600260205260409020541615155b8015610b9957506001600160a01b038516600114155b610bcd5760405162461bcd60e51b815260206004820152600560248201526423a998191b60d91b60448201526064016106a1565b8495508080610bdb90612b5a565b9150506107ee565b50505050505050505050565b600060016001600160a01b03831614801590610c2457506001600160a01b038281166000908152600160205260409020541615155b92915050565b60006001600160a01b038216600114801590610c245750506001600160a01b0390811660009081526002602052604090205416151590565b600033600114801590610c8c5750336000908152600160205260409020546001600160a01b031615155b610cc05760405162461bcd60e51b815260206004820152600560248201526411d4cc4c0d60da1b60448201526064016106a1565b610ccd858585855a611e30565b90508015610d055760405133907f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb890600090a2610d31565b60405133907facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37590600090a25b949350505050565b60006060610d4986868686610c62565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b60606000610d7e836020612c0d565b6001600160401b03811115610d9557610d9561235a565b6040519080825280601f01601f191660200182016040528015610dbf576020820181803683370190505b50905060005b83811015610dec578481015460208083028401015280610de481612b5a565b915050610dc5565b509392505050565b610dfc611d9f565b6001600160a01b03811615801590610e1e57506001600160a01b038116600114155b610e3a5760405162461bcd60e51b81526004016106a190612c24565b6001600160a01b038181166000908152600160205260409020541615610e8a5760405162461bcd60e51b815260206004820152600560248201526423a998981960d91b60448201526064016106a1565b60016020819052600080516020612eec83398151915280546001600160a01b03848116600081815260408082208054949095166001600160a01b031994851617909455949094528254169092179055517fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844090610f07908390612b73565b60405180910390a150565b610f1a611d9f565b600354811115610f3c5760405162461bcd60e51b81526004016106a190612c43565b6001811015610f5d5760405162461bcd60e51b81526004016106a190612c62565b60048190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c9390602001610f07565b6000806000610fac8e8e8e8e8e8e8e8e8e8e600554611ad9565b600580549192506000610fbe83612b5a565b9091555050805160208201209150610fd78282866112db565b5060006110027f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c85490565b90506001600160a01b0381161561108857806001600160a01b03166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b81526004016110559c9b9a99989796959493929190612cb9565b600060405180830381600087803b15801561106f57600080fd5b505af1158015611083573d6000803e3d6000fd5b505050505b6110b46110978a6109c4612d6c565b603f6110a48c6040612c0d565b6110ae9190612d7f565b90611e77565b6110c0906101f4612d6c565b5a10156110f75760405162461bcd60e51b8152602060048201526005602482015264047533031360dc1b60448201526064016106a1565b60005a90506111688f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e8c600014611155578e611e30565b6109c45a6111639190612da1565b611e30565b93506111755a8290611e8e565b9050838061118257508915155b8061118c57508715155b6111c05760405162461bcd60e51b8152602060048201526005602482015264475330313360d81b60448201526064016106a1565b600088156111d8576111d5828b8b8b8b611ea9565b90505b841561121c5760408051858152602081018390527f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e910160405180910390a1611256565b60408051858152602081018390527f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d23910160405180910390a15b50506001600160a01b038116156112ca57604051631264e26d60e31b81526004810183905283151560248201526001600160a01b03821690639327136890604401600060405180830381600087803b1580156112b157600080fd5b505af11580156112c5573d6000803e3d6000fd5b505050505b50509b9a5050505050505050505050565b600454806113135760405162461bcd60e51b8152602060048201526005602482015264475330303160d81b60448201526064016106a1565b61131f848484846107a1565b50505050565b606060006003546001600160401b038111156113435761134361235a565b60405190808252806020026020018201604052801561136c578160200160208202803683370190505b506001600090815260026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e054919250906001600160a01b03165b6001600160a01b03811660011461140d57808383815181106113cd576113cd612db4565b6001600160a01b0392831660209182029290920181019190915291811660009081526002909252604090912054168161140581612b5a565b9250506113a9565b509092915050565b600080825160208401855af480600052503d6020523d600060403e60403d016000fd5b6114768a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c9250611faf915050565b6001600160a01b0384161561148e5761148e8461217d565b6114ce8787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506121a192505050565b81156114e5576114e382600060018685611ea9565b505b336001600160a01b03167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b89604051611526959493929190612dca565b60405180910390a250505050505050505050565b6000805a9050611583878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525089925050505a611e30565b61158c57600080fd5b60005a6115999083612da1565b9050806040516020016115ae91815260200190565b60408051601f198184030181529082905262461bcd60e51b82526106a191600401612588565b60606000826001600160401b038111156115f0576115f061235a565b604051908082528060200260200182016040528015611619578160200160208202803683370190505b506001600160a01b0380861660009081526001602052604081205492945091165b6001600160a01b0381161580159061165c57506001600160a01b038116600114155b801561166757508482105b156116bf578084838151811061167f5761167f612db4565b6001600160a01b039283166020918202929092018101919091529181166000908152600190925260409091205416816116b781612b5a565b92505061163a565b908352919491935090915050565b336000908152600260205260409020546001600160a01b031661171a5760405162461bcd60e51b8152602060048201526005602482015264047533033360dc1b60448201526064016106a1565b336000818152600860209081526040808320858452909152808220600190555183917ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c91a350565b60006117778c8c8c8c8c8c8c8c8c8c8c611ad9565b8051906020012090509b9a5050505050505050505050565b611797611d9f565b6001600160a01b038116158015906117b957506001600160a01b038116600114155b6117d55760405162461bcd60e51b81526004016106a190612c24565b6001600160a01b038281166000908152600160205260409020548116908216146118295760405162461bcd60e51b8152602060048201526005602482015264475331303360d81b60448201526064016106a1565b6001600160a01b03818116600081815260016020526040808220805487861684528284208054919096166001600160a01b0319918216179095559290915281549092169055517faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace40542769061189c908390612b73565b60405180910390a15050565b6118b0611d9f565b7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c88181556040517f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa29061189c908490612b73565b61190c611d9f565b6001600160a01b0381161580159061192e57506001600160a01b038116600114155b801561194357506001600160a01b0381163014155b61195f5760405162461bcd60e51b81526004016106a190612b06565b6001600160a01b0381811660009081526002602052604090205416156119975760405162461bcd60e51b81526004016106a190612b25565b6001600160a01b038216158015906119b957506001600160a01b038216600114155b6119d55760405162461bcd60e51b81526004016106a190612b06565b6001600160a01b03838116600090815260026020526040902054811690831614611a115760405162461bcd60e51b81526004016106a190612e36565b6001600160a01b03828116600081815260026020526040808220805486861680855283852080549288166001600160a01b03199384161790559589168452828420805482169096179095559290915281549092169055517ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf90611a95908490612b73565b60405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051611acc9190612b73565b60405180910390a1505050565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8d8d8d8d604051611b13929190612e55565b604051908190038120611b39949392918e908e908e908e908e908e908e90602001612e65565b60408051601f1981840301815291905280516020909101209050601960f81b600160f81b611b65611bf2565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b611bba611d9f565b611bc38161217d565b7f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b081604051610f079190612b73565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692184660408051602081019390935282015230606082015260800160405160208183030381529060405280519060200120905090565b611c51611d9f565b806001600354611c619190612da1565b1015611c7f5760405162461bcd60e51b81526004016106a190612c43565b6001600160a01b03821615801590611ca157506001600160a01b038216600114155b611cbd5760405162461bcd60e51b81526004016106a190612b06565b6001600160a01b03838116600090815260026020526040902054811690831614611cf95760405162461bcd60e51b81526004016106a190612e36565b6001600160a01b03828116600081815260026020526040808220805488861684529183208054929095166001600160a01b03199283161790945591815282549091169091556003805491611d4c83612ed4565b91905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051611d809190612b73565b60405180910390a18060045414611d9a57611d9a81610f12565b505050565b333014611dd65760405162461bcd60e51b8152602060048201526005602482015264475330333160d81b60448201526064016106a1565b565b600082600003611dea57506000610c24565b6000611df68385612c0d565b905082611e038583612d7f565b14611e0d57600080fd5b9392505050565b600080611e218385612d6c565b905083811015611e0d57600080fd5b60006001836001811115611e4657611e46612c81565b03611e5e576000808551602087018986f49050611e6e565b600080855160208701888a87f190505b95945050505050565b600081831015611e875781611e0d565b5090919050565b600082821115611e9d57600080fd5b6000610d318385612da1565b6000806001600160a01b03831615611ec15782611ec3565b325b90506001600160a01b038416611f5657611ef53a8610611ee3573a611ee5565b855b611eef8989611e14565b90611dd8565b6040519092506001600160a01b0382169083156108fc029084906000818181858888f19350505050611f515760405162461bcd60e51b8152602060048201526005602482015264475330313160d81b60448201526064016106a1565b611fa5565b611f6485611eef8989611e14565b9150611f71848284612277565b611fa55760405162461bcd60e51b815260206004820152600560248201526423a998189960d91b60448201526064016106a1565b5095945050505050565b60045415611fe75760405162461bcd60e51b8152602060048201526005602482015264047533230360dc1b60448201526064016106a1565b81518111156120085760405162461bcd60e51b81526004016106a190612c43565b60018110156120295760405162461bcd60e51b81526004016106a190612c62565b600160005b835181101561214a57600084828151811061204b5761204b612db4565b6020026020010151905060006001600160a01b0316816001600160a01b03161415801561208257506001600160a01b038116600114155b801561209757506001600160a01b0381163014155b80156120b55750806001600160a01b0316836001600160a01b031614155b6120d15760405162461bcd60e51b81526004016106a190612b06565b6001600160a01b0381811660009081526002602052604090205416156121095760405162461bcd60e51b81526004016106a190612b25565b6001600160a01b03928316600090815260026020526040902080546001600160a01b031916938216939093179092558061214281612b5a565b91505061202e565b506001600160a01b0316600090815260026020526040902080546001600160a01b03191660011790559051600355600455565b7f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b60016000819052602052600080516020612eec833981519152546001600160a01b0316156121f95760405162461bcd60e51b8152602060048201526005602482015264047533130360dc1b60448201526064016106a1565b600160008190526020819052600080516020612eec83398151915280546001600160a01b03191690911790556001600160a01b0382161561079d576122438260008360015a611e30565b61079d5760405162461bcd60e51b8152602060048201526005602482015264047533030360dc1b60448201526064016106a1565b604080516001600160a01b03841660248201526044808201849052825180830390910181526064909101909152602080820180516001600160e01b031663a9059cbb60e01b1781528251600093929184919082896127105a03f13d80156122e957602081146122f157600093506122fc565b8193506122fc565b600051158215171593505b5050509392505050565b6001600160a01b038116811461231b57600080fd5b50565b803561232981612306565b919050565b6000806040838503121561234157600080fd5b823561234c81612306565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261238157600080fd5b81356001600160401b038082111561239b5761239b61235a565b604051601f8301601f19908116603f011681019082821181831017156123c3576123c361235a565b816040528381528660208588010111156123dc57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806080858703121561241257600080fd5b8435935060208501356001600160401b038082111561243057600080fd5b61243c88838901612370565b9450604087013591508082111561245257600080fd5b5061245f87828801612370565b949793965093946060013593505050565b60006020828403121561248257600080fd5b8135611e0d81612306565b80356002811061232957600080fd5b600080600080608085870312156124b257600080fd5b84356124bd81612306565b93506020850135925060408501356001600160401b038111156124df57600080fd5b6124eb87828801612370565b9250506124fa6060860161248d565b905092959194509250565b6000815180845260005b8181101561252b5760208185018101518683018201520161250f565b506000602082860101526020601f19601f83011685010191505092915050565b8215158152604060208201526000610d316040830184612505565b6000806040838503121561257957600080fd5b50508035926020909101359150565b602081526000611e0d6020830184612505565b6000602082840312156125ad57600080fd5b5035919050565b60008083601f8401126125c657600080fd5b5081356001600160401b038111156125dd57600080fd5b6020830191508360208285010111156125f557600080fd5b9250929050565b60008060008060008060008060008060006101408c8e03121561261e57600080fd5b6126278c61231e565b9a5060208c013599506001600160401b038060408e0135111561264957600080fd5b6126598e60408f01358f016125b4565b909a50985061266a60608e0161248d565b975060808d0135965060a08d0135955060c08d0135945061268d60e08e0161231e565b935061269c6101008e0161231e565b9250806101208e013511156126b057600080fd5b506126c28d6101208e01358e01612370565b90509295989b509295989b9093969950565b6000806000606084860312156126e957600080fd5b8335925060208401356001600160401b038082111561270757600080fd5b61271387838801612370565b9350604086013591508082111561272957600080fd5b5061273686828701612370565b9150509250925092565b6001600160a01b03169052565b600081518084526020808501945080840160005b838110156127865781516001600160a01b031687529582019590820190600101612761565b509495945050505050565b602081526000611e0d602083018461274d565b600080604083850312156127b757600080fd5b82356127c281612306565b915060208301356001600160401b038111156127dd57600080fd5b6127e985828601612370565b9150509250929050565b6000806000806000806000806000806101008b8d03121561281357600080fd5b8a356001600160401b038082111561282a57600080fd5b818d0191508d601f83011261283e57600080fd5b81358181111561284d57600080fd5b8e60208260051b850101111561286257600080fd5b60208381019d50909b508d0135995061287d60408e0161231e565b985060608d013591508082111561289357600080fd5b506128a08d828e016125b4565b90975095506128b3905060808c0161231e565b93506128c160a08c0161231e565b925060c08b013591506128d660e08c0161231e565b90509295989b9194979a5092959850565b6000806000806000608086880312156128ff57600080fd5b853561290a81612306565b94506020860135935060408601356001600160401b0381111561292c57600080fd5b612938888289016125b4565b909450925061294b90506060870161248d565b90509295509295909350565b60408152600061296a604083018561274d565b905060018060a01b03831660208301529392505050565b60008060008060008060008060008060006101408c8e0312156129a357600080fd5b8b356129ae81612306565b9a5060208c0135995060408c01356001600160401b038111156129d057600080fd5b6129dc8e828f016125b4565b909a5098506129ef905060608d0161248d565b965060808c0135955060a08c0135945060c08c0135935060e08c0135612a1481612306565b92506101008c0135612a2581612306565b809250506101208c013590509295989b509295989b9093969950565b60008060408385031215612a5457600080fd5b8235612a5f81612306565b91506020830135612a6f81612306565b809150509250929050565b600080600060608486031215612a8f57600080fd5b8335612a9a81612306565b92506020840135612aaa81612306565b91506040840135612aba81612306565b809150509250925092565b600080600060608486031215612ada57600080fd5b8335612ae581612306565b92506020840135612af581612306565b929592945050506040919091013590565b602080825260059082015264475332303360d81b604082015260600190565b60208082526005908201526411d4cc8c0d60da1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600060018201612b6c57612b6c612b44565b5060010190565b6001600160a01b0391909116815260200190565b604081526000612b9a6040830185612505565b8281036020840152611e6e8185612505565b600060208284031215612bbe57600080fd5b81516001600160e01b031981168114611e0d57600080fd5b60ff8281168282160390811115610c2457610c24612b44565b93845260ff9290921660208401526040830152606082015260800190565b8082028115828204841417610c2457610c24612b44565b602080825260059082015264475331303160d81b604082015260600190565b602080825260059082015264475332303160d81b604082015260600190565b60208082526005908201526423a999181960d91b604082015260600190565b634e487b7160e01b600052602160045260246000fd5b60028110612cb557634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b038d168152602081018c90526101606040820181905281018a905260006101808b8d828501376000838d01820152601f8c01601f19168301612d05606085018d612c97565b8a60808501528960a08501528860c0850152612d2460e0850189612740565b612d32610100850188612740565b8184820301610120850152612d4982820187612505565b92505050612d5b610140830184612740565b9d9c50505050505050505050505050565b80820180821115610c2457610c24612b44565b600082612d9c57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610c2457610c24612b44565b634e487b7160e01b600052603260045260246000fd5b6080808252810185905260008660a08301825b88811015612e0d578235612df081612306565b6001600160a01b0316825260209283019290910190600101612ddd565b50602084019690965250506001600160a01b039283166040820152911660609091015292915050565b602080825260059082015264475332303560d81b604082015260600190565b8183823760009101908152919050565b8b81526001600160a01b038b81166020830152604082018b9052606082018a9052610160820190612e99608084018b612c97565b60a083019890985260c082019690965260e0810194909452918516610100840152909316610120820152610140019190915295945050505050565b600081612ee357612ee3612b44565b50600019019056fecc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792fa2646970667358221220a016eb2ae30bb7f1a90579d5c2a743c225c7a98da7eb9b969edec313e50f1a4f64736f6c63430008110033",
1034
+ "deployedBytecode": "0x60806040526004361061017c5760003560e01c8063affed0e0116100d2578063affed0e014610447578063b4faba091461045d578063b63e800d1461047d578063c4ca3a9c1461049d578063cc2f8452146104bd578063d4d9bdcd146104eb578063d8d11f781461050b578063e009cfde1461052b578063e19a9dd91461054b578063e318b52b1461056b578063e75235b81461058b578063e86637db146105a0578063f08a0323146105c0578063f698da25146105e0578063f8dc5dd9146105f5578063ffa1ad7414610615576101b8565b80630d582f131461021e57806312fb68e0146102405780632d9ad53d146102605780632f54bf6e146102955780633408e470146102b5578063468721a7146102d25780635229073f146102f25780635624b25b146103205780635ae6bd371461034d578063610b59251461037a578063694e80c31461039a5780636a761202146103ba5780637d832974146103cd578063934f3a1114610405578063a0e67e2b14610425576101b8565b366101b85760405134815233907f3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d9060200160405180910390a2005b3480156101c457600080fd5b507f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d58054806101ef57005b36600080373360601b365260008060143601600080855af190503d6000803e80610218573d6000fd5b503d6000f35b34801561022a57600080fd5b5061023e61023936600461232e565b610646565b005b34801561024c57600080fd5b5061023e61025b3660046123fc565b6107a1565b34801561026c57600080fd5b5061028061027b366004612470565b610bef565b60405190151581526020015b60405180910390f35b3480156102a157600080fd5b506102806102b0366004612470565b610c2a565b3480156102c157600080fd5b50465b60405190815260200161028c565b3480156102de57600080fd5b506102806102ed36600461249c565b610c62565b3480156102fe57600080fd5b5061031261030d36600461249c565b610d39565b60405161028c92919061254b565b34801561032c57600080fd5b5061034061033b366004612566565b610d6f565b60405161028c9190612588565b34801561035957600080fd5b506102c461036836600461259b565b60076020526000908152604090205481565b34801561038657600080fd5b5061023e610395366004612470565b610df4565b3480156103a657600080fd5b5061023e6103b536600461259b565b610f12565b6102806103c83660046125fc565b610f92565b3480156103d957600080fd5b506102c46103e836600461232e565b600860209081526000928352604080842090915290825290205481565b34801561041157600080fd5b5061023e6104203660046126d4565b6112db565b34801561043157600080fd5b5061043a611325565b60405161028c9190612791565b34801561045357600080fd5b506102c460055481565b34801561046957600080fd5b5061023e6104783660046127a4565b611415565b34801561048957600080fd5b5061023e6104983660046127f3565b611438565b3480156104a957600080fd5b506102c46104b83660046128e7565b61153a565b3480156104c957600080fd5b506104dd6104d836600461232e565b6115d4565b60405161028c929190612957565b3480156104f757600080fd5b5061023e61050636600461259b565b6116cd565b34801561051757600080fd5b506102c4610526366004612981565b611762565b34801561053757600080fd5b5061023e610546366004612a41565b61178f565b34801561055757600080fd5b5061023e610566366004612470565b6118a8565b34801561057757600080fd5b5061023e610586366004612a7a565b611904565b34801561059757600080fd5b506004546102c4565b3480156105ac57600080fd5b506103406105bb366004612981565b611ad9565b3480156105cc57600080fd5b5061023e6105db366004612470565b611bb2565b3480156105ec57600080fd5b506102c4611bf2565b34801561060157600080fd5b5061023e610610366004612ac5565b611c49565b34801561062157600080fd5b50610340604051806040016040528060058152602001640312e332e360dc1b81525081565b61064e611d9f565b6001600160a01b0382161580159061067057506001600160a01b038216600114155b801561068557506001600160a01b0382163014155b6106aa5760405162461bcd60e51b81526004016106a190612b06565b60405180910390fd5b6001600160a01b0382811660009081526002602052604090205416156106e25760405162461bcd60e51b81526004016106a190612b25565b60026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e080546001600160a01b038481166000818152604081208054939094166001600160a01b03199384161790935560018352835490911617909155600380549161074f83612b5a565b91905055507f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea26826040516107839190612b73565b60405180910390a1806004541461079d5761079d81610f12565b5050565b6107ac816041611dd8565b825110156107e45760405162461bcd60e51b8152602060048201526005602482015264047533032360dc1b60448201526064016106a1565b6000808060008060005b86811015610be3576041818102890160208101516040820151919092015160ff169550909350915060008490036109bf57919350839161082f876041611dd8565b8210156108665760405162461bcd60e51b8152602060048201526005602482015264475330323160d81b60448201526064016106a1565b8751610873836020611e14565b11156108a95760405162461bcd60e51b815260206004820152600560248201526423a998191960d91b60448201526064016106a1565b6020828901810151895190916108cc9083906108c6908790611e14565b90611e14565b11156109025760405162461bcd60e51b8152602060048201526005602482015264475330323360d81b60448201526064016106a1565b6040516320c13b0b60e01b8082528a8501602001916001600160a01b038916906320c13b0b90610938908f908690600401612b87565b602060405180830381865afa158015610955573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109799190612bac565b6001600160e01b031916146109b85760405162461bcd60e51b815260206004820152600560248201526411d4cc0c8d60da1b60448201526064016106a1565b5050610b49565b8360ff16600103610a41579193508391336001600160a01b0384161480610a0857506001600160a01b03851660009081526008602090815260408083208d845290915290205415155b610a3c5760405162461bcd60e51b8152602060048201526005602482015264475330323560d81b60448201526064016106a1565b610b49565b601e8460ff161115610af7576040517b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6020820152603c81018b9052600190605c0160405160208183030381529060405280519060200120600486610aa59190612bd6565b858560405160008152602001604052604051610ac49493929190612bef565b6020604051602081039080840390855afa158015610ae6573d6000803e3d6000fd5b505050602060405103519450610b49565b60018a85858560405160008152602001604052604051610b1a9493929190612bef565b6020604051602081039080840390855afa158015610b3c573d6000803e3d6000fd5b5050506020604051035194505b856001600160a01b0316856001600160a01b0316118015610b8357506001600160a01b038581166000908152600260205260409020541615155b8015610b9957506001600160a01b038516600114155b610bcd5760405162461bcd60e51b815260206004820152600560248201526423a998191b60d91b60448201526064016106a1565b8495508080610bdb90612b5a565b9150506107ee565b50505050505050505050565b600060016001600160a01b03831614801590610c2457506001600160a01b038281166000908152600160205260409020541615155b92915050565b60006001600160a01b038216600114801590610c245750506001600160a01b0390811660009081526002602052604090205416151590565b600033600114801590610c8c5750336000908152600160205260409020546001600160a01b031615155b610cc05760405162461bcd60e51b815260206004820152600560248201526411d4cc4c0d60da1b60448201526064016106a1565b610ccd858585855a611e30565b90508015610d055760405133907f6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb890600090a2610d31565b60405133907facd2c8702804128fdb0db2bb49f6d127dd0181c13fd45dbfe16de0930e2bd37590600090a25b949350505050565b60006060610d4986868686610c62565b915060405160203d0181016040523d81523d6000602083013e8091505094509492505050565b60606000610d7e836020612c0d565b6001600160401b03811115610d9557610d9561235a565b6040519080825280601f01601f191660200182016040528015610dbf576020820181803683370190505b50905060005b83811015610dec578481015460208083028401015280610de481612b5a565b915050610dc5565b509392505050565b610dfc611d9f565b6001600160a01b03811615801590610e1e57506001600160a01b038116600114155b610e3a5760405162461bcd60e51b81526004016106a190612c24565b6001600160a01b038181166000908152600160205260409020541615610e8a5760405162461bcd60e51b815260206004820152600560248201526423a998981960d91b60448201526064016106a1565b60016020819052600080516020612eec83398151915280546001600160a01b03848116600081815260408082208054949095166001600160a01b031994851617909455949094528254169092179055517fecdf3a3effea5783a3c4c2140e677577666428d44ed9d474a0b3a4c9943f844090610f07908390612b73565b60405180910390a150565b610f1a611d9f565b600354811115610f3c5760405162461bcd60e51b81526004016106a190612c43565b6001811015610f5d5760405162461bcd60e51b81526004016106a190612c62565b60048190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c9390602001610f07565b6000806000610fac8e8e8e8e8e8e8e8e8e8e600554611ad9565b600580549192506000610fbe83612b5a565b9091555050805160208201209150610fd78282866112db565b5060006110027f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c85490565b90506001600160a01b0381161561108857806001600160a01b03166375f0bb528f8f8f8f8f8f8f8f8f8f8f336040518d63ffffffff1660e01b81526004016110559c9b9a99989796959493929190612cb9565b600060405180830381600087803b15801561106f57600080fd5b505af1158015611083573d6000803e3d6000fd5b505050505b6110b46110978a6109c4612d6c565b603f6110a48c6040612c0d565b6110ae9190612d7f565b90611e77565b6110c0906101f4612d6c565b5a10156110f75760405162461bcd60e51b8152602060048201526005602482015264047533031360dc1b60448201526064016106a1565b60005a90506111688f8f8f8f8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508e8c600014611155578e611e30565b6109c45a6111639190612da1565b611e30565b93506111755a8290611e8e565b9050838061118257508915155b8061118c57508715155b6111c05760405162461bcd60e51b8152602060048201526005602482015264475330313360d81b60448201526064016106a1565b600088156111d8576111d5828b8b8b8b611ea9565b90505b841561121c5760408051858152602081018390527f442e715f626346e8c54381002da614f62bee8d27386535b2521ec8540898556e910160405180910390a1611256565b60408051858152602081018390527f23428b18acfb3ea64b08dc0c1d296ea9c09702c09083ca5272e64d115b687d23910160405180910390a15b50506001600160a01b038116156112ca57604051631264e26d60e31b81526004810183905283151560248201526001600160a01b03821690639327136890604401600060405180830381600087803b1580156112b157600080fd5b505af11580156112c5573d6000803e3d6000fd5b505050505b50509b9a5050505050505050505050565b600454806113135760405162461bcd60e51b8152602060048201526005602482015264475330303160d81b60448201526064016106a1565b61131f848484846107a1565b50505050565b606060006003546001600160401b038111156113435761134361235a565b60405190808252806020026020018201604052801561136c578160200160208202803683370190505b506001600090815260026020527fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e054919250906001600160a01b03165b6001600160a01b03811660011461140d57808383815181106113cd576113cd612db4565b6001600160a01b0392831660209182029290920181019190915291811660009081526002909252604090912054168161140581612b5a565b9250506113a9565b509092915050565b600080825160208401855af480600052503d6020523d600060403e60403d016000fd5b6114768a8a808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508c9250611faf915050565b6001600160a01b0384161561148e5761148e8461217d565b6114ce8787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506121a192505050565b81156114e5576114e382600060018685611ea9565b505b336001600160a01b03167f141df868a6331af528e38c83b7aa03edc19be66e37ae67f9285bf4f8e3c6a1a88b8b8b8b89604051611526959493929190612dca565b60405180910390a250505050505050505050565b6000805a9050611583878787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525089925050505a611e30565b61158c57600080fd5b60005a6115999083612da1565b9050806040516020016115ae91815260200190565b60408051601f198184030181529082905262461bcd60e51b82526106a191600401612588565b60606000826001600160401b038111156115f0576115f061235a565b604051908082528060200260200182016040528015611619578160200160208202803683370190505b506001600160a01b0380861660009081526001602052604081205492945091165b6001600160a01b0381161580159061165c57506001600160a01b038116600114155b801561166757508482105b156116bf578084838151811061167f5761167f612db4565b6001600160a01b039283166020918202929092018101919091529181166000908152600190925260409091205416816116b781612b5a565b92505061163a565b908352919491935090915050565b336000908152600260205260409020546001600160a01b031661171a5760405162461bcd60e51b8152602060048201526005602482015264047533033360dc1b60448201526064016106a1565b336000818152600860209081526040808320858452909152808220600190555183917ff2a0eb156472d1440255b0d7c1e19cc07115d1051fe605b0dce69acfec884d9c91a350565b60006117778c8c8c8c8c8c8c8c8c8c8c611ad9565b8051906020012090509b9a5050505050505050505050565b611797611d9f565b6001600160a01b038116158015906117b957506001600160a01b038116600114155b6117d55760405162461bcd60e51b81526004016106a190612c24565b6001600160a01b038281166000908152600160205260409020548116908216146118295760405162461bcd60e51b8152602060048201526005602482015264475331303360d81b60448201526064016106a1565b6001600160a01b03818116600081815260016020526040808220805487861684528284208054919096166001600160a01b0319918216179095559290915281549092169055517faab4fa2b463f581b2b32cb3b7e3b704b9ce37cc209b5fb4d77e593ace40542769061189c908390612b73565b60405180910390a15050565b6118b0611d9f565b7f4a204f620c8c5ccdca3fd54d003badd85ba500436a431f0cbda4f558c93c34c88181556040517f1151116914515bc0891ff9047a6cb32cf902546f83066499bcf8ba33d2353fa29061189c908490612b73565b61190c611d9f565b6001600160a01b0381161580159061192e57506001600160a01b038116600114155b801561194357506001600160a01b0381163014155b61195f5760405162461bcd60e51b81526004016106a190612b06565b6001600160a01b0381811660009081526002602052604090205416156119975760405162461bcd60e51b81526004016106a190612b25565b6001600160a01b038216158015906119b957506001600160a01b038216600114155b6119d55760405162461bcd60e51b81526004016106a190612b06565b6001600160a01b03838116600090815260026020526040902054811690831614611a115760405162461bcd60e51b81526004016106a190612e36565b6001600160a01b03828116600081815260026020526040808220805486861680855283852080549288166001600160a01b03199384161790559589168452828420805482169096179095559290915281549092169055517ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf90611a95908490612b73565b60405180910390a17f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea2681604051611acc9190612b73565b60405180910390a1505050565b606060007fbb8310d486368db6bd6f849402fdd73ad53d316b5a4b2644ad6efe0f941286d860001b8d8d8d8d604051611b13929190612e55565b604051908190038120611b39949392918e908e908e908e908e908e908e90602001612e65565b60408051601f1981840301815291905280516020909101209050601960f81b600160f81b611b65611bf2565b6040516001600160f81b031993841660208201529290911660218301526022820152604281018290526062016040516020818303038152906040529150509b9a5050505050505050505050565b611bba611d9f565b611bc38161217d565b7f5ac6c46c93c8d0e53714ba3b53db3e7c046da994313d7ed0d192028bc7c228b081604051610f079190612b73565b60007f47e79534a245952e8b16893a336b85a3d9ea9fa8c573f3d803afb92a794692184660408051602081019390935282015230606082015260800160405160208183030381529060405280519060200120905090565b611c51611d9f565b806001600354611c619190612da1565b1015611c7f5760405162461bcd60e51b81526004016106a190612c43565b6001600160a01b03821615801590611ca157506001600160a01b038216600114155b611cbd5760405162461bcd60e51b81526004016106a190612b06565b6001600160a01b03838116600090815260026020526040902054811690831614611cf95760405162461bcd60e51b81526004016106a190612e36565b6001600160a01b03828116600081815260026020526040808220805488861684529183208054929095166001600160a01b03199283161790945591815282549091169091556003805491611d4c83612ed4565b91905055507ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf82604051611d809190612b73565b60405180910390a18060045414611d9a57611d9a81610f12565b505050565b333014611dd65760405162461bcd60e51b8152602060048201526005602482015264475330333160d81b60448201526064016106a1565b565b600082600003611dea57506000610c24565b6000611df68385612c0d565b905082611e038583612d7f565b14611e0d57600080fd5b9392505050565b600080611e218385612d6c565b905083811015611e0d57600080fd5b60006001836001811115611e4657611e46612c81565b03611e5e576000808551602087018986f49050611e6e565b600080855160208701888a87f190505b95945050505050565b600081831015611e875781611e0d565b5090919050565b600082821115611e9d57600080fd5b6000610d318385612da1565b6000806001600160a01b03831615611ec15782611ec3565b325b90506001600160a01b038416611f5657611ef53a8610611ee3573a611ee5565b855b611eef8989611e14565b90611dd8565b6040519092506001600160a01b0382169083156108fc029084906000818181858888f19350505050611f515760405162461bcd60e51b8152602060048201526005602482015264475330313160d81b60448201526064016106a1565b611fa5565b611f6485611eef8989611e14565b9150611f71848284612277565b611fa55760405162461bcd60e51b815260206004820152600560248201526423a998189960d91b60448201526064016106a1565b5095945050505050565b60045415611fe75760405162461bcd60e51b8152602060048201526005602482015264047533230360dc1b60448201526064016106a1565b81518111156120085760405162461bcd60e51b81526004016106a190612c43565b60018110156120295760405162461bcd60e51b81526004016106a190612c62565b600160005b835181101561214a57600084828151811061204b5761204b612db4565b6020026020010151905060006001600160a01b0316816001600160a01b03161415801561208257506001600160a01b038116600114155b801561209757506001600160a01b0381163014155b80156120b55750806001600160a01b0316836001600160a01b031614155b6120d15760405162461bcd60e51b81526004016106a190612b06565b6001600160a01b0381811660009081526002602052604090205416156121095760405162461bcd60e51b81526004016106a190612b25565b6001600160a01b03928316600090815260026020526040902080546001600160a01b031916938216939093179092558061214281612b5a565b91505061202e565b506001600160a01b0316600090815260026020526040902080546001600160a01b03191660011790559051600355600455565b7f6c9a6c4a39284e37ed1cf53d337577d14212a4870fb976a4366c693b939918d555565b60016000819052602052600080516020612eec833981519152546001600160a01b0316156121f95760405162461bcd60e51b8152602060048201526005602482015264047533130360dc1b60448201526064016106a1565b600160008190526020819052600080516020612eec83398151915280546001600160a01b03191690911790556001600160a01b0382161561079d576122438260008360015a611e30565b61079d5760405162461bcd60e51b8152602060048201526005602482015264047533030360dc1b60448201526064016106a1565b604080516001600160a01b03841660248201526044808201849052825180830390910181526064909101909152602080820180516001600160e01b031663a9059cbb60e01b1781528251600093929184919082896127105a03f13d80156122e957602081146122f157600093506122fc565b8193506122fc565b600051158215171593505b5050509392505050565b6001600160a01b038116811461231b57600080fd5b50565b803561232981612306565b919050565b6000806040838503121561234157600080fd5b823561234c81612306565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261238157600080fd5b81356001600160401b038082111561239b5761239b61235a565b604051601f8301601f19908116603f011681019082821181831017156123c3576123c361235a565b816040528381528660208588010111156123dc57600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000806000806080858703121561241257600080fd5b8435935060208501356001600160401b038082111561243057600080fd5b61243c88838901612370565b9450604087013591508082111561245257600080fd5b5061245f87828801612370565b949793965093946060013593505050565b60006020828403121561248257600080fd5b8135611e0d81612306565b80356002811061232957600080fd5b600080600080608085870312156124b257600080fd5b84356124bd81612306565b93506020850135925060408501356001600160401b038111156124df57600080fd5b6124eb87828801612370565b9250506124fa6060860161248d565b905092959194509250565b6000815180845260005b8181101561252b5760208185018101518683018201520161250f565b506000602082860101526020601f19601f83011685010191505092915050565b8215158152604060208201526000610d316040830184612505565b6000806040838503121561257957600080fd5b50508035926020909101359150565b602081526000611e0d6020830184612505565b6000602082840312156125ad57600080fd5b5035919050565b60008083601f8401126125c657600080fd5b5081356001600160401b038111156125dd57600080fd5b6020830191508360208285010111156125f557600080fd5b9250929050565b60008060008060008060008060008060006101408c8e03121561261e57600080fd5b6126278c61231e565b9a5060208c013599506001600160401b038060408e0135111561264957600080fd5b6126598e60408f01358f016125b4565b909a50985061266a60608e0161248d565b975060808d0135965060a08d0135955060c08d0135945061268d60e08e0161231e565b935061269c6101008e0161231e565b9250806101208e013511156126b057600080fd5b506126c28d6101208e01358e01612370565b90509295989b509295989b9093969950565b6000806000606084860312156126e957600080fd5b8335925060208401356001600160401b038082111561270757600080fd5b61271387838801612370565b9350604086013591508082111561272957600080fd5b5061273686828701612370565b9150509250925092565b6001600160a01b03169052565b600081518084526020808501945080840160005b838110156127865781516001600160a01b031687529582019590820190600101612761565b509495945050505050565b602081526000611e0d602083018461274d565b600080604083850312156127b757600080fd5b82356127c281612306565b915060208301356001600160401b038111156127dd57600080fd5b6127e985828601612370565b9150509250929050565b6000806000806000806000806000806101008b8d03121561281357600080fd5b8a356001600160401b038082111561282a57600080fd5b818d0191508d601f83011261283e57600080fd5b81358181111561284d57600080fd5b8e60208260051b850101111561286257600080fd5b60208381019d50909b508d0135995061287d60408e0161231e565b985060608d013591508082111561289357600080fd5b506128a08d828e016125b4565b90975095506128b3905060808c0161231e565b93506128c160a08c0161231e565b925060c08b013591506128d660e08c0161231e565b90509295989b9194979a5092959850565b6000806000806000608086880312156128ff57600080fd5b853561290a81612306565b94506020860135935060408601356001600160401b0381111561292c57600080fd5b612938888289016125b4565b909450925061294b90506060870161248d565b90509295509295909350565b60408152600061296a604083018561274d565b905060018060a01b03831660208301529392505050565b60008060008060008060008060008060006101408c8e0312156129a357600080fd5b8b356129ae81612306565b9a5060208c0135995060408c01356001600160401b038111156129d057600080fd5b6129dc8e828f016125b4565b909a5098506129ef905060608d0161248d565b965060808c0135955060a08c0135945060c08c0135935060e08c0135612a1481612306565b92506101008c0135612a2581612306565b809250506101208c013590509295989b509295989b9093969950565b60008060408385031215612a5457600080fd5b8235612a5f81612306565b91506020830135612a6f81612306565b809150509250929050565b600080600060608486031215612a8f57600080fd5b8335612a9a81612306565b92506020840135612aaa81612306565b91506040840135612aba81612306565b809150509250925092565b600080600060608486031215612ada57600080fd5b8335612ae581612306565b92506020840135612af581612306565b929592945050506040919091013590565b602080825260059082015264475332303360d81b604082015260600190565b60208082526005908201526411d4cc8c0d60da1b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600060018201612b6c57612b6c612b44565b5060010190565b6001600160a01b0391909116815260200190565b604081526000612b9a6040830185612505565b8281036020840152611e6e8185612505565b600060208284031215612bbe57600080fd5b81516001600160e01b031981168114611e0d57600080fd5b60ff8281168282160390811115610c2457610c24612b44565b93845260ff9290921660208401526040830152606082015260800190565b8082028115828204841417610c2457610c24612b44565b602080825260059082015264475331303160d81b604082015260600190565b602080825260059082015264475332303160d81b604082015260600190565b60208082526005908201526423a999181960d91b604082015260600190565b634e487b7160e01b600052602160045260246000fd5b60028110612cb557634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b038d168152602081018c90526101606040820181905281018a905260006101808b8d828501376000838d01820152601f8c01601f19168301612d05606085018d612c97565b8a60808501528960a08501528860c0850152612d2460e0850189612740565b612d32610100850188612740565b8184820301610120850152612d4982820187612505565b92505050612d5b610140830184612740565b9d9c50505050505050505050505050565b80820180821115610c2457610c24612b44565b600082612d9c57634e487b7160e01b600052601260045260246000fd5b500490565b81810381811115610c2457610c24612b44565b634e487b7160e01b600052603260045260246000fd5b6080808252810185905260008660a08301825b88811015612e0d578235612df081612306565b6001600160a01b0316825260209283019290910190600101612ddd565b50602084019690965250506001600160a01b039283166040820152911660609091015292915050565b602080825260059082015264475332303560d81b604082015260600190565b8183823760009101908152919050565b8b81526001600160a01b038b81166020830152604082018b9052606082018a9052610160820190612e99608084018b612c97565b60a083019890985260c082019690965260e0810194909452918516610100840152909316610120820152610140019190915295945050505050565b600081612ee357612ee3612b44565b50600019019056fecc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792fa2646970667358221220a016eb2ae30bb7f1a90579d5c2a743c225c7a98da7eb9b969edec313e50f1a4f64736f6c63430008110033",
1035
+ "linkReferences": {},
1036
+ "deployedLinkReferences": {}
1037
+ }