@gooddollar/goodcollective-contracts 1.3.1 → 1.4.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 (74) hide show
  1. package/artifacts/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.dbg.json +4 -0
  2. package/artifacts/contracts/DirectPayments/DirectPaymentsFactory.sol/DirectPaymentsFactory.json +995 -0
  3. package/artifacts/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.dbg.json +4 -0
  4. package/artifacts/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.json +113 -0
  5. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.dbg.json +4 -0
  6. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.json +2210 -0
  7. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2.dbg.json +4 -0
  8. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IIdentityV2.json +30 -0
  9. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.dbg.json +4 -0
  10. package/artifacts/contracts/DirectPayments/DirectPaymentsPool.sol/IMembersValidator.json +45 -0
  11. package/artifacts/contracts/DirectPayments/ProvableNFT.sol/ProvableNFT.dbg.json +4 -0
  12. package/artifacts/contracts/DirectPayments/ProvableNFT.sol/ProvableNFT.json +1187 -0
  13. package/artifacts/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.dbg.json +4 -0
  14. package/artifacts/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.json +831 -0
  15. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.dbg.json +4 -0
  16. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.json +42 -0
  17. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.dbg.json +4 -0
  18. package/artifacts/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry.json +61 -0
  19. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.dbg.json +4 -0
  20. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/IRegisterSuperapp.json +47 -0
  21. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.dbg.json +4 -0
  22. package/artifacts/contracts/GoodCollective/SuperAppBaseFlow.sol/SuperAppBaseFlow.json +320 -0
  23. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
  24. package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +30 -0
  25. package/artifacts/contracts/Interfaces.sol/IMembersValidator.dbg.json +4 -0
  26. package/artifacts/contracts/Interfaces.sol/IMembersValidator.json +45 -0
  27. package/artifacts/contracts/UBI/UBIPool.sol/UBIPool.dbg.json +4 -0
  28. package/artifacts/contracts/UBI/UBIPool.sol/UBIPool.json +2078 -0
  29. package/artifacts/contracts/UBI/UBIPoolFactory.sol/UBIPoolFactory.dbg.json +4 -0
  30. package/artifacts/contracts/UBI/UBIPoolFactory.sol/UBIPoolFactory.json +1011 -0
  31. package/artifacts/contracts/test/HelperLibraryTest.sol/HelperLibraryTest.dbg.json +4 -0
  32. package/artifacts/contracts/test/HelperLibraryTest.sol/HelperLibraryTest.json +90 -0
  33. package/artifacts/contracts/utils/HelperLibrary.sol/HelperLibrary.dbg.json +4 -0
  34. package/artifacts/contracts/utils/HelperLibrary.sol/HelperLibrary.json +117 -0
  35. package/artifacts/contracts/utils/Recover.sol/Recover.dbg.json +4 -0
  36. package/artifacts/contracts/utils/Recover.sol/Recover.json +120 -0
  37. package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.dbg.json +4 -0
  38. package/artifacts/contracts/utils/SwapRouterMock.sol/SwapRouterMock.json +119 -0
  39. package/contracts/DirectPayments/DirectPaymentsFactory.sol +13 -1
  40. package/contracts/DirectPayments/DirectPaymentsPool.sol +22 -0
  41. package/contracts/UBI/UBIPool.sol +62 -18
  42. package/contracts/UBI/UBIPoolFactory.sol +13 -1
  43. package/contracts/utils/Recover.sol +16 -0
  44. package/package.json +3 -5
  45. package/releases/deployment.json +308 -134
  46. package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +54 -0
  47. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary.ts +77 -0
  48. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary.ts +77 -0
  49. package/typechain-types/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
  50. package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +37 -0
  51. package/typechain-types/contracts/UBI/MultiClaimModule.sol/IClaimable.ts +92 -0
  52. package/typechain-types/contracts/UBI/MultiClaimModule.sol/IModule.ts +196 -0
  53. package/typechain-types/contracts/UBI/MultiClaimModule.sol/MultiClaimModule.ts +242 -0
  54. package/typechain-types/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
  55. package/typechain-types/contracts/UBI/UBIPool.ts +37 -0
  56. package/typechain-types/contracts/UBI/UBIPoolFactory.ts +54 -0
  57. package/typechain-types/contracts/utils/Recover.ts +263 -0
  58. package/typechain-types/contracts/utils/index.ts +1 -0
  59. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +33 -1
  60. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPayemntsLibrary__factory.ts +96 -0
  61. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/DirectPaymentsLibrary__factory.ts +96 -0
  62. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary.sol/index.ts +5 -0
  63. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsLibrary__factory.ts +1 -1
  64. package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +24 -1
  65. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IClaimable__factory.ts +33 -0
  66. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IModule__factory.ts +84 -0
  67. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/MultiClaimModule__factory.ts +150 -0
  68. package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/index.ts +6 -0
  69. package/typechain-types/factories/contracts/UBI/UBIPoolFactory__factory.ts +33 -1
  70. package/typechain-types/factories/contracts/UBI/UBIPool__factory.ts +24 -1
  71. package/typechain-types/factories/contracts/utils/Recover__factory.ts +172 -0
  72. package/typechain-types/factories/contracts/utils/index.ts +1 -0
  73. package/typechain-types/hardhat.d.ts +9 -0
  74. package/typechain-types/index.ts +2 -0
@@ -0,0 +1,1011 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "UBIPoolFactory",
4
+ "sourceName": "contracts/UBI/UBIPoolFactory.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "NOT_POOL",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [],
13
+ "name": "NOT_PROJECT_MANAGER",
14
+ "type": "error"
15
+ },
16
+ {
17
+ "inputs": [],
18
+ "name": "NOT_PROJECT_OWNER",
19
+ "type": "error"
20
+ },
21
+ {
22
+ "anonymous": false,
23
+ "inputs": [
24
+ {
25
+ "indexed": false,
26
+ "internalType": "address",
27
+ "name": "previousAdmin",
28
+ "type": "address"
29
+ },
30
+ {
31
+ "indexed": false,
32
+ "internalType": "address",
33
+ "name": "newAdmin",
34
+ "type": "address"
35
+ }
36
+ ],
37
+ "name": "AdminChanged",
38
+ "type": "event"
39
+ },
40
+ {
41
+ "anonymous": false,
42
+ "inputs": [
43
+ {
44
+ "indexed": true,
45
+ "internalType": "address",
46
+ "name": "beacon",
47
+ "type": "address"
48
+ }
49
+ ],
50
+ "name": "BeaconUpgraded",
51
+ "type": "event"
52
+ },
53
+ {
54
+ "anonymous": false,
55
+ "inputs": [
56
+ {
57
+ "indexed": false,
58
+ "internalType": "uint8",
59
+ "name": "version",
60
+ "type": "uint8"
61
+ }
62
+ ],
63
+ "name": "Initialized",
64
+ "type": "event"
65
+ },
66
+ {
67
+ "anonymous": false,
68
+ "inputs": [
69
+ {
70
+ "indexed": true,
71
+ "internalType": "address",
72
+ "name": "member",
73
+ "type": "address"
74
+ },
75
+ {
76
+ "indexed": true,
77
+ "internalType": "address",
78
+ "name": "pool",
79
+ "type": "address"
80
+ }
81
+ ],
82
+ "name": "MemberAdded",
83
+ "type": "event"
84
+ },
85
+ {
86
+ "anonymous": false,
87
+ "inputs": [
88
+ {
89
+ "indexed": true,
90
+ "internalType": "address",
91
+ "name": "pool",
92
+ "type": "address"
93
+ },
94
+ {
95
+ "indexed": true,
96
+ "internalType": "string",
97
+ "name": "projectId",
98
+ "type": "string"
99
+ },
100
+ {
101
+ "indexed": false,
102
+ "internalType": "string",
103
+ "name": "ipfs",
104
+ "type": "string"
105
+ },
106
+ {
107
+ "components": [
108
+ {
109
+ "internalType": "address",
110
+ "name": "manager",
111
+ "type": "address"
112
+ },
113
+ {
114
+ "internalType": "contract IMembersValidator",
115
+ "name": "membersValidator",
116
+ "type": "address"
117
+ },
118
+ {
119
+ "internalType": "contract IIdentityV2",
120
+ "name": "uniquenessValidator",
121
+ "type": "address"
122
+ },
123
+ {
124
+ "internalType": "contract IERC20Upgradeable",
125
+ "name": "rewardToken",
126
+ "type": "address"
127
+ }
128
+ ],
129
+ "indexed": false,
130
+ "internalType": "struct PoolSettings",
131
+ "name": "poolSettings",
132
+ "type": "tuple"
133
+ },
134
+ {
135
+ "components": [
136
+ {
137
+ "internalType": "uint32",
138
+ "name": "cycleLengthDays",
139
+ "type": "uint32"
140
+ },
141
+ {
142
+ "internalType": "uint32",
143
+ "name": "claimPeriodDays",
144
+ "type": "uint32"
145
+ },
146
+ {
147
+ "internalType": "uint32",
148
+ "name": "minActiveUsers",
149
+ "type": "uint32"
150
+ },
151
+ {
152
+ "internalType": "bool",
153
+ "name": "claimForEnabled",
154
+ "type": "bool"
155
+ },
156
+ {
157
+ "internalType": "uint256",
158
+ "name": "maxClaimAmount",
159
+ "type": "uint256"
160
+ },
161
+ {
162
+ "internalType": "uint32",
163
+ "name": "maxMembers",
164
+ "type": "uint32"
165
+ },
166
+ {
167
+ "internalType": "bool",
168
+ "name": "onlyMembers",
169
+ "type": "bool"
170
+ }
171
+ ],
172
+ "indexed": false,
173
+ "internalType": "struct UBIPool.UBISettings",
174
+ "name": "poolLimits",
175
+ "type": "tuple"
176
+ }
177
+ ],
178
+ "name": "PoolCreated",
179
+ "type": "event"
180
+ },
181
+ {
182
+ "anonymous": false,
183
+ "inputs": [
184
+ {
185
+ "indexed": true,
186
+ "internalType": "address",
187
+ "name": "pool",
188
+ "type": "address"
189
+ },
190
+ {
191
+ "indexed": false,
192
+ "internalType": "string",
193
+ "name": "ipfs",
194
+ "type": "string"
195
+ }
196
+ ],
197
+ "name": "PoolDetailsChanged",
198
+ "type": "event"
199
+ },
200
+ {
201
+ "anonymous": false,
202
+ "inputs": [
203
+ {
204
+ "indexed": true,
205
+ "internalType": "address",
206
+ "name": "pool",
207
+ "type": "address"
208
+ },
209
+ {
210
+ "indexed": false,
211
+ "internalType": "bool",
212
+ "name": "isVerified",
213
+ "type": "bool"
214
+ }
215
+ ],
216
+ "name": "PoolVerifiedChanged",
217
+ "type": "event"
218
+ },
219
+ {
220
+ "anonymous": false,
221
+ "inputs": [
222
+ {
223
+ "indexed": true,
224
+ "internalType": "bytes32",
225
+ "name": "role",
226
+ "type": "bytes32"
227
+ },
228
+ {
229
+ "indexed": true,
230
+ "internalType": "bytes32",
231
+ "name": "previousAdminRole",
232
+ "type": "bytes32"
233
+ },
234
+ {
235
+ "indexed": true,
236
+ "internalType": "bytes32",
237
+ "name": "newAdminRole",
238
+ "type": "bytes32"
239
+ }
240
+ ],
241
+ "name": "RoleAdminChanged",
242
+ "type": "event"
243
+ },
244
+ {
245
+ "anonymous": false,
246
+ "inputs": [
247
+ {
248
+ "indexed": true,
249
+ "internalType": "bytes32",
250
+ "name": "role",
251
+ "type": "bytes32"
252
+ },
253
+ {
254
+ "indexed": true,
255
+ "internalType": "address",
256
+ "name": "account",
257
+ "type": "address"
258
+ },
259
+ {
260
+ "indexed": true,
261
+ "internalType": "address",
262
+ "name": "sender",
263
+ "type": "address"
264
+ }
265
+ ],
266
+ "name": "RoleGranted",
267
+ "type": "event"
268
+ },
269
+ {
270
+ "anonymous": false,
271
+ "inputs": [
272
+ {
273
+ "indexed": true,
274
+ "internalType": "bytes32",
275
+ "name": "role",
276
+ "type": "bytes32"
277
+ },
278
+ {
279
+ "indexed": true,
280
+ "internalType": "address",
281
+ "name": "account",
282
+ "type": "address"
283
+ },
284
+ {
285
+ "indexed": true,
286
+ "internalType": "address",
287
+ "name": "sender",
288
+ "type": "address"
289
+ }
290
+ ],
291
+ "name": "RoleRevoked",
292
+ "type": "event"
293
+ },
294
+ {
295
+ "anonymous": false,
296
+ "inputs": [
297
+ {
298
+ "indexed": true,
299
+ "internalType": "address",
300
+ "name": "impl",
301
+ "type": "address"
302
+ }
303
+ ],
304
+ "name": "UpdatedImpl",
305
+ "type": "event"
306
+ },
307
+ {
308
+ "anonymous": false,
309
+ "inputs": [
310
+ {
311
+ "indexed": true,
312
+ "internalType": "address",
313
+ "name": "implementation",
314
+ "type": "address"
315
+ }
316
+ ],
317
+ "name": "Upgraded",
318
+ "type": "event"
319
+ },
320
+ {
321
+ "inputs": [],
322
+ "name": "DEFAULT_ADMIN_ROLE",
323
+ "outputs": [
324
+ {
325
+ "internalType": "bytes32",
326
+ "name": "",
327
+ "type": "bytes32"
328
+ }
329
+ ],
330
+ "stateMutability": "view",
331
+ "type": "function"
332
+ },
333
+ {
334
+ "inputs": [
335
+ {
336
+ "internalType": "address",
337
+ "name": "account",
338
+ "type": "address"
339
+ }
340
+ ],
341
+ "name": "addMember",
342
+ "outputs": [],
343
+ "stateMutability": "nonpayable",
344
+ "type": "function"
345
+ },
346
+ {
347
+ "inputs": [
348
+ {
349
+ "internalType": "address[]",
350
+ "name": "members",
351
+ "type": "address[]"
352
+ }
353
+ ],
354
+ "name": "addMembers",
355
+ "outputs": [],
356
+ "stateMutability": "nonpayable",
357
+ "type": "function"
358
+ },
359
+ {
360
+ "inputs": [
361
+ {
362
+ "internalType": "contract UBIPool",
363
+ "name": "_pool",
364
+ "type": "address"
365
+ },
366
+ {
367
+ "internalType": "string",
368
+ "name": "_ipfs",
369
+ "type": "string"
370
+ }
371
+ ],
372
+ "name": "changePoolDetails",
373
+ "outputs": [],
374
+ "stateMutability": "nonpayable",
375
+ "type": "function"
376
+ },
377
+ {
378
+ "inputs": [
379
+ {
380
+ "internalType": "string",
381
+ "name": "_projectId",
382
+ "type": "string"
383
+ },
384
+ {
385
+ "internalType": "string",
386
+ "name": "_ipfs",
387
+ "type": "string"
388
+ },
389
+ {
390
+ "components": [
391
+ {
392
+ "internalType": "address",
393
+ "name": "manager",
394
+ "type": "address"
395
+ },
396
+ {
397
+ "internalType": "contract IMembersValidator",
398
+ "name": "membersValidator",
399
+ "type": "address"
400
+ },
401
+ {
402
+ "internalType": "contract IIdentityV2",
403
+ "name": "uniquenessValidator",
404
+ "type": "address"
405
+ },
406
+ {
407
+ "internalType": "contract IERC20Upgradeable",
408
+ "name": "rewardToken",
409
+ "type": "address"
410
+ }
411
+ ],
412
+ "internalType": "struct PoolSettings",
413
+ "name": "_settings",
414
+ "type": "tuple"
415
+ },
416
+ {
417
+ "components": [
418
+ {
419
+ "internalType": "uint32",
420
+ "name": "cycleLengthDays",
421
+ "type": "uint32"
422
+ },
423
+ {
424
+ "internalType": "uint32",
425
+ "name": "claimPeriodDays",
426
+ "type": "uint32"
427
+ },
428
+ {
429
+ "internalType": "uint32",
430
+ "name": "minActiveUsers",
431
+ "type": "uint32"
432
+ },
433
+ {
434
+ "internalType": "bool",
435
+ "name": "claimForEnabled",
436
+ "type": "bool"
437
+ },
438
+ {
439
+ "internalType": "uint256",
440
+ "name": "maxClaimAmount",
441
+ "type": "uint256"
442
+ },
443
+ {
444
+ "internalType": "uint32",
445
+ "name": "maxMembers",
446
+ "type": "uint32"
447
+ },
448
+ {
449
+ "internalType": "bool",
450
+ "name": "onlyMembers",
451
+ "type": "bool"
452
+ }
453
+ ],
454
+ "internalType": "struct UBIPool.UBISettings",
455
+ "name": "_limits",
456
+ "type": "tuple"
457
+ },
458
+ {
459
+ "components": [
460
+ {
461
+ "internalType": "uint32",
462
+ "name": "maxPeriodClaimers",
463
+ "type": "uint32"
464
+ },
465
+ {
466
+ "internalType": "uint256",
467
+ "name": "minClaimAmount",
468
+ "type": "uint256"
469
+ },
470
+ {
471
+ "internalType": "uint32",
472
+ "name": "managerFeeBps",
473
+ "type": "uint32"
474
+ }
475
+ ],
476
+ "internalType": "struct UBIPool.ExtendedSettings",
477
+ "name": "_extendedSettings",
478
+ "type": "tuple"
479
+ }
480
+ ],
481
+ "name": "createManagedPool",
482
+ "outputs": [
483
+ {
484
+ "internalType": "contract UBIPool",
485
+ "name": "pool",
486
+ "type": "address"
487
+ }
488
+ ],
489
+ "stateMutability": "nonpayable",
490
+ "type": "function"
491
+ },
492
+ {
493
+ "inputs": [
494
+ {
495
+ "internalType": "string",
496
+ "name": "_projectId",
497
+ "type": "string"
498
+ },
499
+ {
500
+ "internalType": "string",
501
+ "name": "_ipfs",
502
+ "type": "string"
503
+ },
504
+ {
505
+ "components": [
506
+ {
507
+ "internalType": "address",
508
+ "name": "manager",
509
+ "type": "address"
510
+ },
511
+ {
512
+ "internalType": "contract IMembersValidator",
513
+ "name": "membersValidator",
514
+ "type": "address"
515
+ },
516
+ {
517
+ "internalType": "contract IIdentityV2",
518
+ "name": "uniquenessValidator",
519
+ "type": "address"
520
+ },
521
+ {
522
+ "internalType": "contract IERC20Upgradeable",
523
+ "name": "rewardToken",
524
+ "type": "address"
525
+ }
526
+ ],
527
+ "internalType": "struct PoolSettings",
528
+ "name": "_settings",
529
+ "type": "tuple"
530
+ },
531
+ {
532
+ "components": [
533
+ {
534
+ "internalType": "uint32",
535
+ "name": "cycleLengthDays",
536
+ "type": "uint32"
537
+ },
538
+ {
539
+ "internalType": "uint32",
540
+ "name": "claimPeriodDays",
541
+ "type": "uint32"
542
+ },
543
+ {
544
+ "internalType": "uint32",
545
+ "name": "minActiveUsers",
546
+ "type": "uint32"
547
+ },
548
+ {
549
+ "internalType": "bool",
550
+ "name": "claimForEnabled",
551
+ "type": "bool"
552
+ },
553
+ {
554
+ "internalType": "uint256",
555
+ "name": "maxClaimAmount",
556
+ "type": "uint256"
557
+ },
558
+ {
559
+ "internalType": "uint32",
560
+ "name": "maxMembers",
561
+ "type": "uint32"
562
+ },
563
+ {
564
+ "internalType": "bool",
565
+ "name": "onlyMembers",
566
+ "type": "bool"
567
+ }
568
+ ],
569
+ "internalType": "struct UBIPool.UBISettings",
570
+ "name": "_limits",
571
+ "type": "tuple"
572
+ },
573
+ {
574
+ "components": [
575
+ {
576
+ "internalType": "uint32",
577
+ "name": "maxPeriodClaimers",
578
+ "type": "uint32"
579
+ },
580
+ {
581
+ "internalType": "uint256",
582
+ "name": "minClaimAmount",
583
+ "type": "uint256"
584
+ },
585
+ {
586
+ "internalType": "uint32",
587
+ "name": "managerFeeBps",
588
+ "type": "uint32"
589
+ }
590
+ ],
591
+ "internalType": "struct UBIPool.ExtendedSettings",
592
+ "name": "_extendedSettings",
593
+ "type": "tuple"
594
+ }
595
+ ],
596
+ "name": "createPool",
597
+ "outputs": [
598
+ {
599
+ "internalType": "contract UBIPool",
600
+ "name": "pool",
601
+ "type": "address"
602
+ }
603
+ ],
604
+ "stateMutability": "nonpayable",
605
+ "type": "function"
606
+ },
607
+ {
608
+ "inputs": [],
609
+ "name": "feeBps",
610
+ "outputs": [
611
+ {
612
+ "internalType": "uint32",
613
+ "name": "",
614
+ "type": "uint32"
615
+ }
616
+ ],
617
+ "stateMutability": "view",
618
+ "type": "function"
619
+ },
620
+ {
621
+ "inputs": [],
622
+ "name": "feeRecipient",
623
+ "outputs": [
624
+ {
625
+ "internalType": "address",
626
+ "name": "",
627
+ "type": "address"
628
+ }
629
+ ],
630
+ "stateMutability": "view",
631
+ "type": "function"
632
+ },
633
+ {
634
+ "inputs": [
635
+ {
636
+ "internalType": "address",
637
+ "name": "member",
638
+ "type": "address"
639
+ }
640
+ ],
641
+ "name": "getMemberPools",
642
+ "outputs": [
643
+ {
644
+ "internalType": "address[]",
645
+ "name": "",
646
+ "type": "address[]"
647
+ }
648
+ ],
649
+ "stateMutability": "view",
650
+ "type": "function"
651
+ },
652
+ {
653
+ "inputs": [
654
+ {
655
+ "internalType": "bytes32",
656
+ "name": "role",
657
+ "type": "bytes32"
658
+ }
659
+ ],
660
+ "name": "getRoleAdmin",
661
+ "outputs": [
662
+ {
663
+ "internalType": "bytes32",
664
+ "name": "",
665
+ "type": "bytes32"
666
+ }
667
+ ],
668
+ "stateMutability": "view",
669
+ "type": "function"
670
+ },
671
+ {
672
+ "inputs": [
673
+ {
674
+ "internalType": "bytes32",
675
+ "name": "role",
676
+ "type": "bytes32"
677
+ },
678
+ {
679
+ "internalType": "address",
680
+ "name": "account",
681
+ "type": "address"
682
+ }
683
+ ],
684
+ "name": "grantRole",
685
+ "outputs": [],
686
+ "stateMutability": "nonpayable",
687
+ "type": "function"
688
+ },
689
+ {
690
+ "inputs": [
691
+ {
692
+ "internalType": "bytes32",
693
+ "name": "role",
694
+ "type": "bytes32"
695
+ },
696
+ {
697
+ "internalType": "address",
698
+ "name": "account",
699
+ "type": "address"
700
+ }
701
+ ],
702
+ "name": "hasRole",
703
+ "outputs": [
704
+ {
705
+ "internalType": "bool",
706
+ "name": "",
707
+ "type": "bool"
708
+ }
709
+ ],
710
+ "stateMutability": "view",
711
+ "type": "function"
712
+ },
713
+ {
714
+ "inputs": [],
715
+ "name": "impl",
716
+ "outputs": [
717
+ {
718
+ "internalType": "contract UpgradeableBeacon",
719
+ "name": "",
720
+ "type": "address"
721
+ }
722
+ ],
723
+ "stateMutability": "view",
724
+ "type": "function"
725
+ },
726
+ {
727
+ "inputs": [
728
+ {
729
+ "internalType": "address",
730
+ "name": "_owner",
731
+ "type": "address"
732
+ },
733
+ {
734
+ "internalType": "address",
735
+ "name": "_impl",
736
+ "type": "address"
737
+ },
738
+ {
739
+ "internalType": "address",
740
+ "name": "_feeRecipient",
741
+ "type": "address"
742
+ },
743
+ {
744
+ "internalType": "uint32",
745
+ "name": "_feeBps",
746
+ "type": "uint32"
747
+ }
748
+ ],
749
+ "name": "initialize",
750
+ "outputs": [],
751
+ "stateMutability": "nonpayable",
752
+ "type": "function"
753
+ },
754
+ {
755
+ "inputs": [
756
+ {
757
+ "internalType": "address",
758
+ "name": "",
759
+ "type": "address"
760
+ },
761
+ {
762
+ "internalType": "uint256",
763
+ "name": "",
764
+ "type": "uint256"
765
+ }
766
+ ],
767
+ "name": "memberPools",
768
+ "outputs": [
769
+ {
770
+ "internalType": "address",
771
+ "name": "",
772
+ "type": "address"
773
+ }
774
+ ],
775
+ "stateMutability": "view",
776
+ "type": "function"
777
+ },
778
+ {
779
+ "inputs": [
780
+ {
781
+ "internalType": "uint256",
782
+ "name": "",
783
+ "type": "uint256"
784
+ }
785
+ ],
786
+ "name": "pools",
787
+ "outputs": [
788
+ {
789
+ "internalType": "address",
790
+ "name": "",
791
+ "type": "address"
792
+ }
793
+ ],
794
+ "stateMutability": "view",
795
+ "type": "function"
796
+ },
797
+ {
798
+ "inputs": [
799
+ {
800
+ "internalType": "bytes32",
801
+ "name": "",
802
+ "type": "bytes32"
803
+ }
804
+ ],
805
+ "name": "projectIdToControlPool",
806
+ "outputs": [
807
+ {
808
+ "internalType": "contract UBIPool",
809
+ "name": "",
810
+ "type": "address"
811
+ }
812
+ ],
813
+ "stateMutability": "view",
814
+ "type": "function"
815
+ },
816
+ {
817
+ "inputs": [],
818
+ "name": "proxiableUUID",
819
+ "outputs": [
820
+ {
821
+ "internalType": "bytes32",
822
+ "name": "",
823
+ "type": "bytes32"
824
+ }
825
+ ],
826
+ "stateMutability": "view",
827
+ "type": "function"
828
+ },
829
+ {
830
+ "inputs": [
831
+ {
832
+ "internalType": "address",
833
+ "name": "",
834
+ "type": "address"
835
+ }
836
+ ],
837
+ "name": "registry",
838
+ "outputs": [
839
+ {
840
+ "internalType": "string",
841
+ "name": "ipfs",
842
+ "type": "string"
843
+ },
844
+ {
845
+ "internalType": "bool",
846
+ "name": "isVerified",
847
+ "type": "bool"
848
+ },
849
+ {
850
+ "internalType": "string",
851
+ "name": "projectId",
852
+ "type": "string"
853
+ }
854
+ ],
855
+ "stateMutability": "view",
856
+ "type": "function"
857
+ },
858
+ {
859
+ "inputs": [
860
+ {
861
+ "internalType": "address",
862
+ "name": "member",
863
+ "type": "address"
864
+ }
865
+ ],
866
+ "name": "removeMember",
867
+ "outputs": [],
868
+ "stateMutability": "nonpayable",
869
+ "type": "function"
870
+ },
871
+ {
872
+ "inputs": [
873
+ {
874
+ "internalType": "bytes32",
875
+ "name": "role",
876
+ "type": "bytes32"
877
+ },
878
+ {
879
+ "internalType": "address",
880
+ "name": "account",
881
+ "type": "address"
882
+ }
883
+ ],
884
+ "name": "renounceRole",
885
+ "outputs": [],
886
+ "stateMutability": "nonpayable",
887
+ "type": "function"
888
+ },
889
+ {
890
+ "inputs": [
891
+ {
892
+ "internalType": "bytes32",
893
+ "name": "role",
894
+ "type": "bytes32"
895
+ },
896
+ {
897
+ "internalType": "address",
898
+ "name": "account",
899
+ "type": "address"
900
+ }
901
+ ],
902
+ "name": "revokeRole",
903
+ "outputs": [],
904
+ "stateMutability": "nonpayable",
905
+ "type": "function"
906
+ },
907
+ {
908
+ "inputs": [
909
+ {
910
+ "internalType": "address",
911
+ "name": "_feeRecipient",
912
+ "type": "address"
913
+ },
914
+ {
915
+ "internalType": "uint32",
916
+ "name": "_feeBps",
917
+ "type": "uint32"
918
+ }
919
+ ],
920
+ "name": "setFeeInfo",
921
+ "outputs": [],
922
+ "stateMutability": "nonpayable",
923
+ "type": "function"
924
+ },
925
+ {
926
+ "inputs": [
927
+ {
928
+ "internalType": "contract UBIPool",
929
+ "name": "_pool",
930
+ "type": "address"
931
+ },
932
+ {
933
+ "internalType": "bool",
934
+ "name": "_isVerified",
935
+ "type": "bool"
936
+ }
937
+ ],
938
+ "name": "setVerified",
939
+ "outputs": [],
940
+ "stateMutability": "nonpayable",
941
+ "type": "function"
942
+ },
943
+ {
944
+ "inputs": [
945
+ {
946
+ "internalType": "bytes4",
947
+ "name": "interfaceId",
948
+ "type": "bytes4"
949
+ }
950
+ ],
951
+ "name": "supportsInterface",
952
+ "outputs": [
953
+ {
954
+ "internalType": "bool",
955
+ "name": "",
956
+ "type": "bool"
957
+ }
958
+ ],
959
+ "stateMutability": "view",
960
+ "type": "function"
961
+ },
962
+ {
963
+ "inputs": [
964
+ {
965
+ "internalType": "address",
966
+ "name": "_impl",
967
+ "type": "address"
968
+ }
969
+ ],
970
+ "name": "updateImpl",
971
+ "outputs": [],
972
+ "stateMutability": "nonpayable",
973
+ "type": "function"
974
+ },
975
+ {
976
+ "inputs": [
977
+ {
978
+ "internalType": "address",
979
+ "name": "newImplementation",
980
+ "type": "address"
981
+ }
982
+ ],
983
+ "name": "upgradeTo",
984
+ "outputs": [],
985
+ "stateMutability": "nonpayable",
986
+ "type": "function"
987
+ },
988
+ {
989
+ "inputs": [
990
+ {
991
+ "internalType": "address",
992
+ "name": "newImplementation",
993
+ "type": "address"
994
+ },
995
+ {
996
+ "internalType": "bytes",
997
+ "name": "data",
998
+ "type": "bytes"
999
+ }
1000
+ ],
1001
+ "name": "upgradeToAndCall",
1002
+ "outputs": [],
1003
+ "stateMutability": "payable",
1004
+ "type": "function"
1005
+ }
1006
+ ],
1007
+ "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051613ffc61004c600039600081816109c201528181610a0501528181610bda01528181610c1d0152610e070152613ffc6000f3fe608060405260043610620001645760003560e01c806301ffc9a71462000169578063038defd714620001a35780630b1ca49a14620001d9578063248a9ca3146200020057806324a9d85314620002345780632f2ff15d146200027057806336568abe14620002955780633659cfe614620002ba5780634507464614620002df5780634690484014620003135780634f1ef28614620003355780634f962c8c146200034c57806352d1902d146200037157806357b7076714620003895780636f4d469b14620003ae5780638abf607714620003d35780638e819e5414620003f557806391d14854146200041a5780639cedd89b146200043f5780639cf5c6131462000479578063a217fddf146200049e578063ac4afa3814620004b5578063aec133d214620004da578063ca6d56dc14620004ff578063d547741f1462000524578063e9e50b041462000549578063fadd65c3146200056e578063fcf1e00914620005a2575b600080fd5b3480156200017657600080fd5b506200018e62000188366004620022c0565b620005c7565b60405190151581526020015b60405180910390f35b348015620001b057600080fd5b50620001c8620001c236600462002302565b620005ff565b6040516200019a9392919062002376565b348015620001e657600080fd5b50620001fe620001f836600462002302565b6200074a565b005b3480156200020d57600080fd5b50620002256200021f366004620023b1565b620008fa565b6040519081526020016200019a565b3480156200024157600080fd5b5060fe546200025a90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016200019a565b3480156200027d57600080fd5b50620001fe6200028f366004620023cb565b6200090f565b348015620002a257600080fd5b50620001fe620002b4366004620023cb565b62000936565b348015620002c757600080fd5b50620001fe620002d936600462002302565b620009b8565b348015620002ec57600080fd5b5062000304620002fe36600462002636565b62000a8c565b6040516200019a91906200273e565b3480156200032057600080fd5b5060fe5462000304906001600160a01b031681565b620001fe6200034636600462002752565b62000bd0565b3480156200035957600080fd5b50620001fe6200036b366004620027bc565b62000c91565b3480156200037e57600080fd5b506200022562000dfa565b3480156200039657600080fd5b5062000304620003a836600462002807565b62000eab565b348015620003bb57600080fd5b50620001fe620003cd36600462002836565b62000ee4565b348015620003e057600080fd5b5060fb5462000304906001600160a01b031681565b3480156200040257600080fd5b50620001fe62000414366004620028af565b62000f77565b3480156200042757600080fd5b506200018e62000439366004620023cb565b6200111d565b3480156200044c57600080fd5b50620003046200045e366004620023b1565b60fd602052600090815260409020546001600160a01b031681565b3480156200048657600080fd5b50620001fe6200049836600462002912565b62001148565b348015620004ab57600080fd5b5062000225600081565b348015620004c257600080fd5b5062000304620004d4366004620023b1565b620011b1565b348015620004e757600080fd5b5062000304620004f936600462002636565b620011dd565b3480156200050c57600080fd5b50620001fe6200051e36600462002302565b62001315565b3480156200053157600080fd5b50620001fe62000543366004620023cb565b62001362565b3480156200055657600080fd5b50620001fe6200056836600462002945565b62001384565b3480156200057b57600080fd5b50620005936200058d36600462002302565b620013d1565b6040516200019a91906200297f565b348015620005af57600080fd5b50620001fe620005c136600462002302565b62001449565b60006001600160e01b03198216637965db0b60e01b1480620005f957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60fc602052600090815260409020805481906200061c90620029ce565b80601f01602080910402602001604051908101604052809291908181526020018280546200064a90620029ce565b80156200069b5780601f106200066f576101008083540402835291602001916200069b565b820191906000526020600020905b8154815290600101906020018083116200067d57829003601f168201915b5050506001840154600285018054949560ff909216949193509150620006c190620029ce565b80601f0160208091040260200160405190810160405280929190818152602001828054620006ef90620029ce565b8015620007405780601f10620007145761010080835404028352916020019162000740565b820191906000526020600020905b8154815290600101906020018083116200072257829003601f168201915b5050505050905083565b33600090815260fc6020526040902060020180546200076990620029ce565b90506000036200078c57604051630cc15fbb60e11b815260040160405180910390fd5b60005b6001600160a01b038216600090815260ff6020526040902054811015620008f6576001600160a01b038216600090815260ff60205260409020805433919083908110620007e057620007e062002a0a565b6000918252602090912001546001600160a01b031603620008e1576001600160a01b038216600090815260ff602052604090208054620008239060019062002a36565b8154811062000836576200083662002a0a565b60009182526020808320909101546001600160a01b03858116845260ff909252604090922080549190921691908390811062000876576200087662002a0a565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918416815260ff90915260409020805480620008be57620008be62002a4c565b600082815260209020810160001990810180546001600160a01b03191690550190555b80620008ed8162002a62565b9150506200078f565b5050565b60009081526065602052604090206001015490565b6200091a82620008fa565b6200092581620014f4565b62000931838362001500565b505050565b6001600160a01b0381163314620009ac5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b620008f682826200158a565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000a035760405162461bcd60e51b8152600401620009a39062002a7e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000a37620015f4565b6001600160a01b03161462000a605760405162461bcd60e51b8152600401620009a39062002ab9565b62000a6b8162001611565b6040805160008082526020820190925262000a89918391906200161e565b50565b8451602080870191909120600090815260fd909152604081205486906001600160a01b0316801562000bb357806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b06573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b2c919062002af4565b336040518363ffffffff1660e01b815260040162000b4c92919062002b0e565b602060405180830381865afa15801562000b6a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b90919062002b25565b151560000362000bb357604051631d799a6d60e21b815260040160405180910390fd5b62000bc48888888888600162001796565b98975050505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000c1b5760405162461bcd60e51b8152600401620009a39062002a7e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000c4f620015f4565b6001600160a01b03161462000c785760405162461bcd60e51b8152600401620009a39062002ab9565b62000c838262001611565b620008f6828260016200161e565b81806001600160a01b03166391d14854826001600160a01b031663ec87621c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ce0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d06919062002af4565b336040518363ffffffff1660e01b815260040162000d2692919062002b0e565b602060405180830381865afa15801562000d44573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d6a919062002b25565b151560000362000d8d57604051631d799a6d60e21b815260040160405180910390fd5b6001600160a01b038316600090815260fc6020526040902062000db1838262002b97565b50826001600160a01b03167f941ad6ac0538b96f9e89b9b52ec11031b50591baa2f16c0cdf1f94c69f389d6d8360405162000ded919062002c63565b60405180910390a2505050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161462000e975760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401620009a3565b5060008051602062003f8083398151915290565b60ff602052816000526040600020818154811062000ec857600080fd5b6000918252602090912001546001600160a01b03169150829050565b33600090815260fc60205260409020600201805462000f0390620029ce565b905060000362000f2657604051630cc15fbb60e11b815260040160405180910390fd5b60005b81811015620009315762000f6283838381811062000f4b5762000f4b62002a0a565b90506020020160208101906200051e919062002302565b8062000f6e8162002a62565b91505062000f29565b600054610100900460ff161580801562000f985750600054600160ff909116105b8062000fbd575062000faa3062001d87565b15801562000fbd575060005460ff166001145b620010225760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620009a3565b6000805460ff19166001179055801562001046576000805461ff0019166101001790555b83604051620010559062002296565b6200106191906200273e565b604051809103906000f0801580156200107e573d6000803e3d6000fd5b5060fb80546001600160a01b0319166001600160a01b0392831617905560fe80549185166001600160c01b031990921691909117600160a01b63ffffffff851602179055620010cf60008662001d96565b801562001116576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006200115581620014f4565b6001600160a01b038316600081815260fc6020908152604091829020600101805460ff191686151590811790915591519182527fafdc942e2e075abc791516f168aed9293862095eb31c0dab19c8d0d061018a93910162000ded565b6101008181548110620011c357600080fd5b6000918252602090912001546001600160a01b0316905081565b8451602080870191909120600090815260fd909152604081205486906001600160a01b031680156200130457806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001257573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200127d919062002af4565b336040518363ffffffff1660e01b81526004016200129d92919062002b0e565b602060405180830381865afa158015620012bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012e1919062002b25565b15156000036200130457604051631d799a6d60e21b815260040160405180910390fd5b62000bc48888888888600062001796565b33600090815260fc6020526040902060020180546200133490620029ce565b90506000036200135757604051630cc15fbb60e11b815260040160405180910390fd5b62000a898162001da2565b6200136d82620008fa565b6200137881620014f4565b6200093183836200158a565b60006200139181620014f4565b5060fe80546001600160a01b039093166001600160a01b031963ffffffff909316600160a01b02929092166001600160c01b031990931692909217179055565b6001600160a01b038116600090815260ff60209081526040918290208054835181840281018401909452808452606093928301828280156200143d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200141e575b50505050509050919050565b60006200145681620014f4565b60fb54604051631b2ce7f360e11b81526001600160a01b0390911690633659cfe690620014889085906004016200273e565b600060405180830381600087803b158015620014a357600080fd5b505af1158015620014b8573d6000803e3d6000fd5b50506040516001600160a01b03851692507f71ce7583e9b7e543de8a69a6af369c0b3528b287064f9dce26a38025e36dc2c79150600090a25050565b62000a89813362001e0c565b6200150c82826200111d565b620008f65760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015463390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6200159682826200111d565b15620008f65760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602062003f80833981519152546001600160a01b031690565b6000620008f681620014f4565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156200165457620009318362001e70565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620016b1575060408051601f3d908101601f19168201909252620016ae9181019062002af4565b60015b620017165760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401620009a3565b60008051602062003f808339815191528114620017885760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401620009a3565b506200093183838362001f0f565b60008085858530604051602401620017b2949392919062002d01565b60408051601f198184030181529190526020810180516001600160e01b031663235b53a160e11b17905290508215620018375760fb546040516001600160a01b039091169082906200180490620022a4565b6200181192919062002d64565b604051809103906000f0801580156200182e573d6000803e3d6000fd5b509150620018ee565b60fb60009054906101000a90046001600160a01b03166001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200188b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018b1919062002d92565b81604051620018c090620022b2565b620018cd92919062002d64565b604051809103906000f080158015620018ea573d6000803e3d6000fd5b5091505b816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200192d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001953919062002d92565b6001600160a01b0316633ca3ad4e836040518263ffffffff1660e01b81526004016200198091906200273e565b602060405180830381865afa1580156200199e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019c4919062002b25565b151560000362001b5f57816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001a0d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a33919062002d92565b6001600160a01b031663c60944a68360016040518363ffffffff1660e01b815260040162001a6392919062002db2565b600060405180830381600087803b15801562001a7e57600080fd5b505af192505050801562001a90575060015b62001b5f57816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001ad4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001afa919062002d92565b6001600160a01b031663f37330528360016040518363ffffffff1660e01b815260040162001b2a92919062002db2565b600060405180830381600087803b15801562001b4557600080fd5b505af115801562001b5a573d6000803e3d6000fd5b505050505b87516020808a0191909120600090815260fd90915260409020546001600160a01b031662001bba5787516020808a0191909120600090815260fd9091526040902080546001600160a01b0319166001600160a01b0384161790555b6001600160a01b038216600090815260fc6020526040902062001bde888262002b97565b506001600160a01b038216600090815260fc6020526040902060020162001c06898262002b97565b50604051632f2ff15d60e01b81526001600160a01b03831690632f2ff15d9062001c3890600090339060040162002b0e565b600060405180830381600087803b15801562001c5357600080fd5b505af115801562001c68573d6000803e3d6000fd5b5050604051631b2b455f60e11b81526001600160a01b03851692506336568abe915062001c9d90600090309060040162002b0e565b600060405180830381600087803b15801562001cb857600080fd5b505af115801562001ccd573d6000803e3d6000fd5b505061010080546001810182556000919091527f45e010b9ae401e2eb71529478da8bd513a9bdc2d095a111e324f5b95c09ed87b0180546001600160a01b0319166001600160a01b038616179055505060405162001d2d90899062002dcb565b6040518091039020826001600160a01b03167f2d89f584379c0b23270129f3ee10b4bfdd48e940725c460ee90c3b42b610644089898960405162001d749392919062002de9565b60405180910390a3509695505050505050565b6001600160a01b03163b151590565b620008f6828262001500565b6001600160a01b038116600081815260ff60209081526040808320805460018101825590845291832090910180546001600160a01b0319163390811790915590519092917f6a2af11b2d73f347f9d5840aea46899e17609730b5cd91bd9c312098038acba691a350565b62001e1882826200111d565b620008f65762001e288162001f40565b62001e3583602062001f53565b60405160200162001e4892919062002e20565b60408051601f198184030181529082905262461bcd60e51b8252620009a39160040162002c63565b62001e7b8162001d87565b62001edf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620009a3565b60008051602062003f8083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b62001f1a8362002113565b60008251118062001f285750805b15620009315762001f3a838362002155565b50505050565b6060620005f96001600160a01b03831660145b6060600062001f6483600262002e93565b62001f7190600262002ead565b6001600160401b0381111562001f8b5762001f8b620023fe565b6040519080825280601f01601f19166020018201604052801562001fb6576020820181803683370190505b509050600360fc1b8160008151811062001fd45762001fd462002a0a565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062002006576200200662002a0a565b60200101906001600160f81b031916908160001a90535060006200202c84600262002e93565b6200203990600162002ead565b90505b6001811115620020bb576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062002071576200207162002a0a565b1a60f81b8282815181106200208a576200208a62002a0a565b60200101906001600160f81b031916908160001a90535060049490941c93620020b38162002ec3565b90506200203c565b5083156200210c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009a3565b9392505050565b6200211e8162001e70565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620021628362001d87565b620021bf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620009a3565b600080846001600160a01b031684604051620021dc919062002dcb565b600060405180830381855af49150503d806000811462002219576040519150601f19603f3d011682016040523d82523d6000602084013e6200221e565b606091505b509150915062002249828260405180606001604052806027815260200162003fa06027913962002252565b95945050505050565b60608315620022635750816200210c565b6200210c83838151156200227a5781518083602001fd5b8060405162461bcd60e51b8152600401620009a3919062002c63565b6104c98062002ede83390190565b6106cd80620033a783390190565b6104ec8062003a7483390190565b600060208284031215620022d357600080fd5b81356001600160e01b0319811681146200210c57600080fd5b6001600160a01b038116811462000a8957600080fd5b6000602082840312156200231557600080fd5b81356200210c81620022ec565b60005b838110156200233f57818101518382015260200162002325565b50506000910152565b600081518084526200236281602086016020860162002322565b601f01601f19169290920160200192915050565b6060815260006200238b606083018662002348565b84151560208401528281036040840152620023a7818562002348565b9695505050505050565b600060208284031215620023c457600080fd5b5035919050565b60008060408385031215620023df57600080fd5b823591506020830135620023f381620022ec565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620024395762002439620023fe565b60405290565b60006001600160401b03808411156200245c576200245c620023fe565b604051601f8501601f19908116603f01168101908282118183101715620024875762002487620023fe565b81604052809350858152868686011115620024a157600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112620024cd57600080fd5b6200210c838335602085016200243f565b803563ffffffff81168114620024f357600080fd5b919050565b801515811462000a8957600080fd5b600060e082840312156200251a57600080fd5b60405160e081016001600160401b03811182821017156200253f576200253f620023fe565b6040529050806200255083620024de565b81526200256060208401620024de565b60208201526200257360408401620024de565b604082015260608301356200258881620024f8565b606082015260808381013590820152620025a560a08401620024de565b60a082015260c0830135620025ba81620024f8565b60c0919091015292915050565b600060608284031215620025da57600080fd5b604051606081016001600160401b0381118282101715620025ff57620025ff620023fe565b6040529050806200261083620024de565b8152602083013560208201526200262a60408401620024de565b60408201525092915050565b60008060008060008587036102008112156200265157600080fd5b86356001600160401b03808211156200266957600080fd5b620026778a838b01620024bb565b975060208901359150808211156200268e57600080fd5b506200269d89828a01620024bb565b9550506080603f1982011215620026b357600080fd5b50620026be62002414565b6040870135620026ce81620022ec565b81526060870135620026e081620022ec565b60208201526080870135620026f581620022ec565b604082015260a08701356200270a81620022ec565b60608201529250620027208760c0880162002507565b915062002732876101a08801620025c7565b90509295509295909350565b6001600160a01b0391909116815260200190565b600080604083850312156200276657600080fd5b82356200277381620022ec565b915060208301356001600160401b038111156200278f57600080fd5b8301601f81018513620027a157600080fd5b620027b2858235602084016200243f565b9150509250929050565b60008060408385031215620027d057600080fd5b8235620027dd81620022ec565b915060208301356001600160401b03811115620027f957600080fd5b620027b285828601620024bb565b600080604083850312156200281b57600080fd5b82356200282881620022ec565b946020939093013593505050565b600080602083850312156200284a57600080fd5b82356001600160401b03808211156200286257600080fd5b818501915085601f8301126200287757600080fd5b8135818111156200288757600080fd5b8660208260051b85010111156200289d57600080fd5b60209290920196919550909350505050565b60008060008060808587031215620028c657600080fd5b8435620028d381620022ec565b93506020850135620028e581620022ec565b92506040850135620028f781620022ec565b91506200290760608601620024de565b905092959194509250565b600080604083850312156200292657600080fd5b82356200293381620022ec565b91506020830135620023f381620024f8565b600080604083850312156200295957600080fd5b82356200296681620022ec565b91506200297660208401620024de565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015620029c25783516001600160a01b0316835292840192918401916001016200299b565b50909695505050505050565b600181811c90821680620029e357607f821691505b60208210810362002a0457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115620005f957620005f962002a20565b634e487b7160e01b600052603160045260246000fd5b60006001820162002a775762002a7762002a20565b5060010190565b6020808252602c9082015260008051602062003f6083398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602062003f6083398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121562002b0757600080fd5b5051919050565b9182526001600160a01b0316602082015260400190565b60006020828403121562002b3857600080fd5b81516200210c81620024f8565b601f8211156200093157600081815260208120601f850160051c8101602086101562002b6e5750805b601f850160051c820191505b8181101562002b8f5782815560010162002b7a565b505050505050565b81516001600160401b0381111562002bb35762002bb3620023fe565b62002bcb8162002bc48454620029ce565b8462002b45565b602080601f83116001811462002c03576000841562002bea5750858301515b600019600386901b1c1916600185901b17855562002b8f565b600085815260208120601f198616915b8281101562002c345788860151825594840194600190910190840162002c13565b508582101562002c535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020815260006200210c602083018462002348565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b63ffffffff808251168352806020830151166020840152806040830151166040840152606082015115156060840152608082015160808401528060a08301511660a08401525060c0810151151560c08301525050565b6101e0810162002d12828762002c78565b62002d21608083018662002cab565b835163ffffffff90811661016084015260208501516101808401526040909401519093166101a08201526001600160a01b03919091166101c09091015292915050565b6001600160a01b038316815260406020820181905260009062002d8a9083018462002348565b949350505050565b60006020828403121562002da557600080fd5b81516200210c81620022ec565b6001600160a01b03929092168252602082015260400190565b6000825162002ddf81846020870162002322565b9190910192915050565b600061018080835262002dff8184018762002348565b91505062002e11602083018562002c78565b62002d8a60a083018462002cab565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835162002e5481601785016020880162002322565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162002e8781602884016020880162002322565b01602801949350505050565b8082028115828204841417620005f957620005f962002a20565b80820180821115620005f957620005f962002a20565b60008162002ed55762002ed562002a20565b50600019019056fe608060405234801561001057600080fd5b506040516104c93803806104c983398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610350806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100aa575b600080fd5b61006f61006a3660046102ea565b6100bd565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f610105565b61007e610119565b61006f6100b83660046102ea565b610128565b6100c56101a6565b6100ce81610205565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61010d6101a6565b610117600061029a565b565b6000546001600160a01b031690565b6101306101a6565b6001600160a01b03811661019a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6101a38161029a565b50565b336101af610119565b6001600160a01b0316146101175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610191565b6001600160a01b0381163b6102785760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b6064820152608401610191565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102fc57600080fd5b81356001600160a01b038116811461031357600080fd5b939250505056fea264697066735822122038970e7cf09dc887c70d5260fa612ed542a4b7fc825586d54bcad83fc1ebdd9164736f6c6343000813003360806040526040516106cd3803806106cd83398101604081905261002291610421565b61002e82826000610035565b505061054b565b61003e836100f6565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100f1576100ef836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e991906104e1565b8361026e565b505b505050565b6100ff8161029a565b61015e5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101c8816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c391906104e1565b61029a565b61022d5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610155565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029383836040518060600160405280602781526020016106a6602791396102a9565b9392505050565b6001600160a01b03163b151590565b6060600080856001600160a01b0316856040516102c691906104fc565b600060405180830381855af49150503d8060008114610301576040519150601f19603f3d011682016040523d82523d6000602084013e610306565b606091505b50909250905061031886838387610322565b9695505050505050565b6060831561038f5782516000036103885761033c8561029a565b6103885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610155565b5081610399565b61039983836103a1565b949350505050565b8151156103b15781518083602001fd5b8060405162461bcd60e51b81526004016101559190610518565b80516001600160a01b03811681146103e257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015610418578181015183820152602001610400565b50506000910152565b6000806040838503121561043457600080fd5b61043d836103cb565b60208401519092506001600160401b038082111561045a57600080fd5b818501915085601f83011261046e57600080fd5b815181811115610480576104806103e7565b604051601f8201601f19908116603f011681019083821181831017156104a8576104a86103e7565b816040528281528860208487010111156104c157600080fd5b6104d28360208301602088016103fd565b80955050505050509250929050565b6000602082840312156104f357600080fd5b610293826103cb565b6000825161050e8184602087016103fd565b9190910192915050565b60208152600082518060208401526105378160408501602087016103fd565b601f01601f19169190910160400192915050565b61014c8061055a6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610029565b6100c2565b565b600061005c7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bd91906100e6565b905090565b3660008037600080366000845af43d6000803e8080156100e1573d6000f35b3d6000fd5b6000602082840312156100f857600080fd5b81516001600160a01b038116811461010f57600080fd5b939250505056fea26469706673582212207b4f4f4bd905b812712d76801c617b8aa3f4c3f8d6d9e59a18563606189dd4e564736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656460806040526040516104ec3803806104ec833981016040819052610022916102e9565b61002e82826000610035565b5050610406565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c56027913961017e565b9392505050565b6100d6816101f7565b61013d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019b91906103b7565b600060405180830381855af49150503d80600081146101d6576040519150601f19603f3d011682016040523d82523d6000602084013e6101db565b606091505b5090925090506101ed86838387610206565b9695505050505050565b6001600160a01b03163b151590565b6060831561027357825160000361026c57610220856101f7565b61026c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610134565b508161027d565b61027d8383610285565b949350505050565b8151156102955781518083602001fd5b8060405162461bcd60e51b815260040161013491906103d3565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102e05781810151838201526020016102c8565b50506000910152565b600080604083850312156102fc57600080fd5b82516001600160a01b038116811461031357600080fd5b60208401519092506001600160401b038082111561033057600080fd5b818501915085601f83011261034457600080fd5b815181811115610356576103566102af565b604051601f8201601f19908116603f0116810190838211818310171561037e5761037e6102af565b8160405282815288602084870101111561039757600080fd5b6103a88360208301602088016102c5565b80955050505050509250929050565b600082516103c98184602087016102c5565b9190910192915050565b60208152600082518060208401526103f28160408501602087016102c5565b601f01601f19169190910160400192915050565b60b1806104146000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea2646970667358221220a4cda07e5b291f61d81b4ee016ef5ca6a806aa56384b08ff8d52828dbed4d68d64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656446756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f73aa8b3d1214c738706e92fb99b9033b4bbeb6f09c2638144fdee36eb34aa8364736f6c63430008130033",
1008
+ "deployedBytecode": "0x608060405260043610620001645760003560e01c806301ffc9a71462000169578063038defd714620001a35780630b1ca49a14620001d9578063248a9ca3146200020057806324a9d85314620002345780632f2ff15d146200027057806336568abe14620002955780633659cfe614620002ba5780634507464614620002df5780634690484014620003135780634f1ef28614620003355780634f962c8c146200034c57806352d1902d146200037157806357b7076714620003895780636f4d469b14620003ae5780638abf607714620003d35780638e819e5414620003f557806391d14854146200041a5780639cedd89b146200043f5780639cf5c6131462000479578063a217fddf146200049e578063ac4afa3814620004b5578063aec133d214620004da578063ca6d56dc14620004ff578063d547741f1462000524578063e9e50b041462000549578063fadd65c3146200056e578063fcf1e00914620005a2575b600080fd5b3480156200017657600080fd5b506200018e62000188366004620022c0565b620005c7565b60405190151581526020015b60405180910390f35b348015620001b057600080fd5b50620001c8620001c236600462002302565b620005ff565b6040516200019a9392919062002376565b348015620001e657600080fd5b50620001fe620001f836600462002302565b6200074a565b005b3480156200020d57600080fd5b50620002256200021f366004620023b1565b620008fa565b6040519081526020016200019a565b3480156200024157600080fd5b5060fe546200025a90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016200019a565b3480156200027d57600080fd5b50620001fe6200028f366004620023cb565b6200090f565b348015620002a257600080fd5b50620001fe620002b4366004620023cb565b62000936565b348015620002c757600080fd5b50620001fe620002d936600462002302565b620009b8565b348015620002ec57600080fd5b5062000304620002fe36600462002636565b62000a8c565b6040516200019a91906200273e565b3480156200032057600080fd5b5060fe5462000304906001600160a01b031681565b620001fe6200034636600462002752565b62000bd0565b3480156200035957600080fd5b50620001fe6200036b366004620027bc565b62000c91565b3480156200037e57600080fd5b506200022562000dfa565b3480156200039657600080fd5b5062000304620003a836600462002807565b62000eab565b348015620003bb57600080fd5b50620001fe620003cd36600462002836565b62000ee4565b348015620003e057600080fd5b5060fb5462000304906001600160a01b031681565b3480156200040257600080fd5b50620001fe62000414366004620028af565b62000f77565b3480156200042757600080fd5b506200018e62000439366004620023cb565b6200111d565b3480156200044c57600080fd5b50620003046200045e366004620023b1565b60fd602052600090815260409020546001600160a01b031681565b3480156200048657600080fd5b50620001fe6200049836600462002912565b62001148565b348015620004ab57600080fd5b5062000225600081565b348015620004c257600080fd5b5062000304620004d4366004620023b1565b620011b1565b348015620004e757600080fd5b5062000304620004f936600462002636565b620011dd565b3480156200050c57600080fd5b50620001fe6200051e36600462002302565b62001315565b3480156200053157600080fd5b50620001fe62000543366004620023cb565b62001362565b3480156200055657600080fd5b50620001fe6200056836600462002945565b62001384565b3480156200057b57600080fd5b50620005936200058d36600462002302565b620013d1565b6040516200019a91906200297f565b348015620005af57600080fd5b50620001fe620005c136600462002302565b62001449565b60006001600160e01b03198216637965db0b60e01b1480620005f957506301ffc9a760e01b6001600160e01b03198316145b92915050565b60fc602052600090815260409020805481906200061c90620029ce565b80601f01602080910402602001604051908101604052809291908181526020018280546200064a90620029ce565b80156200069b5780601f106200066f576101008083540402835291602001916200069b565b820191906000526020600020905b8154815290600101906020018083116200067d57829003601f168201915b5050506001840154600285018054949560ff909216949193509150620006c190620029ce565b80601f0160208091040260200160405190810160405280929190818152602001828054620006ef90620029ce565b8015620007405780601f10620007145761010080835404028352916020019162000740565b820191906000526020600020905b8154815290600101906020018083116200072257829003601f168201915b5050505050905083565b33600090815260fc6020526040902060020180546200076990620029ce565b90506000036200078c57604051630cc15fbb60e11b815260040160405180910390fd5b60005b6001600160a01b038216600090815260ff6020526040902054811015620008f6576001600160a01b038216600090815260ff60205260409020805433919083908110620007e057620007e062002a0a565b6000918252602090912001546001600160a01b031603620008e1576001600160a01b038216600090815260ff602052604090208054620008239060019062002a36565b8154811062000836576200083662002a0a565b60009182526020808320909101546001600160a01b03858116845260ff909252604090922080549190921691908390811062000876576200087662002a0a565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918416815260ff90915260409020805480620008be57620008be62002a4c565b600082815260209020810160001990810180546001600160a01b03191690550190555b80620008ed8162002a62565b9150506200078f565b5050565b60009081526065602052604090206001015490565b6200091a82620008fa565b6200092581620014f4565b62000931838362001500565b505050565b6001600160a01b0381163314620009ac5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b620008f682826200158a565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000a035760405162461bcd60e51b8152600401620009a39062002a7e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000a37620015f4565b6001600160a01b03161462000a605760405162461bcd60e51b8152600401620009a39062002ab9565b62000a6b8162001611565b6040805160008082526020820190925262000a89918391906200161e565b50565b8451602080870191909120600090815260fd909152604081205486906001600160a01b0316801562000bb357806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000b06573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b2c919062002af4565b336040518363ffffffff1660e01b815260040162000b4c92919062002b0e565b602060405180830381865afa15801562000b6a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b90919062002b25565b151560000362000bb357604051631d799a6d60e21b815260040160405180910390fd5b62000bc48888888888600162001796565b98975050505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000c1b5760405162461bcd60e51b8152600401620009a39062002a7e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000c4f620015f4565b6001600160a01b03161462000c785760405162461bcd60e51b8152600401620009a39062002ab9565b62000c838262001611565b620008f6828260016200161e565b81806001600160a01b03166391d14854826001600160a01b031663ec87621c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ce0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d06919062002af4565b336040518363ffffffff1660e01b815260040162000d2692919062002b0e565b602060405180830381865afa15801562000d44573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d6a919062002b25565b151560000362000d8d57604051631d799a6d60e21b815260040160405180910390fd5b6001600160a01b038316600090815260fc6020526040902062000db1838262002b97565b50826001600160a01b03167f941ad6ac0538b96f9e89b9b52ec11031b50591baa2f16c0cdf1f94c69f389d6d8360405162000ded919062002c63565b60405180910390a2505050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161462000e975760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401620009a3565b5060008051602062003f8083398151915290565b60ff602052816000526040600020818154811062000ec857600080fd5b6000918252602090912001546001600160a01b03169150829050565b33600090815260fc60205260409020600201805462000f0390620029ce565b905060000362000f2657604051630cc15fbb60e11b815260040160405180910390fd5b60005b81811015620009315762000f6283838381811062000f4b5762000f4b62002a0a565b90506020020160208101906200051e919062002302565b8062000f6e8162002a62565b91505062000f29565b600054610100900460ff161580801562000f985750600054600160ff909116105b8062000fbd575062000faa3062001d87565b15801562000fbd575060005460ff166001145b620010225760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401620009a3565b6000805460ff19166001179055801562001046576000805461ff0019166101001790555b83604051620010559062002296565b6200106191906200273e565b604051809103906000f0801580156200107e573d6000803e3d6000fd5b5060fb80546001600160a01b0319166001600160a01b0392831617905560fe80549185166001600160c01b031990921691909117600160a01b63ffffffff851602179055620010cf60008662001d96565b801562001116576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006200115581620014f4565b6001600160a01b038316600081815260fc6020908152604091829020600101805460ff191686151590811790915591519182527fafdc942e2e075abc791516f168aed9293862095eb31c0dab19c8d0d061018a93910162000ded565b6101008181548110620011c357600080fd5b6000918252602090912001546001600160a01b0316905081565b8451602080870191909120600090815260fd909152604081205486906001600160a01b031680156200130457806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001257573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200127d919062002af4565b336040518363ffffffff1660e01b81526004016200129d92919062002b0e565b602060405180830381865afa158015620012bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620012e1919062002b25565b15156000036200130457604051631d799a6d60e21b815260040160405180910390fd5b62000bc48888888888600062001796565b33600090815260fc6020526040902060020180546200133490620029ce565b90506000036200135757604051630cc15fbb60e11b815260040160405180910390fd5b62000a898162001da2565b6200136d82620008fa565b6200137881620014f4565b6200093183836200158a565b60006200139181620014f4565b5060fe80546001600160a01b039093166001600160a01b031963ffffffff909316600160a01b02929092166001600160c01b031990931692909217179055565b6001600160a01b038116600090815260ff60209081526040918290208054835181840281018401909452808452606093928301828280156200143d57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116200141e575b50505050509050919050565b60006200145681620014f4565b60fb54604051631b2ce7f360e11b81526001600160a01b0390911690633659cfe690620014889085906004016200273e565b600060405180830381600087803b158015620014a357600080fd5b505af1158015620014b8573d6000803e3d6000fd5b50506040516001600160a01b03851692507f71ce7583e9b7e543de8a69a6af369c0b3528b287064f9dce26a38025e36dc2c79150600090a25050565b62000a89813362001e0c565b6200150c82826200111d565b620008f65760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015463390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6200159682826200111d565b15620008f65760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602062003f80833981519152546001600160a01b031690565b6000620008f681620014f4565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156200165457620009318362001e70565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620016b1575060408051601f3d908101601f19168201909252620016ae9181019062002af4565b60015b620017165760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401620009a3565b60008051602062003f808339815191528114620017885760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401620009a3565b506200093183838362001f0f565b60008085858530604051602401620017b2949392919062002d01565b60408051601f198184030181529190526020810180516001600160e01b031663235b53a160e11b17905290508215620018375760fb546040516001600160a01b039091169082906200180490620022a4565b6200181192919062002d64565b604051809103906000f0801580156200182e573d6000803e3d6000fd5b509150620018ee565b60fb60009054906101000a90046001600160a01b03166001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200188b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620018b1919062002d92565b81604051620018c090620022b2565b620018cd92919062002d64565b604051809103906000f080158015620018ea573d6000803e3d6000fd5b5091505b816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200192d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001953919062002d92565b6001600160a01b0316633ca3ad4e836040518263ffffffff1660e01b81526004016200198091906200273e565b602060405180830381865afa1580156200199e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620019c4919062002b25565b151560000362001b5f57816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001a0d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001a33919062002d92565b6001600160a01b031663c60944a68360016040518363ffffffff1660e01b815260040162001a6392919062002db2565b600060405180830381600087803b15801562001a7e57600080fd5b505af192505050801562001a90575060015b62001b5f57816001600160a01b031663f437bc596040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001ad4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001afa919062002d92565b6001600160a01b031663f37330528360016040518363ffffffff1660e01b815260040162001b2a92919062002db2565b600060405180830381600087803b15801562001b4557600080fd5b505af115801562001b5a573d6000803e3d6000fd5b505050505b87516020808a0191909120600090815260fd90915260409020546001600160a01b031662001bba5787516020808a0191909120600090815260fd9091526040902080546001600160a01b0319166001600160a01b0384161790555b6001600160a01b038216600090815260fc6020526040902062001bde888262002b97565b506001600160a01b038216600090815260fc6020526040902060020162001c06898262002b97565b50604051632f2ff15d60e01b81526001600160a01b03831690632f2ff15d9062001c3890600090339060040162002b0e565b600060405180830381600087803b15801562001c5357600080fd5b505af115801562001c68573d6000803e3d6000fd5b5050604051631b2b455f60e11b81526001600160a01b03851692506336568abe915062001c9d90600090309060040162002b0e565b600060405180830381600087803b15801562001cb857600080fd5b505af115801562001ccd573d6000803e3d6000fd5b505061010080546001810182556000919091527f45e010b9ae401e2eb71529478da8bd513a9bdc2d095a111e324f5b95c09ed87b0180546001600160a01b0319166001600160a01b038616179055505060405162001d2d90899062002dcb565b6040518091039020826001600160a01b03167f2d89f584379c0b23270129f3ee10b4bfdd48e940725c460ee90c3b42b610644089898960405162001d749392919062002de9565b60405180910390a3509695505050505050565b6001600160a01b03163b151590565b620008f6828262001500565b6001600160a01b038116600081815260ff60209081526040808320805460018101825590845291832090910180546001600160a01b0319163390811790915590519092917f6a2af11b2d73f347f9d5840aea46899e17609730b5cd91bd9c312098038acba691a350565b62001e1882826200111d565b620008f65762001e288162001f40565b62001e3583602062001f53565b60405160200162001e4892919062002e20565b60408051601f198184030181529082905262461bcd60e51b8252620009a39160040162002c63565b62001e7b8162001d87565b62001edf5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401620009a3565b60008051602062003f8083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b62001f1a8362002113565b60008251118062001f285750805b15620009315762001f3a838362002155565b50505050565b6060620005f96001600160a01b03831660145b6060600062001f6483600262002e93565b62001f7190600262002ead565b6001600160401b0381111562001f8b5762001f8b620023fe565b6040519080825280601f01601f19166020018201604052801562001fb6576020820181803683370190505b509050600360fc1b8160008151811062001fd45762001fd462002a0a565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062002006576200200662002a0a565b60200101906001600160f81b031916908160001a90535060006200202c84600262002e93565b6200203990600162002ead565b90505b6001811115620020bb576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062002071576200207162002a0a565b1a60f81b8282815181106200208a576200208a62002a0a565b60200101906001600160f81b031916908160001a90535060049490941c93620020b38162002ec3565b90506200203c565b5083156200210c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009a3565b9392505050565b6200211e8162001e70565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620021628362001d87565b620021bf5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401620009a3565b600080846001600160a01b031684604051620021dc919062002dcb565b600060405180830381855af49150503d806000811462002219576040519150601f19603f3d011682016040523d82523d6000602084013e6200221e565b606091505b509150915062002249828260405180606001604052806027815260200162003fa06027913962002252565b95945050505050565b60608315620022635750816200210c565b6200210c83838151156200227a5781518083602001fd5b8060405162461bcd60e51b8152600401620009a3919062002c63565b6104c98062002ede83390190565b6106cd80620033a783390190565b6104ec8062003a7483390190565b600060208284031215620022d357600080fd5b81356001600160e01b0319811681146200210c57600080fd5b6001600160a01b038116811462000a8957600080fd5b6000602082840312156200231557600080fd5b81356200210c81620022ec565b60005b838110156200233f57818101518382015260200162002325565b50506000910152565b600081518084526200236281602086016020860162002322565b601f01601f19169290920160200192915050565b6060815260006200238b606083018662002348565b84151560208401528281036040840152620023a7818562002348565b9695505050505050565b600060208284031215620023c457600080fd5b5035919050565b60008060408385031215620023df57600080fd5b823591506020830135620023f381620022ec565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620024395762002439620023fe565b60405290565b60006001600160401b03808411156200245c576200245c620023fe565b604051601f8501601f19908116603f01168101908282118183101715620024875762002487620023fe565b81604052809350858152868686011115620024a157600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112620024cd57600080fd5b6200210c838335602085016200243f565b803563ffffffff81168114620024f357600080fd5b919050565b801515811462000a8957600080fd5b600060e082840312156200251a57600080fd5b60405160e081016001600160401b03811182821017156200253f576200253f620023fe565b6040529050806200255083620024de565b81526200256060208401620024de565b60208201526200257360408401620024de565b604082015260608301356200258881620024f8565b606082015260808381013590820152620025a560a08401620024de565b60a082015260c0830135620025ba81620024f8565b60c0919091015292915050565b600060608284031215620025da57600080fd5b604051606081016001600160401b0381118282101715620025ff57620025ff620023fe565b6040529050806200261083620024de565b8152602083013560208201526200262a60408401620024de565b60408201525092915050565b60008060008060008587036102008112156200265157600080fd5b86356001600160401b03808211156200266957600080fd5b620026778a838b01620024bb565b975060208901359150808211156200268e57600080fd5b506200269d89828a01620024bb565b9550506080603f1982011215620026b357600080fd5b50620026be62002414565b6040870135620026ce81620022ec565b81526060870135620026e081620022ec565b60208201526080870135620026f581620022ec565b604082015260a08701356200270a81620022ec565b60608201529250620027208760c0880162002507565b915062002732876101a08801620025c7565b90509295509295909350565b6001600160a01b0391909116815260200190565b600080604083850312156200276657600080fd5b82356200277381620022ec565b915060208301356001600160401b038111156200278f57600080fd5b8301601f81018513620027a157600080fd5b620027b2858235602084016200243f565b9150509250929050565b60008060408385031215620027d057600080fd5b8235620027dd81620022ec565b915060208301356001600160401b03811115620027f957600080fd5b620027b285828601620024bb565b600080604083850312156200281b57600080fd5b82356200282881620022ec565b946020939093013593505050565b600080602083850312156200284a57600080fd5b82356001600160401b03808211156200286257600080fd5b818501915085601f8301126200287757600080fd5b8135818111156200288757600080fd5b8660208260051b85010111156200289d57600080fd5b60209290920196919550909350505050565b60008060008060808587031215620028c657600080fd5b8435620028d381620022ec565b93506020850135620028e581620022ec565b92506040850135620028f781620022ec565b91506200290760608601620024de565b905092959194509250565b600080604083850312156200292657600080fd5b82356200293381620022ec565b91506020830135620023f381620024f8565b600080604083850312156200295957600080fd5b82356200296681620022ec565b91506200297660208401620024de565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015620029c25783516001600160a01b0316835292840192918401916001016200299b565b50909695505050505050565b600181811c90821680620029e357607f821691505b60208210810362002a0457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115620005f957620005f962002a20565b634e487b7160e01b600052603160045260246000fd5b60006001820162002a775762002a7762002a20565b5060010190565b6020808252602c9082015260008051602062003f6083398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602062003f6083398151915260408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121562002b0757600080fd5b5051919050565b9182526001600160a01b0316602082015260400190565b60006020828403121562002b3857600080fd5b81516200210c81620024f8565b601f8211156200093157600081815260208120601f850160051c8101602086101562002b6e5750805b601f850160051c820191505b8181101562002b8f5782815560010162002b7a565b505050505050565b81516001600160401b0381111562002bb35762002bb3620023fe565b62002bcb8162002bc48454620029ce565b8462002b45565b602080601f83116001811462002c03576000841562002bea5750858301515b600019600386901b1c1916600185901b17855562002b8f565b600085815260208120601f198616915b8281101562002c345788860151825594840194600190910190840162002c13565b508582101562002c535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6020815260006200210c602083018462002348565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b63ffffffff808251168352806020830151166020840152806040830151166040840152606082015115156060840152608082015160808401528060a08301511660a08401525060c0810151151560c08301525050565b6101e0810162002d12828762002c78565b62002d21608083018662002cab565b835163ffffffff90811661016084015260208501516101808401526040909401519093166101a08201526001600160a01b03919091166101c09091015292915050565b6001600160a01b038316815260406020820181905260009062002d8a9083018462002348565b949350505050565b60006020828403121562002da557600080fd5b81516200210c81620022ec565b6001600160a01b03929092168252602082015260400190565b6000825162002ddf81846020870162002322565b9190910192915050565b600061018080835262002dff8184018762002348565b91505062002e11602083018562002c78565b62002d8a60a083018462002cab565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835162002e5481601785016020880162002322565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162002e8781602884016020880162002322565b01602801949350505050565b8082028115828204841417620005f957620005f962002a20565b80820180821115620005f957620005f962002a20565b60008162002ed55762002ed562002a20565b50600019019056fe608060405234801561001057600080fd5b506040516104c93803806104c983398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610350806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100aa575b600080fd5b61006f61006a3660046102ea565b6100bd565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f610105565b61007e610119565b61006f6100b83660046102ea565b610128565b6100c56101a6565b6100ce81610205565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61010d6101a6565b610117600061029a565b565b6000546001600160a01b031690565b6101306101a6565b6001600160a01b03811661019a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6101a38161029a565b50565b336101af610119565b6001600160a01b0316146101175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610191565b6001600160a01b0381163b6102785760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b6064820152608401610191565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102fc57600080fd5b81356001600160a01b038116811461031357600080fd5b939250505056fea264697066735822122038970e7cf09dc887c70d5260fa612ed542a4b7fc825586d54bcad83fc1ebdd9164736f6c6343000813003360806040526040516106cd3803806106cd83398101604081905261002291610421565b61002e82826000610035565b505061054b565b61003e836100f6565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100f1576100ef836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e991906104e1565b8361026e565b505b505050565b6100ff8161029a565b61015e5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101c8816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c391906104e1565b61029a565b61022d5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610155565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029383836040518060600160405280602781526020016106a6602791396102a9565b9392505050565b6001600160a01b03163b151590565b6060600080856001600160a01b0316856040516102c691906104fc565b600060405180830381855af49150503d8060008114610301576040519150601f19603f3d011682016040523d82523d6000602084013e610306565b606091505b50909250905061031886838387610322565b9695505050505050565b6060831561038f5782516000036103885761033c8561029a565b6103885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610155565b5081610399565b61039983836103a1565b949350505050565b8151156103b15781518083602001fd5b8060405162461bcd60e51b81526004016101559190610518565b80516001600160a01b03811681146103e257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015610418578181015183820152602001610400565b50506000910152565b6000806040838503121561043457600080fd5b61043d836103cb565b60208401519092506001600160401b038082111561045a57600080fd5b818501915085601f83011261046e57600080fd5b815181811115610480576104806103e7565b604051601f8201601f19908116603f011681019083821181831017156104a8576104a86103e7565b816040528281528860208487010111156104c157600080fd5b6104d28360208301602088016103fd565b80955050505050509250929050565b6000602082840312156104f357600080fd5b610293826103cb565b6000825161050e8184602087016103fd565b9190910192915050565b60208152600082518060208401526105378160408501602087016103fd565b601f01601f19169190910160400192915050565b61014c8061055a6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610029565b6100c2565b565b600061005c7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bd91906100e6565b905090565b3660008037600080366000845af43d6000803e8080156100e1573d6000f35b3d6000fd5b6000602082840312156100f857600080fd5b81516001600160a01b038116811461010f57600080fd5b939250505056fea26469706673582212207b4f4f4bd905b812712d76801c617b8aa3f4c3f8d6d9e59a18563606189dd4e564736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656460806040526040516104ec3803806104ec833981016040819052610022916102e9565b61002e82826000610035565b5050610406565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c56027913961017e565b9392505050565b6100d6816101f7565b61013d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019b91906103b7565b600060405180830381855af49150503d80600081146101d6576040519150601f19603f3d011682016040523d82523d6000602084013e6101db565b606091505b5090925090506101ed86838387610206565b9695505050505050565b6001600160a01b03163b151590565b6060831561027357825160000361026c57610220856101f7565b61026c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610134565b508161027d565b61027d8383610285565b949350505050565b8151156102955781518083602001fd5b8060405162461bcd60e51b815260040161013491906103d3565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102e05781810151838201526020016102c8565b50506000910152565b600080604083850312156102fc57600080fd5b82516001600160a01b038116811461031357600080fd5b60208401519092506001600160401b038082111561033057600080fd5b818501915085601f83011261034457600080fd5b815181811115610356576103566102af565b604051601f8201601f19908116603f0116810190838211818310171561037e5761037e6102af565b8160405282815288602084870101111561039757600080fd5b6103a88360208301602088016102c5565b80955050505050509250929050565b600082516103c98184602087016102c5565b9190910192915050565b60208152600082518060208401526103f28160408501602087016102c5565b601f01601f19169190910160400192915050565b60b1806104146000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea2646970667358221220a4cda07e5b291f61d81b4ee016ef5ca6a806aa56384b08ff8d52828dbed4d68d64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656446756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220f73aa8b3d1214c738706e92fb99b9033b4bbeb6f09c2638144fdee36eb34aa8364736f6c63430008130033",
1009
+ "linkReferences": {},
1010
+ "deployedLinkReferences": {}
1011
+ }