@cartesi/devnet 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/LICENSE +202 -0
  2. package/build/anvil_state.json +1 -0
  3. package/deployments/localhost/.chainId +1 -0
  4. package/deployments/localhost/AuthorityFactory.json +177 -0
  5. package/deployments/localhost/AuthorityHistoryPairFactory.json +276 -0
  6. package/deployments/localhost/Bitmask.json +44 -0
  7. package/deployments/localhost/CartesiDAppFactory.json +231 -0
  8. package/deployments/localhost/CartesiMathV2.json +213 -0
  9. package/deployments/localhost/DAppAddressRelay.json +102 -0
  10. package/deployments/localhost/ERC1155BatchPortal.json +133 -0
  11. package/deployments/localhost/ERC1155SinglePortal.json +132 -0
  12. package/deployments/localhost/ERC20Portal.json +120 -0
  13. package/deployments/localhost/ERC721Portal.json +126 -0
  14. package/deployments/localhost/EtherPortal.json +121 -0
  15. package/deployments/localhost/HistoryFactory.json +177 -0
  16. package/deployments/localhost/InputBox.json +207 -0
  17. package/deployments/localhost/MerkleV2.json +217 -0
  18. package/deployments/localhost/SelfHostedApplicationFactory.json +226 -0
  19. package/deployments/localhost/TestMultiToken.json +829 -0
  20. package/deployments/localhost/TestNFT.json +891 -0
  21. package/deployments/localhost/TestToken.json +1079 -0
  22. package/deployments/localhost/UnrolledCordic.json +54 -0
  23. package/dist/deploy/01_token.js +15 -0
  24. package/dist/deploy/02_nft.js +15 -0
  25. package/dist/deploy/03_multitoken.js +15 -0
  26. package/dist/src/tasks/deploy-anvil.d.ts +6 -0
  27. package/dist/src/tasks/deploy-anvil.d.ts.map +1 -0
  28. package/dist/src/tasks/deploy-anvil.js +38 -0
  29. package/export/abi/localhost.json +3205 -0
  30. package/export/artifacts/@openzeppelin/contracts/access/Ownable.sol/Ownable.json +128 -0
  31. package/export/artifacts/@openzeppelin/contracts/access/manager/AccessManaged.sol/AccessManaged.json +137 -0
  32. package/export/artifacts/@openzeppelin/contracts/access/manager/AuthorityUtils.sol/AuthorityUtils.json +32 -0
  33. package/export/artifacts/@openzeppelin/contracts/access/manager/IAccessManaged.sol/IAccessManaged.json +133 -0
  34. package/export/artifacts/@openzeppelin/contracts/access/manager/IAccessManager.sol/IAccessManager.json +1251 -0
  35. package/export/artifacts/@openzeppelin/contracts/access/manager/IAuthority.sol/IAuthority.json +60 -0
  36. package/export/artifacts/@openzeppelin/contracts/interfaces/IERC4906.sol/IERC4906.json +401 -0
  37. package/export/artifacts/@openzeppelin/contracts/interfaces/IERC5267.sol/IERC5267.json +84 -0
  38. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json +190 -0
  39. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json +165 -0
  40. package/export/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json +197 -0
  41. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/ERC1155.sol/ERC1155.json +553 -0
  42. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155.sol/IERC1155.json +362 -0
  43. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol/IERC1155Receiver.json +156 -0
  44. package/export/artifacts/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol/IERC1155MetadataURI.json +385 -0
  45. package/export/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +436 -0
  46. package/export/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +242 -0
  47. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json +472 -0
  48. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol/ERC20Pausable.json +502 -0
  49. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol/ERC20Permit.json +695 -0
  50. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +293 -0
  51. package/export/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol/IERC20Permit.json +114 -0
  52. package/export/artifacts/@openzeppelin/contracts/token/ERC721/ERC721.sol/ERC721.json +595 -0
  53. package/export/artifacts/@openzeppelin/contracts/token/ERC721/IERC721.sol/IERC721.json +363 -0
  54. package/export/artifacts/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol/IERC721Receiver.json +66 -0
  55. package/export/artifacts/@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol/ERC721URIStorage.json +630 -0
  56. package/export/artifacts/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol/IERC721Metadata.json +421 -0
  57. package/export/artifacts/@openzeppelin/contracts/utils/Arrays.sol/Arrays.json +38 -0
  58. package/export/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +24 -0
  59. package/export/artifacts/@openzeppelin/contracts/utils/Nonces.sol/Nonces.json +73 -0
  60. package/export/artifacts/@openzeppelin/contracts/utils/Pausable.sol/Pausable.json +103 -0
  61. package/export/artifacts/@openzeppelin/contracts/utils/ShortStrings.sol/ShortStrings.json +55 -0
  62. package/export/artifacts/@openzeppelin/contracts/utils/StorageSlot.sol/StorageSlot.json +40 -0
  63. package/export/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +62 -0
  64. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +84 -0
  65. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/EIP712.sol/EIP712.json +105 -0
  66. package/export/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json +36 -0
  67. package/export/artifacts/@openzeppelin/contracts/utils/introspection/ERC165.sol/ERC165.json +50 -0
  68. package/export/artifacts/@openzeppelin/contracts/utils/introspection/IERC165.sol/IERC165.json +50 -0
  69. package/export/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +65 -0
  70. package/export/artifacts/@openzeppelin/contracts/utils/math/SafeCast.sol/SafeCast.json +173 -0
  71. package/export/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +36 -0
  72. package/export/artifacts/@openzeppelin/contracts/utils/types/Time.sol/Time.json +41 -0
  73. package/export/artifacts/contracts/TestMultiToken.sol/TestMultiToken.json +750 -0
  74. package/export/artifacts/contracts/TestNFT.sol/TestNFT.json +779 -0
  75. package/export/artifacts/contracts/TestToken.sol/TestToken.json +963 -0
  76. package/package.json +41 -0
@@ -0,0 +1,963 @@
1
+ {
2
+ "contractName": "TestToken",
3
+ "sourceName": "contracts/TestToken.sol",
4
+ "abi": [
5
+ {
6
+ "inputs": [
7
+ {
8
+ "internalType": "address",
9
+ "name": "initialAuthority",
10
+ "type": "address"
11
+ }
12
+ ],
13
+ "stateMutability": "nonpayable",
14
+ "type": "constructor"
15
+ },
16
+ {
17
+ "inputs": [
18
+ {
19
+ "internalType": "address",
20
+ "name": "authority",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "name": "AccessManagedInvalidAuthority",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [
29
+ {
30
+ "internalType": "address",
31
+ "name": "caller",
32
+ "type": "address"
33
+ },
34
+ {
35
+ "internalType": "uint32",
36
+ "name": "delay",
37
+ "type": "uint32"
38
+ }
39
+ ],
40
+ "name": "AccessManagedRequiredDelay",
41
+ "type": "error"
42
+ },
43
+ {
44
+ "inputs": [
45
+ {
46
+ "internalType": "address",
47
+ "name": "caller",
48
+ "type": "address"
49
+ }
50
+ ],
51
+ "name": "AccessManagedUnauthorized",
52
+ "type": "error"
53
+ },
54
+ {
55
+ "inputs": [],
56
+ "name": "ECDSAInvalidSignature",
57
+ "type": "error"
58
+ },
59
+ {
60
+ "inputs": [
61
+ {
62
+ "internalType": "uint256",
63
+ "name": "length",
64
+ "type": "uint256"
65
+ }
66
+ ],
67
+ "name": "ECDSAInvalidSignatureLength",
68
+ "type": "error"
69
+ },
70
+ {
71
+ "inputs": [
72
+ {
73
+ "internalType": "bytes32",
74
+ "name": "s",
75
+ "type": "bytes32"
76
+ }
77
+ ],
78
+ "name": "ECDSAInvalidSignatureS",
79
+ "type": "error"
80
+ },
81
+ {
82
+ "inputs": [
83
+ {
84
+ "internalType": "address",
85
+ "name": "spender",
86
+ "type": "address"
87
+ },
88
+ {
89
+ "internalType": "uint256",
90
+ "name": "allowance",
91
+ "type": "uint256"
92
+ },
93
+ {
94
+ "internalType": "uint256",
95
+ "name": "needed",
96
+ "type": "uint256"
97
+ }
98
+ ],
99
+ "name": "ERC20InsufficientAllowance",
100
+ "type": "error"
101
+ },
102
+ {
103
+ "inputs": [
104
+ {
105
+ "internalType": "address",
106
+ "name": "sender",
107
+ "type": "address"
108
+ },
109
+ {
110
+ "internalType": "uint256",
111
+ "name": "balance",
112
+ "type": "uint256"
113
+ },
114
+ {
115
+ "internalType": "uint256",
116
+ "name": "needed",
117
+ "type": "uint256"
118
+ }
119
+ ],
120
+ "name": "ERC20InsufficientBalance",
121
+ "type": "error"
122
+ },
123
+ {
124
+ "inputs": [
125
+ {
126
+ "internalType": "address",
127
+ "name": "approver",
128
+ "type": "address"
129
+ }
130
+ ],
131
+ "name": "ERC20InvalidApprover",
132
+ "type": "error"
133
+ },
134
+ {
135
+ "inputs": [
136
+ {
137
+ "internalType": "address",
138
+ "name": "receiver",
139
+ "type": "address"
140
+ }
141
+ ],
142
+ "name": "ERC20InvalidReceiver",
143
+ "type": "error"
144
+ },
145
+ {
146
+ "inputs": [
147
+ {
148
+ "internalType": "address",
149
+ "name": "sender",
150
+ "type": "address"
151
+ }
152
+ ],
153
+ "name": "ERC20InvalidSender",
154
+ "type": "error"
155
+ },
156
+ {
157
+ "inputs": [
158
+ {
159
+ "internalType": "address",
160
+ "name": "spender",
161
+ "type": "address"
162
+ }
163
+ ],
164
+ "name": "ERC20InvalidSpender",
165
+ "type": "error"
166
+ },
167
+ {
168
+ "inputs": [
169
+ {
170
+ "internalType": "uint256",
171
+ "name": "deadline",
172
+ "type": "uint256"
173
+ }
174
+ ],
175
+ "name": "ERC2612ExpiredSignature",
176
+ "type": "error"
177
+ },
178
+ {
179
+ "inputs": [
180
+ {
181
+ "internalType": "address",
182
+ "name": "signer",
183
+ "type": "address"
184
+ },
185
+ {
186
+ "internalType": "address",
187
+ "name": "owner",
188
+ "type": "address"
189
+ }
190
+ ],
191
+ "name": "ERC2612InvalidSigner",
192
+ "type": "error"
193
+ },
194
+ {
195
+ "inputs": [],
196
+ "name": "EnforcedPause",
197
+ "type": "error"
198
+ },
199
+ {
200
+ "inputs": [],
201
+ "name": "ExpectedPause",
202
+ "type": "error"
203
+ },
204
+ {
205
+ "inputs": [
206
+ {
207
+ "internalType": "address",
208
+ "name": "account",
209
+ "type": "address"
210
+ },
211
+ {
212
+ "internalType": "uint256",
213
+ "name": "currentNonce",
214
+ "type": "uint256"
215
+ }
216
+ ],
217
+ "name": "InvalidAccountNonce",
218
+ "type": "error"
219
+ },
220
+ {
221
+ "inputs": [],
222
+ "name": "InvalidShortString",
223
+ "type": "error"
224
+ },
225
+ {
226
+ "inputs": [
227
+ {
228
+ "internalType": "string",
229
+ "name": "str",
230
+ "type": "string"
231
+ }
232
+ ],
233
+ "name": "StringTooLong",
234
+ "type": "error"
235
+ },
236
+ {
237
+ "anonymous": false,
238
+ "inputs": [
239
+ {
240
+ "indexed": true,
241
+ "internalType": "address",
242
+ "name": "owner",
243
+ "type": "address"
244
+ },
245
+ {
246
+ "indexed": true,
247
+ "internalType": "address",
248
+ "name": "spender",
249
+ "type": "address"
250
+ },
251
+ {
252
+ "indexed": false,
253
+ "internalType": "uint256",
254
+ "name": "value",
255
+ "type": "uint256"
256
+ }
257
+ ],
258
+ "name": "Approval",
259
+ "type": "event"
260
+ },
261
+ {
262
+ "anonymous": false,
263
+ "inputs": [
264
+ {
265
+ "indexed": false,
266
+ "internalType": "address",
267
+ "name": "authority",
268
+ "type": "address"
269
+ }
270
+ ],
271
+ "name": "AuthorityUpdated",
272
+ "type": "event"
273
+ },
274
+ {
275
+ "anonymous": false,
276
+ "inputs": [],
277
+ "name": "EIP712DomainChanged",
278
+ "type": "event"
279
+ },
280
+ {
281
+ "anonymous": false,
282
+ "inputs": [
283
+ {
284
+ "indexed": false,
285
+ "internalType": "address",
286
+ "name": "account",
287
+ "type": "address"
288
+ }
289
+ ],
290
+ "name": "Paused",
291
+ "type": "event"
292
+ },
293
+ {
294
+ "anonymous": false,
295
+ "inputs": [
296
+ {
297
+ "indexed": true,
298
+ "internalType": "address",
299
+ "name": "from",
300
+ "type": "address"
301
+ },
302
+ {
303
+ "indexed": true,
304
+ "internalType": "address",
305
+ "name": "to",
306
+ "type": "address"
307
+ },
308
+ {
309
+ "indexed": false,
310
+ "internalType": "uint256",
311
+ "name": "value",
312
+ "type": "uint256"
313
+ }
314
+ ],
315
+ "name": "Transfer",
316
+ "type": "event"
317
+ },
318
+ {
319
+ "anonymous": false,
320
+ "inputs": [
321
+ {
322
+ "indexed": false,
323
+ "internalType": "address",
324
+ "name": "account",
325
+ "type": "address"
326
+ }
327
+ ],
328
+ "name": "Unpaused",
329
+ "type": "event"
330
+ },
331
+ {
332
+ "inputs": [],
333
+ "name": "DOMAIN_SEPARATOR",
334
+ "outputs": [
335
+ {
336
+ "internalType": "bytes32",
337
+ "name": "",
338
+ "type": "bytes32"
339
+ }
340
+ ],
341
+ "stateMutability": "view",
342
+ "type": "function"
343
+ },
344
+ {
345
+ "inputs": [
346
+ {
347
+ "internalType": "address",
348
+ "name": "owner",
349
+ "type": "address"
350
+ },
351
+ {
352
+ "internalType": "address",
353
+ "name": "spender",
354
+ "type": "address"
355
+ }
356
+ ],
357
+ "name": "allowance",
358
+ "outputs": [
359
+ {
360
+ "internalType": "uint256",
361
+ "name": "",
362
+ "type": "uint256"
363
+ }
364
+ ],
365
+ "stateMutability": "view",
366
+ "type": "function"
367
+ },
368
+ {
369
+ "inputs": [
370
+ {
371
+ "internalType": "address",
372
+ "name": "spender",
373
+ "type": "address"
374
+ },
375
+ {
376
+ "internalType": "uint256",
377
+ "name": "value",
378
+ "type": "uint256"
379
+ }
380
+ ],
381
+ "name": "approve",
382
+ "outputs": [
383
+ {
384
+ "internalType": "bool",
385
+ "name": "",
386
+ "type": "bool"
387
+ }
388
+ ],
389
+ "stateMutability": "nonpayable",
390
+ "type": "function"
391
+ },
392
+ {
393
+ "inputs": [],
394
+ "name": "authority",
395
+ "outputs": [
396
+ {
397
+ "internalType": "address",
398
+ "name": "",
399
+ "type": "address"
400
+ }
401
+ ],
402
+ "stateMutability": "view",
403
+ "type": "function"
404
+ },
405
+ {
406
+ "inputs": [
407
+ {
408
+ "internalType": "address",
409
+ "name": "account",
410
+ "type": "address"
411
+ }
412
+ ],
413
+ "name": "balanceOf",
414
+ "outputs": [
415
+ {
416
+ "internalType": "uint256",
417
+ "name": "",
418
+ "type": "uint256"
419
+ }
420
+ ],
421
+ "stateMutability": "view",
422
+ "type": "function"
423
+ },
424
+ {
425
+ "inputs": [
426
+ {
427
+ "internalType": "uint256",
428
+ "name": "value",
429
+ "type": "uint256"
430
+ }
431
+ ],
432
+ "name": "burn",
433
+ "outputs": [],
434
+ "stateMutability": "nonpayable",
435
+ "type": "function"
436
+ },
437
+ {
438
+ "inputs": [
439
+ {
440
+ "internalType": "address",
441
+ "name": "account",
442
+ "type": "address"
443
+ },
444
+ {
445
+ "internalType": "uint256",
446
+ "name": "value",
447
+ "type": "uint256"
448
+ }
449
+ ],
450
+ "name": "burnFrom",
451
+ "outputs": [],
452
+ "stateMutability": "nonpayable",
453
+ "type": "function"
454
+ },
455
+ {
456
+ "inputs": [],
457
+ "name": "decimals",
458
+ "outputs": [
459
+ {
460
+ "internalType": "uint8",
461
+ "name": "",
462
+ "type": "uint8"
463
+ }
464
+ ],
465
+ "stateMutability": "view",
466
+ "type": "function"
467
+ },
468
+ {
469
+ "inputs": [],
470
+ "name": "eip712Domain",
471
+ "outputs": [
472
+ {
473
+ "internalType": "bytes1",
474
+ "name": "fields",
475
+ "type": "bytes1"
476
+ },
477
+ {
478
+ "internalType": "string",
479
+ "name": "name",
480
+ "type": "string"
481
+ },
482
+ {
483
+ "internalType": "string",
484
+ "name": "version",
485
+ "type": "string"
486
+ },
487
+ {
488
+ "internalType": "uint256",
489
+ "name": "chainId",
490
+ "type": "uint256"
491
+ },
492
+ {
493
+ "internalType": "address",
494
+ "name": "verifyingContract",
495
+ "type": "address"
496
+ },
497
+ {
498
+ "internalType": "bytes32",
499
+ "name": "salt",
500
+ "type": "bytes32"
501
+ },
502
+ {
503
+ "internalType": "uint256[]",
504
+ "name": "extensions",
505
+ "type": "uint256[]"
506
+ }
507
+ ],
508
+ "stateMutability": "view",
509
+ "type": "function"
510
+ },
511
+ {
512
+ "inputs": [],
513
+ "name": "isConsumingScheduledOp",
514
+ "outputs": [
515
+ {
516
+ "internalType": "bytes4",
517
+ "name": "",
518
+ "type": "bytes4"
519
+ }
520
+ ],
521
+ "stateMutability": "view",
522
+ "type": "function"
523
+ },
524
+ {
525
+ "inputs": [],
526
+ "name": "name",
527
+ "outputs": [
528
+ {
529
+ "internalType": "string",
530
+ "name": "",
531
+ "type": "string"
532
+ }
533
+ ],
534
+ "stateMutability": "view",
535
+ "type": "function"
536
+ },
537
+ {
538
+ "inputs": [
539
+ {
540
+ "internalType": "address",
541
+ "name": "owner",
542
+ "type": "address"
543
+ }
544
+ ],
545
+ "name": "nonces",
546
+ "outputs": [
547
+ {
548
+ "internalType": "uint256",
549
+ "name": "",
550
+ "type": "uint256"
551
+ }
552
+ ],
553
+ "stateMutability": "view",
554
+ "type": "function"
555
+ },
556
+ {
557
+ "inputs": [],
558
+ "name": "pause",
559
+ "outputs": [],
560
+ "stateMutability": "nonpayable",
561
+ "type": "function"
562
+ },
563
+ {
564
+ "inputs": [],
565
+ "name": "paused",
566
+ "outputs": [
567
+ {
568
+ "internalType": "bool",
569
+ "name": "",
570
+ "type": "bool"
571
+ }
572
+ ],
573
+ "stateMutability": "view",
574
+ "type": "function"
575
+ },
576
+ {
577
+ "inputs": [
578
+ {
579
+ "internalType": "address",
580
+ "name": "owner",
581
+ "type": "address"
582
+ },
583
+ {
584
+ "internalType": "address",
585
+ "name": "spender",
586
+ "type": "address"
587
+ },
588
+ {
589
+ "internalType": "uint256",
590
+ "name": "value",
591
+ "type": "uint256"
592
+ },
593
+ {
594
+ "internalType": "uint256",
595
+ "name": "deadline",
596
+ "type": "uint256"
597
+ },
598
+ {
599
+ "internalType": "uint8",
600
+ "name": "v",
601
+ "type": "uint8"
602
+ },
603
+ {
604
+ "internalType": "bytes32",
605
+ "name": "r",
606
+ "type": "bytes32"
607
+ },
608
+ {
609
+ "internalType": "bytes32",
610
+ "name": "s",
611
+ "type": "bytes32"
612
+ }
613
+ ],
614
+ "name": "permit",
615
+ "outputs": [],
616
+ "stateMutability": "nonpayable",
617
+ "type": "function"
618
+ },
619
+ {
620
+ "inputs": [
621
+ {
622
+ "internalType": "address",
623
+ "name": "newAuthority",
624
+ "type": "address"
625
+ }
626
+ ],
627
+ "name": "setAuthority",
628
+ "outputs": [],
629
+ "stateMutability": "nonpayable",
630
+ "type": "function"
631
+ },
632
+ {
633
+ "inputs": [],
634
+ "name": "symbol",
635
+ "outputs": [
636
+ {
637
+ "internalType": "string",
638
+ "name": "",
639
+ "type": "string"
640
+ }
641
+ ],
642
+ "stateMutability": "view",
643
+ "type": "function"
644
+ },
645
+ {
646
+ "inputs": [],
647
+ "name": "totalSupply",
648
+ "outputs": [
649
+ {
650
+ "internalType": "uint256",
651
+ "name": "",
652
+ "type": "uint256"
653
+ }
654
+ ],
655
+ "stateMutability": "view",
656
+ "type": "function"
657
+ },
658
+ {
659
+ "inputs": [
660
+ {
661
+ "internalType": "address",
662
+ "name": "to",
663
+ "type": "address"
664
+ },
665
+ {
666
+ "internalType": "uint256",
667
+ "name": "value",
668
+ "type": "uint256"
669
+ }
670
+ ],
671
+ "name": "transfer",
672
+ "outputs": [
673
+ {
674
+ "internalType": "bool",
675
+ "name": "",
676
+ "type": "bool"
677
+ }
678
+ ],
679
+ "stateMutability": "nonpayable",
680
+ "type": "function"
681
+ },
682
+ {
683
+ "inputs": [
684
+ {
685
+ "internalType": "address",
686
+ "name": "from",
687
+ "type": "address"
688
+ },
689
+ {
690
+ "internalType": "address",
691
+ "name": "to",
692
+ "type": "address"
693
+ },
694
+ {
695
+ "internalType": "uint256",
696
+ "name": "value",
697
+ "type": "uint256"
698
+ }
699
+ ],
700
+ "name": "transferFrom",
701
+ "outputs": [
702
+ {
703
+ "internalType": "bool",
704
+ "name": "",
705
+ "type": "bool"
706
+ }
707
+ ],
708
+ "stateMutability": "nonpayable",
709
+ "type": "function"
710
+ },
711
+ {
712
+ "inputs": [],
713
+ "name": "unpause",
714
+ "outputs": [],
715
+ "stateMutability": "nonpayable",
716
+ "type": "function"
717
+ }
718
+ ],
719
+ "bytecode": "0x6101606040523480156200001257600080fd5b50604051620037af380380620037af8339818101604052810190620000389190620007d7565b6040518060400160405280600981526020017f54657374546f6b656e0000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250836040518060400160405280600981526020017f54657374546f6b656e00000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5445535400000000000000000000000000000000000000000000000000000000815250816003908162000123919062000a83565b50806004908162000135919062000a83565b5050506000600560006101000a81548160ff02191690831515021790555062000164816200025d60201b60201c565b506200017b600683620002da60201b90919060201c565b610120818152505062000199600782620002da60201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a08181525050620001d86200033260201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505050505062000256816200022b6200038f60201b60201c565b600a62000239919062000cfa565b633b9aca006200024a919062000d4b565b6200039860201b60201c565b5062001037565b80600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad81604051620002cf919062000da7565b60405180910390a150565b60006020835110156200030057620002f8836200042560201b60201c565b90506200032c565b8262000312836200049260201b60201c565b600001908162000323919062000a83565b5060ff60001b90505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016200037495949392919062000df0565b60405160208183030381529060405280519060200120905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200040d5760006040517fec442f0500000000000000000000000000000000000000000000000000000000815260040162000404919062000da7565b60405180910390fd5b62000421600083836200049c60201b60201c565b5050565b600080829050601f815111156200047557826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016200046c919062000edc565b60405180910390fd5b805181620004839062000f32565b60001c1760001b915050919050565b6000819050919050565b620004af838383620004b460201b60201c565b505050565b620004c4620004dc60201b60201c565b620004d78383836200052660201b60201c565b505050565b620004ec6200075660201b60201c565b1562000524576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200057c5780600260008282546200056f919062000fa2565b9250508190555062000652565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156200060b578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620006029392919062000fdd565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200069d5780600260008282540392505081905550620006ea565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200074991906200101a565b60405180910390a3505050565b6000600560009054906101000a900460ff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200079f8262000772565b9050919050565b620007b18162000792565b8114620007bd57600080fd5b50565b600081519050620007d181620007a6565b92915050565b600060208284031215620007f057620007ef6200076d565b5b60006200080084828501620007c0565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200088b57607f821691505b602082108103620008a157620008a062000843565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200090b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008cc565b620009178683620008cc565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620009646200095e62000958846200092f565b62000939565b6200092f565b9050919050565b6000819050919050565b620009808362000943565b620009986200098f826200096b565b848454620008d9565b825550505050565b600090565b620009af620009a0565b620009bc81848462000975565b505050565b5b81811015620009e457620009d8600082620009a5565b600181019050620009c2565b5050565b601f82111562000a3357620009fd81620008a7565b62000a0884620008bc565b8101602085101562000a18578190505b62000a3062000a2785620008bc565b830182620009c1565b50505b505050565b600082821c905092915050565b600062000a586000198460080262000a38565b1980831691505092915050565b600062000a73838362000a45565b9150826002028217905092915050565b62000a8e8262000809565b67ffffffffffffffff81111562000aaa5762000aa962000814565b5b62000ab6825462000872565b62000ac3828285620009e8565b600060209050601f83116001811462000afb576000841562000ae6578287015190505b62000af2858262000a65565b86555062000b62565b601f19841662000b0b86620008a7565b60005b8281101562000b355784890151825560018201915060208501945060208101905062000b0e565b8683101562000b55578489015162000b51601f89168262000a45565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bf85780860481111562000bd05762000bcf62000b6a565b5b600185161562000be05780820291505b808102905062000bf08562000b99565b945062000bb0565b94509492505050565b60008262000c13576001905062000ce6565b8162000c23576000905062000ce6565b816001811462000c3c576002811462000c475762000c7d565b600191505062000ce6565b60ff84111562000c5c5762000c5b62000b6a565b5b8360020a91508482111562000c765762000c7562000b6a565b5b5062000ce6565b5060208310610133831016604e8410600b841016171562000cb75782820a90508381111562000cb15762000cb062000b6a565b5b62000ce6565b62000cc6848484600162000ba6565b9250905081840481111562000ce05762000cdf62000b6a565b5b81810290505b9392505050565b600060ff82169050919050565b600062000d07826200092f565b915062000d148362000ced565b925062000d437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000c01565b905092915050565b600062000d58826200092f565b915062000d65836200092f565b925082820262000d75816200092f565b9150828204841483151762000d8f5762000d8e62000b6a565b5b5092915050565b62000da18162000792565b82525050565b600060208201905062000dbe600083018462000d96565b92915050565b6000819050919050565b62000dd98162000dc4565b82525050565b62000dea816200092f565b82525050565b600060a08201905062000e07600083018862000dce565b62000e16602083018762000dce565b62000e25604083018662000dce565b62000e34606083018562000ddf565b62000e43608083018462000d96565b9695505050505050565b600082825260208201905092915050565b60005b8381101562000e7e57808201518184015260208101905062000e61565b60008484015250505050565b6000601f19601f8301169050919050565b600062000ea88262000809565b62000eb4818562000e4d565b935062000ec681856020860162000e5e565b62000ed18162000e8a565b840191505092915050565b6000602082019050818103600083015262000ef8818462000e9b565b905092915050565b600081519050919050565b6000819050602082019050919050565b600062000f29825162000dc4565b80915050919050565b600062000f3f8262000f00565b8262000f4b8462000f0b565b905062000f588162000f1b565b9250602082101562000f9b5762000f967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83602003600802620008cc565b831692505b5050919050565b600062000faf826200092f565b915062000fbc836200092f565b925082820190508082111562000fd75762000fd662000b6a565b5b92915050565b600060608201905062000ff4600083018662000d96565b62001003602083018562000ddf565b62001012604083018462000ddf565b949350505050565b600060208201905062001031600083018462000ddf565b92915050565b60805160a05160c05160e05161010051610120516101405161271d62001092600039600061104d015260006110120152600061134d0152600061132c01526000610bfb01526000610c5101526000610c7a015261271d6000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c806379cc6790116100b85780638fb360371161007c5780638fb360371461031e57806395d89b411461033c578063a9059cbb1461035a578063bf7e214f1461038a578063d505accf146103a8578063dd62ed3e146103c457610137565b806379cc6790146102885780637a9e5e4b146102a45780637ecebe00146102c05780638456cb59146102f057806384b0196e146102fa57610137565b80633644e515116100ff5780633644e515146101f65780633f4ba83a1461021457806342966c681461021e5780635c975abb1461023a57806370a082311461025857610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806323b872dd146101a8578063313ce567146101d8575b600080fd5b6101446103f4565b6040516101519190611c1e565b60405180910390f35b610174600480360381019061016f9190611cd9565b610486565b6040516101819190611d34565b60405180910390f35b6101926104a9565b60405161019f9190611d5e565b60405180910390f35b6101c260048036038101906101bd9190611d79565b6104b3565b6040516101cf9190611d34565b60405180910390f35b6101e06104e2565b6040516101ed9190611de8565b60405180910390f35b6101fe6104eb565b60405161020b9190611e1c565b60405180910390f35b61021c6104fa565b005b61023860048036038101906102339190611e37565b61051c565b005b610242610530565b60405161024f9190611d34565b60405180910390f35b610272600480360381019061026d9190611e64565b610547565b60405161027f9190611d5e565b60405180910390f35b6102a2600480360381019061029d9190611cd9565b61058f565b005b6102be60048036038101906102b99190611e64565b6105af565b005b6102da60048036038101906102d59190611e64565b61069b565b6040516102e79190611d5e565b60405180910390f35b6102f86106ad565b005b6103026106cf565b6040516103159796959493929190611f99565b60405180910390f35b610326610779565b6040516103339190612058565b60405180910390f35b6103446107a7565b6040516103519190611c1e565b60405180910390f35b610374600480360381019061036f9190611cd9565b610839565b6040516103819190611d34565b60405180910390f35b61039261085c565b60405161039f9190612073565b60405180910390f35b6103c260048036038101906103bd91906120e6565b610886565b005b6103de60048036038101906103d99190612188565b6109ce565b6040516103eb9190611d5e565b60405180910390f35b606060038054610403906121f7565b80601f016020809104026020016040519081016040528092919081815260200182805461042f906121f7565b801561047c5780601f106104515761010080835404028352916020019161047c565b820191906000526020600020905b81548152906001019060200180831161045f57829003601f168201915b5050505050905090565b600080610491610a55565b905061049e818585610a5d565b600191505092915050565b6000600254905090565b6000806104be610a55565b90506104cb858285610a6f565b6104d6858585610b03565b60019150509392505050565b60006012905090565b60006104f5610bf7565b905090565b610512610505610a55565b61050d610cae565b610cbb565b61051a610dfd565b565b61052d610527610a55565b82610e60565b50565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105a18261059b610a55565b83610a6f565b6105ab8282610e60565b5050565b60006105b9610a55565b90506105c361085c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461063257806040517f068ca9d80000000000000000000000000000000000000000000000000000000081526004016106299190612073565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff163b0361068e57816040517fc2f31e5e0000000000000000000000000000000000000000000000000000000081526004016106859190612073565b60405180910390fd5b61069782610ee2565b5050565b60006106a682610f5d565b9050919050565b6106c56106b8610a55565b6106c0610cae565b610cbb565b6106cd610fa6565b565b6000606080600080600060606106e3611009565b6106eb611044565b46306000801b600067ffffffffffffffff81111561070c5761070b612228565b5b60405190808252806020026020018201604052801561073a5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b6000600560159054906101000a900460ff1661079957600060e01b6107a2565b638fb3603760e01b5b905090565b6060600480546107b6906121f7565b80601f01602080910402602001604051908101604052809291908181526020018280546107e2906121f7565b801561082f5780601f106108045761010080835404028352916020019161082f565b820191906000526020600020905b81548152906001019060200180831161081257829003601f168201915b5050505050905090565b600080610844610a55565b9050610851818585610b03565b600191505092915050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b834211156108cb57836040517f627913020000000000000000000000000000000000000000000000000000000081526004016108c29190611d5e565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886108fa8c61107f565b8960405160200161091096959493929190612257565b6040516020818303038152906040528051906020012090506000610933826110d6565b90506000610943828787876110f0565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109b757808a6040517f4b800e460000000000000000000000000000000000000000000000000000000081526004016109ae9291906122b8565b60405180910390fd5b6109c28a8a8a610a5d565b50505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b610a6a8383836001611120565b505050565b6000610a7b84846109ce565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610afd5781811015610aed578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610ae4939291906122e1565b60405180910390fd5b610afc84848484036000611120565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b755760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610b6c9190612073565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610be75760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610bde9190612073565b60405180910390fd5b610bf28383836112f7565b505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015610c7357507f000000000000000000000000000000000000000000000000000000000000000046145b15610ca0577f00000000000000000000000000000000000000000000000000000000000000009050610cab565b610ca8611307565b90505b90565b3660008036915091509091565b600080610cef610cc961085c565b86308787600090600492610cdf93929190612322565b90610cea9190612375565b61139d565b9150915081610df65760008163ffffffff161115610db8576001600560156101000a81548160ff021916908315150217905550610d2a61085c565b73ffffffffffffffffffffffffffffffffffffffff166394c7d7ee8686866040518463ffffffff1660e01b8152600401610d6693929190612421565b600060405180830381600087803b158015610d8057600080fd5b505af1158015610d94573d6000803e3d6000fd5b505050506000600560156101000a81548160ff021916908315150217905550610df5565b846040517f068ca9d8000000000000000000000000000000000000000000000000000000008152600401610dec9190612073565b60405180910390fd5b5b5050505050565b610e056114c3565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610e49610a55565b604051610e569190612073565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ed25760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610ec99190612073565b60405180910390fd5b610ede826000836112f7565b5050565b80600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad81604051610f529190612073565b60405180910390a150565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fae611503565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ff2610a55565b604051610fff9190612073565b60405180910390a1565b606061103f60067f000000000000000000000000000000000000000000000000000000000000000061154490919063ffffffff16565b905090565b606061107a60077f000000000000000000000000000000000000000000000000000000000000000061154490919063ffffffff16565b905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050559050919050565b60006110e96110e3610bf7565b836115f4565b9050919050565b60008060008061110288888888611635565b9250925092506111128282611729565b829350505050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036111925760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016111899190612073565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112045760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016111fb9190612073565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156112f1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112e89190611d5e565b60405180910390a35b50505050565b61130283838361188d565b505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611382959493929190612453565b60405160208183030381529060405280519060200120905090565b6000806000808773ffffffffffffffffffffffffffffffffffffffff168787876040516024016113cf939291906124a6565b60405160208183030381529060405263b700961360e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516114219190612524565b600060405180830381855afa9150503d806000811461145c576040519150601f19603f3d011682016040523d82523d6000602084013e611461565b606091505b509150915081156114b8576040815110611496578080602001905181019061148991906125a3565b80945081955050506114b7565b60208151106114b657808060200190518101906114b391906125e3565b93505b5b5b505094509492505050565b6114cb610530565b611501576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61150b610530565b15611542576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b606060ff60001b83146115615761155a836118a5565b90506115ee565b81805461156d906121f7565b80601f0160208091040260200160405190810160405280929190818152602001828054611599906121f7565b80156115e65780601f106115bb576101008083540402835291602001916115e6565b820191906000526020600020905b8154815290600101906020018083116115c957829003601f168201915b505050505090505b92915050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c111561167557600060038592509250925061171f565b60006001888888886040516000815260200160405260405161169a9493929190612610565b6020604051602081039080840390855afa1580156116bc573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361171057600060016000801b9350935093505061171f565b8060008060001b935093509350505b9450945094915050565b6000600381111561173d5761173c612655565b5b8260038111156117505761174f612655565b5b0315611889576001600381111561176a57611769612655565b5b82600381111561177d5761177c612655565b5b036117b4576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156117c8576117c7612655565b5b8260038111156117db576117da612655565b5b03611820578060001c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016118179190611d5e565b60405180910390fd5b60038081111561183357611832612655565b5b82600381111561184657611845612655565b5b0361188857806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161187f9190611e1c565b60405180910390fd5b5b5050565b611895611503565b6118a0838383611919565b505050565b606060006118b283611b3e565b90506000602067ffffffffffffffff8111156118d1576118d0612228565b5b6040519080825280601f01601f1916602001820160405280156119035781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361196b57806002600082825461195f91906126b3565b92505081905550611a3e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156119f7578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016119ee939291906122e1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a875780600260008282540392505081905550611ad4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b319190611d5e565b60405180910390a3505050565b60008060ff8360001c169050601f811115611b85576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611bc8578082015181840152602081019050611bad565b60008484015250505050565b6000601f19601f8301169050919050565b6000611bf082611b8e565b611bfa8185611b99565b9350611c0a818560208601611baa565b611c1381611bd4565b840191505092915050565b60006020820190508181036000830152611c388184611be5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c7082611c45565b9050919050565b611c8081611c65565b8114611c8b57600080fd5b50565b600081359050611c9d81611c77565b92915050565b6000819050919050565b611cb681611ca3565b8114611cc157600080fd5b50565b600081359050611cd381611cad565b92915050565b60008060408385031215611cf057611cef611c40565b5b6000611cfe85828601611c8e565b9250506020611d0f85828601611cc4565b9150509250929050565b60008115159050919050565b611d2e81611d19565b82525050565b6000602082019050611d496000830184611d25565b92915050565b611d5881611ca3565b82525050565b6000602082019050611d736000830184611d4f565b92915050565b600080600060608486031215611d9257611d91611c40565b5b6000611da086828701611c8e565b9350506020611db186828701611c8e565b9250506040611dc286828701611cc4565b9150509250925092565b600060ff82169050919050565b611de281611dcc565b82525050565b6000602082019050611dfd6000830184611dd9565b92915050565b6000819050919050565b611e1681611e03565b82525050565b6000602082019050611e316000830184611e0d565b92915050565b600060208284031215611e4d57611e4c611c40565b5b6000611e5b84828501611cc4565b91505092915050565b600060208284031215611e7a57611e79611c40565b5b6000611e8884828501611c8e565b91505092915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b611ec681611e91565b82525050565b611ed581611c65565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611f1081611ca3565b82525050565b6000611f228383611f07565b60208301905092915050565b6000602082019050919050565b6000611f4682611edb565b611f508185611ee6565b9350611f5b83611ef7565b8060005b83811015611f8c578151611f738882611f16565b9750611f7e83611f2e565b925050600181019050611f5f565b5085935050505092915050565b600060e082019050611fae600083018a611ebd565b8181036020830152611fc08189611be5565b90508181036040830152611fd48188611be5565b9050611fe36060830187611d4f565b611ff06080830186611ecc565b611ffd60a0830185611e0d565b81810360c083015261200f8184611f3b565b905098975050505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6120528161201d565b82525050565b600060208201905061206d6000830184612049565b92915050565b60006020820190506120886000830184611ecc565b92915050565b61209781611dcc565b81146120a257600080fd5b50565b6000813590506120b48161208e565b92915050565b6120c381611e03565b81146120ce57600080fd5b50565b6000813590506120e0816120ba565b92915050565b600080600080600080600060e0888a03121561210557612104611c40565b5b60006121138a828b01611c8e565b97505060206121248a828b01611c8e565b96505060406121358a828b01611cc4565b95505060606121468a828b01611cc4565b94505060806121578a828b016120a5565b93505060a06121688a828b016120d1565b92505060c06121798a828b016120d1565b91505092959891949750929550565b6000806040838503121561219f5761219e611c40565b5b60006121ad85828601611c8e565b92505060206121be85828601611c8e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061220f57607f821691505b602082108103612222576122216121c8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060c08201905061226c6000830189611e0d565b6122796020830188611ecc565b6122866040830187611ecc565b6122936060830186611d4f565b6122a06080830185611d4f565b6122ad60a0830184611d4f565b979650505050505050565b60006040820190506122cd6000830185611ecc565b6122da6020830184611ecc565b9392505050565b60006060820190506122f66000830186611ecc565b6123036020830185611d4f565b6123106040830184611d4f565b949350505050565b600080fd5b600080fd5b6000808585111561233657612335612318565b5b838611156123475761234661231d565b5b6001850283019150848603905094509492505050565b600082905092915050565b600082821b905092915050565b6000612381838361235d565b8261238c813561201d565b925060048210156123cc576123c77fffffffff0000000000000000000000000000000000000000000000000000000083600403600802612368565b831692505b505092915050565b600082825260208201905092915050565b82818337600083830152505050565b600061240083856123d4565b935061240d8385846123e5565b61241683611bd4565b840190509392505050565b60006040820190506124366000830186611ecc565b81810360208301526124498184866123f4565b9050949350505050565b600060a0820190506124686000830188611e0d565b6124756020830187611e0d565b6124826040830186611e0d565b61248f6060830185611d4f565b61249c6080830184611ecc565b9695505050505050565b60006060820190506124bb6000830186611ecc565b6124c86020830185611ecc565b6124d56040830184612049565b949350505050565b600081519050919050565b600081905092915050565b60006124fe826124dd565b61250881856124e8565b9350612518818560208601611baa565b80840191505092915050565b600061253082846124f3565b915081905092915050565b61254481611d19565b811461254f57600080fd5b50565b6000815190506125618161253b565b92915050565b600063ffffffff82169050919050565b61258081612567565b811461258b57600080fd5b50565b60008151905061259d81612577565b92915050565b600080604083850312156125ba576125b9611c40565b5b60006125c885828601612552565b92505060206125d98582860161258e565b9150509250929050565b6000602082840312156125f9576125f8611c40565b5b600061260784828501612552565b91505092915050565b60006080820190506126256000830187611e0d565b6126326020830186611dd9565b61263f6040830185611e0d565b61264c6060830184611e0d565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126be82611ca3565b91506126c983611ca3565b92508282019050808211156126e1576126e0612684565b5b9291505056fea264697066735822122045fea481117cf152b431bd713dff77c7aafc71d393f626589301501d861beb8764736f6c63430008140033",
720
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101375760003560e01c806379cc6790116100b85780638fb360371161007c5780638fb360371461031e57806395d89b411461033c578063a9059cbb1461035a578063bf7e214f1461038a578063d505accf146103a8578063dd62ed3e146103c457610137565b806379cc6790146102885780637a9e5e4b146102a45780637ecebe00146102c05780638456cb59146102f057806384b0196e146102fa57610137565b80633644e515116100ff5780633644e515146101f65780633f4ba83a1461021457806342966c681461021e5780635c975abb1461023a57806370a082311461025857610137565b806306fdde031461013c578063095ea7b31461015a57806318160ddd1461018a57806323b872dd146101a8578063313ce567146101d8575b600080fd5b6101446103f4565b6040516101519190611c1e565b60405180910390f35b610174600480360381019061016f9190611cd9565b610486565b6040516101819190611d34565b60405180910390f35b6101926104a9565b60405161019f9190611d5e565b60405180910390f35b6101c260048036038101906101bd9190611d79565b6104b3565b6040516101cf9190611d34565b60405180910390f35b6101e06104e2565b6040516101ed9190611de8565b60405180910390f35b6101fe6104eb565b60405161020b9190611e1c565b60405180910390f35b61021c6104fa565b005b61023860048036038101906102339190611e37565b61051c565b005b610242610530565b60405161024f9190611d34565b60405180910390f35b610272600480360381019061026d9190611e64565b610547565b60405161027f9190611d5e565b60405180910390f35b6102a2600480360381019061029d9190611cd9565b61058f565b005b6102be60048036038101906102b99190611e64565b6105af565b005b6102da60048036038101906102d59190611e64565b61069b565b6040516102e79190611d5e565b60405180910390f35b6102f86106ad565b005b6103026106cf565b6040516103159796959493929190611f99565b60405180910390f35b610326610779565b6040516103339190612058565b60405180910390f35b6103446107a7565b6040516103519190611c1e565b60405180910390f35b610374600480360381019061036f9190611cd9565b610839565b6040516103819190611d34565b60405180910390f35b61039261085c565b60405161039f9190612073565b60405180910390f35b6103c260048036038101906103bd91906120e6565b610886565b005b6103de60048036038101906103d99190612188565b6109ce565b6040516103eb9190611d5e565b60405180910390f35b606060038054610403906121f7565b80601f016020809104026020016040519081016040528092919081815260200182805461042f906121f7565b801561047c5780601f106104515761010080835404028352916020019161047c565b820191906000526020600020905b81548152906001019060200180831161045f57829003601f168201915b5050505050905090565b600080610491610a55565b905061049e818585610a5d565b600191505092915050565b6000600254905090565b6000806104be610a55565b90506104cb858285610a6f565b6104d6858585610b03565b60019150509392505050565b60006012905090565b60006104f5610bf7565b905090565b610512610505610a55565b61050d610cae565b610cbb565b61051a610dfd565b565b61052d610527610a55565b82610e60565b50565b6000600560009054906101000a900460ff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105a18261059b610a55565b83610a6f565b6105ab8282610e60565b5050565b60006105b9610a55565b90506105c361085c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461063257806040517f068ca9d80000000000000000000000000000000000000000000000000000000081526004016106299190612073565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff163b0361068e57816040517fc2f31e5e0000000000000000000000000000000000000000000000000000000081526004016106859190612073565b60405180910390fd5b61069782610ee2565b5050565b60006106a682610f5d565b9050919050565b6106c56106b8610a55565b6106c0610cae565b610cbb565b6106cd610fa6565b565b6000606080600080600060606106e3611009565b6106eb611044565b46306000801b600067ffffffffffffffff81111561070c5761070b612228565b5b60405190808252806020026020018201604052801561073a5781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b6000600560159054906101000a900460ff1661079957600060e01b6107a2565b638fb3603760e01b5b905090565b6060600480546107b6906121f7565b80601f01602080910402602001604051908101604052809291908181526020018280546107e2906121f7565b801561082f5780601f106108045761010080835404028352916020019161082f565b820191906000526020600020905b81548152906001019060200180831161081257829003601f168201915b5050505050905090565b600080610844610a55565b9050610851818585610b03565b600191505092915050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b834211156108cb57836040517f627913020000000000000000000000000000000000000000000000000000000081526004016108c29190611d5e565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886108fa8c61107f565b8960405160200161091096959493929190612257565b6040516020818303038152906040528051906020012090506000610933826110d6565b90506000610943828787876110f0565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109b757808a6040517f4b800e460000000000000000000000000000000000000000000000000000000081526004016109ae9291906122b8565b60405180910390fd5b6109c28a8a8a610a5d565b50505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b610a6a8383836001611120565b505050565b6000610a7b84846109ce565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610afd5781811015610aed578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610ae4939291906122e1565b60405180910390fd5b610afc84848484036000611120565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b755760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610b6c9190612073565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610be75760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610bde9190612073565b60405180910390fd5b610bf28383836112f7565b505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015610c7357507f000000000000000000000000000000000000000000000000000000000000000046145b15610ca0577f00000000000000000000000000000000000000000000000000000000000000009050610cab565b610ca8611307565b90505b90565b3660008036915091509091565b600080610cef610cc961085c565b86308787600090600492610cdf93929190612322565b90610cea9190612375565b61139d565b9150915081610df65760008163ffffffff161115610db8576001600560156101000a81548160ff021916908315150217905550610d2a61085c565b73ffffffffffffffffffffffffffffffffffffffff166394c7d7ee8686866040518463ffffffff1660e01b8152600401610d6693929190612421565b600060405180830381600087803b158015610d8057600080fd5b505af1158015610d94573d6000803e3d6000fd5b505050506000600560156101000a81548160ff021916908315150217905550610df5565b846040517f068ca9d8000000000000000000000000000000000000000000000000000000008152600401610dec9190612073565b60405180910390fd5b5b5050505050565b610e056114c3565b6000600560006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610e49610a55565b604051610e569190612073565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ed25760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610ec99190612073565b60405180910390fd5b610ede826000836112f7565b5050565b80600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad81604051610f529190612073565b60405180910390a150565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fae611503565b6001600560006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610ff2610a55565b604051610fff9190612073565b60405180910390a1565b606061103f60067f000000000000000000000000000000000000000000000000000000000000000061154490919063ffffffff16565b905090565b606061107a60077f000000000000000000000000000000000000000000000000000000000000000061154490919063ffffffff16565b905090565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050559050919050565b60006110e96110e3610bf7565b836115f4565b9050919050565b60008060008061110288888888611635565b9250925092506111128282611729565b829350505050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036111925760006040517fe602df050000000000000000000000000000000000000000000000000000000081526004016111899190612073565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112045760006040517f94280d620000000000000000000000000000000000000000000000000000000081526004016111fb9190612073565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156112f1578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516112e89190611d5e565b60405180910390a35b50505050565b61130283838361188d565b505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001611382959493929190612453565b60405160208183030381529060405280519060200120905090565b6000806000808773ffffffffffffffffffffffffffffffffffffffff168787876040516024016113cf939291906124a6565b60405160208183030381529060405263b700961360e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516114219190612524565b600060405180830381855afa9150503d806000811461145c576040519150601f19603f3d011682016040523d82523d6000602084013e611461565b606091505b509150915081156114b8576040815110611496578080602001905181019061148991906125a3565b80945081955050506114b7565b60208151106114b657808060200190518101906114b391906125e3565b93505b5b5b505094509492505050565b6114cb610530565b611501576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b61150b610530565b15611542576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b565b606060ff60001b83146115615761155a836118a5565b90506115ee565b81805461156d906121f7565b80601f0160208091040260200160405190810160405280929190818152602001828054611599906121f7565b80156115e65780601f106115bb576101008083540402835291602001916115e6565b820191906000526020600020905b8154815290600101906020018083116115c957829003601f168201915b505050505090505b92915050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c111561167557600060038592509250925061171f565b60006001888888886040516000815260200160405260405161169a9493929190612610565b6020604051602081039080840390855afa1580156116bc573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361171057600060016000801b9350935093505061171f565b8060008060001b935093509350505b9450945094915050565b6000600381111561173d5761173c612655565b5b8260038111156117505761174f612655565b5b0315611889576001600381111561176a57611769612655565b5b82600381111561177d5761177c612655565b5b036117b4576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156117c8576117c7612655565b5b8260038111156117db576117da612655565b5b03611820578060001c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016118179190611d5e565b60405180910390fd5b60038081111561183357611832612655565b5b82600381111561184657611845612655565b5b0361188857806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161187f9190611e1c565b60405180910390fd5b5b5050565b611895611503565b6118a0838383611919565b505050565b606060006118b283611b3e565b90506000602067ffffffffffffffff8111156118d1576118d0612228565b5b6040519080825280601f01601f1916602001820160405280156119035781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361196b57806002600082825461195f91906126b3565b92505081905550611a3e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156119f7578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016119ee939291906122e1565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a875780600260008282540392505081905550611ad4565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b319190611d5e565b60405180910390a3505050565b60008060ff8360001c169050601f811115611b85576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611bc8578082015181840152602081019050611bad565b60008484015250505050565b6000601f19601f8301169050919050565b6000611bf082611b8e565b611bfa8185611b99565b9350611c0a818560208601611baa565b611c1381611bd4565b840191505092915050565b60006020820190508181036000830152611c388184611be5565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c7082611c45565b9050919050565b611c8081611c65565b8114611c8b57600080fd5b50565b600081359050611c9d81611c77565b92915050565b6000819050919050565b611cb681611ca3565b8114611cc157600080fd5b50565b600081359050611cd381611cad565b92915050565b60008060408385031215611cf057611cef611c40565b5b6000611cfe85828601611c8e565b9250506020611d0f85828601611cc4565b9150509250929050565b60008115159050919050565b611d2e81611d19565b82525050565b6000602082019050611d496000830184611d25565b92915050565b611d5881611ca3565b82525050565b6000602082019050611d736000830184611d4f565b92915050565b600080600060608486031215611d9257611d91611c40565b5b6000611da086828701611c8e565b9350506020611db186828701611c8e565b9250506040611dc286828701611cc4565b9150509250925092565b600060ff82169050919050565b611de281611dcc565b82525050565b6000602082019050611dfd6000830184611dd9565b92915050565b6000819050919050565b611e1681611e03565b82525050565b6000602082019050611e316000830184611e0d565b92915050565b600060208284031215611e4d57611e4c611c40565b5b6000611e5b84828501611cc4565b91505092915050565b600060208284031215611e7a57611e79611c40565b5b6000611e8884828501611c8e565b91505092915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b611ec681611e91565b82525050565b611ed581611c65565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611f1081611ca3565b82525050565b6000611f228383611f07565b60208301905092915050565b6000602082019050919050565b6000611f4682611edb565b611f508185611ee6565b9350611f5b83611ef7565b8060005b83811015611f8c578151611f738882611f16565b9750611f7e83611f2e565b925050600181019050611f5f565b5085935050505092915050565b600060e082019050611fae600083018a611ebd565b8181036020830152611fc08189611be5565b90508181036040830152611fd48188611be5565b9050611fe36060830187611d4f565b611ff06080830186611ecc565b611ffd60a0830185611e0d565b81810360c083015261200f8184611f3b565b905098975050505050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6120528161201d565b82525050565b600060208201905061206d6000830184612049565b92915050565b60006020820190506120886000830184611ecc565b92915050565b61209781611dcc565b81146120a257600080fd5b50565b6000813590506120b48161208e565b92915050565b6120c381611e03565b81146120ce57600080fd5b50565b6000813590506120e0816120ba565b92915050565b600080600080600080600060e0888a03121561210557612104611c40565b5b60006121138a828b01611c8e565b97505060206121248a828b01611c8e565b96505060406121358a828b01611cc4565b95505060606121468a828b01611cc4565b94505060806121578a828b016120a5565b93505060a06121688a828b016120d1565b92505060c06121798a828b016120d1565b91505092959891949750929550565b6000806040838503121561219f5761219e611c40565b5b60006121ad85828601611c8e565b92505060206121be85828601611c8e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061220f57607f821691505b602082108103612222576122216121c8565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060c08201905061226c6000830189611e0d565b6122796020830188611ecc565b6122866040830187611ecc565b6122936060830186611d4f565b6122a06080830185611d4f565b6122ad60a0830184611d4f565b979650505050505050565b60006040820190506122cd6000830185611ecc565b6122da6020830184611ecc565b9392505050565b60006060820190506122f66000830186611ecc565b6123036020830185611d4f565b6123106040830184611d4f565b949350505050565b600080fd5b600080fd5b6000808585111561233657612335612318565b5b838611156123475761234661231d565b5b6001850283019150848603905094509492505050565b600082905092915050565b600082821b905092915050565b6000612381838361235d565b8261238c813561201d565b925060048210156123cc576123c77fffffffff0000000000000000000000000000000000000000000000000000000083600403600802612368565b831692505b505092915050565b600082825260208201905092915050565b82818337600083830152505050565b600061240083856123d4565b935061240d8385846123e5565b61241683611bd4565b840190509392505050565b60006040820190506124366000830186611ecc565b81810360208301526124498184866123f4565b9050949350505050565b600060a0820190506124686000830188611e0d565b6124756020830187611e0d565b6124826040830186611e0d565b61248f6060830185611d4f565b61249c6080830184611ecc565b9695505050505050565b60006060820190506124bb6000830186611ecc565b6124c86020830185611ecc565b6124d56040830184612049565b949350505050565b600081519050919050565b600081905092915050565b60006124fe826124dd565b61250881856124e8565b9350612518818560208601611baa565b80840191505092915050565b600061253082846124f3565b915081905092915050565b61254481611d19565b811461254f57600080fd5b50565b6000815190506125618161253b565b92915050565b600063ffffffff82169050919050565b61258081612567565b811461258b57600080fd5b50565b60008151905061259d81612577565b92915050565b600080604083850312156125ba576125b9611c40565b5b60006125c885828601612552565b92505060206125d98582860161258e565b9150509250929050565b6000602082840312156125f9576125f8611c40565b5b600061260784828501612552565b91505092915050565b60006080820190506126256000830187611e0d565b6126326020830186611dd9565b61263f6040830185611e0d565b61264c6060830184611e0d565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006126be82611ca3565b91506126c983611ca3565b92508282019050808211156126e1576126e0612684565b5b9291505056fea264697066735822122045fea481117cf152b431bd713dff77c7aafc71d393f626589301501d861beb8764736f6c63430008140033",
721
+ "linkReferences": {},
722
+ "deployedLinkReferences": {},
723
+ "devdoc": {
724
+ "errors": {
725
+ "ECDSAInvalidSignature()": [
726
+ {
727
+ "details": "The signature derives the `address(0)`."
728
+ }
729
+ ],
730
+ "ECDSAInvalidSignatureLength(uint256)": [
731
+ {
732
+ "details": "The signature has an invalid length."
733
+ }
734
+ ],
735
+ "ECDSAInvalidSignatureS(bytes32)": [
736
+ {
737
+ "details": "The signature has an S value that is in the upper half order."
738
+ }
739
+ ],
740
+ "ERC20InsufficientAllowance(address,uint256,uint256)": [
741
+ {
742
+ "details": "Indicates a failure with the `spender`’s `allowance`. Used in transfers.",
743
+ "params": {
744
+ "allowance": "Amount of tokens a `spender` is allowed to operate with.",
745
+ "needed": "Minimum amount required to perform a transfer.",
746
+ "spender": "Address that may be allowed to operate on tokens without being their owner."
747
+ }
748
+ }
749
+ ],
750
+ "ERC20InsufficientBalance(address,uint256,uint256)": [
751
+ {
752
+ "details": "Indicates an error related to the current `balance` of a `sender`. Used in transfers.",
753
+ "params": {
754
+ "balance": "Current balance for the interacting account.",
755
+ "needed": "Minimum amount required to perform a transfer.",
756
+ "sender": "Address whose tokens are being transferred."
757
+ }
758
+ }
759
+ ],
760
+ "ERC20InvalidApprover(address)": [
761
+ {
762
+ "details": "Indicates a failure with the `approver` of a token to be approved. Used in approvals.",
763
+ "params": {
764
+ "approver": "Address initiating an approval operation."
765
+ }
766
+ }
767
+ ],
768
+ "ERC20InvalidReceiver(address)": [
769
+ {
770
+ "details": "Indicates a failure with the token `receiver`. Used in transfers.",
771
+ "params": {
772
+ "receiver": "Address to which tokens are being transferred."
773
+ }
774
+ }
775
+ ],
776
+ "ERC20InvalidSender(address)": [
777
+ {
778
+ "details": "Indicates a failure with the token `sender`. Used in transfers.",
779
+ "params": {
780
+ "sender": "Address whose tokens are being transferred."
781
+ }
782
+ }
783
+ ],
784
+ "ERC20InvalidSpender(address)": [
785
+ {
786
+ "details": "Indicates a failure with the `spender` to be approved. Used in approvals.",
787
+ "params": {
788
+ "spender": "Address that may be allowed to operate on tokens without being their owner."
789
+ }
790
+ }
791
+ ],
792
+ "ERC2612ExpiredSignature(uint256)": [
793
+ {
794
+ "details": "Permit deadline has expired."
795
+ }
796
+ ],
797
+ "ERC2612InvalidSigner(address,address)": [
798
+ {
799
+ "details": "Mismatched signature."
800
+ }
801
+ ],
802
+ "EnforcedPause()": [
803
+ {
804
+ "details": "The operation failed because the contract is paused."
805
+ }
806
+ ],
807
+ "ExpectedPause()": [
808
+ {
809
+ "details": "The operation failed because the contract is not paused."
810
+ }
811
+ ],
812
+ "InvalidAccountNonce(address,uint256)": [
813
+ {
814
+ "details": "The nonce used for an `account` is not the expected current nonce."
815
+ }
816
+ ]
817
+ },
818
+ "events": {
819
+ "Approval(address,address,uint256)": {
820
+ "details": "Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance."
821
+ },
822
+ "AuthorityUpdated(address)": {
823
+ "details": "Authority that manages this contract was updated."
824
+ },
825
+ "EIP712DomainChanged()": {
826
+ "details": "MAY be emitted to signal that the domain could have changed."
827
+ },
828
+ "Paused(address)": {
829
+ "details": "Emitted when the pause is triggered by `account`."
830
+ },
831
+ "Transfer(address,address,uint256)": {
832
+ "details": "Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero."
833
+ },
834
+ "Unpaused(address)": {
835
+ "details": "Emitted when the pause is lifted by `account`."
836
+ }
837
+ },
838
+ "kind": "dev",
839
+ "methods": {
840
+ "DOMAIN_SEPARATOR()": {
841
+ "details": "Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."
842
+ },
843
+ "allowance(address,address)": {
844
+ "details": "See {IERC20-allowance}."
845
+ },
846
+ "approve(address,uint256)": {
847
+ "details": "See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."
848
+ },
849
+ "authority()": {
850
+ "details": "Returns the current authority."
851
+ },
852
+ "balanceOf(address)": {
853
+ "details": "See {IERC20-balanceOf}."
854
+ },
855
+ "burn(uint256)": {
856
+ "details": "Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}."
857
+ },
858
+ "burnFrom(address,uint256)": {
859
+ "details": "Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`."
860
+ },
861
+ "decimals()": {
862
+ "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."
863
+ },
864
+ "eip712Domain()": {
865
+ "details": "See {IERC-5267}."
866
+ },
867
+ "isConsumingScheduledOp()": {
868
+ "details": "Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."
869
+ },
870
+ "name()": {
871
+ "details": "Returns the name of the token."
872
+ },
873
+ "nonces(address)": {
874
+ "details": "Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."
875
+ },
876
+ "paused()": {
877
+ "details": "Returns true if the contract is paused, and false otherwise."
878
+ },
879
+ "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": {
880
+ "details": "Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."
881
+ },
882
+ "setAuthority(address)": {
883
+ "details": "Transfers control to a new authority. The caller must be the current authority."
884
+ },
885
+ "symbol()": {
886
+ "details": "Returns the symbol of the token, usually a shorter version of the name."
887
+ },
888
+ "totalSupply()": {
889
+ "details": "See {IERC20-totalSupply}."
890
+ },
891
+ "transfer(address,uint256)": {
892
+ "details": "See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`."
893
+ },
894
+ "transferFrom(address,address,uint256)": {
895
+ "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`."
896
+ }
897
+ },
898
+ "version": 1
899
+ },
900
+ "userdoc": {
901
+ "kind": "user",
902
+ "methods": {},
903
+ "version": 1
904
+ },
905
+ "evm": {
906
+ "gasEstimates": {
907
+ "creation": {
908
+ "codeDepositCost": "2002600",
909
+ "executionCost": "infinite",
910
+ "totalCost": "infinite"
911
+ },
912
+ "external": {
913
+ "DOMAIN_SEPARATOR()": "infinite",
914
+ "allowance(address,address)": "infinite",
915
+ "approve(address,uint256)": "infinite",
916
+ "authority()": "2660",
917
+ "balanceOf(address)": "2952",
918
+ "burn(uint256)": "infinite",
919
+ "burnFrom(address,uint256)": "infinite",
920
+ "decimals()": "455",
921
+ "eip712Domain()": "infinite",
922
+ "isConsumingScheduledOp()": "2585",
923
+ "name()": "infinite",
924
+ "nonces(address)": "2951",
925
+ "pause()": "infinite",
926
+ "paused()": "2568",
927
+ "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "infinite",
928
+ "setAuthority(address)": "infinite",
929
+ "symbol()": "infinite",
930
+ "totalSupply()": "2505",
931
+ "transfer(address,uint256)": "infinite",
932
+ "transferFrom(address,address,uint256)": "infinite",
933
+ "unpause()": "infinite"
934
+ },
935
+ "internal": {
936
+ "_update(address,address,uint256)": "infinite"
937
+ }
938
+ },
939
+ "methodIdentifiers": {
940
+ "DOMAIN_SEPARATOR()": "3644e515",
941
+ "allowance(address,address)": "dd62ed3e",
942
+ "approve(address,uint256)": "095ea7b3",
943
+ "authority()": "bf7e214f",
944
+ "balanceOf(address)": "70a08231",
945
+ "burn(uint256)": "42966c68",
946
+ "burnFrom(address,uint256)": "79cc6790",
947
+ "decimals()": "313ce567",
948
+ "eip712Domain()": "84b0196e",
949
+ "isConsumingScheduledOp()": "8fb36037",
950
+ "name()": "06fdde03",
951
+ "nonces(address)": "7ecebe00",
952
+ "pause()": "8456cb59",
953
+ "paused()": "5c975abb",
954
+ "permit(address,address,uint256,uint256,uint8,bytes32,bytes32)": "d505accf",
955
+ "setAuthority(address)": "7a9e5e4b",
956
+ "symbol()": "95d89b41",
957
+ "totalSupply()": "18160ddd",
958
+ "transfer(address,uint256)": "a9059cbb",
959
+ "transferFrom(address,address,uint256)": "23b872dd",
960
+ "unpause()": "3f4ba83a"
961
+ }
962
+ }
963
+ }