@artblocks/contracts 1.0.4 → 1.1.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 (120) hide show
  1. package/README.md +2 -2
  2. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  3. package/artifacts/contracts/DependencyRegistryV0.sol/DependencyRegistryV0.json +97 -10
  4. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +4 -4
  5. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +4 -9
  6. package/artifacts/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol/GenArt721CoreV3_Engine_Flex.json +4 -9
  7. package/artifacts/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol/GenArt721CoreV3_Engine_Flex_PROOF.json +4 -9
  8. package/artifacts/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol/GenArt721CoreV3_Engine_Flex_PROHIBITION.json +4 -9
  9. package/artifacts/contracts/engine-registry/CoreRegistryV1.sol/CoreRegistryV1.json +12 -12
  10. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +4 -4
  11. package/artifacts/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol/ICoreRegistryV1.json +6 -6
  12. package/artifacts/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol/IDependencyRegistryV0.json +19 -0
  13. package/artifacts/contracts/interfaces/v0.8.x/IMinterFilterV1.sol/IMinterFilterV1.json +22 -22
  14. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol/ISharedMinterDAExpSettlementV0.json +8 -101
  15. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol/ISharedMinterDAExpV0.json +1 -57
  16. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol/ISharedMinterDALinV0.json +1 -57
  17. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol/ISharedMinterDAV0.json +2 -21
  18. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol/ISharedMinterHolderERC20V0.json +158 -0
  19. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol/ISharedMinterHolderV0.json +15 -90
  20. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol/ISharedMinterMerkleV0.json +10 -36
  21. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol/ISharedMinterSEAV0.json +4 -236
  22. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol/ISharedMinterSimplePurchaseV0.json +5 -5
  23. package/artifacts/contracts/interfaces/v0.8.x/ISharedMinterV0.sol/ISharedMinterV0.json +7 -423
  24. package/artifacts/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol/ISharedRandomizerV0.json +17 -17
  25. package/artifacts/contracts/libs/v0.8.x/ABHelpers.sol/ABHelpers.json +2 -2
  26. package/artifacts/contracts/libs/v0.8.x/AuthLib.sol/AuthLib.json +2 -2
  27. package/artifacts/contracts/libs/v0.8.x/Bytes32Strings.sol/Bytes32Strings.json +2 -2
  28. package/artifacts/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol/DAExpLib.json +60 -3
  29. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALib.sol/DALib.json +30 -0
  30. package/artifacts/contracts/libs/v0.8.x/minter-libs/DALinLib.sol/DALinLib.json +60 -3
  31. package/artifacts/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol/GenericMinterEventsLib.json +346 -0
  32. package/artifacts/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol/MaxInvocationsLib.json +29 -3
  33. package/artifacts/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol/MerkleLib.json +30 -3
  34. package/artifacts/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol/PolyptychLib.json +2 -2
  35. package/artifacts/contracts/libs/v0.8.x/minter-libs/SEALib.sol/SEALib.json +254 -3
  36. package/artifacts/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol/SetPriceLib.json +48 -3
  37. package/artifacts/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol/SettlementExpLib.json +41 -3
  38. package/artifacts/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol/SplitFundsLib.json +35 -3
  39. package/artifacts/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol/TokenHolderLib.json +79 -3
  40. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +2 -2
  41. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV2.sol/MinterFilterV2.json +41 -41
  42. package/artifacts/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol/MinterDAExpHolderV5.json +66 -632
  43. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +2 -20
  44. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol/MinterDAExpSettlementV3.json +67 -594
  45. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV5.sol/MinterDAExpV5.json +33 -524
  46. package/artifacts/contracts/minter-suite/Minters/MinterDALinHolderV5.sol/MinterDALinHolderV5.json +66 -632
  47. package/artifacts/contracts/minter-suite/Minters/MinterDALinV5.sol/MinterDALinV5.json +33 -524
  48. package/artifacts/contracts/minter-suite/Minters/MinterSEAV1.sol/MinterSEAV1.json +51 -717
  49. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol/MinterSetPriceERC20V5.json +58 -454
  50. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol/MinterSetPriceHolderV5.json +61 -552
  51. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol/MinterSetPriceMerkleV5.json +55 -497
  52. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol/MinterSetPricePolyptychERC20V5.json +110 -571
  53. package/artifacts/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol/MinterSetPricePolyptychV5.json +69 -560
  54. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV5.sol/MinterSetPriceV5.json +28 -444
  55. package/artifacts/contracts/mock/DummySharedMinter.sol/DummySharedMinter.json +2 -2
  56. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +4 -9
  57. package/artifacts/contracts/mock/OriginRegisterMock.sol/OriginRegisterMock.json +2 -2
  58. package/artifacts/contracts/mock/ReentrancyHolderMockShared.sol/ReentrancyHolderMockShared.json +136 -0
  59. package/artifacts/contracts/mock/ReentrancyMerkleMockShared.sol/ReentrancyMerkleMockShared.json +105 -0
  60. package/artifacts/contracts/mock/ReentrancyMockShared.sol/ReentrancyMockShared.json +100 -0
  61. package/artifacts/contracts/mock/ReentrancySEAMockShared.sol/ReentrancySEAAutoBidderMockShared.json +69 -0
  62. package/artifacts/contracts/randomizer/shared/SharedRandomizerV0.sol/SharedRandomizerV0.json +19 -19
  63. package/contracts/DependencyRegistryV0.sol +84 -16
  64. package/contracts/archive/readme.md +16 -0
  65. package/contracts/engine/README.md +21 -0
  66. package/contracts/engine/V3/GenArt721CoreV3_Engine.sol +4 -10
  67. package/contracts/engine/V3/GenArt721CoreV3_Engine_Flex.sol +4 -10
  68. package/contracts/engine/V3/forks/GenArt721CoreV3_Engine_Flex_PROOF.sol +4 -10
  69. package/contracts/engine/V3/forks/PROHIBITION/GenArt721CoreV3_Engine_Flex_PROHIBITION.sol +4 -10
  70. package/contracts/engine-registry/CoreRegistryV1.sol +58 -65
  71. package/contracts/interfaces/v0.8.x/ICoreRegistryV1.sol +6 -8
  72. package/contracts/interfaces/v0.8.x/IDependencyRegistryV0.sol +3 -0
  73. package/contracts/interfaces/v0.8.x/IMinterFilterV1.sol +25 -25
  74. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpSettlementV0.sol +11 -20
  75. package/contracts/interfaces/v0.8.x/ISharedMinterDAExpV0.sol +1 -14
  76. package/contracts/interfaces/v0.8.x/ISharedMinterDALinV0.sol +1 -15
  77. package/contracts/interfaces/v0.8.x/ISharedMinterDAV0.sol +2 -8
  78. package/contracts/interfaces/v0.8.x/ISharedMinterHolderERC20V0.sol +47 -0
  79. package/contracts/interfaces/v0.8.x/ISharedMinterHolderV0.sol +15 -43
  80. package/contracts/interfaces/v0.8.x/ISharedMinterMerkleV0.sol +10 -20
  81. package/contracts/interfaces/v0.8.x/ISharedMinterSEAV0.sol +4 -67
  82. package/contracts/interfaces/v0.8.x/ISharedMinterSimplePurchaseV0.sol +5 -5
  83. package/contracts/interfaces/v0.8.x/ISharedMinterV0.sol +7 -155
  84. package/contracts/interfaces/v0.8.x/ISharedRandomizerV0.sol +37 -37
  85. package/contracts/libs/v0.8.x/ABHelpers.sol +14 -14
  86. package/contracts/libs/v0.8.x/AuthLib.sol +101 -102
  87. package/contracts/libs/v0.8.x/Bytes32Strings.sol +5 -5
  88. package/contracts/libs/v0.8.x/minter-libs/DAExpLib.sol +163 -38
  89. package/contracts/libs/v0.8.x/minter-libs/DALib.sol +26 -0
  90. package/contracts/libs/v0.8.x/minter-libs/DALinLib.sol +144 -37
  91. package/contracts/libs/v0.8.x/minter-libs/GenericMinterEventsLib.sol +171 -0
  92. package/contracts/libs/v0.8.x/minter-libs/MaxInvocationsLib.sol +250 -110
  93. package/contracts/libs/v0.8.x/minter-libs/MerkleLib.sol +257 -48
  94. package/contracts/libs/v0.8.x/minter-libs/PolyptychLib.sol +138 -58
  95. package/contracts/libs/v0.8.x/minter-libs/SEALib.sol +778 -103
  96. package/contracts/libs/v0.8.x/minter-libs/SetPriceLib.sol +135 -13
  97. package/contracts/libs/v0.8.x/minter-libs/SettlementExpLib.sol +567 -187
  98. package/contracts/libs/v0.8.x/minter-libs/SplitFundsLib.sol +480 -322
  99. package/contracts/libs/v0.8.x/minter-libs/TokenHolderLib.sol +214 -76
  100. package/contracts/minter-suite/MinterFilter/MinterFilterV2.sol +347 -304
  101. package/contracts/minter-suite/Minters/MinterDAExpHolderV5.sol +391 -491
  102. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +1 -54
  103. package/contracts/minter-suite/Minters/MinterDAExpSettlementV3.sol +388 -628
  104. package/contracts/minter-suite/Minters/MinterDAExpV5.sol +212 -273
  105. package/contracts/minter-suite/Minters/MinterDALinHolderV5.sol +393 -488
  106. package/contracts/minter-suite/Minters/MinterDALinV5.sol +220 -277
  107. package/contracts/minter-suite/Minters/MinterSEAV1.sol +327 -664
  108. package/contracts/minter-suite/Minters/MinterSetPriceERC20V5.sol +278 -303
  109. package/contracts/minter-suite/Minters/MinterSetPriceHolderV5.sol +355 -446
  110. package/contracts/minter-suite/Minters/MinterSetPriceMerkleV5.sol +328 -416
  111. package/contracts/minter-suite/Minters/MinterSetPricePolyptychERC20V5.sol +538 -622
  112. package/contracts/minter-suite/Minters/MinterSetPricePolyptychV5.sol +429 -553
  113. package/contracts/minter-suite/Minters/MinterSetPriceV5.sol +180 -227
  114. package/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol +3 -10
  115. package/contracts/mock/ReentrancyHolderMockShared.sol +59 -0
  116. package/contracts/mock/ReentrancyMerkleMockShared.sol +58 -0
  117. package/contracts/mock/ReentrancyMockShared.sol +48 -0
  118. package/contracts/mock/ReentrancySEAMockShared.sol +40 -0
  119. package/contracts/randomizer/shared/SharedRandomizerV0.sol +78 -70
  120. package/package.json +39 -33
@@ -7,12 +7,12 @@
7
7
  "inputs": [
8
8
  {
9
9
  "internalType": "address",
10
- "name": "_minterFilter",
10
+ "name": "minterFilter",
11
11
  "type": "address"
12
12
  },
13
13
  {
14
14
  "internalType": "address",
15
- "name": "_delegationRegistryAddress",
15
+ "name": "delegationRegistryAddress_",
16
16
  "type": "address"
17
17
  }
18
18
  ],
@@ -20,601 +20,35 @@
20
20
  "type": "constructor"
21
21
  },
22
22
  {
23
- "anonymous": false,
24
23
  "inputs": [
25
24
  {
26
- "indexed": true,
27
25
  "internalType": "uint256",
28
- "name": "_projectId",
26
+ "name": "projectId",
29
27
  "type": "uint256"
30
28
  },
31
29
  {
32
- "indexed": true,
33
30
  "internalType": "address",
34
- "name": "_coreContract",
31
+ "name": "coreContract",
35
32
  "type": "address"
36
33
  },
37
34
  {
38
- "indexed": false,
39
35
  "internalType": "address[]",
40
- "name": "_ownedNFTAddresses",
36
+ "name": "ownedNFTAddressesAdd",
41
37
  "type": "address[]"
42
38
  },
43
39
  {
44
- "indexed": false,
45
40
  "internalType": "uint256[]",
46
- "name": "_ownedNFTProjectIds",
41
+ "name": "ownedNFTProjectIdsAdd",
47
42
  "type": "uint256[]"
48
- }
49
- ],
50
- "name": "AllowedHoldersOfProjects",
51
- "type": "event"
52
- },
53
- {
54
- "anonymous": false,
55
- "inputs": [
56
- {
57
- "indexed": false,
58
- "internalType": "uint256",
59
- "name": "_minimumPriceDecayHalfLifeSeconds",
60
- "type": "uint256"
61
- }
62
- ],
63
- "name": "AuctionMinHalfLifeSecondsUpdated",
64
- "type": "event"
65
- },
66
- {
67
- "anonymous": false,
68
- "inputs": [
69
- {
70
- "indexed": true,
71
- "internalType": "uint256",
72
- "name": "_projectId",
73
- "type": "uint256"
74
- },
75
- {
76
- "indexed": true,
77
- "internalType": "address",
78
- "name": "_coreContract",
79
- "type": "address"
80
- },
81
- {
82
- "indexed": false,
83
- "internalType": "bytes32",
84
- "name": "_key",
85
- "type": "bytes32"
86
- }
87
- ],
88
- "name": "ConfigKeyRemoved",
89
- "type": "event"
90
- },
91
- {
92
- "anonymous": false,
93
- "inputs": [
94
- {
95
- "indexed": true,
96
- "internalType": "uint256",
97
- "name": "_projectId",
98
- "type": "uint256"
99
- },
100
- {
101
- "indexed": true,
102
- "internalType": "address",
103
- "name": "_coreContract",
104
- "type": "address"
105
- },
106
- {
107
- "indexed": false,
108
- "internalType": "bytes32",
109
- "name": "_key",
110
- "type": "bytes32"
111
- },
112
- {
113
- "indexed": false,
114
- "internalType": "uint256",
115
- "name": "_value",
116
- "type": "uint256"
117
- }
118
- ],
119
- "name": "ConfigValueAddedToSet",
120
- "type": "event"
121
- },
122
- {
123
- "anonymous": false,
124
- "inputs": [
125
- {
126
- "indexed": true,
127
- "internalType": "uint256",
128
- "name": "_projectId",
129
- "type": "uint256"
130
- },
131
- {
132
- "indexed": true,
133
- "internalType": "address",
134
- "name": "_coreContract",
135
- "type": "address"
136
- },
137
- {
138
- "indexed": false,
139
- "internalType": "bytes32",
140
- "name": "_key",
141
- "type": "bytes32"
142
- },
143
- {
144
- "indexed": false,
145
- "internalType": "address",
146
- "name": "_value",
147
- "type": "address"
148
- }
149
- ],
150
- "name": "ConfigValueAddedToSet",
151
- "type": "event"
152
- },
153
- {
154
- "anonymous": false,
155
- "inputs": [
156
- {
157
- "indexed": true,
158
- "internalType": "uint256",
159
- "name": "_projectId",
160
- "type": "uint256"
161
- },
162
- {
163
- "indexed": true,
164
- "internalType": "address",
165
- "name": "_coreContract",
166
- "type": "address"
167
- },
168
- {
169
- "indexed": false,
170
- "internalType": "bytes32",
171
- "name": "_key",
172
- "type": "bytes32"
173
- },
174
- {
175
- "indexed": false,
176
- "internalType": "bytes32",
177
- "name": "_value",
178
- "type": "bytes32"
179
- }
180
- ],
181
- "name": "ConfigValueAddedToSet",
182
- "type": "event"
183
- },
184
- {
185
- "anonymous": false,
186
- "inputs": [
187
- {
188
- "indexed": true,
189
- "internalType": "uint256",
190
- "name": "_projectId",
191
- "type": "uint256"
192
- },
193
- {
194
- "indexed": true,
195
- "internalType": "address",
196
- "name": "_coreContract",
197
- "type": "address"
198
- },
199
- {
200
- "indexed": false,
201
- "internalType": "bytes32",
202
- "name": "_key",
203
- "type": "bytes32"
204
- },
205
- {
206
- "indexed": false,
207
- "internalType": "uint256",
208
- "name": "_value",
209
- "type": "uint256"
210
- }
211
- ],
212
- "name": "ConfigValueRemovedFromSet",
213
- "type": "event"
214
- },
215
- {
216
- "anonymous": false,
217
- "inputs": [
218
- {
219
- "indexed": true,
220
- "internalType": "uint256",
221
- "name": "_projectId",
222
- "type": "uint256"
223
- },
224
- {
225
- "indexed": true,
226
- "internalType": "address",
227
- "name": "_coreContract",
228
- "type": "address"
229
- },
230
- {
231
- "indexed": false,
232
- "internalType": "bytes32",
233
- "name": "_key",
234
- "type": "bytes32"
235
- },
236
- {
237
- "indexed": false,
238
- "internalType": "address",
239
- "name": "_value",
240
- "type": "address"
241
- }
242
- ],
243
- "name": "ConfigValueRemovedFromSet",
244
- "type": "event"
245
- },
246
- {
247
- "anonymous": false,
248
- "inputs": [
249
- {
250
- "indexed": true,
251
- "internalType": "uint256",
252
- "name": "_projectId",
253
- "type": "uint256"
254
- },
255
- {
256
- "indexed": true,
257
- "internalType": "address",
258
- "name": "_coreContract",
259
- "type": "address"
260
- },
261
- {
262
- "indexed": false,
263
- "internalType": "bytes32",
264
- "name": "_key",
265
- "type": "bytes32"
266
- },
267
- {
268
- "indexed": false,
269
- "internalType": "bytes32",
270
- "name": "_value",
271
- "type": "bytes32"
272
- }
273
- ],
274
- "name": "ConfigValueRemovedFromSet",
275
- "type": "event"
276
- },
277
- {
278
- "anonymous": false,
279
- "inputs": [
280
- {
281
- "indexed": true,
282
- "internalType": "uint256",
283
- "name": "_projectId",
284
- "type": "uint256"
285
- },
286
- {
287
- "indexed": true,
288
- "internalType": "address",
289
- "name": "_coreContract",
290
- "type": "address"
291
- },
292
- {
293
- "indexed": false,
294
- "internalType": "bytes32",
295
- "name": "_key",
296
- "type": "bytes32"
297
- },
298
- {
299
- "indexed": false,
300
- "internalType": "bool",
301
- "name": "_value",
302
- "type": "bool"
303
- }
304
- ],
305
- "name": "ConfigValueSet",
306
- "type": "event"
307
- },
308
- {
309
- "anonymous": false,
310
- "inputs": [
311
- {
312
- "indexed": true,
313
- "internalType": "uint256",
314
- "name": "_projectId",
315
- "type": "uint256"
316
- },
317
- {
318
- "indexed": true,
319
- "internalType": "address",
320
- "name": "_coreContract",
321
- "type": "address"
322
- },
323
- {
324
- "indexed": false,
325
- "internalType": "bytes32",
326
- "name": "_key",
327
- "type": "bytes32"
328
- },
329
- {
330
- "indexed": false,
331
- "internalType": "uint256",
332
- "name": "_value",
333
- "type": "uint256"
334
- }
335
- ],
336
- "name": "ConfigValueSet",
337
- "type": "event"
338
- },
339
- {
340
- "anonymous": false,
341
- "inputs": [
342
- {
343
- "indexed": true,
344
- "internalType": "uint256",
345
- "name": "_projectId",
346
- "type": "uint256"
347
- },
348
- {
349
- "indexed": true,
350
- "internalType": "address",
351
- "name": "_coreContract",
352
- "type": "address"
353
- },
354
- {
355
- "indexed": false,
356
- "internalType": "bytes32",
357
- "name": "_key",
358
- "type": "bytes32"
359
- },
360
- {
361
- "indexed": false,
362
- "internalType": "address",
363
- "name": "_value",
364
- "type": "address"
365
- }
366
- ],
367
- "name": "ConfigValueSet",
368
- "type": "event"
369
- },
370
- {
371
- "anonymous": false,
372
- "inputs": [
373
- {
374
- "indexed": true,
375
- "internalType": "uint256",
376
- "name": "_projectId",
377
- "type": "uint256"
378
- },
379
- {
380
- "indexed": true,
381
- "internalType": "address",
382
- "name": "_coreContract",
383
- "type": "address"
384
- },
385
- {
386
- "indexed": false,
387
- "internalType": "bytes32",
388
- "name": "_key",
389
- "type": "bytes32"
390
- },
391
- {
392
- "indexed": false,
393
- "internalType": "bytes32",
394
- "name": "_value",
395
- "type": "bytes32"
396
- }
397
- ],
398
- "name": "ConfigValueSet",
399
- "type": "event"
400
- },
401
- {
402
- "anonymous": false,
403
- "inputs": [
404
- {
405
- "indexed": false,
406
- "internalType": "address",
407
- "name": "delegationRegistry",
408
- "type": "address"
409
- }
410
- ],
411
- "name": "DelegationRegistryUpdated",
412
- "type": "event"
413
- },
414
- {
415
- "anonymous": false,
416
- "inputs": [
417
- {
418
- "indexed": true,
419
- "internalType": "uint256",
420
- "name": "_projectId",
421
- "type": "uint256"
422
- },
423
- {
424
- "indexed": true,
425
- "internalType": "address",
426
- "name": "_coreContract",
427
- "type": "address"
428
- },
429
- {
430
- "indexed": true,
431
- "internalType": "uint256",
432
- "name": "_pricePerTokenInWei",
433
- "type": "uint256"
434
- }
435
- ],
436
- "name": "PricePerTokenInWeiUpdated",
437
- "type": "event"
438
- },
439
- {
440
- "anonymous": false,
441
- "inputs": [
442
- {
443
- "indexed": true,
444
- "internalType": "uint256",
445
- "name": "_projectId",
446
- "type": "uint256"
447
- },
448
- {
449
- "indexed": true,
450
- "internalType": "address",
451
- "name": "_coreContract",
452
- "type": "address"
453
- },
454
- {
455
- "indexed": true,
456
- "internalType": "address",
457
- "name": "_currencyAddress",
458
- "type": "address"
459
- },
460
- {
461
- "indexed": false,
462
- "internalType": "string",
463
- "name": "_currencySymbol",
464
- "type": "string"
465
- }
466
- ],
467
- "name": "ProjectCurrencyInfoUpdated",
468
- "type": "event"
469
- },
470
- {
471
- "anonymous": false,
472
- "inputs": [
473
- {
474
- "indexed": true,
475
- "internalType": "uint256",
476
- "name": "_projectId",
477
- "type": "uint256"
478
- },
479
- {
480
- "indexed": true,
481
- "internalType": "address",
482
- "name": "_coreContract",
483
- "type": "address"
484
- },
485
- {
486
- "indexed": false,
487
- "internalType": "uint256",
488
- "name": "_maxInvocations",
489
- "type": "uint256"
490
- }
491
- ],
492
- "name": "ProjectMaxInvocationsLimitUpdated",
493
- "type": "event"
494
- },
495
- {
496
- "anonymous": false,
497
- "inputs": [
498
- {
499
- "indexed": true,
500
- "internalType": "uint256",
501
- "name": "_projectId",
502
- "type": "uint256"
503
- },
504
- {
505
- "indexed": true,
506
- "internalType": "address",
507
- "name": "_coreContract",
508
- "type": "address"
509
- },
510
- {
511
- "indexed": false,
512
- "internalType": "address[]",
513
- "name": "_ownedNFTAddresses",
514
- "type": "address[]"
515
- },
516
- {
517
- "indexed": false,
518
- "internalType": "uint256[]",
519
- "name": "_ownedNFTProjectIds",
520
- "type": "uint256[]"
521
- }
522
- ],
523
- "name": "RemovedHoldersOfProjects",
524
- "type": "event"
525
- },
526
- {
527
- "anonymous": false,
528
- "inputs": [
529
- {
530
- "indexed": true,
531
- "internalType": "uint256",
532
- "name": "_projectId",
533
- "type": "uint256"
534
- },
535
- {
536
- "indexed": true,
537
- "internalType": "address",
538
- "name": "_coreContract",
539
- "type": "address"
540
- }
541
- ],
542
- "name": "ResetAuctionDetails",
543
- "type": "event"
544
- },
545
- {
546
- "anonymous": false,
547
- "inputs": [
548
- {
549
- "indexed": true,
550
- "internalType": "uint256",
551
- "name": "_projectId",
552
- "type": "uint256"
553
- },
554
- {
555
- "indexed": true,
556
- "internalType": "address",
557
- "name": "_coreContract",
558
- "type": "address"
559
- },
560
- {
561
- "indexed": false,
562
- "internalType": "uint40",
563
- "name": "_auctionTimestampStart",
564
- "type": "uint40"
565
- },
566
- {
567
- "indexed": false,
568
- "internalType": "uint40",
569
- "name": "_priceDecayHalfLifeSeconds",
570
- "type": "uint40"
571
- },
572
- {
573
- "indexed": false,
574
- "internalType": "uint256",
575
- "name": "_startPrice",
576
- "type": "uint256"
577
- },
578
- {
579
- "indexed": false,
580
- "internalType": "uint256",
581
- "name": "_basePrice",
582
- "type": "uint256"
583
- }
584
- ],
585
- "name": "SetAuctionDetailsExp",
586
- "type": "event"
587
- },
588
- {
589
- "inputs": [
590
- {
591
- "internalType": "uint256",
592
- "name": "_projectId",
593
- "type": "uint256"
594
- },
595
- {
596
- "internalType": "address",
597
- "name": "_coreContract",
598
- "type": "address"
599
43
  },
600
44
  {
601
45
  "internalType": "address[]",
602
- "name": "_ownedNFTAddressesAdd",
46
+ "name": "ownedNFTAddressesRemove",
603
47
  "type": "address[]"
604
48
  },
605
49
  {
606
50
  "internalType": "uint256[]",
607
- "name": "_ownedNFTProjectIdsAdd",
608
- "type": "uint256[]"
609
- },
610
- {
611
- "internalType": "address[]",
612
- "name": "_ownedNFTAddressesRemove",
613
- "type": "address[]"
614
- },
615
- {
616
- "internalType": "uint256[]",
617
- "name": "_ownedNFTProjectIdsRemove",
51
+ "name": "ownedNFTProjectIdsRemove",
618
52
  "type": "uint256[]"
619
53
  }
620
54
  ],
@@ -627,22 +61,22 @@
627
61
  "inputs": [
628
62
  {
629
63
  "internalType": "uint256",
630
- "name": "_projectId",
64
+ "name": "projectId",
631
65
  "type": "uint256"
632
66
  },
633
67
  {
634
68
  "internalType": "address",
635
- "name": "_coreContract",
69
+ "name": "coreContract",
636
70
  "type": "address"
637
71
  },
638
72
  {
639
73
  "internalType": "address[]",
640
- "name": "_ownedNFTAddresses",
74
+ "name": "ownedNFTAddresses",
641
75
  "type": "address[]"
642
76
  },
643
77
  {
644
78
  "internalType": "uint256[]",
645
- "name": "_ownedNFTProjectIds",
79
+ "name": "ownedNFTProjectIds",
646
80
  "type": "uint256[]"
647
81
  }
648
82
  ],
@@ -655,22 +89,22 @@
655
89
  "inputs": [
656
90
  {
657
91
  "internalType": "uint256",
658
- "name": "_projectId",
92
+ "name": "projectId",
659
93
  "type": "uint256"
660
94
  },
661
95
  {
662
96
  "internalType": "address",
663
- "name": "_coreContract",
97
+ "name": "coreContract",
664
98
  "type": "address"
665
99
  },
666
100
  {
667
101
  "internalType": "address",
668
- "name": "_ownedNFTAddress",
102
+ "name": "ownedNFTAddress",
669
103
  "type": "address"
670
104
  },
671
105
  {
672
106
  "internalType": "uint256",
673
- "name": "_ownedNFTProjectId",
107
+ "name": "ownedNFTProjectId",
674
108
  "type": "uint256"
675
109
  }
676
110
  ],
@@ -702,12 +136,12 @@
702
136
  "inputs": [
703
137
  {
704
138
  "internalType": "uint256",
705
- "name": "_projectId",
139
+ "name": "projectId",
706
140
  "type": "uint256"
707
141
  },
708
142
  {
709
143
  "internalType": "address",
710
- "name": "_coreContract",
144
+ "name": "coreContract",
711
145
  "type": "address"
712
146
  }
713
147
  ],
@@ -741,22 +175,22 @@
741
175
  "inputs": [
742
176
  {
743
177
  "internalType": "uint256",
744
- "name": "_projectId",
178
+ "name": "projectId",
745
179
  "type": "uint256"
746
180
  },
747
181
  {
748
182
  "internalType": "address",
749
- "name": "_coreContract",
183
+ "name": "coreContract",
750
184
  "type": "address"
751
185
  },
752
186
  {
753
187
  "internalType": "address",
754
- "name": "_ownedNFTAddress",
188
+ "name": "ownedNFTAddress",
755
189
  "type": "address"
756
190
  },
757
191
  {
758
192
  "internalType": "uint256",
759
- "name": "_ownedNFTTokenId",
193
+ "name": "ownedNFTTokenId",
760
194
  "type": "uint256"
761
195
  }
762
196
  ],
@@ -775,7 +209,7 @@
775
209
  "inputs": [
776
210
  {
777
211
  "internalType": "address",
778
- "name": "_coreContract",
212
+ "name": "coreContract",
779
213
  "type": "address"
780
214
  }
781
215
  ],
@@ -794,17 +228,17 @@
794
228
  "inputs": [
795
229
  {
796
230
  "internalType": "uint256",
797
- "name": "_projectId",
231
+ "name": "projectId",
798
232
  "type": "uint256"
799
233
  },
800
234
  {
801
235
  "internalType": "address",
802
- "name": "_coreContract",
236
+ "name": "coreContract",
803
237
  "type": "address"
804
238
  },
805
239
  {
806
240
  "internalType": "uint24",
807
- "name": "_maxInvocations",
241
+ "name": "maxInvocations",
808
242
  "type": "uint24"
809
243
  }
810
244
  ],
@@ -817,12 +251,12 @@
817
251
  "inputs": [
818
252
  {
819
253
  "internalType": "uint256",
820
- "name": "_projectId",
254
+ "name": "projectId",
821
255
  "type": "uint256"
822
256
  },
823
257
  {
824
258
  "internalType": "address",
825
- "name": "_coreContract",
259
+ "name": "coreContract",
826
260
  "type": "address"
827
261
  }
828
262
  ],
@@ -905,12 +339,12 @@
905
339
  "inputs": [
906
340
  {
907
341
  "internalType": "uint256",
908
- "name": "_projectId",
342
+ "name": "projectId",
909
343
  "type": "uint256"
910
344
  },
911
345
  {
912
346
  "internalType": "address",
913
- "name": "_coreContract",
347
+ "name": "coreContract",
914
348
  "type": "address"
915
349
  }
916
350
  ],
@@ -944,12 +378,12 @@
944
378
  "inputs": [
945
379
  {
946
380
  "internalType": "uint256",
947
- "name": "_projectId",
381
+ "name": "projectId",
948
382
  "type": "uint256"
949
383
  },
950
384
  {
951
385
  "internalType": "address",
952
- "name": "_coreContract",
386
+ "name": "coreContract",
953
387
  "type": "address"
954
388
  }
955
389
  ],
@@ -968,12 +402,12 @@
968
402
  "inputs": [
969
403
  {
970
404
  "internalType": "uint256",
971
- "name": "_projectId",
405
+ "name": "projectId",
972
406
  "type": "uint256"
973
407
  },
974
408
  {
975
409
  "internalType": "address",
976
- "name": "_coreContract",
410
+ "name": "coreContract",
977
411
  "type": "address"
978
412
  }
979
413
  ],
@@ -992,22 +426,22 @@
992
426
  "inputs": [
993
427
  {
994
428
  "internalType": "uint256",
995
- "name": "_projectId",
429
+ "name": "projectId",
996
430
  "type": "uint256"
997
431
  },
998
432
  {
999
433
  "internalType": "address",
1000
- "name": "_coreContract",
434
+ "name": "coreContract",
1001
435
  "type": "address"
1002
436
  },
1003
437
  {
1004
438
  "internalType": "address",
1005
- "name": "_ownedNFTAddress",
439
+ "name": "ownedNFTAddress",
1006
440
  "type": "address"
1007
441
  },
1008
442
  {
1009
443
  "internalType": "uint256",
1010
- "name": "_ownedNFTTokenId",
444
+ "name": "ownedNFTTokenId",
1011
445
  "type": "uint256"
1012
446
  }
1013
447
  ],
@@ -1026,32 +460,32 @@
1026
460
  "inputs": [
1027
461
  {
1028
462
  "internalType": "address",
1029
- "name": "_to",
463
+ "name": "to",
1030
464
  "type": "address"
1031
465
  },
1032
466
  {
1033
467
  "internalType": "uint256",
1034
- "name": "_projectId",
468
+ "name": "projectId",
1035
469
  "type": "uint256"
1036
470
  },
1037
471
  {
1038
472
  "internalType": "address",
1039
- "name": "_coreContract",
473
+ "name": "coreContract",
1040
474
  "type": "address"
1041
475
  },
1042
476
  {
1043
477
  "internalType": "address",
1044
- "name": "_ownedNFTAddress",
478
+ "name": "ownedNFTAddress",
1045
479
  "type": "address"
1046
480
  },
1047
481
  {
1048
482
  "internalType": "uint256",
1049
- "name": "_ownedNFTTokenId",
483
+ "name": "ownedNFTTokenId",
1050
484
  "type": "uint256"
1051
485
  },
1052
486
  {
1053
487
  "internalType": "address",
1054
- "name": "_vault",
488
+ "name": "vault",
1055
489
  "type": "address"
1056
490
  }
1057
491
  ],
@@ -1070,27 +504,27 @@
1070
504
  "inputs": [
1071
505
  {
1072
506
  "internalType": "address",
1073
- "name": "_to",
507
+ "name": "to",
1074
508
  "type": "address"
1075
509
  },
1076
510
  {
1077
511
  "internalType": "uint256",
1078
- "name": "_projectId",
512
+ "name": "projectId",
1079
513
  "type": "uint256"
1080
514
  },
1081
515
  {
1082
516
  "internalType": "address",
1083
- "name": "_coreContract",
517
+ "name": "coreContract",
1084
518
  "type": "address"
1085
519
  },
1086
520
  {
1087
521
  "internalType": "address",
1088
- "name": "_ownedNFTAddress",
522
+ "name": "ownedNFTAddress",
1089
523
  "type": "address"
1090
524
  },
1091
525
  {
1092
526
  "internalType": "uint256",
1093
- "name": "_ownedNFTTokenId",
527
+ "name": "ownedNFTTokenId",
1094
528
  "type": "uint256"
1095
529
  }
1096
530
  ],
@@ -1109,22 +543,22 @@
1109
543
  "inputs": [
1110
544
  {
1111
545
  "internalType": "uint256",
1112
- "name": "_projectId",
546
+ "name": "projectId",
1113
547
  "type": "uint256"
1114
548
  },
1115
549
  {
1116
550
  "internalType": "address",
1117
- "name": "_coreContract",
551
+ "name": "coreContract",
1118
552
  "type": "address"
1119
553
  },
1120
554
  {
1121
555
  "internalType": "address[]",
1122
- "name": "_ownedNFTAddresses",
556
+ "name": "ownedNFTAddresses",
1123
557
  "type": "address[]"
1124
558
  },
1125
559
  {
1126
560
  "internalType": "uint256[]",
1127
- "name": "_ownedNFTProjectIds",
561
+ "name": "ownedNFTProjectIds",
1128
562
  "type": "uint256[]"
1129
563
  }
1130
564
  ],
@@ -1137,12 +571,12 @@
1137
571
  "inputs": [
1138
572
  {
1139
573
  "internalType": "uint256",
1140
- "name": "_projectId",
574
+ "name": "projectId",
1141
575
  "type": "uint256"
1142
576
  },
1143
577
  {
1144
578
  "internalType": "address",
1145
- "name": "_coreContract",
579
+ "name": "coreContract",
1146
580
  "type": "address"
1147
581
  }
1148
582
  ],
@@ -1155,32 +589,32 @@
1155
589
  "inputs": [
1156
590
  {
1157
591
  "internalType": "uint256",
1158
- "name": "_projectId",
592
+ "name": "projectId",
1159
593
  "type": "uint256"
1160
594
  },
1161
595
  {
1162
596
  "internalType": "address",
1163
- "name": "_coreContract",
597
+ "name": "coreContract",
1164
598
  "type": "address"
1165
599
  },
1166
600
  {
1167
601
  "internalType": "uint40",
1168
- "name": "_auctionTimestampStart",
602
+ "name": "auctionTimestampStart",
1169
603
  "type": "uint40"
1170
604
  },
1171
605
  {
1172
606
  "internalType": "uint40",
1173
- "name": "_priceDecayHalfLifeSeconds",
607
+ "name": "priceDecayHalfLifeSeconds",
1174
608
  "type": "uint40"
1175
609
  },
1176
610
  {
1177
611
  "internalType": "uint256",
1178
- "name": "_startPrice",
612
+ "name": "startPrice",
1179
613
  "type": "uint256"
1180
614
  },
1181
615
  {
1182
616
  "internalType": "uint256",
1183
- "name": "_basePrice",
617
+ "name": "basePrice",
1184
618
  "type": "uint256"
1185
619
  }
1186
620
  ],
@@ -1193,7 +627,7 @@
1193
627
  "inputs": [
1194
628
  {
1195
629
  "internalType": "uint256",
1196
- "name": "_minimumPriceDecayHalfLifeSeconds",
630
+ "name": "minimumPriceDecayHalfLifeSeconds_",
1197
631
  "type": "uint256"
1198
632
  }
1199
633
  ],
@@ -1206,12 +640,12 @@
1206
640
  "inputs": [
1207
641
  {
1208
642
  "internalType": "uint256",
1209
- "name": "_projectId",
643
+ "name": "projectId",
1210
644
  "type": "uint256"
1211
645
  },
1212
646
  {
1213
647
  "internalType": "address",
1214
- "name": "_coreContract",
648
+ "name": "coreContract",
1215
649
  "type": "address"
1216
650
  }
1217
651
  ],
@@ -1221,8 +655,8 @@
1221
655
  "type": "function"
1222
656
  }
1223
657
  ],
1224
- "bytecode": "0x610100604052602d6001553480156200001757600080fd5b5060405162002c2538038062002c258339810160408190526200003a91620000f2565b60016000556001600160a01b03828116608081905260a052811660c081905260e08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a17fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b600154604051620000c591815260200190565b60405180910390a150506200012a565b80516001600160a01b0381168114620000ed57600080fd5b919050565b600080604083850312156200010657600080fd5b6200011183620000d5565b91506200012160208401620000d5565b90509250929050565b60805160a05160c05160e051612aba6200016b6000396000610885015260006103280152600061097a0152600081816104390152610c500152612aba6000f3fe60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806339b87cf8146101985780634869f3df146101b85780637fbbc005146101d85780638a605b51146101eb57806395c575fa1461020b5780639a94488a1461022b5780639d923dff146102c3578063b000e334146102d6578063b3fe4723146102f6578063bf5bf5f814610316578063cce7c90914610362578063cf6681ea14610382578063d3ddabe614610398578063d9bffbce146103d7578063d9eb16db146103f7578063dd85582f14610427578063e9d1e8ac1461045b578063f7f5e9d01461049a578063fca23f4e146104ba578063fdca4cb814610514578063fea1d7b414610534575b600080fd5b34801561012c57600080fd5b5061014061013b366004612150565b6105b4565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b506101756101703660046122a5565b6105f5565b005b61018a61018536600461236a565b6106c0565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b33660046123da565b610a41565b3480156101c457600080fd5b5061018a6101d3366004612422565b610a78565b61018a6101e63660046123da565b610ab0565b3480156101f757600080fd5b50610175610206366004612452565b610ac1565b34801561021757600080fd5b50610175610226366004612422565b610b44565b34801561023757600080fd5b506102a1610246366004612422565b6040805180820190915260008082526020820152506001600160a01b031660009081526004602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a6102d13660046124d1565b610ba8565b3480156102e257600080fd5b506101756102f136600461252c565b610bc3565b34801561030257600080fd5b50610175610311366004612576565b610c4b565b34801561032257600080fd5b5061034a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561036e57600080fd5b5061014061037d366004612422565b610d09565b34801561038e57600080fd5b5061018a60015481565b3480156103a457600080fd5b506103ca60405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906125df565b3480156103e357600080fd5b506101756103f2366004612422565b610d35565b34801561040357600080fd5b50610417610412366004612422565b610dae565b60405161014c94939291906125f2565b34801561043357600080fd5b5061034a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561046757600080fd5b506103ca604051806040016040528060138152602001724d696e7465724441457870486f6c646572563560681b81525081565b3480156104a657600080fd5b506101756104b5366004612452565b610e5a565b3480156104c657600080fd5b506101406104d53660046123da565b6001600160a01b039283166000908152600560209081526040808320968352958152858220939094168152918352838220908252909152205460ff1690565b34801561052057600080fd5b5061017561052f366004612641565b610ecf565b34801561054057600080fd5b506105a461054f366004612422565b6001600160a01b03166000908152600360209081526040808320938352929052205464ffffffffff80821692600160281b8304909116916001600160581b03600160501b8204811692600160a81b9092041690565b60405161014c94939291906126a2565b6001600160a01b03811660009081526002602052604081208054610100900460ff16156105e5575460ff1692915050565b6105ee83611026565b9392505050565b61060086863361115e565b6001600160a01b0385166000908152600560209081526040808320898452909152902061063090858585856111a8565b846001600160a01b0316867fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82868660405161066c9291906126c9565b60405180910390a3846001600160a01b0316867f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced0984846040516106b09291906126c9565b60405180910390a3505050505050565b60006002600054036107195760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081556001600160a01b0386168082526004602090815260408084208a85528252808420928452600382528084208a8552909152909120815460ff16156107765760405162461bcd60e51b81526004016107109061274d565b6000610781826111c5565b9050803410156107cc5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610710565b6001600160a01b03881660009081526005602090815260408083208c845290915290206107fa908888611300565b61083e5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610710565b336001600160a01b0386161561094657604051631574d39f60e31b81523360048201526001600160a01b0387811660248301528a81166044830152606482018990526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f2919061278e565b9050806109415760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610710565b869150505b6040516117cd60e21b81526001600160a01b038c81166004830152602482018c90528a8116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156109c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e591906127a9565b94506109f1858561133e565b6109fc88888361138d565b6001600160a01b0389166000908152600260205260408120610a1f908b90611450565b9050610a2d8b848c84611482565b505050505060016000559695505050505050565b6001600160a01b03831660009081526005602090815260408083208784529091528120610a6f908484611300565b95945050505050565b6001600160a01b0381166000908152600460209081526040808320858452909152812054610100900462ffffff165b90505b92915050565b6000610a6f338686868660006106c0565b610acc84843361115e565b6001600160a01b03831660009081526005602090815260408083208784529091529020610afa908383611539565b826001600160a01b0316847fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828484604051610b369291906126c9565b60405180910390a350505050565b610b57813330634ae2bafd60e11b6115fc565b6001600160a01b03811660008181526003602090815260408083208684529091528082208290555184917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8091a35050565b6000610bb9868686868660006106c0565b9695505050505050565b610bce83833361115e565b6001600160a01b03821660009081526004602090815260408083208684529091529020610c0090849084908490611651565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906020015b60405180910390a3505050565b610c7e7f0000000000000000000000000000000000000000000000000000000000000000333063b3fe472360e01b6116d8565b60008111610cce5760405162461bcd60e51b815260206004820152601d60248201527f48616c66206c696665206f66207a65726f206e6f7420616c6c6f7765640000006044820152606401610710565b60018190556040518181527fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b9060200160405180910390a150565b6001600160a01b038116600090815260046020908152604080832085845290915281205460ff16610aa7565b610d4082823361115e565b6001600160a01b03811660009081526004602090815260408083208584529091528120610d70908490849061172d565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610c3e91815260200190565b6001600160a01b038116600090815260036020908152604080832085845290915281208054600160501b90046001600160581b031615159190606090829084610dfa5760009350610e2e565b805464ffffffffff164211610e22578054600160501b90046001600160581b03169350610e2e565b610e2b816111c5565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610e6584843361115e565b6001600160a01b03831660009081526005602090815260408083208784529091529020610e939083836117d2565b826001600160a01b0316847f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098484604051610b369291906126c9565b610eda86863361115e565b6001600160a01b03851660008181526003602090815260408083208a84528252808320938352600482528083208a8452909152902060015464ffffffffff86161015610f8e5760405162461bcd60e51b815260206004820152603e60248201527f50726963652064656361792068616c66206c696665206d75737420626520677260448201527f6561746572207468616e206d696e20616c6c6f7761626c652076616c756500006064820152608401610710565b6000610f9b825460ff1690565b9050610fbb838888610fac89611895565b610fb589611895565b86611901565b876001600160a01b0316897f7fbd78481800c1705ba89e4be2e8c979412fb121f7f3cbace9d7f5c3dd85c44e89898989604051610ffb94939291906126a2565b60405180910390a361100c82611a9e565b1561101b5761101b8989610d35565b505050505050505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b038616906110889085906127c2565b600060405180830381855afa9150503d80600081146110c3576040519150601f19603f3d011682016040523d82523d6000602084013e6110c8565b606091505b5091509150816110ea5760405162461bcd60e51b8152600401610710906127de565b805160c08190036111015750600095945050505050565b80610100036111165750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610710565b611169838383611abe565b6111a35760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610710565b505050565b6111b3858585611539565b6111be8583836117d2565b5050505050565b805460009064ffffffffff80821691600160281b810490911690600160a81b90046001600160581b03164283106112385760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b6044820152606401610710565b600082116112835760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b6044820152606401610710565b8454600160501b90046001600160581b0316428490038381816112a8576112a8612823565b0482901c91506002848583816112c0576112c0612823565b068402816112d0576112d0612823565b04816112de576112de612823565b0482039150828210156112f657509095945050505050565b5095945050505050565b600080611310620f42408461284f565b6001600160a01b038516600090815260208781526040808320938352929052205460ff169150509392505050565b8054620f4240830660010190610100900462ffffff16808211156113745760405162461bcd60e51b81526004016107109061274d565b80820361138757825460ff191660011783555b50505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa1580156113d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f99190612871565b9050816001600160a01b0316816001600160a01b0316146113875760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610710565b8054600090610100900460ff161561146d5750805460ff16610aaa565b60006114798484611b47565b9150610aaa9050565b341561138757600080611495853461288e565b905080156115255760405133908290600081818185875af1925050503d80600081146114dd576040519150601f19603f3d011682016040523d82523d6000602084013e6114e2565b606091505b505080925050816115255760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610710565b61153186868686611c57565b505050505050565b805182511461155a5760405162461bcd60e51b8152600401610710906128a1565b60005b8251811015611387576001846000016000858481518110611580576115806128e2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008484815181106115bc576115bc6128e2565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115f4906128f8565b91505061155d565b61160884848484612022565b6113875760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610710565b60008061165e86866120aa565b91509150808462ffffff1611156116875760405162461bcd60e51b815260040161071090612911565b818462ffffff1610156116ac5760405162461bcd60e51b815260040161071090612911565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b6116e484848484612022565b6113875760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b6044820152606401610710565b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b815260040161176091815260200190565b60c060405180830381865afa15801561177d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a19190612942565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b80518251146117f35760405162461bcd60e51b8152600401610710906128a1565b60005b8251811015611387576000846000016000858481518110611819576118196128e2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611855576118556128e2565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061188d906128f8565b9150506117f6565b60006001600160581b038211156118fd5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b6064820152608401610710565b5090565b855464ffffffffff16158061191d5750855464ffffffffff1642105b806119255750805b6119705760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b6044820152606401610710565b8464ffffffffff1642106119bd5760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b6044820152606401610710565b816001600160581b0316836001600160581b031611611a415760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b6064820152608401610710565b50845464ffffffffff9485166001600160501b031990911617600160281b9390941692909202929092176001600160501b0316600160501b6001600160581b03938416026001600160a81b031617600160a81b9190921602179055565b8054600090610100900462ffffff16158015610aaa5750505460ff161590565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a9190612871565b6001600160a01b0316826001600160a01b03161490509392505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03871690611ba99085906127c2565b6000604051808303816000865af19150503d8060008114611be6576040519150601f19603f3d011682016040523d82523d6000602084013e611beb565b606091505b509150915081611c0d5760405162461bcd60e51b8152600401610710906127de565b805160c0819003611c33575050835461ffff19166101001784555060009150610aaa9050565b8061010003611116575050835461ffff19166101011784555060019150610aaa9050565b82156113875760008060008060008060008715611da857604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce491906129a1565b969e50949c50909a50985091965091945090925090508115611da1576040516001600160a01b038216908390600081818185875af1925050503d8060008114611d49576040519150601f19603f3d011682016040523d82523d6000602084013e611d4e565b606091505b50508099505088611da15760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610710565b5050611e28565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612a29565b949a509298509096509450925090505b8515611ecf576040516001600160a01b038616908790600081818185875af1925050503d8060008114611e77576040519150601f19603f3d011682016040523d82523d6000602084013e611e7c565b606091505b50508097505086611ecf5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610710565b8315611f6e576040516001600160a01b038416908590600081818185875af1925050503d8060008114611f1e576040519150601f19603f3d011682016040523d82523d6000602084013e611f23565b606091505b50508097505086611f6e5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610710565b8115612015576040516001600160a01b038216908390600081818185875af1925050503d8060008114611fbd576040519150601f19603f3d011682016040523d82523d6000602084013e611fc2565b606091505b505080975050866120155760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610710565b5050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015612086573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6f919061278e565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa1580156120f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121189190612942565b5093989297509195505050505050565b6001600160a01b038116811461213d57600080fd5b50565b803561214b81612128565b919050565b60006020828403121561216257600080fd5b81356105ee81612128565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156121ab576121ab61216d565b604052919050565b60006001600160401b038211156121cc576121cc61216d565b5060051b60200190565b600082601f8301126121e757600080fd5b813560206121fc6121f7836121b3565b612183565b82815260059290921b8401810191818101908684111561221b57600080fd5b8286015b8481101561223f57803561223281612128565b835291830191830161221f565b509695505050505050565b600082601f83011261225b57600080fd5b8135602061226b6121f7836121b3565b82815260059290921b8401810191818101908684111561228a57600080fd5b8286015b8481101561223f578035835291830191830161228e565b60008060008060008060c087890312156122be57600080fd5b863595506122ce60208801612140565b945060408701356001600160401b03808211156122ea57600080fd5b6122f68a838b016121d6565b9550606089013591508082111561230c57600080fd5b6123188a838b0161224a565b9450608089013591508082111561232e57600080fd5b61233a8a838b016121d6565b935060a089013591508082111561235057600080fd5b5061235d89828a0161224a565b9150509295509295509295565b60008060008060008060c0878903121561238357600080fd5b863561238e81612128565b95506020870135945060408701356123a581612128565b935060608701356123b581612128565b92506080870135915060a08701356123cc81612128565b809150509295509295509295565b600080600080608085870312156123f057600080fd5b84359350602085013561240281612128565b9250604085013561241281612128565b9396929550929360600135925050565b6000806040838503121561243557600080fd5b82359150602083013561244781612128565b809150509250929050565b6000806000806080858703121561246857600080fd5b84359350602085013561247a81612128565b925060408501356001600160401b038082111561249657600080fd5b6124a2888389016121d6565b935060608701359150808211156124b857600080fd5b506124c58782880161224a565b91505092959194509250565b600080600080600060a086880312156124e957600080fd5b85356124f481612128565b945060208601359350604086013561250b81612128565b9250606086013561251b81612128565b949793965091946080013592915050565b60008060006060848603121561254157600080fd5b83359250602084013561255381612128565b9150604084013562ffffff8116811461256b57600080fd5b809150509250925092565b60006020828403121561258857600080fd5b5035919050565b60005b838110156125aa578181015183820152602001612592565b50506000910152565b600081518084526125cb81602086016020860161258f565b601f01601f19169290920160200192915050565b602081526000610aa760208301846125b3565b841515815283602082015260806040820152600061261360808301856125b3565b905060018060a01b038316606083015295945050505050565b803564ffffffffff8116811461214b57600080fd5b60008060008060008060c0878903121561265a57600080fd5b86359550602087013561266c81612128565b945061267a6040880161262c565b93506126886060880161262c565b92506080870135915060a087013590509295509295509295565b64ffffffffff94851681529290931660208301526040820152606081019190915260800190565b604080825283519082018190526000906020906060840190828701845b8281101561270b5781516001600160a01b0316845292840192908401906001016126e6565b5050508381038285015284518082528583019183019060005b8181101561274057835183529284019291840191600101612724565b5090979650505050505050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b8051801515811461214b57600080fd5b6000602082840312156127a057600080fd5b610aa78261277e565b6000602082840312156127bb57600080fd5b5051919050565b600082516127d481846020870161258f565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008261286c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561288357600080fd5b81516105ee81612128565b81810381811115610aaa57610aaa612839565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161290a5761290a612839565b5060010190565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b60008060008060008060c0878903121561295b57600080fd5b86519550602087015194506129726040880161277e565b93506129806060880161277e565b92506080870151915061299560a0880161277e565b90509295509295509295565b600080600080600080600080610100898b0312156129be57600080fd5b8851975060208901516129d081612128565b60408a015160608b015191985096506129e881612128565b60808a015160a08b01519196509450612a0081612128565b60c08a015160e08b01519194509250612a1881612128565b809150509295985092959890939650565b60008060008060008060c08789031215612a4257600080fd5b865195506020870151612a5481612128565b604088015160608901519196509450612a6c81612128565b608088015160a089015191945092506123cc8161212856fea2646970667358221220130f5f5b0b6709c0e5b4dc89e36a629340c2076d55cbf5863e0464b8b83117a464736f6c63430008130033",
1225
- "deployedBytecode": "0x60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806339b87cf8146101985780634869f3df146101b85780637fbbc005146101d85780638a605b51146101eb57806395c575fa1461020b5780639a94488a1461022b5780639d923dff146102c3578063b000e334146102d6578063b3fe4723146102f6578063bf5bf5f814610316578063cce7c90914610362578063cf6681ea14610382578063d3ddabe614610398578063d9bffbce146103d7578063d9eb16db146103f7578063dd85582f14610427578063e9d1e8ac1461045b578063f7f5e9d01461049a578063fca23f4e146104ba578063fdca4cb814610514578063fea1d7b414610534575b600080fd5b34801561012c57600080fd5b5061014061013b366004612150565b6105b4565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b506101756101703660046122a5565b6105f5565b005b61018a61018536600461236a565b6106c0565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b33660046123da565b610a41565b3480156101c457600080fd5b5061018a6101d3366004612422565b610a78565b61018a6101e63660046123da565b610ab0565b3480156101f757600080fd5b50610175610206366004612452565b610ac1565b34801561021757600080fd5b50610175610226366004612422565b610b44565b34801561023757600080fd5b506102a1610246366004612422565b6040805180820190915260008082526020820152506001600160a01b031660009081526004602090815260408083209383529281529082902082518084019093525460ff811615158352610100900462ffffff169082015290565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a6102d13660046124d1565b610ba8565b3480156102e257600080fd5b506101756102f136600461252c565b610bc3565b34801561030257600080fd5b50610175610311366004612576565b610c4b565b34801561032257600080fd5b5061034a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561036e57600080fd5b5061014061037d366004612422565b610d09565b34801561038e57600080fd5b5061018a60015481565b3480156103a457600080fd5b506103ca60405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906125df565b3480156103e357600080fd5b506101756103f2366004612422565b610d35565b34801561040357600080fd5b50610417610412366004612422565b610dae565b60405161014c94939291906125f2565b34801561043357600080fd5b5061034a7f000000000000000000000000000000000000000000000000000000000000000081565b34801561046757600080fd5b506103ca604051806040016040528060138152602001724d696e7465724441457870486f6c646572563560681b81525081565b3480156104a657600080fd5b506101756104b5366004612452565b610e5a565b3480156104c657600080fd5b506101406104d53660046123da565b6001600160a01b039283166000908152600560209081526040808320968352958152858220939094168152918352838220908252909152205460ff1690565b34801561052057600080fd5b5061017561052f366004612641565b610ecf565b34801561054057600080fd5b506105a461054f366004612422565b6001600160a01b03166000908152600360209081526040808320938352929052205464ffffffffff80821692600160281b8304909116916001600160581b03600160501b8204811692600160a81b9092041690565b60405161014c94939291906126a2565b6001600160a01b03811660009081526002602052604081208054610100900460ff16156105e5575460ff1692915050565b6105ee83611026565b9392505050565b61060086863361115e565b6001600160a01b0385166000908152600560209081526040808320898452909152902061063090858585856111a8565b846001600160a01b0316867fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82868660405161066c9291906126c9565b60405180910390a3846001600160a01b0316867f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced0984846040516106b09291906126c9565b60405180910390a3505050505050565b60006002600054036107195760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b600260009081556001600160a01b0386168082526004602090815260408084208a85528252808420928452600382528084208a8552909152909120815460ff16156107765760405162461bcd60e51b81526004016107109061274d565b6000610781826111c5565b9050803410156107cc5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b6044820152606401610710565b6001600160a01b03881660009081526005602090815260408083208c845290915290206107fa908888611300565b61083e5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610710565b336001600160a01b0386161561094657604051631574d39f60e31b81523360048201526001600160a01b0387811660248301528a81166044830152606482018990526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f2919061278e565b9050806109415760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610710565b869150505b6040516117cd60e21b81526001600160a01b038c81166004830152602482018c90528a8116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156109c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e591906127a9565b94506109f1858561133e565b6109fc88888361138d565b6001600160a01b0389166000908152600260205260408120610a1f908b90611450565b9050610a2d8b848c84611482565b505050505060016000559695505050505050565b6001600160a01b03831660009081526005602090815260408083208784529091528120610a6f908484611300565b95945050505050565b6001600160a01b0381166000908152600460209081526040808320858452909152812054610100900462ffffff165b90505b92915050565b6000610a6f338686868660006106c0565b610acc84843361115e565b6001600160a01b03831660009081526005602090815260408083208784529091529020610afa908383611539565b826001600160a01b0316847fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff828484604051610b369291906126c9565b60405180910390a350505050565b610b57813330634ae2bafd60e11b6115fc565b6001600160a01b03811660008181526003602090815260408083208684529091528082208290555184917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8091a35050565b6000610bb9868686868660006106c0565b9695505050505050565b610bce83833361115e565b6001600160a01b03821660009081526004602090815260408083208684529091529020610c0090849084908490611651565b60405162ffffff821681526001600160a01b0383169084907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e237906020015b60405180910390a3505050565b610c7e7f0000000000000000000000000000000000000000000000000000000000000000333063b3fe472360e01b6116d8565b60008111610cce5760405162461bcd60e51b815260206004820152601d60248201527f48616c66206c696665206f66207a65726f206e6f7420616c6c6f7765640000006044820152606401610710565b60018190556040518181527fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b9060200160405180910390a150565b6001600160a01b038116600090815260046020908152604080832085845290915281205460ff16610aa7565b610d4082823361115e565b6001600160a01b03811660009081526004602090815260408083208584529091528120610d70908490849061172d565b9050816001600160a01b0316837f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e23783604051610c3e91815260200190565b6001600160a01b038116600090815260036020908152604080832085845290915281208054600160501b90046001600160581b031615159190606090829084610dfa5760009350610e2e565b805464ffffffffff164211610e22578054600160501b90046001600160581b03169350610e2e565b610e2b816111c5565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610e6584843361115e565b6001600160a01b03831660009081526005602090815260408083208784529091529020610e939083836117d2565b826001600160a01b0316847f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced098484604051610b369291906126c9565b610eda86863361115e565b6001600160a01b03851660008181526003602090815260408083208a84528252808320938352600482528083208a8452909152902060015464ffffffffff86161015610f8e5760405162461bcd60e51b815260206004820152603e60248201527f50726963652064656361792068616c66206c696665206d75737420626520677260448201527f6561746572207468616e206d696e20616c6c6f7761626c652076616c756500006064820152608401610710565b6000610f9b825460ff1690565b9050610fbb838888610fac89611895565b610fb589611895565b86611901565b876001600160a01b0316897f7fbd78481800c1705ba89e4be2e8c979412fb121f7f3cbace9d7f5c3dd85c44e89898989604051610ffb94939291906126a2565b60405180910390a361100c82611a9e565b1561101b5761101b8989610d35565b505050505050505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b038616906110889085906127c2565b600060405180830381855afa9150503d80600081146110c3576040519150601f19603f3d011682016040523d82523d6000602084013e6110c8565b606091505b5091509150816110ea5760405162461bcd60e51b8152600401610710906127de565b805160c08190036111015750600095945050505050565b80610100036111165750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c697420627974657300006044820152606401610710565b611169838383611abe565b6111a35760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b6044820152606401610710565b505050565b6111b3858585611539565b6111be8583836117d2565b5050505050565b805460009064ffffffffff80821691600160281b810490911690600160a81b90046001600160581b03164283106112385760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b6044820152606401610710565b600082116112835760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b6044820152606401610710565b8454600160501b90046001600160581b0316428490038381816112a8576112a8612823565b0482901c91506002848583816112c0576112c0612823565b068402816112d0576112d0612823565b04816112de576112de612823565b0482039150828210156112f657509095945050505050565b5095945050505050565b600080611310620f42408461284f565b6001600160a01b038516600090815260208781526040808320938352929052205460ff169150509392505050565b8054620f4240830660010190610100900462ffffff16808211156113745760405162461bcd60e51b81526004016107109061274d565b80820361138757825460ff191660011783555b50505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa1580156113d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113f99190612871565b9050816001600160a01b0316816001600160a01b0316146113875760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b6044820152606401610710565b8054600090610100900460ff161561146d5750805460ff16610aaa565b60006114798484611b47565b9150610aaa9050565b341561138757600080611495853461288e565b905080156115255760405133908290600081818185875af1925050503d80600081146114dd576040519150601f19603f3d011682016040523d82523d6000602084013e6114e2565b606091505b505080925050816115255760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610710565b61153186868686611c57565b505050505050565b805182511461155a5760405162461bcd60e51b8152600401610710906128a1565b60005b8251811015611387576001846000016000858481518110611580576115806128e2565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008484815181106115bc576115bc6128e2565b6020026020010151815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115f4906128f8565b91505061155d565b61160884848484612022565b6113875760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b6044820152606401610710565b60008061165e86866120aa565b91509150808462ffffff1611156116875760405162461bcd60e51b815260040161071090612911565b818462ffffff1610156116ac5760405162461bcd60e51b815260040161071090612911565b50815460ff1962ffffff90941661010081029490941663ffffffff199091161792149190911790555050565b6116e484848484612022565b6113875760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b6044820152606401610710565b6000806000846001600160a01b0316630ea5613f876040518263ffffffff1660e01b815260040161176091815260200190565b60c060405180830381865afa15801561177d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117a19190612942565b5050875493831463ffffffff1990941661010062ffffff85160260ff19161793909317909655979650505050505050565b80518251146117f35760405162461bcd60e51b8152600401610710906128a1565b60005b8251811015611387576000846000016000858481518110611819576118196128e2565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000848481518110611855576118556128e2565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061188d906128f8565b9150506117f6565b60006001600160581b038211156118fd5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b6064820152608401610710565b5090565b855464ffffffffff16158061191d5750855464ffffffffff1642105b806119255750805b6119705760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b6044820152606401610710565b8464ffffffffff1642106119bd5760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b6044820152606401610710565b816001600160581b0316836001600160581b031611611a415760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b6064820152608401610710565b50845464ffffffffff9485166001600160501b031990911617600160281b9390941692909202929092176001600160501b0316600160501b6001600160581b03938416026001600160a81b031617600160a81b9190921602179055565b8054600090610100900462ffffff16158015610aaa5750505460ff161590565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b2a9190612871565b6001600160a01b0316826001600160a01b03161490509392505050565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03871690611ba99085906127c2565b6000604051808303816000865af19150503d8060008114611be6576040519150601f19603f3d011682016040523d82523d6000602084013e611beb565b606091505b509150915081611c0d5760405162461bcd60e51b8152600401610710906127de565b805160c0819003611c33575050835461ffff19166101001784555060009150610aaa9050565b8061010003611116575050835461ffff19166101011784555060019150610aaa9050565b82156113875760008060008060008060008715611da857604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038c1690638639415b9060440161010060405180830381865afa158015611cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce491906129a1565b969e50949c50909a50985091965091945090925090508115611da1576040516001600160a01b038216908390600081818185875af1925050503d8060008114611d49576040519150601f19603f3d011682016040523d82523d6000602084013e611d4e565b606091505b50508099505088611da15760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610710565b5050611e28565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b038a1690638639415b9060440160c060405180830381865afa158015611df4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e189190612a29565b949a509298509096509450925090505b8515611ecf576040516001600160a01b038616908790600081818185875af1925050503d8060008114611e77576040519150601f19603f3d011682016040523d82523d6000602084013e611e7c565b606091505b50508097505086611ecf5760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610710565b8315611f6e576040516001600160a01b038416908590600081818185875af1925050503d8060008114611f1e576040519150601f19603f3d011682016040523d82523d6000602084013e611f23565b606091505b50508097505086611f6e5760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610710565b8115612015576040516001600160a01b038216908390600081818185875af1925050503d8060008114611fbd576040519150601f19603f3d011682016040523d82523d6000602084013e611fc2565b606091505b505080975050866120155760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610710565b5050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015612086573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a6f919061278e565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa1580156120f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121189190612942565b5093989297509195505050505050565b6001600160a01b038116811461213d57600080fd5b50565b803561214b81612128565b919050565b60006020828403121561216257600080fd5b81356105ee81612128565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156121ab576121ab61216d565b604052919050565b60006001600160401b038211156121cc576121cc61216d565b5060051b60200190565b600082601f8301126121e757600080fd5b813560206121fc6121f7836121b3565b612183565b82815260059290921b8401810191818101908684111561221b57600080fd5b8286015b8481101561223f57803561223281612128565b835291830191830161221f565b509695505050505050565b600082601f83011261225b57600080fd5b8135602061226b6121f7836121b3565b82815260059290921b8401810191818101908684111561228a57600080fd5b8286015b8481101561223f578035835291830191830161228e565b60008060008060008060c087890312156122be57600080fd5b863595506122ce60208801612140565b945060408701356001600160401b03808211156122ea57600080fd5b6122f68a838b016121d6565b9550606089013591508082111561230c57600080fd5b6123188a838b0161224a565b9450608089013591508082111561232e57600080fd5b61233a8a838b016121d6565b935060a089013591508082111561235057600080fd5b5061235d89828a0161224a565b9150509295509295509295565b60008060008060008060c0878903121561238357600080fd5b863561238e81612128565b95506020870135945060408701356123a581612128565b935060608701356123b581612128565b92506080870135915060a08701356123cc81612128565b809150509295509295509295565b600080600080608085870312156123f057600080fd5b84359350602085013561240281612128565b9250604085013561241281612128565b9396929550929360600135925050565b6000806040838503121561243557600080fd5b82359150602083013561244781612128565b809150509250929050565b6000806000806080858703121561246857600080fd5b84359350602085013561247a81612128565b925060408501356001600160401b038082111561249657600080fd5b6124a2888389016121d6565b935060608701359150808211156124b857600080fd5b506124c58782880161224a565b91505092959194509250565b600080600080600060a086880312156124e957600080fd5b85356124f481612128565b945060208601359350604086013561250b81612128565b9250606086013561251b81612128565b949793965091946080013592915050565b60008060006060848603121561254157600080fd5b83359250602084013561255381612128565b9150604084013562ffffff8116811461256b57600080fd5b809150509250925092565b60006020828403121561258857600080fd5b5035919050565b60005b838110156125aa578181015183820152602001612592565b50506000910152565b600081518084526125cb81602086016020860161258f565b601f01601f19169290920160200192915050565b602081526000610aa760208301846125b3565b841515815283602082015260806040820152600061261360808301856125b3565b905060018060a01b038316606083015295945050505050565b803564ffffffffff8116811461214b57600080fd5b60008060008060008060c0878903121561265a57600080fd5b86359550602087013561266c81612128565b945061267a6040880161262c565b93506126886060880161262c565b92506080870135915060a087013590509295509295509295565b64ffffffffff94851681529290931660208301526040820152606081019190915260800190565b604080825283519082018190526000906020906060840190828701845b8281101561270b5781516001600160a01b0316845292840192908401906001016126e6565b5050508381038285015284518082528583019183019060005b8181101561274057835183529284019291840191600101612724565b5090979650505050505050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b8051801515811461214b57600080fd5b6000602082840312156127a057600080fd5b610aa78261277e565b6000602082840312156127bb57600080fd5b5051919050565b600082516127d481846020870161258f565b9190910192915050565b60208082526025908201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604082015264185a5b195960da1b606082015260800190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008261286c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561288357600080fd5b81516105ee81612128565b81810381811115610aaa57610aaa612839565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60006001820161290a5761290a612839565b5060010190565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b60008060008060008060c0878903121561295b57600080fd5b86519550602087015194506129726040880161277e565b93506129806060880161277e565b92506080870151915061299560a0880161277e565b90509295509295509295565b600080600080600080600080610100898b0312156129be57600080fd5b8851975060208901516129d081612128565b60408a015160608b015191985096506129e881612128565b60808a015160a08b01519196509450612a0081612128565b60c08a015160e08b01519194509250612a1881612128565b809150509295985092959890939650565b60008060008060008060c08789031215612a4257600080fd5b865195506020870151612a5481612128565b604088015160608901519196509450612a6c81612128565b608088015160a089015191945092506123cc8161212856fea2646970667358221220130f5f5b0b6709c0e5b4dc89e36a629340c2076d55cbf5863e0464b8b83117a464736f6c63430008130033",
658
+ "bytecode": "0x610100604052602d6001553480156200001757600080fd5b50604051620029cd380380620029cd8339810160408190526200003a91620000f2565b60016000556001600160a01b03828116608081905260a052811660c081905260e08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a17fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b600154604051620000c591815260200190565b60405180910390a150506200012a565b80516001600160a01b0381168114620000ed57600080fd5b919050565b600080604083850312156200010657600080fd5b6200011183620000d5565b91506200012160208401620000d5565b90509250929050565b60805160a05160c05160e0516128626200016b60003960006106a4015260006102d2015260006107990152600081816103e3015261093901526128626000f3fe60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806339b87cf8146101985780634869f3df146101b85780637fbbc005146101d85780638a605b51146101eb57806395c575fa1461020b5780639a94488a1461022b5780639d923dff1461026d578063b000e33414610280578063b3fe4723146102a0578063bf5bf5f8146102c0578063cce7c9091461030c578063cf6681ea1461032c578063d3ddabe614610342578063d9bffbce14610381578063d9eb16db146103a1578063dd85582f146103d1578063e9d1e8ac14610405578063f7f5e9d014610444578063fca23f4e14610464578063fdca4cb814610484578063fea1d7b4146104a4575b600080fd5b34801561012c57600080fd5b5061014061013b366004612036565b6104ed565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b5061017561017036600461209e565b610525565b005b61018a61018536600461217e565b61054e565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b33660046121ee565b610837565b3480156101c457600080fd5b5061018a6101d3366004612236565b61084e565b61018a6101e63660046121ee565b610863565b3480156101f757600080fd5b50610175610206366004612266565b610874565b34801561021757600080fd5b50610175610226366004612236565b610895565b34801561023757600080fd5b5061024b610246366004612236565b6108b6565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a61027b3660046122f1565b6108fe565b34801561028c57600080fd5b5061017561029b36600461234c565b610919565b3480156102ac57600080fd5b506101756102bb366004612396565b610934565b3480156102cc57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561031857600080fd5b50610140610327366004612236565b6109f2565b34801561033857600080fd5b5061018a60015481565b34801561034e57600080fd5b5061037460405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906123ff565b34801561038d57600080fd5b5061017561039c366004612236565b6109fe565b3480156103ad57600080fd5b506103c16103bc366004612236565b610a13565b60405161014c9493929190612412565b3480156103dd57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561041157600080fd5b50610374604051806040016040528060138152602001724d696e7465724441457870486f6c646572563560681b81525081565b34801561045057600080fd5b5061017561045f366004612266565b610aac565b34801561047057600080fd5b5061014061047f3660046121ee565b610ac5565b34801561049057600080fd5b5061017561049f366004612461565b610aff565b3480156104b057600080fd5b506104c46104bf366004612236565b610bd8565b6040805164ffffffffff958616815294909316602085015291830152606082015260800161014c565b6000806104f983610c28565b8054909150610100900460ff1615610515575460ff1692915050565b61051e83610c61565b9392505050565b6105308a8a33610dd7565b6105428a8a8a8a8a8a8a8a8a8a610e1c565b50505050505050505050565b60006002600054036105a75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556105b68686610e38565b60006105c28787610e69565b90508034101561060d5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b604482015260640161059e565b61061987878787610fad565b61065d5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b604482015260640161059e565b336001600160a01b0384161561076557604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528881166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071191906124d2565b9050806107605760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e670000604482015260640161059e565b849150505b6040516117cd60e21b81526001600160a01b038a81166004830152602482018a9052888116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080491906124ed565b92506108108388610ffd565b61081b868683611062565b61082688838961112b565b505060016000559695505050505050565b600061084585858585610fad565b95945050505050565b600061085a83836111da565b90505b92915050565b60006108453386868686600061054e565b61087f868633610dd7565b61088d8686868686866111fa565b505050505050565b6108a8813330634ae2bafd60e11b611316565b6108b2828261136b565b5050565b60408051808201909152600080825260208201526108d483836113b7565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b600061090f8686868686600061054e565b9695505050505050565b610924838333610dd7565b61092f838383611402565b505050565b6109677f0000000000000000000000000000000000000000000000000000000000000000333063b3fe472360e01b6114d8565b600081116109b75760405162461bcd60e51b815260206004820152601d60248201527f48616c66206c696665206f66207a65726f206e6f7420616c6c6f776564000000604482015260640161059e565b60018190556040518181527fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b9060200160405180910390a150565b600061085a838361152d565b610a09828233610dd7565b6108b28282611546565b6000806060600080610a2587876115cd565b8054600160501b90046001600160581b031615159550905084610a4b5760009350610a80565b805464ffffffffff164211610a73578054600160501b90046001600160581b03169350610a80565b610a7d8787610e69565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610ab7868633610dd7565b61088d8686868686866115f5565b6000610ad185856116fe565b6001600160a01b038416600090815260209182526040808220858352909252205460ff169050949350505050565b610b0a868633610dd7565b6001548364ffffffffff161015610b895760405162461bcd60e51b815260206004820152603e60248201527f50726963652064656361792068616c66206c696665206d75737420626520677260448201527f6561746572207468616e206d696e20616c6c6f7761626c652076616c75650000606482015260840161059e565b6000610b95878761152d565b9050610bb687878787610ba788611726565b610bb088611726565b87611792565b610bc0878761198f565b15610bcf57610bcf87876109fe565b50505050505050565b6000806000806000610bea87876115cd565b5464ffffffffff80821699600160281b830490911698506001600160581b03600160501b830481169850600160a81b90920490911695509350505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610cc3908590612506565b600060405180830381855afa9150503d8060008114610cfe576040519150601f19603f3d011682016040523d82523d6000602084013e610d03565b606091505b509150915081610d635760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840161059e565b805160c0819003610d7a5750600095945050505050565b8061010003610d8f5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640161059e565b610de28383836119c2565b61092f5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b604482015260640161059e565b610e2a8a8a8a8a8a8a6111fa565b6105428a8a868686866115f5565b6000610e4483836113b7565b805490915060ff161561092f5760405162461bcd60e51b815260040161059e90612522565b600080610e7684846115cd565b805490915064ffffffffff80821691600160281b90041642821115610ed75760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b604482015260640161059e565b60008111610f225760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b604482015260640161059e565b8254600160501b90046001600160581b031642839003828181610f4757610f47612553565b0482901c9150600183848381610f5f57610f5f612553565b06840281610f6f57610f6f612553565b875491900490911c90920391600160a81b90046001600160581b031680831015610fa057955061085d945050505050565b5090979650505050505050565b600080610fba86866116fe565b90506000610fcb620f42408561257f565b6001600160a01b038616600090815260209384526040808220928252919093529091205460ff16915050949350505050565b620f42408204600061100f82846113b7565b8054909150620f4240850660010190610100900462ffffff16808211156110485760405162461bcd60e51b815260040161059e90612522565b80820361088d57825460ff19166001178355505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa1580156110aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ce91906125a1565b9050816001600160a01b0316816001600160a01b0316146111255760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b604482015260640161059e565b50505050565b341561092f57600061113d83346125be565b905080156111cf57604051600090339083908381818185875af1925050503d8060008114611187576040519150601f19603f3d011682016040523d82523d6000602084013e61118c565b606091505b50509050806111cd5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640161059e565b505b611125848484611a4b565b6000806111e784846113b7565b54610100900462ffffff16949350505050565b8281146112195760405162461bcd60e51b815260040161059e906125d1565b600061122587876116fe565b90508360005b818110156112c357600183600089898581811061124a5761124a612612565b905060200201602081019061125f9190612036565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061129357611293612612565b60209081029290920135835250810191909152604001600020805460ff191691151591909117905560010161122b565b50866001600160a01b0316887fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82888888886040516113049493929190612628565b60405180910390a35050505050505050565b61132284848484611c0c565b6111255760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604482015260640161059e565b600061137783836115cd565b60008082556040519192506001600160a01b0384169185917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8091a3505050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60008061140f8585611c94565b91509150808362ffffff1611156114385760405162461bcd60e51b815260040161059e906126a6565b818362ffffff16101561145d5760405162461bcd60e51b815260040161059e906126a6565b600061146986866113b7565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6114e484848484611c0c565b6111255760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b604482015260640161059e565b60008061153a84846113b7565b5460ff16949350505050565b6000806115538484611c94565b91509150600061156385856113b7565b805484841463ffffffff1990911661010062ffffff86160260ff1916171781556040518381529091506001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a35050505050565b60007fd81cd75c069a2440f70df8647083d567d07e376316cc889f0f9fba1085bc5a006113db565b8281146116145760405162461bcd60e51b815260040161059e906125d1565b600061162087876116fe565b90508360005b818110156116bd576000838189898581811061164457611644612612565b90506020020160208101906116599190612036565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061168d5761168d612612565b60209081029290920135835250810191909152604001600020805460ff1916911515919091179055600101611626565b50866001600160a01b0316887f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced09888888886040516113049493929190612628565b60007f7805f013cae363c49df6acca2dcd8a8f0bd9005c2f87b85d8dbbce9098e4afd76113db565b60006001600160581b0382111561178e5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b606482015260840161059e565b5090565b600061179e88886115cd565b805490915064ffffffffff1615806117bd5750805464ffffffffff1642105b806117c55750815b6118105760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b604482015260640161059e565b8564ffffffffff16421061185d5760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b604482015260640161059e565b826001600160581b0316846001600160581b0316116118e15760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b606482015260840161059e565b805464ffffffffff8781166001600160501b03199092168217600160281b918816918202176001600160501b0316600160501b6001600160581b038881169182026001600160a81b031692909217600160a81b9288169283021785556040805194855260208501939093529183019190915260608201526001600160a01b0388169089907f7fbd78481800c1705ba89e4be2e8c979412fb121f7f3cbace9d7f5c3dd85c44e90608001611304565b60008061199c84846113b7565b8054909150610100900462ffffff161580156119ba5750805460ff16155b949350505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611a0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2e91906125a1565b6001600160a01b0316826001600160a01b03161490509392505050565b81600003611a5857505050565b6000611a6382611d12565b90506000806000806000806000808815611b0157604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae891906126d7565b969e50949c50929a509098509650945092509050611b81565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611b4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b71919061275f565b949c50929a509096509450925090505b8a8285611b8e898c6127ba565b611b9891906127ba565b611ba291906127ba565b14611bee5760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b604482015260640161059e565b611bfe86868a8a88888888611d60565b505050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015611c70573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084591906124d2565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0291906127cd565b5093989297509195505050505050565b600080611d1e83610c28565b8054909150610100900460ff1615611d3a575460ff1692915050565b6000611d4584610c61565b825481151561ffff1990911617610100179092555092915050565b8715611e0b576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611db3576040519150601f19603f3d011682016040523d82523d6000602084013e611db8565b606091505b5050905080611e095760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c6564604482015260640161059e565b505b8515611eb6576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611e5e576040519150601f19603f3d011682016040523d82523d6000602084013e611e63565b606091505b5050905080611eb45760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c65640000604482015260640161059e565b505b8315611f59576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611f09576040519150601f19603f3d011682016040523d82523d6000602084013e611f0e565b606091505b5050905080611f575760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161059e565b505b8115612004576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611fac576040519150601f19603f3d011682016040523d82523d6000602084013e611fb1565b606091505b50509050806120025760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161059e565b505b5050505050505050565b6001600160a01b038116811461202357600080fd5b50565b80356120318161200e565b919050565b60006020828403121561204857600080fd5b813561051e8161200e565b60008083601f84011261206557600080fd5b5081356001600160401b0381111561207c57600080fd5b6020830191508360208260051b850101111561209757600080fd5b9250929050565b60008060008060008060008060008060c08b8d0312156120bd57600080fd5b8a3599506120cd60208c01612026565b985060408b01356001600160401b03808211156120e957600080fd5b6120f58e838f01612053565b909a50985060608d013591508082111561210e57600080fd5b61211a8e838f01612053565b909850965060808d013591508082111561213357600080fd5b61213f8e838f01612053565b909650945060a08d013591508082111561215857600080fd5b506121658d828e01612053565b915080935050809150509295989b9194979a5092959850565b60008060008060008060c0878903121561219757600080fd5b86356121a28161200e565b95506020870135945060408701356121b98161200e565b935060608701356121c98161200e565b92506080870135915060a08701356121e08161200e565b809150509295509295509295565b6000806000806080858703121561220457600080fd5b8435935060208501356122168161200e565b925060408501356122268161200e565b9396929550929360600135925050565b6000806040838503121561224957600080fd5b82359150602083013561225b8161200e565b809150509250929050565b6000806000806000806080878903121561227f57600080fd5b8635955060208701356122918161200e565b945060408701356001600160401b03808211156122ad57600080fd5b6122b98a838b01612053565b909650945060608901359150808211156122d257600080fd5b506122df89828a01612053565b979a9699509497509295939492505050565b600080600080600060a0868803121561230957600080fd5b85356123148161200e565b945060208601359350604086013561232b8161200e565b9250606086013561233b8161200e565b949793965091946080013592915050565b60008060006060848603121561236157600080fd5b8335925060208401356123738161200e565b9150604084013562ffffff8116811461238b57600080fd5b809150509250925092565b6000602082840312156123a857600080fd5b5035919050565b60005b838110156123ca5781810151838201526020016123b2565b50506000910152565b600081518084526123eb8160208601602086016123af565b601f01601f19169290920160200192915050565b60208152600061085a60208301846123d3565b841515815283602082015260806040820152600061243360808301856123d3565b905060018060a01b038316606083015295945050505050565b803564ffffffffff8116811461203157600080fd5b60008060008060008060c0878903121561247a57600080fd5b86359550602087013561248c8161200e565b945061249a6040880161244c565b93506124a86060880161244c565b92506080870135915060a087013590509295509295509295565b8051801515811461203157600080fd5b6000602082840312156124e457600080fd5b61085a826124c2565b6000602082840312156124ff57600080fd5b5051919050565b600082516125188184602087016123af565b9190910192915050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008261259c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156125b357600080fd5b815161051e8161200e565b8181038181111561085d5761085d612569565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6040808252810184905260008560608301825b8781101561266b57823561264e8161200e565b6001600160a01b031682526020928301929091019060010161263b565b5083810360208501528481526001600160fb1b0385111561268b57600080fd5b8460051b915081866020830137016020019695505050505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600080600080600080600080610100898b0312156126f457600080fd5b8851975060208901516127068161200e565b60408a015160608b0151919850965061271e8161200e565b60808a015160a08b015191965094506127368161200e565b60c08a015160e08b0151919450925061274e8161200e565b809150509295985092959890939650565b60008060008060008060c0878903121561277857600080fd5b86519550602087015161278a8161200e565b6040880151606089015191965094506127a28161200e565b608088015160a089015191945092506121e08161200e565b8082018082111561085d5761085d612569565b60008060008060008060c087890312156127e657600080fd5b86519550602087015194506127fd604088016124c2565b935061280b606088016124c2565b92506080870151915061282060a088016124c2565b9050929550929550929556fea2646970667358221220389a1e7f6c88cd829a5147419c0a0e3359fb28c23fe3dbc1caaca85e07e9332464736f6c63430008130033",
659
+ "deployedBytecode": "0x60806040526004361061011b5760003560e01c806301000da7146101205780630c49ef311461015557806319d29d7e1461017757806339b87cf8146101985780634869f3df146101b85780637fbbc005146101d85780638a605b51146101eb57806395c575fa1461020b5780639a94488a1461022b5780639d923dff1461026d578063b000e33414610280578063b3fe4723146102a0578063bf5bf5f8146102c0578063cce7c9091461030c578063cf6681ea1461032c578063d3ddabe614610342578063d9bffbce14610381578063d9eb16db146103a1578063dd85582f146103d1578063e9d1e8ac14610405578063f7f5e9d014610444578063fca23f4e14610464578063fdca4cb814610484578063fea1d7b4146104a4575b600080fd5b34801561012c57600080fd5b5061014061013b366004612036565b6104ed565b60405190151581526020015b60405180910390f35b34801561016157600080fd5b5061017561017036600461209e565b610525565b005b61018a61018536600461217e565b61054e565b60405190815260200161014c565b3480156101a457600080fd5b506101406101b33660046121ee565b610837565b3480156101c457600080fd5b5061018a6101d3366004612236565b61084e565b61018a6101e63660046121ee565b610863565b3480156101f757600080fd5b50610175610206366004612266565b610874565b34801561021757600080fd5b50610175610226366004612236565b610895565b34801561023757600080fd5b5061024b610246366004612236565b6108b6565b6040805182511515815260209283015162ffffff16928101929092520161014c565b61018a61027b3660046122f1565b6108fe565b34801561028c57600080fd5b5061017561029b36600461234c565b610919565b3480156102ac57600080fd5b506101756102bb366004612396565b610934565b3480156102cc57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161014c565b34801561031857600080fd5b50610140610327366004612236565b6109f2565b34801561033857600080fd5b5061018a60015481565b34801561034e57600080fd5b5061037460405180604001604052806006815260200165076352e302e360d41b81525081565b60405161014c91906123ff565b34801561038d57600080fd5b5061017561039c366004612236565b6109fe565b3480156103ad57600080fd5b506103c16103bc366004612236565b610a13565b60405161014c9493929190612412565b3480156103dd57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b34801561041157600080fd5b50610374604051806040016040528060138152602001724d696e7465724441457870486f6c646572563560681b81525081565b34801561045057600080fd5b5061017561045f366004612266565b610aac565b34801561047057600080fd5b5061014061047f3660046121ee565b610ac5565b34801561049057600080fd5b5061017561049f366004612461565b610aff565b3480156104b057600080fd5b506104c46104bf366004612236565b610bd8565b6040805164ffffffffff958616815294909316602085015291830152606082015260800161014c565b6000806104f983610c28565b8054909150610100900460ff1615610515575460ff1692915050565b61051e83610c61565b9392505050565b6105308a8a33610dd7565b6105428a8a8a8a8a8a8a8a8a8a610e1c565b50505050505050505050565b60006002600054036105a75760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b60026000556105b68686610e38565b60006105c28787610e69565b90508034101561060d5760405162461bcd60e51b815260206004820152601660248201527526b4b7103b30b63ab2903a379036b4b73a103932b89760511b604482015260640161059e565b61061987878787610fad565b61065d5760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b604482015260640161059e565b336001600160a01b0384161561076557604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528881166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061071191906124d2565b9050806107605760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e670000604482015260640161059e565b849150505b6040516117cd60e21b81526001600160a01b038a81166004830152602482018a9052888116604483015282811660648301527f00000000000000000000000000000000000000000000000000000000000000001690615f34906084016020604051808303816000875af11580156107e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061080491906124ed565b92506108108388610ffd565b61081b868683611062565b61082688838961112b565b505060016000559695505050505050565b600061084585858585610fad565b95945050505050565b600061085a83836111da565b90505b92915050565b60006108453386868686600061054e565b61087f868633610dd7565b61088d8686868686866111fa565b505050505050565b6108a8813330634ae2bafd60e11b611316565b6108b2828261136b565b5050565b60408051808201909152600080825260208201526108d483836113b7565b60408051808201909152905460ff811615158252610100900462ffffff1660208201529392505050565b600061090f8686868686600061054e565b9695505050505050565b610924838333610dd7565b61092f838383611402565b505050565b6109677f0000000000000000000000000000000000000000000000000000000000000000333063b3fe472360e01b6114d8565b600081116109b75760405162461bcd60e51b815260206004820152601d60248201527f48616c66206c696665206f66207a65726f206e6f7420616c6c6f776564000000604482015260640161059e565b60018190556040518181527fdae7136b6b1f9f3031d9536e8bdd02f1d223eb793054446ff278143abeafa21b9060200160405180910390a150565b600061085a838361152d565b610a09828233610dd7565b6108b28282611546565b6000806060600080610a2587876115cd565b8054600160501b90046001600160581b031615159550905084610a4b5760009350610a80565b805464ffffffffff164211610a73578054600160501b90046001600160581b03169350610a80565b610a7d8787610e69565b93505b6040518060400160405280600381526020016208aa8960eb1b8152509250600091505092959194509250565b610ab7868633610dd7565b61088d8686868686866115f5565b6000610ad185856116fe565b6001600160a01b038416600090815260209182526040808220858352909252205460ff169050949350505050565b610b0a868633610dd7565b6001548364ffffffffff161015610b895760405162461bcd60e51b815260206004820152603e60248201527f50726963652064656361792068616c66206c696665206d75737420626520677260448201527f6561746572207468616e206d696e20616c6c6f7761626c652076616c75650000606482015260840161059e565b6000610b95878761152d565b9050610bb687878787610ba788611726565b610bb088611726565b87611792565b610bc0878761198f565b15610bcf57610bcf87876109fe565b50505050505050565b6000806000806000610bea87876115cd565b5464ffffffffff80821699600160281b830490911698506001600160581b03600160501b830481169850600160a81b90920490911695509350505050565b6001600160a01b031660009081527f69f22dd730b53ff235fa96b4306a31bef5dad48fe4bac28b1ceebbce14401b396020526040902090565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b03861690610cc3908590612506565b600060405180830381855afa9150503d8060008114610cfe576040519150601f19603f3d011682016040523d82523d6000602084013e610d03565b606091505b509150915081610d635760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840161059e565b805160c0819003610d7a5750600095945050505050565b8061010003610d8f5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640161059e565b610de28383836119c2565b61092f5760405162461bcd60e51b815260206004820152600b60248201526a13db9b1e48105c9d1a5cdd60aa1b604482015260640161059e565b610e2a8a8a8a8a8a8a6111fa565b6105428a8a868686866115f5565b6000610e4483836113b7565b805490915060ff161561092f5760405162461bcd60e51b815260040161059e90612522565b600080610e7684846115cd565b805490915064ffffffffff80821691600160281b90041642821115610ed75760405162461bcd60e51b8152602060048201526017602482015276105d58dd1a5bdb881b9bdd081e595d081cdd185c9d1959604a1b604482015260640161059e565b60008111610f225760405162461bcd60e51b81526020600482015260186024820152774f6e6c7920636f6e666967757265642061756374696f6e7360401b604482015260640161059e565b8254600160501b90046001600160581b031642839003828181610f4757610f47612553565b0482901c9150600183848381610f5f57610f5f612553565b06840281610f6f57610f6f612553565b875491900490911c90920391600160a81b90046001600160581b031680831015610fa057955061085d945050505050565b5090979650505050505050565b600080610fba86866116fe565b90506000610fcb620f42408561257f565b6001600160a01b038616600090815260209384526040808220928252919093529091205460ff16915050949350505050565b620f42408204600061100f82846113b7565b8054909150620f4240850660010190610100900462ffffff16808211156110485760405162461bcd60e51b815260040161059e90612522565b80820361088d57825460ff19166001178355505050505050565b6040516331a9108f60e11b8152600481018390526000906001600160a01b03851690636352211e90602401602060405180830381865afa1580156110aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ce91906125a1565b9050816001600160a01b0316816001600160a01b0316146111255760405162461bcd60e51b815260206004820152601160248201527013db9b1e481bdddb995c881bd988139195607a1b604482015260640161059e565b50505050565b341561092f57600061113d83346125be565b905080156111cf57604051600090339083908381818185875af1925050503d8060008114611187576040519150601f19603f3d011682016040523d82523d6000602084013e61118c565b606091505b50509050806111cd5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260640161059e565b505b611125848484611a4b565b6000806111e784846113b7565b54610100900462ffffff16949350505050565b8281146112195760405162461bcd60e51b815260040161059e906125d1565b600061122587876116fe565b90508360005b818110156112c357600183600089898581811061124a5761124a612612565b905060200201602081019061125f9190612036565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061129357611293612612565b60209081029290920135835250810191909152604001600020805460ff191691151591909117905560010161122b565b50866001600160a01b0316887fe4e108abe1d65a55b2c49a1586fb2afa6c3d79732947e37f71a6c23a5b08ff82888888886040516113049493929190612628565b60405180910390a35050505050505050565b61132284848484611c0c565b6111255760405162461bcd60e51b815260206004820152601a60248201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604482015260640161059e565b600061137783836115cd565b60008082556040519192506001600160a01b0384169185917f865169678476a498ca03f184818d6bd6217dd57b754577a944c19d6d75587c8091a3505050565b60007f73e3af67f35f30fb72bbaaf6cc07b987364ed643c93ba201702e213464e877ee5b6001600160a01b039290921660009081526020928352604080822094825293909252502090565b60008061140f8585611c94565b91509150808362ffffff1611156114385760405162461bcd60e51b815260040161059e906126a6565b818362ffffff16101561145d5760405162461bcd60e51b815260040161059e906126a6565b600061146986866113b7565b805462ffffff861685811463ffffffff19909216610100820260ff1916179190911782556040519081529091506001600160a01b0386169087907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a3505050505050565b6114e484848484611c0c565b6111255760405162461bcd60e51b815260206004820152601a60248201527913db9b1e48135a5b9d195c919a5b1d195c8810591b5a5b9050d360321b604482015260640161059e565b60008061153a84846113b7565b5460ff16949350505050565b6000806115538484611c94565b91509150600061156385856113b7565b805484841463ffffffff1990911661010062ffffff86160260ff1916171781556040518381529091506001600160a01b0385169086907f1c3e74a6c6fefbaeee166b031cd2016349c6c863d5188b67c9bbd0b0dcb2e2379060200160405180910390a35050505050565b60007fd81cd75c069a2440f70df8647083d567d07e376316cc889f0f9fba1085bc5a006113db565b8281146116145760405162461bcd60e51b815260040161059e906125d1565b600061162087876116fe565b90508360005b818110156116bd576000838189898581811061164457611644612612565b90506020020160208101906116599190612036565b6001600160a01b03166001600160a01b03168152602001908152602001600020600087878581811061168d5761168d612612565b60209081029290920135835250810191909152604001600020805460ff1916911515919091179055600101611626565b50866001600160a01b0316887f5728c49515724a90b87298ccfb6a8868ff0bfddf7e4fe298cea807dd815ced09888888886040516113049493929190612628565b60007f7805f013cae363c49df6acca2dcd8a8f0bd9005c2f87b85d8dbbce9098e4afd76113db565b60006001600160581b0382111561178e5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201526538206269747360d01b606482015260840161059e565b5090565b600061179e88886115cd565b805490915064ffffffffff1615806117bd5750805464ffffffffff1642105b806117c55750815b6118105760405162461bcd60e51b815260206004820152601c60248201527b27379036b7b234b334b1b0ba34b7b7399036b4b216b0bab1ba34b7b760211b604482015260640161059e565b8564ffffffffff16421061185d5760405162461bcd60e51b81526020600482015260146024820152734f6e6c79206675747572652061756374696f6e7360601b604482015260640161059e565b826001600160581b0316846001600160581b0316116118e15760405162461bcd60e51b815260206004820152603a60248201527f41756374696f6e207374617274207072696365206d7573742062652067726561604482015279746572207468616e2061756374696f6e20656e6420707269636560301b606482015260840161059e565b805464ffffffffff8781166001600160501b03199092168217600160281b918816918202176001600160501b0316600160501b6001600160581b038881169182026001600160a81b031692909217600160a81b9288169283021785556040805194855260208501939093529183019190915260608201526001600160a01b0388169089907f7fbd78481800c1705ba89e4be2e8c979412fb121f7f3cbace9d7f5c3dd85c44e90608001611304565b60008061199c84846113b7565b8054909150610100900462ffffff161580156119ba5750805460ff16155b949350505050565b60405163a47d29cb60e01b8152600481018490526000906001600160a01b0384169063a47d29cb90602401602060405180830381865afa158015611a0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2e91906125a1565b6001600160a01b0316826001600160a01b03161490509392505050565b81600003611a5857505050565b6000611a6382611d12565b90506000806000806000806000808815611b0157604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440161010060405180830381865afa158015611ac4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae891906126d7565b969e50949c50929a509098509650945092509050611b81565b604051638639415b60e01b8152600481018d9052602481018c90526001600160a01b038b1690638639415b9060440160c060405180830381865afa158015611b4d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b71919061275f565b949c50929a509096509450925090505b8a8285611b8e898c6127ba565b611b9891906127ba565b611ba291906127ba565b14611bee5760405162461bcd60e51b815260206004820152601c60248201527b496e76616c696420726576656e75652073706c697420746f74616c7360201b604482015260640161059e565b611bfe86868a8a88888888611d60565b505050505050505050505050565b60405163230448b160e01b81526001600160a01b03848116600483015283811660248301526001600160e01b0319831660448301526000919086169063230448b1906064016020604051808303816000875af1158015611c70573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084591906124d2565b604051630ea5613f60e01b81526004810183905260009081906001600160a01b03841690630ea5613f9060240160c060405180830381865afa158015611cde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0291906127cd565b5093989297509195505050505050565b600080611d1e83610c28565b8054909150610100900460ff1615611d3a575460ff1692915050565b6000611d4584610c61565b825481151561ffff1990911617610100179092555092915050565b8715611e0b576000876001600160a01b03168960405160006040518083038185875af1925050503d8060008114611db3576040519150601f19603f3d011682016040523d82523d6000602084013e611db8565b606091505b5050905080611e095760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c6564604482015260640161059e565b505b8515611eb6576000856001600160a01b03168760405160006040518083038185875af1925050503d8060008114611e5e576040519150601f19603f3d011682016040523d82523d6000602084013e611e63565b606091505b5050905080611eb45760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c65640000604482015260640161059e565b505b8315611f59576000836001600160a01b03168560405160006040518083038185875af1925050503d8060008114611f09576040519150601f19603f3d011682016040523d82523d6000602084013e611f0e565b606091505b5050905080611f575760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b604482015260640161059e565b505b8115612004576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611fac576040519150601f19603f3d011682016040523d82523d6000602084013e611fb1565b606091505b50509050806120025760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c656400604482015260640161059e565b505b5050505050505050565b6001600160a01b038116811461202357600080fd5b50565b80356120318161200e565b919050565b60006020828403121561204857600080fd5b813561051e8161200e565b60008083601f84011261206557600080fd5b5081356001600160401b0381111561207c57600080fd5b6020830191508360208260051b850101111561209757600080fd5b9250929050565b60008060008060008060008060008060c08b8d0312156120bd57600080fd5b8a3599506120cd60208c01612026565b985060408b01356001600160401b03808211156120e957600080fd5b6120f58e838f01612053565b909a50985060608d013591508082111561210e57600080fd5b61211a8e838f01612053565b909850965060808d013591508082111561213357600080fd5b61213f8e838f01612053565b909650945060a08d013591508082111561215857600080fd5b506121658d828e01612053565b915080935050809150509295989b9194979a5092959850565b60008060008060008060c0878903121561219757600080fd5b86356121a28161200e565b95506020870135945060408701356121b98161200e565b935060608701356121c98161200e565b92506080870135915060a08701356121e08161200e565b809150509295509295509295565b6000806000806080858703121561220457600080fd5b8435935060208501356122168161200e565b925060408501356122268161200e565b9396929550929360600135925050565b6000806040838503121561224957600080fd5b82359150602083013561225b8161200e565b809150509250929050565b6000806000806000806080878903121561227f57600080fd5b8635955060208701356122918161200e565b945060408701356001600160401b03808211156122ad57600080fd5b6122b98a838b01612053565b909650945060608901359150808211156122d257600080fd5b506122df89828a01612053565b979a9699509497509295939492505050565b600080600080600060a0868803121561230957600080fd5b85356123148161200e565b945060208601359350604086013561232b8161200e565b9250606086013561233b8161200e565b949793965091946080013592915050565b60008060006060848603121561236157600080fd5b8335925060208401356123738161200e565b9150604084013562ffffff8116811461238b57600080fd5b809150509250925092565b6000602082840312156123a857600080fd5b5035919050565b60005b838110156123ca5781810151838201526020016123b2565b50506000910152565b600081518084526123eb8160208601602086016123af565b601f01601f19169290920160200192915050565b60208152600061085a60208301846123d3565b841515815283602082015260806040820152600061243360808301856123d3565b905060018060a01b038316606083015295945050505050565b803564ffffffffff8116811461203157600080fd5b60008060008060008060c0878903121561247a57600080fd5b86359550602087013561248c8161200e565b945061249a6040880161244c565b93506124a86060880161244c565b92506080870135915060a087013590509295509295509295565b8051801515811461203157600080fd5b6000602082840312156124e457600080fd5b61085a826124c2565b6000602082840312156124ff57600080fd5b5051919050565b600082516125188184602087016123af565b9190910192915050565b60208082526017908201527613585e081a5b9d9bd8d85d1a5bdb9cc81c995858da1959604a1b604082015260600190565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008261259c57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156125b357600080fd5b815161051e8161200e565b8181038181111561085d5761085d612569565b60208082526021908201527f546f6b656e486f6c6465724c69623a20617272617973206e6571206c656e67746040820152600d60fb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6040808252810184905260008560608301825b8781101561266b57823561264e8161200e565b6001600160a01b031682526020928301929091019060010161263b565b5083810360208501528481526001600160fb1b0385111561268b57600080fd5b8460051b915081866020830137016020019695505050505050565b602080825260179082015276496e76616c6964206d617820696e766f636174696f6e7360481b604082015260600190565b600080600080600080600080610100898b0312156126f457600080fd5b8851975060208901516127068161200e565b60408a015160608b0151919850965061271e8161200e565b60808a015160a08b015191965094506127368161200e565b60c08a015160e08b0151919450925061274e8161200e565b809150509295985092959890939650565b60008060008060008060c0878903121561277857600080fd5b86519550602087015161278a8161200e565b6040880151606089015191965094506127a28161200e565b608088015160a089015191945092506121e08161200e565b8082018082111561085d5761085d612569565b60008060008060008060c087890312156127e657600080fd5b86519550602087015194506127fd604088016124c2565b935061280b606088016124c2565b92506080870151915061282060a088016124c2565b9050929550929550929556fea2646970667358221220389a1e7f6c88cd829a5147419c0a0e3359fb28c23fe3dbc1caaca85e07e9332464736f6c63430008130033",
1226
660
  "linkReferences": {},
1227
661
  "deployedLinkReferences": {}
1228
662
  }