@keep-network/tbtc-v2 0.1.1-dev.12 → 0.1.1-dev.15
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.
- package/artifacts/TBTC.json +11 -11
- package/artifacts/TBTCToken.json +11 -11
- package/artifacts/VendingMachine.json +18 -18
- package/artifacts/solcInputs/{258c81d1106a1d8dae0e3424749db907.json → a76c1776cec417d8640e42239e23ea4b.json} +20 -14
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.json +2 -2
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.json +2 -2
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.json +2 -2
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.json +365 -2
- package/build/contracts/bridge/Bridge.sol/IRelay.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.json +2 -2
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/token/TBTC.sol/TBTC.json +2 -2
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.json +2 -2
- package/contracts/GovernanceUtils.sol +1 -1
- package/contracts/bank/Bank.sol +1 -1
- package/contracts/bridge/BitcoinTx.sol +3 -2
- package/contracts/bridge/Bridge.sol +855 -58
- package/contracts/bridge/VendingMachine.sol +1 -1
- package/contracts/token/TBTC.sol +1 -1
- package/contracts/vault/IVault.sol +1 -1
- package/contracts/vault/TBTCVault.sol +1 -1
- package/package.json +1 -1
|
@@ -15,6 +15,11 @@
|
|
|
15
15
|
"name": "_relay",
|
|
16
16
|
"type": "address"
|
|
17
17
|
},
|
|
18
|
+
{
|
|
19
|
+
"internalType": "address",
|
|
20
|
+
"name": "_treasury",
|
|
21
|
+
"type": "address"
|
|
22
|
+
},
|
|
18
23
|
{
|
|
19
24
|
"internalType": "uint256",
|
|
20
25
|
"name": "_txProofDifficultyFactor",
|
|
@@ -123,6 +128,68 @@
|
|
|
123
128
|
"name": "OwnershipTransferred",
|
|
124
129
|
"type": "event"
|
|
125
130
|
},
|
|
131
|
+
{
|
|
132
|
+
"anonymous": false,
|
|
133
|
+
"inputs": [
|
|
134
|
+
{
|
|
135
|
+
"indexed": false,
|
|
136
|
+
"internalType": "bytes20",
|
|
137
|
+
"name": "walletPubKeyHash",
|
|
138
|
+
"type": "bytes20"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"indexed": false,
|
|
142
|
+
"internalType": "bytes",
|
|
143
|
+
"name": "redeemerOutputScript",
|
|
144
|
+
"type": "bytes"
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"indexed": false,
|
|
148
|
+
"internalType": "address",
|
|
149
|
+
"name": "redeemer",
|
|
150
|
+
"type": "address"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"indexed": false,
|
|
154
|
+
"internalType": "uint64",
|
|
155
|
+
"name": "requestedAmount",
|
|
156
|
+
"type": "uint64"
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
"indexed": false,
|
|
160
|
+
"internalType": "uint64",
|
|
161
|
+
"name": "treasuryFee",
|
|
162
|
+
"type": "uint64"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"indexed": false,
|
|
166
|
+
"internalType": "uint64",
|
|
167
|
+
"name": "txMaxFee",
|
|
168
|
+
"type": "uint64"
|
|
169
|
+
}
|
|
170
|
+
],
|
|
171
|
+
"name": "RedemptionRequested",
|
|
172
|
+
"type": "event"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"anonymous": false,
|
|
176
|
+
"inputs": [
|
|
177
|
+
{
|
|
178
|
+
"indexed": false,
|
|
179
|
+
"internalType": "bytes20",
|
|
180
|
+
"name": "walletPubKeyHash",
|
|
181
|
+
"type": "bytes20"
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"indexed": false,
|
|
185
|
+
"internalType": "bytes32",
|
|
186
|
+
"name": "redemptionTxHash",
|
|
187
|
+
"type": "bytes32"
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"name": "RedemptionsCompleted",
|
|
191
|
+
"type": "event"
|
|
192
|
+
},
|
|
126
193
|
{
|
|
127
194
|
"anonymous": false,
|
|
128
195
|
"inputs": [
|
|
@@ -245,6 +312,97 @@
|
|
|
245
312
|
"stateMutability": "view",
|
|
246
313
|
"type": "function"
|
|
247
314
|
},
|
|
315
|
+
{
|
|
316
|
+
"inputs": [
|
|
317
|
+
{
|
|
318
|
+
"internalType": "uint256",
|
|
319
|
+
"name": "",
|
|
320
|
+
"type": "uint256"
|
|
321
|
+
}
|
|
322
|
+
],
|
|
323
|
+
"name": "pendingRedemptions",
|
|
324
|
+
"outputs": [
|
|
325
|
+
{
|
|
326
|
+
"internalType": "address",
|
|
327
|
+
"name": "redeemer",
|
|
328
|
+
"type": "address"
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"internalType": "uint64",
|
|
332
|
+
"name": "requestedAmount",
|
|
333
|
+
"type": "uint64"
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"internalType": "uint64",
|
|
337
|
+
"name": "treasuryFee",
|
|
338
|
+
"type": "uint64"
|
|
339
|
+
},
|
|
340
|
+
{
|
|
341
|
+
"internalType": "uint64",
|
|
342
|
+
"name": "txMaxFee",
|
|
343
|
+
"type": "uint64"
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
"internalType": "uint32",
|
|
347
|
+
"name": "requestedAt",
|
|
348
|
+
"type": "uint32"
|
|
349
|
+
}
|
|
350
|
+
],
|
|
351
|
+
"stateMutability": "view",
|
|
352
|
+
"type": "function"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"inputs": [],
|
|
356
|
+
"name": "redemptionDustThreshold",
|
|
357
|
+
"outputs": [
|
|
358
|
+
{
|
|
359
|
+
"internalType": "uint64",
|
|
360
|
+
"name": "",
|
|
361
|
+
"type": "uint64"
|
|
362
|
+
}
|
|
363
|
+
],
|
|
364
|
+
"stateMutability": "view",
|
|
365
|
+
"type": "function"
|
|
366
|
+
},
|
|
367
|
+
{
|
|
368
|
+
"inputs": [],
|
|
369
|
+
"name": "redemptionTimeout",
|
|
370
|
+
"outputs": [
|
|
371
|
+
{
|
|
372
|
+
"internalType": "uint256",
|
|
373
|
+
"name": "",
|
|
374
|
+
"type": "uint256"
|
|
375
|
+
}
|
|
376
|
+
],
|
|
377
|
+
"stateMutability": "view",
|
|
378
|
+
"type": "function"
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"inputs": [],
|
|
382
|
+
"name": "redemptionTreasuryFee",
|
|
383
|
+
"outputs": [
|
|
384
|
+
{
|
|
385
|
+
"internalType": "uint64",
|
|
386
|
+
"name": "",
|
|
387
|
+
"type": "uint64"
|
|
388
|
+
}
|
|
389
|
+
],
|
|
390
|
+
"stateMutability": "view",
|
|
391
|
+
"type": "function"
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"inputs": [],
|
|
395
|
+
"name": "redemptionTxMaxFee",
|
|
396
|
+
"outputs": [
|
|
397
|
+
{
|
|
398
|
+
"internalType": "uint64",
|
|
399
|
+
"name": "",
|
|
400
|
+
"type": "uint64"
|
|
401
|
+
}
|
|
402
|
+
],
|
|
403
|
+
"stateMutability": "view",
|
|
404
|
+
"type": "function"
|
|
405
|
+
},
|
|
248
406
|
{
|
|
249
407
|
"inputs": [],
|
|
250
408
|
"name": "relay",
|
|
@@ -265,6 +423,51 @@
|
|
|
265
423
|
"stateMutability": "nonpayable",
|
|
266
424
|
"type": "function"
|
|
267
425
|
},
|
|
426
|
+
{
|
|
427
|
+
"inputs": [
|
|
428
|
+
{
|
|
429
|
+
"internalType": "bytes20",
|
|
430
|
+
"name": "walletPubKeyHash",
|
|
431
|
+
"type": "bytes20"
|
|
432
|
+
},
|
|
433
|
+
{
|
|
434
|
+
"components": [
|
|
435
|
+
{
|
|
436
|
+
"internalType": "bytes32",
|
|
437
|
+
"name": "txHash",
|
|
438
|
+
"type": "bytes32"
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"internalType": "uint32",
|
|
442
|
+
"name": "txOutputIndex",
|
|
443
|
+
"type": "uint32"
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"internalType": "uint64",
|
|
447
|
+
"name": "txOutputValue",
|
|
448
|
+
"type": "uint64"
|
|
449
|
+
}
|
|
450
|
+
],
|
|
451
|
+
"internalType": "struct BitcoinTx.UTXO",
|
|
452
|
+
"name": "mainUtxo",
|
|
453
|
+
"type": "tuple"
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
"internalType": "bytes",
|
|
457
|
+
"name": "redeemerOutputScript",
|
|
458
|
+
"type": "bytes"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"internalType": "uint64",
|
|
462
|
+
"name": "amount",
|
|
463
|
+
"type": "uint64"
|
|
464
|
+
}
|
|
465
|
+
],
|
|
466
|
+
"name": "requestRedemption",
|
|
467
|
+
"outputs": [],
|
|
468
|
+
"stateMutability": "nonpayable",
|
|
469
|
+
"type": "function"
|
|
470
|
+
},
|
|
268
471
|
{
|
|
269
472
|
"inputs": [
|
|
270
473
|
{
|
|
@@ -360,6 +563,90 @@
|
|
|
360
563
|
"stateMutability": "nonpayable",
|
|
361
564
|
"type": "function"
|
|
362
565
|
},
|
|
566
|
+
{
|
|
567
|
+
"inputs": [
|
|
568
|
+
{
|
|
569
|
+
"components": [
|
|
570
|
+
{
|
|
571
|
+
"internalType": "bytes4",
|
|
572
|
+
"name": "version",
|
|
573
|
+
"type": "bytes4"
|
|
574
|
+
},
|
|
575
|
+
{
|
|
576
|
+
"internalType": "bytes",
|
|
577
|
+
"name": "inputVector",
|
|
578
|
+
"type": "bytes"
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"internalType": "bytes",
|
|
582
|
+
"name": "outputVector",
|
|
583
|
+
"type": "bytes"
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
"internalType": "bytes4",
|
|
587
|
+
"name": "locktime",
|
|
588
|
+
"type": "bytes4"
|
|
589
|
+
}
|
|
590
|
+
],
|
|
591
|
+
"internalType": "struct BitcoinTx.Info",
|
|
592
|
+
"name": "redemptionTx",
|
|
593
|
+
"type": "tuple"
|
|
594
|
+
},
|
|
595
|
+
{
|
|
596
|
+
"components": [
|
|
597
|
+
{
|
|
598
|
+
"internalType": "bytes",
|
|
599
|
+
"name": "merkleProof",
|
|
600
|
+
"type": "bytes"
|
|
601
|
+
},
|
|
602
|
+
{
|
|
603
|
+
"internalType": "uint256",
|
|
604
|
+
"name": "txIndexInBlock",
|
|
605
|
+
"type": "uint256"
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"internalType": "bytes",
|
|
609
|
+
"name": "bitcoinHeaders",
|
|
610
|
+
"type": "bytes"
|
|
611
|
+
}
|
|
612
|
+
],
|
|
613
|
+
"internalType": "struct BitcoinTx.Proof",
|
|
614
|
+
"name": "redemptionProof",
|
|
615
|
+
"type": "tuple"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"components": [
|
|
619
|
+
{
|
|
620
|
+
"internalType": "bytes32",
|
|
621
|
+
"name": "txHash",
|
|
622
|
+
"type": "bytes32"
|
|
623
|
+
},
|
|
624
|
+
{
|
|
625
|
+
"internalType": "uint32",
|
|
626
|
+
"name": "txOutputIndex",
|
|
627
|
+
"type": "uint32"
|
|
628
|
+
},
|
|
629
|
+
{
|
|
630
|
+
"internalType": "uint64",
|
|
631
|
+
"name": "txOutputValue",
|
|
632
|
+
"type": "uint64"
|
|
633
|
+
}
|
|
634
|
+
],
|
|
635
|
+
"internalType": "struct BitcoinTx.UTXO",
|
|
636
|
+
"name": "mainUtxo",
|
|
637
|
+
"type": "tuple"
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
"internalType": "bytes20",
|
|
641
|
+
"name": "walletPubKeyHash",
|
|
642
|
+
"type": "bytes20"
|
|
643
|
+
}
|
|
644
|
+
],
|
|
645
|
+
"name": "submitRedemptionProof",
|
|
646
|
+
"outputs": [],
|
|
647
|
+
"stateMutability": "nonpayable",
|
|
648
|
+
"type": "function"
|
|
649
|
+
},
|
|
363
650
|
{
|
|
364
651
|
"inputs": [
|
|
365
652
|
{
|
|
@@ -439,6 +726,45 @@
|
|
|
439
726
|
"stateMutability": "nonpayable",
|
|
440
727
|
"type": "function"
|
|
441
728
|
},
|
|
729
|
+
{
|
|
730
|
+
"inputs": [
|
|
731
|
+
{
|
|
732
|
+
"internalType": "uint256",
|
|
733
|
+
"name": "",
|
|
734
|
+
"type": "uint256"
|
|
735
|
+
}
|
|
736
|
+
],
|
|
737
|
+
"name": "timedOutRedemptions",
|
|
738
|
+
"outputs": [
|
|
739
|
+
{
|
|
740
|
+
"internalType": "address",
|
|
741
|
+
"name": "redeemer",
|
|
742
|
+
"type": "address"
|
|
743
|
+
},
|
|
744
|
+
{
|
|
745
|
+
"internalType": "uint64",
|
|
746
|
+
"name": "requestedAmount",
|
|
747
|
+
"type": "uint64"
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"internalType": "uint64",
|
|
751
|
+
"name": "treasuryFee",
|
|
752
|
+
"type": "uint64"
|
|
753
|
+
},
|
|
754
|
+
{
|
|
755
|
+
"internalType": "uint64",
|
|
756
|
+
"name": "txMaxFee",
|
|
757
|
+
"type": "uint64"
|
|
758
|
+
},
|
|
759
|
+
{
|
|
760
|
+
"internalType": "uint32",
|
|
761
|
+
"name": "requestedAt",
|
|
762
|
+
"type": "uint32"
|
|
763
|
+
}
|
|
764
|
+
],
|
|
765
|
+
"stateMutability": "view",
|
|
766
|
+
"type": "function"
|
|
767
|
+
},
|
|
442
768
|
{
|
|
443
769
|
"inputs": [
|
|
444
770
|
{
|
|
@@ -452,6 +778,19 @@
|
|
|
452
778
|
"stateMutability": "nonpayable",
|
|
453
779
|
"type": "function"
|
|
454
780
|
},
|
|
781
|
+
{
|
|
782
|
+
"inputs": [],
|
|
783
|
+
"name": "treasury",
|
|
784
|
+
"outputs": [
|
|
785
|
+
{
|
|
786
|
+
"internalType": "address",
|
|
787
|
+
"name": "",
|
|
788
|
+
"type": "address"
|
|
789
|
+
}
|
|
790
|
+
],
|
|
791
|
+
"stateMutability": "view",
|
|
792
|
+
"type": "function"
|
|
793
|
+
},
|
|
455
794
|
{
|
|
456
795
|
"inputs": [],
|
|
457
796
|
"name": "txProofDifficultyFactor",
|
|
@@ -464,10 +803,34 @@
|
|
|
464
803
|
],
|
|
465
804
|
"stateMutability": "view",
|
|
466
805
|
"type": "function"
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
"inputs": [
|
|
809
|
+
{
|
|
810
|
+
"internalType": "bytes20",
|
|
811
|
+
"name": "",
|
|
812
|
+
"type": "bytes20"
|
|
813
|
+
}
|
|
814
|
+
],
|
|
815
|
+
"name": "wallets",
|
|
816
|
+
"outputs": [
|
|
817
|
+
{
|
|
818
|
+
"internalType": "enum Bridge.WalletState",
|
|
819
|
+
"name": "state",
|
|
820
|
+
"type": "uint8"
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
"internalType": "uint64",
|
|
824
|
+
"name": "pendingRedemptionsValue",
|
|
825
|
+
"type": "uint64"
|
|
826
|
+
}
|
|
827
|
+
],
|
|
828
|
+
"stateMutability": "view",
|
|
829
|
+
"type": "function"
|
|
467
830
|
}
|
|
468
831
|
],
|
|
469
|
-
"bytecode": "0x60e06040523480156200001157600080fd5b5060405162005ee538038062005ee58339818101604052810190620000379190620002b6565b620000576200004b620001bc60201b60201c565b620001c460201b60201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415620000ca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000c1906200035a565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000174576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200016b906200037c565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050806080818152505050505062000473565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008151905062000299816200043f565b92915050565b600081519050620002b08162000459565b92915050565b600080600060608486031215620002cc57600080fd5b6000620002dc8682870162000288565b9350506020620002ef8682870162000288565b925050604062000302868287016200029f565b9150509250925092565b60006200031b601b836200039e565b91506200032882620003ed565b602082019050919050565b600062000342601c836200039e565b91506200034f8262000416565b602082019050919050565b6000602082019050818103600083015262000375816200030c565b9050919050565b60006020820190508181036000830152620003978162000333565b9050919050565b600082825260208201905092915050565b6000620003bc82620003c3565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f42616e6b20616464726573732063616e6e6f74206265207a65726f0000000000600082015250565b7f52656c617920616464726573732063616e6e6f74206265207a65726f00000000600082015250565b6200044a81620003af565b81146200045657600080fd5b50565b6200046481620003e3565b81146200047057600080fd5b50565b60805160a05160601c60c05160601c615a20620004c560003960008181610f2b015281816127ec015261288e0152600081816105920152610e1c0152600081816102410152612a8a0152615a206000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c806383a434281161007157806383a43428146101535780638da5cb5b14610183578063b02c43d0146101a1578063b59589d1146101d5578063e53c0b55146101f3578063f2fde38b14610223576100b4565b80632bb818c2146100b957806359a9d90a146100d75780635c0b4812146100f357806360d712fc1461010f578063715018a61461012b57806376cdb03b14610135575b600080fd5b6100c161023f565b6040516100ce919061498d565b60405180910390f35b6100f160048036038101906100ec919061386c565b610263565b005b61010d600480360381019061010891906138eb565b61062c565b005b6101296004803603810190610124919061378c565b610c6d565b005b610133610d92565b005b61013d610e1a565b60405161014a91906145f7565b60405180910390f35b61016d600480360381019061016891906137c8565b610e3e565b60405161017a919061454f565b60405180910390f35b61018b610e56565b6040516101989190614466565b60405180910390f35b6101bb60048036038101906101b69190613969565b610e7f565b6040516101cc959493929190614481565b60405180910390f35b6101dd610f29565b6040516101ea9190614612565b60405180910390f35b61020d60048036038101906102089190613763565b610f4d565b60405161021a919061450b565b60405180910390f35b61023d60048036038101906102389190613763565b610f6d565b005b7f000000000000000000000000000000000000000000000000000000000000000081565b600061026f8484611065565b90506000806102cf86806040019061028791906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061121f565b91509150600060405180606001604052806000801b8152602001600063ffffffff168152602001600067ffffffffffffffff168152509050600060036000856bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526020019081526020016000205490506000801b81146103ef5780866000013587602001602081019061036091906139bb565b88604001602081019061037391906139e4565b6040516020016103859392919061428d565b60405160208183030381529060405280519060200120146103db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d29061494d565b60405180910390fd5b858036038101906103ec9190613940565b91505b60008060006104508b806020019061040791906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050866112f6565b92509250925060008667ffffffffffffffff168461046e9190614d51565b9050600082518261047f9190614b55565b905060005b83518110156104f557818482815181106104c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181516104db9190614d51565b9150818152505080806104ed90614f7b565b915050610484565b508960008960405160200161050c9392919061428d565b60405160208183030381529060405280519060200120600360008b6bffffffffffffffffffffffff19166bffffffffffffffffffffffff19168152602001908152602001600020819055507fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a898b604051610588929190614526565b60405180910390a17f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663266a123a85856040518363ffffffff1660e01b81526004016105eb9291906144d4565b600060405180830381600087803b15801561060557600080fd5b505af1158015610619573d6000803e3d6000fd5b5050505050505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168160c00160208101906106579190613763565b73ffffffffffffffffffffffffffffffffffffffff1614806106d45750600160008260c001602081019061068b9190613763565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070a9061472d565b60405180910390fd5b60008160200160208101906107289190613763565b82604001602081019061073b9190613843565b83606001602081019061074e91906137c8565b84608001602081019061076191906137c8565b8560a0016020810190610774919061381a565b60405160200161078895949392919061432b565b604051602081830303815290604052905060006108188360000160208101906107b191906139bb565b63ffffffff168580604001906107c791906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061181890919063ffffffff16565b9050600061082582611a11565b905060148151141561088e5761083a83611e0e565b80519060200120818051906020012014610889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610880906148cd565b60405180910390fd5b610972565b602081511415610936576002836040516108a89190614314565b602060405180830381855afa1580156108c5573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906108e891906137f1565b6108f182611edb565b14610931576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610928906147cd565b60405180910390fd5b610971565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109689061480d565b60405180910390fd5b5b60006109e686600001602081019061098a919061381a565b87806020019061099a91906149a8565b8980604001906109aa91906149a8565b8b60600160208101906109bd919061381a565b6040516020016109d2969594939291906142ca565b604051602081830303815290604052611efe565b905060006002600083886000016020810190610a0291906139bb565b604051602001610a13929190614261565b6040516020818303038152906040528051906020012060001c81526020019081526020016000209050600081600001601c9054906101000a900463ffffffff1663ffffffff1614610a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a90906148ad565b60405180910390fd5b6000610aa485611fc4565b9050808260000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550866020016020810190610ae49190613763565b8260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504282600001601c6101000a81548163ffffffff021916908363ffffffff1602179055508660c0016020810190610b5c9190613763565b8260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef0583886000016020810190610bd391906139bb565b896020016020810190610be69190613763565b848b6040016020810190610bfa9190613843565b8c6060016020810190610c0d91906137c8565b8d6080016020810190610c2091906137c8565b8e60a0016020810190610c33919061381a565b8f60c0016020810190610c469190613763565b604051610c5b9998979695949392919061456a565b60405180910390a15050505050505050565b610c75611fec565b73ffffffffffffffffffffffffffffffffffffffff16610c93610e56565b73ffffffffffffffffffffffffffffffffffffffff1614610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce09061484d565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f82604051610d86919061450b565b60405180910390a25050565b610d9a611fec565b73ffffffffffffffffffffffffffffffffffffffff16610db8610e56565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e059061484d565b60405180910390fd5b610e186000611ff4565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b60036020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900467ffffffffffffffff169080600001601c9054906101000a900463ffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900463ffffffff16905085565b7f000000000000000000000000000000000000000000000000000000000000000081565b60016020528060005260406000206000915054906101000a900460ff1681565b610f75611fec565b73ffffffffffffffffffffffffffffffffffffffff16610f93610e56565b73ffffffffffffffffffffffffffffffffffffffff1614610fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe09061484d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110509061464d565b60405180910390fd5b61106281611ff4565b50565b60006110c283806020019061107a91906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506120b8565b611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f8906147ad565b60405180910390fd5b61115c83806040019061111491906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121b3565b61119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111929061488d565b60405180910390fd5b61120d8360000160208101906111b1919061381a565b8480602001906111c191906149a8565b8680604001906111d191906149a8565b8860600160208101906111e4919061381a565b6040516020016111f9969594939291906142ca565b604051602081830303815290604052611efe565b905061121981836122ae565b92915050565b600080600061122d84612413565b91505060018114611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a906146cd565b60405180910390fd5b600061128960008661181890919063ffffffff16565b905061129481611fc4565b925060006112a182611a11565b905060148151146112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de9061462d565b60405180910390fd5b60208101519450505050915091565b600060608060008060001b8560000151141590506000808061131789612413565b91509150600082600161132a9190614ac8565b905084156113445760018261133f9190614d51565b611346565b815b67ffffffffffffffff811115611385577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156113b35781602001602082028036833780820191505090505b509650865167ffffffffffffffff8111156113f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156114255781602001602082028036833780820191505090505b5095506000805b83811015611781578b51831061144157611781565b60008060006114508f8761242a565b925092509250600060026000858560405160200161146f929190614261565b6040516020818303038152906040528051906020012060001c81526020019081526020016000209050600081600001601c9054906101000a900463ffffffff1663ffffffff16146116df5760008160010160149054906101000a900463ffffffff1663ffffffff1614611517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150e9061478d565b60405180910390fd5b8c5186141561155b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611552906147ed565b60405180910390fd5b428160010160146101000a81548163ffffffff021916908363ffffffff1602179055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168d87815181106115dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508060000160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168c8781518110611672577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250508b86815181106116b7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518e6116ca9190614ac8565b9d5085806116d790614f7b565b96505061175c565b8915158b1515141580156116f65750838f60000151145b15611720578e6040015167ffffffffffffffff168e6117159190614ac8565b9d506001995061175b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117529061470d565b60405180910390fd5b5b81876117689190614ac8565b965050505050808061177990614f7b565b91505061142c565b50600081116117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc9061490d565b60405180910390fd5b8415158615151461180b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611802906147ed565b60405180910390fd5b5050505050509250925092565b606060008061182685612413565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611888906146ad565b60405180910390fd5b8084106118d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ca9061492d565b60405180910390fd5b6000808360016118e39190614ac8565b905060005b86811015611980576118fa8883612480565b92507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83141561195f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611956906146ed565b60405180910390fd5b828261196b9190614ac8565b9150808061197890614f7b565b9150506118e8565b5061198b8782612480565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156119f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e7906146ed565b60405180910390fd5b611a058183896125559092919063ffffffff16565b94505050505092915050565b6060600082600881518110611a4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c90508251600982611a6e9190614b1e565b60ff1614611a8e5760405180602001604052806000815250915050611e09565b600083600981518110611aca577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415611bbd5760028160ff161015611b055760405180602001604052806000815250915050611e09565b600083600a81518110611b41577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff169050600282611b619190614d85565b60ff1681141580611b80575060208114158015611b7f575060148114155b5b15611b9e576040518060200160405280600081525092505050611e09565b611bb4600b82866125559092919063ffffffff16565b92505050611e09565b6000611bd360088561261b90919063ffffffff16565b90507f1976a90000000000000000000000000000000000000000000000000000000000817cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415611d1557601484600b81518110611c59577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141580611cd757507f88ac000000000000000000000000000000000000000000000000000000000000611cb360028651611ca49190614d51565b8661262f90919063ffffffff16565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611cf5576040518060200160405280600081525092505050611e09565b611d0c600c6014866125559092919063ffffffff16565b92505050611e09565b7f17a9140000000000000000000000000000000000000000000000000000000000817cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415611df45760878460018651611d6e9190614d51565b81518110611da5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614611dd4576040518060200160405280600081525092505050611e09565b611deb600b6014866125559092919063ffffffff16565b92505050611e09565b50604051806020016040528060008152509150505b919050565b60606003600283604051611e229190614314565b602060405180830381855afa158015611e3f573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611e6291906137f1565b604051602001611e729190614246565b604051602081830303815290604052604051611e8e9190614314565b602060405180830381855afa158015611eab573d6000803e3d6000fd5b5050506040515160601b604051602001611ec5919061422b565b6040516020818303038152906040529050919050565b60008082511415611ef1576000801b9050611ef9565b602082015190505b919050565b600060028083604051611f119190614314565b602060405180830381855afa158015611f2e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f5191906137f1565b604051602001611f619190614246565b604051602081830303815290604052604051611f7d9190614314565b602060405180830381855afa158015611f9a573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611fbd91906137f1565b9050919050565b600080611fd083612643565b60c01c90506000611fe082612660565b90508092505050919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060006120c684612413565b809250819350505060008114806120fc57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82145b1561210c576000925050506121ae565b600082600161211b9190614ac8565b905060005b828110156121a3578551821061213d5760009450505050506121ae565b600061214987846126ef565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811415612181576000955050505050506121ae565b808361218d9190614ac8565b925050808061219b90614f7b565b915050612120565b508451811493505050505b919050565b60008060006121c184612413565b809250819350505060008114806121f757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82145b15612207576000925050506122a9565b60008260016122169190614ac8565b905060005b8281101561229e57855182106122385760009450505050506122a9565b60006122448784612480565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81141561227c576000955050505050506122a9565b80836122889190614ac8565b925050808061229690614f7b565b91505061221b565b508451811493505050505b919050565b61237561230c8280604001906122c491906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612787565b82806000019061231c91906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508360200135856127a4909392919063ffffffff16565b6123b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ab9061486d565b60405180910390fd5b61240f8180604001906123c791906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506127e7565b5050565b600080612421836000612afe565b91509150915091565b60008060006124428486612ca590919063ffffffff16565b925061246261245a8587612cc290919063ffffffff16565b60e01c612ceb565b915061247784866126ef90919063ffffffff16565b90509250925092565b600081600961248f9190614ac8565b835110156124bf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061254f565b6000806124d8858560086124d39190614ac8565b612afe565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612532577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9250505061254f565b808260096125409190614ac8565b61254a9190614ac8565b925050505b92915050565b6060600082141561257757604051806020016040528060008152509050612614565b600082846125859190614ac8565b90508381118015612597575080855110155b6125d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cd9061496d565b60405180910390fd5b604051915082604083010160405282825283850182038460208701018481015b8082101561260f578151838301526020820191506125f6565b505050505b9392505050565b60006126278383612d31565b905092915050565b600061263b8383612d31565b905092915050565b6000612659600083612d4290919063ffffffff16565b9050919050565b6000819050600866ff00ff00ff00ff821667ffffffffffffffff16901b66ff00ff00ff00ff60088367ffffffffffffffff16901c16179050601065ffff0000ffff821667ffffffffffffffff16901b65ffff0000ffff60108367ffffffffffffffff16901c1617905060208167ffffffffffffffff16901b60208267ffffffffffffffff16901c179050919050565b60008060006126fe8585612d56565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612758577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92505050612781565b6004818360256127689190614ac8565b6127729190614ac8565b61277c9190614ac8565b925050505b92915050565b600061279d602483612d3190919063ffffffff16565b9050919050565b600083851480156127b55750600082145b80156127c2575060008351145b156127d057600190506127df565b6127dc85848685612dcb565b90505b949350505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561285057600080fd5b505afa158015612864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128889190613992565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b1580156128f257600080fd5b505afa158015612906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292a9190613992565b9050600061293f61293a86612e96565b612f48565b9050828114156129515782935061299d565b818114156129615781935061299c565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129939061468d565b60405180910390fd5b5b60006129a886612f80565b90506129b26130cd565b8114156129f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129eb9061482d565b60405180910390fd5b6129fc6130f5565b811415612a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a359061466d565b60405180910390fd5b612a4661311d565b811415612a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7f9061474d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000085612ab49190614cf7565b811015612af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aed9061476d565b60405180910390fd5b505050505050565b6000806000612b0d8585613145565b905060008160ff161415612b74576000858581518110612b56577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c8060ff1690509250925050612c9e565b83816001612b829190614b1e565b60ff16612b8f9190614ac8565b85511015612bc4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60009250925050612c9e565b600060028260ff161415612c0757612bfc612bf4866001612be59190614ac8565b8861262f90919063ffffffff16565b60f01c613263565b61ffff169050612c8f565b60048260ff161415612c4a57612c3d612c35866001612c269190614ac8565b8861327f90919063ffffffff16565b60e01c612ceb565b63ffffffff169050612c8e565b60088260ff161415612c8d57612c80612c78866001612c699190614ac8565b88612d4290919063ffffffff16565b60c01c612660565b67ffffffffffffffff1690505b5b5b81818160ff1691509350935050505b9250929050565b6000612cba8284612d3190919063ffffffff16565b905092915050565b6000612ce3826020612cd49190614ac8565b8461327f90919063ffffffff16565b905092915050565b6000819050600862ff00ff821663ffffffff16901b62ff00ff60088363ffffffff16901c1617905060108163ffffffff16901b60108263ffffffff16901c179050919050565b600081602084010151905092915050565b6000612d4e8383612d31565b905092915050565b600080826025612d669190614ac8565b84511015612d9a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600091509150612dc4565b600080612db386602487612dae9190614ac8565b612afe565b809250819350505081819350935050505b9250929050565b60008060208551612ddc9190615034565b14612dea5760009050612e8e565b600084511415612dfd5760009050612e8e565b6000829050600086905060005b8651811015612e85576001600284612e229190615034565b1415612e4b57612e44612e3e8289612d3190919063ffffffff16565b83613293565b9150612e6a565b612e6782612e62838a612d3190919063ffffffff16565b613293565b91505b600183901c9250602081612e7e9190614ac8565b9050612e0a565b50848114925050505b949350505050565b600080612ead60488461261b90919063ffffffff16565b60e81c9050600083604b81518110612eee577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c90506000612f09836132a7565b62ffffff1690506000600383612f1f9190614d85565b60ff16905080610100612f329190614bd9565b82612f3d9190614cf7565b945050505050919050565b6000612f79827bffff00000000000000000000000000000000000000000000000000006132cb90919063ffffffff16565b9050919050565b60008060508351612f919190615034565b14612fbe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506130c8565b600080915060606040519050606060200181016040526050815260005b84518110156130c457612ff98282876132e19092919063ffffffff16565b6000811461303b5761300b828461337b565b61303a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe93505050506130c8565b5b600061304683612e96565b9050613051836133a6565b9350806130608560001c6133ce565b1115613092577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd9450505050506130c8565b6130ad61309e82612f48565b8661350b90919063ffffffff16565b9450506050816130bd9190614ac8565b9050612fdb565b5050505b919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe905090565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd905090565b600060ff838381518110613182577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614156131a2576008905061325d565b60fe8383815181106131dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614156131fd576004905061325d565b60fd838381518110613238577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415613258576002905061325d565b600090505b92915050565b600060088261ffff16901c60088361ffff16901b179050919050565b600061328b8383612d31565b905092915050565b600061329f8383613564565b905092915050565b600060108262ffffff16901c61ff00831660108462ffffff16901b17179050919050565b600081836132d99190614b55565b905092915050565b600082519050600081836132f59190614ac8565b90508281118015613307575080855110155b613346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161333d9061496d565b60405180910390fd5b826020860101602085018382015b808310156133715782518252602083019250602082019150613354565b5050505050505050565b60008061338784613593565b905082811461339a5760009150506133a0565b60019150505b92915050565b60006020600083516020850160025afa50602060006020600060025afa506000519050919050565b600081905060087eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff8216901b7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff600883901c1617905060107dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff8216901b7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff601083901c1617905060207bffffffff00000000ffffffff00000000ffffffff00000000ffffffff8216901b7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff602083901c16179050604077ffffffffffffffff0000000000000000ffffffffffffffff8216901b77ffffffffffffffff0000000000000000ffffffffffffffff604083901c16179050608081901b608082901c179050919050565b600081836135199190614ac8565b90508281101561355e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613555906148ed565b60405180910390fd5b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa50600051905092915050565b60006135a9600483612d3190919063ffffffff16565b9050919050565b6000813590506135bf8161591b565b92915050565b6000813590506135d481615932565b92915050565b6000813590506135e981615949565b92915050565b6000813590506135fe81615960565b92915050565b60008151905061361381615960565b92915050565b60008135905061362881615977565b92915050565b60008135905061363d8161598e565b92915050565b60006080828403121561365557600080fd5b81905092915050565b60006060828403121561367057600080fd5b81905092915050565b600060e0828403121561368b57600080fd5b81905092915050565b6000606082840312156136a657600080fd5b81905092915050565b6000606082840312156136c157600080fd5b6136cb60606149ff565b905060006136db848285016135ef565b60008301525060206136ef84828501613739565b60208301525060406137038482850161374e565b60408301525092915050565b60008135905061371e816159a5565b92915050565b600081519050613733816159a5565b92915050565b600081359050613748816159bc565b92915050565b60008135905061375d816159d3565b92915050565b60006020828403121561377557600080fd5b6000613783848285016135b0565b91505092915050565b6000806040838503121561379f57600080fd5b60006137ad858286016135b0565b92505060206137be858286016135c5565b9150509250929050565b6000602082840312156137da57600080fd5b60006137e8848285016135da565b91505092915050565b60006020828403121561380357600080fd5b600061381184828501613604565b91505092915050565b60006020828403121561382c57600080fd5b600061383a84828501613619565b91505092915050565b60006020828403121561385557600080fd5b60006138638482850161362e565b91505092915050565b600080600060a0848603121561388157600080fd5b600084013567ffffffffffffffff81111561389b57600080fd5b6138a786828701613643565b935050602084013567ffffffffffffffff8111156138c457600080fd5b6138d08682870161365e565b92505060406138e186828701613694565b9150509250925092565b60008061010083850312156138ff57600080fd5b600083013567ffffffffffffffff81111561391957600080fd5b61392585828601613643565b925050602061393685828601613679565b9150509250929050565b60006060828403121561395257600080fd5b6000613960848285016136af565b91505092915050565b60006020828403121561397b57600080fd5b60006139898482850161370f565b91505092915050565b6000602082840312156139a457600080fd5b60006139b284828501613724565b91505092915050565b6000602082840312156139cd57600080fd5b60006139db84828501613739565b91505092915050565b6000602082840312156139f657600080fd5b6000613a048482850161374e565b91505092915050565b6000613a198383613a3d565b60208301905092915050565b6000613a3183836141c1565b60208301905092915050565b613a4681614db9565b82525050565b613a5581614db9565b82525050565b613a6c613a6782614db9565b614fc4565b82525050565b6000613a7d82614a44565b613a878185614a7f565b9350613a9283614a24565b8060005b83811015613ac3578151613aaa8882613a0d565b9750613ab583614a65565b925050600181019050613a96565b5085935050505092915050565b6000613adb82614a4f565b613ae58185614a90565b9350613af083614a34565b8060005b83811015613b21578151613b088882613a25565b9750613b1383614a72565b925050600181019050613af4565b5085935050505092915050565b613b3781614dcb565b82525050565b613b4681614dd7565b82525050565b613b5d613b5882614dd7565b614fd6565b82525050565b613b6c81614e03565b82525050565b613b83613b7e82614e03565b614fe0565b82525050565b613b9281614e0d565b82525050565b613ba9613ba482614e0d565b614fea565b82525050565b613bb881614e39565b82525050565b613bcf613bca82614e39565b614ff4565b82525050565b6000613be18385614aa1565b9350613bee838584614f08565b82840190509392505050565b6000613c0582614a5a565b613c0f8185614aa1565b9350613c1f818560208601614f17565b80840191505092915050565b613c3481614ec0565b82525050565b613c4381614ee4565b82525050565b6000613c56600183614abd565b9150613c6182615137565b600182019050919050565b6000613c79602b83614aac565b9150613c8482615160565b604082019050919050565b6000613c9c600183614abd565b9150613ca7826151af565b600182019050919050565b6000613cbf602683614aac565b9150613cca826151d8565b604082019050919050565b6000613ce2601583614aac565b9150613ced82615227565b602082019050919050565b6000613d05600183614abd565b9150613d1082615250565b600182019050919050565b6000613d28602583614aac565b9150613d3382615279565b604082019050919050565b6000613d4b600183614abd565b9150613d56826152c8565b600182019050919050565b6000613d6e602283614aac565b9150613d79826152f1565b604082019050919050565b6000613d91602b83614aac565b9150613d9c82615340565b604082019050919050565b6000613db4601a83614aac565b9150613dbf8261538f565b602082019050919050565b6000613dd7600183614abd565b9150613de2826153b8565b600182019050919050565b6000613dfa601283614aac565b9150613e05826153e1565b602082019050919050565b6000613e1d601483614aac565b9150613e288261540a565b602082019050919050565b6000613e40601d83614aac565b9150613e4b82615433565b602082019050919050565b6000613e63600183614abd565b9150613e6e8261545c565b600182019050919050565b6000613e86600183614abd565b9150613e9182615485565b600182019050919050565b6000613ea9603383614aac565b9150613eb4826154ae565b604082019050919050565b6000613ecc601583614aac565b9150613ed7826154fd565b602082019050919050565b6000613eef601d83614aac565b9150613efa82615526565b602082019050919050565b6000613f12601983614aac565b9150613f1d8261554f565b602082019050919050565b6000613f35603a83614aac565b9150613f4082615578565b604082019050919050565b6000613f58601883614aac565b9150613f63826155c7565b602082019050919050565b6000613f7b600183614abd565b9150613f86826155f0565b600182019050919050565b6000613f9e602383614aac565b9150613fa982615619565b604082019050919050565b6000613fc1602083614aac565b9150613fcc82615668565b602082019050919050565b6000613fe4603c83614aac565b9150613fef82615691565b604082019050919050565b6000614007600183614abd565b9150614012826156e0565b600182019050919050565b600061402a600183614abd565b915061403582615709565b600182019050919050565b600061404d601e83614aac565b915061405882615732565b602082019050919050565b6000614070601883614aac565b915061407b8261575b565b602082019050919050565b6000614093601983614aac565b915061409e82615784565b602082019050919050565b60006140b6600183614abd565b91506140c1826157ad565b600182019050919050565b60006140d9601983614aac565b91506140e4826157d6565b602082019050919050565b60006140fc603383614aac565b9150614107826157ff565b604082019050919050565b600061411f601183614aac565b915061412a8261584e565b602082019050919050565b6000614142601683614aac565b915061414d82615877565b602082019050919050565b6000614165601383614aac565b9150614170826158a0565b602082019050919050565b6000614188600183614abd565b9150614193826158c9565b600182019050919050565b60006141ab600183614abd565b91506141b6826158f2565b600182019050919050565b6141ca81614e85565b82525050565b6141d981614e85565b82525050565b6141e881614e8f565b82525050565b6141ff6141fa82614e8f565b615010565b82525050565b61420e81614e9f565b82525050565b61422561422082614e9f565b615022565b82525050565b60006142378284613b4c565b60148201915081905092915050565b60006142528284613b72565b60208201915081905092915050565b600061426d8285613b72565b60208201915061427d82846141ee565b6004820191508190509392505050565b60006142998286613b72565b6020820191506142a982856141ee565b6004820191506142b98284614214565b600882019150819050949350505050565b60006142d68289613b98565b6004820191506142e7828789613bd5565b91506142f4828587613bd5565b91506143008284613b98565b600482019150819050979650505050505050565b60006143208284613bfa565b915081905092915050565b600061433682613dca565b91506143428288613a5b565b60148201915061435182613d3e565b915061435c826140a9565b91506143688287613bbe565b60088201915061437782613d3e565b915061438282613ffa565b915061438d82613e56565b915061439882613dca565b91506143a48286613b4c565b6014820191506143b382613f6e565b91506143be82613c49565b91506143c98261419e565b91506143d482613c8f565b91506143df82613ffa565b91506143ea82613e56565b91506143f582613dca565b91506144018285613b4c565b60148201915061441082613cf8565b915061441b8261417b565b91506144278284613b98565b60048201915061443682613e79565b915061444182613d3e565b915061444c8261419e565b91506144578261401d565b91508190509695505050505050565b600060208201905061447b6000830184613a4c565b92915050565b600060a0820190506144966000830188613a4c565b6144a36020830187614205565b6144b060408301866141df565b6144bd6060830185613a4c565b6144ca60808301846141df565b9695505050505050565b600060408201905081810360008301526144ee8185613a72565b905081810360208301526145028184613ad0565b90509392505050565b60006020820190506145206000830184613b2e565b92915050565b600060408201905061453b6000830185613b3d565b6145486020830184613b63565b9392505050565b60006020820190506145646000830184613b63565b92915050565b600061012082019050614580600083018c613b63565b61458d602083018b6141df565b61459a604083018a613a4c565b6145a76060830189614205565b6145b46080830188613baf565b6145c160a0830187613b3d565b6145ce60c0830186613b3d565b6145db60e0830185613b89565b6145e9610100830184613a4c565b9a9950505050505050505050565b600060208201905061460c6000830184613c2b565b92915050565b60006020820190506146276000830184613c3a565b92915050565b6000602082019050818103600083015261464681613c6c565b9050919050565b6000602082019050818103600083015261466681613cb2565b9050919050565b6000602082019050818103600083015261468681613cd5565b9050919050565b600060208201905081810360008301526146a681613d1b565b9050919050565b600060208201905081810360008301526146c681613d61565b9050919050565b600060208201905081810360008301526146e681613d84565b9050919050565b6000602082019050818103600083015261470681613da7565b9050919050565b6000602082019050818103600083015261472681613ded565b9050919050565b6000602082019050818103600083015261474681613e10565b9050919050565b6000602082019050818103600083015261476681613e33565b9050919050565b6000602082019050818103600083015261478681613e9c565b9050919050565b600060208201905081810360008301526147a681613ebf565b9050919050565b600060208201905081810360008301526147c681613ee2565b9050919050565b600060208201905081810360008301526147e681613f05565b9050919050565b6000602082019050818103600083015261480681613f28565b9050919050565b6000602082019050818103600083015261482681613f4b565b9050919050565b6000602082019050818103600083015261484681613f91565b9050919050565b6000602082019050818103600083015261486681613fb4565b9050919050565b6000602082019050818103600083015261488681613fd7565b9050919050565b600060208201905081810360008301526148a681614040565b9050919050565b600060208201905081810360008301526148c681614063565b9050919050565b600060208201905081810360008301526148e681614086565b9050919050565b60006020820190508181036000830152614906816140cc565b9050919050565b60006020820190508181036000830152614926816140ef565b9050919050565b6000602082019050818103600083015261494681614112565b9050919050565b6000602082019050818103600083015261496681614135565b9050919050565b6000602082019050818103600083015261498681614158565b9050919050565b60006020820190506149a260008301846141d0565b92915050565b600080833560016020038436030381126149c157600080fd5b80840192508235915067ffffffffffffffff8211156149df57600080fd5b6020830192506001820236038313156149f757600080fd5b509250929050565b6000614a09614a1a565b9050614a158282614f4a565b919050565b6000604051905090565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614ad382614e85565b9150614ade83614e85565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614b1357614b12615065565b5b828201905092915050565b6000614b2982614eb3565b9150614b3483614eb3565b92508260ff03821115614b4a57614b49615065565b5b828201905092915050565b6000614b6082614e85565b9150614b6b83614e85565b925082614b7b57614b7a615094565b5b828204905092915050565b6000808291508390505b6001851115614bd057808604811115614bac57614bab615065565b5b6001851615614bbb5780820291505b8081029050614bc98561512a565b9450614b90565b94509492505050565b6000614be482614e85565b9150614bef83614e85565b9250614c1c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614c24565b905092915050565b600082614c345760019050614cf0565b81614c425760009050614cf0565b8160018114614c585760028114614c6257614c91565b6001915050614cf0565b60ff841115614c7457614c73615065565b5b8360020a915084821115614c8b57614c8a615065565b5b50614cf0565b5060208310610133831016604e8410600b8410161715614cc65782820a905083811115614cc157614cc0615065565b5b614cf0565b614cd38484846001614b86565b92509050818404811115614cea57614ce9615065565b5b81810290505b9392505050565b6000614d0282614e85565b9150614d0d83614e85565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614d4657614d45615065565b5b828202905092915050565b6000614d5c82614e85565b9150614d6783614e85565b925082821015614d7a57614d79615065565b5b828203905092915050565b6000614d9082614eb3565b9150614d9b83614eb3565b925082821015614dae57614dad615065565b5b828203905092915050565b6000614dc482614e65565b9050919050565b60008115159050919050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b6000614ecb82614ed2565b9050919050565b6000614edd82614e65565b9050919050565b6000614eef82614ef6565b9050919050565b6000614f0182614e65565b9050919050565b82818337600083830152505050565b60005b83811015614f35578082015181840152602081019050614f1a565b83811115614f44576000848401525b50505050565b614f53826150f2565b810181811067ffffffffffffffff82111715614f7257614f716150c3565b5b80604052505050565b6000614f8682614e85565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614fb957614fb8615065565b5b600182019050919050565b6000614fcf82614ffe565b9050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b60006150098261511d565b9050919050565b600061501b82615110565b9050919050565b600061502d82615103565b9050919050565b600061503f82614e85565b915061504a83614e85565b92508261505a57615059615094565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160c01b9050919050565b60008160e01b9050919050565b60008160601b9050919050565b60008160011c9050919050565b7f6300000000000000000000000000000000000000000000000000000000000000600082015250565b7f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160008201527f7665203230206279746573000000000000000000000000000000000000000000602082015250565b7f6700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c6964206865616465727320636861696e0000000000000000000000600082015250565b7f8800000000000000000000000000000000000000000000000000000000000000600082015250565b7f4e6f742061742063757272656e74206f722070726576696f757320646966666960008201527f63756c7479000000000000000000000000000000000000000000000000000000602082015250565b7f7500000000000000000000000000000000000000000000000000000000000000600082015250565b7f52656164206f76657272756e20647572696e6720566172496e7420706172736960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b7f5377656570207472616e73616374696f6e206d7573742068617665206120736960008201527f6e676c65206f7574707574000000000000000000000000000000000000000000602082015250565b7f42616420566172496e7420696e207363726970745075626b6579000000000000600082015250565b7f1400000000000000000000000000000000000000000000000000000000000000600082015250565b7f556e6b6e6f776e20696e70757420747970650000000000000000000000000000600082015250565b7f5661756c74206973206e6f742074727573746564000000000000000000000000600082015250565b7f496e73756666696369656e7420776f726b20696e206120686561646572000000600082015250565b7fa900000000000000000000000000000000000000000000000000000000000000600082015250565b7fb100000000000000000000000000000000000000000000000000000000000000600082015250565b7f496e73756666696369656e7420616363756d756c61746564206469666669637560008201527f6c747920696e2068656164657220636861696e00000000000000000000000000602082015250565b7f4465706f73697420616c72656164792073776570740000000000000000000000600082015250565b7f496e76616c696420696e70757420766563746f722070726f7669646564000000600082015250565b7f57726f6e672033322d6279746520736372697074206861736800000000000000600082015250565b7f4578706563746564206d61696e205554584f206e6f742070726573656e74206960008201527f6e207377656570207472616e73616374696f6e20696e70757473000000000000602082015250565b7f57726f6e67207363726970742068617368206c656e6774680000000000000000600082015250565b7f8700000000000000000000000000000000000000000000000000000000000000600082015250565b7f496e76616c6964206c656e677468206f6620746865206865616465727320636860008201527f61696e0000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260008201527f2070726f76696465642068656164657220616e64207478206861736800000000602082015250565b7f7600000000000000000000000000000000000000000000000000000000000000600082015250565b7f6800000000000000000000000000000000000000000000000000000000000000600082015250565b7f496e76616c6964206f757470757420766563746f722070726f76696465640000600082015250565b7f4465706f73697420616c72656164792072657665616c65640000000000000000600082015250565b7f57726f6e672032302d6279746520736372697074206861736800000000000000600082015250565b7f0800000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000600082015250565b7f5377656570207472616e73616374696f6e206d7573742070726f63657373206160008201527f74206c65617374206f6e65206465706f73697400000000000000000000000000602082015250565b7f566f75742072656164206f76657272756e000000000000000000000000000000600082015250565b7f496e76616c6964206d61696e205554584f206461746100000000000000000000600082015250565b7f536c696365206f7574206f6620626f756e647300000000000000000000000000600082015250565b7f0400000000000000000000000000000000000000000000000000000000000000600082015250565b7fac00000000000000000000000000000000000000000000000000000000000000600082015250565b61592481614db9565b811461592f57600080fd5b50565b61593b81614dcb565b811461594657600080fd5b50565b61595281614dd7565b811461595d57600080fd5b50565b61596981614e03565b811461597457600080fd5b50565b61598081614e0d565b811461598b57600080fd5b50565b61599781614e39565b81146159a257600080fd5b50565b6159ae81614e85565b81146159b957600080fd5b50565b6159c581614e8f565b81146159d057600080fd5b50565b6159dc81614e9f565b81146159e757600080fd5b5056fea2646970667358221220375698d9ec20650083b6de2fbd23bc7c40b8302061fbfdb406c82b6df78ee86b64736f6c63430008040033",
|
|
470
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806383a434281161007157806383a43428146101535780638da5cb5b14610183578063b02c43d0146101a1578063b59589d1146101d5578063e53c0b55146101f3578063f2fde38b14610223576100b4565b80632bb818c2146100b957806359a9d90a146100d75780635c0b4812146100f357806360d712fc1461010f578063715018a61461012b57806376cdb03b14610135575b600080fd5b6100c161023f565b6040516100ce919061498d565b60405180910390f35b6100f160048036038101906100ec919061386c565b610263565b005b61010d600480360381019061010891906138eb565b61062c565b005b6101296004803603810190610124919061378c565b610c6d565b005b610133610d92565b005b61013d610e1a565b60405161014a91906145f7565b60405180910390f35b61016d600480360381019061016891906137c8565b610e3e565b60405161017a919061454f565b60405180910390f35b61018b610e56565b6040516101989190614466565b60405180910390f35b6101bb60048036038101906101b69190613969565b610e7f565b6040516101cc959493929190614481565b60405180910390f35b6101dd610f29565b6040516101ea9190614612565b60405180910390f35b61020d60048036038101906102089190613763565b610f4d565b60405161021a919061450b565b60405180910390f35b61023d60048036038101906102389190613763565b610f6d565b005b7f000000000000000000000000000000000000000000000000000000000000000081565b600061026f8484611065565b90506000806102cf86806040019061028791906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061121f565b91509150600060405180606001604052806000801b8152602001600063ffffffff168152602001600067ffffffffffffffff168152509050600060036000856bffffffffffffffffffffffff19166bffffffffffffffffffffffff191681526020019081526020016000205490506000801b81146103ef5780866000013587602001602081019061036091906139bb565b88604001602081019061037391906139e4565b6040516020016103859392919061428d565b60405160208183030381529060405280519060200120146103db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d29061494d565b60405180910390fd5b858036038101906103ec9190613940565b91505b60008060006104508b806020019061040791906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050866112f6565b92509250925060008667ffffffffffffffff168461046e9190614d51565b9050600082518261047f9190614b55565b905060005b83518110156104f557818482815181106104c7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181516104db9190614d51565b9150818152505080806104ed90614f7b565b915050610484565b508960008960405160200161050c9392919061428d565b60405160208183030381529060405280519060200120600360008b6bffffffffffffffffffffffff19166bffffffffffffffffffffffff19168152602001908152602001600020819055507fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a898b604051610588929190614526565b60405180910390a17f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663266a123a85856040518363ffffffff1660e01b81526004016105eb9291906144d4565b600060405180830381600087803b15801561060557600080fd5b505af1158015610619573d6000803e3d6000fd5b5050505050505050505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168160c00160208101906106579190613763565b73ffffffffffffffffffffffffffffffffffffffff1614806106d45750600160008260c001602081019061068b9190613763565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610713576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070a9061472d565b60405180910390fd5b60008160200160208101906107289190613763565b82604001602081019061073b9190613843565b83606001602081019061074e91906137c8565b84608001602081019061076191906137c8565b8560a0016020810190610774919061381a565b60405160200161078895949392919061432b565b604051602081830303815290604052905060006108188360000160208101906107b191906139bb565b63ffffffff168580604001906107c791906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061181890919063ffffffff16565b9050600061082582611a11565b905060148151141561088e5761083a83611e0e565b80519060200120818051906020012014610889576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610880906148cd565b60405180910390fd5b610972565b602081511415610936576002836040516108a89190614314565b602060405180830381855afa1580156108c5573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906108e891906137f1565b6108f182611edb565b14610931576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610928906147cd565b60405180910390fd5b610971565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109689061480d565b60405180910390fd5b5b60006109e686600001602081019061098a919061381a565b87806020019061099a91906149a8565b8980604001906109aa91906149a8565b8b60600160208101906109bd919061381a565b6040516020016109d2969594939291906142ca565b604051602081830303815290604052611efe565b905060006002600083886000016020810190610a0291906139bb565b604051602001610a13929190614261565b6040516020818303038152906040528051906020012060001c81526020019081526020016000209050600081600001601c9054906101000a900463ffffffff1663ffffffff1614610a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a90906148ad565b60405180910390fd5b6000610aa485611fc4565b9050808260000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550866020016020810190610ae49190613763565b8260000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055504282600001601c6101000a81548163ffffffff021916908363ffffffff1602179055508660c0016020810190610b5c9190613763565b8260010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef0583886000016020810190610bd391906139bb565b896020016020810190610be69190613763565b848b6040016020810190610bfa9190613843565b8c6060016020810190610c0d91906137c8565b8d6080016020810190610c2091906137c8565b8e60a0016020810190610c33919061381a565b8f60c0016020810190610c469190613763565b604051610c5b9998979695949392919061456a565b60405180910390a15050505050505050565b610c75611fec565b73ffffffffffffffffffffffffffffffffffffffff16610c93610e56565b73ffffffffffffffffffffffffffffffffffffffff1614610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce09061484d565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f82604051610d86919061450b565b60405180910390a25050565b610d9a611fec565b73ffffffffffffffffffffffffffffffffffffffff16610db8610e56565b73ffffffffffffffffffffffffffffffffffffffff1614610e0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e059061484d565b60405180910390fd5b610e186000611ff4565b565b7f000000000000000000000000000000000000000000000000000000000000000081565b60036020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60026020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900467ffffffffffffffff169080600001601c9054906101000a900463ffffffff16908060010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900463ffffffff16905085565b7f000000000000000000000000000000000000000000000000000000000000000081565b60016020528060005260406000206000915054906101000a900460ff1681565b610f75611fec565b73ffffffffffffffffffffffffffffffffffffffff16610f93610e56565b73ffffffffffffffffffffffffffffffffffffffff1614610fe9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe09061484d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611059576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110509061464d565b60405180910390fd5b61106281611ff4565b50565b60006110c283806020019061107a91906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506120b8565b611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f8906147ad565b60405180910390fd5b61115c83806040019061111491906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506121b3565b61119b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111929061488d565b60405180910390fd5b61120d8360000160208101906111b1919061381a565b8480602001906111c191906149a8565b8680604001906111d191906149a8565b8860600160208101906111e4919061381a565b6040516020016111f9969594939291906142ca565b604051602081830303815290604052611efe565b905061121981836122ae565b92915050565b600080600061122d84612413565b91505060018114611273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126a906146cd565b60405180910390fd5b600061128960008661181890919063ffffffff16565b905061129481611fc4565b925060006112a182611a11565b905060148151146112e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112de9061462d565b60405180910390fd5b60208101519450505050915091565b600060608060008060001b8560000151141590506000808061131789612413565b91509150600082600161132a9190614ac8565b905084156113445760018261133f9190614d51565b611346565b815b67ffffffffffffffff811115611385577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156113b35781602001602082028036833780820191505090505b509650865167ffffffffffffffff8111156113f7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156114255781602001602082028036833780820191505090505b5095506000805b83811015611781578b51831061144157611781565b60008060006114508f8761242a565b925092509250600060026000858560405160200161146f929190614261565b6040516020818303038152906040528051906020012060001c81526020019081526020016000209050600081600001601c9054906101000a900463ffffffff1663ffffffff16146116df5760008160010160149054906101000a900463ffffffff1663ffffffff1614611517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150e9061478d565b60405180910390fd5b8c5186141561155b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611552906147ed565b60405180910390fd5b428160010160146101000a81548163ffffffff021916908363ffffffff1602179055508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168d87815181106115dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508060000160149054906101000a900467ffffffffffffffff1667ffffffffffffffff168c8781518110611672577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6020026020010181815250508b86815181106116b7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200260200101518e6116ca9190614ac8565b9d5085806116d790614f7b565b96505061175c565b8915158b1515141580156116f65750838f60000151145b15611720578e6040015167ffffffffffffffff168e6117159190614ac8565b9d506001995061175b565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117529061470d565b60405180910390fd5b5b81876117689190614ac8565b965050505050808061177990614f7b565b91505061142c565b50600081116117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc9061490d565b60405180910390fd5b8415158615151461180b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611802906147ed565b60405180910390fd5b5050505050509250925092565b606060008061182685612413565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415611891576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611888906146ad565b60405180910390fd5b8084106118d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ca9061492d565b60405180910390fd5b6000808360016118e39190614ac8565b905060005b86811015611980576118fa8883612480565b92507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83141561195f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611956906146ed565b60405180910390fd5b828261196b9190614ac8565b9150808061197890614f7b565b9150506118e8565b5061198b8782612480565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156119f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e7906146ed565b60405180910390fd5b611a058183896125559092919063ffffffff16565b94505050505092915050565b6060600082600881518110611a4f577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c90508251600982611a6e9190614b1e565b60ff1614611a8e5760405180602001604052806000815250915050611e09565b600083600981518110611aca577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415611bbd5760028160ff161015611b055760405180602001604052806000815250915050611e09565b600083600a81518110611b41577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff169050600282611b619190614d85565b60ff1681141580611b80575060208114158015611b7f575060148114155b5b15611b9e576040518060200160405280600081525092505050611e09565b611bb4600b82866125559092919063ffffffff16565b92505050611e09565b6000611bd360088561261b90919063ffffffff16565b90507f1976a90000000000000000000000000000000000000000000000000000000000817cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415611d1557601484600b81518110611c59577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff16141580611cd757507f88ac000000000000000000000000000000000000000000000000000000000000611cb360028651611ca49190614d51565b8661262f90919063ffffffff16565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611cf5576040518060200160405280600081525092505050611e09565b611d0c600c6014866125559092919063ffffffff16565b92505050611e09565b7f17a9140000000000000000000000000000000000000000000000000000000000817cffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415611df45760878460018651611d6e9190614d51565b81518110611da5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614611dd4576040518060200160405280600081525092505050611e09565b611deb600b6014866125559092919063ffffffff16565b92505050611e09565b50604051806020016040528060008152509150505b919050565b60606003600283604051611e229190614314565b602060405180830381855afa158015611e3f573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611e6291906137f1565b604051602001611e729190614246565b604051602081830303815290604052604051611e8e9190614314565b602060405180830381855afa158015611eab573d6000803e3d6000fd5b5050506040515160601b604051602001611ec5919061422b565b6040516020818303038152906040529050919050565b60008082511415611ef1576000801b9050611ef9565b602082015190505b919050565b600060028083604051611f119190614314565b602060405180830381855afa158015611f2e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f5191906137f1565b604051602001611f619190614246565b604051602081830303815290604052604051611f7d9190614314565b602060405180830381855afa158015611f9a573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611fbd91906137f1565b9050919050565b600080611fd083612643565b60c01c90506000611fe082612660565b90508092505050919050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060006120c684612413565b809250819350505060008114806120fc57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82145b1561210c576000925050506121ae565b600082600161211b9190614ac8565b905060005b828110156121a3578551821061213d5760009450505050506121ae565b600061214987846126ef565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811415612181576000955050505050506121ae565b808361218d9190614ac8565b925050808061219b90614f7b565b915050612120565b508451811493505050505b919050565b60008060006121c184612413565b809250819350505060008114806121f757507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82145b15612207576000925050506122a9565b60008260016122169190614ac8565b905060005b8281101561229e57855182106122385760009450505050506122a9565b60006122448784612480565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81141561227c576000955050505050506122a9565b80836122889190614ac8565b925050808061229690614f7b565b91505061221b565b508451811493505050505b919050565b61237561230c8280604001906122c491906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050612787565b82806000019061231c91906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508360200135856127a4909392919063ffffffff16565b6123b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ab9061486d565b60405180910390fd5b61240f8180604001906123c791906149a8565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506127e7565b5050565b600080612421836000612afe565b91509150915091565b60008060006124428486612ca590919063ffffffff16565b925061246261245a8587612cc290919063ffffffff16565b60e01c612ceb565b915061247784866126ef90919063ffffffff16565b90509250925092565b600081600961248f9190614ac8565b835110156124bf577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905061254f565b6000806124d8858560086124d39190614ac8565b612afe565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612532577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9250505061254f565b808260096125409190614ac8565b61254a9190614ac8565b925050505b92915050565b6060600082141561257757604051806020016040528060008152509050612614565b600082846125859190614ac8565b90508381118015612597575080855110155b6125d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cd9061496d565b60405180910390fd5b604051915082604083010160405282825283850182038460208701018481015b8082101561260f578151838301526020820191506125f6565b505050505b9392505050565b60006126278383612d31565b905092915050565b600061263b8383612d31565b905092915050565b6000612659600083612d4290919063ffffffff16565b9050919050565b6000819050600866ff00ff00ff00ff821667ffffffffffffffff16901b66ff00ff00ff00ff60088367ffffffffffffffff16901c16179050601065ffff0000ffff821667ffffffffffffffff16901b65ffff0000ffff60108367ffffffffffffffff16901c1617905060208167ffffffffffffffff16901b60208267ffffffffffffffff16901c179050919050565b60008060006126fe8585612d56565b80925081935050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612758577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff92505050612781565b6004818360256127689190614ac8565b6127729190614ac8565b61277c9190614ac8565b925050505b92915050565b600061279d602483612d3190919063ffffffff16565b9050919050565b600083851480156127b55750600082145b80156127c2575060008351145b156127d057600190506127df565b6127dc85848685612dcb565b90505b949350505050565b6000807f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b15801561285057600080fd5b505afa158015612864573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128889190613992565b905060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b1580156128f257600080fd5b505afa158015612906573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292a9190613992565b9050600061293f61293a86612e96565b612f48565b9050828114156129515782935061299d565b818114156129615781935061299c565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129939061468d565b60405180910390fd5b5b60006129a886612f80565b90506129b26130cd565b8114156129f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129eb9061482d565b60405180910390fd5b6129fc6130f5565b811415612a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a359061466d565b60405180910390fd5b612a4661311d565b811415612a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a7f9061474d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000085612ab49190614cf7565b811015612af6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aed9061476d565b60405180910390fd5b505050505050565b6000806000612b0d8585613145565b905060008160ff161415612b74576000858581518110612b56577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c8060ff1690509250925050612c9e565b83816001612b829190614b1e565b60ff16612b8f9190614ac8565b85511015612bc4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60009250925050612c9e565b600060028260ff161415612c0757612bfc612bf4866001612be59190614ac8565b8861262f90919063ffffffff16565b60f01c613263565b61ffff169050612c8f565b60048260ff161415612c4a57612c3d612c35866001612c269190614ac8565b8861327f90919063ffffffff16565b60e01c612ceb565b63ffffffff169050612c8e565b60088260ff161415612c8d57612c80612c78866001612c699190614ac8565b88612d4290919063ffffffff16565b60c01c612660565b67ffffffffffffffff1690505b5b5b81818160ff1691509350935050505b9250929050565b6000612cba8284612d3190919063ffffffff16565b905092915050565b6000612ce3826020612cd49190614ac8565b8461327f90919063ffffffff16565b905092915050565b6000819050600862ff00ff821663ffffffff16901b62ff00ff60088363ffffffff16901c1617905060108163ffffffff16901b60108263ffffffff16901c179050919050565b600081602084010151905092915050565b6000612d4e8383612d31565b905092915050565b600080826025612d669190614ac8565b84511015612d9a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600091509150612dc4565b600080612db386602487612dae9190614ac8565b612afe565b809250819350505081819350935050505b9250929050565b60008060208551612ddc9190615034565b14612dea5760009050612e8e565b600084511415612dfd5760009050612e8e565b6000829050600086905060005b8651811015612e85576001600284612e229190615034565b1415612e4b57612e44612e3e8289612d3190919063ffffffff16565b83613293565b9150612e6a565b612e6782612e62838a612d3190919063ffffffff16565b613293565b91505b600183901c9250602081612e7e9190614ac8565b9050612e0a565b50848114925050505b949350505050565b600080612ead60488461261b90919063ffffffff16565b60e81c9050600083604b81518110612eee577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c90506000612f09836132a7565b62ffffff1690506000600383612f1f9190614d85565b60ff16905080610100612f329190614bd9565b82612f3d9190614cf7565b945050505050919050565b6000612f79827bffff00000000000000000000000000000000000000000000000000006132cb90919063ffffffff16565b9050919050565b60008060508351612f919190615034565b14612fbe577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90506130c8565b600080915060606040519050606060200181016040526050815260005b84518110156130c457612ff98282876132e19092919063ffffffff16565b6000811461303b5761300b828461337b565b61303a577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe93505050506130c8565b5b600061304683612e96565b9050613051836133a6565b9350806130608560001c6133ce565b1115613092577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd9450505050506130c8565b6130ad61309e82612f48565b8661350b90919063ffffffff16565b9450506050816130bd9190614ac8565b9050612fdb565b5050505b919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe905090565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd905090565b600060ff838381518110613182577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614156131a2576008905061325d565b60fe8383815181106131dd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff1614156131fd576004905061325d565b60fd838381518110613238577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b60f81c60ff161415613258576002905061325d565b600090505b92915050565b600060088261ffff16901c60088361ffff16901b179050919050565b600061328b8383612d31565b905092915050565b600061329f8383613564565b905092915050565b600060108262ffffff16901c61ff00831660108462ffffff16901b17179050919050565b600081836132d99190614b55565b905092915050565b600082519050600081836132f59190614ac8565b90508281118015613307575080855110155b613346576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161333d9061496d565b60405180910390fd5b826020860101602085018382015b808310156133715782518252602083019250602082019150613354565b5050505050505050565b60008061338784613593565b905082811461339a5760009150506133a0565b60019150505b92915050565b60006020600083516020850160025afa50602060006020600060025afa506000519050919050565b600081905060087eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff8216901b7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff600883901c1617905060107dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff8216901b7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff601083901c1617905060207bffffffff00000000ffffffff00000000ffffffff00000000ffffffff8216901b7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff602083901c16179050604077ffffffffffffffff0000000000000000ffffffffffffffff8216901b77ffffffffffffffff0000000000000000ffffffffffffffff604083901c16179050608081901b608082901c179050919050565b600081836135199190614ac8565b90508281101561355e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613555906148ed565b60405180910390fd5b92915050565b60008260005281602052602060006040600060025afa50602060006020600060025afa50600051905092915050565b60006135a9600483612d3190919063ffffffff16565b9050919050565b6000813590506135bf8161591b565b92915050565b6000813590506135d481615932565b92915050565b6000813590506135e981615949565b92915050565b6000813590506135fe81615960565b92915050565b60008151905061361381615960565b92915050565b60008135905061362881615977565b92915050565b60008135905061363d8161598e565b92915050565b60006080828403121561365557600080fd5b81905092915050565b60006060828403121561367057600080fd5b81905092915050565b600060e0828403121561368b57600080fd5b81905092915050565b6000606082840312156136a657600080fd5b81905092915050565b6000606082840312156136c157600080fd5b6136cb60606149ff565b905060006136db848285016135ef565b60008301525060206136ef84828501613739565b60208301525060406137038482850161374e565b60408301525092915050565b60008135905061371e816159a5565b92915050565b600081519050613733816159a5565b92915050565b600081359050613748816159bc565b92915050565b60008135905061375d816159d3565b92915050565b60006020828403121561377557600080fd5b6000613783848285016135b0565b91505092915050565b6000806040838503121561379f57600080fd5b60006137ad858286016135b0565b92505060206137be858286016135c5565b9150509250929050565b6000602082840312156137da57600080fd5b60006137e8848285016135da565b91505092915050565b60006020828403121561380357600080fd5b600061381184828501613604565b91505092915050565b60006020828403121561382c57600080fd5b600061383a84828501613619565b91505092915050565b60006020828403121561385557600080fd5b60006138638482850161362e565b91505092915050565b600080600060a0848603121561388157600080fd5b600084013567ffffffffffffffff81111561389b57600080fd5b6138a786828701613643565b935050602084013567ffffffffffffffff8111156138c457600080fd5b6138d08682870161365e565b92505060406138e186828701613694565b9150509250925092565b60008061010083850312156138ff57600080fd5b600083013567ffffffffffffffff81111561391957600080fd5b61392585828601613643565b925050602061393685828601613679565b9150509250929050565b60006060828403121561395257600080fd5b6000613960848285016136af565b91505092915050565b60006020828403121561397b57600080fd5b60006139898482850161370f565b91505092915050565b6000602082840312156139a457600080fd5b60006139b284828501613724565b91505092915050565b6000602082840312156139cd57600080fd5b60006139db84828501613739565b91505092915050565b6000602082840312156139f657600080fd5b6000613a048482850161374e565b91505092915050565b6000613a198383613a3d565b60208301905092915050565b6000613a3183836141c1565b60208301905092915050565b613a4681614db9565b82525050565b613a5581614db9565b82525050565b613a6c613a6782614db9565b614fc4565b82525050565b6000613a7d82614a44565b613a878185614a7f565b9350613a9283614a24565b8060005b83811015613ac3578151613aaa8882613a0d565b9750613ab583614a65565b925050600181019050613a96565b5085935050505092915050565b6000613adb82614a4f565b613ae58185614a90565b9350613af083614a34565b8060005b83811015613b21578151613b088882613a25565b9750613b1383614a72565b925050600181019050613af4565b5085935050505092915050565b613b3781614dcb565b82525050565b613b4681614dd7565b82525050565b613b5d613b5882614dd7565b614fd6565b82525050565b613b6c81614e03565b82525050565b613b83613b7e82614e03565b614fe0565b82525050565b613b9281614e0d565b82525050565b613ba9613ba482614e0d565b614fea565b82525050565b613bb881614e39565b82525050565b613bcf613bca82614e39565b614ff4565b82525050565b6000613be18385614aa1565b9350613bee838584614f08565b82840190509392505050565b6000613c0582614a5a565b613c0f8185614aa1565b9350613c1f818560208601614f17565b80840191505092915050565b613c3481614ec0565b82525050565b613c4381614ee4565b82525050565b6000613c56600183614abd565b9150613c6182615137565b600182019050919050565b6000613c79602b83614aac565b9150613c8482615160565b604082019050919050565b6000613c9c600183614abd565b9150613ca7826151af565b600182019050919050565b6000613cbf602683614aac565b9150613cca826151d8565b604082019050919050565b6000613ce2601583614aac565b9150613ced82615227565b602082019050919050565b6000613d05600183614abd565b9150613d1082615250565b600182019050919050565b6000613d28602583614aac565b9150613d3382615279565b604082019050919050565b6000613d4b600183614abd565b9150613d56826152c8565b600182019050919050565b6000613d6e602283614aac565b9150613d79826152f1565b604082019050919050565b6000613d91602b83614aac565b9150613d9c82615340565b604082019050919050565b6000613db4601a83614aac565b9150613dbf8261538f565b602082019050919050565b6000613dd7600183614abd565b9150613de2826153b8565b600182019050919050565b6000613dfa601283614aac565b9150613e05826153e1565b602082019050919050565b6000613e1d601483614aac565b9150613e288261540a565b602082019050919050565b6000613e40601d83614aac565b9150613e4b82615433565b602082019050919050565b6000613e63600183614abd565b9150613e6e8261545c565b600182019050919050565b6000613e86600183614abd565b9150613e9182615485565b600182019050919050565b6000613ea9603383614aac565b9150613eb4826154ae565b604082019050919050565b6000613ecc601583614aac565b9150613ed7826154fd565b602082019050919050565b6000613eef601d83614aac565b9150613efa82615526565b602082019050919050565b6000613f12601983614aac565b9150613f1d8261554f565b602082019050919050565b6000613f35603a83614aac565b9150613f4082615578565b604082019050919050565b6000613f58601883614aac565b9150613f63826155c7565b602082019050919050565b6000613f7b600183614abd565b9150613f86826155f0565b600182019050919050565b6000613f9e602383614aac565b9150613fa982615619565b604082019050919050565b6000613fc1602083614aac565b9150613fcc82615668565b602082019050919050565b6000613fe4603c83614aac565b9150613fef82615691565b604082019050919050565b6000614007600183614abd565b9150614012826156e0565b600182019050919050565b600061402a600183614abd565b915061403582615709565b600182019050919050565b600061404d601e83614aac565b915061405882615732565b602082019050919050565b6000614070601883614aac565b915061407b8261575b565b602082019050919050565b6000614093601983614aac565b915061409e82615784565b602082019050919050565b60006140b6600183614abd565b91506140c1826157ad565b600182019050919050565b60006140d9601983614aac565b91506140e4826157d6565b602082019050919050565b60006140fc603383614aac565b9150614107826157ff565b604082019050919050565b600061411f601183614aac565b915061412a8261584e565b602082019050919050565b6000614142601683614aac565b915061414d82615877565b602082019050919050565b6000614165601383614aac565b9150614170826158a0565b602082019050919050565b6000614188600183614abd565b9150614193826158c9565b600182019050919050565b60006141ab600183614abd565b91506141b6826158f2565b600182019050919050565b6141ca81614e85565b82525050565b6141d981614e85565b82525050565b6141e881614e8f565b82525050565b6141ff6141fa82614e8f565b615010565b82525050565b61420e81614e9f565b82525050565b61422561422082614e9f565b615022565b82525050565b60006142378284613b4c565b60148201915081905092915050565b60006142528284613b72565b60208201915081905092915050565b600061426d8285613b72565b60208201915061427d82846141ee565b6004820191508190509392505050565b60006142998286613b72565b6020820191506142a982856141ee565b6004820191506142b98284614214565b600882019150819050949350505050565b60006142d68289613b98565b6004820191506142e7828789613bd5565b91506142f4828587613bd5565b91506143008284613b98565b600482019150819050979650505050505050565b60006143208284613bfa565b915081905092915050565b600061433682613dca565b91506143428288613a5b565b60148201915061435182613d3e565b915061435c826140a9565b91506143688287613bbe565b60088201915061437782613d3e565b915061438282613ffa565b915061438d82613e56565b915061439882613dca565b91506143a48286613b4c565b6014820191506143b382613f6e565b91506143be82613c49565b91506143c98261419e565b91506143d482613c8f565b91506143df82613ffa565b91506143ea82613e56565b91506143f582613dca565b91506144018285613b4c565b60148201915061441082613cf8565b915061441b8261417b565b91506144278284613b98565b60048201915061443682613e79565b915061444182613d3e565b915061444c8261419e565b91506144578261401d565b91508190509695505050505050565b600060208201905061447b6000830184613a4c565b92915050565b600060a0820190506144966000830188613a4c565b6144a36020830187614205565b6144b060408301866141df565b6144bd6060830185613a4c565b6144ca60808301846141df565b9695505050505050565b600060408201905081810360008301526144ee8185613a72565b905081810360208301526145028184613ad0565b90509392505050565b60006020820190506145206000830184613b2e565b92915050565b600060408201905061453b6000830185613b3d565b6145486020830184613b63565b9392505050565b60006020820190506145646000830184613b63565b92915050565b600061012082019050614580600083018c613b63565b61458d602083018b6141df565b61459a604083018a613a4c565b6145a76060830189614205565b6145b46080830188613baf565b6145c160a0830187613b3d565b6145ce60c0830186613b3d565b6145db60e0830185613b89565b6145e9610100830184613a4c565b9a9950505050505050505050565b600060208201905061460c6000830184613c2b565b92915050565b60006020820190506146276000830184613c3a565b92915050565b6000602082019050818103600083015261464681613c6c565b9050919050565b6000602082019050818103600083015261466681613cb2565b9050919050565b6000602082019050818103600083015261468681613cd5565b9050919050565b600060208201905081810360008301526146a681613d1b565b9050919050565b600060208201905081810360008301526146c681613d61565b9050919050565b600060208201905081810360008301526146e681613d84565b9050919050565b6000602082019050818103600083015261470681613da7565b9050919050565b6000602082019050818103600083015261472681613ded565b9050919050565b6000602082019050818103600083015261474681613e10565b9050919050565b6000602082019050818103600083015261476681613e33565b9050919050565b6000602082019050818103600083015261478681613e9c565b9050919050565b600060208201905081810360008301526147a681613ebf565b9050919050565b600060208201905081810360008301526147c681613ee2565b9050919050565b600060208201905081810360008301526147e681613f05565b9050919050565b6000602082019050818103600083015261480681613f28565b9050919050565b6000602082019050818103600083015261482681613f4b565b9050919050565b6000602082019050818103600083015261484681613f91565b9050919050565b6000602082019050818103600083015261486681613fb4565b9050919050565b6000602082019050818103600083015261488681613fd7565b9050919050565b600060208201905081810360008301526148a681614040565b9050919050565b600060208201905081810360008301526148c681614063565b9050919050565b600060208201905081810360008301526148e681614086565b9050919050565b60006020820190508181036000830152614906816140cc565b9050919050565b60006020820190508181036000830152614926816140ef565b9050919050565b6000602082019050818103600083015261494681614112565b9050919050565b6000602082019050818103600083015261496681614135565b9050919050565b6000602082019050818103600083015261498681614158565b9050919050565b60006020820190506149a260008301846141d0565b92915050565b600080833560016020038436030381126149c157600080fd5b80840192508235915067ffffffffffffffff8211156149df57600080fd5b6020830192506001820236038313156149f757600080fd5b509250929050565b6000614a09614a1a565b9050614a158282614f4a565b919050565b6000604051905090565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000614ad382614e85565b9150614ade83614e85565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115614b1357614b12615065565b5b828201905092915050565b6000614b2982614eb3565b9150614b3483614eb3565b92508260ff03821115614b4a57614b49615065565b5b828201905092915050565b6000614b6082614e85565b9150614b6b83614e85565b925082614b7b57614b7a615094565b5b828204905092915050565b6000808291508390505b6001851115614bd057808604811115614bac57614bab615065565b5b6001851615614bbb5780820291505b8081029050614bc98561512a565b9450614b90565b94509492505050565b6000614be482614e85565b9150614bef83614e85565b9250614c1c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484614c24565b905092915050565b600082614c345760019050614cf0565b81614c425760009050614cf0565b8160018114614c585760028114614c6257614c91565b6001915050614cf0565b60ff841115614c7457614c73615065565b5b8360020a915084821115614c8b57614c8a615065565b5b50614cf0565b5060208310610133831016604e8410600b8410161715614cc65782820a905083811115614cc157614cc0615065565b5b614cf0565b614cd38484846001614b86565b92509050818404811115614cea57614ce9615065565b5b81810290505b9392505050565b6000614d0282614e85565b9150614d0d83614e85565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614d4657614d45615065565b5b828202905092915050565b6000614d5c82614e85565b9150614d6783614e85565b925082821015614d7a57614d79615065565b5b828203905092915050565b6000614d9082614eb3565b9150614d9b83614eb3565b925082821015614dae57614dad615065565b5b828203905092915050565b6000614dc482614e65565b9050919050565b60008115159050919050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60007fffffffffffffffff00000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b6000614ecb82614ed2565b9050919050565b6000614edd82614e65565b9050919050565b6000614eef82614ef6565b9050919050565b6000614f0182614e65565b9050919050565b82818337600083830152505050565b60005b83811015614f35578082015181840152602081019050614f1a565b83811115614f44576000848401525b50505050565b614f53826150f2565b810181811067ffffffffffffffff82111715614f7257614f716150c3565b5b80604052505050565b6000614f8682614e85565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614fb957614fb8615065565b5b600182019050919050565b6000614fcf82614ffe565b9050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b60006150098261511d565b9050919050565b600061501b82615110565b9050919050565b600061502d82615103565b9050919050565b600061503f82614e85565b915061504a83614e85565b92508261505a57615059615094565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160c01b9050919050565b60008160e01b9050919050565b60008160601b9050919050565b60008160011c9050919050565b7f6300000000000000000000000000000000000000000000000000000000000000600082015250565b7f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160008201527f7665203230206279746573000000000000000000000000000000000000000000602082015250565b7f6700000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f496e76616c6964206865616465727320636861696e0000000000000000000000600082015250565b7f8800000000000000000000000000000000000000000000000000000000000000600082015250565b7f4e6f742061742063757272656e74206f722070726576696f757320646966666960008201527f63756c7479000000000000000000000000000000000000000000000000000000602082015250565b7f7500000000000000000000000000000000000000000000000000000000000000600082015250565b7f52656164206f76657272756e20647572696e6720566172496e7420706172736960008201527f6e67000000000000000000000000000000000000000000000000000000000000602082015250565b7f5377656570207472616e73616374696f6e206d7573742068617665206120736960008201527f6e676c65206f7574707574000000000000000000000000000000000000000000602082015250565b7f42616420566172496e7420696e207363726970745075626b6579000000000000600082015250565b7f1400000000000000000000000000000000000000000000000000000000000000600082015250565b7f556e6b6e6f776e20696e70757420747970650000000000000000000000000000600082015250565b7f5661756c74206973206e6f742074727573746564000000000000000000000000600082015250565b7f496e73756666696369656e7420776f726b20696e206120686561646572000000600082015250565b7fa900000000000000000000000000000000000000000000000000000000000000600082015250565b7fb100000000000000000000000000000000000000000000000000000000000000600082015250565b7f496e73756666696369656e7420616363756d756c61746564206469666669637560008201527f6c747920696e2068656164657220636861696e00000000000000000000000000602082015250565b7f4465706f73697420616c72656164792073776570740000000000000000000000600082015250565b7f496e76616c696420696e70757420766563746f722070726f7669646564000000600082015250565b7f57726f6e672033322d6279746520736372697074206861736800000000000000600082015250565b7f4578706563746564206d61696e205554584f206e6f742070726573656e74206960008201527f6e207377656570207472616e73616374696f6e20696e70757473000000000000602082015250565b7f57726f6e67207363726970742068617368206c656e6774680000000000000000600082015250565b7f8700000000000000000000000000000000000000000000000000000000000000600082015250565b7f496e76616c6964206c656e677468206f6620746865206865616465727320636860008201527f61696e0000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260008201527f2070726f76696465642068656164657220616e64207478206861736800000000602082015250565b7f7600000000000000000000000000000000000000000000000000000000000000600082015250565b7f6800000000000000000000000000000000000000000000000000000000000000600082015250565b7f496e76616c6964206f757470757420766563746f722070726f76696465640000600082015250565b7f4465706f73697420616c72656164792072657665616c65640000000000000000600082015250565b7f57726f6e672032302d6279746520736372697074206861736800000000000000600082015250565b7f0800000000000000000000000000000000000000000000000000000000000000600082015250565b7f4f766572666c6f7720647572696e67206164646974696f6e2e00000000000000600082015250565b7f5377656570207472616e73616374696f6e206d7573742070726f63657373206160008201527f74206c65617374206f6e65206465706f73697400000000000000000000000000602082015250565b7f566f75742072656164206f76657272756e000000000000000000000000000000600082015250565b7f496e76616c6964206d61696e205554584f206461746100000000000000000000600082015250565b7f536c696365206f7574206f6620626f756e647300000000000000000000000000600082015250565b7f0400000000000000000000000000000000000000000000000000000000000000600082015250565b7fac00000000000000000000000000000000000000000000000000000000000000600082015250565b61592481614db9565b811461592f57600080fd5b50565b61593b81614dcb565b811461594657600080fd5b50565b61595281614dd7565b811461595d57600080fd5b50565b61596981614e03565b811461597457600080fd5b50565b61598081614e0d565b811461598b57600080fd5b50565b61599781614e39565b81146159a257600080fd5b50565b6159ae81614e85565b81146159b957600080fd5b50565b6159c581614e8f565b81146159d057600080fd5b50565b6159dc81614e9f565b81146159e757600080fd5b5056fea2646970667358221220375698d9ec20650083b6de2fbd23bc7c40b8302061fbfdb406c82b6df78ee86b64736f6c63430008040033",
|
|
832
|
+
"bytecode": "0x6101006040523480156200001257600080fd5b50604051620052da380380620052da83398101604081905262000035916200021c565b6200004033620001af565b6001600160a01b0384166200009c5760405162461bcd60e51b815260206004820152601b60248201527f42616e6b20616464726573732063616e6e6f74206265207a65726f000000000060448201526064015b60405180910390fd5b6001600160a01b0380851660a0528316620000fa5760405162461bcd60e51b815260206004820152601c60248201527f52656c617920616464726573732063616e6e6f74206265207a65726f00000000604482015260640162000093565b6001600160a01b0380841660c0528216620001585760405162461bcd60e51b815260206004820152601f60248201527f547265617375727920616464726573732063616e6e6f74206265207a65726f00604482015260640162000093565b6001600160a01b039190911660e052608052505060008054600160a01b600160e01b031916613d0960a61b179055600180546001600160801b0319166903e800000000000186a01790556202a3006002556200026e565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200021757600080fd5b919050565b600080600080608085870312156200023357600080fd5b6200023e85620001ff565b93506200024e60208601620001ff565b92506200025e60408601620001ff565b6060959095015193969295505050565b60805160a05160c05160e051614ffa620002e06000396000818161030f01526113c70152600081816104950152818161379f01526138340152600081816103560152818161087b0152818161132e015281816113ff0152611b5f0152600081816102ad0152613a960152614ffa6000f3fe608060405234801561001057600080fd5b50600436106101825760003560e01c80638da5cb5b116100d8578063bdf9fca91161008c578063e65e19d511610066578063e65e19d514610517578063f2fde38b14610558578063f3cc53481461056b57600080fd5b8063bdf9fca9146104b7578063d6eccdf0146104d1578063e53c0b55146104e457600080fd5b8063b02c43d0116100bd578063b02c43d0146103db578063b34b32161461047d578063b59589d11461049057600080fd5b80638da5cb5b14610398578063a588f059146103a957600080fd5b80635c0b48121161013a578063715018a611610114578063715018a61461034957806376cdb03b1461035157806383a434281461037857600080fd5b80635c0b4812146102e457806360d712fc146102f757806361d027b31461030a57600080fd5b80631fff4e701161016b5780631fff4e70146102915780632bb818c2146102a857806359a9d90a146102cf57600080fd5b806303d952f7146101875780630b6ba19d14610232575b600080fd5b6101e6610195366004614445565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b6101e6610240366004614445565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b61029a60025481565b604051908152602001610229565b61029a7f000000000000000000000000000000000000000000000000000000000000000081565b6102e26102dd366004614488565b61057e565b005b6102e26102f23660046144f3565b6108f3565b6102e2610305366004614569565b610f12565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610229565b6102e2610fcb565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b61029a6103863660046145bd565b60056020526000908152604090205481565b6000546001600160a01b0316610331565b6001546103c390600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610229565b6104396103e9366004614445565b600460205260009081526040902080546001909101546001600160a01b0380831692600160a01b8082046001600160401b031693600160e01b90920463ffffffff90811693831692919091041685565b604080516001600160a01b0396871681526001600160401b03909516602086015263ffffffff9384169085015293166060830152909116608082015260a001610229565b6102e261048b3660046145d8565b611031565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6000546103c390600160a01b90046001600160401b031681565b6102e26104df366004614674565b611466565b6105076104f2366004614719565b60036020526000908152604090205460ff1681565b6040519015158152602001610229565b61054a6105253660046145bd565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161022992919061474a565b6102e2610566366004614719565b611bcf565b6001546103c3906001600160401b031681565b600061058a8484611cb1565b90506000806105d961059f6040880188614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e2b92505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156106f35780863561062c6040890160208a016147de565b61063c60608a0160408b016147f9565b6040516020016106799392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146106e15760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6106f03687900387018761482a565b91505b6000808061074361070760208d018d614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250611f5e915050565b91945092509050600061075f6001600160401b038816856148b2565b9050600082518261077091906148df565b905060005b83518110156107ba5781848281518110610791576107916148f3565b602002602001018181516107a591906148b2565b905250806107b281614909565b915050610775565b5060408051602081018c90526000918101919091526001600160c01b031960c08a901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198d1660008181526005845284902091909155835282018c90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a16040517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063266a123a906108b29087908790600401614924565b600060405180830381600087803b1580156108cc57600080fd5b505af11580156108e0573d6000803e3d6000fd5b5050505050505050505050505050505050565b600061090560e0830160c08401614719565b6001600160a01b0316148061094757506003600061092960e0840160c08501614719565b6001600160a01b0316815260208101919091526040016000205460ff165b6109935760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016106d8565b60006109a56040830160208401614719565b6109b560608401604085016149a8565b6109c560808501606086016145bd565b6109d560a08601608087016145bd565b6109e560c0870160a088016149d2565b6040516020016109f99594939291906149fc565b60408051601f1981840301815291905290506000610a6d610a1d60208501856147de565b63ffffffff16610a306040870187614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506124109050565b90506000610a7a826125db565b9050805160141415610b0057610a8f83612881565b6001600160601b031916610aa48260006128a8565b6001600160601b03191614610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016106d8565b610bf8565b805160201415610bb057600283604051610b1a9190614cac565b602060405180830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b5a9190614cb8565b610b63826128be565b14610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016106d8565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016106d8565b6000610c5d610c0a60208801886149d2565b610c176020890189614784565b610c2460408b018b614784565b610c3460808d0160608e016149d2565b604051602001610c4996959493929190614cd1565b6040516020818303038152906040526128da565b9050600060048183610c7260208a018a6147de565b604051602001610c9992919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610d1d5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016106d8565b6000610d2885612901565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610d716040880160208901614719565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610dc060e0880160c08901614719565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef0583610e1e60208a018a6147de565b610e2e60408b0160208c01614719565b84610e3f60608d0160408e016149a8565b610e4f60808e0160608f016145bd565b8d6080016020810190610e6291906145bd565b8e60a0016020810190610e7591906149d2565b8f60c0016020810190610e889190614719565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b03163314610f6c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146110255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b61102f6000612977565b565b600061103d8585611cb1565b905061108d61104f6020870187614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508792508691506129d49050565b6001600160601b0319821660009081526008602052604090205460ff1660018160048111156110be576110be614734565b14806110db575060028160048111156110d9576110d9614734565b145b61114d5760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016106d8565b600061119b61115f6040890189614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612bd9915050565b60608101519091506001600160401b03161561122e5782816040015182606001516040516020016111f99392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b0319871660009081526005909352912055611249565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061128290849061010090046001600160401b0316614d13565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516112ec9291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561137a57600080fd5b505af115801561138e573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff16600481111561149657611496614734565b146114e35760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016106d8565b6001600160601b03198516600090815260056020526040902054806115705760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b80853561158360408801602089016147de565b6115936060890160408a016147f9565b6040516020016115d09392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146116335760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b6000611665600060c01b868660405160200161165193929190614d3b565b6040516020818303038152906040526125db565b905060008151116116de5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016106d8565b80805190602001208760405160200161170791906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156117915760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016106d8565b6000546001600160401b03600160a01b909104811690841610156117f75760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016106d8565b600087868660405160200161180e93929190614d5f565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156118df5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016106d8565b6001546001600160401b0380821691600160401b9004166119008287614d13565b6001600160601b03198b166000908152600860205260409020805460019061193790849061010090046001600160401b0316614d83565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d16600090815260086020526040908190205491909104909116915061198d9060608c01908c016147f9565b6001600160401b031610156119e45760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016106d8565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611b14918d918c918c91908c9089908990614dae565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611bab57600080fd5b505af1158015611bbf573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611c295760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038116611ca55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d8565b611cae81612977565b50565b6000611cfd611cc36020850185614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131fa92505050565b611d495760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016106d8565b611d93611d596040850185614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132aa92505050565b611ddf5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016106d8565b611e19611def60208501856149d2565b611dfc6020860186614784565b611e096040880188614784565b610c3460808a0160608b016149d2565b9050611e25818361334d565b92915050565b6000806000611e39846134a6565b91505080600114611eb25760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016106d8565b6000611ebe8582612410565b9050611ec981612901565b92506000611ed6826125db565b90508051601414611f4f5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016106d8565b60208101519450505050915091565b805160009060609081901515838080611f76896134a6565b90925090506000611f88836001614e25565b90508415611fa057611f9b6001836148b2565b611fa2565b815b6001600160401b03811115611fb957611fb9614814565b604051908082528060200260200182016040528015611fe2578160200160208202803683370190505b50965086516001600160401b03811115611ffe57611ffe614814565b604051908082528060200260200182016040528015612027578160200160208202803683370190505b5095506000805b838110156123135760008060006120458f876134bd565b925092509250600060046000858560405160200161207a92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff161561226c576001810154600160a01b900463ffffffff16156121155760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016106d8565b8c5186141561218c5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b6001810180547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b4263ffffffff160217905580548d516001600160a01b03909116908e90889081106121e6576121e66148f3565b6001600160a01b03929092166020928302919091019091015280548c51600160a01b9091046001600160401b0316908d9088908110612227576122276148f3565b6020026020010181815250508b8681518110612245576122456148f3565b60200260200101518e6122589190614e25565b9d508561226481614909565b9650506122f0565b8915158b15151415801561228057508e5184145b156122a85760408f015161229d906001600160401b03168f614e25565b9d50600199506122f0565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016106d8565b6122fa8288614e25565b965050505050808061230b90614909565b91505061202e565b506000811161238a5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016106d8565b841515861515146124035760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b5050505050509250925092565b606060008061241e856134a6565b90925090506000198214156124805760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b8084106124cf5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016106d8565b6000806124dd846001614e25565b905060005b86811015612566576124f48883613515565b92506000198314156125485760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125528383614e25565b91508061255e81614909565b9150506124e2565b506125718782613515565b91506000198214156125c55760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125d0878284613584565b979650505050505050565b60606000826008815181106125f2576125f26148f3565b0160200151835160f89190911c915061260c826009614e3d565b60ff161461262a575050604080516020810190915260008152919050565b8260098151811061263d5761263d6148f3565b016020015160f81c6126e35760028160ff16101561266b575050604080516020810190915260008152919050565b600083600a81518110612680576126806148f3565b016020015160f81c9050612695600283614e62565b60ff16811415806126b35750806020141580156126b3575080601414155b156126cf57505060408051602081019091526000815292915050565b6126db84600b83613584565b949350505050565b60006126f08460086128a8565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156127cd5783600b8151811061274f5761274f6148f3565b60209101015160f81c60141415806127a4575061277a6002855161277391906148b2565b85906128a8565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b156127c057505060408051602081019091526000815292915050565b6126db84600c6014613584565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561286a57836001855161282691906148b2565b81518110612836576128366148f3565b60209101015160f81c60871461285d57505060408051602081019091526000815292915050565b6126db84600b6014613584565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b60006128b78383016020015190565b9392505050565b60008151600014156128d257506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60008061290d8361364e565b60c01c905060006126db8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612a3b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016106d8565b808335612a4e60408601602087016147de565b612a5e60608701604088016147f9565b604051602001612a9b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612afe5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b600080612b0a8661365a565b9092509050843582148015612b39575063ffffffff8116612b3160408701602088016147de565b63ffffffff16145b612bd15760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016106d8565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612c07856134a6565b90925090506000612c19836001614e25565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b85811015613177576000612cdb8b87613515565b90506000612cea8c8884613584565b90506000612cf782612901565b90506000612d156008808551612d0d91906148b2565b859190613584565b90508b606001516001600160401b03166000148015612d48575080516020820120881480612d4857508051602082012087145b8015612d5d57506000826001600160401b0316115b15612d825763ffffffff851660408d01526001600160401b03821660608d0152613154565b60008d82604051602001612d97929190614e85565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615612fa157600081815260066020526040812060018101548154919291612e09916001600160401b0390811691600160a01b900416614d13565b60018301549091506001600160401b0380871691612e3091600160401b9091041683614d13565b6001600160401b031611158015612e595750806001600160401b0316856001600160401b031611155b612ef15760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016106d8565b808f600001818151612f039190614d83565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151612f479190614d83565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff1916905588612f9781614909565b9950505050613152565b60008181526007602052604090206001810154600160801b900463ffffffff166130325760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016106d8565b6001810154815460009161305a916001600160401b0391821691600160a01b90910416614d13565b60018301549091506001600160401b038087169161308191600160401b9091041683614d13565b6001600160401b0316111580156130aa5750806001600160401b0316856001600160401b031611155b6131425760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016106d8565b8861314c81614909565b99505050505b505b61315e848a614e25565b985050505050808061316f90614909565b915050612cc7565b50600081116131ee5760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016106d8565b50505050505092915050565b6000806000613208846134a6565b909250905080158061321b575060001982145b1561322a575060009392505050565b6000613237836001614e25565b905060005b8281101561329d57855182106132585750600095945050505050565b6000613264878461370f565b905060001981141561327d575060009695505050505050565b6132878184614e25565b925050808061329590614909565b91505061323c565b5093519093149392505050565b60008060006132b8846134a6565b90925090508015806132cb575060001982145b156132da575060009392505050565b60006132e7836001614e25565b905060005b8281101561329d57855182106133085750600095945050505050565b60006133148784613515565b905060001981141561332d575060009695505050505050565b6133378184614e25565b925050808061334590614909565b9150506132ec565b6133e661339a6133606040840184614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375a92505050565b6133a48380614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050506020850135613767565b6134585760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016106d8565b6134a26134686040830183614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061379a92505050565b5050565b6000806134b4836000613b30565b91509150915091565b600080806134cb85856128a8565b92506135006134da8686613cac565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b915061350c858561370f565b90509250925092565b6000613522826009614e25565b835110156135335750600019611e25565b60008061354a85613545866008614e25565b613b30565b90925090506000198214156135655760001992505050611e25565b80613571836009614e25565b61357b9190614e25565b95945050505050565b6060816135a057506040805160208101909152600081526128b7565b60006135ac8385614e25565b905083811180156135be575080855110155b61360a5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b604051915082604083010160405282825283850182038460208701018481015b808210156136435781518383015260208201915061362a565b505050509392505050565b6000611e2582826128a8565b6000806000613668846134a6565b915050806001146136e15760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016106d8565b60006136ed8582613cc3565b90506136f881613e78565b93506137066134da82613e85565b92505050915091565b600080600061371e8585613e92565b90925090506000198214156137395760001992505050611e25565b80613745836025614e25565b61374f9190614e25565b61357b906004614e25565b6044810151600090611e25565b60008385148015613776575081155b801561378157508251155b1561378e575060016126db565b61357b85848685613ed4565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b1580156137f657600080fd5b505afa15801561380a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382e9190614cb8565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561388b57600080fd5b505afa15801561389f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c39190614cb8565b905060006138d86138d386613f7c565b614011565b9050828114156138ea57829350613968565b818114156138fa57819350613968565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016106d8565b600061397386614039565b90506000198114156139ed5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b600119811415613a3f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016106d8565b600219811415613a915760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016106d8565b613abb7f000000000000000000000000000000000000000000000000000000000000000086614ea1565b811015612bd15760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016106d8565b6000806000613b3f8585614240565b905060ff8116613b71576000858581518110613b5d57613b5d6148f3565b016020015190935060f81c9150613ca59050565b83613b7d826001614e3d565b60ff16613b8a9190614e25565b85511015613ba15760001960009250925050613ca5565b60008160ff1660021415613be657613bdb613bc7613bc0876001614e25565b88906128a8565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613c9b565b8160ff1660041415613c1057613c036134da613bc0876001614e25565b63ffffffff169050613c9b565b8160ff1660081415613c9b57613c8f613c2d613bc0876001614e25565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b60006128b7613cbc836020614e25565b84906128a8565b6060600080613cd1856134a6565b9092509050600019821415613d335760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b808410613d825760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016106d8565b600080613d90846001614e25565b905060005b86811015613e1957613da7888361370f565b9250600019831415613dfb5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b613e058383614e25565b915080613e1181614909565b915050613d95565b50613e24878261370f565b91506000198214156125c55760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b6020810151600090611e25565b6000611e258260206128a8565b600080613ea0836025614e25565b84511015613eb5575060001990506000613ca5565b600080613ec786613545876024614e25565b9097909650945050505050565b600060208451613ee49190614ec0565b15613ef1575060006126db565b8351613eff575060006126db565b818560005b8651811015613f6f57613f18600284614ec0565b60011415613f3d57613f36613f308883016020015190565b836142cc565b9150613f56565b613f5382613f4e8984016020015190565b6142cc565b91505b60019290921c91613f68602082614e25565b9050613f04565b5090931495945050505050565b600080613f8a8360486128a8565b60e81c9050600083604b81518110613fa457613fa46148f3565b016020015160f81c90506000613fd883600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000613fec600384614e62565b60ff169050613ffd81610100614fb8565b6140079083614ea1565b9695505050505050565b6000611e257bffff0000000000000000000000000000000000000000000000000000836142d8565b6000605082516140499190614ec0565b156140575750600019919050565b506040805160808101909152605081526000908190815b8451811015614238576140828583836142e4565b80156140a2576140928284614383565b6140a25750600119949350505050565b60006140ad83613f7c565b90506140b8836128da565b9350806141fc8560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b111561420f575060021995945050505050565b61422261421b82614011565b86906143ac565b94506142319050605082614e25565b905061406e565b505050919050565b6000828281518110614254576142546148f3565b60209101015160f81c60ff141561426d57506008611e25565b82828151811061427f5761427f6148f3565b60209101015160f81c60fe141561429857506004611e25565b8282815181106142aa576142aa6148f3565b60209101015160f81c60fd14156142c357506002611e25565b50600092915050565b60006128b7838361440a565b60006128b782846148df565b815160006142f28284614e25565b90508281118015614304575080855110155b6143505760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b826020860101602085018382015b8083101561437957825182526020928301929091019061435e565b5050505050505050565b60008061438f84614438565b90508281146143a2576000915050611e25565b5060019392505050565b60006143b88284614e25565b905082811015611e255760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016106d8565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611e25565b60006020828403121561445757600080fd5b5035919050565b60006080828403121561447057600080fd5b50919050565b60006060828403121561447057600080fd5b600080600060a0848603121561449d57600080fd5b83356001600160401b03808211156144b457600080fd5b6144c08783880161445e565b945060208601359150808211156144d657600080fd5b506144e386828701614476565b92505061350c8560408601614476565b60008082840361010081121561450857600080fd5b83356001600160401b0381111561451e57600080fd5b61452a8682870161445e565b93505060e0601f198201121561453f57600080fd5b506020830190509250929050565b80356001600160a01b038116811461456457600080fd5b919050565b6000806040838503121561457c57600080fd5b6145858361454d565b91506020830135801515811461459a57600080fd5b809150509250929050565b80356001600160601b03198116811461456457600080fd5b6000602082840312156145cf57600080fd5b6128b7826145a5565b60008060008060c085870312156145ee57600080fd5b84356001600160401b038082111561460557600080fd5b6146118883890161445e565b9550602087013591508082111561462757600080fd5b5061463487828801614476565b9350506146448660408701614476565b915061465260a086016145a5565b905092959194509250565b80356001600160401b038116811461456457600080fd5b600080600080600060c0868803121561468c57600080fd5b614695866145a5565b94506146a48760208801614476565b935060808601356001600160401b03808211156146c057600080fd5b818801915088601f8301126146d457600080fd5b8135818111156146e357600080fd5b8960208285010111156146f557600080fd5b60208301955080945050505061470d60a0870161465d565b90509295509295909350565b60006020828403121561472b57600080fd5b6128b78261454d565b634e487b7160e01b600052602160045260246000fd5b604081016005841061476c57634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e1984360301811261479b57600080fd5b8301803591506001600160401b038211156147b557600080fd5b602001915036819003821315613ca557600080fd5b803563ffffffff8116811461456457600080fd5b6000602082840312156147f057600080fd5b6128b7826147ca565b60006020828403121561480b57600080fd5b6128b78261465d565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561483c57600080fd5b604051606081018181106001600160401b038211171561486c57634e487b7160e01b600052604160045260246000fd5b6040528235815261487f602084016147ca565b60208201526148906040840161465d565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156148c4576148c461489c565b500390565b634e487b7160e01b600052601260045260246000fd5b6000826148ee576148ee6148c9565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141561491d5761491d61489c565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156149665781516001600160a01b031684529284019290840190600101614941565b5050508381038285015284518082528583019183019060005b8181101561499b5783518352928401929184019160010161497f565b5090979650505050505050565b6000602082840312156149ba57600080fd5b81356001600160c01b0319811681146128b757600080fd5b6000602082840312156149e457600080fd5b81356001600160e01b0319811681146128b757600080fd5b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614ad0614ac3614a9a602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614b8f614ac3614a9a614a71614b66601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614c65614c3c60068301614b3d565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614c925760208185018101518683015201614c78565b81811115614ca1576000828601525b509290920192915050565b60006128b78284614c71565b600060208284031215614cca57600080fd5b5051919050565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b60006001600160401b0383811690831681811015614d3357614d3361489c565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b03808316818516808303821115614da557614da561489c565b01949350505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b60008219821115614e3857614e3861489c565b500190565b600060ff821660ff84168060ff03821115614e5a57614e5a61489c565b019392505050565b600060ff821660ff841680821015614e7c57614e7c61489c565b90039392505050565b6001600160601b03198316815260006126db6014830184614c71565b6000816000190483118215151615614ebb57614ebb61489c565b500290565b600082614ecf57614ecf6148c9565b500690565b600181815b80851115614f0f578160001904821115614ef557614ef561489c565b80851615614f0257918102915b93841c9390800290614ed9565b509250929050565b600082614f2657506001611e25565b81614f3357506000611e25565b8160018114614f495760028114614f5357614f6f565b6001915050611e25565b60ff841115614f6457614f6461489c565b50506001821b611e25565b5060208310610133831016604e8410600b8410161715614f92575081810a611e25565b614f9c8383614ed4565b8060001904821115614fb057614fb061489c565b029392505050565b60006128b78383614f1756fea26469706673582212207bae5eeff2622af4b51640e4f274a13b93b1166aa893dff1a8baccdb4d62e0ce64736f6c63430008090033",
|
|
833
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101825760003560e01c80638da5cb5b116100d8578063bdf9fca91161008c578063e65e19d511610066578063e65e19d514610517578063f2fde38b14610558578063f3cc53481461056b57600080fd5b8063bdf9fca9146104b7578063d6eccdf0146104d1578063e53c0b55146104e457600080fd5b8063b02c43d0116100bd578063b02c43d0146103db578063b34b32161461047d578063b59589d11461049057600080fd5b80638da5cb5b14610398578063a588f059146103a957600080fd5b80635c0b48121161013a578063715018a611610114578063715018a61461034957806376cdb03b1461035157806383a434281461037857600080fd5b80635c0b4812146102e457806360d712fc146102f757806361d027b31461030a57600080fd5b80631fff4e701161016b5780631fff4e70146102915780632bb818c2146102a857806359a9d90a146102cf57600080fd5b806303d952f7146101875780630b6ba19d14610232575b600080fd5b6101e6610195366004614445565b600660205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b604080516001600160a01b0390961686526001600160401b0394851660208701529284169285019290925291909116606083015263ffffffff16608082015260a0015b60405180910390f35b6101e6610240366004614445565b600760205260009081526040902080546001909101546001600160a01b03821691600160a01b90046001600160401b039081169181811691600160401b82041690600160801b900463ffffffff1685565b61029a60025481565b604051908152602001610229565b61029a7f000000000000000000000000000000000000000000000000000000000000000081565b6102e26102dd366004614488565b61057e565b005b6102e26102f23660046144f3565b6108f3565b6102e2610305366004614569565b610f12565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610229565b6102e2610fcb565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b61029a6103863660046145bd565b60056020526000908152604090205481565b6000546001600160a01b0316610331565b6001546103c390600160401b90046001600160401b031681565b6040516001600160401b039091168152602001610229565b6104396103e9366004614445565b600460205260009081526040902080546001909101546001600160a01b0380831692600160a01b8082046001600160401b031693600160e01b90920463ffffffff90811693831692919091041685565b604080516001600160a01b0396871681526001600160401b03909516602086015263ffffffff9384169085015293166060830152909116608082015260a001610229565b6102e261048b3660046145d8565b611031565b6103317f000000000000000000000000000000000000000000000000000000000000000081565b6000546103c390600160a01b90046001600160401b031681565b6102e26104df366004614674565b611466565b6105076104f2366004614719565b60036020526000908152604090205460ff1681565b6040519015158152602001610229565b61054a6105253660046145bd565b60086020526000908152604090205460ff81169061010090046001600160401b031682565b60405161022992919061474a565b6102e2610566366004614719565b611bcf565b6001546103c3906001600160401b031681565b600061058a8484611cb1565b90506000806105d961059f6040880188614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611e2b92505050565b60408051606081018252600080825260208083018290528284018290526001600160601b0319861682526005905291909120549294509092509080156106f35780863561062c6040890160208a016147de565b61063c60608a0160408b016147f9565b6040516020016106799392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146106e15760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064015b60405180910390fd5b6106f03687900387018761482a565b91505b6000808061074361070760208d018d614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250899250611f5e915050565b91945092509050600061075f6001600160401b038816856148b2565b9050600082518261077091906148df565b905060005b83518110156107ba5781848281518110610791576107916148f3565b602002602001018181516107a591906148b2565b905250806107b281614909565b915050610775565b5060408051602081018c90526000918101919091526001600160c01b031960c08a901b166044820152604c0160408051808303601f1901815282825280516020918201206001600160601b03198d1660008181526005845284902091909155835282018c90527fe50ffdcc0a5f2c1ede5c122b9414ffd7b2c6bc870d2d775194049dc30da95e6a910160405180910390a16040517f266a123a0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063266a123a906108b29087908790600401614924565b600060405180830381600087803b1580156108cc57600080fd5b505af11580156108e0573d6000803e3d6000fd5b5050505050505050505050505050505050565b600061090560e0830160c08401614719565b6001600160a01b0316148061094757506003600061092960e0840160c08501614719565b6001600160a01b0316815260208101919091526040016000205460ff165b6109935760405162461bcd60e51b815260206004820152601460248201527f5661756c74206973206e6f74207472757374656400000000000000000000000060448201526064016106d8565b60006109a56040830160208401614719565b6109b560608401604085016149a8565b6109c560808501606086016145bd565b6109d560a08601608087016145bd565b6109e560c0870160a088016149d2565b6040516020016109f99594939291906149fc565b60408051601f1981840301815291905290506000610a6d610a1d60208501856147de565b63ffffffff16610a306040870187614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506124109050565b90506000610a7a826125db565b9050805160141415610b0057610a8f83612881565b6001600160601b031916610aa48260006128a8565b6001600160601b03191614610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672032302d627974652073637269707420686173680000000000000060448201526064016106d8565b610bf8565b805160201415610bb057600283604051610b1a9190614cac565b602060405180830381855afa158015610b37573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190610b5a9190614cb8565b610b63826128be565b14610afb5760405162461bcd60e51b815260206004820152601960248201527f57726f6e672033322d627974652073637269707420686173680000000000000060448201526064016106d8565b60405162461bcd60e51b815260206004820152601860248201527f57726f6e67207363726970742068617368206c656e677468000000000000000060448201526064016106d8565b6000610c5d610c0a60208801886149d2565b610c176020890189614784565b610c2460408b018b614784565b610c3460808d0160608e016149d2565b604051602001610c4996959493929190614cd1565b6040516020818303038152906040526128da565b9050600060048183610c7260208a018a6147de565b604051602001610c9992919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff1615610d1d5760405162461bcd60e51b815260206004820152601860248201527f4465706f73697420616c72656164792072657665616c6564000000000000000060448201526064016106d8565b6000610d2885612901565b82547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b6001600160401b038316021783559050610d716040880160208901614719565b82546001600160a01b03919091167bffffffffffffffff000000000000000000000000000000000000000090911617600160e01b4263ffffffff1602178255610dc060e0880160c08901614719565b60018301805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790557fa7382159a693ed317a024daf0fd1ba30805cdf9928ee09550af517c516e2ef0583610e1e60208a018a6147de565b610e2e60408b0160208c01614719565b84610e3f60608d0160408e016149a8565b610e4f60808e0160608f016145bd565b8d6080016020810190610e6291906145bd565b8e60a0016020810190610e7591906149d2565b8f60c0016020810190610e889190614719565b60408051998a5263ffffffff90981660208a01526001600160a01b03968716978901979097526001600160401b0390941660608801526001600160c01b031990921660808701526001600160601b031990811660a08701521660c08501526001600160e01b03191660e0840152166101008201526101200160405180910390a15050505050505050565b6000546001600160a01b03163314610f6c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038216600081815260036020908152604091829020805460ff191685151590811790915591519182527f9065599c12c4294d9e2201638226d0d0beb95c228f468c4e7c2bdb8322b6066f910160405180910390a25050565b6000546001600160a01b031633146110255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b61102f6000612977565b565b600061103d8585611cb1565b905061108d61104f6020870187614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508792508691506129d49050565b6001600160601b0319821660009081526008602052604090205460ff1660018160048111156110be576110be614734565b14806110db575060028160048111156110d9576110d9614734565b145b61114d5760405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206d75737420626520696e20416374697665206f72204d6f766960448201527f6e6746756473207374617465000000000000000000000000000000000000000060648201526084016106d8565b600061119b61115f6040890189614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250612bd9915050565b60608101519091506001600160401b03161561122e5782816040015182606001516040516020016111f99392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60408051601f1981840301815291815281516020928301206001600160601b0319871660009081526005909352912055611249565b6001600160601b031984166000908152600560205260408120555b80516001600160601b031985166000908152600860205260409020805460019061128290849061010090046001600160401b0316614d13565b92506101000a8154816001600160401b0302191690836001600160401b031602179055507fa45596c10f758d32ec8cca64a0fbfe776052b08fdb3f026e0a87f52118bf8fbe84846040516112ec9291906001600160601b0319929092168252602082015260400190565b60405180910390a180516040517f392aee430000000000000000000000000000000000000000000000000000000081526001600160401b0390911660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063392aee4390602401600060405180830381600087803b15801561137a57600080fd5b505af115801561138e573d6000803e3d6000fd5b5050505060208101516040517f56a6d9ef0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301526001600160401b0390921660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906356a6d9ef90604401600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b5050505050505050505050565b60016001600160601b0319861660009081526008602052604090205460ff16600481111561149657611496614734565b146114e35760405162461bcd60e51b815260206004820152601e60248201527f57616c6c6574206d75737420626520696e20416374697665207374617465000060448201526064016106d8565b6001600160601b03198516600090815260056020526040902054806115705760405162461bcd60e51b815260206004820152602160248201527f4e6f206d61696e205554584f20666f722074686520676976656e2077616c6c6560448201527f740000000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b80853561158360408801602089016147de565b6115936060890160408a016147f9565b6040516020016115d09392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b60405160208183030381529060405280519060200120146116335760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b6000611665600060c01b868660405160200161165193929190614d3b565b6040516020818303038152906040526125db565b905060008151116116de5760405162461bcd60e51b815260206004820152602e60248201527f52656465656d6572206f757470757420736372697074206d757374206265206160448201527f207374616e64617264207479706500000000000000000000000000000000000060648201526084016106d8565b80805190602001208760405160200161170791906001600160601b031991909116815260140190565b6040516020818303038152906040528051906020012014156117915760405162461bcd60e51b815260206004820152603760248201527f52656465656d6572206f757470757420736372697074206d757374206e6f742060448201527f706f696e7420746f207468652077616c6c657420504b4800000000000000000060648201526084016106d8565b6000546001600160401b03600160a01b909104811690841610156117f75760405162461bcd60e51b815260206004820152601b60248201527f526564656d7074696f6e20616d6f756e7420746f6f20736d616c6c000000000060448201526064016106d8565b600087868660405160200161180e93929190614d5f565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff16156118df5760405162461bcd60e51b815260206004820152604a60248201527f546865726520697320612070656e64696e6720726564656d7074696f6e20726560448201527f71756573742066726f6d20746869732077616c6c657420746f2074686520736160648201527f6d65206164647265737300000000000000000000000000000000000000000000608482015260a4016106d8565b6001546001600160401b0380821691600160401b9004166119008287614d13565b6001600160601b03198b166000908152600860205260409020805460019061193790849061010090046001600160401b0316614d83565b82546001600160401b0391821661010093840a90810290830219909116179092556001600160601b03198d16600090815260086020526040908190205491909104909116915061198d9060608c01908c016147f9565b6001600160401b031610156119e45760405162461bcd60e51b815260206004820152601960248201527f496e73756666696369656e742077616c6c65742066756e64730000000000000060448201526064016106d8565b6040805160a081018252338082526001600160401b03808a1660208085019182528783168587019081528784166060870190815263ffffffff4281166080890190815260008d81526006909552938990209751885495518716600160a01b026001600160e01b03199096166001600160a01b03919091161794909417875590516001909601805491519251909316600160801b027fffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffffff928516600160401b027fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216969094169590951794909417939093161790915590517f97a0199072f487232635d50ab75860891afe0b91c976ed2fc76502c4d82d0d9591611b14918d918c918c91908c9089908990614dae565b60405180910390a16040517f7c6db49c0000000000000000000000000000000000000000000000000000000081523360048201523060248201526001600160401b03871660448201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690637c6db49c90606401600060405180830381600087803b158015611bab57600080fd5b505af1158015611bbf573d6000803e3d6000fd5b5050505050505050505050505050565b6000546001600160a01b03163314611c295760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106d8565b6001600160a01b038116611ca55760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016106d8565b611cae81612977565b50565b6000611cfd611cc36020850185614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506131fa92505050565b611d495760405162461bcd60e51b815260206004820152601d60248201527f496e76616c696420696e70757420766563746f722070726f766964656400000060448201526064016106d8565b611d93611d596040850185614784565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506132aa92505050565b611ddf5760405162461bcd60e51b815260206004820152601e60248201527f496e76616c6964206f757470757420766563746f722070726f7669646564000060448201526064016106d8565b611e19611def60208501856149d2565b611dfc6020860186614784565b611e096040880188614784565b610c3460808a0160608b016149d2565b9050611e25818361334d565b92915050565b6000806000611e39846134a6565b91505080600114611eb25760405162461bcd60e51b815260206004820152602b60248201527f5377656570207472616e73616374696f6e206d7573742068617665206120736960448201527f6e676c65206f757470757400000000000000000000000000000000000000000060648201526084016106d8565b6000611ebe8582612410565b9050611ec981612901565b92506000611ed6826125db565b90508051601414611f4f5760405162461bcd60e51b815260206004820152602b60248201527f57616c6c6574207075626c6963206b657920686173682073686f756c6420686160448201527f766520323020627974657300000000000000000000000000000000000000000060648201526084016106d8565b60208101519450505050915091565b805160009060609081901515838080611f76896134a6565b90925090506000611f88836001614e25565b90508415611fa057611f9b6001836148b2565b611fa2565b815b6001600160401b03811115611fb957611fb9614814565b604051908082528060200260200182016040528015611fe2578160200160208202803683370190505b50965086516001600160401b03811115611ffe57611ffe614814565b604051908082528060200260200182016040528015612027578160200160208202803683370190505b5095506000805b838110156123135760008060006120458f876134bd565b925092509250600060046000858560405160200161207a92919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f190181529181528151602092830120835290820192909252016000208054909150600160e01b900463ffffffff161561226c576001810154600160a01b900463ffffffff16156121155760405162461bcd60e51b815260206004820152601560248201527f4465706f73697420616c7265616479207377657074000000000000000000000060448201526064016106d8565b8c5186141561218c5760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b6001810180547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff16600160a01b4263ffffffff160217905580548d516001600160a01b03909116908e90889081106121e6576121e66148f3565b6001600160a01b03929092166020928302919091019091015280548c51600160a01b9091046001600160401b0316908d9088908110612227576122276148f3565b6020026020010181815250508b8681518110612245576122456148f3565b60200260200101518e6122589190614e25565b9d508561226481614909565b9650506122f0565b8915158b15151415801561228057508e5184145b156122a85760408f015161229d906001600160401b03168f614e25565b9d50600199506122f0565b60405162461bcd60e51b815260206004820152601260248201527f556e6b6e6f776e20696e7075742074797065000000000000000000000000000060448201526064016106d8565b6122fa8288614e25565b965050505050808061230b90614909565b91505061202e565b506000811161238a5760405162461bcd60e51b815260206004820152603360248201527f5377656570207472616e73616374696f6e206d7573742070726f63657373206160448201527f74206c65617374206f6e65206465706f7369740000000000000000000000000060648201526084016106d8565b841515861515146124035760405162461bcd60e51b815260206004820152603a60248201527f4578706563746564206d61696e205554584f206e6f742070726573656e74206960448201527f6e207377656570207472616e73616374696f6e20696e7075747300000000000060648201526084016106d8565b5050505050509250925092565b606060008061241e856134a6565b90925090506000198214156124805760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b8084106124cf5760405162461bcd60e51b815260206004820152601160248201527f566f75742072656164206f76657272756e00000000000000000000000000000060448201526064016106d8565b6000806124dd846001614e25565b905060005b86811015612566576124f48883613515565b92506000198314156125485760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125528383614e25565b91508061255e81614909565b9150506124e2565b506125718782613515565b91506000198214156125c55760405162461bcd60e51b815260206004820152601a60248201527f42616420566172496e7420696e207363726970745075626b657900000000000060448201526064016106d8565b6125d0878284613584565b979650505050505050565b60606000826008815181106125f2576125f26148f3565b0160200151835160f89190911c915061260c826009614e3d565b60ff161461262a575050604080516020810190915260008152919050565b8260098151811061263d5761263d6148f3565b016020015160f81c6126e35760028160ff16101561266b575050604080516020810190915260008152919050565b600083600a81518110612680576126806148f3565b016020015160f81c9050612695600283614e62565b60ff16811415806126b35750806020141580156126b3575080601414155b156126cf57505060408051602081019091526000815292915050565b6126db84600b83613584565b949350505050565b60006126f08460086128a8565b90507f1976a900000000000000000000000000000000000000000000000000000000007fffffff0000000000000000000000000000000000000000000000000000000000821614156127cd5783600b8151811061274f5761274f6148f3565b60209101015160f81c60141415806127a4575061277a6002855161277391906148b2565b85906128a8565b7dffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661222b60f21b14155b156127c057505060408051602081019091526000815292915050565b6126db84600c6014613584565b7f17a91400000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000000000000000008216141561286a57836001855161282691906148b2565b81518110612836576128366148f3565b60209101015160f81c60871461285d57505060408051602081019091526000815292915050565b6126db84600b6014613584565b505050604080516020810190915260008152919050565b60006020600083516020850160025afa50602060006020600060035afa5050600c51919050565b60006128b78383016020015190565b9392505050565b60008151600014156128d257506000919050565b506020015190565b60006020600083516020850160025afa50602060006020600060025afa5050600051919050565b60008061290d8361364e565b60c01c905060006126db8264ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160601b0319811660009081526005602052604090205480612a3b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f206d61696e205554584f20666f7220676976656e2077616c6c657400000060448201526064016106d8565b808335612a4e60408601602087016147de565b612a5e60608701604088016147f9565b604051602001612a9b9392919092835260e09190911b6001600160e01b031916602083015260c01b6001600160c01b0319166024820152602c0190565b6040516020818303038152906040528051906020012014612afe5760405162461bcd60e51b815260206004820152601660248201527f496e76616c6964206d61696e205554584f20646174610000000000000000000060448201526064016106d8565b600080612b0a8661365a565b9092509050843582148015612b39575063ffffffff8116612b3160408701602088016147de565b63ffffffff16145b612bd15760405162461bcd60e51b815260206004820152604160248201527f526564656d7074696f6e207472616e73616374696f6e20696e707574206d757360448201527f7420706f696e7420746f207468652077616c6c65742773206d61696e2055545860648201527f4f00000000000000000000000000000000000000000000000000000000000000608482015260a4016106d8565b505050505050565b60408051608081018252600080825260208201819052918101829052606081018290529080612c07856134a6565b90925090506000612c19836001614e25565b604080517f1976a914000000000000000000000000000000000000000000000000000000006020808301919091526001600160601b031989166024830181905261222b60f21b60388401528351601a818503018152603a840185528051908301207f1600140000000000000000000000000000000000000000000000000000000000605a850152605d8401919091528351605181850301815260719093019093528151910120919250906000805b85811015613177576000612cdb8b87613515565b90506000612cea8c8884613584565b90506000612cf782612901565b90506000612d156008808551612d0d91906148b2565b859190613584565b90508b606001516001600160401b03166000148015612d48575080516020820120881480612d4857508051602082012087145b8015612d5d57506000826001600160401b0316115b15612d825763ffffffff851660408d01526001600160401b03821660608d0152613154565b60008d82604051602001612d97929190614e85565b60408051808303601f19018152918152815160209283012060008181526006909352912060010154909150600160801b900463ffffffff1615612fa157600081815260066020526040812060018101548154919291612e09916001600160401b0390811691600160a01b900416614d13565b60018301549091506001600160401b0380871691612e3091600160401b9091041683614d13565b6001600160401b031611158015612e595750806001600160401b0316856001600160401b031611155b612ef15760405162461bcd60e51b815260206004820152604660248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652070656e64696e67207260648201527f6571756573740000000000000000000000000000000000000000000000000000608482015260a4016106d8565b808f600001818151612f039190614d83565b9150906001600160401b031690816001600160401b0316815250508160010160009054906101000a90046001600160401b03168f602001818151612f479190614d83565b6001600160401b0316905250600083815260066020526040902080546001600160e01b0319168155600101805473ffffffffffffffffffffffffffffffffffffffff1916905588612f9781614909565b9950505050613152565b60008181526007602052604090206001810154600160801b900463ffffffff166130325760405162461bcd60e51b8152602060048201526024808201527f4f75747075742069732061206e6f6e2d72657175657374656420726564656d7060448201527f74696f6e0000000000000000000000000000000000000000000000000000000060648201526084016106d8565b6001810154815460009161305a916001600160401b0391821691600160a01b90910416614d13565b60018301549091506001600160401b038087169161308191600160401b9091041683614d13565b6001600160401b0316111580156130aa5750806001600160401b0316856001600160401b031611155b6131425760405162461bcd60e51b815260206004820152604860248201527f4f75747075742076616c7565206973206e6f742077697468696e20746865206160448201527f636365707461626c652072616e6765206f66207468652074696d6564206f757460648201527f2072657175657374000000000000000000000000000000000000000000000000608482015260a4016106d8565b8861314c81614909565b99505050505b505b61315e848a614e25565b985050505050808061316f90614909565b915050612cc7565b50600081116131ee5760405162461bcd60e51b815260206004820152603b60248201527f526564656d7074696f6e207472616e73616374696f6e206d7573742070726f6360448201527f657373206174206c65617374206f6e6520726564656d7074696f6e000000000060648201526084016106d8565b50505050505092915050565b6000806000613208846134a6565b909250905080158061321b575060001982145b1561322a575060009392505050565b6000613237836001614e25565b905060005b8281101561329d57855182106132585750600095945050505050565b6000613264878461370f565b905060001981141561327d575060009695505050505050565b6132878184614e25565b925050808061329590614909565b91505061323c565b5093519093149392505050565b60008060006132b8846134a6565b90925090508015806132cb575060001982145b156132da575060009392505050565b60006132e7836001614e25565b905060005b8281101561329d57855182106133085750600095945050505050565b60006133148784613515565b905060001981141561332d575060009695505050505050565b6133378184614e25565b925050808061334590614909565b9150506132ec565b6133e661339a6133606040840184614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061375a92505050565b6133a48380614784565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250879493925050506020850135613767565b6134585760405162461bcd60e51b815260206004820152603c60248201527f5478206d65726b6c652070726f6f66206973206e6f742076616c696420666f7260448201527f2070726f76696465642068656164657220616e6420747820686173680000000060648201526084016106d8565b6134a26134686040830183614784565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061379a92505050565b5050565b6000806134b4836000613b30565b91509150915091565b600080806134cb85856128a8565b92506135006134da8686613cac565b60d881901c63ff00ff001662ff00ff60e89290921c9190911617601081811b91901c1790565b915061350c858561370f565b90509250925092565b6000613522826009614e25565b835110156135335750600019611e25565b60008061354a85613545866008614e25565b613b30565b90925090506000198214156135655760001992505050611e25565b80613571836009614e25565b61357b9190614e25565b95945050505050565b6060816135a057506040805160208101909152600081526128b7565b60006135ac8385614e25565b905083811180156135be575080855110155b61360a5760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b604051915082604083010160405282825283850182038460208701018481015b808210156136435781518383015260208201915061362a565b505050509392505050565b6000611e2582826128a8565b6000806000613668846134a6565b915050806001146136e15760405162461bcd60e51b815260206004820152602f60248201527f526564656d7074696f6e207472616e73616374696f6e206d757374206861766560448201527f20612073696e676c6520696e707574000000000000000000000000000000000060648201526084016106d8565b60006136ed8582613cc3565b90506136f881613e78565b93506137066134da82613e85565b92505050915091565b600080600061371e8585613e92565b90925090506000198214156137395760001992505050611e25565b80613745836025614e25565b61374f9190614e25565b61357b906004614e25565b6044810151600090611e25565b60008385148015613776575081155b801561378157508251155b1561378e575060016126db565b61357b85848685613ed4565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663113764be6040518163ffffffff1660e01b815260040160206040518083038186803b1580156137f657600080fd5b505afa15801561380a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382e9190614cb8565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632b97be246040518163ffffffff1660e01b815260040160206040518083038186803b15801561388b57600080fd5b505afa15801561389f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138c39190614cb8565b905060006138d86138d386613f7c565b614011565b9050828114156138ea57829350613968565b818114156138fa57819350613968565b60405162461bcd60e51b815260206004820152602560248201527f4e6f742061742063757272656e74206f722070726576696f757320646966666960448201527f63756c747900000000000000000000000000000000000000000000000000000060648201526084016106d8565b600061397386614039565b90506000198114156139ed5760405162461bcd60e51b815260206004820152602360248201527f496e76616c6964206c656e677468206f6620746865206865616465727320636860448201527f61696e000000000000000000000000000000000000000000000000000000000060648201526084016106d8565b600119811415613a3f5760405162461bcd60e51b815260206004820152601560248201527f496e76616c6964206865616465727320636861696e000000000000000000000060448201526064016106d8565b600219811415613a915760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420776f726b20696e20612068656164657200000060448201526064016106d8565b613abb7f000000000000000000000000000000000000000000000000000000000000000086614ea1565b811015612bd15760405162461bcd60e51b815260206004820152603360248201527f496e73756666696369656e7420616363756d756c61746564206469666669637560448201527f6c747920696e2068656164657220636861696e0000000000000000000000000060648201526084016106d8565b6000806000613b3f8585614240565b905060ff8116613b71576000858581518110613b5d57613b5d6148f3565b016020015190935060f81c9150613ca59050565b83613b7d826001614e3d565b60ff16613b8a9190614e25565b85511015613ba15760001960009250925050613ca5565b60008160ff1660021415613be657613bdb613bc7613bc0876001614e25565b88906128a8565b62ffff0060e882901c1660f89190911c1790565b61ffff169050613c9b565b8160ff1660041415613c1057613c036134da613bc0876001614e25565b63ffffffff169050613c9b565b8160ff1660081415613c9b57613c8f613c2d613bc0876001614e25565b60c01c64ff000000ff600882811c91821665ff000000ff009390911b92831617601090811b6001600160401b031666ff00ff00ff00ff9290921667ff00ff00ff00ff009093169290921790911c65ffff0000ffff1617602081811c91901b1790565b6001600160401b031690505b60ff909116925090505b9250929050565b60006128b7613cbc836020614e25565b84906128a8565b6060600080613cd1856134a6565b9092509050600019821415613d335760405162461bcd60e51b815260206004820152602260248201527f52656164206f76657272756e20647572696e6720566172496e742070617273696044820152616e6760f01b60648201526084016106d8565b808410613d825760405162461bcd60e51b815260206004820152601060248201527f56696e2072656164206f76657272756e0000000000000000000000000000000060448201526064016106d8565b600080613d90846001614e25565b905060005b86811015613e1957613da7888361370f565b9250600019831415613dfb5760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b613e058383614e25565b915080613e1181614909565b915050613d95565b50613e24878261370f565b91506000198214156125c55760405162461bcd60e51b815260206004820152601760248201527f42616420566172496e7420696e2073637269707453696700000000000000000060448201526064016106d8565b6020810151600090611e25565b6000611e258260206128a8565b600080613ea0836025614e25565b84511015613eb5575060001990506000613ca5565b600080613ec786613545876024614e25565b9097909650945050505050565b600060208451613ee49190614ec0565b15613ef1575060006126db565b8351613eff575060006126db565b818560005b8651811015613f6f57613f18600284614ec0565b60011415613f3d57613f36613f308883016020015190565b836142cc565b9150613f56565b613f5382613f4e8984016020015190565b6142cc565b91505b60019290921c91613f68602082614e25565b9050613f04565b5090931495945050505050565b600080613f8a8360486128a8565b60e81c9050600083604b81518110613fa457613fa46148f3565b016020015160f81c90506000613fd883600060108262ffffff16901c8261ff001660108462ffffff16901b17179050919050565b62ffffff1690506000613fec600384614e62565b60ff169050613ffd81610100614fb8565b6140079083614ea1565b9695505050505050565b6000611e257bffff0000000000000000000000000000000000000000000000000000836142d8565b6000605082516140499190614ec0565b156140575750600019919050565b506040805160808101909152605081526000908190815b8451811015614238576140828583836142e4565b80156140a2576140928284614383565b6140a25750600119949350505050565b60006140ad83613f7c565b90506140b8836128da565b9350806141fc8560008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b600882901c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff161790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b601082901c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff161790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b602082901c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff1617905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b604082901c77ffffffffffffffff0000000000000000ffffffffffffffff16179050608081901b608082901c179050919050565b111561420f575060021995945050505050565b61422261421b82614011565b86906143ac565b94506142319050605082614e25565b905061406e565b505050919050565b6000828281518110614254576142546148f3565b60209101015160f81c60ff141561426d57506008611e25565b82828151811061427f5761427f6148f3565b60209101015160f81c60fe141561429857506004611e25565b8282815181106142aa576142aa6148f3565b60209101015160f81c60fd14156142c357506002611e25565b50600092915050565b60006128b7838361440a565b60006128b782846148df565b815160006142f28284614e25565b90508281118015614304575080855110155b6143505760405162461bcd60e51b815260206004820152601360248201527f536c696365206f7574206f6620626f756e64730000000000000000000000000060448201526064016106d8565b826020860101602085018382015b8083101561437957825182526020928301929091019061435e565b5050505050505050565b60008061438f84614438565b90508281146143a2576000915050611e25565b5060019392505050565b60006143b88284614e25565b905082811015611e255760405162461bcd60e51b815260206004820152601960248201527f4f766572666c6f7720647572696e67206164646974696f6e2e0000000000000060448201526064016106d8565b60008260005281602052602060006040600060025afa50602060006020600060025afa505060005192915050565b6024810151600090611e25565b60006020828403121561445757600080fd5b5035919050565b60006080828403121561447057600080fd5b50919050565b60006060828403121561447057600080fd5b600080600060a0848603121561449d57600080fd5b83356001600160401b03808211156144b457600080fd5b6144c08783880161445e565b945060208601359150808211156144d657600080fd5b506144e386828701614476565b92505061350c8560408601614476565b60008082840361010081121561450857600080fd5b83356001600160401b0381111561451e57600080fd5b61452a8682870161445e565b93505060e0601f198201121561453f57600080fd5b506020830190509250929050565b80356001600160a01b038116811461456457600080fd5b919050565b6000806040838503121561457c57600080fd5b6145858361454d565b91506020830135801515811461459a57600080fd5b809150509250929050565b80356001600160601b03198116811461456457600080fd5b6000602082840312156145cf57600080fd5b6128b7826145a5565b60008060008060c085870312156145ee57600080fd5b84356001600160401b038082111561460557600080fd5b6146118883890161445e565b9550602087013591508082111561462757600080fd5b5061463487828801614476565b9350506146448660408701614476565b915061465260a086016145a5565b905092959194509250565b80356001600160401b038116811461456457600080fd5b600080600080600060c0868803121561468c57600080fd5b614695866145a5565b94506146a48760208801614476565b935060808601356001600160401b03808211156146c057600080fd5b818801915088601f8301126146d457600080fd5b8135818111156146e357600080fd5b8960208285010111156146f557600080fd5b60208301955080945050505061470d60a0870161465d565b90509295509295909350565b60006020828403121561472b57600080fd5b6128b78261454d565b634e487b7160e01b600052602160045260246000fd5b604081016005841061476c57634e487b7160e01b600052602160045260246000fd5b9281526001600160401b039190911660209091015290565b6000808335601e1984360301811261479b57600080fd5b8301803591506001600160401b038211156147b557600080fd5b602001915036819003821315613ca557600080fd5b803563ffffffff8116811461456457600080fd5b6000602082840312156147f057600080fd5b6128b7826147ca565b60006020828403121561480b57600080fd5b6128b78261465d565b634e487b7160e01b600052604160045260246000fd5b60006060828403121561483c57600080fd5b604051606081018181106001600160401b038211171561486c57634e487b7160e01b600052604160045260246000fd5b6040528235815261487f602084016147ca565b60208201526148906040840161465d565b60408201529392505050565b634e487b7160e01b600052601160045260246000fd5b6000828210156148c4576148c461489c565b500390565b634e487b7160e01b600052601260045260246000fd5b6000826148ee576148ee6148c9565b500490565b634e487b7160e01b600052603260045260246000fd5b600060001982141561491d5761491d61489c565b5060010190565b604080825283519082018190526000906020906060840190828701845b828110156149665781516001600160a01b031684529284019290840190600101614941565b5050508381038285015284518082528583019183019060005b8181101561499b5783518352928401929184019160010161497f565b5090979650505050505050565b6000602082840312156149ba57600080fd5b81356001600160c01b0319811681146128b757600080fd5b6000602082840312156149e457600080fd5b81356001600160e01b0319811681146128b757600080fd5b600560fa1b8152606086901b6001600160601b0319166001820152607560f81b60158201527f080000000000000000000000000000000000000000000000000000000000000060168201526001600160c01b031985166017820152607560f81b601f8201526000614ad0614ac3614a9a602085015b7f7600000000000000000000000000000000000000000000000000000000000000815260010190565b7fa900000000000000000000000000000000000000000000000000000000000000815260010190565b600560fa1b815260010190565b6001600160601b0319861681527f870000000000000000000000000000000000000000000000000000000000000060148201527f63000000000000000000000000000000000000000000000000000000000000006015820152614b8f614ac3614a9a614a71614b66601686015b7fac00000000000000000000000000000000000000000000000000000000000000815260010190565b7f6700000000000000000000000000000000000000000000000000000000000000815260010190565b6001600160601b0319861681527f880000000000000000000000000000000000000000000000000000000000000060148201527f040000000000000000000000000000000000000000000000000000000000000060158201529050601681016001600160e01b0319851681527fb1000000000000000000000000000000000000000000000000000000000000006004820152607560f81b60058201529050614c65614c3c60068301614b3d565b7f6800000000000000000000000000000000000000000000000000000000000000815260010190565b98975050505050505050565b6000815160005b81811015614c925760208185018101518683015201614c78565b81811115614ca1576000828601525b509290920192915050565b60006128b78284614c71565b600060208284031215614cca57600080fd5b5051919050565b60006001600160e01b03198089168352868860048501378683016004810160008152868882375093169390920160048101939093525050600801949350505050565b60006001600160401b0383811690831681811015614d3357614d3361489c565b039392505050565b6001600160c01b031984168152818360088301376000910160080190815292915050565b6001600160601b031984168152818360148301376000910160140190815292915050565b60006001600160401b03808316818516808303821115614da557614da561489c565b01949350505050565b6bffffffffffffffffffffffff198816815260c060208201528560c0820152858760e0830137600060e08783018101919091526001600160a01b039590951660408201526001600160401b039384166060820152918316608083015290911660a0820152601f909201601f19169091010192915050565b60008219821115614e3857614e3861489c565b500190565b600060ff821660ff84168060ff03821115614e5a57614e5a61489c565b019392505050565b600060ff821660ff841680821015614e7c57614e7c61489c565b90039392505050565b6001600160601b03198316815260006126db6014830184614c71565b6000816000190483118215151615614ebb57614ebb61489c565b500290565b600082614ecf57614ecf6148c9565b500690565b600181815b80851115614f0f578160001904821115614ef557614ef561489c565b80851615614f0257918102915b93841c9390800290614ed9565b509250929050565b600082614f2657506001611e25565b81614f3357506000611e25565b8160018114614f495760028114614f5357614f6f565b6001915050611e25565b60ff841115614f6457614f6461489c565b50506001821b611e25565b5060208310610133831016604e8410600b8410161715614f92575081810a611e25565b614f9c8383614ed4565b8060001904821115614fb057614fb061489c565b029392505050565b60006128b78383614f1756fea26469706673582212207bae5eeff2622af4b51640e4f274a13b93b1166aa893dff1a8baccdb4d62e0ce64736f6c63430008090033",
|
|
471
834
|
"linkReferences": {},
|
|
472
835
|
"deployedLinkReferences": {}
|
|
473
836
|
}
|