@artblocks/contracts 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +3 -9
  2. package/artifacts/contracts/AdminACLV1.sol/AdminACLV1.json +2 -2
  3. package/artifacts/contracts/BasicPolyptychRandomizerV0.sol/BasicPolyptychRandomizerV0.json +229 -0
  4. package/artifacts/contracts/BasicRandomizerV2.sol/BasicRandomizerV2.json +3 -3
  5. package/artifacts/contracts/GenArt721CoreV3.sol/GenArt721CoreV3.json +2 -2
  6. package/artifacts/contracts/GenArt721CoreV3_Engine.sol/GenArt721CoreV3_Engine.json +2 -2
  7. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV0.sol/MinterDAExpV0.json +2 -2
  8. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV1.sol/MinterDAExpV1.json +2 -2
  9. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV2.sol/MinterDAExpV2.json +2 -2
  10. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExp/MinterDAExpV3.sol/MinterDAExpV3.json +2 -2
  11. package/artifacts/contracts/archive/minter-suite/Minters/MinterDAExpSettlement/MinterDAExpSettlementV0.sol/MinterDAExpSettlementV0.json +2 -2
  12. package/artifacts/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV1.sol/MinterDAExpSettlementV1.json +3 -3
  13. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV0.sol/MinterDALinV0.json +2 -2
  14. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV1.sol/MinterDALinV1.json +2 -2
  15. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV2.sol/MinterDALinV2.json +2 -2
  16. package/artifacts/contracts/archive/minter-suite/Minters/MinterDALin/MinterDALinV3.sol/MinterDALinV3.json +2 -2
  17. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV0.sol/MinterHolderV0.json +2 -2
  18. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV1.sol/MinterHolderV1.json +2 -2
  19. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV2.sol/MinterHolderV2.json +2 -2
  20. package/artifacts/contracts/archive/minter-suite/Minters/MinterHolder/MinterHolderV3.sol/MinterHolderV3.json +2 -2
  21. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV0.sol/MinterMerkleV0.json +2 -2
  22. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV1.sol/MinterMerkleV1.json +2 -2
  23. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV2.sol/MinterMerkleV2.json +2 -2
  24. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV3.sol/MinterMerkleV3.json +2 -2
  25. package/artifacts/contracts/archive/minter-suite/Minters/MinterMerkle/MinterMerkleV4.sol/MinterMerkleV4.json +2 -2
  26. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV0.sol/MinterSetPriceV0.json +2 -2
  27. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV1.sol/MinterSetPriceV1.json +2 -2
  28. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV2.sol/MinterSetPriceV2.json +2 -2
  29. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPrice/MinterSetPriceV3.sol/MinterSetPriceV3.json +2 -2
  30. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V0.sol/MinterSetPriceERC20V0.json +2 -2
  31. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V1.sol/MinterSetPriceERC20V1.json +2 -2
  32. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V2.sol/MinterSetPriceERC20V2.json +2 -2
  33. package/artifacts/contracts/archive/minter-suite/Minters/MinterSetPriceERC20/MinterSetPriceERC20V3.sol/MinterSetPriceERC20V3.json +2 -2
  34. package/artifacts/contracts/explorations/GenArt721CoreV3_Explorations.sol/GenArt721CoreV3_Explorations.json +2 -2
  35. package/artifacts/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV1.sol/IFilteredMinterDAExpSettlementV1.json +767 -0
  36. package/artifacts/contracts/interfaces/0.8.x/IMinterFilterV0.sol/IMinterFilterV0.json +6 -0
  37. package/artifacts/contracts/interfaces/0.8.x/IRandomizerPolyptychV0.sol/IRandomizerPolyptychV0.json +87 -0
  38. package/artifacts/contracts/interfaces/0.8.x/IRandomizerV2.sol/IRandomizerV2.json +1 -1
  39. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV0.sol/MinterFilterV0.json +8 -2
  40. package/artifacts/contracts/minter-suite/MinterFilter/MinterFilterV1.sol/MinterFilterV1.json +34 -2
  41. package/artifacts/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol/MinterDAExpSettlementV2.json +1127 -0
  42. package/artifacts/contracts/minter-suite/Minters/MinterDAExpV4.sol/MinterDAExpV4.json +15 -2
  43. package/artifacts/contracts/minter-suite/Minters/MinterDALinV4.sol/MinterDALinV4.json +15 -2
  44. package/artifacts/contracts/minter-suite/Minters/MinterHolderV4.sol/MinterHolderV4.json +15 -2
  45. package/artifacts/contracts/minter-suite/Minters/MinterMerkleV5.sol/MinterMerkleV5.json +15 -2
  46. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/IGenArt721CoreContractV3WithRandomizer.json +662 -0
  47. package/artifacts/contracts/minter-suite/Minters/MinterPolyptychV0.sol/MinterPolyptychV0.json +1268 -0
  48. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol/MinterSetPriceERC20V4.json +15 -2
  49. package/artifacts/contracts/minter-suite/Minters/MinterSetPriceV4.sol/MinterSetPriceV4.json +15 -2
  50. package/artifacts/contracts/mock/GenArt721CoreV3_Engine_IncorrectCoreType.sol/GenArt721CoreV3_Engine_IncorrectCoreType.json +2 -2
  51. package/artifacts/contracts/mock/RandomizerV2_NoAssignMock.sol/RandomizerV2_NoAssignMock.json +3 -3
  52. package/contracts/BasicPolyptychRandomizerV0.sol +126 -0
  53. package/contracts/BasicRandomizerV2.sol +3 -3
  54. package/contracts/{minter-suite/Minters → archive/minter-suite/Minters/MinterDAExpSettlement}/MinterDAExpSettlementV1.sol +4 -4
  55. package/contracts/interfaces/0.8.x/IFilteredMinterDAExpSettlementV1.sol +21 -0
  56. package/contracts/interfaces/0.8.x/IMinterFilterV0.sol +6 -0
  57. package/contracts/interfaces/0.8.x/IRandomizerPolyptychV0.sol +31 -0
  58. package/contracts/interfaces/0.8.x/IRandomizerV2.sol +5 -2
  59. package/contracts/minter-suite/MinterFilter/MinterFilterV1.sol +18 -0
  60. package/contracts/minter-suite/Minters/MinterDAExpSettlementV2.sol +1312 -0
  61. package/contracts/minter-suite/Minters/MinterDAExpV4.sol +32 -4
  62. package/contracts/minter-suite/Minters/MinterDALinV4.sol +32 -5
  63. package/contracts/minter-suite/Minters/MinterHolderV4.sol +35 -6
  64. package/contracts/minter-suite/Minters/MinterMerkleV5.sol +35 -6
  65. package/contracts/minter-suite/Minters/MinterPolyptychV0.sol +998 -0
  66. package/contracts/minter-suite/Minters/MinterSetPriceERC20V4.sol +35 -6
  67. package/contracts/minter-suite/Minters/MinterSetPriceV4.sol +32 -4
  68. package/package.json +8 -2
@@ -0,0 +1,1268 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "MinterPolyptychV0",
4
+ "sourceName": "contracts/minter-suite/Minters/MinterPolyptychV0.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_genArt721Address",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_minterFilter",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_delegationRegistryAddress",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "anonymous": false,
29
+ "inputs": [
30
+ {
31
+ "indexed": true,
32
+ "internalType": "uint256",
33
+ "name": "_projectId",
34
+ "type": "uint256"
35
+ },
36
+ {
37
+ "indexed": false,
38
+ "internalType": "address[]",
39
+ "name": "_ownedNFTAddresses",
40
+ "type": "address[]"
41
+ },
42
+ {
43
+ "indexed": false,
44
+ "internalType": "uint256[]",
45
+ "name": "_ownedNFTProjectIds",
46
+ "type": "uint256[]"
47
+ }
48
+ ],
49
+ "name": "AllowedHoldersOfProjects",
50
+ "type": "event"
51
+ },
52
+ {
53
+ "anonymous": false,
54
+ "inputs": [
55
+ {
56
+ "indexed": true,
57
+ "internalType": "uint256",
58
+ "name": "_projectId",
59
+ "type": "uint256"
60
+ },
61
+ {
62
+ "indexed": false,
63
+ "internalType": "bytes32",
64
+ "name": "_key",
65
+ "type": "bytes32"
66
+ }
67
+ ],
68
+ "name": "ConfigKeyRemoved",
69
+ "type": "event"
70
+ },
71
+ {
72
+ "anonymous": false,
73
+ "inputs": [
74
+ {
75
+ "indexed": true,
76
+ "internalType": "uint256",
77
+ "name": "_projectId",
78
+ "type": "uint256"
79
+ },
80
+ {
81
+ "indexed": false,
82
+ "internalType": "bytes32",
83
+ "name": "_key",
84
+ "type": "bytes32"
85
+ },
86
+ {
87
+ "indexed": false,
88
+ "internalType": "uint256",
89
+ "name": "_value",
90
+ "type": "uint256"
91
+ }
92
+ ],
93
+ "name": "ConfigValueAddedToSet",
94
+ "type": "event"
95
+ },
96
+ {
97
+ "anonymous": false,
98
+ "inputs": [
99
+ {
100
+ "indexed": true,
101
+ "internalType": "uint256",
102
+ "name": "_projectId",
103
+ "type": "uint256"
104
+ },
105
+ {
106
+ "indexed": false,
107
+ "internalType": "bytes32",
108
+ "name": "_key",
109
+ "type": "bytes32"
110
+ },
111
+ {
112
+ "indexed": false,
113
+ "internalType": "address",
114
+ "name": "_value",
115
+ "type": "address"
116
+ }
117
+ ],
118
+ "name": "ConfigValueAddedToSet",
119
+ "type": "event"
120
+ },
121
+ {
122
+ "anonymous": false,
123
+ "inputs": [
124
+ {
125
+ "indexed": true,
126
+ "internalType": "uint256",
127
+ "name": "_projectId",
128
+ "type": "uint256"
129
+ },
130
+ {
131
+ "indexed": false,
132
+ "internalType": "bytes32",
133
+ "name": "_key",
134
+ "type": "bytes32"
135
+ },
136
+ {
137
+ "indexed": false,
138
+ "internalType": "bytes32",
139
+ "name": "_value",
140
+ "type": "bytes32"
141
+ }
142
+ ],
143
+ "name": "ConfigValueAddedToSet",
144
+ "type": "event"
145
+ },
146
+ {
147
+ "anonymous": false,
148
+ "inputs": [
149
+ {
150
+ "indexed": true,
151
+ "internalType": "uint256",
152
+ "name": "_projectId",
153
+ "type": "uint256"
154
+ },
155
+ {
156
+ "indexed": false,
157
+ "internalType": "bytes32",
158
+ "name": "_key",
159
+ "type": "bytes32"
160
+ },
161
+ {
162
+ "indexed": false,
163
+ "internalType": "uint256",
164
+ "name": "_value",
165
+ "type": "uint256"
166
+ }
167
+ ],
168
+ "name": "ConfigValueRemovedFromSet",
169
+ "type": "event"
170
+ },
171
+ {
172
+ "anonymous": false,
173
+ "inputs": [
174
+ {
175
+ "indexed": true,
176
+ "internalType": "uint256",
177
+ "name": "_projectId",
178
+ "type": "uint256"
179
+ },
180
+ {
181
+ "indexed": false,
182
+ "internalType": "bytes32",
183
+ "name": "_key",
184
+ "type": "bytes32"
185
+ },
186
+ {
187
+ "indexed": false,
188
+ "internalType": "address",
189
+ "name": "_value",
190
+ "type": "address"
191
+ }
192
+ ],
193
+ "name": "ConfigValueRemovedFromSet",
194
+ "type": "event"
195
+ },
196
+ {
197
+ "anonymous": false,
198
+ "inputs": [
199
+ {
200
+ "indexed": true,
201
+ "internalType": "uint256",
202
+ "name": "_projectId",
203
+ "type": "uint256"
204
+ },
205
+ {
206
+ "indexed": false,
207
+ "internalType": "bytes32",
208
+ "name": "_key",
209
+ "type": "bytes32"
210
+ },
211
+ {
212
+ "indexed": false,
213
+ "internalType": "bytes32",
214
+ "name": "_value",
215
+ "type": "bytes32"
216
+ }
217
+ ],
218
+ "name": "ConfigValueRemovedFromSet",
219
+ "type": "event"
220
+ },
221
+ {
222
+ "anonymous": false,
223
+ "inputs": [
224
+ {
225
+ "indexed": true,
226
+ "internalType": "uint256",
227
+ "name": "_projectId",
228
+ "type": "uint256"
229
+ },
230
+ {
231
+ "indexed": false,
232
+ "internalType": "bytes32",
233
+ "name": "_key",
234
+ "type": "bytes32"
235
+ },
236
+ {
237
+ "indexed": false,
238
+ "internalType": "bool",
239
+ "name": "_value",
240
+ "type": "bool"
241
+ }
242
+ ],
243
+ "name": "ConfigValueSet",
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": false,
257
+ "internalType": "bytes32",
258
+ "name": "_key",
259
+ "type": "bytes32"
260
+ },
261
+ {
262
+ "indexed": false,
263
+ "internalType": "uint256",
264
+ "name": "_value",
265
+ "type": "uint256"
266
+ }
267
+ ],
268
+ "name": "ConfigValueSet",
269
+ "type": "event"
270
+ },
271
+ {
272
+ "anonymous": false,
273
+ "inputs": [
274
+ {
275
+ "indexed": true,
276
+ "internalType": "uint256",
277
+ "name": "_projectId",
278
+ "type": "uint256"
279
+ },
280
+ {
281
+ "indexed": false,
282
+ "internalType": "bytes32",
283
+ "name": "_key",
284
+ "type": "bytes32"
285
+ },
286
+ {
287
+ "indexed": false,
288
+ "internalType": "address",
289
+ "name": "_value",
290
+ "type": "address"
291
+ }
292
+ ],
293
+ "name": "ConfigValueSet",
294
+ "type": "event"
295
+ },
296
+ {
297
+ "anonymous": false,
298
+ "inputs": [
299
+ {
300
+ "indexed": true,
301
+ "internalType": "uint256",
302
+ "name": "_projectId",
303
+ "type": "uint256"
304
+ },
305
+ {
306
+ "indexed": false,
307
+ "internalType": "bytes32",
308
+ "name": "_key",
309
+ "type": "bytes32"
310
+ },
311
+ {
312
+ "indexed": false,
313
+ "internalType": "bytes32",
314
+ "name": "_value",
315
+ "type": "bytes32"
316
+ }
317
+ ],
318
+ "name": "ConfigValueSet",
319
+ "type": "event"
320
+ },
321
+ {
322
+ "anonymous": false,
323
+ "inputs": [
324
+ {
325
+ "indexed": false,
326
+ "internalType": "address",
327
+ "name": "delegationRegistryAddress",
328
+ "type": "address"
329
+ }
330
+ ],
331
+ "name": "DelegationRegistryUpdated",
332
+ "type": "event"
333
+ },
334
+ {
335
+ "anonymous": false,
336
+ "inputs": [
337
+ {
338
+ "indexed": true,
339
+ "internalType": "uint256",
340
+ "name": "_projectId",
341
+ "type": "uint256"
342
+ },
343
+ {
344
+ "indexed": true,
345
+ "internalType": "uint256",
346
+ "name": "_pricePerTokenInWei",
347
+ "type": "uint256"
348
+ }
349
+ ],
350
+ "name": "PricePerTokenInWeiUpdated",
351
+ "type": "event"
352
+ },
353
+ {
354
+ "anonymous": false,
355
+ "inputs": [
356
+ {
357
+ "indexed": true,
358
+ "internalType": "uint256",
359
+ "name": "_projectId",
360
+ "type": "uint256"
361
+ },
362
+ {
363
+ "indexed": true,
364
+ "internalType": "address",
365
+ "name": "_currencyAddress",
366
+ "type": "address"
367
+ },
368
+ {
369
+ "indexed": false,
370
+ "internalType": "string",
371
+ "name": "_currencySymbol",
372
+ "type": "string"
373
+ }
374
+ ],
375
+ "name": "ProjectCurrencyInfoUpdated",
376
+ "type": "event"
377
+ },
378
+ {
379
+ "anonymous": false,
380
+ "inputs": [
381
+ {
382
+ "indexed": true,
383
+ "internalType": "uint256",
384
+ "name": "_projectId",
385
+ "type": "uint256"
386
+ },
387
+ {
388
+ "indexed": false,
389
+ "internalType": "uint256",
390
+ "name": "_maxInvocations",
391
+ "type": "uint256"
392
+ }
393
+ ],
394
+ "name": "ProjectMaxInvocationsLimitUpdated",
395
+ "type": "event"
396
+ },
397
+ {
398
+ "anonymous": false,
399
+ "inputs": [
400
+ {
401
+ "indexed": true,
402
+ "internalType": "uint256",
403
+ "name": "_projectId",
404
+ "type": "uint256"
405
+ },
406
+ {
407
+ "indexed": false,
408
+ "internalType": "bool",
409
+ "name": "_purchaseToDisabled",
410
+ "type": "bool"
411
+ }
412
+ ],
413
+ "name": "PurchaseToDisabledUpdated",
414
+ "type": "event"
415
+ },
416
+ {
417
+ "anonymous": false,
418
+ "inputs": [
419
+ {
420
+ "indexed": true,
421
+ "internalType": "address",
422
+ "name": "_NFTAddress",
423
+ "type": "address"
424
+ }
425
+ ],
426
+ "name": "RegisteredNFTAddress",
427
+ "type": "event"
428
+ },
429
+ {
430
+ "anonymous": false,
431
+ "inputs": [
432
+ {
433
+ "indexed": true,
434
+ "internalType": "uint256",
435
+ "name": "_projectId",
436
+ "type": "uint256"
437
+ },
438
+ {
439
+ "indexed": false,
440
+ "internalType": "address[]",
441
+ "name": "_ownedNFTAddresses",
442
+ "type": "address[]"
443
+ },
444
+ {
445
+ "indexed": false,
446
+ "internalType": "uint256[]",
447
+ "name": "_ownedNFTProjectIds",
448
+ "type": "uint256[]"
449
+ }
450
+ ],
451
+ "name": "RemovedHoldersOfProjects",
452
+ "type": "event"
453
+ },
454
+ {
455
+ "anonymous": false,
456
+ "inputs": [
457
+ {
458
+ "indexed": true,
459
+ "internalType": "address",
460
+ "name": "_NFTAddress",
461
+ "type": "address"
462
+ }
463
+ ],
464
+ "name": "UnregisteredNFTAddress",
465
+ "type": "event"
466
+ },
467
+ {
468
+ "inputs": [
469
+ {
470
+ "internalType": "uint256",
471
+ "name": "_projectId",
472
+ "type": "uint256"
473
+ },
474
+ {
475
+ "internalType": "address[]",
476
+ "name": "_ownedNFTAddresses",
477
+ "type": "address[]"
478
+ },
479
+ {
480
+ "internalType": "uint256[]",
481
+ "name": "_ownedNFTProjectIds",
482
+ "type": "uint256[]"
483
+ }
484
+ ],
485
+ "name": "allowHoldersOfProjects",
486
+ "outputs": [],
487
+ "stateMutability": "nonpayable",
488
+ "type": "function"
489
+ },
490
+ {
491
+ "inputs": [
492
+ {
493
+ "internalType": "uint256",
494
+ "name": "_projectId",
495
+ "type": "uint256"
496
+ },
497
+ {
498
+ "internalType": "address[]",
499
+ "name": "_ownedNFTAddressesAdd",
500
+ "type": "address[]"
501
+ },
502
+ {
503
+ "internalType": "uint256[]",
504
+ "name": "_ownedNFTProjectIdsAdd",
505
+ "type": "uint256[]"
506
+ },
507
+ {
508
+ "internalType": "address[]",
509
+ "name": "_ownedNFTAddressesRemove",
510
+ "type": "address[]"
511
+ },
512
+ {
513
+ "internalType": "uint256[]",
514
+ "name": "_ownedNFTProjectIdsRemove",
515
+ "type": "uint256[]"
516
+ }
517
+ ],
518
+ "name": "allowRemoveHoldersOfProjects",
519
+ "outputs": [],
520
+ "stateMutability": "nonpayable",
521
+ "type": "function"
522
+ },
523
+ {
524
+ "inputs": [
525
+ {
526
+ "internalType": "uint256",
527
+ "name": "",
528
+ "type": "uint256"
529
+ },
530
+ {
531
+ "internalType": "address",
532
+ "name": "",
533
+ "type": "address"
534
+ },
535
+ {
536
+ "internalType": "uint256",
537
+ "name": "",
538
+ "type": "uint256"
539
+ }
540
+ ],
541
+ "name": "allowedProjectHolders",
542
+ "outputs": [
543
+ {
544
+ "internalType": "bool",
545
+ "name": "",
546
+ "type": "bool"
547
+ }
548
+ ],
549
+ "stateMutability": "view",
550
+ "type": "function"
551
+ },
552
+ {
553
+ "inputs": [
554
+ {
555
+ "internalType": "uint256",
556
+ "name": "_projectId",
557
+ "type": "uint256"
558
+ }
559
+ ],
560
+ "name": "checkYourAllowanceOfProjectERC20",
561
+ "outputs": [
562
+ {
563
+ "internalType": "uint256",
564
+ "name": "remaining",
565
+ "type": "uint256"
566
+ }
567
+ ],
568
+ "stateMutability": "view",
569
+ "type": "function"
570
+ },
571
+ {
572
+ "inputs": [],
573
+ "name": "delegationRegistryAddress",
574
+ "outputs": [
575
+ {
576
+ "internalType": "address",
577
+ "name": "",
578
+ "type": "address"
579
+ }
580
+ ],
581
+ "stateMutability": "view",
582
+ "type": "function"
583
+ },
584
+ {
585
+ "inputs": [],
586
+ "name": "genArt721CoreAddress",
587
+ "outputs": [
588
+ {
589
+ "internalType": "address",
590
+ "name": "",
591
+ "type": "address"
592
+ }
593
+ ],
594
+ "stateMutability": "view",
595
+ "type": "function"
596
+ },
597
+ {
598
+ "inputs": [],
599
+ "name": "getNumRegisteredNFTAddresses",
600
+ "outputs": [
601
+ {
602
+ "internalType": "uint256",
603
+ "name": "",
604
+ "type": "uint256"
605
+ }
606
+ ],
607
+ "stateMutability": "view",
608
+ "type": "function"
609
+ },
610
+ {
611
+ "inputs": [
612
+ {
613
+ "internalType": "uint256",
614
+ "name": "_projectId",
615
+ "type": "uint256"
616
+ }
617
+ ],
618
+ "name": "getPriceInfo",
619
+ "outputs": [
620
+ {
621
+ "internalType": "bool",
622
+ "name": "isConfigured",
623
+ "type": "bool"
624
+ },
625
+ {
626
+ "internalType": "uint256",
627
+ "name": "tokenPriceInWei",
628
+ "type": "uint256"
629
+ },
630
+ {
631
+ "internalType": "string",
632
+ "name": "currencySymbol",
633
+ "type": "string"
634
+ },
635
+ {
636
+ "internalType": "address",
637
+ "name": "currencyAddress",
638
+ "type": "address"
639
+ }
640
+ ],
641
+ "stateMutability": "view",
642
+ "type": "function"
643
+ },
644
+ {
645
+ "inputs": [
646
+ {
647
+ "internalType": "uint256",
648
+ "name": "_index",
649
+ "type": "uint256"
650
+ }
651
+ ],
652
+ "name": "getRegisteredNFTAddressAt",
653
+ "outputs": [
654
+ {
655
+ "internalType": "address",
656
+ "name": "NFTAddress",
657
+ "type": "address"
658
+ }
659
+ ],
660
+ "stateMutability": "view",
661
+ "type": "function"
662
+ },
663
+ {
664
+ "inputs": [
665
+ {
666
+ "internalType": "uint256",
667
+ "name": "_projectId",
668
+ "type": "uint256"
669
+ }
670
+ ],
671
+ "name": "getYourBalanceOfProjectERC20",
672
+ "outputs": [
673
+ {
674
+ "internalType": "uint256",
675
+ "name": "balance",
676
+ "type": "uint256"
677
+ }
678
+ ],
679
+ "stateMutability": "view",
680
+ "type": "function"
681
+ },
682
+ {
683
+ "inputs": [
684
+ {
685
+ "internalType": "uint256",
686
+ "name": "_projectId",
687
+ "type": "uint256"
688
+ }
689
+ ],
690
+ "name": "incrementPolyptychProjectPanelId",
691
+ "outputs": [],
692
+ "stateMutability": "nonpayable",
693
+ "type": "function"
694
+ },
695
+ {
696
+ "inputs": [
697
+ {
698
+ "internalType": "uint256",
699
+ "name": "_projectId",
700
+ "type": "uint256"
701
+ },
702
+ {
703
+ "internalType": "address",
704
+ "name": "_ownedNFTAddress",
705
+ "type": "address"
706
+ },
707
+ {
708
+ "internalType": "uint256",
709
+ "name": "_ownedNFTTokenId",
710
+ "type": "uint256"
711
+ }
712
+ ],
713
+ "name": "isAllowlistedNFT",
714
+ "outputs": [
715
+ {
716
+ "internalType": "bool",
717
+ "name": "",
718
+ "type": "bool"
719
+ }
720
+ ],
721
+ "stateMutability": "view",
722
+ "type": "function"
723
+ },
724
+ {
725
+ "inputs": [],
726
+ "name": "isEngine",
727
+ "outputs": [
728
+ {
729
+ "internalType": "bool",
730
+ "name": "",
731
+ "type": "bool"
732
+ }
733
+ ],
734
+ "stateMutability": "view",
735
+ "type": "function"
736
+ },
737
+ {
738
+ "inputs": [
739
+ {
740
+ "internalType": "uint256",
741
+ "name": "_projectId",
742
+ "type": "uint256"
743
+ },
744
+ {
745
+ "internalType": "uint256",
746
+ "name": "_maxInvocations",
747
+ "type": "uint256"
748
+ }
749
+ ],
750
+ "name": "manuallyLimitProjectMaxInvocations",
751
+ "outputs": [],
752
+ "stateMutability": "nonpayable",
753
+ "type": "function"
754
+ },
755
+ {
756
+ "inputs": [],
757
+ "name": "minterFilterAddress",
758
+ "outputs": [
759
+ {
760
+ "internalType": "address",
761
+ "name": "",
762
+ "type": "address"
763
+ }
764
+ ],
765
+ "stateMutability": "view",
766
+ "type": "function"
767
+ },
768
+ {
769
+ "inputs": [],
770
+ "name": "minterType",
771
+ "outputs": [
772
+ {
773
+ "internalType": "string",
774
+ "name": "",
775
+ "type": "string"
776
+ }
777
+ ],
778
+ "stateMutability": "view",
779
+ "type": "function"
780
+ },
781
+ {
782
+ "inputs": [],
783
+ "name": "minterVersion",
784
+ "outputs": [
785
+ {
786
+ "internalType": "string",
787
+ "name": "",
788
+ "type": "string"
789
+ }
790
+ ],
791
+ "stateMutability": "view",
792
+ "type": "function"
793
+ },
794
+ {
795
+ "inputs": [
796
+ {
797
+ "internalType": "uint256",
798
+ "name": "",
799
+ "type": "uint256"
800
+ },
801
+ {
802
+ "internalType": "bytes12",
803
+ "name": "",
804
+ "type": "bytes12"
805
+ }
806
+ ],
807
+ "name": "polyptychPanelHashSeedIsMinted",
808
+ "outputs": [
809
+ {
810
+ "internalType": "bool",
811
+ "name": "",
812
+ "type": "bool"
813
+ }
814
+ ],
815
+ "stateMutability": "view",
816
+ "type": "function"
817
+ },
818
+ {
819
+ "inputs": [
820
+ {
821
+ "internalType": "uint24",
822
+ "name": "_panelId",
823
+ "type": "uint24"
824
+ },
825
+ {
826
+ "internalType": "address",
827
+ "name": "_ownedNFTAddress",
828
+ "type": "address"
829
+ },
830
+ {
831
+ "internalType": "uint256",
832
+ "name": "_ownedNFTTokenId",
833
+ "type": "uint256"
834
+ }
835
+ ],
836
+ "name": "polyptychPanelMintedWithToken",
837
+ "outputs": [
838
+ {
839
+ "internalType": "bool",
840
+ "name": "panelMinted",
841
+ "type": "bool"
842
+ }
843
+ ],
844
+ "stateMutability": "view",
845
+ "type": "function"
846
+ },
847
+ {
848
+ "inputs": [
849
+ {
850
+ "internalType": "uint256",
851
+ "name": "",
852
+ "type": "uint256"
853
+ }
854
+ ],
855
+ "name": "projectConfig",
856
+ "outputs": [
857
+ {
858
+ "internalType": "bool",
859
+ "name": "maxHasBeenInvoked",
860
+ "type": "bool"
861
+ },
862
+ {
863
+ "internalType": "bool",
864
+ "name": "priceIsConfigured",
865
+ "type": "bool"
866
+ },
867
+ {
868
+ "internalType": "uint24",
869
+ "name": "maxInvocations",
870
+ "type": "uint24"
871
+ },
872
+ {
873
+ "internalType": "uint24",
874
+ "name": "polyptychPanelId",
875
+ "type": "uint24"
876
+ },
877
+ {
878
+ "internalType": "address",
879
+ "name": "currencyAddress",
880
+ "type": "address"
881
+ },
882
+ {
883
+ "internalType": "uint256",
884
+ "name": "pricePerTokenInWei",
885
+ "type": "uint256"
886
+ },
887
+ {
888
+ "internalType": "string",
889
+ "name": "currencySymbol",
890
+ "type": "string"
891
+ }
892
+ ],
893
+ "stateMutability": "view",
894
+ "type": "function"
895
+ },
896
+ {
897
+ "inputs": [
898
+ {
899
+ "internalType": "uint256",
900
+ "name": "_projectId",
901
+ "type": "uint256"
902
+ }
903
+ ],
904
+ "name": "projectMaxHasBeenInvoked",
905
+ "outputs": [
906
+ {
907
+ "internalType": "bool",
908
+ "name": "",
909
+ "type": "bool"
910
+ }
911
+ ],
912
+ "stateMutability": "view",
913
+ "type": "function"
914
+ },
915
+ {
916
+ "inputs": [
917
+ {
918
+ "internalType": "uint256",
919
+ "name": "_projectId",
920
+ "type": "uint256"
921
+ }
922
+ ],
923
+ "name": "projectMaxInvocations",
924
+ "outputs": [
925
+ {
926
+ "internalType": "uint256",
927
+ "name": "",
928
+ "type": "uint256"
929
+ }
930
+ ],
931
+ "stateMutability": "view",
932
+ "type": "function"
933
+ },
934
+ {
935
+ "inputs": [
936
+ {
937
+ "internalType": "uint256",
938
+ "name": "_projectId",
939
+ "type": "uint256"
940
+ },
941
+ {
942
+ "internalType": "address",
943
+ "name": "_ownedNFTAddress",
944
+ "type": "address"
945
+ },
946
+ {
947
+ "internalType": "uint256",
948
+ "name": "_ownedNFTTokenId",
949
+ "type": "uint256"
950
+ }
951
+ ],
952
+ "name": "purchase",
953
+ "outputs": [
954
+ {
955
+ "internalType": "uint256",
956
+ "name": "tokenId",
957
+ "type": "uint256"
958
+ }
959
+ ],
960
+ "stateMutability": "payable",
961
+ "type": "function"
962
+ },
963
+ {
964
+ "inputs": [
965
+ {
966
+ "internalType": "uint256",
967
+ "name": "",
968
+ "type": "uint256"
969
+ }
970
+ ],
971
+ "name": "purchase",
972
+ "outputs": [
973
+ {
974
+ "internalType": "uint256",
975
+ "name": "",
976
+ "type": "uint256"
977
+ }
978
+ ],
979
+ "stateMutability": "payable",
980
+ "type": "function"
981
+ },
982
+ {
983
+ "inputs": [
984
+ {
985
+ "internalType": "address",
986
+ "name": "_to",
987
+ "type": "address"
988
+ },
989
+ {
990
+ "internalType": "uint256",
991
+ "name": "_projectId",
992
+ "type": "uint256"
993
+ },
994
+ {
995
+ "internalType": "address",
996
+ "name": "_ownedNFTAddress",
997
+ "type": "address"
998
+ },
999
+ {
1000
+ "internalType": "uint256",
1001
+ "name": "_ownedNFTTokenId",
1002
+ "type": "uint256"
1003
+ },
1004
+ {
1005
+ "internalType": "address",
1006
+ "name": "_vault",
1007
+ "type": "address"
1008
+ }
1009
+ ],
1010
+ "name": "purchaseTo",
1011
+ "outputs": [
1012
+ {
1013
+ "internalType": "uint256",
1014
+ "name": "tokenId",
1015
+ "type": "uint256"
1016
+ }
1017
+ ],
1018
+ "stateMutability": "payable",
1019
+ "type": "function"
1020
+ },
1021
+ {
1022
+ "inputs": [
1023
+ {
1024
+ "internalType": "address",
1025
+ "name": "",
1026
+ "type": "address"
1027
+ },
1028
+ {
1029
+ "internalType": "uint256",
1030
+ "name": "",
1031
+ "type": "uint256"
1032
+ }
1033
+ ],
1034
+ "name": "purchaseTo",
1035
+ "outputs": [
1036
+ {
1037
+ "internalType": "uint256",
1038
+ "name": "",
1039
+ "type": "uint256"
1040
+ }
1041
+ ],
1042
+ "stateMutability": "payable",
1043
+ "type": "function"
1044
+ },
1045
+ {
1046
+ "inputs": [
1047
+ {
1048
+ "internalType": "address",
1049
+ "name": "_to",
1050
+ "type": "address"
1051
+ },
1052
+ {
1053
+ "internalType": "uint256",
1054
+ "name": "_projectId",
1055
+ "type": "uint256"
1056
+ },
1057
+ {
1058
+ "internalType": "address",
1059
+ "name": "_ownedNFTAddress",
1060
+ "type": "address"
1061
+ },
1062
+ {
1063
+ "internalType": "uint256",
1064
+ "name": "_ownedNFTTokenId",
1065
+ "type": "uint256"
1066
+ }
1067
+ ],
1068
+ "name": "purchaseTo",
1069
+ "outputs": [
1070
+ {
1071
+ "internalType": "uint256",
1072
+ "name": "tokenId",
1073
+ "type": "uint256"
1074
+ }
1075
+ ],
1076
+ "stateMutability": "payable",
1077
+ "type": "function"
1078
+ },
1079
+ {
1080
+ "inputs": [
1081
+ {
1082
+ "internalType": "address",
1083
+ "name": "_to",
1084
+ "type": "address"
1085
+ },
1086
+ {
1087
+ "internalType": "uint256",
1088
+ "name": "_projectId",
1089
+ "type": "uint256"
1090
+ },
1091
+ {
1092
+ "internalType": "address",
1093
+ "name": "_ownedNFTAddress",
1094
+ "type": "address"
1095
+ },
1096
+ {
1097
+ "internalType": "uint256",
1098
+ "name": "_ownedNFTTokenId",
1099
+ "type": "uint256"
1100
+ },
1101
+ {
1102
+ "internalType": "address",
1103
+ "name": "_vault",
1104
+ "type": "address"
1105
+ }
1106
+ ],
1107
+ "name": "purchaseTo_dlc",
1108
+ "outputs": [
1109
+ {
1110
+ "internalType": "uint256",
1111
+ "name": "tokenId",
1112
+ "type": "uint256"
1113
+ }
1114
+ ],
1115
+ "stateMutability": "payable",
1116
+ "type": "function"
1117
+ },
1118
+ {
1119
+ "inputs": [
1120
+ {
1121
+ "internalType": "uint256",
1122
+ "name": "_projectId",
1123
+ "type": "uint256"
1124
+ },
1125
+ {
1126
+ "internalType": "address",
1127
+ "name": "_ownedNFTAddress",
1128
+ "type": "address"
1129
+ },
1130
+ {
1131
+ "internalType": "uint256",
1132
+ "name": "_ownedNFTTokenId",
1133
+ "type": "uint256"
1134
+ }
1135
+ ],
1136
+ "name": "purchase_nnf",
1137
+ "outputs": [
1138
+ {
1139
+ "internalType": "uint256",
1140
+ "name": "tokenId",
1141
+ "type": "uint256"
1142
+ }
1143
+ ],
1144
+ "stateMutability": "payable",
1145
+ "type": "function"
1146
+ },
1147
+ {
1148
+ "inputs": [
1149
+ {
1150
+ "internalType": "address",
1151
+ "name": "_NFTAddress",
1152
+ "type": "address"
1153
+ }
1154
+ ],
1155
+ "name": "registerNFTAddress",
1156
+ "outputs": [],
1157
+ "stateMutability": "nonpayable",
1158
+ "type": "function"
1159
+ },
1160
+ {
1161
+ "inputs": [
1162
+ {
1163
+ "internalType": "uint256",
1164
+ "name": "_projectId",
1165
+ "type": "uint256"
1166
+ },
1167
+ {
1168
+ "internalType": "address[]",
1169
+ "name": "_ownedNFTAddresses",
1170
+ "type": "address[]"
1171
+ },
1172
+ {
1173
+ "internalType": "uint256[]",
1174
+ "name": "_ownedNFTProjectIds",
1175
+ "type": "uint256[]"
1176
+ }
1177
+ ],
1178
+ "name": "removeHoldersOfProjects",
1179
+ "outputs": [],
1180
+ "stateMutability": "nonpayable",
1181
+ "type": "function"
1182
+ },
1183
+ {
1184
+ "inputs": [
1185
+ {
1186
+ "internalType": "uint256",
1187
+ "name": "_projectId",
1188
+ "type": "uint256"
1189
+ }
1190
+ ],
1191
+ "name": "setProjectMaxInvocations",
1192
+ "outputs": [],
1193
+ "stateMutability": "nonpayable",
1194
+ "type": "function"
1195
+ },
1196
+ {
1197
+ "inputs": [
1198
+ {
1199
+ "internalType": "uint256",
1200
+ "name": "_projectId",
1201
+ "type": "uint256"
1202
+ }
1203
+ ],
1204
+ "name": "togglePurchaseToDisabled",
1205
+ "outputs": [],
1206
+ "stateMutability": "view",
1207
+ "type": "function"
1208
+ },
1209
+ {
1210
+ "inputs": [
1211
+ {
1212
+ "internalType": "address",
1213
+ "name": "_NFTAddress",
1214
+ "type": "address"
1215
+ }
1216
+ ],
1217
+ "name": "unregisterNFTAddress",
1218
+ "outputs": [],
1219
+ "stateMutability": "nonpayable",
1220
+ "type": "function"
1221
+ },
1222
+ {
1223
+ "inputs": [
1224
+ {
1225
+ "internalType": "uint256",
1226
+ "name": "_projectId",
1227
+ "type": "uint256"
1228
+ },
1229
+ {
1230
+ "internalType": "uint256",
1231
+ "name": "_pricePerTokenInWei",
1232
+ "type": "uint256"
1233
+ }
1234
+ ],
1235
+ "name": "updatePricePerTokenInWei",
1236
+ "outputs": [],
1237
+ "stateMutability": "nonpayable",
1238
+ "type": "function"
1239
+ },
1240
+ {
1241
+ "inputs": [
1242
+ {
1243
+ "internalType": "uint256",
1244
+ "name": "_projectId",
1245
+ "type": "uint256"
1246
+ },
1247
+ {
1248
+ "internalType": "string",
1249
+ "name": "_currencySymbol",
1250
+ "type": "string"
1251
+ },
1252
+ {
1253
+ "internalType": "address",
1254
+ "name": "_currencyAddress",
1255
+ "type": "address"
1256
+ }
1257
+ ],
1258
+ "name": "updateProjectCurrencyInfo",
1259
+ "outputs": [],
1260
+ "stateMutability": "nonpayable",
1261
+ "type": "function"
1262
+ }
1263
+ ],
1264
+ "bytecode": "0x6101606040523480156200001257600080fd5b506040516200432138038062004321833981016040819052620000359162000373565b6001600055826200004681620001d5565b1515608052506001600160a01b0383811660e081905261010052811660a08190526040519081527f836360d1b094a7de3c3eab3d1185f3a5939467c23d4a12709dbdbf8c8d7e2f3b9060200160405180910390a16001600160a01b0380821660c052828116610120819052610140819052604080516392a10f8360e01b81529051928616926392a10f839160048082019260209290919082900301816000875af1158015620000f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200011f9190620003bd565b6001600160a01b0316146200017b5760405162461bcd60e51b815260206004820152601860248201527f496c6c6567616c20636f6e74726163742070616972696e67000000000000000060448201526064015b60405180910390fd5b608051620001cc5760405162461bcd60e51b815260206004820152601c60248201527f4f6e6c7920737570706f72747320563320456e67696e6520636f726500000000604482015260640162000172565b50505062000413565b6040516000602482018190526044820181905290819060640160408051601f198184030181529181526020820180516001600160e01b0316638639415b60e01b1790525190915060009081906001600160a01b0386169062000239908590620003e2565b6000604051808303816000865af19150503d806000811462000278576040519150601f19603f3d011682016040523d82523d6000602084013e6200027d565b606091505b509150915081620002df5760405162461bcd60e51b815260206004820152602560248201527f6765745072696d617279526576656e756553706c69747328292063616c6c2066604482015264185a5b195960da1b606482015260840162000172565b805160c0819003620002f75750600095945050505050565b80610100036200030d5750600195945050505050565b60405162461bcd60e51b815260206004820152601e60248201527f556e657870656374656420726576656e75652073706c69742062797465730000604482015260640162000172565b80516001600160a01b03811681146200036e57600080fd5b919050565b6000806000606084860312156200038957600080fd5b620003948462000356565b9250620003a46020850162000356565b9150620003b46040850162000356565b90509250925092565b600060208284031215620003d057600080fd5b620003db8262000356565b9392505050565b6000825160005b81811015620004055760208186018101518583015201620003e9565b506000920191825250919050565b60805160a05160c05160e051610100516101205161014051613e2e620004f36000396000610c170152600061062a015260008181610981015281816109ff01528181610b2701528181610cea0152818161127601528181611382015281816114e0015281816115a6015281816117d7015281816118d1015281816119b201528181611aa601528181611cd4015281816120960152818161241e01526126a70152600081816104470152818161118a015261120a015260006108a7015260006105300152600081816105f6015281816128b70152612d200152613e2e6000f3fe6080604052600436106101ab5760003560e01c806392a10f83116100e857806392a10f831461043557806399c0bbdc146104765780639ab7fb8a1461048b578063a647300c146104ab578063a9809600146104cb578063b00abb64146104eb578063bc8ff001146104fe578063bf5bf5f81461051e578063c71b1b7114610552578063d195b36514610585578063d3ddabe6146105a5578063db6921b2146105e4578063dd85582f14610618578063e2849bd51461064c578063e9d1e8ac1461066c578063efef39a1146106a9578063f4632103146106b7578063f7bd4b88146106d757600080fd5b806111cd146101b0578061aa52146101d65780630b4f2e28146101e95780630ed79c4e1461020b5780631607c9951461022b57806328c5c4e51461024b57806340d1397e1461025e578063462add461461027e57806347b14e03146102be5780634fd1b70e146102f95780634ff5759d1461031957806356690aaf14610339578063650e5d6d146101d65780636cb9b7ff14610371578063774159c6146103915780637994db09146103c1578063891407c0146103e157806390d355b7146103f4575b600080fd5b6101c36101be36600461328b565b6106f7565b6040519081526020015b60405180910390f35b6101c36101e43660046132ea565b611246565b3480156101f557600080fd5b50610209610204366004613322565b61125e565b005b34801561021757600080fd5b5061020961022636600461333b565b611362565b34801561023757600080fd5b50610209610246366004613358565b6114c8565b6101c361025936600461328b565b6117a6565b34801561026a57600080fd5b50610209610279366004613322565b6117bf565b34801561028a57600080fd5b506102ae610299366004613322565b60009081526002602052604090205460ff1690565b60405190151581526020016101cd565b3480156102ca57600080fd5b506102ae6102d9366004613390565b600160209081526000928352604080842090915290825290205460ff1681565b34801561030557600080fd5b506102096103143660046134f8565b6118b9565b34801561032557600080fd5b5061020961033436600461333b565b611992565b34801561034557600080fd5b506101c3610354366004613322565b60009081526002602052604090205462010000900462ffffff1690565b34801561037d57600080fd5b5061020961038c366004613358565b611a8e565b34801561039d57600080fd5b506103b16103ac366004613322565b611bc7565b6040516101cd94939291906135fe565b3480156103cd57600080fd5b506102096103dc366004613638565b611cbc565b6101c36103ef3660046136a4565b611f30565b34801561040057600080fd5b506102ae61040f3660046132ea565b600560209081526000938452604080852082529284528284209052825290205460ff1681565b34801561044157600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b6040516101cd91906136d0565b34801561048257600080fd5b506101c3611f76565b34801561049757600080fd5b506102ae6104a63660046136e4565b611f87565b3480156104b757600080fd5b506102096104c6366004613638565b61207e565b3480156104d757600080fd5b506101c36104e6366004613322565b612274565b6101c36104f936600461371c565b6122fd565b34801561050a57600080fd5b50610469610519366004613322565b612316565b34801561052a57600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561055e57600080fd5b5061057261056d366004613322565b612323565b6040516101cd9796959493929190613764565b34801561059157600080fd5b506102096105a03660046137bf565b612406565b3480156105b157600080fd5b506105d760405180604001604052806006815260200165076302e312e360d41b81525081565b6040516101cd919061386d565b3480156105f057600080fd5b506102ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062457600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561065857600080fd5b506102ae6106673660046132ea565b6125fb565b34801561067857600080fd5b506105d76040518060400160405280601181526020017004d696e746572506f6c797074796368563607c1b81525081565b6101c36103ef366004613322565b3480156106c357600080fd5b506101c36106d2366004613322565b612640565b3480156106e357600080fd5b506102096106f2366004613322565b612684565b60006002600054036107505760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600081815586815260209190915260409020805460ff16156107c45760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b6064820152608401610747565b8054610100900460ff166108115760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610747565b61081c8686866125fb565b6108605760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610747565b336001600160a01b0384161561096857604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528781166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109149190613890565b9050806109635760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610747565b849150505b604051630ea5613f60e01b8152600481018890526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630ea5613f9060240160c060405180830381865afa1580156109d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f491906138ab565b5050505050905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a47d29cb8a6040518263ffffffff1660e01b8152600401610a4b91815260200190565b602060405180830381865afa158015610a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c919061390a565b9050600082610a9e620f42408c61393d565b610aa89190613954565b604051634d01727d60e11b8152600481018a905290915089906000906001600160a01b03831690639a02e4fa90602401602060405180830381865afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b199190613967565b9050610b258c8261278d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba9919061390a565b6040516359e4a2ad60e01b8152600481018590526001600160a01b0319831660248201526001600160a01b0391909116906359e4a2ad90604401600060405180830381600087803b158015610bfd57600080fd5b505af1158015610c11573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630d4d15138e8e896040518463ffffffff1660e01b8152600401610c83939291906001600160a01b0393841681526020810192909252909116604082015260600190565b6020604051808303816000875af1158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc69190613984565b604051634d01727d60e11b8152600481018290529098506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639a02e4fa90602401602060405180830381865afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d559190613967565b90506001600160a01b031980821690831614610db05760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b6044820152606401610747565b8754620f42408a066001019062010000900462ffffff1680821115610e155760405162461bcd60e51b815260206004820152601b60248201527a13585e1a5b5d5b481a5b9d9bd8d85d1a5bdb9cc81c995858da1959602a1b6044820152606401610747565b808203610e2857895460ff19166001178a555b50506001600160a01b0385163303610ede578d6001600160a01b03168c6001600160a01b0316636352211e8d6040518263ffffffff1660e01b8152600401610e7291815260200190565b602060405180830381865afa158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb3919061390a565b6001600160a01b031614610ed95760405162461bcd60e51b81526004016107479061399d565b610f72565b6040516331a9108f60e11b8152600481018c90526001600160a01b0380891691908e1690636352211e90602401602060405180830381865afa158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c919061390a565b6001600160a01b031614610f725760405162461bcd60e51b81526004016107479061399d565b60018801548854600160401b90046001600160a01b031680156111b35734156110035760405162461bcd60e51b815260206004820152603f60248201527f746869732070726f6a6563742061636365707473206120646966666572656e7460448201527f2063757272656e637920616e642063616e6e6f742061636365707420455448006064820152608401610747565b604051636eb1769f60e11b815282906001600160a01b0383169063dd62ed3e9061103390339030906004016139c8565b602060405180830381865afa158015611050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110749190613984565b10156110cd5760405162461bcd60e51b815260206004820152602260248201527f496e73756666696369656e742046756e647320417070726f76656420666f72206044820152610a8b60f31b6064820152608401610747565b6040516370a0823160e01b815282906001600160a01b038316906370a08231906110fb9033906004016136d0565b602060405180830381865afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113c9190613984565b10156111825760405162461bcd60e51b815260206004820152601560248201527424b739bab33334b1b4b2b73a103130b630b731b29760591b6044820152606401610747565b6111ae8f83837f00000000000000000000000000000000000000000000000000000000000000006128ad565b61122e565b813410156112035760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e74216044820152606401610747565b61122e8f837f0000000000000000000000000000000000000000000000000000000000000000612be7565b50505050505050505050600160005595945050505050565b60006112563385858560006106f7565b949350505050565b60405163a47d29cb60e01b81526004810182905281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa1580156112c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e9919061390a565b6001600160a01b0316336001600160a01b0316146113195760405162461bcd60e51b8152600401610747906139e2565b60008281526002602052604090208054600160281b900462ffffff1690600561134183613a07565b91906101000a81548162ffffff021916908362ffffff160217905550505050565b60405163230448b160e01b815263076bce2760e11b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b1906113bb90339030908690600401613a29565b6020604051808303816000875af11580156113da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fe9190613890565b61141a5760405162461bcd60e51b815260040161074790613a56565b604051634d01727d60e11b8152600060048201526001600160a01b03831690639a02e4fa90602401602060405180830381865afa15801561145f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114839190613967565b5061148f600383612c9d565b506040516001600160a01b038316907f7475e948f72f2714b1984b09949d13da2ddbae9f91e31da0faa380c0095b971c90600090a25050565b60405163a47d29cb60e01b81526004810183905282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa15801561152f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611553919061390a565b6001600160a01b0316336001600160a01b0316146115835760405162461bcd60e51b8152600401610747906139e2565b604051630ea5613f60e01b81526004810184905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa1580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161191906138ab565b50929550929350505050818411156116b15760405162461bcd60e51b815260206004820152605760248201527f43616e6e6f7420696e6372656173652070726f6a656374206d617820696e766f60448201527f636174696f6e732061626f766520636f726520636f6e7472616374207365742060648201527670726f6a656374206d617820696e766f636174696f6e7360481b608482015260a401610747565b808410156117335760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207365742070726f6a656374206d617820696e766f636174696f60448201527f6e7320746f206c657373207468616e2063757272656e7420696e766f636174696064820152626f6e7360e81b608482015260a401610747565b60008581526002602052604090819020805460ff1962ffffff881662010000021664ffffff00ff19909116178387141790555185907f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906117979087815260200190565b60405180910390a25050505050565b60006117b586868686866106f7565b9695505050505050565b60405163a47d29cb60e01b81526004810182905281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015611826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184a919061390a565b6001600160a01b0316336001600160a01b03161461187a5760405162461bcd60e51b8152600401610747906139e2565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610747565b60405163a47d29cb60e01b81526004810186905285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015611920573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611944919061390a565b6001600160a01b0316336001600160a01b0316146119745760405162461bcd60e51b8152600401610747906139e2565b61197f868686611cbc565b61198a86848461207e565b505050505050565b60405163230448b160e01b8152634ff5759d60e01b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b1906119eb90339030908690600401613a29565b6020604051808303816000875af1158015611a0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2e9190613890565b611a4a5760405162461bcd60e51b815260040161074790613a56565b611a55600383612cb9565b506040516001600160a01b038316907f16e28d6cac0e892c58cee90af3dc883220abe36e25201d7117c4f3aaabf1c3f090600090a25050565b60405163a47d29cb60e01b81526004810183905282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015611af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b19919061390a565b6001600160a01b0316336001600160a01b031614611b495760405162461bcd60e51b8152600401610747906139e2565b60008381526002602052604080822060018101859055805461ff00191661010017815590519091849186917f26118a27aca826f829f3bfe21b140b4455c00b434849bd0da50d1e1a9720fb5c91a3805462010000900462ffffff16158015611bb35750805460ff16155b15611bc157611bc184612684565b50505050565b600081815260026020526040902080546001820154610100820460ff16929091606091600160401b9091046001600160a01b03169081611c24576040518060400160405280600381526020016208aa8960eb1b8152509250611cb4565b806002018054611c3390613a8a565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5f90613a8a565b8015611cac5780601f10611c8157610100808354040283529160200191611cac565b820191906000526020600020905b815481529060010190602001808311611c8f57829003601f168201915b505050505092505b509193509193565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015611d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d47919061390a565b6001600160a01b0316336001600160a01b031614611d775760405162461bcd60e51b8152600401610747906139e2565b8151835114611dc85760405162461bcd60e51b815260206004820152601f60248201527f4c656e677468206f662061646420617272617973206d757374206d61746368006044820152606401610747565b60005b8351811015611eef57611e01848281518110611de957611de9613ac4565b60200260200101516003612cce90919063ffffffff16565b611e4d5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c792052656769737465726564204e4654204164647265737365730000006044820152606401610747565b6000858152600560205260408120855160019290879085908110611e7357611e73613ac4565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000858481518110611eaf57611eaf613ac4565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ee790613ada565b915050611dcb565b50837fba2ec6d92cd62364c8e443b484b3e1f72f1ee9e161c1f871de1a60d83c89558b8484604051611f22929190613af3565b60405180910390a250505050565b60405162461bcd60e51b815260206004820152601860248201527704d75737420636c61696d204e4654206f776e6572736869760441b6044820152600090606401610747565b6000611f826003612cf0565b905090565b604051634d01727d60e11b81526004810182905260009081906001600160a01b03851690639a02e4fa90602401602060405180830381865afa158015611fd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff59190613967565b90506001600160a01b031981166120485760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081d1bdad95b881a185cda081cd95959604a1b6044820152606401610747565b62ffffff851660009081526001602090815260408083206001600160a01b03199094168352929052205460ff1690509392505050565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa1580156120e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612109919061390a565b6001600160a01b0316336001600160a01b0316146121395760405162461bcd60e51b8152600401610747906139e2565b81518351146121955760405162461bcd60e51b815260206004820152602260248201527f4c656e677468206f662072656d6f766520617272617973206d757374206d61746044820152610c6d60f31b6064820152608401610747565b60005b8351811015612241576000858152600560205260408120855182908790859081106121c5576121c5613ac4565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600085848151811061220157612201613ac4565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061223990613ada565b915050612198565b50837f2e3dced83b61aee20d72f4bdc7e6997a0f8616af4067d3aa92afe2b9b0532d1c8484604051611f22929190613af3565b6000818152600260205260408082205490516370a0823160e01b8152600160401b9091046001600160a01b0316906370a08231906122b69033906004016136d0565b602060405180830381865afa1580156122d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f79190613984565b92915050565b600061230d8585858560006106f7565b95945050505050565b60006122f7600383612cfa565b600260208190526000918252604090912080546001820154928201805460ff8084169561010085049091169462010000850462ffffff90811695600160281b810490911694600160401b9091046001600160a01b03169361238390613a8a565b80601f01602080910402602001604051908101604052809291908181526020018280546123af90613a8a565b80156123fc5780601f106123d1576101008083540402835291602001916123fc565b820191906000526020600020905b8154815290600101906020018083116123df57829003601f168201915b5050505050905087565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa15801561246d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612491919061390a565b6001600160a01b0316336001600160a01b0316146124c15760405162461bcd60e51b8152600401610747906139e2565b6040516208aa8960eb1b60208201526001600160a01b038316159060230160405160208183030381529060405280519060200120846040516020016125069190613b77565b60405160208183030381529060405280519060200120141515146125675760405162461bcd60e51b8152602060048201526018602482015277455448206973206f6e6c79206e756c6c206164647265737360401b6044820152606401610747565b6000848152600260208190526040909120016125838482613bd9565b50600084815260026020526040908190208054600160401b600160e01b031916600160401b6001600160a01b03861690810291909117909155905185907fe6c8c6160f844a27204e2b7fb4b7fb9f10e5d322fa850096bef29dc1d0f445c1906125ed90879061386d565b60405180910390a350505050565b60008061260b620f424084613c98565b60009586526005602090815260408088206001600160a01b039790971688529581528587209187525250505090205460ff1690565b600081815260026020526040808220549051636eb1769f60e11b8152600160401b9091046001600160a01b03169063dd62ed3e906122b690339030906004016139c8565b604051630ea5613f60e01b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa1580156126ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271291906138ab565b50505060008681526002602052604090819020805460ff1962ffffff861662010000021664ffffff00ff1990911617858514179055519194509192508491507f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906127809085815260200190565b60405180910390a2505050565b600082815260026020526040902054600160281b900462ffffff166001600160a01b0319821661280f5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206861766520616e20656d707479206861736820736565642074604482015266379031b7b83c9760c91b6064820152608401610747565b60008181526001602090815260408083206001600160a01b03198616845290915290205460ff161561287a5760405162461bcd60e51b815260206004820152601460248201527314185b995b08185b1c9958591e481b5a5b9d195960621b6044820152606401610747565b60009081526001602081815260408084206001600160a01b03199095168452939052919020805460ff1916909117905550565b81600080808080807f0000000000000000000000000000000000000000000000000000000000000000156129e957604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa15801561292d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129519190613cba565b969e50949c50909a509850919650919450909250905081156129e2576040516323b872dd60e01b81526001600160a01b038a16906323b872dd9061299d90339085908790600401613d42565b6020604051808303816000875af11580156129bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e09190613890565b505b5050612a69565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a599190613d66565b949a509298509096509450925090505b8515612ae4576040516323b872dd60e01b81526001600160a01b038816906323b872dd90612a9f90339089908b90600401613d42565b6020604051808303816000875af1158015612abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae29190613890565b505b8315612b5f576040516323b872dd60e01b81526001600160a01b038816906323b872dd90612b1a90339087908990600401613d42565b6020604051808303816000875af1158015612b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5d9190613890565b505b8115612bda576040516323b872dd60e01b81526001600160a01b038816906323b872dd90612b9590339085908790600401613d42565b6020604051808303816000875af1158015612bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd89190613890565b505b5050505050505050505050565b3415612c9857600080612bfa8434613dcf565b90508015612c8a5760405133908290600081818185875af1925050503d8060008114612c42576040519150601f19603f3d011682016040523d82523d6000602084013e612c47565b606091505b50508092505081612c8a5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610747565b612c95858585612d06565b50505b505050565b6000612cb2836001600160a01b0384166130f7565b9392505050565b6000612cb2836001600160a01b038416613146565b6001600160a01b03811660009081526001830160205260408120541515612cb2565b60006122f7825490565b6000612cb28383613239565b60008211612d1357505050565b60008060008060008060007f000000000000000000000000000000000000000000000000000000000000000015612e7e57604051638639415b60e01b8152600481018b9052602481018a905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa158015612d96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dba9190613cba565b969e50949c50909a50985091965091945090925090508115612e77576040516001600160a01b038216908390600081818185875af1925050503d8060008114612e1f576040519150601f19603f3d011682016040523d82523d6000602084013e612e24565b606091505b50508099505088612e775760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610747565b5050612efe565b604051638639415b60e01b8152600481018b9052602481018a90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eee9190613d66565b949a509298509096509450925090505b8515612fa5576040516001600160a01b038616908790600081818185875af1925050503d8060008114612f4d576040519150601f19603f3d011682016040523d82523d6000602084013e612f52565b606091505b50508097505086612fa55760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610747565b8315613044576040516001600160a01b038416908590600081818185875af1925050503d8060008114612ff4576040519150601f19603f3d011682016040523d82523d6000602084013e612ff9565b606091505b505080975050866130445760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610747565b81156130eb576040516001600160a01b038216908390600081818185875af1925050503d8060008114613093576040519150601f19603f3d011682016040523d82523d6000602084013e613098565b606091505b505080975050866130eb5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610747565b50505050505050505050565b600081815260018301602052604081205461313e575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556122f7565b5060006122f7565b6000818152600183016020526040812054801561322f57600061316a600183613dcf565b855490915060009061317e90600190613dcf565b90508181146131e357600086600001828154811061319e5761319e613ac4565b90600052602060002001549050808760000184815481106131c1576131c1613ac4565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806131f4576131f4613de2565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506122f7565b60009150506122f7565b600082600001828154811061325057613250613ac4565b9060005260206000200154905092915050565b6001600160a01b038116811461327857600080fd5b50565b803561328681613263565b919050565b600080600080600060a086880312156132a357600080fd5b85356132ae81613263565b94506020860135935060408601356132c581613263565b92506060860135915060808601356132dc81613263565b809150509295509295909350565b6000806000606084860312156132ff57600080fd5b83359250602084013561331181613263565b929592945050506040919091013590565b60006020828403121561333457600080fd5b5035919050565b60006020828403121561334d57600080fd5b8135612cb281613263565b6000806040838503121561336b57600080fd5b50508035926020909101359150565b6001600160a01b03198116811461327857600080fd5b600080604083850312156133a357600080fd5b8235915060208301356133b58161337a565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156133fe576133fe6133c0565b604052919050565b60006001600160401b0382111561341f5761341f6133c0565b5060051b60200190565b600082601f83011261343a57600080fd5b8135602061344f61344a83613406565b6133d6565b82815260059290921b8401810191818101908684111561346e57600080fd5b8286015b8481101561349257803561348581613263565b8352918301918301613472565b509695505050505050565b600082601f8301126134ae57600080fd5b813560206134be61344a83613406565b82815260059290921b840181019181810190868411156134dd57600080fd5b8286015b8481101561349257803583529183019183016134e1565b600080600080600060a0868803121561351057600080fd5b8535945060208601356001600160401b038082111561352e57600080fd5b61353a89838a01613429565b9550604088013591508082111561355057600080fd5b61355c89838a0161349d565b9450606088013591508082111561357257600080fd5b61357e89838a01613429565b9350608088013591508082111561359457600080fd5b506135a18882890161349d565b9150509295509295909350565b60005b838110156135c95781810151838201526020016135b1565b50506000910152565b600081518084526135ea8160208601602086016135ae565b601f01601f19169290920160200192915050565b841515815283602082015260806040820152600061361f60808301856135d2565b905060018060a01b038316606083015295945050505050565b60008060006060848603121561364d57600080fd5b8335925060208401356001600160401b038082111561366b57600080fd5b61367787838801613429565b9350604086013591508082111561368d57600080fd5b5061369a8682870161349d565b9150509250925092565b600080604083850312156136b757600080fd5b82356136c281613263565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806000606084860312156136f957600080fd5b833562ffffff8116811461370c57600080fd5b9250602084013561331181613263565b6000806000806080858703121561373257600080fd5b843561373d81613263565b935060208501359250604085013561375481613263565b9396929550929360600135925050565b8715158152861515602082015262ffffff8681166040830152851660608201526001600160a01b038416608082015260a0810183905260e060c082018190526000906137b2908301846135d2565b9998505050505050505050565b6000806000606084860312156137d457600080fd5b833592506020808501356001600160401b03808211156137f357600080fd5b818701915087601f83011261380757600080fd5b813581811115613819576138196133c0565b61382b601f8201601f191685016133d6565b9150808252888482850101111561384157600080fd5b80848401858401376000848284010152508094505050506138646040850161327b565b90509250925092565b602081526000612cb260208301846135d2565b8051801515811461328657600080fd5b6000602082840312156138a257600080fd5b612cb282613880565b60008060008060008060c087890312156138c457600080fd5b86519550602087015194506138db60408801613880565b93506138e960608801613880565b9250608087015191506138fe60a08801613880565b90509295509295509295565b60006020828403121561391c57600080fd5b8151612cb281613263565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176122f7576122f7613927565b808201808211156122f7576122f7613927565b60006020828403121561397957600080fd5b8151612cb28161337a565b60006020828403121561399657600080fd5b5051919050565b60208082526011908201527013db9b1e481bdddb995c881bd988139195607a1b604082015260600190565b6001600160a01b0392831681529116602082015260400190565b6020808252600b908201526a13db9b1e48105c9d1a5cdd60aa1b604082015260600190565b600062ffffff808316818103613a1f57613a1f613927565b6001019392505050565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b6020808252601a908201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604082015260600190565b600181811c90821680613a9e57607f821691505b602082108103613abe57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201613aec57613aec613927565b5060010190565b604080825283519082018190526000906020906060840190828701845b82811015613b355781516001600160a01b031684529284019290840190600101613b10565b5050508381038285015284518082528583019183019060005b81811015613b6a57835183529284019291840191600101613b4e565b5090979650505050505050565b60008251613b898184602087016135ae565b9190910192915050565b601f821115612c9857600081815260208120601f850160051c81016020861015613bba5750805b601f850160051c820191505b8181101561198a57828155600101613bc6565b81516001600160401b03811115613bf257613bf26133c0565b613c0681613c008454613a8a565b84613b93565b602080601f831160018114613c3b5760008415613c235750858301515b600019600386901b1c1916600185901b17855561198a565b600085815260208120601f198616915b82811015613c6a57888601518255948401946001909101908401613c4b565b5085821015613c885787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082613cb557634e487b7160e01b600052601260045260246000fd5b500490565b600080600080600080600080610100898b031215613cd757600080fd5b885197506020890151613ce981613263565b60408a015160608b01519198509650613d0181613263565b60808a015160a08b01519196509450613d1981613263565b60c08a015160e08b01519194509250613d3181613263565b809150509295985092959890939650565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008060008060008060c08789031215613d7f57600080fd5b865195506020870151613d9181613263565b604088015160608901519196509450613da981613263565b608088015160a08901519194509250613dc181613263565b809150509295509295509295565b818103818111156122f7576122f7613927565b634e487b7160e01b600052603160045260246000fdfea26469706673582212208783b30a6140a53840d12973fd4d360b27086e24b6fbf400f651bab2f5d326ea64736f6c63430008110033",
1265
+ "deployedBytecode": "0x6080604052600436106101ab5760003560e01c806392a10f83116100e857806392a10f831461043557806399c0bbdc146104765780639ab7fb8a1461048b578063a647300c146104ab578063a9809600146104cb578063b00abb64146104eb578063bc8ff001146104fe578063bf5bf5f81461051e578063c71b1b7114610552578063d195b36514610585578063d3ddabe6146105a5578063db6921b2146105e4578063dd85582f14610618578063e2849bd51461064c578063e9d1e8ac1461066c578063efef39a1146106a9578063f4632103146106b7578063f7bd4b88146106d757600080fd5b806111cd146101b0578061aa52146101d65780630b4f2e28146101e95780630ed79c4e1461020b5780631607c9951461022b57806328c5c4e51461024b57806340d1397e1461025e578063462add461461027e57806347b14e03146102be5780634fd1b70e146102f95780634ff5759d1461031957806356690aaf14610339578063650e5d6d146101d65780636cb9b7ff14610371578063774159c6146103915780637994db09146103c1578063891407c0146103e157806390d355b7146103f4575b600080fd5b6101c36101be36600461328b565b6106f7565b6040519081526020015b60405180910390f35b6101c36101e43660046132ea565b611246565b3480156101f557600080fd5b50610209610204366004613322565b61125e565b005b34801561021757600080fd5b5061020961022636600461333b565b611362565b34801561023757600080fd5b50610209610246366004613358565b6114c8565b6101c361025936600461328b565b6117a6565b34801561026a57600080fd5b50610209610279366004613322565b6117bf565b34801561028a57600080fd5b506102ae610299366004613322565b60009081526002602052604090205460ff1690565b60405190151581526020016101cd565b3480156102ca57600080fd5b506102ae6102d9366004613390565b600160209081526000928352604080842090915290825290205460ff1681565b34801561030557600080fd5b506102096103143660046134f8565b6118b9565b34801561032557600080fd5b5061020961033436600461333b565b611992565b34801561034557600080fd5b506101c3610354366004613322565b60009081526002602052604090205462010000900462ffffff1690565b34801561037d57600080fd5b5061020961038c366004613358565b611a8e565b34801561039d57600080fd5b506103b16103ac366004613322565b611bc7565b6040516101cd94939291906135fe565b3480156103cd57600080fd5b506102096103dc366004613638565b611cbc565b6101c36103ef3660046136a4565b611f30565b34801561040057600080fd5b506102ae61040f3660046132ea565b600560209081526000938452604080852082529284528284209052825290205460ff1681565b34801561044157600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b6040516101cd91906136d0565b34801561048257600080fd5b506101c3611f76565b34801561049757600080fd5b506102ae6104a63660046136e4565b611f87565b3480156104b757600080fd5b506102096104c6366004613638565b61207e565b3480156104d757600080fd5b506101c36104e6366004613322565b612274565b6101c36104f936600461371c565b6122fd565b34801561050a57600080fd5b50610469610519366004613322565b612316565b34801561052a57600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561055e57600080fd5b5061057261056d366004613322565b612323565b6040516101cd9796959493929190613764565b34801561059157600080fd5b506102096105a03660046137bf565b612406565b3480156105b157600080fd5b506105d760405180604001604052806006815260200165076302e312e360d41b81525081565b6040516101cd919061386d565b3480156105f057600080fd5b506102ae7f000000000000000000000000000000000000000000000000000000000000000081565b34801561062457600080fd5b506104697f000000000000000000000000000000000000000000000000000000000000000081565b34801561065857600080fd5b506102ae6106673660046132ea565b6125fb565b34801561067857600080fd5b506105d76040518060400160405280601181526020017004d696e746572506f6c797074796368563607c1b81525081565b6101c36103ef366004613322565b3480156106c357600080fd5b506101c36106d2366004613322565b612640565b3480156106e357600080fd5b506102096106f2366004613322565b612684565b60006002600054036107505760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064015b60405180910390fd5b6002600081815586815260209190915260409020805460ff16156107c45760405162461bcd60e51b815260206004820152602560248201527f4d6178696d756d206e756d626572206f6620696e766f636174696f6e732072656044820152641858da195960da1b6064820152608401610747565b8054610100900460ff166108115760405162461bcd60e51b8152602060048201526014602482015273141c9a58d9481b9bdd0818dbdb999a59dd5c995960621b6044820152606401610747565b61081c8686866125fb565b6108605760405162461bcd60e51b81526020600482015260156024820152744f6e6c7920616c6c6f776c6973746564204e46547360581b6044820152606401610747565b336001600160a01b0384161561096857604051631574d39f60e31b81523360048201526001600160a01b0385811660248301528781166044830152606482018790526000917f00000000000000000000000000000000000000000000000000000000000000009091169063aba69cf890608401602060405180830381865afa1580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109149190613890565b9050806109635760405162461bcd60e51b815260206004820152601e60248201527f496e76616c69642064656c65676174652d7661756c742070616972696e6700006044820152606401610747565b849150505b604051630ea5613f60e01b8152600481018890526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630ea5613f9060240160c060405180830381865afa1580156109d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f491906138ab565b5050505050905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a47d29cb8a6040518263ffffffff1660e01b8152600401610a4b91815260200190565b602060405180830381865afa158015610a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8c919061390a565b9050600082610a9e620f42408c61393d565b610aa89190613954565b604051634d01727d60e11b8152600481018a905290915089906000906001600160a01b03831690639a02e4fa90602401602060405180830381865afa158015610af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b199190613967565b9050610b258c8261278d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166336c7c12c6040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ba9919061390a565b6040516359e4a2ad60e01b8152600481018590526001600160a01b0319831660248201526001600160a01b0391909116906359e4a2ad90604401600060405180830381600087803b158015610bfd57600080fd5b505af1158015610c11573d6000803e3d6000fd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630d4d15138e8e896040518463ffffffff1660e01b8152600401610c83939291906001600160a01b0393841681526020810192909252909116604082015260600190565b6020604051808303816000875af1158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc69190613984565b604051634d01727d60e11b8152600481018290529098506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690639a02e4fa90602401602060405180830381865afa158015610d31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d559190613967565b90506001600160a01b031980821690831614610db05760405162461bcd60e51b815260206004820152601a602482015279155b995e1c1958dd1959081d1bdad95b881a185cda081cd9595960321b6044820152606401610747565b8754620f42408a066001019062010000900462ffffff1680821115610e155760405162461bcd60e51b815260206004820152601b60248201527a13585e1a5b5d5b481a5b9d9bd8d85d1a5bdb9cc81c995858da1959602a1b6044820152606401610747565b808203610e2857895460ff19166001178a555b50506001600160a01b0385163303610ede578d6001600160a01b03168c6001600160a01b0316636352211e8d6040518263ffffffff1660e01b8152600401610e7291815260200190565b602060405180830381865afa158015610e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb3919061390a565b6001600160a01b031614610ed95760405162461bcd60e51b81526004016107479061399d565b610f72565b6040516331a9108f60e11b8152600481018c90526001600160a01b0380891691908e1690636352211e90602401602060405180830381865afa158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c919061390a565b6001600160a01b031614610f725760405162461bcd60e51b81526004016107479061399d565b60018801548854600160401b90046001600160a01b031680156111b35734156110035760405162461bcd60e51b815260206004820152603f60248201527f746869732070726f6a6563742061636365707473206120646966666572656e7460448201527f2063757272656e637920616e642063616e6e6f742061636365707420455448006064820152608401610747565b604051636eb1769f60e11b815282906001600160a01b0383169063dd62ed3e9061103390339030906004016139c8565b602060405180830381865afa158015611050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110749190613984565b10156110cd5760405162461bcd60e51b815260206004820152602260248201527f496e73756666696369656e742046756e647320417070726f76656420666f72206044820152610a8b60f31b6064820152608401610747565b6040516370a0823160e01b815282906001600160a01b038316906370a08231906110fb9033906004016136d0565b602060405180830381865afa158015611118573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061113c9190613984565b10156111825760405162461bcd60e51b815260206004820152601560248201527424b739bab33334b1b4b2b73a103130b630b731b29760591b6044820152606401610747565b6111ae8f83837f00000000000000000000000000000000000000000000000000000000000000006128ad565b61122e565b813410156112035760405162461bcd60e51b815260206004820181905260248201527f4d7573742073656e64206d696e696d756d2076616c756520746f206d696e74216044820152606401610747565b61122e8f837f0000000000000000000000000000000000000000000000000000000000000000612be7565b50505050505050505050600160005595945050505050565b60006112563385858560006106f7565b949350505050565b60405163a47d29cb60e01b81526004810182905281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa1580156112c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e9919061390a565b6001600160a01b0316336001600160a01b0316146113195760405162461bcd60e51b8152600401610747906139e2565b60008281526002602052604090208054600160281b900462ffffff1690600561134183613a07565b91906101000a81548162ffffff021916908362ffffff160217905550505050565b60405163230448b160e01b815263076bce2760e11b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b1906113bb90339030908690600401613a29565b6020604051808303816000875af11580156113da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fe9190613890565b61141a5760405162461bcd60e51b815260040161074790613a56565b604051634d01727d60e11b8152600060048201526001600160a01b03831690639a02e4fa90602401602060405180830381865afa15801561145f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114839190613967565b5061148f600383612c9d565b506040516001600160a01b038316907f7475e948f72f2714b1984b09949d13da2ddbae9f91e31da0faa380c0095b971c90600090a25050565b60405163a47d29cb60e01b81526004810183905282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa15801561152f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611553919061390a565b6001600160a01b0316336001600160a01b0316146115835760405162461bcd60e51b8152600401610747906139e2565b604051630ea5613f60e01b81526004810184905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa1580156115ed573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161191906138ab565b50929550929350505050818411156116b15760405162461bcd60e51b815260206004820152605760248201527f43616e6e6f7420696e6372656173652070726f6a656374206d617820696e766f60448201527f636174696f6e732061626f766520636f726520636f6e7472616374207365742060648201527670726f6a656374206d617820696e766f636174696f6e7360481b608482015260a401610747565b808410156117335760405162461bcd60e51b815260206004820152604360248201527f43616e6e6f74207365742070726f6a656374206d617820696e766f636174696f60448201527f6e7320746f206c657373207468616e2063757272656e7420696e766f636174696064820152626f6e7360e81b608482015260a401610747565b60008581526002602052604090819020805460ff1962ffffff881662010000021664ffffff00ff19909116178387141790555185907f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906117979087815260200190565b60405180910390a25050505050565b60006117b586868686866106f7565b9695505050505050565b60405163a47d29cb60e01b81526004810182905281907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015611826573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184a919061390a565b6001600160a01b0316336001600160a01b03161461187a5760405162461bcd60e51b8152600401610747906139e2565b60405162461bcd60e51b81526020600482015260146024820152731058dd1a5bdb881b9bdd081cdd5c1c1bdc9d195960621b6044820152606401610747565b60405163a47d29cb60e01b81526004810186905285907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015611920573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611944919061390a565b6001600160a01b0316336001600160a01b0316146119745760405162461bcd60e51b8152600401610747906139e2565b61197f868686611cbc565b61198a86848461207e565b505050505050565b60405163230448b160e01b8152634ff5759d60e01b906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063230448b1906119eb90339030908690600401613a29565b6020604051808303816000875af1158015611a0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2e9190613890565b611a4a5760405162461bcd60e51b815260040161074790613a56565b611a55600383612cb9565b506040516001600160a01b038316907f16e28d6cac0e892c58cee90af3dc883220abe36e25201d7117c4f3aaabf1c3f090600090a25050565b60405163a47d29cb60e01b81526004810183905282907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015611af5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b19919061390a565b6001600160a01b0316336001600160a01b031614611b495760405162461bcd60e51b8152600401610747906139e2565b60008381526002602052604080822060018101859055805461ff00191661010017815590519091849186917f26118a27aca826f829f3bfe21b140b4455c00b434849bd0da50d1e1a9720fb5c91a3805462010000900462ffffff16158015611bb35750805460ff16155b15611bc157611bc184612684565b50505050565b600081815260026020526040902080546001820154610100820460ff16929091606091600160401b9091046001600160a01b03169081611c24576040518060400160405280600381526020016208aa8960eb1b8152509250611cb4565b806002018054611c3390613a8a565b80601f0160208091040260200160405190810160405280929190818152602001828054611c5f90613a8a565b8015611cac5780601f10611c8157610100808354040283529160200191611cac565b820191906000526020600020905b815481529060010190602001808311611c8f57829003601f168201915b505050505092505b509193509193565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa158015611d23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d47919061390a565b6001600160a01b0316336001600160a01b031614611d775760405162461bcd60e51b8152600401610747906139e2565b8151835114611dc85760405162461bcd60e51b815260206004820152601f60248201527f4c656e677468206f662061646420617272617973206d757374206d61746368006044820152606401610747565b60005b8351811015611eef57611e01848281518110611de957611de9613ac4565b60200260200101516003612cce90919063ffffffff16565b611e4d5760405162461bcd60e51b815260206004820152601d60248201527f4f6e6c792052656769737465726564204e4654204164647265737365730000006044820152606401610747565b6000858152600560205260408120855160019290879085908110611e7357611e73613ac4565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000858481518110611eaf57611eaf613ac4565b6020026020010151815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611ee790613ada565b915050611dcb565b50837fba2ec6d92cd62364c8e443b484b3e1f72f1ee9e161c1f871de1a60d83c89558b8484604051611f22929190613af3565b60405180910390a250505050565b60405162461bcd60e51b815260206004820152601860248201527704d75737420636c61696d204e4654206f776e6572736869760441b6044820152600090606401610747565b6000611f826003612cf0565b905090565b604051634d01727d60e11b81526004810182905260009081906001600160a01b03851690639a02e4fa90602401602060405180830381865afa158015611fd1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ff59190613967565b90506001600160a01b031981166120485760405162461bcd60e51b8152602060048201526017602482015276125b9d985b1a59081d1bdad95b881a185cda081cd95959604a1b6044820152606401610747565b62ffffff851660009081526001602090815260408083206001600160a01b03199094168352929052205460ff1690509392505050565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa1580156120e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612109919061390a565b6001600160a01b0316336001600160a01b0316146121395760405162461bcd60e51b8152600401610747906139e2565b81518351146121955760405162461bcd60e51b815260206004820152602260248201527f4c656e677468206f662072656d6f766520617272617973206d757374206d61746044820152610c6d60f31b6064820152608401610747565b60005b8351811015612241576000858152600560205260408120855182908790859081106121c5576121c5613ac4565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020600085848151811061220157612201613ac4565b6020026020010151815260200190815260200160002060006101000a81548160ff021916908315150217905550808061223990613ada565b915050612198565b50837f2e3dced83b61aee20d72f4bdc7e6997a0f8616af4067d3aa92afe2b9b0532d1c8484604051611f22929190613af3565b6000818152600260205260408082205490516370a0823160e01b8152600160401b9091046001600160a01b0316906370a08231906122b69033906004016136d0565b602060405180830381865afa1580156122d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f79190613984565b92915050565b600061230d8585858560006106f7565b95945050505050565b60006122f7600383612cfa565b600260208190526000918252604090912080546001820154928201805460ff8084169561010085049091169462010000850462ffffff90811695600160281b810490911694600160401b9091046001600160a01b03169361238390613a8a565b80601f01602080910402602001604051908101604052809291908181526020018280546123af90613a8a565b80156123fc5780601f106123d1576101008083540402835291602001916123fc565b820191906000526020600020905b8154815290600101906020018083116123df57829003601f168201915b5050505050905087565b60405163a47d29cb60e01b81526004810184905283907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063a47d29cb90602401602060405180830381865afa15801561246d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612491919061390a565b6001600160a01b0316336001600160a01b0316146124c15760405162461bcd60e51b8152600401610747906139e2565b6040516208aa8960eb1b60208201526001600160a01b038316159060230160405160208183030381529060405280519060200120846040516020016125069190613b77565b60405160208183030381529060405280519060200120141515146125675760405162461bcd60e51b8152602060048201526018602482015277455448206973206f6e6c79206e756c6c206164647265737360401b6044820152606401610747565b6000848152600260208190526040909120016125838482613bd9565b50600084815260026020526040908190208054600160401b600160e01b031916600160401b6001600160a01b03861690810291909117909155905185907fe6c8c6160f844a27204e2b7fb4b7fb9f10e5d322fa850096bef29dc1d0f445c1906125ed90879061386d565b60405180910390a350505050565b60008061260b620f424084613c98565b60009586526005602090815260408088206001600160a01b039790971688529581528587209187525250505090205460ff1690565b600081815260026020526040808220549051636eb1769f60e11b8152600160401b9091046001600160a01b03169063dd62ed3e906122b690339030906004016139c8565b604051630ea5613f60e01b81526004810182905260009081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690630ea5613f9060240160c060405180830381865afa1580156126ee573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271291906138ab565b50505060008681526002602052604090819020805460ff1962ffffff861662010000021664ffffff00ff1990911617858514179055519194509192508491507f8445d32a2ee05956c6c842357ca16ee41e92657b1cbcbf1c94f500672e48c3b1906127809085815260200190565b60405180910390a2505050565b600082815260026020526040902054600160281b900462ffffff166001600160a01b0319821661280f5760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f74206861766520616e20656d707479206861736820736565642074604482015266379031b7b83c9760c91b6064820152608401610747565b60008181526001602090815260408083206001600160a01b03198616845290915290205460ff161561287a5760405162461bcd60e51b815260206004820152601460248201527314185b995b08185b1c9958591e481b5a5b9d195960621b6044820152606401610747565b60009081526001602081815260408084206001600160a01b03199095168452939052919020805460ff1916909117905550565b81600080808080807f0000000000000000000000000000000000000000000000000000000000000000156129e957604051638639415b60e01b8152600481018c9052602481018b905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa15801561292d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129519190613cba565b969e50949c50909a509850919650919450909250905081156129e2576040516323b872dd60e01b81526001600160a01b038a16906323b872dd9061299d90339085908790600401613d42565b6020604051808303816000875af11580156129bc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e09190613890565b505b5050612a69565b604051638639415b60e01b8152600481018c9052602481018b90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612a35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a599190613d66565b949a509298509096509450925090505b8515612ae4576040516323b872dd60e01b81526001600160a01b038816906323b872dd90612a9f90339089908b90600401613d42565b6020604051808303816000875af1158015612abe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae29190613890565b505b8315612b5f576040516323b872dd60e01b81526001600160a01b038816906323b872dd90612b1a90339087908990600401613d42565b6020604051808303816000875af1158015612b39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b5d9190613890565b505b8115612bda576040516323b872dd60e01b81526001600160a01b038816906323b872dd90612b9590339085908790600401613d42565b6020604051808303816000875af1158015612bb4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bd89190613890565b505b5050505050505050505050565b3415612c9857600080612bfa8434613dcf565b90508015612c8a5760405133908290600081818185875af1925050503d8060008114612c42576040519150601f19603f3d011682016040523d82523d6000602084013e612c47565b606091505b50508092505081612c8a5760405162461bcd60e51b815260206004820152600d60248201526c1499599d5b990819985a5b1959609a1b6044820152606401610747565b612c95858585612d06565b50505b505050565b6000612cb2836001600160a01b0384166130f7565b9392505050565b6000612cb2836001600160a01b038416613146565b6001600160a01b03811660009081526001830160205260408120541515612cb2565b60006122f7825490565b6000612cb28383613239565b60008211612d1357505050565b60008060008060008060007f000000000000000000000000000000000000000000000000000000000000000015612e7e57604051638639415b60e01b8152600481018b9052602481018a905260009081906001600160a01b038b1690638639415b9060440161010060405180830381865afa158015612d96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612dba9190613cba565b969e50949c50909a50985091965091945090925090508115612e77576040516001600160a01b038216908390600081818185875af1925050503d8060008114612e1f576040519150601f19603f3d011682016040523d82523d6000602084013e612e24565b606091505b50508099505088612e775760405162461bcd60e51b815260206004820181905260248201527f506c6174666f726d2050726f7669646572207061796d656e74206661696c65646044820152606401610747565b5050612efe565b604051638639415b60e01b8152600481018b9052602481018a90526001600160a01b03891690638639415b9060440160c060405180830381865afa158015612eca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612eee9190613d66565b949a509298509096509450925090505b8515612fa5576040516001600160a01b038616908790600081818185875af1925050503d8060008114612f4d576040519150601f19603f3d011682016040523d82523d6000602084013e612f52565b606091505b50508097505086612fa55760405162461bcd60e51b815260206004820152601e60248201527f52656e6465722050726f7669646572207061796d656e74206661696c656400006044820152606401610747565b8315613044576040516001600160a01b038416908590600081818185875af1925050503d8060008114612ff4576040519150601f19603f3d011682016040523d82523d6000602084013e612ff9565b606091505b505080975050866130445760405162461bcd60e51b8152602060048201526015602482015274105c9d1a5cdd081c185e5b595b9d0819985a5b1959605a1b6044820152606401610747565b81156130eb576040516001600160a01b038216908390600081818185875af1925050503d8060008114613093576040519150601f19603f3d011682016040523d82523d6000602084013e613098565b606091505b505080975050866130eb5760405162461bcd60e51b815260206004820152601f60248201527f4164646974696f6e616c205061796565207061796d656e74206661696c6564006044820152606401610747565b50505050505050505050565b600081815260018301602052604081205461313e575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556122f7565b5060006122f7565b6000818152600183016020526040812054801561322f57600061316a600183613dcf565b855490915060009061317e90600190613dcf565b90508181146131e357600086600001828154811061319e5761319e613ac4565b90600052602060002001549050808760000184815481106131c1576131c1613ac4565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806131f4576131f4613de2565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506122f7565b60009150506122f7565b600082600001828154811061325057613250613ac4565b9060005260206000200154905092915050565b6001600160a01b038116811461327857600080fd5b50565b803561328681613263565b919050565b600080600080600060a086880312156132a357600080fd5b85356132ae81613263565b94506020860135935060408601356132c581613263565b92506060860135915060808601356132dc81613263565b809150509295509295909350565b6000806000606084860312156132ff57600080fd5b83359250602084013561331181613263565b929592945050506040919091013590565b60006020828403121561333457600080fd5b5035919050565b60006020828403121561334d57600080fd5b8135612cb281613263565b6000806040838503121561336b57600080fd5b50508035926020909101359150565b6001600160a01b03198116811461327857600080fd5b600080604083850312156133a357600080fd5b8235915060208301356133b58161337a565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156133fe576133fe6133c0565b604052919050565b60006001600160401b0382111561341f5761341f6133c0565b5060051b60200190565b600082601f83011261343a57600080fd5b8135602061344f61344a83613406565b6133d6565b82815260059290921b8401810191818101908684111561346e57600080fd5b8286015b8481101561349257803561348581613263565b8352918301918301613472565b509695505050505050565b600082601f8301126134ae57600080fd5b813560206134be61344a83613406565b82815260059290921b840181019181810190868411156134dd57600080fd5b8286015b8481101561349257803583529183019183016134e1565b600080600080600060a0868803121561351057600080fd5b8535945060208601356001600160401b038082111561352e57600080fd5b61353a89838a01613429565b9550604088013591508082111561355057600080fd5b61355c89838a0161349d565b9450606088013591508082111561357257600080fd5b61357e89838a01613429565b9350608088013591508082111561359457600080fd5b506135a18882890161349d565b9150509295509295909350565b60005b838110156135c95781810151838201526020016135b1565b50506000910152565b600081518084526135ea8160208601602086016135ae565b601f01601f19169290920160200192915050565b841515815283602082015260806040820152600061361f60808301856135d2565b905060018060a01b038316606083015295945050505050565b60008060006060848603121561364d57600080fd5b8335925060208401356001600160401b038082111561366b57600080fd5b61367787838801613429565b9350604086013591508082111561368d57600080fd5b5061369a8682870161349d565b9150509250925092565b600080604083850312156136b757600080fd5b82356136c281613263565b946020939093013593505050565b6001600160a01b0391909116815260200190565b6000806000606084860312156136f957600080fd5b833562ffffff8116811461370c57600080fd5b9250602084013561331181613263565b6000806000806080858703121561373257600080fd5b843561373d81613263565b935060208501359250604085013561375481613263565b9396929550929360600135925050565b8715158152861515602082015262ffffff8681166040830152851660608201526001600160a01b038416608082015260a0810183905260e060c082018190526000906137b2908301846135d2565b9998505050505050505050565b6000806000606084860312156137d457600080fd5b833592506020808501356001600160401b03808211156137f357600080fd5b818701915087601f83011261380757600080fd5b813581811115613819576138196133c0565b61382b601f8201601f191685016133d6565b9150808252888482850101111561384157600080fd5b80848401858401376000848284010152508094505050506138646040850161327b565b90509250925092565b602081526000612cb260208301846135d2565b8051801515811461328657600080fd5b6000602082840312156138a257600080fd5b612cb282613880565b60008060008060008060c087890312156138c457600080fd5b86519550602087015194506138db60408801613880565b93506138e960608801613880565b9250608087015191506138fe60a08801613880565b90509295509295509295565b60006020828403121561391c57600080fd5b8151612cb281613263565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176122f7576122f7613927565b808201808211156122f7576122f7613927565b60006020828403121561397957600080fd5b8151612cb28161337a565b60006020828403121561399657600080fd5b5051919050565b60208082526011908201527013db9b1e481bdddb995c881bd988139195607a1b604082015260600190565b6001600160a01b0392831681529116602082015260400190565b6020808252600b908201526a13db9b1e48105c9d1a5cdd60aa1b604082015260600190565b600062ffffff808316818103613a1f57613a1f613927565b6001019392505050565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b6020808252601a908201527913db9b1e4810dbdc994810591b5a5b9050d308185b1b1bddd95960321b604082015260600190565b600181811c90821680613a9e57607f821691505b602082108103613abe57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b600060018201613aec57613aec613927565b5060010190565b604080825283519082018190526000906020906060840190828701845b82811015613b355781516001600160a01b031684529284019290840190600101613b10565b5050508381038285015284518082528583019183019060005b81811015613b6a57835183529284019291840191600101613b4e565b5090979650505050505050565b60008251613b898184602087016135ae565b9190910192915050565b601f821115612c9857600081815260208120601f850160051c81016020861015613bba5750805b601f850160051c820191505b8181101561198a57828155600101613bc6565b81516001600160401b03811115613bf257613bf26133c0565b613c0681613c008454613a8a565b84613b93565b602080601f831160018114613c3b5760008415613c235750858301515b600019600386901b1c1916600185901b17855561198a565b600085815260208120601f198616915b82811015613c6a57888601518255948401946001909101908401613c4b565b5085821015613c885787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082613cb557634e487b7160e01b600052601260045260246000fd5b500490565b600080600080600080600080610100898b031215613cd757600080fd5b885197506020890151613ce981613263565b60408a015160608b01519198509650613d0181613263565b60808a015160a08b01519196509450613d1981613263565b60c08a015160e08b01519194509250613d3181613263565b809150509295985092959890939650565b6001600160a01b039384168152919092166020820152604081019190915260600190565b60008060008060008060c08789031215613d7f57600080fd5b865195506020870151613d9181613263565b604088015160608901519196509450613da981613263565b608088015160a08901519194509250613dc181613263565b809150509295509295509295565b818103818111156122f7576122f7613927565b634e487b7160e01b600052603160045260246000fdfea26469706673582212208783b30a6140a53840d12973fd4d360b27086e24b6fbf400f651bab2f5d326ea64736f6c63430008110033",
1266
+ "linkReferences": {},
1267
+ "deployedLinkReferences": {}
1268
+ }