@oceanprotocol/lib 1.0.0-next.0 → 1.0.0-next.4

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 (93) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/lib.js +2 -0
  3. package/dist/lib.js.map +1 -0
  4. package/dist/lib.modern.js +2 -0
  5. package/dist/lib.modern.js.map +1 -0
  6. package/dist/lib.module.js +2 -0
  7. package/dist/lib.module.js.map +1 -0
  8. package/dist/lib.umd.js +2 -0
  9. package/dist/lib.umd.js.map +1 -0
  10. package/dist/{node/src → src}/@types/Asset.d.ts +0 -0
  11. package/dist/{node/src → src}/@types/Compute.d.ts +0 -0
  12. package/dist/{node/src → src}/@types/DDO/Credentials.d.ts +0 -0
  13. package/dist/{node/src → src}/@types/DDO/DDO.d.ts +0 -0
  14. package/dist/{node/src → src}/@types/DDO/Event.d.ts +0 -0
  15. package/dist/{node/src → src}/@types/DDO/Metadata.d.ts +0 -0
  16. package/dist/{node/src → src}/@types/DDO/Service.d.ts +0 -0
  17. package/dist/{node/src → src}/@types/FileMetadata.d.ts +0 -0
  18. package/dist/{node/src → src}/@types/Provider.d.ts +0 -0
  19. package/dist/{node/src → src}/@types/index.d.ts +0 -0
  20. package/dist/{node/src → src}/aquarius/Aquarius.d.ts +0 -0
  21. package/dist/{node/src → src}/aquarius/index.d.ts +0 -0
  22. package/dist/{node/src → src}/factories/NFTFactory.d.ts +0 -0
  23. package/dist/{node/src → src}/factories/index.d.ts +0 -0
  24. package/dist/{node/src → src}/index.d.ts +0 -0
  25. package/dist/{node/src → src}/interfaces/DispenserInterface.d.ts +0 -0
  26. package/dist/{node/src → src}/interfaces/Erc20Interface.d.ts +0 -0
  27. package/dist/{node/src → src}/interfaces/FixedRateInterface.d.ts +0 -0
  28. package/dist/{node/src → src}/interfaces/PoolInterface.d.ts +0 -0
  29. package/dist/{node/src → src}/interfaces/RouterInterface.d.ts +0 -0
  30. package/dist/{node/src → src}/interfaces/index.d.ts +0 -0
  31. package/dist/{node/src → src}/models/Config.d.ts +0 -0
  32. package/dist/{node/src → src}/models/index.d.ts +0 -0
  33. package/dist/{node/src → src}/pools/Router.d.ts +0 -0
  34. package/dist/{node/src → src}/pools/balancer/Pool.d.ts +0 -0
  35. package/dist/{node/src → src}/pools/balancer/index.d.ts +0 -0
  36. package/dist/{node/src → src}/pools/dispenser/Dispenser.d.ts +0 -0
  37. package/dist/{node/src → src}/pools/dispenser/index.d.ts +0 -0
  38. package/dist/{node/src → src}/pools/fixedRate/FixedRateExchange.d.ts +0 -0
  39. package/dist/{node/src → src}/pools/fixedRate/index.d.ts +0 -0
  40. package/dist/{node/src → src}/pools/index.d.ts +0 -0
  41. package/dist/{node/src → src}/pools/ssContracts/SideStaking.d.ts +0 -0
  42. package/dist/{node/src → src}/pools/ssContracts/index.d.ts +0 -0
  43. package/dist/{node/src → src}/provider/Provider.d.ts +0 -0
  44. package/dist/{node/src → src}/provider/index.d.ts +0 -0
  45. package/dist/{node/src → src}/tokens/Datatoken.d.ts +0 -0
  46. package/dist/{node/src → src}/tokens/NFT.d.ts +0 -0
  47. package/dist/{node/src → src}/tokens/index.d.ts +0 -0
  48. package/dist/{node/src → src}/utils/ConfigHelper.d.ts +0 -0
  49. package/dist/{node/src → src}/utils/Constants.d.ts +0 -0
  50. package/dist/{node/src → src}/utils/ContractParams.d.ts +0 -0
  51. package/dist/{node/src → src}/utils/ConversionTypeHelper.d.ts +0 -0
  52. package/dist/{node/src → src}/utils/DatatokenName.d.ts +0 -0
  53. package/dist/{node/src → src}/utils/DdoHelpers.d.ts +0 -0
  54. package/dist/{node/src → src}/utils/FetchHelper.d.ts +0 -0
  55. package/dist/{node/src → src}/utils/GasUtils.d.ts +0 -0
  56. package/dist/{node/src → src}/utils/Logger.d.ts +0 -0
  57. package/dist/{node/src → src}/utils/SignatureUtils.d.ts +0 -0
  58. package/dist/{node/src → src}/utils/index.d.ts +0 -0
  59. package/dist/test/TestContractHandler.d.ts +44 -0
  60. package/dist/test/integration/ComputeFlow.test.d.ts +1 -0
  61. package/dist/test/integration/Provider.test.d.ts +1 -0
  62. package/dist/test/integration/PublishFlows.test.d.ts +1 -0
  63. package/dist/test/integration/SimplePublishConsumeFlow.test.d.ts +1 -0
  64. package/dist/test/integration/config.d.ts +3 -0
  65. package/dist/test/unit/NftFactory.test.d.ts +1 -0
  66. package/dist/test/unit/config.d.ts +3 -0
  67. package/dist/test/unit/pools/Router.test.d.ts +1 -0
  68. package/dist/test/unit/pools/balancer/Pool.test.d.ts +1 -0
  69. package/dist/test/unit/pools/dispenser/Dispenser.test.d.ts +1 -0
  70. package/dist/test/unit/pools/fixedRate/FixedRateExchange.test.d.ts +1 -0
  71. package/dist/test/unit/pools/ssContracts/SideStaking.test.d.ts +1 -0
  72. package/dist/test/unit/tokens/Datatoken.test.d.ts +1 -0
  73. package/dist/test/unit/tokens/Nft.test.d.ts +1 -0
  74. package/package.json +22 -19
  75. package/artifacts/ERC721Factory.sol/ERC721Factory.json +0 -1164
  76. package/artifacts/addresses/address.json +0 -21
  77. package/artifacts/communityFee/OPFCommunityFeeCollector.sol/OPFCommunityFeeCollector.json +0 -116
  78. package/artifacts/pools/FactoryRouter.sol/FactoryRouter.json +0 -1086
  79. package/artifacts/pools/balancer/BPool.sol/BPool.json +0 -1744
  80. package/artifacts/pools/dispenser/Dispenser.sol/Dispenser.json +0 -358
  81. package/artifacts/pools/fixedRate/FixedRateExchange.sol/FixedRateExchange.json +0 -917
  82. package/artifacts/pools/ssContracts/SideStaking.sol/SideStaking.json +0 -428
  83. package/artifacts/templates/ERC20Template.sol/ERC20Template.json +0 -1382
  84. package/artifacts/templates/ERC20TemplateEnterprise.sol/ERC20TemplateEnterprise.json +0 -1530
  85. package/artifacts/templates/ERC721Template.sol/ERC721Template.json +0 -1534
  86. package/artifacts/utils/mock/MockERC20.sol/MockERC20.json +0 -302
  87. package/artifacts/utils/mock/MockERC20Decimals.sol/MockERC20Decimals.json +0 -302
  88. package/dist/node/lib.js +0 -2
  89. package/dist/node/lib.js.map +0 -1
  90. package/dist/node/lib.module.js +0 -2
  91. package/dist/node/lib.module.js.map +0 -1
  92. package/dist/node/lib.umd.js +0 -2
  93. package/dist/node/lib.umd.js.map +0 -1
@@ -1,1530 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "ERC20TemplateEnterprise",
4
- "sourceName": "contracts/templates/ERC20TemplateEnterprise.sol",
5
- "abi": [
6
- {
7
- "anonymous": false,
8
- "inputs": [
9
- {
10
- "indexed": true,
11
- "internalType": "address",
12
- "name": "user",
13
- "type": "address"
14
- },
15
- {
16
- "indexed": true,
17
- "internalType": "address",
18
- "name": "signer",
19
- "type": "address"
20
- },
21
- {
22
- "indexed": false,
23
- "internalType": "uint256",
24
- "name": "timestamp",
25
- "type": "uint256"
26
- },
27
- {
28
- "indexed": false,
29
- "internalType": "uint256",
30
- "name": "blockNumber",
31
- "type": "uint256"
32
- }
33
- ],
34
- "name": "AddedMinter",
35
- "type": "event"
36
- },
37
- {
38
- "anonymous": false,
39
- "inputs": [
40
- {
41
- "indexed": true,
42
- "internalType": "address",
43
- "name": "user",
44
- "type": "address"
45
- },
46
- {
47
- "indexed": true,
48
- "internalType": "address",
49
- "name": "signer",
50
- "type": "address"
51
- },
52
- {
53
- "indexed": false,
54
- "internalType": "uint256",
55
- "name": "timestamp",
56
- "type": "uint256"
57
- },
58
- {
59
- "indexed": false,
60
- "internalType": "uint256",
61
- "name": "blockNumber",
62
- "type": "uint256"
63
- }
64
- ],
65
- "name": "AddedPaymentManager",
66
- "type": "event"
67
- },
68
- {
69
- "anonymous": false,
70
- "inputs": [
71
- {
72
- "indexed": true,
73
- "internalType": "address",
74
- "name": "owner",
75
- "type": "address"
76
- },
77
- {
78
- "indexed": true,
79
- "internalType": "address",
80
- "name": "spender",
81
- "type": "address"
82
- },
83
- {
84
- "indexed": false,
85
- "internalType": "uint256",
86
- "name": "value",
87
- "type": "uint256"
88
- }
89
- ],
90
- "name": "Approval",
91
- "type": "event"
92
- },
93
- {
94
- "anonymous": false,
95
- "inputs": [
96
- {
97
- "indexed": false,
98
- "internalType": "address",
99
- "name": "buyer",
100
- "type": "address"
101
- },
102
- {
103
- "indexed": false,
104
- "internalType": "uint256",
105
- "name": "baseTokenAmount",
106
- "type": "uint256"
107
- },
108
- {
109
- "indexed": false,
110
- "internalType": "uint256",
111
- "name": "marketFeeAmount",
112
- "type": "uint256"
113
- }
114
- ],
115
- "name": "BuyAndOrder",
116
- "type": "event"
117
- },
118
- {
119
- "anonymous": false,
120
- "inputs": [
121
- {
122
- "indexed": true,
123
- "internalType": "address",
124
- "name": "signer",
125
- "type": "address"
126
- },
127
- {
128
- "indexed": false,
129
- "internalType": "uint256",
130
- "name": "timestamp",
131
- "type": "uint256"
132
- },
133
- {
134
- "indexed": false,
135
- "internalType": "uint256",
136
- "name": "blockNumber",
137
- "type": "uint256"
138
- }
139
- ],
140
- "name": "CleanedPermissions",
141
- "type": "event"
142
- },
143
- {
144
- "anonymous": false,
145
- "inputs": [
146
- {
147
- "indexed": false,
148
- "internalType": "address",
149
- "name": "currentMinter",
150
- "type": "address"
151
- },
152
- {
153
- "indexed": false,
154
- "internalType": "address",
155
- "name": "newMinter",
156
- "type": "address"
157
- }
158
- ],
159
- "name": "MinterApproved",
160
- "type": "event"
161
- },
162
- {
163
- "anonymous": false,
164
- "inputs": [
165
- {
166
- "indexed": false,
167
- "internalType": "address",
168
- "name": "currentMinter",
169
- "type": "address"
170
- },
171
- {
172
- "indexed": false,
173
- "internalType": "address",
174
- "name": "newMinter",
175
- "type": "address"
176
- }
177
- ],
178
- "name": "MinterProposed",
179
- "type": "event"
180
- },
181
- {
182
- "anonymous": false,
183
- "inputs": [
184
- {
185
- "indexed": false,
186
- "internalType": "bytes32",
187
- "name": "exchangeId",
188
- "type": "bytes32"
189
- },
190
- {
191
- "indexed": false,
192
- "internalType": "address",
193
- "name": "owner",
194
- "type": "address"
195
- }
196
- ],
197
- "name": "NewFixedRate",
198
- "type": "event"
199
- },
200
- {
201
- "anonymous": false,
202
- "inputs": [
203
- {
204
- "indexed": true,
205
- "internalType": "address",
206
- "name": "caller",
207
- "type": "address"
208
- },
209
- {
210
- "indexed": true,
211
- "internalType": "address",
212
- "name": "_newPaymentCollector",
213
- "type": "address"
214
- },
215
- {
216
- "indexed": false,
217
- "internalType": "uint256",
218
- "name": "timestamp",
219
- "type": "uint256"
220
- },
221
- {
222
- "indexed": false,
223
- "internalType": "uint256",
224
- "name": "blockNumber",
225
- "type": "uint256"
226
- }
227
- ],
228
- "name": "NewPaymentCollector",
229
- "type": "event"
230
- },
231
- {
232
- "anonymous": false,
233
- "inputs": [
234
- {
235
- "indexed": false,
236
- "internalType": "address",
237
- "name": "poolAddress",
238
- "type": "address"
239
- },
240
- {
241
- "indexed": false,
242
- "internalType": "address",
243
- "name": "ssContract",
244
- "type": "address"
245
- },
246
- {
247
- "indexed": false,
248
- "internalType": "address",
249
- "name": "basetokenAddress",
250
- "type": "address"
251
- }
252
- ],
253
- "name": "NewPool",
254
- "type": "event"
255
- },
256
- {
257
- "anonymous": false,
258
- "inputs": [
259
- {
260
- "indexed": true,
261
- "internalType": "address",
262
- "name": "consumer",
263
- "type": "address"
264
- },
265
- {
266
- "indexed": false,
267
- "internalType": "address",
268
- "name": "payer",
269
- "type": "address"
270
- },
271
- {
272
- "indexed": false,
273
- "internalType": "uint256",
274
- "name": "amount",
275
- "type": "uint256"
276
- },
277
- {
278
- "indexed": false,
279
- "internalType": "uint256",
280
- "name": "serviceIndex",
281
- "type": "uint256"
282
- },
283
- {
284
- "indexed": false,
285
- "internalType": "uint256",
286
- "name": "timestamp",
287
- "type": "uint256"
288
- },
289
- {
290
- "indexed": true,
291
- "internalType": "address",
292
- "name": "publishMarketAddress",
293
- "type": "address"
294
- },
295
- {
296
- "indexed": false,
297
- "internalType": "uint256",
298
- "name": "blockNumber",
299
- "type": "uint256"
300
- }
301
- ],
302
- "name": "OrderStarted",
303
- "type": "event"
304
- },
305
- {
306
- "anonymous": false,
307
- "inputs": [
308
- {
309
- "indexed": true,
310
- "internalType": "address",
311
- "name": "providerFeeAddress",
312
- "type": "address"
313
- },
314
- {
315
- "indexed": true,
316
- "internalType": "address",
317
- "name": "providerFeeToken",
318
- "type": "address"
319
- },
320
- {
321
- "indexed": false,
322
- "internalType": "uint256",
323
- "name": "providerFeeAmount",
324
- "type": "uint256"
325
- },
326
- {
327
- "indexed": false,
328
- "internalType": "bytes",
329
- "name": "providerData",
330
- "type": "bytes"
331
- },
332
- {
333
- "indexed": false,
334
- "internalType": "uint8",
335
- "name": "v",
336
- "type": "uint8"
337
- },
338
- {
339
- "indexed": false,
340
- "internalType": "bytes32",
341
- "name": "r",
342
- "type": "bytes32"
343
- },
344
- {
345
- "indexed": false,
346
- "internalType": "bytes32",
347
- "name": "s",
348
- "type": "bytes32"
349
- }
350
- ],
351
- "name": "ProviderFees",
352
- "type": "event"
353
- },
354
- {
355
- "anonymous": false,
356
- "inputs": [
357
- {
358
- "indexed": true,
359
- "internalType": "address",
360
- "name": "PublishMarketFeeAddress",
361
- "type": "address"
362
- },
363
- {
364
- "indexed": true,
365
- "internalType": "address",
366
- "name": "PublishMarketFeeToken",
367
- "type": "address"
368
- },
369
- {
370
- "indexed": false,
371
- "internalType": "uint256",
372
- "name": "PublishMarketFeeAmount",
373
- "type": "uint256"
374
- }
375
- ],
376
- "name": "PublishMarketFees",
377
- "type": "event"
378
- },
379
- {
380
- "anonymous": false,
381
- "inputs": [
382
- {
383
- "indexed": false,
384
- "internalType": "address",
385
- "name": "caller",
386
- "type": "address"
387
- },
388
- {
389
- "indexed": false,
390
- "internalType": "address",
391
- "name": "PublishMarketFeeAddress",
392
- "type": "address"
393
- },
394
- {
395
- "indexed": false,
396
- "internalType": "address",
397
- "name": "PublishMarketFeeToken",
398
- "type": "address"
399
- },
400
- {
401
- "indexed": false,
402
- "internalType": "uint256",
403
- "name": "PublishMarketFeeAmount",
404
- "type": "uint256"
405
- }
406
- ],
407
- "name": "PublishMarketFeesChanged",
408
- "type": "event"
409
- },
410
- {
411
- "anonymous": false,
412
- "inputs": [
413
- {
414
- "indexed": true,
415
- "internalType": "address",
416
- "name": "user",
417
- "type": "address"
418
- },
419
- {
420
- "indexed": true,
421
- "internalType": "address",
422
- "name": "signer",
423
- "type": "address"
424
- },
425
- {
426
- "indexed": false,
427
- "internalType": "uint256",
428
- "name": "timestamp",
429
- "type": "uint256"
430
- },
431
- {
432
- "indexed": false,
433
- "internalType": "uint256",
434
- "name": "blockNumber",
435
- "type": "uint256"
436
- }
437
- ],
438
- "name": "RemovedMinter",
439
- "type": "event"
440
- },
441
- {
442
- "anonymous": false,
443
- "inputs": [
444
- {
445
- "indexed": true,
446
- "internalType": "address",
447
- "name": "user",
448
- "type": "address"
449
- },
450
- {
451
- "indexed": true,
452
- "internalType": "address",
453
- "name": "signer",
454
- "type": "address"
455
- },
456
- {
457
- "indexed": false,
458
- "internalType": "uint256",
459
- "name": "timestamp",
460
- "type": "uint256"
461
- },
462
- {
463
- "indexed": false,
464
- "internalType": "uint256",
465
- "name": "blockNumber",
466
- "type": "uint256"
467
- }
468
- ],
469
- "name": "RemovedPaymentManager",
470
- "type": "event"
471
- },
472
- {
473
- "anonymous": false,
474
- "inputs": [
475
- {
476
- "indexed": true,
477
- "internalType": "address",
478
- "name": "from",
479
- "type": "address"
480
- },
481
- {
482
- "indexed": true,
483
- "internalType": "address",
484
- "name": "to",
485
- "type": "address"
486
- },
487
- {
488
- "indexed": false,
489
- "internalType": "uint256",
490
- "name": "value",
491
- "type": "uint256"
492
- }
493
- ],
494
- "name": "Transfer",
495
- "type": "event"
496
- },
497
- {
498
- "stateMutability": "payable",
499
- "type": "fallback"
500
- },
501
- {
502
- "inputs": [],
503
- "name": "BASE",
504
- "outputs": [
505
- {
506
- "internalType": "uint256",
507
- "name": "",
508
- "type": "uint256"
509
- }
510
- ],
511
- "stateMutability": "view",
512
- "type": "function"
513
- },
514
- {
515
- "inputs": [],
516
- "name": "BASE_COMMUNITY_FEE_PERCENTAGE",
517
- "outputs": [
518
- {
519
- "internalType": "uint256",
520
- "name": "",
521
- "type": "uint256"
522
- }
523
- ],
524
- "stateMutability": "view",
525
- "type": "function"
526
- },
527
- {
528
- "inputs": [],
529
- "name": "DOMAIN_SEPARATOR",
530
- "outputs": [
531
- {
532
- "internalType": "bytes32",
533
- "name": "",
534
- "type": "bytes32"
535
- }
536
- ],
537
- "stateMutability": "view",
538
- "type": "function"
539
- },
540
- {
541
- "inputs": [],
542
- "name": "PERMIT_TYPEHASH",
543
- "outputs": [
544
- {
545
- "internalType": "bytes32",
546
- "name": "",
547
- "type": "bytes32"
548
- }
549
- ],
550
- "stateMutability": "view",
551
- "type": "function"
552
- },
553
- {
554
- "inputs": [
555
- {
556
- "internalType": "address",
557
- "name": "_minter",
558
- "type": "address"
559
- }
560
- ],
561
- "name": "addMinter",
562
- "outputs": [],
563
- "stateMutability": "nonpayable",
564
- "type": "function"
565
- },
566
- {
567
- "inputs": [
568
- {
569
- "internalType": "address",
570
- "name": "_paymentManager",
571
- "type": "address"
572
- }
573
- ],
574
- "name": "addPaymentManager",
575
- "outputs": [],
576
- "stateMutability": "nonpayable",
577
- "type": "function"
578
- },
579
- {
580
- "inputs": [
581
- {
582
- "internalType": "address",
583
- "name": "owner",
584
- "type": "address"
585
- },
586
- {
587
- "internalType": "address",
588
- "name": "spender",
589
- "type": "address"
590
- }
591
- ],
592
- "name": "allowance",
593
- "outputs": [
594
- {
595
- "internalType": "uint256",
596
- "name": "",
597
- "type": "uint256"
598
- }
599
- ],
600
- "stateMutability": "view",
601
- "type": "function"
602
- },
603
- {
604
- "inputs": [
605
- {
606
- "internalType": "address",
607
- "name": "spender",
608
- "type": "address"
609
- },
610
- {
611
- "internalType": "uint256",
612
- "name": "amount",
613
- "type": "uint256"
614
- }
615
- ],
616
- "name": "approve",
617
- "outputs": [
618
- {
619
- "internalType": "bool",
620
- "name": "",
621
- "type": "bool"
622
- }
623
- ],
624
- "stateMutability": "nonpayable",
625
- "type": "function"
626
- },
627
- {
628
- "inputs": [
629
- {
630
- "internalType": "uint256",
631
- "name": "",
632
- "type": "uint256"
633
- }
634
- ],
635
- "name": "authERC20",
636
- "outputs": [
637
- {
638
- "internalType": "address",
639
- "name": "",
640
- "type": "address"
641
- }
642
- ],
643
- "stateMutability": "view",
644
- "type": "function"
645
- },
646
- {
647
- "inputs": [
648
- {
649
- "internalType": "address",
650
- "name": "account",
651
- "type": "address"
652
- }
653
- ],
654
- "name": "balanceOf",
655
- "outputs": [
656
- {
657
- "internalType": "uint256",
658
- "name": "",
659
- "type": "uint256"
660
- }
661
- ],
662
- "stateMutability": "view",
663
- "type": "function"
664
- },
665
- {
666
- "inputs": [
667
- {
668
- "internalType": "uint256",
669
- "name": "amount",
670
- "type": "uint256"
671
- }
672
- ],
673
- "name": "burn",
674
- "outputs": [],
675
- "stateMutability": "nonpayable",
676
- "type": "function"
677
- },
678
- {
679
- "inputs": [
680
- {
681
- "internalType": "address",
682
- "name": "account",
683
- "type": "address"
684
- },
685
- {
686
- "internalType": "uint256",
687
- "name": "amount",
688
- "type": "uint256"
689
- }
690
- ],
691
- "name": "burnFrom",
692
- "outputs": [],
693
- "stateMutability": "nonpayable",
694
- "type": "function"
695
- },
696
- {
697
- "inputs": [
698
- {
699
- "components": [
700
- {
701
- "internalType": "address",
702
- "name": "consumer",
703
- "type": "address"
704
- },
705
- {
706
- "internalType": "uint256",
707
- "name": "serviceIndex",
708
- "type": "uint256"
709
- },
710
- {
711
- "internalType": "address",
712
- "name": "providerFeeAddress",
713
- "type": "address"
714
- },
715
- {
716
- "internalType": "address",
717
- "name": "providerFeeToken",
718
- "type": "address"
719
- },
720
- {
721
- "internalType": "uint256",
722
- "name": "providerFeeAmount",
723
- "type": "uint256"
724
- },
725
- {
726
- "internalType": "uint8",
727
- "name": "v",
728
- "type": "uint8"
729
- },
730
- {
731
- "internalType": "bytes32",
732
- "name": "r",
733
- "type": "bytes32"
734
- },
735
- {
736
- "internalType": "bytes32",
737
- "name": "s",
738
- "type": "bytes32"
739
- },
740
- {
741
- "internalType": "bytes",
742
- "name": "providerData",
743
- "type": "bytes"
744
- }
745
- ],
746
- "internalType": "struct ERC20TemplateEnterprise.OrderParams",
747
- "name": "_orderParams",
748
- "type": "tuple"
749
- },
750
- {
751
- "internalType": "address",
752
- "name": "dispenserContract",
753
- "type": "address"
754
- }
755
- ],
756
- "name": "buyFromDispenserAndOrder",
757
- "outputs": [],
758
- "stateMutability": "nonpayable",
759
- "type": "function"
760
- },
761
- {
762
- "inputs": [
763
- {
764
- "components": [
765
- {
766
- "internalType": "address",
767
- "name": "consumer",
768
- "type": "address"
769
- },
770
- {
771
- "internalType": "uint256",
772
- "name": "serviceIndex",
773
- "type": "uint256"
774
- },
775
- {
776
- "internalType": "address",
777
- "name": "providerFeeAddress",
778
- "type": "address"
779
- },
780
- {
781
- "internalType": "address",
782
- "name": "providerFeeToken",
783
- "type": "address"
784
- },
785
- {
786
- "internalType": "uint256",
787
- "name": "providerFeeAmount",
788
- "type": "uint256"
789
- },
790
- {
791
- "internalType": "uint8",
792
- "name": "v",
793
- "type": "uint8"
794
- },
795
- {
796
- "internalType": "bytes32",
797
- "name": "r",
798
- "type": "bytes32"
799
- },
800
- {
801
- "internalType": "bytes32",
802
- "name": "s",
803
- "type": "bytes32"
804
- },
805
- {
806
- "internalType": "bytes",
807
- "name": "providerData",
808
- "type": "bytes"
809
- }
810
- ],
811
- "internalType": "struct ERC20TemplateEnterprise.OrderParams",
812
- "name": "_orderParams",
813
- "type": "tuple"
814
- },
815
- {
816
- "components": [
817
- {
818
- "internalType": "address",
819
- "name": "exchangeContract",
820
- "type": "address"
821
- },
822
- {
823
- "internalType": "bytes32",
824
- "name": "exchangeId",
825
- "type": "bytes32"
826
- },
827
- {
828
- "internalType": "uint256",
829
- "name": "maxBaseTokenAmount",
830
- "type": "uint256"
831
- },
832
- {
833
- "internalType": "uint256",
834
- "name": "swapMarketFee",
835
- "type": "uint256"
836
- },
837
- {
838
- "internalType": "address",
839
- "name": "marketFeeAddress",
840
- "type": "address"
841
- }
842
- ],
843
- "internalType": "struct ERC20TemplateEnterprise.FreParams",
844
- "name": "_freParams",
845
- "type": "tuple"
846
- }
847
- ],
848
- "name": "buyFromFreAndOrder",
849
- "outputs": [],
850
- "stateMutability": "nonpayable",
851
- "type": "function"
852
- },
853
- {
854
- "inputs": [],
855
- "name": "cap",
856
- "outputs": [
857
- {
858
- "internalType": "uint256",
859
- "name": "",
860
- "type": "uint256"
861
- }
862
- ],
863
- "stateMutability": "view",
864
- "type": "function"
865
- },
866
- {
867
- "inputs": [],
868
- "name": "cleanFrom721",
869
- "outputs": [],
870
- "stateMutability": "nonpayable",
871
- "type": "function"
872
- },
873
- {
874
- "inputs": [],
875
- "name": "cleanPermissions",
876
- "outputs": [],
877
- "stateMutability": "nonpayable",
878
- "type": "function"
879
- },
880
- {
881
- "inputs": [
882
- {
883
- "internalType": "address",
884
- "name": "_dispenser",
885
- "type": "address"
886
- },
887
- {
888
- "internalType": "uint256",
889
- "name": "maxTokens",
890
- "type": "uint256"
891
- },
892
- {
893
- "internalType": "uint256",
894
- "name": "maxBalance",
895
- "type": "uint256"
896
- },
897
- {
898
- "internalType": "bool",
899
- "name": "withMint",
900
- "type": "bool"
901
- }
902
- ],
903
- "name": "createDispenser",
904
- "outputs": [],
905
- "stateMutability": "nonpayable",
906
- "type": "function"
907
- },
908
- {
909
- "inputs": [
910
- {
911
- "internalType": "address",
912
- "name": "fixedPriceAddress",
913
- "type": "address"
914
- },
915
- {
916
- "internalType": "address[]",
917
- "name": "addresses",
918
- "type": "address[]"
919
- },
920
- {
921
- "internalType": "uint256[]",
922
- "name": "uints",
923
- "type": "uint256[]"
924
- }
925
- ],
926
- "name": "createFixedRate",
927
- "outputs": [
928
- {
929
- "internalType": "bytes32",
930
- "name": "exchangeId",
931
- "type": "bytes32"
932
- }
933
- ],
934
- "stateMutability": "nonpayable",
935
- "type": "function"
936
- },
937
- {
938
- "inputs": [],
939
- "name": "decimals",
940
- "outputs": [
941
- {
942
- "internalType": "uint8",
943
- "name": "",
944
- "type": "uint8"
945
- }
946
- ],
947
- "stateMutability": "pure",
948
- "type": "function"
949
- },
950
- {
951
- "inputs": [
952
- {
953
- "internalType": "address",
954
- "name": "spender",
955
- "type": "address"
956
- },
957
- {
958
- "internalType": "uint256",
959
- "name": "subtractedValue",
960
- "type": "uint256"
961
- }
962
- ],
963
- "name": "decreaseAllowance",
964
- "outputs": [
965
- {
966
- "internalType": "bool",
967
- "name": "",
968
- "type": "bool"
969
- }
970
- ],
971
- "stateMutability": "nonpayable",
972
- "type": "function"
973
- },
974
- {
975
- "inputs": [],
976
- "name": "getERC721Address",
977
- "outputs": [
978
- {
979
- "internalType": "address",
980
- "name": "",
981
- "type": "address"
982
- }
983
- ],
984
- "stateMutability": "view",
985
- "type": "function"
986
- },
987
- {
988
- "inputs": [],
989
- "name": "getId",
990
- "outputs": [
991
- {
992
- "internalType": "uint8",
993
- "name": "",
994
- "type": "uint8"
995
- }
996
- ],
997
- "stateMutability": "pure",
998
- "type": "function"
999
- },
1000
- {
1001
- "inputs": [],
1002
- "name": "getPaymentCollector",
1003
- "outputs": [
1004
- {
1005
- "internalType": "address",
1006
- "name": "",
1007
- "type": "address"
1008
- }
1009
- ],
1010
- "stateMutability": "view",
1011
- "type": "function"
1012
- },
1013
- {
1014
- "inputs": [
1015
- {
1016
- "internalType": "address",
1017
- "name": "user",
1018
- "type": "address"
1019
- }
1020
- ],
1021
- "name": "getPermissions",
1022
- "outputs": [
1023
- {
1024
- "components": [
1025
- {
1026
- "internalType": "bool",
1027
- "name": "minter",
1028
- "type": "bool"
1029
- },
1030
- {
1031
- "internalType": "bool",
1032
- "name": "paymentManager",
1033
- "type": "bool"
1034
- }
1035
- ],
1036
- "internalType": "struct ERC20Roles.RolesERC20",
1037
- "name": "",
1038
- "type": "tuple"
1039
- }
1040
- ],
1041
- "stateMutability": "view",
1042
- "type": "function"
1043
- },
1044
- {
1045
- "inputs": [],
1046
- "name": "getPublishingMarketFee",
1047
- "outputs": [
1048
- {
1049
- "internalType": "address",
1050
- "name": "",
1051
- "type": "address"
1052
- },
1053
- {
1054
- "internalType": "address",
1055
- "name": "",
1056
- "type": "address"
1057
- },
1058
- {
1059
- "internalType": "uint256",
1060
- "name": "",
1061
- "type": "uint256"
1062
- }
1063
- ],
1064
- "stateMutability": "view",
1065
- "type": "function"
1066
- },
1067
- {
1068
- "inputs": [
1069
- {
1070
- "internalType": "address",
1071
- "name": "spender",
1072
- "type": "address"
1073
- },
1074
- {
1075
- "internalType": "uint256",
1076
- "name": "addedValue",
1077
- "type": "uint256"
1078
- }
1079
- ],
1080
- "name": "increaseAllowance",
1081
- "outputs": [
1082
- {
1083
- "internalType": "bool",
1084
- "name": "",
1085
- "type": "bool"
1086
- }
1087
- ],
1088
- "stateMutability": "nonpayable",
1089
- "type": "function"
1090
- },
1091
- {
1092
- "inputs": [
1093
- {
1094
- "internalType": "string[]",
1095
- "name": "strings_",
1096
- "type": "string[]"
1097
- },
1098
- {
1099
- "internalType": "address[]",
1100
- "name": "addresses_",
1101
- "type": "address[]"
1102
- },
1103
- {
1104
- "internalType": "address[]",
1105
- "name": "factoryAddresses_",
1106
- "type": "address[]"
1107
- },
1108
- {
1109
- "internalType": "uint256[]",
1110
- "name": "uints_",
1111
- "type": "uint256[]"
1112
- },
1113
- {
1114
- "internalType": "bytes[]",
1115
- "name": "bytes_",
1116
- "type": "bytes[]"
1117
- }
1118
- ],
1119
- "name": "initialize",
1120
- "outputs": [
1121
- {
1122
- "internalType": "bool",
1123
- "name": "",
1124
- "type": "bool"
1125
- }
1126
- ],
1127
- "stateMutability": "nonpayable",
1128
- "type": "function"
1129
- },
1130
- {
1131
- "inputs": [
1132
- {
1133
- "internalType": "address",
1134
- "name": "user",
1135
- "type": "address"
1136
- }
1137
- ],
1138
- "name": "isERC20Deployer",
1139
- "outputs": [
1140
- {
1141
- "internalType": "bool",
1142
- "name": "deployer",
1143
- "type": "bool"
1144
- }
1145
- ],
1146
- "stateMutability": "nonpayable",
1147
- "type": "function"
1148
- },
1149
- {
1150
- "inputs": [],
1151
- "name": "isInitialized",
1152
- "outputs": [
1153
- {
1154
- "internalType": "bool",
1155
- "name": "",
1156
- "type": "bool"
1157
- }
1158
- ],
1159
- "stateMutability": "view",
1160
- "type": "function"
1161
- },
1162
- {
1163
- "inputs": [
1164
- {
1165
- "internalType": "address",
1166
- "name": "account",
1167
- "type": "address"
1168
- }
1169
- ],
1170
- "name": "isMinter",
1171
- "outputs": [
1172
- {
1173
- "internalType": "bool",
1174
- "name": "",
1175
- "type": "bool"
1176
- }
1177
- ],
1178
- "stateMutability": "view",
1179
- "type": "function"
1180
- },
1181
- {
1182
- "inputs": [
1183
- {
1184
- "internalType": "address",
1185
- "name": "account",
1186
- "type": "address"
1187
- },
1188
- {
1189
- "internalType": "uint256",
1190
- "name": "value",
1191
- "type": "uint256"
1192
- }
1193
- ],
1194
- "name": "mint",
1195
- "outputs": [],
1196
- "stateMutability": "nonpayable",
1197
- "type": "function"
1198
- },
1199
- {
1200
- "inputs": [],
1201
- "name": "name",
1202
- "outputs": [
1203
- {
1204
- "internalType": "string",
1205
- "name": "",
1206
- "type": "string"
1207
- }
1208
- ],
1209
- "stateMutability": "view",
1210
- "type": "function"
1211
- },
1212
- {
1213
- "inputs": [
1214
- {
1215
- "internalType": "address",
1216
- "name": "",
1217
- "type": "address"
1218
- }
1219
- ],
1220
- "name": "nonces",
1221
- "outputs": [
1222
- {
1223
- "internalType": "uint256",
1224
- "name": "",
1225
- "type": "uint256"
1226
- }
1227
- ],
1228
- "stateMutability": "view",
1229
- "type": "function"
1230
- },
1231
- {
1232
- "inputs": [
1233
- {
1234
- "internalType": "address",
1235
- "name": "",
1236
- "type": "address"
1237
- }
1238
- ],
1239
- "name": "permissions",
1240
- "outputs": [
1241
- {
1242
- "internalType": "bool",
1243
- "name": "minter",
1244
- "type": "bool"
1245
- },
1246
- {
1247
- "internalType": "bool",
1248
- "name": "paymentManager",
1249
- "type": "bool"
1250
- }
1251
- ],
1252
- "stateMutability": "view",
1253
- "type": "function"
1254
- },
1255
- {
1256
- "inputs": [
1257
- {
1258
- "internalType": "address",
1259
- "name": "owner",
1260
- "type": "address"
1261
- },
1262
- {
1263
- "internalType": "address",
1264
- "name": "spender",
1265
- "type": "address"
1266
- },
1267
- {
1268
- "internalType": "uint256",
1269
- "name": "value",
1270
- "type": "uint256"
1271
- },
1272
- {
1273
- "internalType": "uint256",
1274
- "name": "deadline",
1275
- "type": "uint256"
1276
- },
1277
- {
1278
- "internalType": "uint8",
1279
- "name": "v",
1280
- "type": "uint8"
1281
- },
1282
- {
1283
- "internalType": "bytes32",
1284
- "name": "r",
1285
- "type": "bytes32"
1286
- },
1287
- {
1288
- "internalType": "bytes32",
1289
- "name": "s",
1290
- "type": "bytes32"
1291
- }
1292
- ],
1293
- "name": "permit",
1294
- "outputs": [],
1295
- "stateMutability": "nonpayable",
1296
- "type": "function"
1297
- },
1298
- {
1299
- "inputs": [
1300
- {
1301
- "internalType": "address",
1302
- "name": "_minter",
1303
- "type": "address"
1304
- }
1305
- ],
1306
- "name": "removeMinter",
1307
- "outputs": [],
1308
- "stateMutability": "nonpayable",
1309
- "type": "function"
1310
- },
1311
- {
1312
- "inputs": [
1313
- {
1314
- "internalType": "address",
1315
- "name": "_paymentManager",
1316
- "type": "address"
1317
- }
1318
- ],
1319
- "name": "removePaymentManager",
1320
- "outputs": [],
1321
- "stateMutability": "nonpayable",
1322
- "type": "function"
1323
- },
1324
- {
1325
- "inputs": [],
1326
- "name": "router",
1327
- "outputs": [
1328
- {
1329
- "internalType": "address",
1330
- "name": "",
1331
- "type": "address"
1332
- }
1333
- ],
1334
- "stateMutability": "view",
1335
- "type": "function"
1336
- },
1337
- {
1338
- "inputs": [
1339
- {
1340
- "internalType": "bytes",
1341
- "name": "_value",
1342
- "type": "bytes"
1343
- }
1344
- ],
1345
- "name": "setData",
1346
- "outputs": [],
1347
- "stateMutability": "nonpayable",
1348
- "type": "function"
1349
- },
1350
- {
1351
- "inputs": [
1352
- {
1353
- "internalType": "address",
1354
- "name": "_newPaymentCollector",
1355
- "type": "address"
1356
- }
1357
- ],
1358
- "name": "setPaymentCollector",
1359
- "outputs": [],
1360
- "stateMutability": "nonpayable",
1361
- "type": "function"
1362
- },
1363
- {
1364
- "inputs": [
1365
- {
1366
- "internalType": "address",
1367
- "name": "_publishMarketFeeAddress",
1368
- "type": "address"
1369
- },
1370
- {
1371
- "internalType": "address",
1372
- "name": "_publishMarketFeeToken",
1373
- "type": "address"
1374
- },
1375
- {
1376
- "internalType": "uint256",
1377
- "name": "_publishMarketFeeAmount",
1378
- "type": "uint256"
1379
- }
1380
- ],
1381
- "name": "setPublishingMarketFee",
1382
- "outputs": [],
1383
- "stateMutability": "nonpayable",
1384
- "type": "function"
1385
- },
1386
- {
1387
- "inputs": [
1388
- {
1389
- "internalType": "address",
1390
- "name": "consumer",
1391
- "type": "address"
1392
- },
1393
- {
1394
- "internalType": "uint256",
1395
- "name": "serviceIndex",
1396
- "type": "uint256"
1397
- },
1398
- {
1399
- "internalType": "address",
1400
- "name": "providerFeeAddress",
1401
- "type": "address"
1402
- },
1403
- {
1404
- "internalType": "address",
1405
- "name": "providerFeeToken",
1406
- "type": "address"
1407
- },
1408
- {
1409
- "internalType": "uint256",
1410
- "name": "providerFeeAmount",
1411
- "type": "uint256"
1412
- },
1413
- {
1414
- "internalType": "uint8",
1415
- "name": "v",
1416
- "type": "uint8"
1417
- },
1418
- {
1419
- "internalType": "bytes32",
1420
- "name": "r",
1421
- "type": "bytes32"
1422
- },
1423
- {
1424
- "internalType": "bytes32",
1425
- "name": "s",
1426
- "type": "bytes32"
1427
- },
1428
- {
1429
- "internalType": "bytes",
1430
- "name": "providerData",
1431
- "type": "bytes"
1432
- }
1433
- ],
1434
- "name": "startOrder",
1435
- "outputs": [],
1436
- "stateMutability": "nonpayable",
1437
- "type": "function"
1438
- },
1439
- {
1440
- "inputs": [],
1441
- "name": "symbol",
1442
- "outputs": [
1443
- {
1444
- "internalType": "string",
1445
- "name": "",
1446
- "type": "string"
1447
- }
1448
- ],
1449
- "stateMutability": "view",
1450
- "type": "function"
1451
- },
1452
- {
1453
- "inputs": [],
1454
- "name": "totalSupply",
1455
- "outputs": [
1456
- {
1457
- "internalType": "uint256",
1458
- "name": "",
1459
- "type": "uint256"
1460
- }
1461
- ],
1462
- "stateMutability": "view",
1463
- "type": "function"
1464
- },
1465
- {
1466
- "inputs": [
1467
- {
1468
- "internalType": "address",
1469
- "name": "recipient",
1470
- "type": "address"
1471
- },
1472
- {
1473
- "internalType": "uint256",
1474
- "name": "amount",
1475
- "type": "uint256"
1476
- }
1477
- ],
1478
- "name": "transfer",
1479
- "outputs": [
1480
- {
1481
- "internalType": "bool",
1482
- "name": "",
1483
- "type": "bool"
1484
- }
1485
- ],
1486
- "stateMutability": "nonpayable",
1487
- "type": "function"
1488
- },
1489
- {
1490
- "inputs": [
1491
- {
1492
- "internalType": "address",
1493
- "name": "sender",
1494
- "type": "address"
1495
- },
1496
- {
1497
- "internalType": "address",
1498
- "name": "recipient",
1499
- "type": "address"
1500
- },
1501
- {
1502
- "internalType": "uint256",
1503
- "name": "amount",
1504
- "type": "uint256"
1505
- }
1506
- ],
1507
- "name": "transferFrom",
1508
- "outputs": [
1509
- {
1510
- "internalType": "bool",
1511
- "name": "",
1512
- "type": "bool"
1513
- }
1514
- ],
1515
- "stateMutability": "nonpayable",
1516
- "type": "function"
1517
- },
1518
- {
1519
- "inputs": [],
1520
- "name": "withdrawETH",
1521
- "outputs": [],
1522
- "stateMutability": "payable",
1523
- "type": "function"
1524
- }
1525
- ],
1526
- "bytecode": "0x6080604052600a805460ff60a01b191690553480156200001e57600080fd5b5060408051808201825260048152631d195cdd60e21b60208083019182528351808501909452600a8452691d195cdd14de5b589bdb60b21b9084015281519192916200006d916003916200008c565b508051620000839060049060208401906200008c565b5050506200016f565b8280546200009a9062000132565b90600052602060002090601f016020900481019282620000be576000855562000109565b82601f10620000d957805160ff191683800117855562000109565b8280016001018555821562000109579182015b8281111562000109578251825591602001919060010190620000ec565b50620001179291506200011b565b5090565b5b808211156200011757600081556001016200011c565b600181811c908216806200014757607f821691505b602082108114156200016957634e487b7160e01b600052602260045260246000fd5b50919050565b61466c806200017f6000396000f3fe60806040526004361061027d5760003560e01c806379cc67901161014e578063ab62f0e1116100bb578063e487c2e811610077578063e487c2e8146108b1578063ec342ad0146108c6578063ee88ade1146108e2578063ef867ff414610902578063f887ea4014610922578063f94bb4211461094257005b8063ab62f0e1146107ee578063b2263a5d1461080e578063b3998be014610823578063d505accf14610843578063dd62ed3e14610863578063e086e5ec146108a957005b8063983b2d561161010a578063983b2d56146107155780639b4f44b614610735578063a457c2d714610755578063a9059cbb14610775578063aa271e1a14610795578063aa492ef9146107ce57005b806379cc67901461065e5780637ecebe001461067e57806382c03da5146106ab5780638b96412b146106c057806395d89b41146106e057806396fb3eaf146106f557005b8063355274ea116101ec57806342966c68116101a857806342966c681461059f5780634f189cb2146105bf57806357a3a31b146105d457806357ad5ff6146105f45780635d1ca6311461061457806370a082311461062857005b8063355274ea146104d95780633644e515146104ee578063392e53cd146105045780633950935114610523578063397b37431461054357806340c10f191461057f57005b806318636d3c1161023b57806318636d3c1461040357806323b872dd1461042357806325b00243146104435780633092afd51461046357806330adf81f14610483578063313ce567146104b757005b80627ffb781461027f57806301e88208146102b657806306fdde0314610306578063095ea7b314610328578063160a79251461035857806318160ddd146103e4575b005b34801561028b57600080fd5b50600b546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102c257600080fd5b506102ef6102d13660046137b5565b60056020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152016102ad565b34801561031257600080fd5b5061031b610962565b6040516102ad919061382a565b34801561033457600080fd5b5061034861034336600461383d565b6109f4565b60405190151581526020016102ad565b34801561036457600080fd5b506103c56103733660046137b5565b6040805180820190915260008082526020820152506001600160a01b031660009081526005602090815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b60408051825115158152602092830151151592810192909252016102ad565b3480156103f057600080fd5b506002545b6040519081526020016102ad565b34801561040f57600080fd5b5061027d61041e366004613a38565b610a0a565b34801561042f57600080fd5b5061034861043e366004613a89565b610b1b565b34801561044f57600080fd5b5061027d61045e3660046137b5565b610bc7565b34801561046f57600080fd5b5061027d61047e3660046137b5565b610c61565b34801561048f57600080fd5b506103f57f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b3480156104c357600080fd5b5060125b60405160ff90911681526020016102ad565b3480156104e557600080fd5b506009546103f5565b3480156104fa57600080fd5b506103f560105481565b34801561051057600080fd5b50600a54600160a01b900460ff16610348565b34801561052f57600080fd5b5061034861053e36600461383d565b610cf8565b34801561054f57600080fd5b50600d54600e54600f54604080516001600160a01b039485168152939092166020840152908201526060016102ad565b34801561058b57600080fd5b5061027d61059a36600461383d565b610d34565b3480156105ab57600080fd5b5061027d6105ba366004613aca565b610e05565b3480156105cb57600080fd5b5061027d610e0f565b3480156105e057600080fd5b5061027d6105ef3660046137b5565b610ef6565b34801561060057600080fd5b5061027d61060f366004613a89565b611038565b34801561062057600080fd5b5060026104c7565b34801561063457600080fd5b506103f56106433660046137b5565b6001600160a01b031660009081526020819052604090205490565b34801561066a57600080fd5b5061027d61067936600461383d565b61118c565b34801561068a57600080fd5b506103f56106993660046137b5565b60116020526000908152604090205481565b3480156106b757600080fd5b5061027d61120d565b3480156106cc57600080fd5b506103f56106db366004613b71565b611267565b3480156106ec57600080fd5b5061031b611428565b34801561070157600080fd5b506103486107103660046137b5565b611437565b34801561072157600080fd5b5061027d6107303660046137b5565b6114b2565b34801561074157600080fd5b5061027d610750366004613c46565b611549565b34801561076157600080fd5b5061034861077036600461383d565b611565565b34801561078157600080fd5b5061034861079036600461383d565b6115fe565b3480156107a157600080fd5b506103486107b03660046137b5565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156107da57600080fd5b5061027d6107e93660046137b5565b61160b565b3480156107fa57600080fd5b5061027d610809366004613cf2565b6116a2565b34801561081a57600080fd5b506103f56117d3565b34801561082f57600080fd5b5061034861083e366004613dae565b6117e9565b34801561084f57600080fd5b5061027d61085e366004613e9e565b611923565b34801561086f57600080fd5b506103f561087e366004613f0c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61027d611b2a565b3480156108bd57600080fd5b50610299611b6a565b3480156108d257600080fd5b506103f5670de0b6b3a764000081565b3480156108ee57600080fd5b5061027d6108fd366004613f3a565b611bff565b34801561090e57600080fd5b5061029961091d366004613aca565b611fdd565b34801561092e57600080fd5b50601254610299906001600160a01b031681565b34801561094e57600080fd5b5061027d61095d366004613fea565b612007565b60606007805461097190614034565b80601f016020809104026020016040519081016040528092919081815260200182805461099d90614034565b80156109ea5780601f106109bf576101008083540402835291602001916109ea565b820191906000526020600020905b8154815290600101906020018083116109cd57829003601f168201915b5050505050905090565b6000610a0133848461212a565b50600192915050565b604051631d746d8360e01b8152306004820152670de0b6b3a764000060248201819052336044830152906001600160a01b03831690631d746d8390606401600060405180830381600087803b158015610a6257600080fd5b505af1158015610a76573d6000803e3d6000fd5b50503360009081526020819052604090205483925090501015610ae05760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206765742044542066726f6d2044697370656e7365720060448201526064015b60405180910390fd5b610b16836000015184602001518560400151866060015187608001518860a001518960c001518a60e001518b610100015161224e565b505050565b6000610b2884848461267e565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610bad5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610ad7565b610bba853385840361212a565b60019150505b9392505050565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c35919061406f565b60200151610c555760405162461bcd60e51b8152600401610ad7906140f3565b610c5e8161284c565b50565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccf919061406f565b60200151610cef5760405162461bcd60e51b8152600401610ad7906140f3565b610c5e816128b9565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a01918590610d2f90869061413e565b61212a565b3360009081526005602052604090205460ff16610d935760405162461bcd60e51b815260206004820152601960248201527f455243323054656d706c6174653a204e4f54204d494e544552000000000000006044820152606401610ad7565b600954610da982610da360025490565b90612919565b1115610df75760405162461bcd60e51b815260206004820152601f60248201527f44617461546f6b656e54656d706c6174653a20636170206578636565646564006044820152606401610ad7565b610e018282612925565b5050565b610c5e3382612a04565b600b546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa158015610e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c9190614156565b6001600160a01b0316336001600160a01b031614610edc5760405162461bcd60e51b815260206004820152601b60248201527f455243323054656d706c6174653a206e6f74204e46544f776e657200000000006044820152606401610ad7565b610ee4612b52565b600c80546001600160a01b0319169055565b33600090815260056020526040902054610100900460ff1680610f875750600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f82919061406f565b602001515b610fe75760405162461bcd60e51b815260206004820152602b60248201527f455243323054656d706c6174653a204e4f54205041594d454e54204d414e414760448201526a22a91037b91027aba722a960a91b6064820152608401610ad7565b610ff081612c01565b604080514281524360208201526001600160a01b0383169133917f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc910160405180910390a350565b600d546001600160a01b031633146110a55760405162461bcd60e51b815260206004820152602a60248201527f455243323054656d706c6174653a206e6f74207075626c6973684d61726b65746044820152694665654164647265737360b01b6064820152608401610ad7565b6001600160a01b03831661110c5760405162461bcd60e51b815260206004820152602860248201527f496e76616c6964205f7075626c6973684d61726b657446656541646472657373604482015267206164647265737360c01b6064820152608401610ad7565b600d80546001600160a01b038581166001600160a01b03199283168117909355600e8054918616919092168117909155600f839055604080513381526020810193909352820152606081018290527fe0b85b6f04fa914cf57f6401c5672a83a32b1c388d194c3d78e17f2897d46f439060800160405180910390a1505050565b6000611198833361087e565b9050818110156111f65760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610ad7565b611203833384840361212a565b610b168383612a04565b600b546001600160a01b03163314610edc5760405162461bcd60e51b815260206004820152601f60248201527f455243323054656d706c6174653a204e4f542037323120436f6e7472616374006044820152606401610ad7565b600b5460405163160a792560e01b81523360048201526000916001600160a01b03169063160a7925906024016080604051808303816000875af11580156112b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d6919061406f565b602001516112f65760405162461bcd60e51b8152600401610ad7906140f3565b308360038151811061130a5761130a614173565b6001600160a01b039283166020918202929092010152601254604051638244937560e01b815291169063824493759061134b90879087908790600401614189565b6020604051808303816000875af115801561136a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138e919061421d565b90506000826004815181106113a5576113a5614173565b602002602001015111156113bc576113bc84612c23565b7f195d202f33578769e120c3041341554af3193e67ee004175095bc9c06e6e616581846000815181106113f1576113f1614173565b60200260200101516040516114199291909182526001600160a01b0316602082015260400190565b60405180910390a19392505050565b60606008805461097190614034565b600b5460405163160a792560e01b81526001600160a01b038381166004830152600092169063160a7925906024016080604051808303816000875af1158015611484573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a8919061406f565b6020015192915050565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af11580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611520919061406f565b602001516115405760405162461bcd60e51b8152600401610ad7906140f3565b610c5e81612c23565b61155a89898989898989898961224e565b505050505050505050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156115e75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ad7565b6115f4338585840361212a565b5060019392505050565b6000610a0133848461267e565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015611655573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611679919061406f565b602001516116995760405162461bcd60e51b8152600401610ad7906140f3565b610c5e81612d1d565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af11580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611710919061406f565b602001516117305760405162461bcd60e51b8152600401610ad7906140f3565b6040516bffffffffffffffffffffffff193060601b16602082015260009060340160408051601f19818403018152908290528051602090910120600b546301caf8fd60e31b83529092506001600160a01b031690630e57c7e89061179c90849087908790600401614236565b600060405180830381600087803b1580156117b657600080fd5b505af11580156117ca573d6000803e3d6000fd5b50505050505050565b6117e66064670de0b6b3a764000061426c565b81565b600a54600090600160a01b900460ff16156118605760405162461bcd60e51b815260206004820152603160248201527f455243323054656d706c6174653a20746f6b656e20696e7374616e636520616c6044820152701c9958591e481a5b9a5d1a585b1a5e9959607a1b6064820152608401610ad7565b61191461186d8b8d61428e565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525061190f92508991508a9050614315565b612e2b565b9b9a5050505050505050505050565b438410156119665760405162461bcd60e51b815260206004820152601060248201526f115490cc8c11150e881156141254915160821b6044820152606401610ad7565b6010546001600160a01b038816600090815260116020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876119b98361437c565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001611a3292919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611a9d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590611ad35750886001600160a01b0316816001600160a01b0316145b611b1f5760405162461bcd60e51b815260206004820152601a60248201527f455243323044543a20494e56414c49445f5349474e41545552450000000000006044820152606401610ad7565b61155a89898961212a565b611b32611b6a565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610c5e573d6000803e3d6000fd5b600c546000906001600160a01b0316611bef57600b546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa158015611bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bea9190614156565b905090565b50600c546001600160a01b031690565b80516020820151604051634c87087d60e01b815260009283926001600160a01b0390911691634c87087d91611c3a9160040190815260200190565b61018060405180830381865afa158015611c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7c9190614397565b5050505050505050935050925050306001600160a01b0316826001600160a01b031614611cfb5760405162461bcd60e51b815260206004820152602760248201527f5468697320466978656452617465206973206e6f742070726f766964696e67206044820152661d1a1a5cc8111560ca1b6064820152608401610ad7565b8251602084015160405163c99733a760e01b81526004810191909152670de0b6b3a7640000602482015260009182916001600160a01b039091169063c99733a790604401608060405180830381865afa158015611d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d809190614454565b5050915091508460400151821115611dea5760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a20546f6f206d616e79206261736560448201526620746f6b656e7360c81b6064820152608401610ad7565b6000670de0b6b3a7640000866060015183611e05919061448a565b611e0f919061426c565b9050611e1b818461413e565b9250611e326001600160a01b03851633308661332a565b8551611e49906001600160a01b0386169085613395565b8551602087015160405163412dae6b60e11b81526004810191909152670de0b6b3a76400006024820152604481018590526001600160a01b039091169063825b5cd690606401600060405180830381600087803b158015611ea957600080fd5b505af1158015611ebd573d6000803e3d6000fd5b505030600090815260208190526040902054670de0b6b3a7640000925090501015611f2a5760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206275792044542066726f6d20466978656452617465006044820152606401610ad7565b611f3d3033670de0b6b3a764000061267e565b611f738760000151886020015189604001518a606001518b608001518c60a001518d60c001518e60e001518f610100015161224e565b8015611f93576080860151611f93906001600160a01b0386169083613447565b60408051338152602081018590529081018290527fe89458a7527f4bf466ab18794ab8b1ca208b478483a1a87bcf0d976d421b4aff9060600160405180910390a150505050505050565b60068181548110611fed57600080fd5b6000918252602090912001546001600160a01b0316905081565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612051573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612075919061406f565b602001516120955760405162461bcd60e51b8152600401610ad7906140f3565b601254604051636b14d00560e11b81526001600160a01b0386811660048301523060248301819052604483018790526064830186905233608484015260a48301529091169063d629a00a9060c401600060405180830381600087803b1580156120fd57600080fd5b505af1158015612111573d6000803e3d6000fd5b5050505080156121245761212484612c23565b50505050565b6001600160a01b03831661218c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ad7565b6001600160a01b0382166121ed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ad7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b33600090815260208190526040812054670de0b6b3a764000091908211156122c65760405162461bcd60e51b815260206004820152602560248201527f4e6f7420656e6f756768204461746120546f6b656e7320746f2073746172742060448201526427b93232b960d91b6064820152608401610ad7565b600d5460408051338152602081018590529081018c90524260608201524360808201526001600160a01b03918216918d16907fe1c4fa794edfa8f619b8257a077398950357b9c6398528f94480307352f9afcc9060a00160405180910390a36000600f541180156123415750600e546001600160a01b031615155b80156123575750600d546001600160a01b031615155b1561248257600f54600e5461237b916001600160a01b03909116903390309061332a565b600f54612389906064613477565b600d54600f549192506123bf916001600160a01b03909116906123ac9084613483565b600e546001600160a01b03169190613447565b600e54600d54600f546001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b4906124049085613483565b60405190815260200160405180910390a3801561248257600a54600e54612438916001600160a01b03918216911683613447565b600e54600a546040518381526001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b49060200160405180910390a35b60006040518060400160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600081858c8c8c6040516020016124d694939291906144a9565b604051602081830303815290604052805190602001206040516020016124fd9291906144ef565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff8c1692840192909252606083018a9052608083018990529092509060019060a0016020604051602081039080840390855afa158015612568573d6000803e3d6000fd5b5050506020604051035190508b6001600160a01b0316816001600160a01b0316146125cc5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070726f76696465722066656560601b6044820152606401610ad7565b8a6001600160a01b03168c6001600160a01b03167f144fc6ed7d0a617ba44a01131b1f724d0370297a3640b6201f343e081ada64468c898d8d8d604051612617959493929190614511565b60405180910390a360008a11801561263757506001600160a01b038b1615155b801561264b57506001600160a01b038c1615155b15612665576126656001600160a01b038c16338e8d61332a565b61266e85610e05565b5050505050505050505050505050565b6001600160a01b0383166126e25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ad7565b6001600160a01b0382166127445760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ad7565b6001600160a01b038316600090815260208190526040902054818110156127bc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ad7565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906127f390849061413e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161283f91815260200190565b60405180910390a3612124565b6001600160a01b03811660008181526005602052604090819020805461ff00191681559051909133917faee911eec8b2df8f3ae0464841541b1e5f339519bd5cf51889fe8b07fecff658906128ad9042904390918252602082015260400190565b60405180910390a35050565b6001600160a01b03811660008181526005602052604090819020805460ff191681559051909133917fefa2735987005aaa89c050c0ff8cc9ae7d9079d19382081c429130f98c52d480906128ad9042904390918252602082015260400190565b6000610bc0828461413e565b6001600160a01b03821661297b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610ad7565b806002600082825461298d919061413e565b90915550506001600160a01b038216600090815260208190526040812080548392906129ba90849061413e565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038216612a645760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610ad7565b6001600160a01b03821660009081526020819052604090205481811015612ad85760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610ad7565b6001600160a01b0383166000908152602081905260408120838303905560028054849290612b0790849061454a565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60005b600654811015612bb85760006005600060068481548110612b7857612b78614173565b60009182526020808320909101546001600160a01b031683528201929092526040019020805461ffff191690555080612bb08161437c565b915050612b55565b50612bc5600660006136d9565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600560205260409020805460ff1615612c8d5760405162461bcd60e51b815260206004820152601d60248201527f4552433230526f6c65733a2020414c52454144592041204d494e5445520000006044820152606401610ad7565b8054600160ff19909116811782556006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b038416908117909155604080514281524360208201523392917f4f7e100eb1ee13e903798bd0d6aa854152e07eb05544f392b9409c12935c809591016128ad565b6001600160a01b03811660009081526005602052604090208054610100900460ff1615612d975760405162461bcd60e51b815260206004820152602260248201527f4552433230526f6c65733a2020414c5245414459204120464545204d414e414760448201526122a960f11b6064820152608401610ad7565b805461ff001916610100178155600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0384166001600160a01b03199091168117909155604080514281524360208201523392917fb17da2e9910b4ba5754e8872385ba315a238bafb5ae221fc85093c33432c40a791016128ad565b60008084600081518110612e4157612e41614173565b60200260200101519050600085600181518110612e6057612e60614173565b6020026020010151905060006001600160a01b0316826001600160a01b03161415612ee25760405162461bcd60e51b815260206004820152602c60248201527f455243323054656d706c6174653a20496e76616c6964206d696e7465722c202060448201526b7a65726f206164647265737360a01b6064820152608401610ad7565b6001600160a01b038116612f5e5760405162461bcd60e51b815260206004820152603c60248201527f455243323054656d706c6174653a20496e76616c696420636f6d6d756e69747960448201527f2066656520636f6c6c6563746f722c207a65726f2061646472657373000000006064820152608401610ad7565b84600081518110612f7157612f71614173565b602002602001015160001415612fd55760405162461bcd60e51b8152602060048201526024808201527f44617461546f6b656e54656d706c6174653a20496e76616c6964206361702076604482015263616c756560e01b6064820152608401610ad7565b84600081518110612fe857612fe8614173565b60200260200101516009819055508760008151811061300957613009614173565b6020026020010151600790805190602001906130269291906136f7565b508760018151811061303a5761303a614173565b6020026020010151600890805190602001906130579291906136f7565b50600b80546001600160a01b0319166001600160a01b03841617905585518690600290811061308857613088614173565b6020908102919091010151601280546001600160a01b039283166001600160a01b0319909116179055600a80546001600160a81b03191691831691909117600160a01b17905586516130f29088906000906130e5576130e5614173565b6020026020010151612c23565b60006001600160a01b03168760018151811061311057613110614173565b60200260200101516001600160a01b0316146131ba576131498760018151811061313c5761313c614173565b6020026020010151612c01565b8660018151811061315c5761315c614173565b60200260200101516001600160a01b0316336001600160a01b03167f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc42436040516131b1929190918252602082015260400190565b60405180910390a35b866002815181106131cd576131cd614173565b6020026020010151600d60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508660038151811061320e5761320e614173565b6020026020010151600e60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508460018151811061324f5761324f614173565b6020026020010151600f8190555060004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60076040516132929190614561565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051808303601f1901815291905280516020909101206010555050600a54600160a01b900460ff16979650505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526121249085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261348f565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156133e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061340a919061421d565b613414919061413e565b6040516001600160a01b03851660248201526044810182905290915061212490859063095ea7b360e01b9060640161335e565b6040516001600160a01b038316602482015260448101829052610b1690849063a9059cbb60e01b9060640161335e565b6000610bc0828461426c565b6000610bc0828461454a565b60006134e4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135619092919063ffffffff16565b805190915015610b16578080602001905181019061350291906145fd565b610b165760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610ad7565b60606135708484600085613578565b949350505050565b6060824710156135d95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610ad7565b843b6136275760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ad7565b600080866001600160a01b03168587604051613643919061461a565b60006040518083038185875af1925050503d8060008114613680576040519150601f19603f3d011682016040523d82523d6000602084013e613685565b606091505b50915091506136958282866136a0565b979650505050505050565b606083156136af575081610bc0565b8251156136bf5782518084602001fd5b8160405162461bcd60e51b8152600401610ad7919061382a565b5080546000825590600052602060002090810190610c5e919061377b565b82805461370390614034565b90600052602060002090601f016020900481019282613725576000855561376b565b82601f1061373e57805160ff191683800117855561376b565b8280016001018555821561376b579182015b8281111561376b578251825591602001919060010190613750565b5061377792915061377b565b5090565b5b80821115613777576000815560010161377c565b6001600160a01b0381168114610c5e57600080fd5b80356137b081613790565b919050565b6000602082840312156137c757600080fd5b8135610bc081613790565b60005b838110156137ed5781810151838201526020016137d5565b838111156121245750506000910152565b600081518084526138168160208601602086016137d2565b601f01601f19169290920160200192915050565b602081526000610bc060208301846137fe565b6000806040838503121561385057600080fd5b823561385b81613790565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156138a2576138a2613869565b60405290565b60405160a081016001600160401b03811182821017156138a2576138a2613869565b604051601f8201601f191681016001600160401b03811182821017156138f2576138f2613869565b604052919050565b803560ff811681146137b057600080fd5b60006001600160401b0383111561392457613924613869565b613937601f8401601f19166020016138ca565b905082815283838301111561394b57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261397357600080fd5b610bc08383356020850161390b565b6000610120828403121561399557600080fd5b61399d61387f565b90506139a8826137a5565b8152602082013560208201526139c0604083016137a5565b60408201526139d1606083016137a5565b6060820152608082013560808201526139ec60a083016138fa565b60a082015260c082013560c082015260e082013560e0820152610100808301356001600160401b03811115613a2057600080fd5b613a2c85828601613962565b82840152505092915050565b60008060408385031215613a4b57600080fd5b82356001600160401b03811115613a6157600080fd5b613a6d85828601613982565b9250506020830135613a7e81613790565b809150509250929050565b600080600060608486031215613a9e57600080fd5b8335613aa981613790565b92506020840135613ab981613790565b929592945050506040919091013590565b600060208284031215613adc57600080fd5b5035919050565b60006001600160401b03821115613afc57613afc613869565b5060051b60200190565b600082601f830112613b1757600080fd5b81356020613b2c613b2783613ae3565b6138ca565b82815260059290921b84018101918181019086841115613b4b57600080fd5b8286015b84811015613b665780358352918301918301613b4f565b509695505050505050565b600080600060608486031215613b8657600080fd5b8335613b9181613790565b92506020848101356001600160401b0380821115613bae57600080fd5b818701915087601f830112613bc257600080fd5b8135613bd0613b2782613ae3565b81815260059190911b8301840190848101908a831115613bef57600080fd5b938501935b82851015613c16578435613c0781613790565b82529385019390850190613bf4565b965050506040870135925080831115613c2e57600080fd5b5050613c3c86828701613b06565b9150509250925092565b60008060008060008060008060006101208a8c031215613c6557600080fd5b8935613c7081613790565b985060208a0135975060408a0135613c8781613790565b965060608a0135613c9781613790565b955060808a01359450613cac60a08b016138fa565b935060c08a0135925060e08a013591506101008a01356001600160401b03811115613cd657600080fd5b613ce28c828d01613962565b9150509295985092959850929598565b60008060208385031215613d0557600080fd5b82356001600160401b0380821115613d1c57600080fd5b818501915085601f830112613d3057600080fd5b813581811115613d3f57600080fd5b866020828501011115613d5157600080fd5b60209290920196919550909350505050565b60008083601f840112613d7557600080fd5b5081356001600160401b03811115613d8c57600080fd5b6020830191508360208260051b8501011115613da757600080fd5b9250929050565b60008060008060008060008060008060a08b8d031215613dcd57600080fd5b8a356001600160401b0380821115613de457600080fd5b613df08e838f01613d63565b909c509a5060208d0135915080821115613e0957600080fd5b613e158e838f01613d63565b909a50985060408d0135915080821115613e2e57600080fd5b613e3a8e838f01613d63565b909850965060608d0135915080821115613e5357600080fd5b613e5f8e838f01613d63565b909650945060808d0135915080821115613e7857600080fd5b50613e858d828e01613d63565b915080935050809150509295989b9194979a5092959850565b600080600080600080600060e0888a031215613eb957600080fd5b8735613ec481613790565b96506020880135613ed481613790565b95506040880135945060608801359350613ef0608089016138fa565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215613f1f57600080fd5b8235613f2a81613790565b91506020830135613a7e81613790565b60008082840360c0811215613f4e57600080fd5b83356001600160401b03811115613f6457600080fd5b613f7086828701613982565b93505060a0601f1982011215613f8557600080fd5b50613f8e6138a8565b6020840135613f9c81613790565b8082525060408401356020820152606084013560408201526080840135606082015260a0840135613fcc81613790565b6080820152919491935090915050565b8015158114610c5e57600080fd5b6000806000806080858703121561400057600080fd5b843561400b81613790565b93506020850135925060408501359150606085013561402981613fdc565b939692955090935050565b600181811c9082168061404857607f821691505b6020821081141561406957634e487b7160e01b600052602260045260246000fd5b50919050565b60006080828403121561408157600080fd5b604051608081018181106001600160401b03821117156140a3576140a3613869565b60405282516140b181613fdc565b815260208301516140c181613fdc565b602082015260408301516140d481613fdc565b604082015260608301516140e781613fdc565b60608201529392505050565b6020808252818101527f455243323054656d706c6174653a204e4f54204445504c4f59455220524f4c45604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561415157614151614128565b500190565b60006020828403121561416857600080fd5b8151610bc081613790565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038481168252606060208084018290528551918401829052600092868201929091906080860190855b818110156141d75785518516835294830194918301916001016141b9565b5050858103604087015286518082529082019350915080860160005b8381101561420f578151855293820193908201906001016141f3565b509298975050505050505050565b60006020828403121561422f57600080fd5b5051919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008261428957634e487b7160e01b600052601260045260246000fd5b500490565b600061429c613b2784613ae3565b80848252602080830192508560051b8501368111156142ba57600080fd5b855b818110156143095780356001600160401b038111156142db5760008081fd5b870136601f8201126142ed5760008081fd5b6142fb36823586840161390b565b8652509382019382016142bc565b50919695505050505050565b6000614323613b2784613ae3565b80848252602080830192508560051b85013681111561434157600080fd5b855b818110156143095780356001600160401b038111156143625760008081fd5b61436e36828a01613962565b865250938201938201614343565b600060001982141561439057614390614128565b5060010190565b6000806000806000806000806000806000806101808d8f0312156143ba57600080fd5b8c516143c581613790565b60208e0151909c506143d681613790565b60408e015160608f0151919c509a506143ee81613790565b8099505060808d0151975060a08d0151965060c08d015161440e81613fdc565b8096505060e08d015194506101008d015193506101208d015192506101408d015191506101608d015161444081613fdc565b809150509295989b509295989b509295989b565b6000806000806080858703121561446a57600080fd5b505082516020840151604085015160609095015191969095509092509050565b60008160001904831182151516156144a4576144a4614128565b500290565b600085516144bb818460208a016137d2565b6bffffffffffffffffffffffff19606096871b8116919093019081529390941b166014830152602882015260480192915050565b600083516145018184602088016137d2565b9190910191825250602001919050565b85815260a06020820152600061452a60a08301876137fe565b60ff95909516604083015250606081019290925260809091015292915050565b60008282101561455c5761455c614128565b500390565b600080835481600182811c91508083168061457d57607f831692505b602080841082141561459d57634e487b7160e01b86526022600452602486fd5b8180156145b157600181146145c2576145ef565b60ff198616895284890196506145ef565b60008a81526020902060005b868110156145e75781548b8201529085019083016145ce565b505084890196505b509498975050505050505050565b60006020828403121561460f57600080fd5b8151610bc081613fdc565b6000825161462c8184602087016137d2565b919091019291505056fea26469706673582212209041cd5099503a2e31e599b01c0c938b713c90fa811d0e03aacc28d1251e8ce164736f6c634300080a0033",
1527
- "deployedBytecode": "0x60806040526004361061027d5760003560e01c806379cc67901161014e578063ab62f0e1116100bb578063e487c2e811610077578063e487c2e8146108b1578063ec342ad0146108c6578063ee88ade1146108e2578063ef867ff414610902578063f887ea4014610922578063f94bb4211461094257005b8063ab62f0e1146107ee578063b2263a5d1461080e578063b3998be014610823578063d505accf14610843578063dd62ed3e14610863578063e086e5ec146108a957005b8063983b2d561161010a578063983b2d56146107155780639b4f44b614610735578063a457c2d714610755578063a9059cbb14610775578063aa271e1a14610795578063aa492ef9146107ce57005b806379cc67901461065e5780637ecebe001461067e57806382c03da5146106ab5780638b96412b146106c057806395d89b41146106e057806396fb3eaf146106f557005b8063355274ea116101ec57806342966c68116101a857806342966c681461059f5780634f189cb2146105bf57806357a3a31b146105d457806357ad5ff6146105f45780635d1ca6311461061457806370a082311461062857005b8063355274ea146104d95780633644e515146104ee578063392e53cd146105045780633950935114610523578063397b37431461054357806340c10f191461057f57005b806318636d3c1161023b57806318636d3c1461040357806323b872dd1461042357806325b00243146104435780633092afd51461046357806330adf81f14610483578063313ce567146104b757005b80627ffb781461027f57806301e88208146102b657806306fdde0314610306578063095ea7b314610328578063160a79251461035857806318160ddd146103e4575b005b34801561028b57600080fd5b50600b546001600160a01b03165b6040516001600160a01b0390911681526020015b60405180910390f35b3480156102c257600080fd5b506102ef6102d13660046137b5565b60056020526000908152604090205460ff8082169161010090041682565b6040805192151583529015156020830152016102ad565b34801561031257600080fd5b5061031b610962565b6040516102ad919061382a565b34801561033457600080fd5b5061034861034336600461383d565b6109f4565b60405190151581526020016102ad565b34801561036457600080fd5b506103c56103733660046137b5565b6040805180820190915260008082526020820152506001600160a01b031660009081526005602090815260409182902082518084019093525460ff808216151584526101009091041615159082015290565b60408051825115158152602092830151151592810192909252016102ad565b3480156103f057600080fd5b506002545b6040519081526020016102ad565b34801561040f57600080fd5b5061027d61041e366004613a38565b610a0a565b34801561042f57600080fd5b5061034861043e366004613a89565b610b1b565b34801561044f57600080fd5b5061027d61045e3660046137b5565b610bc7565b34801561046f57600080fd5b5061027d61047e3660046137b5565b610c61565b34801561048f57600080fd5b506103f57f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c981565b3480156104c357600080fd5b5060125b60405160ff90911681526020016102ad565b3480156104e557600080fd5b506009546103f5565b3480156104fa57600080fd5b506103f560105481565b34801561051057600080fd5b50600a54600160a01b900460ff16610348565b34801561052f57600080fd5b5061034861053e36600461383d565b610cf8565b34801561054f57600080fd5b50600d54600e54600f54604080516001600160a01b039485168152939092166020840152908201526060016102ad565b34801561058b57600080fd5b5061027d61059a36600461383d565b610d34565b3480156105ab57600080fd5b5061027d6105ba366004613aca565b610e05565b3480156105cb57600080fd5b5061027d610e0f565b3480156105e057600080fd5b5061027d6105ef3660046137b5565b610ef6565b34801561060057600080fd5b5061027d61060f366004613a89565b611038565b34801561062057600080fd5b5060026104c7565b34801561063457600080fd5b506103f56106433660046137b5565b6001600160a01b031660009081526020819052604090205490565b34801561066a57600080fd5b5061027d61067936600461383d565b61118c565b34801561068a57600080fd5b506103f56106993660046137b5565b60116020526000908152604090205481565b3480156106b757600080fd5b5061027d61120d565b3480156106cc57600080fd5b506103f56106db366004613b71565b611267565b3480156106ec57600080fd5b5061031b611428565b34801561070157600080fd5b506103486107103660046137b5565b611437565b34801561072157600080fd5b5061027d6107303660046137b5565b6114b2565b34801561074157600080fd5b5061027d610750366004613c46565b611549565b34801561076157600080fd5b5061034861077036600461383d565b611565565b34801561078157600080fd5b5061034861079036600461383d565b6115fe565b3480156107a157600080fd5b506103486107b03660046137b5565b6001600160a01b031660009081526005602052604090205460ff1690565b3480156107da57600080fd5b5061027d6107e93660046137b5565b61160b565b3480156107fa57600080fd5b5061027d610809366004613cf2565b6116a2565b34801561081a57600080fd5b506103f56117d3565b34801561082f57600080fd5b5061034861083e366004613dae565b6117e9565b34801561084f57600080fd5b5061027d61085e366004613e9e565b611923565b34801561086f57600080fd5b506103f561087e366004613f0c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61027d611b2a565b3480156108bd57600080fd5b50610299611b6a565b3480156108d257600080fd5b506103f5670de0b6b3a764000081565b3480156108ee57600080fd5b5061027d6108fd366004613f3a565b611bff565b34801561090e57600080fd5b5061029961091d366004613aca565b611fdd565b34801561092e57600080fd5b50601254610299906001600160a01b031681565b34801561094e57600080fd5b5061027d61095d366004613fea565b612007565b60606007805461097190614034565b80601f016020809104026020016040519081016040528092919081815260200182805461099d90614034565b80156109ea5780601f106109bf576101008083540402835291602001916109ea565b820191906000526020600020905b8154815290600101906020018083116109cd57829003601f168201915b5050505050905090565b6000610a0133848461212a565b50600192915050565b604051631d746d8360e01b8152306004820152670de0b6b3a764000060248201819052336044830152906001600160a01b03831690631d746d8390606401600060405180830381600087803b158015610a6257600080fd5b505af1158015610a76573d6000803e3d6000fd5b50503360009081526020819052604090205483925090501015610ae05760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206765742044542066726f6d2044697370656e7365720060448201526064015b60405180910390fd5b610b16836000015184602001518560400151866060015187608001518860a001518960c001518a60e001518b610100015161224e565b505050565b6000610b2884848461267e565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610bad5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610ad7565b610bba853385840361212a565b60019150505b9392505050565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610c11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c35919061406f565b60200151610c555760405162461bcd60e51b8152600401610ad7906140f3565b610c5e8161284c565b50565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccf919061406f565b60200151610cef5760405162461bcd60e51b8152600401610ad7906140f3565b610c5e816128b9565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a01918590610d2f90869061413e565b61212a565b3360009081526005602052604090205460ff16610d935760405162461bcd60e51b815260206004820152601960248201527f455243323054656d706c6174653a204e4f54204d494e544552000000000000006044820152606401610ad7565b600954610da982610da360025490565b90612919565b1115610df75760405162461bcd60e51b815260206004820152601f60248201527f44617461546f6b656e54656d706c6174653a20636170206578636565646564006044820152606401610ad7565b610e018282612925565b5050565b610c5e3382612a04565b600b546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa158015610e58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7c9190614156565b6001600160a01b0316336001600160a01b031614610edc5760405162461bcd60e51b815260206004820152601b60248201527f455243323054656d706c6174653a206e6f74204e46544f776e657200000000006044820152606401610ad7565b610ee4612b52565b600c80546001600160a01b0319169055565b33600090815260056020526040902054610100900460ff1680610f875750600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015610f5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f82919061406f565b602001515b610fe75760405162461bcd60e51b815260206004820152602b60248201527f455243323054656d706c6174653a204e4f54205041594d454e54204d414e414760448201526a22a91037b91027aba722a960a91b6064820152608401610ad7565b610ff081612c01565b604080514281524360208201526001600160a01b0383169133917f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc910160405180910390a350565b600d546001600160a01b031633146110a55760405162461bcd60e51b815260206004820152602a60248201527f455243323054656d706c6174653a206e6f74207075626c6973684d61726b65746044820152694665654164647265737360b01b6064820152608401610ad7565b6001600160a01b03831661110c5760405162461bcd60e51b815260206004820152602860248201527f496e76616c6964205f7075626c6973684d61726b657446656541646472657373604482015267206164647265737360c01b6064820152608401610ad7565b600d80546001600160a01b038581166001600160a01b03199283168117909355600e8054918616919092168117909155600f839055604080513381526020810193909352820152606081018290527fe0b85b6f04fa914cf57f6401c5672a83a32b1c388d194c3d78e17f2897d46f439060800160405180910390a1505050565b6000611198833361087e565b9050818110156111f65760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610ad7565b611203833384840361212a565b610b168383612a04565b600b546001600160a01b03163314610edc5760405162461bcd60e51b815260206004820152601f60248201527f455243323054656d706c6174653a204e4f542037323120436f6e7472616374006044820152606401610ad7565b600b5460405163160a792560e01b81523360048201526000916001600160a01b03169063160a7925906024016080604051808303816000875af11580156112b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d6919061406f565b602001516112f65760405162461bcd60e51b8152600401610ad7906140f3565b308360038151811061130a5761130a614173565b6001600160a01b039283166020918202929092010152601254604051638244937560e01b815291169063824493759061134b90879087908790600401614189565b6020604051808303816000875af115801561136a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138e919061421d565b90506000826004815181106113a5576113a5614173565b602002602001015111156113bc576113bc84612c23565b7f195d202f33578769e120c3041341554af3193e67ee004175095bc9c06e6e616581846000815181106113f1576113f1614173565b60200260200101516040516114199291909182526001600160a01b0316602082015260400190565b60405180910390a19392505050565b60606008805461097190614034565b600b5460405163160a792560e01b81526001600160a01b038381166004830152600092169063160a7925906024016080604051808303816000875af1158015611484573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114a8919061406f565b6020015192915050565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af11580156114fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611520919061406f565b602001516115405760405162461bcd60e51b8152600401610ad7906140f3565b610c5e81612c23565b61155a89898989898989898961224e565b505050505050505050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156115e75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610ad7565b6115f4338585840361212a565b5060019392505050565b6000610a0133848461267e565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015611655573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611679919061406f565b602001516116995760405162461bcd60e51b8152600401610ad7906140f3565b610c5e81612d1d565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af11580156116ec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611710919061406f565b602001516117305760405162461bcd60e51b8152600401610ad7906140f3565b6040516bffffffffffffffffffffffff193060601b16602082015260009060340160408051601f19818403018152908290528051602090910120600b546301caf8fd60e31b83529092506001600160a01b031690630e57c7e89061179c90849087908790600401614236565b600060405180830381600087803b1580156117b657600080fd5b505af11580156117ca573d6000803e3d6000fd5b50505050505050565b6117e66064670de0b6b3a764000061426c565b81565b600a54600090600160a01b900460ff16156118605760405162461bcd60e51b815260206004820152603160248201527f455243323054656d706c6174653a20746f6b656e20696e7374616e636520616c6044820152701c9958591e481a5b9a5d1a585b1a5e9959607a1b6064820152608401610ad7565b61191461186d8b8d61428e565b8a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c91829185019084908082843760009201919091525050604080516020808d0282810182019093528c82529093508c92508b91829185019084908082843760009201919091525061190f92508991508a9050614315565b612e2b565b9b9a5050505050505050505050565b438410156119665760405162461bcd60e51b815260206004820152601060248201526f115490cc8c11150e881156141254915160821b6044820152606401610ad7565b6010546001600160a01b038816600090815260116020526040812080549192917f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9918b918b918b9190876119b98361437c565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810187905260e00160405160208183030381529060405280519060200120604051602001611a3292919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff88169284019290925260608301869052608083018590529092509060019060a0016020604051602081039080840390855afa158015611a9d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811615801590611ad35750886001600160a01b0316816001600160a01b0316145b611b1f5760405162461bcd60e51b815260206004820152601a60248201527f455243323044543a20494e56414c49445f5349474e41545552450000000000006044820152606401610ad7565b61155a89898961212a565b611b32611b6a565b6001600160a01b03166108fc479081150290604051600060405180830381858888f19350505050158015610c5e573d6000803e3d6000fd5b600c546000906001600160a01b0316611bef57600b546040516331a9108f60e11b8152600160048201526001600160a01b0390911690636352211e90602401602060405180830381865afa158015611bc6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bea9190614156565b905090565b50600c546001600160a01b031690565b80516020820151604051634c87087d60e01b815260009283926001600160a01b0390911691634c87087d91611c3a9160040190815260200190565b61018060405180830381865afa158015611c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c7c9190614397565b5050505050505050935050925050306001600160a01b0316826001600160a01b031614611cfb5760405162461bcd60e51b815260206004820152602760248201527f5468697320466978656452617465206973206e6f742070726f766964696e67206044820152661d1a1a5cc8111560ca1b6064820152608401610ad7565b8251602084015160405163c99733a760e01b81526004810191909152670de0b6b3a7640000602482015260009182916001600160a01b039091169063c99733a790604401608060405180830381865afa158015611d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d809190614454565b5050915091508460400151821115611dea5760405162461bcd60e51b815260206004820152602760248201527f46697865645261746545786368616e67653a20546f6f206d616e79206261736560448201526620746f6b656e7360c81b6064820152608401610ad7565b6000670de0b6b3a7640000866060015183611e05919061448a565b611e0f919061426c565b9050611e1b818461413e565b9250611e326001600160a01b03851633308661332a565b8551611e49906001600160a01b0386169085613395565b8551602087015160405163412dae6b60e11b81526004810191909152670de0b6b3a76400006024820152604481018590526001600160a01b039091169063825b5cd690606401600060405180830381600087803b158015611ea957600080fd5b505af1158015611ebd573d6000803e3d6000fd5b505030600090815260208190526040902054670de0b6b3a7640000925090501015611f2a5760405162461bcd60e51b815260206004820152601f60248201527f556e61626c6520746f206275792044542066726f6d20466978656452617465006044820152606401610ad7565b611f3d3033670de0b6b3a764000061267e565b611f738760000151886020015189604001518a606001518b608001518c60a001518d60c001518e60e001518f610100015161224e565b8015611f93576080860151611f93906001600160a01b0386169083613447565b60408051338152602081018590529081018290527fe89458a7527f4bf466ab18794ab8b1ca208b478483a1a87bcf0d976d421b4aff9060600160405180910390a150505050505050565b60068181548110611fed57600080fd5b6000918252602090912001546001600160a01b0316905081565b600b5460405163160a792560e01b81523360048201526001600160a01b039091169063160a7925906024016080604051808303816000875af1158015612051573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612075919061406f565b602001516120955760405162461bcd60e51b8152600401610ad7906140f3565b601254604051636b14d00560e11b81526001600160a01b0386811660048301523060248301819052604483018790526064830186905233608484015260a48301529091169063d629a00a9060c401600060405180830381600087803b1580156120fd57600080fd5b505af1158015612111573d6000803e3d6000fd5b5050505080156121245761212484612c23565b50505050565b6001600160a01b03831661218c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610ad7565b6001600160a01b0382166121ed5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610ad7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b33600090815260208190526040812054670de0b6b3a764000091908211156122c65760405162461bcd60e51b815260206004820152602560248201527f4e6f7420656e6f756768204461746120546f6b656e7320746f2073746172742060448201526427b93232b960d91b6064820152608401610ad7565b600d5460408051338152602081018590529081018c90524260608201524360808201526001600160a01b03918216918d16907fe1c4fa794edfa8f619b8257a077398950357b9c6398528f94480307352f9afcc9060a00160405180910390a36000600f541180156123415750600e546001600160a01b031615155b80156123575750600d546001600160a01b031615155b1561248257600f54600e5461237b916001600160a01b03909116903390309061332a565b600f54612389906064613477565b600d54600f549192506123bf916001600160a01b03909116906123ac9084613483565b600e546001600160a01b03169190613447565b600e54600d54600f546001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b4906124049085613483565b60405190815260200160405180910390a3801561248257600a54600e54612438916001600160a01b03918216911683613447565b600e54600a546040518381526001600160a01b0392831692909116907ff666b31c81334b6085802ba4149907fa724689d43bc31df6de1a51291ddc55b49060200160405180910390a35b60006040518060400160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600081858c8c8c6040516020016124d694939291906144a9565b604051602081830303815290604052805190602001206040516020016124fd9291906144ef565b60408051601f198184030181528282528051602091820120600080855291840180845281905260ff8c1692840192909252606083018a9052608083018990529092509060019060a0016020604051602081039080840390855afa158015612568573d6000803e3d6000fd5b5050506020604051035190508b6001600160a01b0316816001600160a01b0316146125cc5760405162461bcd60e51b8152602060048201526014602482015273496e76616c69642070726f76696465722066656560601b6044820152606401610ad7565b8a6001600160a01b03168c6001600160a01b03167f144fc6ed7d0a617ba44a01131b1f724d0370297a3640b6201f343e081ada64468c898d8d8d604051612617959493929190614511565b60405180910390a360008a11801561263757506001600160a01b038b1615155b801561264b57506001600160a01b038c1615155b15612665576126656001600160a01b038c16338e8d61332a565b61266e85610e05565b5050505050505050505050505050565b6001600160a01b0383166126e25760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610ad7565b6001600160a01b0382166127445760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610ad7565b6001600160a01b038316600090815260208190526040902054818110156127bc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610ad7565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906127f390849061413e565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161283f91815260200190565b60405180910390a3612124565b6001600160a01b03811660008181526005602052604090819020805461ff00191681559051909133917faee911eec8b2df8f3ae0464841541b1e5f339519bd5cf51889fe8b07fecff658906128ad9042904390918252602082015260400190565b60405180910390a35050565b6001600160a01b03811660008181526005602052604090819020805460ff191681559051909133917fefa2735987005aaa89c050c0ff8cc9ae7d9079d19382081c429130f98c52d480906128ad9042904390918252602082015260400190565b6000610bc0828461413e565b6001600160a01b03821661297b5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610ad7565b806002600082825461298d919061413e565b90915550506001600160a01b038216600090815260208190526040812080548392906129ba90849061413e565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6001600160a01b038216612a645760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610ad7565b6001600160a01b03821660009081526020819052604090205481811015612ad85760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610ad7565b6001600160a01b0383166000908152602081905260408120838303905560028054849290612b0790849061454a565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b60005b600654811015612bb85760006005600060068481548110612b7857612b78614173565b60009182526020808320909101546001600160a01b031683528201929092526040019020805461ffff191690555080612bb08161437c565b915050612b55565b50612bc5600660006136d9565b6040805142815243602082015233917f712bc71db81927a76b8bf1ea346247bb0ad58f18e4e5c1bd4aa0ec6573e02a2b910160405180910390a2565b600c80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166000908152600560205260409020805460ff1615612c8d5760405162461bcd60e51b815260206004820152601d60248201527f4552433230526f6c65733a2020414c52454144592041204d494e5445520000006044820152606401610ad7565b8054600160ff19909116811782556006805491820181556000527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b038416908117909155604080514281524360208201523392917f4f7e100eb1ee13e903798bd0d6aa854152e07eb05544f392b9409c12935c809591016128ad565b6001600160a01b03811660009081526005602052604090208054610100900460ff1615612d975760405162461bcd60e51b815260206004820152602260248201527f4552433230526f6c65733a2020414c5245414459204120464545204d414e414760448201526122a960f11b6064820152608401610ad7565b805461ff001916610100178155600680546001810182556000919091527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0384166001600160a01b03199091168117909155604080514281524360208201523392917fb17da2e9910b4ba5754e8872385ba315a238bafb5ae221fc85093c33432c40a791016128ad565b60008084600081518110612e4157612e41614173565b60200260200101519050600085600181518110612e6057612e60614173565b6020026020010151905060006001600160a01b0316826001600160a01b03161415612ee25760405162461bcd60e51b815260206004820152602c60248201527f455243323054656d706c6174653a20496e76616c6964206d696e7465722c202060448201526b7a65726f206164647265737360a01b6064820152608401610ad7565b6001600160a01b038116612f5e5760405162461bcd60e51b815260206004820152603c60248201527f455243323054656d706c6174653a20496e76616c696420636f6d6d756e69747960448201527f2066656520636f6c6c6563746f722c207a65726f2061646472657373000000006064820152608401610ad7565b84600081518110612f7157612f71614173565b602002602001015160001415612fd55760405162461bcd60e51b8152602060048201526024808201527f44617461546f6b656e54656d706c6174653a20496e76616c6964206361702076604482015263616c756560e01b6064820152608401610ad7565b84600081518110612fe857612fe8614173565b60200260200101516009819055508760008151811061300957613009614173565b6020026020010151600790805190602001906130269291906136f7565b508760018151811061303a5761303a614173565b6020026020010151600890805190602001906130579291906136f7565b50600b80546001600160a01b0319166001600160a01b03841617905585518690600290811061308857613088614173565b6020908102919091010151601280546001600160a01b039283166001600160a01b0319909116179055600a80546001600160a81b03191691831691909117600160a01b17905586516130f29088906000906130e5576130e5614173565b6020026020010151612c23565b60006001600160a01b03168760018151811061311057613110614173565b60200260200101516001600160a01b0316146131ba576131498760018151811061313c5761313c614173565b6020026020010151612c01565b8660018151811061315c5761315c614173565b60200260200101516001600160a01b0316336001600160a01b03167f4d7694d695c57cc54947177c8e8a0e61aae664e9223492a798c32fadfc6419cc42436040516131b1929190918252602082015260400190565b60405180910390a35b866002815181106131cd576131cd614173565b6020026020010151600d60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508660038151811061320e5761320e614173565b6020026020010151600e60006101000a8154816001600160a01b0302191690836001600160a01b031602179055508460018151811061324f5761324f614173565b6020026020010151600f8190555060004690507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60076040516132929190614561565b60408051918290038220828201825260018352603160f81b6020938401528151928301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66060820152608081018290523060a082015260c00160408051808303601f1901815291905280516020909101206010555050600a54600160a01b900460ff16979650505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526121249085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915261348f565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e90604401602060405180830381865afa1580156133e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061340a919061421d565b613414919061413e565b6040516001600160a01b03851660248201526044810182905290915061212490859063095ea7b360e01b9060640161335e565b6040516001600160a01b038316602482015260448101829052610b1690849063a9059cbb60e01b9060640161335e565b6000610bc0828461426c565b6000610bc0828461454a565b60006134e4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135619092919063ffffffff16565b805190915015610b16578080602001905181019061350291906145fd565b610b165760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610ad7565b60606135708484600085613578565b949350505050565b6060824710156135d95760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610ad7565b843b6136275760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610ad7565b600080866001600160a01b03168587604051613643919061461a565b60006040518083038185875af1925050503d8060008114613680576040519150601f19603f3d011682016040523d82523d6000602084013e613685565b606091505b50915091506136958282866136a0565b979650505050505050565b606083156136af575081610bc0565b8251156136bf5782518084602001fd5b8160405162461bcd60e51b8152600401610ad7919061382a565b5080546000825590600052602060002090810190610c5e919061377b565b82805461370390614034565b90600052602060002090601f016020900481019282613725576000855561376b565b82601f1061373e57805160ff191683800117855561376b565b8280016001018555821561376b579182015b8281111561376b578251825591602001919060010190613750565b5061377792915061377b565b5090565b5b80821115613777576000815560010161377c565b6001600160a01b0381168114610c5e57600080fd5b80356137b081613790565b919050565b6000602082840312156137c757600080fd5b8135610bc081613790565b60005b838110156137ed5781810151838201526020016137d5565b838111156121245750506000910152565b600081518084526138168160208601602086016137d2565b601f01601f19169290920160200192915050565b602081526000610bc060208301846137fe565b6000806040838503121561385057600080fd5b823561385b81613790565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b03811182821017156138a2576138a2613869565b60405290565b60405160a081016001600160401b03811182821017156138a2576138a2613869565b604051601f8201601f191681016001600160401b03811182821017156138f2576138f2613869565b604052919050565b803560ff811681146137b057600080fd5b60006001600160401b0383111561392457613924613869565b613937601f8401601f19166020016138ca565b905082815283838301111561394b57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261397357600080fd5b610bc08383356020850161390b565b6000610120828403121561399557600080fd5b61399d61387f565b90506139a8826137a5565b8152602082013560208201526139c0604083016137a5565b60408201526139d1606083016137a5565b6060820152608082013560808201526139ec60a083016138fa565b60a082015260c082013560c082015260e082013560e0820152610100808301356001600160401b03811115613a2057600080fd5b613a2c85828601613962565b82840152505092915050565b60008060408385031215613a4b57600080fd5b82356001600160401b03811115613a6157600080fd5b613a6d85828601613982565b9250506020830135613a7e81613790565b809150509250929050565b600080600060608486031215613a9e57600080fd5b8335613aa981613790565b92506020840135613ab981613790565b929592945050506040919091013590565b600060208284031215613adc57600080fd5b5035919050565b60006001600160401b03821115613afc57613afc613869565b5060051b60200190565b600082601f830112613b1757600080fd5b81356020613b2c613b2783613ae3565b6138ca565b82815260059290921b84018101918181019086841115613b4b57600080fd5b8286015b84811015613b665780358352918301918301613b4f565b509695505050505050565b600080600060608486031215613b8657600080fd5b8335613b9181613790565b92506020848101356001600160401b0380821115613bae57600080fd5b818701915087601f830112613bc257600080fd5b8135613bd0613b2782613ae3565b81815260059190911b8301840190848101908a831115613bef57600080fd5b938501935b82851015613c16578435613c0781613790565b82529385019390850190613bf4565b965050506040870135925080831115613c2e57600080fd5b5050613c3c86828701613b06565b9150509250925092565b60008060008060008060008060006101208a8c031215613c6557600080fd5b8935613c7081613790565b985060208a0135975060408a0135613c8781613790565b965060608a0135613c9781613790565b955060808a01359450613cac60a08b016138fa565b935060c08a0135925060e08a013591506101008a01356001600160401b03811115613cd657600080fd5b613ce28c828d01613962565b9150509295985092959850929598565b60008060208385031215613d0557600080fd5b82356001600160401b0380821115613d1c57600080fd5b818501915085601f830112613d3057600080fd5b813581811115613d3f57600080fd5b866020828501011115613d5157600080fd5b60209290920196919550909350505050565b60008083601f840112613d7557600080fd5b5081356001600160401b03811115613d8c57600080fd5b6020830191508360208260051b8501011115613da757600080fd5b9250929050565b60008060008060008060008060008060a08b8d031215613dcd57600080fd5b8a356001600160401b0380821115613de457600080fd5b613df08e838f01613d63565b909c509a5060208d0135915080821115613e0957600080fd5b613e158e838f01613d63565b909a50985060408d0135915080821115613e2e57600080fd5b613e3a8e838f01613d63565b909850965060608d0135915080821115613e5357600080fd5b613e5f8e838f01613d63565b909650945060808d0135915080821115613e7857600080fd5b50613e858d828e01613d63565b915080935050809150509295989b9194979a5092959850565b600080600080600080600060e0888a031215613eb957600080fd5b8735613ec481613790565b96506020880135613ed481613790565b95506040880135945060608801359350613ef0608089016138fa565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215613f1f57600080fd5b8235613f2a81613790565b91506020830135613a7e81613790565b60008082840360c0811215613f4e57600080fd5b83356001600160401b03811115613f6457600080fd5b613f7086828701613982565b93505060a0601f1982011215613f8557600080fd5b50613f8e6138a8565b6020840135613f9c81613790565b8082525060408401356020820152606084013560408201526080840135606082015260a0840135613fcc81613790565b6080820152919491935090915050565b8015158114610c5e57600080fd5b6000806000806080858703121561400057600080fd5b843561400b81613790565b93506020850135925060408501359150606085013561402981613fdc565b939692955090935050565b600181811c9082168061404857607f821691505b6020821081141561406957634e487b7160e01b600052602260045260246000fd5b50919050565b60006080828403121561408157600080fd5b604051608081018181106001600160401b03821117156140a3576140a3613869565b60405282516140b181613fdc565b815260208301516140c181613fdc565b602082015260408301516140d481613fdc565b604082015260608301516140e781613fdc565b60608201529392505050565b6020808252818101527f455243323054656d706c6174653a204e4f54204445504c4f59455220524f4c45604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561415157614151614128565b500190565b60006020828403121561416857600080fd5b8151610bc081613790565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038481168252606060208084018290528551918401829052600092868201929091906080860190855b818110156141d75785518516835294830194918301916001016141b9565b5050858103604087015286518082529082019350915080860160005b8381101561420f578151855293820193908201906001016141f3565b509298975050505050505050565b60006020828403121561422f57600080fd5b5051919050565b83815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008261428957634e487b7160e01b600052601260045260246000fd5b500490565b600061429c613b2784613ae3565b80848252602080830192508560051b8501368111156142ba57600080fd5b855b818110156143095780356001600160401b038111156142db5760008081fd5b870136601f8201126142ed5760008081fd5b6142fb36823586840161390b565b8652509382019382016142bc565b50919695505050505050565b6000614323613b2784613ae3565b80848252602080830192508560051b85013681111561434157600080fd5b855b818110156143095780356001600160401b038111156143625760008081fd5b61436e36828a01613962565b865250938201938201614343565b600060001982141561439057614390614128565b5060010190565b6000806000806000806000806000806000806101808d8f0312156143ba57600080fd5b8c516143c581613790565b60208e0151909c506143d681613790565b60408e015160608f0151919c509a506143ee81613790565b8099505060808d0151975060a08d0151965060c08d015161440e81613fdc565b8096505060e08d015194506101008d015193506101208d015192506101408d015191506101608d015161444081613fdc565b809150509295989b509295989b509295989b565b6000806000806080858703121561446a57600080fd5b505082516020840151604085015160609095015191969095509092509050565b60008160001904831182151516156144a4576144a4614128565b500290565b600085516144bb818460208a016137d2565b6bffffffffffffffffffffffff19606096871b8116919093019081529390941b166014830152602882015260480192915050565b600083516145018184602088016137d2565b9190910191825250602001919050565b85815260a06020820152600061452a60a08301876137fe565b60ff95909516604083015250606081019290925260809091015292915050565b60008282101561455c5761455c614128565b500390565b600080835481600182811c91508083168061457d57607f831692505b602080841082141561459d57634e487b7160e01b86526022600452602486fd5b8180156145b157600181146145c2576145ef565b60ff198616895284890196506145ef565b60008a81526020902060005b868110156145e75781548b8201529085019083016145ce565b505084890196505b509498975050505050505050565b60006020828403121561460f57600080fd5b8151610bc081613fdc565b6000825161462c8184602087016137d2565b919091019291505056fea26469706673582212209041cd5099503a2e31e599b01c0c938b713c90fa811d0e03aacc28d1251e8ce164736f6c634300080a0033",
1528
- "linkReferences": {},
1529
- "deployedLinkReferences": {}
1530
- }