@venusprotocol/protocol-reserve 1.0.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +69 -0
  2. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.dbg.json +4 -0
  3. package/artifacts/@openzeppelin/contracts/access/IAccessControl.sol/IAccessControl.json +183 -0
  4. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +4 -0
  5. package/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +297 -0
  6. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +4 -0
  7. package/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +194 -0
  8. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +4 -0
  9. package/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +233 -0
  10. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +4 -0
  11. package/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +10 -0
  12. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.dbg.json +4 -0
  13. package/artifacts/@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol/Ownable2StepUpgradeable.json +115 -0
  14. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.dbg.json +4 -0
  15. package/artifacts/@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol/OwnableUpgradeable.json +76 -0
  16. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.dbg.json +4 -0
  17. package/artifacts/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol/Initializable.json +24 -0
  18. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.dbg.json +4 -0
  19. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol/IERC20Upgradeable.json +194 -0
  20. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.dbg.json +4 -0
  21. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-IERC20PermitUpgradeable.sol/IERC20PermitUpgradeable.json +86 -0
  22. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.dbg.json +4 -0
  23. package/artifacts/@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol/SafeERC20Upgradeable.json +10 -0
  24. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.dbg.json +4 -0
  25. package/artifacts/@openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol/AddressUpgradeable.json +10 -0
  26. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.dbg.json +4 -0
  27. package/artifacts/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol/ContextUpgradeable.json +24 -0
  28. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.dbg.json +4 -0
  29. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/AccessControlledV8.sol/AccessControlledV8.json +181 -0
  30. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.dbg.json +4 -0
  31. package/artifacts/@venusprotocol/governance-contracts/contracts/Governance/IAccessControlManagerV8.sol/IAccessControlManagerV8.json +282 -0
  32. package/artifacts/build-info/c112788394311939ef4c47b76cde5898.json +1 -0
  33. package/artifacts/contracts/Interfaces/ComptrollerInterface.sol/ComptrollerInterface.dbg.json +4 -0
  34. package/artifacts/contracts/Interfaces/ComptrollerInterface.sol/ComptrollerInterface.json +24 -0
  35. package/artifacts/contracts/Interfaces/IIncomeDestination.sol/IIncomeDestination.dbg.json +4 -0
  36. package/artifacts/contracts/Interfaces/IIncomeDestination.sol/IIncomeDestination.json +29 -0
  37. package/artifacts/contracts/Interfaces/IPrime.sol/IPrime.dbg.json +4 -0
  38. package/artifacts/contracts/Interfaces/IPrime.sol/IPrime.json +74 -0
  39. package/artifacts/contracts/Interfaces/IProtocolShareReserve.sol/IProtocolShareReserve.dbg.json +4 -0
  40. package/artifacts/contracts/Interfaces/IProtocolShareReserve.sol/IProtocolShareReserve.json +34 -0
  41. package/artifacts/contracts/Interfaces/IVToken.sol/IVToken.dbg.json +4 -0
  42. package/artifacts/contracts/Interfaces/IVToken.sol/IVToken.json +24 -0
  43. package/artifacts/contracts/Interfaces/PoolRegistryInterface.sol/PoolRegistryInterface.dbg.json +4 -0
  44. package/artifacts/contracts/Interfaces/PoolRegistryInterface.sol/PoolRegistryInterface.json +35 -0
  45. package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.dbg.json +4 -0
  46. package/artifacts/contracts/ProtocolReserve/ProtocolShareReserve.sol/ProtocolShareReserve.json +741 -0
  47. package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.dbg.json +4 -0
  48. package/artifacts/contracts/Test/Mocks/MockToken.sol/MockToken.json +315 -0
  49. package/contracts/Interfaces/ComptrollerInterface.sol +6 -0
  50. package/contracts/Interfaces/IIncomeDestination.sol +6 -0
  51. package/contracts/Interfaces/IPrime.sol +12 -0
  52. package/contracts/Interfaces/IProtocolShareReserve.sol +12 -0
  53. package/contracts/Interfaces/IVToken.sol +6 -0
  54. package/contracts/Interfaces/PoolRegistryInterface.sol +7 -0
  55. package/contracts/ProtocolReserve/ProtocolShareReserve.sol +378 -0
  56. package/contracts/Test/Mocks/MockToken.sol +22 -0
  57. package/contracts/interfaces/ComptrollerInterface.sol +6 -0
  58. package/contracts/interfaces/IProtocolShareReserve.sol +12 -0
  59. package/contracts/interfaces/PoolRegistryInterface.sol +7 -0
  60. package/contracts/test/Mocks/MockToken.sol +22 -0
  61. package/package.json +116 -0
@@ -0,0 +1,741 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "ProtocolShareReserve",
4
+ "sourceName": "contracts/ProtocolReserve/ProtocolShareReserve.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_corePoolComptroller",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_wbnb",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "address",
20
+ "name": "_vbnb",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "stateMutability": "nonpayable",
25
+ "type": "constructor"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "InvalidAddress",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "InvalidTotalPercentage",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [
39
+ {
40
+ "internalType": "address",
41
+ "name": "sender",
42
+ "type": "address"
43
+ },
44
+ {
45
+ "internalType": "address",
46
+ "name": "calledContract",
47
+ "type": "address"
48
+ },
49
+ {
50
+ "internalType": "string",
51
+ "name": "methodSignature",
52
+ "type": "string"
53
+ }
54
+ ],
55
+ "name": "Unauthorized",
56
+ "type": "error"
57
+ },
58
+ {
59
+ "anonymous": false,
60
+ "inputs": [
61
+ {
62
+ "indexed": true,
63
+ "internalType": "address",
64
+ "name": "destination",
65
+ "type": "address"
66
+ },
67
+ {
68
+ "indexed": true,
69
+ "internalType": "address",
70
+ "name": "asset",
71
+ "type": "address"
72
+ },
73
+ {
74
+ "indexed": false,
75
+ "internalType": "enum ProtocolShareReserve.Schema",
76
+ "name": "schema",
77
+ "type": "uint8"
78
+ },
79
+ {
80
+ "indexed": false,
81
+ "internalType": "uint256",
82
+ "name": "percent",
83
+ "type": "uint256"
84
+ },
85
+ {
86
+ "indexed": false,
87
+ "internalType": "uint256",
88
+ "name": "amount",
89
+ "type": "uint256"
90
+ }
91
+ ],
92
+ "name": "AssetReleased",
93
+ "type": "event"
94
+ },
95
+ {
96
+ "anonymous": false,
97
+ "inputs": [
98
+ {
99
+ "indexed": true,
100
+ "internalType": "address",
101
+ "name": "comptroller",
102
+ "type": "address"
103
+ },
104
+ {
105
+ "indexed": true,
106
+ "internalType": "address",
107
+ "name": "asset",
108
+ "type": "address"
109
+ },
110
+ {
111
+ "indexed": false,
112
+ "internalType": "uint256",
113
+ "name": "amount",
114
+ "type": "uint256"
115
+ },
116
+ {
117
+ "indexed": false,
118
+ "internalType": "enum IProtocolShareReserve.IncomeType",
119
+ "name": "incomeType",
120
+ "type": "uint8"
121
+ },
122
+ {
123
+ "indexed": false,
124
+ "internalType": "enum ProtocolShareReserve.Schema",
125
+ "name": "schema",
126
+ "type": "uint8"
127
+ }
128
+ ],
129
+ "name": "AssetsReservesUpdated",
130
+ "type": "event"
131
+ },
132
+ {
133
+ "anonymous": false,
134
+ "inputs": [
135
+ {
136
+ "indexed": true,
137
+ "internalType": "address",
138
+ "name": "destination",
139
+ "type": "address"
140
+ },
141
+ {
142
+ "indexed": false,
143
+ "internalType": "uint256",
144
+ "name": "percent",
145
+ "type": "uint256"
146
+ },
147
+ {
148
+ "indexed": false,
149
+ "internalType": "enum ProtocolShareReserve.Schema",
150
+ "name": "schema",
151
+ "type": "uint8"
152
+ }
153
+ ],
154
+ "name": "DestinationConfigured",
155
+ "type": "event"
156
+ },
157
+ {
158
+ "anonymous": false,
159
+ "inputs": [
160
+ {
161
+ "indexed": true,
162
+ "internalType": "address",
163
+ "name": "destination",
164
+ "type": "address"
165
+ },
166
+ {
167
+ "indexed": false,
168
+ "internalType": "uint256",
169
+ "name": "percentage",
170
+ "type": "uint256"
171
+ },
172
+ {
173
+ "indexed": false,
174
+ "internalType": "enum ProtocolShareReserve.Schema",
175
+ "name": "schema",
176
+ "type": "uint8"
177
+ }
178
+ ],
179
+ "name": "DistributionConfigAdded",
180
+ "type": "event"
181
+ },
182
+ {
183
+ "anonymous": false,
184
+ "inputs": [
185
+ {
186
+ "indexed": true,
187
+ "internalType": "address",
188
+ "name": "destination",
189
+ "type": "address"
190
+ },
191
+ {
192
+ "indexed": false,
193
+ "internalType": "uint256",
194
+ "name": "oldPercentage",
195
+ "type": "uint256"
196
+ },
197
+ {
198
+ "indexed": false,
199
+ "internalType": "uint256",
200
+ "name": "newPercentage",
201
+ "type": "uint256"
202
+ },
203
+ {
204
+ "indexed": false,
205
+ "internalType": "enum ProtocolShareReserve.Schema",
206
+ "name": "schema",
207
+ "type": "uint8"
208
+ }
209
+ ],
210
+ "name": "DistributionConfigUpdated",
211
+ "type": "event"
212
+ },
213
+ {
214
+ "anonymous": false,
215
+ "inputs": [
216
+ {
217
+ "indexed": false,
218
+ "internalType": "uint8",
219
+ "name": "version",
220
+ "type": "uint8"
221
+ }
222
+ ],
223
+ "name": "Initialized",
224
+ "type": "event"
225
+ },
226
+ {
227
+ "anonymous": false,
228
+ "inputs": [
229
+ {
230
+ "indexed": false,
231
+ "internalType": "address",
232
+ "name": "oldAccessControlManager",
233
+ "type": "address"
234
+ },
235
+ {
236
+ "indexed": false,
237
+ "internalType": "address",
238
+ "name": "newAccessControlManager",
239
+ "type": "address"
240
+ }
241
+ ],
242
+ "name": "NewAccessControlManager",
243
+ "type": "event"
244
+ },
245
+ {
246
+ "anonymous": false,
247
+ "inputs": [
248
+ {
249
+ "indexed": true,
250
+ "internalType": "address",
251
+ "name": "previousOwner",
252
+ "type": "address"
253
+ },
254
+ {
255
+ "indexed": true,
256
+ "internalType": "address",
257
+ "name": "newOwner",
258
+ "type": "address"
259
+ }
260
+ ],
261
+ "name": "OwnershipTransferStarted",
262
+ "type": "event"
263
+ },
264
+ {
265
+ "anonymous": false,
266
+ "inputs": [
267
+ {
268
+ "indexed": true,
269
+ "internalType": "address",
270
+ "name": "previousOwner",
271
+ "type": "address"
272
+ },
273
+ {
274
+ "indexed": true,
275
+ "internalType": "address",
276
+ "name": "newOwner",
277
+ "type": "address"
278
+ }
279
+ ],
280
+ "name": "OwnershipTransferred",
281
+ "type": "event"
282
+ },
283
+ {
284
+ "anonymous": false,
285
+ "inputs": [
286
+ {
287
+ "indexed": true,
288
+ "internalType": "address",
289
+ "name": "oldPoolRegistry",
290
+ "type": "address"
291
+ },
292
+ {
293
+ "indexed": true,
294
+ "internalType": "address",
295
+ "name": "newPoolRegistry",
296
+ "type": "address"
297
+ }
298
+ ],
299
+ "name": "PoolRegistryUpdated",
300
+ "type": "event"
301
+ },
302
+ {
303
+ "anonymous": false,
304
+ "inputs": [
305
+ {
306
+ "indexed": true,
307
+ "internalType": "address",
308
+ "name": "oldPrime",
309
+ "type": "address"
310
+ },
311
+ {
312
+ "indexed": true,
313
+ "internalType": "address",
314
+ "name": "newPrime",
315
+ "type": "address"
316
+ }
317
+ ],
318
+ "name": "PrimeUpdated",
319
+ "type": "event"
320
+ },
321
+ {
322
+ "anonymous": false,
323
+ "inputs": [
324
+ {
325
+ "indexed": true,
326
+ "internalType": "address",
327
+ "name": "comptroller",
328
+ "type": "address"
329
+ },
330
+ {
331
+ "indexed": true,
332
+ "internalType": "address",
333
+ "name": "asset",
334
+ "type": "address"
335
+ },
336
+ {
337
+ "indexed": false,
338
+ "internalType": "enum ProtocolShareReserve.Schema",
339
+ "name": "schema",
340
+ "type": "uint8"
341
+ },
342
+ {
343
+ "indexed": false,
344
+ "internalType": "uint256",
345
+ "name": "oldBalance",
346
+ "type": "uint256"
347
+ },
348
+ {
349
+ "indexed": false,
350
+ "internalType": "uint256",
351
+ "name": "newBalance",
352
+ "type": "uint256"
353
+ }
354
+ ],
355
+ "name": "ReservesUpdated",
356
+ "type": "event"
357
+ },
358
+ {
359
+ "inputs": [],
360
+ "name": "CORE_POOL_COMPTROLLER",
361
+ "outputs": [
362
+ {
363
+ "internalType": "address",
364
+ "name": "",
365
+ "type": "address"
366
+ }
367
+ ],
368
+ "stateMutability": "view",
369
+ "type": "function"
370
+ },
371
+ {
372
+ "inputs": [],
373
+ "name": "WBNB",
374
+ "outputs": [
375
+ {
376
+ "internalType": "address",
377
+ "name": "",
378
+ "type": "address"
379
+ }
380
+ ],
381
+ "stateMutability": "view",
382
+ "type": "function"
383
+ },
384
+ {
385
+ "inputs": [],
386
+ "name": "acceptOwnership",
387
+ "outputs": [],
388
+ "stateMutability": "nonpayable",
389
+ "type": "function"
390
+ },
391
+ {
392
+ "inputs": [],
393
+ "name": "accessControlManager",
394
+ "outputs": [
395
+ {
396
+ "internalType": "contract IAccessControlManagerV8",
397
+ "name": "",
398
+ "type": "address"
399
+ }
400
+ ],
401
+ "stateMutability": "view",
402
+ "type": "function"
403
+ },
404
+ {
405
+ "inputs": [
406
+ {
407
+ "components": [
408
+ {
409
+ "internalType": "enum ProtocolShareReserve.Schema",
410
+ "name": "schema",
411
+ "type": "uint8"
412
+ },
413
+ {
414
+ "internalType": "uint256",
415
+ "name": "percentage",
416
+ "type": "uint256"
417
+ },
418
+ {
419
+ "internalType": "address",
420
+ "name": "destination",
421
+ "type": "address"
422
+ }
423
+ ],
424
+ "internalType": "struct ProtocolShareReserve.DistributionConfig[]",
425
+ "name": "configs",
426
+ "type": "tuple[]"
427
+ }
428
+ ],
429
+ "name": "addOrUpdateDistributionConfigs",
430
+ "outputs": [],
431
+ "stateMutability": "nonpayable",
432
+ "type": "function"
433
+ },
434
+ {
435
+ "inputs": [
436
+ {
437
+ "internalType": "address",
438
+ "name": "",
439
+ "type": "address"
440
+ },
441
+ {
442
+ "internalType": "address",
443
+ "name": "",
444
+ "type": "address"
445
+ },
446
+ {
447
+ "internalType": "enum ProtocolShareReserve.Schema",
448
+ "name": "",
449
+ "type": "uint8"
450
+ }
451
+ ],
452
+ "name": "assetsReserves",
453
+ "outputs": [
454
+ {
455
+ "internalType": "uint256",
456
+ "name": "",
457
+ "type": "uint256"
458
+ }
459
+ ],
460
+ "stateMutability": "view",
461
+ "type": "function"
462
+ },
463
+ {
464
+ "inputs": [
465
+ {
466
+ "internalType": "uint256",
467
+ "name": "",
468
+ "type": "uint256"
469
+ }
470
+ ],
471
+ "name": "distributionTargets",
472
+ "outputs": [
473
+ {
474
+ "internalType": "enum ProtocolShareReserve.Schema",
475
+ "name": "schema",
476
+ "type": "uint8"
477
+ },
478
+ {
479
+ "internalType": "uint256",
480
+ "name": "percentage",
481
+ "type": "uint256"
482
+ },
483
+ {
484
+ "internalType": "address",
485
+ "name": "destination",
486
+ "type": "address"
487
+ }
488
+ ],
489
+ "stateMutability": "view",
490
+ "type": "function"
491
+ },
492
+ {
493
+ "inputs": [
494
+ {
495
+ "internalType": "address",
496
+ "name": "comptroller",
497
+ "type": "address"
498
+ },
499
+ {
500
+ "internalType": "enum ProtocolShareReserve.Schema",
501
+ "name": "schema",
502
+ "type": "uint8"
503
+ },
504
+ {
505
+ "internalType": "address",
506
+ "name": "destination",
507
+ "type": "address"
508
+ },
509
+ {
510
+ "internalType": "address",
511
+ "name": "asset",
512
+ "type": "address"
513
+ }
514
+ ],
515
+ "name": "getUnreleasedFunds",
516
+ "outputs": [
517
+ {
518
+ "internalType": "uint256",
519
+ "name": "",
520
+ "type": "uint256"
521
+ }
522
+ ],
523
+ "stateMutability": "view",
524
+ "type": "function"
525
+ },
526
+ {
527
+ "inputs": [
528
+ {
529
+ "internalType": "address",
530
+ "name": "_accessControlManager",
531
+ "type": "address"
532
+ }
533
+ ],
534
+ "name": "initialize",
535
+ "outputs": [],
536
+ "stateMutability": "nonpayable",
537
+ "type": "function"
538
+ },
539
+ {
540
+ "inputs": [],
541
+ "name": "owner",
542
+ "outputs": [
543
+ {
544
+ "internalType": "address",
545
+ "name": "",
546
+ "type": "address"
547
+ }
548
+ ],
549
+ "stateMutability": "view",
550
+ "type": "function"
551
+ },
552
+ {
553
+ "inputs": [],
554
+ "name": "pendingOwner",
555
+ "outputs": [
556
+ {
557
+ "internalType": "address",
558
+ "name": "",
559
+ "type": "address"
560
+ }
561
+ ],
562
+ "stateMutability": "view",
563
+ "type": "function"
564
+ },
565
+ {
566
+ "inputs": [],
567
+ "name": "poolRegistry",
568
+ "outputs": [
569
+ {
570
+ "internalType": "address",
571
+ "name": "",
572
+ "type": "address"
573
+ }
574
+ ],
575
+ "stateMutability": "view",
576
+ "type": "function"
577
+ },
578
+ {
579
+ "inputs": [],
580
+ "name": "prime",
581
+ "outputs": [
582
+ {
583
+ "internalType": "address",
584
+ "name": "",
585
+ "type": "address"
586
+ }
587
+ ],
588
+ "stateMutability": "view",
589
+ "type": "function"
590
+ },
591
+ {
592
+ "inputs": [
593
+ {
594
+ "internalType": "address",
595
+ "name": "comptroller",
596
+ "type": "address"
597
+ },
598
+ {
599
+ "internalType": "address[]",
600
+ "name": "assets",
601
+ "type": "address[]"
602
+ }
603
+ ],
604
+ "name": "releaseFunds",
605
+ "outputs": [],
606
+ "stateMutability": "nonpayable",
607
+ "type": "function"
608
+ },
609
+ {
610
+ "inputs": [],
611
+ "name": "renounceOwnership",
612
+ "outputs": [],
613
+ "stateMutability": "nonpayable",
614
+ "type": "function"
615
+ },
616
+ {
617
+ "inputs": [
618
+ {
619
+ "internalType": "address",
620
+ "name": "accessControlManager_",
621
+ "type": "address"
622
+ }
623
+ ],
624
+ "name": "setAccessControlManager",
625
+ "outputs": [],
626
+ "stateMutability": "nonpayable",
627
+ "type": "function"
628
+ },
629
+ {
630
+ "inputs": [
631
+ {
632
+ "internalType": "address",
633
+ "name": "_poolRegistry",
634
+ "type": "address"
635
+ }
636
+ ],
637
+ "name": "setPoolRegistry",
638
+ "outputs": [],
639
+ "stateMutability": "nonpayable",
640
+ "type": "function"
641
+ },
642
+ {
643
+ "inputs": [
644
+ {
645
+ "internalType": "address",
646
+ "name": "_prime",
647
+ "type": "address"
648
+ }
649
+ ],
650
+ "name": "setPrime",
651
+ "outputs": [],
652
+ "stateMutability": "nonpayable",
653
+ "type": "function"
654
+ },
655
+ {
656
+ "inputs": [
657
+ {
658
+ "internalType": "address",
659
+ "name": "",
660
+ "type": "address"
661
+ }
662
+ ],
663
+ "name": "totalAssetReserve",
664
+ "outputs": [
665
+ {
666
+ "internalType": "uint256",
667
+ "name": "",
668
+ "type": "uint256"
669
+ }
670
+ ],
671
+ "stateMutability": "view",
672
+ "type": "function"
673
+ },
674
+ {
675
+ "inputs": [],
676
+ "name": "totalDistributions",
677
+ "outputs": [
678
+ {
679
+ "internalType": "uint256",
680
+ "name": "",
681
+ "type": "uint256"
682
+ }
683
+ ],
684
+ "stateMutability": "view",
685
+ "type": "function"
686
+ },
687
+ {
688
+ "inputs": [
689
+ {
690
+ "internalType": "address",
691
+ "name": "newOwner",
692
+ "type": "address"
693
+ }
694
+ ],
695
+ "name": "transferOwnership",
696
+ "outputs": [],
697
+ "stateMutability": "nonpayable",
698
+ "type": "function"
699
+ },
700
+ {
701
+ "inputs": [
702
+ {
703
+ "internalType": "address",
704
+ "name": "comptroller",
705
+ "type": "address"
706
+ },
707
+ {
708
+ "internalType": "address",
709
+ "name": "asset",
710
+ "type": "address"
711
+ },
712
+ {
713
+ "internalType": "enum IProtocolShareReserve.IncomeType",
714
+ "name": "incomeType",
715
+ "type": "uint8"
716
+ }
717
+ ],
718
+ "name": "updateAssetsState",
719
+ "outputs": [],
720
+ "stateMutability": "nonpayable",
721
+ "type": "function"
722
+ },
723
+ {
724
+ "inputs": [],
725
+ "name": "vBNB",
726
+ "outputs": [
727
+ {
728
+ "internalType": "address",
729
+ "name": "",
730
+ "type": "address"
731
+ }
732
+ ],
733
+ "stateMutability": "view",
734
+ "type": "function"
735
+ }
736
+ ],
737
+ "bytecode": "0x60e06040523480156200001157600080fd5b5060405162002ea438038062002ea48339810160408190526200003491620001b7565b6001600160a01b0383166200005c5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038216620000845760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b038116620000ac5760405163e6c4247b60e01b815260040160405180910390fd5b6001600160a01b0380841660805282811660a052811660c052620000cf620000d8565b50505062000201565b600054610100900460ff1615620001455760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116101562000198576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b80516001600160a01b0381168114620001b257600080fd5b919050565b600080600060608486031215620001cd57600080fd5b620001d8846200019a565b9250620001e8602085016200019a565b9150620001f8604085016200019a565b90509250925092565b60805160a05160c051612c5062000254600039600081816101d60152611f870152600081816102af0152611fc101526000818161038a015281816104ac0152818161128501526115390152612c506000f3fe608060405234801561001057600080fd5b506004361061018d5760003560e01c80638dd95002116100e3578063c7ee005e1161008c578063f2fde38b11610066578063f2fde38b14610372578063fa7b81a014610385578063fc31116a146103ac57600080fd5b8063c7ee005e1461033b578063c9e18c6f1461034e578063e30c39781461036157600080fd5b8063b4a0bdf3116100bd578063b4a0bdf314610304578063ba879b5b14610315578063c4d66de81461032857600080fd5b80638dd95002146102aa578063aea21121146102d1578063afcff50f146102f157600080fd5b80635db6da12116101455780637b77cd6a1161011f5780637b77cd6a14610273578063893ffe98146102865780638da5cb5b1461029957600080fd5b80635db6da1214610232578063715018a61461026357806379ba50971461026b57600080fd5b806316faecec1161017657806316faecec146101be57806333e1567f146101d1578063392ee7121461021057600080fd5b80630e32cb8614610192578063163db71b146101a7575b600080fd5b6101a56101a0366004612472565b6103bf565b005b60cd545b6040519081526020015b60405180910390f35b6101a56101cc3660046124a3565b6103d3565b6101f87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101b5565b61022361021e3660046124ee565b61076c565b6040516101b59392919061256d565b6101ab6102403660046124a3565b60cb60209081526000938452604080852082529284528284209052825290205481565b6101a56107ac565b6101a56107c0565b6101a5610281366004612472565b610850565b6101ab610294366004612597565b610938565b6033546001600160a01b03166101f8565b6101f87f000000000000000000000000000000000000000000000000000000000000000081565b6101ab6102df366004612472565b60cc6020526000908152604090205481565b60ca546101f8906001600160a01b031681565b6097546001600160a01b03166101f8565b6101a56103233660046126be565b610a51565b6101a5610336366004612472565b610d63565b60c9546101f8906001600160a01b031681565b6101a561035c366004612472565b610ede565b6065546001600160a01b03166101f8565b6101a5610380366004612472565b610fc6565b6101f87f000000000000000000000000000000000000000000000000000000000000000081565b6101a56103ba366004612793565b61104f565b6103c761109b565b6103d0816110f5565b50565b826001600160a01b0316627e3dd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104349190612842565b61046a576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166104aa576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614158015610582575060ca546040517f266e0a7f0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528481166024830152600092169063266e0a7f90604401602060405180830381865afa158015610553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105779190612864565b6001600160a01b0316145b156105b9576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105c68484846111e3565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064d9190612881565b6001600160a01b038516600090815260cc602052604090205490915080821115610764576001600160a01b03808716600090815260cb602090815260408083209389168352929052908120828403918291908660018111156106b1576106b1612507565b60018111156106c2576106c2612507565b815260200190815260200160002060008282546106df91906128c9565b90915550506001600160a01b038616600090815260cc60205260408120805483929061070c9084906128c9565b92505081905550856001600160a01b0316876001600160a01b03167fa46b2431e663cf7b50c9d5129aff85d2394ecfd447b7ccba83986510a9d945ea83888860405161075a939291906128e1565b60405180910390a3505b505050505050565b60cd818154811061077c57600080fd5b600091825260209091206003909102018054600182015460029092015460ff90911692506001600160a01b031683565b6107b461109b565b6107be60006112e8565b565b60655433906001600160a01b031681146108475760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103d0816112e8565b61088e6040518060400160405280601881526020017f736574506f6f6c52656769737472792861646472657373290000000000000000815250611319565b6001600160a01b0381166108ce576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ca80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907fa87b964d321035d2165e484ff4b722dd6eae30606c0b98887d2ed1a34e594bfe90600090a35050565b6000805b60cd54811015610a4757600060cd828154811061095b5761095b61290e565b9060005260206000209060030201905085600181111561097d5761097d612507565b815460ff16600181111561099357610993612507565b1480156109af575060028101546001600160a01b038681169116145b15610a36576001600160a01b03808816600090815260cb602090815260408083209388168352929052908120818860018111156109ee576109ee612507565b60018111156109ff576109ff612507565b81526020019081526020016000205490506064826001015482610a22919061293d565b610a2c919061297a565b9350505050610a49565b50610a40816129b5565b905061093c565b505b949350505050565b610a72604051806060016040528060328152602001612be960329139611319565b610a7a6113e5565b60005b8151811015610d5a576000828281518110610a9a57610a9a61290e565b6020026020010151905060006001600160a01b031681604001516001600160a01b031603610b305760405162461bcd60e51b815260206004820152603160248201527f50726f746f636f6c5368617265526573657276653a2044657374696e6174696f60448201527f6e206164647265737320696e76616c6964000000000000000000000000000000606482015260840161083e565b6000805b60cd54811015610c3557600060cd8281548110610b5357610b5361290e565b60009182526020909120600390910201805490915060ff166001811115610b7c57610b7c612507565b84516001811115610b8f57610b8f612507565b148015610bb05750604084015160028201546001600160a01b039081169116145b15610c245760028101546001820154602086015183546040516001600160a01b03909416937f86425c9fc7b14328a4d53181ae1cafa5c44688f63636e30200b7384984ac17b893610c0a939092909160ff909116906129ed565b60405180910390a260208401516001918201559150610c35565b50610c2e816129b5565b9050610b34565b5080610d475760cd805460018181018355600092909252835160039091027f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e018054859391929183917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016908381811115610cb257610cb2612507565b02179055506020828101516001830155604092830151600290920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0393841617905584830151908501518551935191909216927fbfee2691582b93dec113181471d377f858f39c4ba82e135be3d4d7240b11ed3c92610d3e92909190612a04565b60405180910390a25b505080610d53906129b5565b9050610a7d565b506103d0611577565b600054610100900460ff1615808015610d835750600054600160ff909116105b80610d9d5750303b158015610d9d575060005460ff166001145b610e0f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161083e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610e6d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610e7682611750565b8015610eda57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b610f1c6040518060400160405280601181526020017f7365745072696d65286164647265737329000000000000000000000000000000815250611319565b6001600160a01b038116610f5c576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c980546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f229f487e93a5313f6898190adf00c62e8b5d4c9c46249d31a9cd8a8024007bce90600090a35050565b610fce61109b565b606580546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556110176033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6110576117de565b60005b815181101561109657611086838383815181106110795761107961290e565b602002602001015161193f565b61108f816129b5565b905061105a565b505050565b6033546001600160a01b031633146107be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083e565b6001600160a01b0381166111715760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161083e565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610ed1565b60c9546040517fee6b13fc0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152600092839291169063ee6b13fc90602401602060405180830381865afa15801561124a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126e9190612864565b90506001600160a01b038116158015906112b957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b80156112d6575060008360018111156112d4576112d4612507565b145b156112e057600191505b509392505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103d081611f19565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab906113659033908690600401612a9b565b602060405180830381865afa158015611382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a69190612842565b905080610eda573330836040517f4a3fa29300000000000000000000000000000000000000000000000000000000815260040161083e93929190612abd565b60c954604080517f375a7cba00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163375a7cba91600480830192869291908290030181865afa158015611447573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261148d9190810190612af2565b905060005b8151811015610eda5760008282815181106114af576114af61290e565b602090810291909101015160c9546040517f9198e5150000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152929350911690639198e51590602401600060405180830381600087803b15801561151c57600080fd5b505af1158015611530573d6000803e3d6000fd5b505050506115667f000000000000000000000000000000000000000000000000000000000000000061156183611f83565b61193f565b50611570816129b5565b9050611492565b60006115846001806128c9565b905060008167ffffffffffffffff8111156115a1576115a16125f3565b6040519080825280602002602001820160405280156115ca578160200160208202803683370190505b50905060005b60cd548110156116b057600060cd82815481106115ef576115ef61290e565b6000918252602090912060408051606081019091526003909202018054829060ff16600181111561162257611622612507565b600181111561163357611633612507565b81526001828101546020808401919091526002909301546001600160a01b031660409092019190915290820151825192935091859181111561167757611677612507565b815181106116875761168761290e565b6020026020010181815161169b91906128c9565b9052506116a99050816129b5565b90506115d0565b5060005b6116bf600184612b81565b81116110965760648282815181106116d9576116d961290e565b60200260200101511415801561170957508181815181106116fc576116fc61290e565b6020026020010151600014155b15611740576040517f0b8ad7f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611749816129b5565b90506116b4565b600054610100900460ff166117cd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161083e565b6117d561204d565b6103d0816120d2565b60c954604080517f375a7cba00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163375a7cba91600480830192869291908290030181865afa158015611840573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526118869190810190612af2565b905060005b8151811015610eda5760008282815181106118a8576118a861290e565b602090810291909101015160c9546040517f9198e5150000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152929350911690639198e51590602401600060405180830381600087803b15801561191557600080fd5b505af1158015611929573d6000803e3d6000fd5b505050505080611938906129b5565b905061188b565b600061194c6001806128c9565b905060008167ffffffffffffffff811115611969576119696125f3565b604051908082528060200260200182016040528015611992578160200160208202803683370190505b5090506000805b83811015611a61576001600160a01b03808716600090815260cb602090815260408083209389168352929052908120908260018111156119db576119db612507565b60018111156119ec576119ec612507565b60018111156119fd576119fd612507565b815260200190815260200160002054838281518110611a1e57611a1e61290e565b602002602001018181525050828181518110611a3c57611a3c61290e565b602002602001015182611a4f91906128c9565b9150611a5a816129b5565b9050611999565b5080600003611a71575050505050565b60008367ffffffffffffffff811115611a8c57611a8c6125f3565b604051908082528060200260200182016040528015611ab5578160200160208202803683370190505b50905060005b60cd54811015611cdf57600060cd8281548110611ada57611ada61290e565b6000918252602090912060408051606081019091526003909202018054829060ff166001811115611b0d57611b0d612507565b6001811115611b1e57611b1e612507565b81526001828101546020808401919091526002909301546001600160a01b0316604090920191909152908201518251929350600092606492899190811115611b6857611b68612507565b81518110611b7857611b7861290e565b6020026020010151611b8a919061293d565b611b94919061297a565b9050808483600001516001811115611bae57611bae612507565b81518110611bbe57611bbe61290e565b60200260200101818151611bd291906128c9565b9052506040820151611bef906001600160a01b038a16908361214f565b60408083015190517faac59a750000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301528a811660248301529091169063aac59a7590604401600060405180830381600087803b158015611c5957600080fd5b505af1158015611c6d573d6000803e3d6000fd5b50505050876001600160a01b031682604001516001600160a01b03167f09f71e7b22d78540ee9a42f09917a9d62f46735cb0dfa70d6bab27866d9cb5008460000151856020015185604051611cc493929190612b98565b60405180910390a3505080611cd8906129b5565b9050611abb565b5060008467ffffffffffffffff811115611cfb57611cfb6125f3565b604051908082528060200260200182016040528015611d24578160200160208202803683370190505b50905060005b85811015611f0f57828181518110611d4457611d4461290e565b6020026020010151858281518110611d5e57611d5e61290e565b6020026020010151611d709190612b81565b828281518110611d8257611d8261290e565b602002602001018181525050818181518110611da057611da061290e565b6020908102919091018101516001600160a01b03808b16600090815260cb84526040808220928c1682529190935282209091836001811115611de457611de4612507565b6001811115611df557611df5612507565b6001811115611e0657611e06612507565b815260200190815260200160002081905550828181518110611e2a57611e2a61290e565b602002602001015160cc6000896001600160a01b03166001600160a01b0316815260200190815260200160002054611e629190612b81565b6001600160a01b03808916600081815260cc602052604090209290925589167f7d881f3d6246a6a2b97b121b8ba093c17497912c68e8b2bca6108528e91df3ca836001811115611eb457611eb4612507565b888581518110611ec657611ec661290e565b6020026020010151868681518110611ee057611ee061290e565b6020026020010151604051611ef793929190612b98565b60405180910390a3611f08816129b5565b9050611d2a565b5050505050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611fe557507f0000000000000000000000000000000000000000000000000000000000000000919050565b816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120479190612864565b92915050565b600054610100900460ff166120ca5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161083e565b6107be6121cf565b600054610100900460ff166103c75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161083e565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052611096908490612255565b600054610100900460ff1661224c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161083e565b6107be336112e8565b60006122aa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661233a9092919063ffffffff16565b80519091501561109657808060200190518101906122c89190612842565b6110965760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161083e565b6060610a49848460008585600080866001600160a01b031685876040516123619190612bb9565b60006040518083038185875af1925050503d806000811461239e576040519150601f19603f3d011682016040523d82523d6000602084013e6123a3565b606091505b50915091506123b4878383876123bf565b979650505050505050565b6060831561242e578251600003612427576001600160a01b0385163b6124275760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161083e565b5081610a49565b610a4983838151156124435781518083602001fd5b8060405162461bcd60e51b815260040161083e9190612bd5565b6001600160a01b03811681146103d057600080fd5b60006020828403121561248457600080fd5b813561248f8161245d565b9392505050565b600281106103d057600080fd5b6000806000606084860312156124b857600080fd5b83356124c38161245d565b925060208401356124d38161245d565b915060408401356124e381612496565b809150509250925092565b60006020828403121561250057600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106103d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6060810161257a85612536565b93815260208101929092526001600160a01b031660409091015290565b600080600080608085870312156125ad57600080fd5b84356125b88161245d565b935060208501356125c881612496565b925060408501356125d88161245d565b915060608501356125e88161245d565b939692955090935050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612645576126456125f3565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612692576126926125f3565b604052919050565b600067ffffffffffffffff8211156126b4576126b46125f3565b5060051b60200190565b600060208083850312156126d157600080fd5b823567ffffffffffffffff8111156126e857600080fd5b8301601f810185136126f957600080fd5b803561270c6127078261269a565b61264b565b8181526060918202830184019184820191908884111561272b57600080fd5b938501935b838510156127875780858a0312156127485760008081fd5b612750612622565b853561275b81612496565b815285870135878201526040808701356127748161245d565b9082015283529384019391850191612730565b50979650505050505050565b600080604083850312156127a657600080fd5b82356127b18161245d565b915060208381013567ffffffffffffffff8111156127ce57600080fd5b8401601f810186136127df57600080fd5b80356127ed6127078261269a565b81815260059190911b8201830190838101908883111561280c57600080fd5b928401925b828410156128335783356128248161245d565b82529284019290840190612811565b80955050505050509250929050565b60006020828403121561285457600080fd5b8151801515811461248f57600080fd5b60006020828403121561287657600080fd5b815161248f8161245d565b60006020828403121561289357600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156128dc576128dc61289a565b500190565b838152606081016128f184612536565b83602083015261290083612536565b826040830152949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129755761297561289a565b500290565b6000826129b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129e6576129e661289a565b5060010190565b838152602081018390526060810161290083612536565b82815260408101612a1483612536565b8260208301529392505050565b60005b83811015612a3c578181015183820152602001612a24565b83811115612a4b576000848401525b50505050565b60008151808452612a69816020860160208601612a21565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6001600160a01b0383168152604060208201526000610a496040830184612a51565b60006001600160a01b03808616835280851660208401525060606040830152612ae96060830184612a51565b95945050505050565b60006020808385031215612b0557600080fd5b825167ffffffffffffffff811115612b1c57600080fd5b8301601f81018513612b2d57600080fd5b8051612b3b6127078261269a565b81815260059190911b82018301908381019087831115612b5a57600080fd5b928401925b828410156123b4578351612b728161245d565b82529284019290840190612b5f565b600082821015612b9357612b9361289a565b500390565b60608101612ba585612536565b938152602081019290925260409091015290565b60008251612bcb818460208701612a21565b9190910192915050565b60208152600061248f6020830184612a5156fe6164644f72557064617465446973747269627574696f6e436f6e6669677328446973747269627574696f6e436f6e66696729a26469706673582212203811282ceaab1d5f5cee75ac5cc38135b341c6569297b066d72a5a9dd4bd930764736f6c634300080d0033",
738
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061018d5760003560e01c80638dd95002116100e3578063c7ee005e1161008c578063f2fde38b11610066578063f2fde38b14610372578063fa7b81a014610385578063fc31116a146103ac57600080fd5b8063c7ee005e1461033b578063c9e18c6f1461034e578063e30c39781461036157600080fd5b8063b4a0bdf3116100bd578063b4a0bdf314610304578063ba879b5b14610315578063c4d66de81461032857600080fd5b80638dd95002146102aa578063aea21121146102d1578063afcff50f146102f157600080fd5b80635db6da12116101455780637b77cd6a1161011f5780637b77cd6a14610273578063893ffe98146102865780638da5cb5b1461029957600080fd5b80635db6da1214610232578063715018a61461026357806379ba50971461026b57600080fd5b806316faecec1161017657806316faecec146101be57806333e1567f146101d1578063392ee7121461021057600080fd5b80630e32cb8614610192578063163db71b146101a7575b600080fd5b6101a56101a0366004612472565b6103bf565b005b60cd545b6040519081526020015b60405180910390f35b6101a56101cc3660046124a3565b6103d3565b6101f87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101b5565b61022361021e3660046124ee565b61076c565b6040516101b59392919061256d565b6101ab6102403660046124a3565b60cb60209081526000938452604080852082529284528284209052825290205481565b6101a56107ac565b6101a56107c0565b6101a5610281366004612472565b610850565b6101ab610294366004612597565b610938565b6033546001600160a01b03166101f8565b6101f87f000000000000000000000000000000000000000000000000000000000000000081565b6101ab6102df366004612472565b60cc6020526000908152604090205481565b60ca546101f8906001600160a01b031681565b6097546001600160a01b03166101f8565b6101a56103233660046126be565b610a51565b6101a5610336366004612472565b610d63565b60c9546101f8906001600160a01b031681565b6101a561035c366004612472565b610ede565b6065546001600160a01b03166101f8565b6101a5610380366004612472565b610fc6565b6101f87f000000000000000000000000000000000000000000000000000000000000000081565b6101a56103ba366004612793565b61104f565b6103c761109b565b6103d0816110f5565b50565b826001600160a01b0316627e3dd26040518163ffffffff1660e01b8152600401602060405180830381865afa158015610410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104349190612842565b61046a576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166104aa576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614158015610582575060ca546040517f266e0a7f0000000000000000000000000000000000000000000000000000000081526001600160a01b0385811660048301528481166024830152600092169063266e0a7f90604401602060405180830381865afa158015610553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105779190612864565b6001600160a01b0316145b156105b9576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006105c68484846111e3565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064d9190612881565b6001600160a01b038516600090815260cc602052604090205490915080821115610764576001600160a01b03808716600090815260cb602090815260408083209389168352929052908120828403918291908660018111156106b1576106b1612507565b60018111156106c2576106c2612507565b815260200190815260200160002060008282546106df91906128c9565b90915550506001600160a01b038616600090815260cc60205260408120805483929061070c9084906128c9565b92505081905550856001600160a01b0316876001600160a01b03167fa46b2431e663cf7b50c9d5129aff85d2394ecfd447b7ccba83986510a9d945ea83888860405161075a939291906128e1565b60405180910390a3505b505050505050565b60cd818154811061077c57600080fd5b600091825260209091206003909102018054600182015460029092015460ff90911692506001600160a01b031683565b6107b461109b565b6107be60006112e8565b565b60655433906001600160a01b031681146108475760405162461bcd60e51b815260206004820152602960248201527f4f776e61626c6532537465703a2063616c6c6572206973206e6f74207468652060448201527f6e6577206f776e6572000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103d0816112e8565b61088e6040518060400160405280601881526020017f736574506f6f6c52656769737472792861646472657373290000000000000000815250611319565b6001600160a01b0381166108ce576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60ca80546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907fa87b964d321035d2165e484ff4b722dd6eae30606c0b98887d2ed1a34e594bfe90600090a35050565b6000805b60cd54811015610a4757600060cd828154811061095b5761095b61290e565b9060005260206000209060030201905085600181111561097d5761097d612507565b815460ff16600181111561099357610993612507565b1480156109af575060028101546001600160a01b038681169116145b15610a36576001600160a01b03808816600090815260cb602090815260408083209388168352929052908120818860018111156109ee576109ee612507565b60018111156109ff576109ff612507565b81526020019081526020016000205490506064826001015482610a22919061293d565b610a2c919061297a565b9350505050610a49565b50610a40816129b5565b905061093c565b505b949350505050565b610a72604051806060016040528060328152602001612be960329139611319565b610a7a6113e5565b60005b8151811015610d5a576000828281518110610a9a57610a9a61290e565b6020026020010151905060006001600160a01b031681604001516001600160a01b031603610b305760405162461bcd60e51b815260206004820152603160248201527f50726f746f636f6c5368617265526573657276653a2044657374696e6174696f60448201527f6e206164647265737320696e76616c6964000000000000000000000000000000606482015260840161083e565b6000805b60cd54811015610c3557600060cd8281548110610b5357610b5361290e565b60009182526020909120600390910201805490915060ff166001811115610b7c57610b7c612507565b84516001811115610b8f57610b8f612507565b148015610bb05750604084015160028201546001600160a01b039081169116145b15610c245760028101546001820154602086015183546040516001600160a01b03909416937f86425c9fc7b14328a4d53181ae1cafa5c44688f63636e30200b7384984ac17b893610c0a939092909160ff909116906129ed565b60405180910390a260208401516001918201559150610c35565b50610c2e816129b5565b9050610b34565b5080610d475760cd805460018181018355600092909252835160039091027f83978b4c69c48dd978ab43fe30f077615294f938fb7f936d9eb340e51ea7db2e018054859391929183917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016908381811115610cb257610cb2612507565b02179055506020828101516001830155604092830151600290920180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0393841617905584830151908501518551935191909216927fbfee2691582b93dec113181471d377f858f39c4ba82e135be3d4d7240b11ed3c92610d3e92909190612a04565b60405180910390a25b505080610d53906129b5565b9050610a7d565b506103d0611577565b600054610100900460ff1615808015610d835750600054600160ff909116105b80610d9d5750303b158015610d9d575060005460ff166001145b610e0f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161083e565b600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790558015610e6d57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b610e7682611750565b8015610eda57600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b5050565b610f1c6040518060400160405280601181526020017f7365745072696d65286164647265737329000000000000000000000000000000815250611319565b6001600160a01b038116610f5c576040517fe6c4247b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c980546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f229f487e93a5313f6898190adf00c62e8b5d4c9c46249d31a9cd8a8024007bce90600090a35050565b610fce61109b565b606580546001600160a01b0383167fffffffffffffffffffffffff000000000000000000000000000000000000000090911681179091556110176033546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6110576117de565b60005b815181101561109657611086838383815181106110795761107961290e565b602002602001015161193f565b61108f816129b5565b905061105a565b505050565b6033546001600160a01b031633146107be5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083e565b6001600160a01b0381166111715760405162461bcd60e51b815260206004820152602560248201527f696e76616c696420616365737320636f6e74726f6c206d616e6167657220616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161083e565b609780546001600160a01b038381167fffffffffffffffffffffffff000000000000000000000000000000000000000083168117909355604080519190921680825260208201939093527f66fd58e82f7b31a2a5c30e0888f3093efe4e111b00cd2b0c31fe014601293aa09101610ed1565b60c9546040517fee6b13fc0000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152600092839291169063ee6b13fc90602401602060405180830381865afa15801561124a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061126e9190612864565b90506001600160a01b038116158015906112b957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316145b80156112d6575060008360018111156112d4576112d4612507565b145b156112e057600191505b509392505050565b606580547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556103d081611f19565b6097546040517f18c5e8ab0000000000000000000000000000000000000000000000000000000081526000916001600160a01b0316906318c5e8ab906113659033908690600401612a9b565b602060405180830381865afa158015611382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a69190612842565b905080610eda573330836040517f4a3fa29300000000000000000000000000000000000000000000000000000000815260040161083e93929190612abd565b60c954604080517f375a7cba00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163375a7cba91600480830192869291908290030181865afa158015611447573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261148d9190810190612af2565b905060005b8151811015610eda5760008282815181106114af576114af61290e565b602090810291909101015160c9546040517f9198e5150000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152929350911690639198e51590602401600060405180830381600087803b15801561151c57600080fd5b505af1158015611530573d6000803e3d6000fd5b505050506115667f000000000000000000000000000000000000000000000000000000000000000061156183611f83565b61193f565b50611570816129b5565b9050611492565b60006115846001806128c9565b905060008167ffffffffffffffff8111156115a1576115a16125f3565b6040519080825280602002602001820160405280156115ca578160200160208202803683370190505b50905060005b60cd548110156116b057600060cd82815481106115ef576115ef61290e565b6000918252602090912060408051606081019091526003909202018054829060ff16600181111561162257611622612507565b600181111561163357611633612507565b81526001828101546020808401919091526002909301546001600160a01b031660409092019190915290820151825192935091859181111561167757611677612507565b815181106116875761168761290e565b6020026020010181815161169b91906128c9565b9052506116a99050816129b5565b90506115d0565b5060005b6116bf600184612b81565b81116110965760648282815181106116d9576116d961290e565b60200260200101511415801561170957508181815181106116fc576116fc61290e565b6020026020010151600014155b15611740576040517f0b8ad7f100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611749816129b5565b90506116b4565b600054610100900460ff166117cd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161083e565b6117d561204d565b6103d0816120d2565b60c954604080517f375a7cba00000000000000000000000000000000000000000000000000000000815290516000926001600160a01b03169163375a7cba91600480830192869291908290030181865afa158015611840573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526118869190810190612af2565b905060005b8151811015610eda5760008282815181106118a8576118a861290e565b602090810291909101015160c9546040517f9198e5150000000000000000000000000000000000000000000000000000000081526001600160a01b038084166004830152929350911690639198e51590602401600060405180830381600087803b15801561191557600080fd5b505af1158015611929573d6000803e3d6000fd5b505050505080611938906129b5565b905061188b565b600061194c6001806128c9565b905060008167ffffffffffffffff811115611969576119696125f3565b604051908082528060200260200182016040528015611992578160200160208202803683370190505b5090506000805b83811015611a61576001600160a01b03808716600090815260cb602090815260408083209389168352929052908120908260018111156119db576119db612507565b60018111156119ec576119ec612507565b60018111156119fd576119fd612507565b815260200190815260200160002054838281518110611a1e57611a1e61290e565b602002602001018181525050828181518110611a3c57611a3c61290e565b602002602001015182611a4f91906128c9565b9150611a5a816129b5565b9050611999565b5080600003611a71575050505050565b60008367ffffffffffffffff811115611a8c57611a8c6125f3565b604051908082528060200260200182016040528015611ab5578160200160208202803683370190505b50905060005b60cd54811015611cdf57600060cd8281548110611ada57611ada61290e565b6000918252602090912060408051606081019091526003909202018054829060ff166001811115611b0d57611b0d612507565b6001811115611b1e57611b1e612507565b81526001828101546020808401919091526002909301546001600160a01b0316604090920191909152908201518251929350600092606492899190811115611b6857611b68612507565b81518110611b7857611b7861290e565b6020026020010151611b8a919061293d565b611b94919061297a565b9050808483600001516001811115611bae57611bae612507565b81518110611bbe57611bbe61290e565b60200260200101818151611bd291906128c9565b9052506040820151611bef906001600160a01b038a16908361214f565b60408083015190517faac59a750000000000000000000000000000000000000000000000000000000081526001600160a01b038b811660048301528a811660248301529091169063aac59a7590604401600060405180830381600087803b158015611c5957600080fd5b505af1158015611c6d573d6000803e3d6000fd5b50505050876001600160a01b031682604001516001600160a01b03167f09f71e7b22d78540ee9a42f09917a9d62f46735cb0dfa70d6bab27866d9cb5008460000151856020015185604051611cc493929190612b98565b60405180910390a3505080611cd8906129b5565b9050611abb565b5060008467ffffffffffffffff811115611cfb57611cfb6125f3565b604051908082528060200260200182016040528015611d24578160200160208202803683370190505b50905060005b85811015611f0f57828181518110611d4457611d4461290e565b6020026020010151858281518110611d5e57611d5e61290e565b6020026020010151611d709190612b81565b828281518110611d8257611d8261290e565b602002602001018181525050818181518110611da057611da061290e565b6020908102919091018101516001600160a01b03808b16600090815260cb84526040808220928c1682529190935282209091836001811115611de457611de4612507565b6001811115611df557611df5612507565b6001811115611e0657611e06612507565b815260200190815260200160002081905550828181518110611e2a57611e2a61290e565b602002602001015160cc6000896001600160a01b03166001600160a01b0316815260200190815260200160002054611e629190612b81565b6001600160a01b03808916600081815260cc602052604090209290925589167f7d881f3d6246a6a2b97b121b8ba093c17497912c68e8b2bca6108528e91df3ca836001811115611eb457611eb4612507565b888581518110611ec657611ec661290e565b6020026020010151868681518110611ee057611ee061290e565b6020026020010151604051611ef793929190612b98565b60405180910390a3611f08816129b5565b9050611d2a565b5050505050505050565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031603611fe557507f0000000000000000000000000000000000000000000000000000000000000000919050565b816001600160a01b0316636f307dc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612023573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120479190612864565b92915050565b600054610100900460ff166120ca5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161083e565b6107be6121cf565b600054610100900460ff166103c75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161083e565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052611096908490612255565b600054610100900460ff1661224c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e67000000000000000000000000000000000000000000606482015260840161083e565b6107be336112e8565b60006122aa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661233a9092919063ffffffff16565b80519091501561109657808060200190518101906122c89190612842565b6110965760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161083e565b6060610a49848460008585600080866001600160a01b031685876040516123619190612bb9565b60006040518083038185875af1925050503d806000811461239e576040519150601f19603f3d011682016040523d82523d6000602084013e6123a3565b606091505b50915091506123b4878383876123bf565b979650505050505050565b6060831561242e578251600003612427576001600160a01b0385163b6124275760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161083e565b5081610a49565b610a4983838151156124435781518083602001fd5b8060405162461bcd60e51b815260040161083e9190612bd5565b6001600160a01b03811681146103d057600080fd5b60006020828403121561248457600080fd5b813561248f8161245d565b9392505050565b600281106103d057600080fd5b6000806000606084860312156124b857600080fd5b83356124c38161245d565b925060208401356124d38161245d565b915060408401356124e381612496565b809150509250925092565b60006020828403121561250057600080fd5b5035919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b600281106103d0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6060810161257a85612536565b93815260208101929092526001600160a01b031660409091015290565b600080600080608085870312156125ad57600080fd5b84356125b88161245d565b935060208501356125c881612496565b925060408501356125d88161245d565b915060608501356125e88161245d565b939692955090935050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612645576126456125f3565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612692576126926125f3565b604052919050565b600067ffffffffffffffff8211156126b4576126b46125f3565b5060051b60200190565b600060208083850312156126d157600080fd5b823567ffffffffffffffff8111156126e857600080fd5b8301601f810185136126f957600080fd5b803561270c6127078261269a565b61264b565b8181526060918202830184019184820191908884111561272b57600080fd5b938501935b838510156127875780858a0312156127485760008081fd5b612750612622565b853561275b81612496565b815285870135878201526040808701356127748161245d565b9082015283529384019391850191612730565b50979650505050505050565b600080604083850312156127a657600080fd5b82356127b18161245d565b915060208381013567ffffffffffffffff8111156127ce57600080fd5b8401601f810186136127df57600080fd5b80356127ed6127078261269a565b81815260059190911b8201830190838101908883111561280c57600080fd5b928401925b828410156128335783356128248161245d565b82529284019290840190612811565b80955050505050509250929050565b60006020828403121561285457600080fd5b8151801515811461248f57600080fd5b60006020828403121561287657600080fd5b815161248f8161245d565b60006020828403121561289357600080fd5b5051919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082198211156128dc576128dc61289a565b500190565b838152606081016128f184612536565b83602083015261290083612536565b826040830152949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129755761297561289a565b500290565b6000826129b0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036129e6576129e661289a565b5060010190565b838152602081018390526060810161290083612536565b82815260408101612a1483612536565b8260208301529392505050565b60005b83811015612a3c578181015183820152602001612a24565b83811115612a4b576000848401525b50505050565b60008151808452612a69816020860160208601612a21565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6001600160a01b0383168152604060208201526000610a496040830184612a51565b60006001600160a01b03808616835280851660208401525060606040830152612ae96060830184612a51565b95945050505050565b60006020808385031215612b0557600080fd5b825167ffffffffffffffff811115612b1c57600080fd5b8301601f81018513612b2d57600080fd5b8051612b3b6127078261269a565b81815260059190911b82018301908381019087831115612b5a57600080fd5b928401925b828410156123b4578351612b728161245d565b82529284019290840190612b5f565b600082821015612b9357612b9361289a565b500390565b60608101612ba585612536565b938152602081019290925260409091015290565b60008251612bcb818460208701612a21565b9190910192915050565b60208152600061248f6020830184612a5156fe6164644f72557064617465446973747269627574696f6e436f6e6669677328446973747269627574696f6e436f6e66696729a26469706673582212203811282ceaab1d5f5cee75ac5cc38135b341c6569297b066d72a5a9dd4bd930764736f6c634300080d0033",
739
+ "linkReferences": {},
740
+ "deployedLinkReferences": {}
741
+ }