@pendle/core-v2 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/contracts/SuperComposableYield/ISuperComposableYield.sol +14 -0
  2. package/contracts/SuperComposableYield/implementations/SCYBase.sol +21 -1
  3. package/contracts/core/router/base/PendleRouterSCYAndForgeBaseUpg.sol +3 -3
  4. package/package.json +1 -1
  5. package/typechain-types/ISuperComposableYield.ts +97 -2
  6. package/typechain-types/PendleAaveV3SCY.ts +97 -2
  7. package/typechain-types/PendleBenQiErc20SCY.ts +97 -2
  8. package/typechain-types/PendleBtrflyScy.ts +97 -2
  9. package/typechain-types/PendleYearnVaultScy.ts +97 -2
  10. package/typechain-types/SCYBase.ts +97 -2
  11. package/typechain-types/SCYBaseWithRewards.ts +97 -2
  12. package/typechain-types/factories/ISuperComposableYield__factory.ts +68 -0
  13. package/typechain-types/factories/PendleAaveV3SCY__factory.ts +69 -1
  14. package/typechain-types/factories/PendleBenQiErc20SCY__factory.ts +69 -1
  15. package/typechain-types/factories/PendleBtrflyScy__factory.ts +69 -1
  16. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  17. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  18. package/typechain-types/factories/PendleRouterCoreUpg__factory.ts +1 -1
  19. package/typechain-types/factories/PendleRouterProxy__factory.ts +1 -1
  20. package/typechain-types/factories/PendleRouterStaticUpg__factory.ts +1 -1
  21. package/typechain-types/factories/PendleRouterYTUpg__factory.ts +1 -1
  22. package/typechain-types/factories/PendleYearnVaultScy__factory.ts +69 -1
  23. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  24. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  25. package/typechain-types/factories/SCYBaseWithRewards__factory.ts +68 -0
  26. package/typechain-types/factories/SCYBase__factory.ts +68 -0
@@ -36,9 +36,11 @@ export interface SCYBaseWithRewardsInterface extends utils.Interface {
36
36
  "globalReward(address)": FunctionFragment;
37
37
  "increaseAllowance(address,uint256)": FunctionFragment;
38
38
  "isValidBaseToken(address)": FunctionFragment;
39
- "mint(address,address,uint256)": FunctionFragment;
39
+ "mint(address,address,uint256,uint256)": FunctionFragment;
40
+ "mintNoPull(address,address,uint256)": FunctionFragment;
40
41
  "name()": FunctionFragment;
41
- "redeem(address,address,uint256)": FunctionFragment;
42
+ "redeem(address,address,uint256,uint256)": FunctionFragment;
43
+ "redeemNoPull(address,address,uint256)": FunctionFragment;
42
44
  "redeemReward(address)": FunctionFragment;
43
45
  "scyIndexCurrent()": FunctionFragment;
44
46
  "scyIndexStored()": FunctionFragment;
@@ -91,11 +93,19 @@ export interface SCYBaseWithRewardsInterface extends utils.Interface {
91
93
  ): string;
92
94
  encodeFunctionData(
93
95
  functionFragment: "mint",
96
+ values: [string, string, BigNumberish, BigNumberish]
97
+ ): string;
98
+ encodeFunctionData(
99
+ functionFragment: "mintNoPull",
94
100
  values: [string, string, BigNumberish]
95
101
  ): string;
96
102
  encodeFunctionData(functionFragment: "name", values?: undefined): string;
97
103
  encodeFunctionData(
98
104
  functionFragment: "redeem",
105
+ values: [string, string, BigNumberish, BigNumberish]
106
+ ): string;
107
+ encodeFunctionData(
108
+ functionFragment: "redeemNoPull",
99
109
  values: [string, string, BigNumberish]
100
110
  ): string;
101
111
  encodeFunctionData(
@@ -169,8 +179,13 @@ export interface SCYBaseWithRewardsInterface extends utils.Interface {
169
179
  data: BytesLike
170
180
  ): Result;
171
181
  decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result;
182
+ decodeFunctionResult(functionFragment: "mintNoPull", data: BytesLike): Result;
172
183
  decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
173
184
  decodeFunctionResult(functionFragment: "redeem", data: BytesLike): Result;
185
+ decodeFunctionResult(
186
+ functionFragment: "redeemNoPull",
187
+ data: BytesLike
188
+ ): Result;
174
189
  decodeFunctionResult(
175
190
  functionFragment: "redeemReward",
176
191
  data: BytesLike
@@ -303,6 +318,14 @@ export interface SCYBaseWithRewards extends BaseContract {
303
318
  ): Promise<[boolean]>;
304
319
 
305
320
  mint(
321
+ receiver: string,
322
+ baseTokenIn: string,
323
+ amountBaseToPull: BigNumberish,
324
+ minAmountScyOut: BigNumberish,
325
+ overrides?: Overrides & { from?: string | Promise<string> }
326
+ ): Promise<ContractTransaction>;
327
+
328
+ mintNoPull(
306
329
  receiver: string,
307
330
  baseTokenIn: string,
308
331
  minAmountScyOut: BigNumberish,
@@ -312,6 +335,14 @@ export interface SCYBaseWithRewards extends BaseContract {
312
335
  name(overrides?: CallOverrides): Promise<[string]>;
313
336
 
314
337
  redeem(
338
+ receiver: string,
339
+ baseTokenOut: string,
340
+ amountScyToPull: BigNumberish,
341
+ minAmountBaseOut: BigNumberish,
342
+ overrides?: Overrides & { from?: string | Promise<string> }
343
+ ): Promise<ContractTransaction>;
344
+
345
+ redeemNoPull(
315
346
  receiver: string,
316
347
  baseTokenOut: string,
317
348
  minAmountBaseOut: BigNumberish,
@@ -413,6 +444,14 @@ export interface SCYBaseWithRewards extends BaseContract {
413
444
  isValidBaseToken(token: string, overrides?: CallOverrides): Promise<boolean>;
414
445
 
415
446
  mint(
447
+ receiver: string,
448
+ baseTokenIn: string,
449
+ amountBaseToPull: BigNumberish,
450
+ minAmountScyOut: BigNumberish,
451
+ overrides?: Overrides & { from?: string | Promise<string> }
452
+ ): Promise<ContractTransaction>;
453
+
454
+ mintNoPull(
416
455
  receiver: string,
417
456
  baseTokenIn: string,
418
457
  minAmountScyOut: BigNumberish,
@@ -422,6 +461,14 @@ export interface SCYBaseWithRewards extends BaseContract {
422
461
  name(overrides?: CallOverrides): Promise<string>;
423
462
 
424
463
  redeem(
464
+ receiver: string,
465
+ baseTokenOut: string,
466
+ amountScyToPull: BigNumberish,
467
+ minAmountBaseOut: BigNumberish,
468
+ overrides?: Overrides & { from?: string | Promise<string> }
469
+ ): Promise<ContractTransaction>;
470
+
471
+ redeemNoPull(
425
472
  receiver: string,
426
473
  baseTokenOut: string,
427
474
  minAmountBaseOut: BigNumberish,
@@ -521,6 +568,14 @@ export interface SCYBaseWithRewards extends BaseContract {
521
568
  ): Promise<boolean>;
522
569
 
523
570
  mint(
571
+ receiver: string,
572
+ baseTokenIn: string,
573
+ amountBaseToPull: BigNumberish,
574
+ minAmountScyOut: BigNumberish,
575
+ overrides?: CallOverrides
576
+ ): Promise<BigNumber>;
577
+
578
+ mintNoPull(
524
579
  receiver: string,
525
580
  baseTokenIn: string,
526
581
  minAmountScyOut: BigNumberish,
@@ -530,6 +585,14 @@ export interface SCYBaseWithRewards extends BaseContract {
530
585
  name(overrides?: CallOverrides): Promise<string>;
531
586
 
532
587
  redeem(
588
+ receiver: string,
589
+ baseTokenOut: string,
590
+ amountScyToPull: BigNumberish,
591
+ minAmountBaseOut: BigNumberish,
592
+ overrides?: CallOverrides
593
+ ): Promise<BigNumber>;
594
+
595
+ redeemNoPull(
533
596
  receiver: string,
534
597
  baseTokenOut: string,
535
598
  minAmountBaseOut: BigNumberish,
@@ -642,6 +705,14 @@ export interface SCYBaseWithRewards extends BaseContract {
642
705
  ): Promise<BigNumber>;
643
706
 
644
707
  mint(
708
+ receiver: string,
709
+ baseTokenIn: string,
710
+ amountBaseToPull: BigNumberish,
711
+ minAmountScyOut: BigNumberish,
712
+ overrides?: Overrides & { from?: string | Promise<string> }
713
+ ): Promise<BigNumber>;
714
+
715
+ mintNoPull(
645
716
  receiver: string,
646
717
  baseTokenIn: string,
647
718
  minAmountScyOut: BigNumberish,
@@ -651,6 +722,14 @@ export interface SCYBaseWithRewards extends BaseContract {
651
722
  name(overrides?: CallOverrides): Promise<BigNumber>;
652
723
 
653
724
  redeem(
725
+ receiver: string,
726
+ baseTokenOut: string,
727
+ amountScyToPull: BigNumberish,
728
+ minAmountBaseOut: BigNumberish,
729
+ overrides?: Overrides & { from?: string | Promise<string> }
730
+ ): Promise<BigNumber>;
731
+
732
+ redeemNoPull(
654
733
  receiver: string,
655
734
  baseTokenOut: string,
656
735
  minAmountBaseOut: BigNumberish,
@@ -750,6 +829,14 @@ export interface SCYBaseWithRewards extends BaseContract {
750
829
  ): Promise<PopulatedTransaction>;
751
830
 
752
831
  mint(
832
+ receiver: string,
833
+ baseTokenIn: string,
834
+ amountBaseToPull: BigNumberish,
835
+ minAmountScyOut: BigNumberish,
836
+ overrides?: Overrides & { from?: string | Promise<string> }
837
+ ): Promise<PopulatedTransaction>;
838
+
839
+ mintNoPull(
753
840
  receiver: string,
754
841
  baseTokenIn: string,
755
842
  minAmountScyOut: BigNumberish,
@@ -759,6 +846,14 @@ export interface SCYBaseWithRewards extends BaseContract {
759
846
  name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
760
847
 
761
848
  redeem(
849
+ receiver: string,
850
+ baseTokenOut: string,
851
+ amountScyToPull: BigNumberish,
852
+ minAmountBaseOut: BigNumberish,
853
+ overrides?: Overrides & { from?: string | Promise<string> }
854
+ ): Promise<PopulatedTransaction>;
855
+
856
+ redeemNoPull(
762
857
  receiver: string,
763
858
  baseTokenOut: string,
764
859
  minAmountBaseOut: BigNumberish,
@@ -210,6 +210,11 @@ const _abi = [
210
210
  name: "baseTokenIn",
211
211
  type: "address",
212
212
  },
213
+ {
214
+ internalType: "uint256",
215
+ name: "amountBaseToPull",
216
+ type: "uint256",
217
+ },
213
218
  {
214
219
  internalType: "uint256",
215
220
  name: "minAmountScyOut",
@@ -227,6 +232,35 @@ const _abi = [
227
232
  stateMutability: "nonpayable",
228
233
  type: "function",
229
234
  },
235
+ {
236
+ inputs: [
237
+ {
238
+ internalType: "address",
239
+ name: "receiver",
240
+ type: "address",
241
+ },
242
+ {
243
+ internalType: "address",
244
+ name: "baseTokenIn",
245
+ type: "address",
246
+ },
247
+ {
248
+ internalType: "uint256",
249
+ name: "minAmountScyOut",
250
+ type: "uint256",
251
+ },
252
+ ],
253
+ name: "mintNoPull",
254
+ outputs: [
255
+ {
256
+ internalType: "uint256",
257
+ name: "amountScyOut",
258
+ type: "uint256",
259
+ },
260
+ ],
261
+ stateMutability: "nonpayable",
262
+ type: "function",
263
+ },
230
264
  {
231
265
  inputs: [],
232
266
  name: "name",
@@ -252,6 +286,11 @@ const _abi = [
252
286
  name: "baseTokenOut",
253
287
  type: "address",
254
288
  },
289
+ {
290
+ internalType: "uint256",
291
+ name: "amountScyToPull",
292
+ type: "uint256",
293
+ },
255
294
  {
256
295
  internalType: "uint256",
257
296
  name: "minAmountBaseOut",
@@ -269,6 +308,35 @@ const _abi = [
269
308
  stateMutability: "nonpayable",
270
309
  type: "function",
271
310
  },
311
+ {
312
+ inputs: [
313
+ {
314
+ internalType: "address",
315
+ name: "receiver",
316
+ type: "address",
317
+ },
318
+ {
319
+ internalType: "address",
320
+ name: "baseTokenOut",
321
+ type: "address",
322
+ },
323
+ {
324
+ internalType: "uint256",
325
+ name: "minAmountBaseOut",
326
+ type: "uint256",
327
+ },
328
+ ],
329
+ name: "redeemNoPull",
330
+ outputs: [
331
+ {
332
+ internalType: "uint256",
333
+ name: "amountBaseOut",
334
+ type: "uint256",
335
+ },
336
+ ],
337
+ stateMutability: "nonpayable",
338
+ type: "function",
339
+ },
272
340
  {
273
341
  inputs: [
274
342
  {
@@ -360,6 +360,11 @@ const _abi = [
360
360
  name: "baseTokenIn",
361
361
  type: "address",
362
362
  },
363
+ {
364
+ internalType: "uint256",
365
+ name: "amountBaseToPull",
366
+ type: "uint256",
367
+ },
363
368
  {
364
369
  internalType: "uint256",
365
370
  name: "minAmountScyOut",
@@ -377,6 +382,35 @@ const _abi = [
377
382
  stateMutability: "nonpayable",
378
383
  type: "function",
379
384
  },
385
+ {
386
+ inputs: [
387
+ {
388
+ internalType: "address",
389
+ name: "receiver",
390
+ type: "address",
391
+ },
392
+ {
393
+ internalType: "address",
394
+ name: "baseTokenIn",
395
+ type: "address",
396
+ },
397
+ {
398
+ internalType: "uint256",
399
+ name: "minAmountScyOut",
400
+ type: "uint256",
401
+ },
402
+ ],
403
+ name: "mintNoPull",
404
+ outputs: [
405
+ {
406
+ internalType: "uint256",
407
+ name: "amountScyOut",
408
+ type: "uint256",
409
+ },
410
+ ],
411
+ stateMutability: "nonpayable",
412
+ type: "function",
413
+ },
380
414
  {
381
415
  inputs: [],
382
416
  name: "name",
@@ -415,6 +449,11 @@ const _abi = [
415
449
  name: "baseTokenOut",
416
450
  type: "address",
417
451
  },
452
+ {
453
+ internalType: "uint256",
454
+ name: "amountScyToPull",
455
+ type: "uint256",
456
+ },
418
457
  {
419
458
  internalType: "uint256",
420
459
  name: "minAmountBaseOut",
@@ -432,6 +471,35 @@ const _abi = [
432
471
  stateMutability: "nonpayable",
433
472
  type: "function",
434
473
  },
474
+ {
475
+ inputs: [
476
+ {
477
+ internalType: "address",
478
+ name: "receiver",
479
+ type: "address",
480
+ },
481
+ {
482
+ internalType: "address",
483
+ name: "baseTokenOut",
484
+ type: "address",
485
+ },
486
+ {
487
+ internalType: "uint256",
488
+ name: "minAmountBaseOut",
489
+ type: "uint256",
490
+ },
491
+ ],
492
+ name: "redeemNoPull",
493
+ outputs: [
494
+ {
495
+ internalType: "uint256",
496
+ name: "amountBaseOut",
497
+ type: "uint256",
498
+ },
499
+ ],
500
+ stateMutability: "nonpayable",
501
+ type: "function",
502
+ },
435
503
  {
436
504
  inputs: [
437
505
  {
@@ -634,7 +702,7 @@ const _abi = [
634
702
  ];
635
703
 
636
704
  const _bytecode =
637
- "0x6101406040523480156200001257600080fd5b5060405162002f1b38038062002f1b8339810160408190526200003591620005ef565b8787878783838383838381600390805190602001906200005792919062000444565b5080516200006d90600490602084019062000444565b50505060ff9182166080521660a052505050506001600160a01b0384811661012081905287821660e05286821660c081905291851661010052620000c49350909150600019620000d2602090811b62000a8817901c565b5050505050505050620007be565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b1580156200011f57600080fd5b505afa15801562000134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015a9190620006c9565b620001669190620006e3565b604080516001600160a01b038616602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152919250620001c291869190620001c816565b50505050565b600062000224826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620002af60201b62000b74179092919060201c565b805190915015620002aa57808060200190518101906200024591906200070a565b620002aa5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084015b60405180910390fd5b505050565b6060620002c08484600085620002ca565b90505b9392505050565b6060824710156200032d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620002a1565b6001600160a01b0385163b620003865760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620002a1565b600080866001600160a01b03168587604051620003a491906200072e565b60006040518083038185875af1925050503d8060008114620003e3576040519150601f19603f3d011682016040523d82523d6000602084013e620003e8565b606091505b509092509050620003fb82828662000406565b979650505050505050565b6060831562000417575081620002c3565b825115620004285782518084602001fd5b8160405162461bcd60e51b8152600401620002a191906200074c565b828054620004529062000781565b90600052602060002090601f016020900481019282620004765760008555620004c1565b82601f106200049157805160ff1916838001178555620004c1565b82800160010185558215620004c1579182015b82811115620004c1578251825591602001919060010190620004a4565b50620004cf929150620004d3565b5090565b5b80821115620004cf5760008155600101620004d4565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200051d57818101518382015260200162000503565b83811115620001c25750506000910152565b600082601f8301126200054157600080fd5b81516001600160401b03808211156200055e576200055e620004ea565b604051601f8301601f19908116603f01168101908282118183101715620005895762000589620004ea565b81604052838152866020858801011115620005a357600080fd5b620005b684602083016020890162000500565b9695505050505050565b805160ff81168114620005d257600080fd5b919050565b80516001600160a01b0381168114620005d257600080fd5b600080600080600080600080610100898b0312156200060d57600080fd5b88516001600160401b03808211156200062557600080fd5b620006338c838d016200052f565b995060208b01519150808211156200064a57600080fd5b50620006598b828c016200052f565b9750506200066a60408a01620005c0565b95506200067a60608a01620005c0565b94506200068a60808a01620005d7565b93506200069a60a08a01620005d7565b9250620006aa60c08a01620005d7565b9150620006ba60e08a01620005d7565b90509295985092959890939650565b600060208284031215620006dc57600080fd5b5051919050565b600082198211156200070557634e487b7160e01b600052601160045260246000fd5b500190565b6000602082840312156200071d57600080fd5b81518015158114620002c357600080fd5b600082516200074281846020870162000500565b9190910192915050565b60208152600082518060208401526200076d81604085016020870162000500565b601f01601f19169190910160400192915050565b600181811c908216806200079657607f821691505b60208210811415620007b857634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e051610100516101205161266c620008af6000396000818161032c01528181610788015281816108240152818161095b01528181610df901528181610f3101528181610f7f01528181610fce0152818161162601528181611678015281816117fb015281816119220152611ce00152600081816102b1015281816107f70152611d370152600081816101cb015281816109d901528181610ead01526118980152600081816102d8015281816107340152818161092001528181610a0601528181610e750152818161185c01526118f9015260006103d201526000610217015261266c6000f3fe608060405234801561001057600080fd5b506004361061015f5760003560e01c806306fdde0314610164578063095ea7b3146101825780630e6dfcd5146101a557806316f0115b146101c657806318160ddd146101fa57806323b872dd14610202578063313ce5671461021557806339509351146102495780635cbadbe41461025c5780636265bc85146102a35780636bb65f53146102ac5780636f307dc3146102d357806370a08231146102fa5780637695caa21461030d5780638e37b2691461031757806395d89b411461031f578063a0c1f15e14610327578063a457c2d71461034e578063a9059cbb14610361578063b2427a6c14610374578063b286de761461039b578063bed64c2f146103bb578063c2d41601146103d0578063c4f59f9b146103f6578063c6c3bbe6146103fe578063c6d6916c14610411578063c9c0c08214610424578063dd62ed3e14610437578063f65d6fc81461044a575b600080fd5b61016c610452565b60405161017991906120bb565b60405180910390f35b610195610190366004612103565b6104e4565b6040519015158152602001610179565b6101b86101b336600461212f565b6104fe565b604051908152602001610179565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6040516101799190612170565b6002546101b8565b61019561021036600461212f565b610596565b7f00000000000000000000000000000000000000000000000000000000000000005b60405160ff9091168152602001610179565b610195610257366004612103565b6105bc565b61028e61026a366004612184565b60076020908152600092835260408084209091529082529020805460019091015482565b60408051928352602083019190915201610179565b6101b860085481565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b6101b86103083660046121bd565b6105fb565b610315610616565b005b6008546101b8565b61016c610637565b6101ed7f000000000000000000000000000000000000000000000000000000000000000081565b61019561035c366004612103565b610646565b61019561036f366004612103565b6106e3565b61028e6103823660046121bd565b6006602052600090815260409020805460019091015482565b6103ae6103a93660046121bd565b6106f1565b60405161017991906121da565b6103c3610712565b6040516101799190612262565b7f0000000000000000000000000000000000000000000000000000000000000000610237565b6103c36107dd565b6101b861040c36600461212f565b6108a5565b61031561041f3660046121bd565b61090f565b6101956104323660046121bd565b61091c565b6101b8610445366004612184565b610994565b6101b86109bf565b60606003805461046190612275565b80601f016020809104026020016040519081016040528092919081815260200182805461048d90612275565b80156104da5780601f106104af576101008083540402835291602001916104da565b820191906000526020600020905b8154815290600101906020018083116104bd57829003601f168201915b5050505050905090565b6000336104f2818585610b8b565b60019150505b92915050565b60006105098361091c565b61052e5760405162461bcd60e51b8152600401610525906122b0565b60405180910390fd5b6000610539306105fb565b90506105453082610cb0565b61054f8482610df5565b9150828210156105715760405162461bcd60e51b8152600401610525906122dc565b6105856001600160a01b0385168684610f5e565b61058e84610f7d565b509392505050565b6000336105a485828561109b565b6105af85858561110f565b60019150505b9392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091906104f290829086906105f690879061231c565b610b8b565b6001600160a01b031660009081526020819052604090205490565b60006106206107dd565b90506106348161062f60025490565b6112d6565b50565b60606004805461046190612275565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156106cb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610525565b6106d88286868403610b8b565b506001949350505050565b6000336104f281858561110f565b606061070882610700846105fb565b600254611424565b6104f88283611445565b60408051600280825260608083018452926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106107665761076661234a565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106107ba576107ba61234a565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b604051636657732f60e01b81526060906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636657732f9061084c907f000000000000000000000000000000000000000000000000000000000000000090600401612170565b60006040518083038186803b15801561086457600080fd5b505afa158015610878573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108a09190810190612427565b905090565b60006108b08361091c565b6108cc5760405162461bcd60e51b8152600401610525906122b0565b60006108d784611622565b90506108e384826117f7565b9150828210156109055760405162461bcd60e51b8152600401610525906122dc565b61058e8583611946565b61063481610700836105fb565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b031614806104f857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161492915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60405163d15e005360e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d15e005390610a2e907f000000000000000000000000000000000000000000000000000000000000000090600401612170565b60206040518083038186803b158015610a4657600080fd5b505afa158015610a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7e919061245b565b6008819055919050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b158015610ad457600080fd5b505afa158015610ae8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b0c919061245b565b610b16919061231c565b9050610b6e8463095ea7b360e01b8584604051602401610b37929190612474565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611a20565b50505050565b6060610b838484600085611af2565b949350505050565b6001600160a01b038316610bed5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610525565b6001600160a01b038216610c4e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610525565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b038216610d105760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610525565b610d1c82600083611c23565b6001600160a01b03821660009081526020819052604090205481811015610d905760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610525565b6001600160a01b0383166000908152602081905260408120838303905560028054849290610dbf90849061248d565b90915550506040518281526000906001600160a01b0385169060008051602061261783398151915290602001610ca3565b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415610e4a57610e43610e3c6109bf565b8390611c7b565b90506104f8565b6000610e5e610e576109bf565b8490611c7b565b604051631a4ca37b60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390523060448301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906369328dec90606401602060405180830381600087803b158015610ef357600080fd5b505af1158015610f07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2b919061245b565b50610f557f0000000000000000000000000000000000000000000000000000000000000000610f7d565b610b8384611622565b610df08363a9059cbb60e01b8484604051602401610b37929190612474565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316141561106f57604051630ed1279f60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631da24f3e90611003903090600401612170565b60206040518083038186803b15801561101b57600080fd5b505afa15801561102f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611053919061245b565b6001600160a01b03821660009081526005602052604090205550565b6040516370a0823160e01b81526001600160a01b038216906370a0823190611003903090600401612170565b60006110a78484610994565b90506000198114610b6e57818110156111025760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610525565b610b6e8484848403610b8b565b6001600160a01b0383166111735760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610525565b6001600160a01b0382166111d55760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610525565b6111e0838383611c23565b6001600160a01b038316600090815260208190526040902054818110156112585760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610525565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061128f90849061231c565b92505081905550826001600160a01b0316846001600160a01b0316600080516020612617833981519152846040516112c991815260200190565b60405180910390a3610b6e565b6112de611cbc565b6112e782611dc6565b60005b8251811015610df05760008382815181106113075761130761234a565b602002602001015190506000816001600160a01b03166370a08231306040518263ffffffff1660e01b815260040161133f9190612170565b60206040518083038186803b15801561135757600080fd5b505afa15801561136b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061138f919061245b565b905083156113f7576001600160a01b0382166000908152600660205260409020600101546113c99085906113c3908461248d565b90611e69565b6001600160a01b038316600090815260066020526040812080549091906113f190849061231c565b90915550505b6001600160a01b0390911660009081526006602052604090206001015561141d816124a4565b90506112ea565b600061142e6107dd565b905061143a81836112d6565b610b6e818585611e98565b606060006114516107dd565b905080516001600160401b0381111561146c5761146c612334565b604051908082528060200260200182016040528015611495578160200160208202803683370190505b50915060005b815181101561161a5760008282815181106114b8576114b861234a565b6020026020010151905060076000876001600160a01b03166001600160a01b031681526020019081526020016000206000826001600160a01b03166001600160a01b03168152602001908152602001600020600101548483815181106115205761152061234a565b6020908102919091018101919091526001600160a01b038088166000908152600783526040808220928516825291909252812060010155835184908390811061156b5761156b61234a565b602002602001015160066000836001600160a01b03166001600160a01b0316815260200190815260200160002060010160008282546115aa919061248d565b925050819055508382815181106115c3576115c361234a565b602002602001015160001461160957611609858584815181106115e8576115e861234a565b6020026020010151836001600160a01b0316610f5e9092919063ffffffff16565b50611613816124a4565b905061149b565b505092915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561175257604051630ed1279f60e11b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631da24f3e906116ad903090600401612170565b60206040518083038186803b1580156116c557600080fd5b505afa1580156116d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fd919061245b565b905061173361170a6109bf565b6001600160a01b03851660009081526005602052604090205461172d908461248d565b90611c7b565b6001600160a01b03939093166000908152600560205260409020555090565b6040516370a0823160e01b81526000906001600160a01b038416906370a0823190611781903090600401612170565b60206040518083038186803b15801561179957600080fd5b505afa1580156117ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d1919061245b565b6001600160a01b038416600090815260056020526040902054909150611733908261248d565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561184557610e4361183e6109bf565b8390611ffb565b60405163617ba03760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201849052306044830152600060648301527f0000000000000000000000000000000000000000000000000000000000000000169063617ba03790608401600060405180830381600087803b1580156118dc57600080fd5b505af11580156118f0573d6000803e3d6000fd5b5050505061191d7f0000000000000000000000000000000000000000000000000000000000000000610f7d565b6105b57f0000000000000000000000000000000000000000000000000000000000000000611622565b6001600160a01b03821661199c5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610525565b6119a860008383611c23565b80600260008282546119ba919061231c565b90915550506001600160a01b038216600090815260208190526040812080548392906119e790849061231c565b90915550506040518181526001600160a01b038316906000906000805160206126178339815191529060200160405180910390a35b5050565b6000611a75826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610b749092919063ffffffff16565b805190915015610df05780806020019051810190611a9391906124bf565b610df05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610525565b606082471015611b535760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610525565b6001600160a01b0385163b611baa5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610525565b600080866001600160a01b03168587604051611bc691906124e1565b60006040518083038185875af1925050503d8060008114611c03576040519150601f19603f3d011682016040523d82523d6000602084013e611c08565b606091505b5091509150611c18828286612038565b979650505050505050565b6000611c2d6107dd565b9050611c3c8161062f60025490565b6001600160a01b03841615611c5e57611c5e8185611c59876105fb565b611e98565b6001600160a01b03831615610b6e57610b6e8184611c59866105fb565b60008115676765c793fa10079d601a1b1983900484111517611c9c57600080fd5b50676765c793fa10079d601b1b9102676765c793fa10079d601a1b010490565b604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611d1257611d1261234a565b6001600160a01b03928316602091820292909201015260405163bb492bf560e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063bb492bf590611d7090849030906004016124fd565b600060405180830381600087803b158015611d8a57600080fd5b505af1158015611d9e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610df09190810190612527565b60005b8151811015611a1c5760066000838381518110611de857611de861234a565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000015460001415611e5957600160066000848481518110611e3457611e3461234a565b6020908102919091018101516001600160a01b03168252810191909152604001600020555b611e62816124a4565b9050611dc9565b600080611e7e670de0b6b3a7640000856125e1565b9050828181611e8f57611e8f612600565b04949350505050565b60005b8351811015610b6e576000848281518110611eb857611eb861234a565b6020908102919091018101516001600160a01b03808716600090815260078452604080822092841682529184528181205460069094522054909250811415611f01575050611feb565b80611f3d57506001600160a01b039081166000818152600660209081526040808320549488168352600782528083209383529290522055611feb565b6001600160a01b038216600090815260066020526040812054611f6190839061248d565b90506000611f6f8683612071565b6001600160a01b038089166000908152600760209081526040808320938916835292905290812060010180549293508392909190611fae90849061231c565b9091555050506001600160a01b03928316600081815260066020908152604080832054968a16835260078252808320938352929052209290925550505b611ff4816124a4565b9050611e9b565b60008115676765c793fa10079d601b1b6002840419048411171561201e57600080fd5b50676765c793fa10079d601b1b9190910260028204010490565b606083156120475750816105b5565b8251156120575782518084602001fd5b8160405162461bcd60e51b815260040161052591906120bb565b60008061207e83856125e1565b9050670de0b6b3a764000081611e8f565b60005b838110156120aa578181015183820152602001612092565b83811115610b6e5750506000910152565b60208152600082518060208401526120da81604085016020870161208f565b601f01601f19169190910160400192915050565b6001600160a01b038116811461063457600080fd5b6000806040838503121561211657600080fd5b8235612121816120ee565b946020939093013593505050565b60008060006060848603121561214457600080fd5b833561214f816120ee565b9250602084013561215f816120ee565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b6000806040838503121561219757600080fd5b82356121a2816120ee565b915060208301356121b2816120ee565b809150509250929050565b6000602082840312156121cf57600080fd5b81356105b5816120ee565b6020808252825182820181905260009190848201906040850190845b81811015612212578351835292840192918401916001016121f6565b50909695505050505050565b600081518084526020808501945080840160005b838110156122575781516001600160a01b031687529582019590820190600101612232565b509495945050505050565b6020815260006105b5602083018461221e565b600181811c9082168061228957607f821691505b602082108114156122aa57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526012908201527134b73b30b634b2103130b9b2903a37b5b2b760711b604082015260600190565b60208082526010908201526f1a5b9cdd59999a58da595b9d081bdd5d60821b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000821982111561232f5761232f612306565b500190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561238857612388612334565b604052919050565b60006001600160401b038211156123a9576123a9612334565b5060051b60200190565b600082601f8301126123c457600080fd5b815160206123d96123d483612390565b612360565b82815260059290921b840181019181810190868411156123f857600080fd5b8286015b8481101561241c57805161240f816120ee565b83529183019183016123fc565b509695505050505050565b60006020828403121561243957600080fd5b81516001600160401b0381111561244f57600080fd5b610b83848285016123b3565b60006020828403121561246d57600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b60008282101561249f5761249f612306565b500390565b60006000198214156124b8576124b8612306565b5060010190565b6000602082840312156124d157600080fd5b815180151581146105b557600080fd5b600082516124f381846020870161208f565b9190910192915050565b604081526000612510604083018561221e565b905060018060a01b03831660208301529392505050565b6000806040838503121561253a57600080fd5b82516001600160401b038082111561255157600080fd5b61255d868387016123b3565b935060209150818501518181111561257457600080fd5b85019050601f8101861361258757600080fd5b80516125956123d482612390565b81815260059190911b820183019083810190888311156125b457600080fd5b928401925b828410156125d2578351825292840192908401906125b9565b80955050505050509250929050565b60008160001904831182151516156125fb576125fb612306565b500290565b634e487b7160e01b600052601260045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212200b39038f1155e58fb37909c3d40d46f69b2773fd6473d8c25738295e7ae25f9564736f6c63430008090033";
705
+ "0x6101406040523480156200001257600080fd5b506040516200301c3803806200301c8339810160408190526200003591620005ef565b8787878783838383838381600390805190602001906200005792919062000444565b5080516200006d90600490602084019062000444565b50505060ff9182166080521660a052505050506001600160a01b0384811661012081905287821660e05286821660c081905291851661010052620000c49350909150600019620000d2602090811b62000b0417901c565b5050505050505050620007be565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b1580156200011f57600080fd5b505afa15801562000134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200015a9190620006c9565b620001669190620006e3565b604080516001600160a01b038616602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152919250620001c291869190620001c816565b50505050565b600062000224826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316620002af60201b62000bf0179092919060201c565b805190915015620002aa57808060200190518101906200024591906200070a565b620002aa5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084015b60405180910390fd5b505050565b6060620002c08484600085620002ca565b90505b9392505050565b6060824710156200032d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401620002a1565b6001600160a01b0385163b620003865760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620002a1565b600080866001600160a01b03168587604051620003a491906200072e565b60006040518083038185875af1925050503d8060008114620003e3576040519150601f19603f3d011682016040523d82523d6000602084013e620003e8565b606091505b509092509050620003fb82828662000406565b979650505050505050565b6060831562000417575081620002c3565b825115620004285782518084602001fd5b8160405162461bcd60e51b8152600401620002a191906200074c565b828054620004529062000781565b90600052602060002090601f016020900481019282620004765760008555620004c1565b82601f106200049157805160ff1916838001178555620004c1565b82800160010185558215620004c1579182015b82811115620004c1578251825591602001919060010190620004a4565b50620004cf929150620004d3565b5090565b5b80821115620004cf5760008155600101620004d4565b634e487b7160e01b600052604160045260246000fd5b60005b838110156200051d57818101518382015260200162000503565b83811115620001c25750506000910152565b600082601f8301126200054157600080fd5b81516001600160401b03808211156200055e576200055e620004ea565b604051601f8301601f19908116603f01168101908282118183101715620005895762000589620004ea565b81604052838152866020858801011115620005a357600080fd5b620005b684602083016020890162000500565b9695505050505050565b805160ff81168114620005d257600080fd5b919050565b80516001600160a01b0381168114620005d257600080fd5b600080600080600080600080610100898b0312156200060d57600080fd5b88516001600160401b03808211156200062557600080fd5b620006338c838d016200052f565b995060208b01519150808211156200064a57600080fd5b50620006598b828c016200052f565b9750506200066a60408a01620005c0565b95506200067a60608a01620005c0565b94506200068a60808a01620005d7565b93506200069a60a08a01620005d7565b9250620006aa60c08a01620005d7565b9150620006ba60e08a01620005d7565b90509295985092959890939650565b600060208284031215620006dc57600080fd5b5051919050565b600082198211156200070557634e487b7160e01b600052601160045260246000fd5b500190565b6000602082840312156200071d57600080fd5b81518015158114620002c357600080fd5b600082516200074281846020870162000500565b9190910192915050565b60208152600082518060208401526200076d81604085016020870162000500565b601f01601f19169190910160400192915050565b600181811c908216806200079657607f821691505b60208210811415620007b857634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e051610100516101205161276d620008af60003960008181610351015281816107e70152818161090a015281816109d701528181610f6a01528181610fbc0152818161113f0152818161126d0152818161184001528181611971015281816119bf01528181611a0e0152611dd80152600081816102d6015281816108dd0152611e2f0152600081816101c001528181610a55015281816111e301526118ed0152600081816102fd015281816107930152818161099c01528181610a82015281816111a70152818161124401526118b50152600061041d01526000610216015261276d6000f3fe608060405234801561001057600080fd5b50600436106101755760003560e01c806306fdde031461017a578063095ea7b31461019857806316f0115b146101bb57806318160ddd146101ef57806323b872dd14610201578063313ce5671461021457806339509351146102485780634be474181461025b5780635cbadbe41461026e5780636265bc85146102b557806369889d3a146102be5780636bb65f53146102d15780636f307dc3146102f857806370a082311461031f5780637695caa2146103325780638e37b2691461033c57806395d89b4114610344578063a0c1f15e1461034c578063a457c2d714610373578063a9059cbb14610386578063b2427a6c14610399578063b286de76146103c0578063b3f1c93d146103e0578063bed64c2f146103f3578063c1129b1b14610408578063c2d416011461041b578063c4f59f9b14610441578063c6d6916c14610449578063c9c0c0821461045c578063dd62ed3e1461046f578063f65d6fc814610482575b600080fd5b61018261048a565b60405161018f9190612176565b60405180910390f35b6101ab6101a63660046121be565b61051c565b604051901515815260200161018f565b6101e27f000000000000000000000000000000000000000000000000000000000000000081565b60405161018f91906121ea565b6002545b60405190815260200161018f565b6101ab61020f3660046121fe565b610536565b7f00000000000000000000000000000000000000000000000000000000000000005b60405160ff909116815260200161018f565b6101ab6102563660046121be565b61055c565b6101f361026936600461223f565b61059b565b6102a061027c366004612285565b60076020908152600092835260408084209091529082529020805460019091015482565b6040805192835260208301919091520161018f565b6101f360085481565b6101f36102cc3660046121fe565b6105bd565b6101e27f000000000000000000000000000000000000000000000000000000000000000081565b6101e27f000000000000000000000000000000000000000000000000000000000000000081565b6101f361032d3660046122be565b610638565b61033a610653565b005b6008546101f3565b610182610674565b6101e27f000000000000000000000000000000000000000000000000000000000000000081565b6101ab6103813660046121be565b610683565b6101ab6103943660046121be565b610720565b6102a06103a73660046122be565b6006602052600090815260409020805460019091015482565b6103d36103ce3660046122be565b61072e565b60405161018f91906122db565b6101f36103ee36600461223f565b61074f565b6103fb610771565b60405161018f9190612363565b6101f36104163660046121fe565b61083c565b7f0000000000000000000000000000000000000000000000000000000000000000610236565b6103fb6108c3565b61033a6104573660046122be565b61098b565b6101ab61046a3660046122be565b610998565b6101f361047d366004612285565b610a10565b6101f3610a3b565b60606003805461049990612376565b80601f01602080910402602001604051908101604052809291908181526020018280546104c590612376565b80156105125780601f106104e757610100808354040283529160200191610512565b820191906000526020600020905b8154815290600101906020018083116104f557829003601f168201915b5050505050905090565b60003361052a818585610c07565b60019150505b92915050565b600033610544858285610d2b565b61054f858585610d9f565b60019150505b9392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061052a90829086906105969087906123c7565b610c07565b60006105a8333085610536565b506105b485858461083c565b95945050505050565b60006105c883610998565b6105ed5760405162461bcd60e51b81526004016105e4906123df565b60405180910390fd5b60006105f884610f66565b9050610604848261113b565b9150828210156106265760405162461bcd60e51b81526004016105e49061240b565b6106308583611291565b509392505050565b6001600160a01b031660009081526020819052604090205490565b600061065d6108c3565b90506106718161066c60025490565b61136b565b50565b60606004805461049990612376565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156107085760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016105e4565b6107158286868403610c07565b506001949350505050565b60003361052a818585610d9f565b60606107458261073d84610638565b6002546114be565b61053082836114df565b60006107666001600160a01b0385163330866116bc565b6105b48585846105bd565b60408051600280825260608083018452926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106107c5576107c561244b565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000000000000000000000000000000000000000000000816001815181106108195761081961244b565b60200260200101906001600160a01b031690816001600160a01b03168152505090565b600061084783610998565b6108635760405162461bcd60e51b81526004016105e4906123df565b600061086e30610638565b905061087a30826116f4565b610884848261183c565b9150828210156108a65760405162461bcd60e51b81526004016105e49061240b565b6108ba6001600160a01b038516868461199e565b610630846119bd565b604051636657732f60e01b81526060906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690636657732f90610932907f0000000000000000000000000000000000000000000000000000000000000000906004016121ea565b60006040518083038186803b15801561094a57600080fd5b505afa15801561095e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109869190810190612528565b905090565b6106718161073d83610638565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316148061053057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161492915050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b60405163d15e005360e01b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063d15e005390610aaa907f0000000000000000000000000000000000000000000000000000000000000000906004016121ea565b60206040518083038186803b158015610ac257600080fd5b505afa158015610ad6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610afa919061255c565b6008819055919050565b604051636eb1769f60e11b81523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b158015610b5057600080fd5b505afa158015610b64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b88919061255c565b610b9291906123c7565b9050610bea8463095ea7b360e01b8584604051602401610bb3929190612575565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152611adb565b50505050565b6060610bff8484600085611bad565b949350505050565b6001600160a01b038316610c695760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016105e4565b6001600160a01b038216610cca5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016105e4565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610d378484610a10565b90506000198114610bea5781811015610d925760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016105e4565b610bea8484848403610c07565b6001600160a01b038316610e035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016105e4565b6001600160a01b038216610e655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016105e4565b610e70838383611cde565b6001600160a01b03831660009081526020819052604090205481811015610ee85760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016105e4565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610f1f9084906123c7565b92505081905550826001600160a01b0316846001600160a01b031660008051602061271883398151915284604051610f5991815260200190565b60405180910390a3610bea565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b0316141561109657604051630ed1279f60e11b81526000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631da24f3e90610ff19030906004016121ea565b60206040518083038186803b15801561100957600080fd5b505afa15801561101d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611041919061255c565b905061107761104e610a3b565b6001600160a01b038516600090815260056020526040902054611071908461258e565b90611d36565b6001600160a01b03939093166000908152600560205260409020555090565b6040516370a0823160e01b81526000906001600160a01b038416906370a08231906110c59030906004016121ea565b60206040518083038186803b1580156110dd57600080fd5b505afa1580156110f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611115919061255c565b6001600160a01b038416600090815260056020526040902054909150611077908261258e565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561119057611189611182610a3b565b8390611d77565b9050610530565b60405163617ba03760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260248201849052306044830152600060648301527f0000000000000000000000000000000000000000000000000000000000000000169063617ba03790608401600060405180830381600087803b15801561122757600080fd5b505af115801561123b573d6000803e3d6000fd5b505050506112687f00000000000000000000000000000000000000000000000000000000000000006119bd565b6105557f0000000000000000000000000000000000000000000000000000000000000000610f66565b6001600160a01b0382166112e75760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016105e4565b6112f360008383611cde565b806002600082825461130591906123c7565b90915550506001600160a01b038216600090815260208190526040812080548392906113329084906123c7565b90915550506040518181526001600160a01b038316906000906000805160206127188339815191529060200160405180910390a35b5050565b611373611db4565b61137c82611ebe565b60005b82518110156114b957600083828151811061139c5761139c61244b565b602002602001015190506000816001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016113d491906121ea565b60206040518083038186803b1580156113ec57600080fd5b505afa158015611400573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611424919061255c565b9050831561148c576001600160a01b03821660009081526006602052604090206001015461145e908590611458908461258e565b90611f61565b6001600160a01b038316600090815260066020526040812080549091906114869084906123c7565b90915550505b6001600160a01b039091166000908152600660205260409020600101556114b2816125a5565b905061137f565b505050565b60006114c86108c3565b90506114d4818361136b565b610bea818585611f90565b606060006114eb6108c3565b905080516001600160401b0381111561150657611506612435565b60405190808252806020026020018201604052801561152f578160200160208202803683370190505b50915060005b81518110156116b45760008282815181106115525761155261244b565b6020026020010151905060076000876001600160a01b03166001600160a01b031681526020019081526020016000206000826001600160a01b03166001600160a01b03168152602001908152602001600020600101548483815181106115ba576115ba61244b565b6020908102919091018101919091526001600160a01b03808816600090815260078352604080822092851682529190925281206001015583518490839081106116055761160561244b565b602002602001015160066000836001600160a01b03166001600160a01b031681526020019081526020016000206001016000828254611644919061258e565b9250508190555083828151811061165d5761165d61244b565b60200260200101516000146116a3576116a3858584815181106116825761168261244b565b6020026020010151836001600160a01b031661199e9092919063ffffffff16565b506116ad816125a5565b9050611535565b505092915050565b6040516001600160a01b0380851660248301528316604482015260648101829052610bea9085906323b872dd60e01b90608401610bb3565b6001600160a01b0382166117545760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016105e4565b61176082600083611cde565b6001600160a01b038216600090815260208190526040902054818110156117d45760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016105e4565b6001600160a01b038316600090815260208190526040812083830390556002805484929061180390849061258e565b90915550506040518281526000906001600160a01b038516906000805160206127188339815191529060200160405180910390a3505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b0316141561188a57611189611883610a3b565b8390611d36565b600061189e611897610a3b565b8490611d36565b604051631a4ca37b60e21b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018390523060448301529192507f0000000000000000000000000000000000000000000000000000000000000000909116906369328dec90606401602060405180830381600087803b15801561193357600080fd5b505af1158015611947573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196b919061255c565b506119957f00000000000000000000000000000000000000000000000000000000000000006119bd565b610bff84610f66565b6114b98363a9059cbb60e01b8484604051602401610bb3929190612575565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03161415611aaf57604051630ed1279f60e11b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631da24f3e90611a439030906004016121ea565b60206040518083038186803b158015611a5b57600080fd5b505afa158015611a6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a93919061255c565b6001600160a01b03821660009081526005602052604090205550565b6040516370a0823160e01b81526001600160a01b038216906370a0823190611a439030906004016121ea565b6000611b30826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316610bf09092919063ffffffff16565b8051909150156114b95780806020019051810190611b4e91906125c0565b6114b95760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016105e4565b606082471015611c0e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b60648201526084016105e4565b6001600160a01b0385163b611c655760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016105e4565b600080866001600160a01b03168587604051611c8191906125e2565b60006040518083038185875af1925050503d8060008114611cbe576040519150601f19603f3d011682016040523d82523d6000602084013e611cc3565b606091505b5091509150611cd38282866120f3565b979650505050505050565b6000611ce86108c3565b9050611cf78161066c60025490565b6001600160a01b03841615611d1957611d198185611d1487610638565b611f90565b6001600160a01b03831615610bea57610bea8184611d1486610638565b60008115676765c793fa10079d601a1b1983900484111517611d5757600080fd5b50676765c793fa10079d601b1b9102676765c793fa10079d601a1b010490565b60008115676765c793fa10079d601b1b60028404190484111715611d9a57600080fd5b50676765c793fa10079d601b1b9190910260028204010490565b604080516001808252818301909252600091602080830190803683370190505090507f000000000000000000000000000000000000000000000000000000000000000081600081518110611e0a57611e0a61244b565b6001600160a01b03928316602091820292909201015260405163bb492bf560e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063bb492bf590611e6890849030906004016125fe565b600060405180830381600087803b158015611e8257600080fd5b505af1158015611e96573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114b99190810190612628565b60005b81518110156113675760066000838381518110611ee057611ee061244b565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000015460001415611f5157600160066000848481518110611f2c57611f2c61244b565b6020908102919091018101516001600160a01b03168252810191909152604001600020555b611f5a816125a5565b9050611ec1565b600080611f76670de0b6b3a7640000856126e2565b9050828181611f8757611f87612701565b04949350505050565b60005b8351811015610bea576000848281518110611fb057611fb061244b565b6020908102919091018101516001600160a01b03808716600090815260078452604080822092841682529184528181205460069094522054909250811415611ff95750506120e3565b8061203557506001600160a01b0390811660008181526006602090815260408083205494881683526007825280832093835292905220556120e3565b6001600160a01b03821660009081526006602052604081205461205990839061258e565b90506000612067868361212c565b6001600160a01b0380891660009081526007602090815260408083209389168352929052908120600101805492935083929091906120a69084906123c7565b9091555050506001600160a01b03928316600081815260066020908152604080832054968a16835260078252808320938352929052209290925550505b6120ec816125a5565b9050611f93565b60608315612102575081610555565b8251156121125782518084602001fd5b8160405162461bcd60e51b81526004016105e49190612176565b60008061213983856126e2565b9050670de0b6b3a764000081611f87565b60005b8381101561216557818101518382015260200161214d565b83811115610bea5750506000910152565b602081526000825180602084015261219581604085016020870161214a565b601f01601f19169190910160400192915050565b6001600160a01b038116811461067157600080fd5b600080604083850312156121d157600080fd5b82356121dc816121a9565b946020939093013593505050565b6001600160a01b0391909116815260200190565b60008060006060848603121561221357600080fd5b833561221e816121a9565b9250602084013561222e816121a9565b929592945050506040919091013590565b6000806000806080858703121561225557600080fd5b8435612260816121a9565b93506020850135612270816121a9565b93969395505050506040820135916060013590565b6000806040838503121561229857600080fd5b82356122a3816121a9565b915060208301356122b3816121a9565b809150509250929050565b6000602082840312156122d057600080fd5b8135610555816121a9565b6020808252825182820181905260009190848201906040850190845b81811015612313578351835292840192918401916001016122f7565b50909695505050505050565b600081518084526020808501945080840160005b838110156123585781516001600160a01b031687529582019590820190600101612333565b509495945050505050565b602081526000610555602083018461231f565b600181811c9082168061238a57607f821691505b602082108114156123ab57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156123da576123da6123b1565b500190565b60208082526012908201527134b73b30b634b2103130b9b2903a37b5b2b760711b604082015260600190565b60208082526010908201526f1a5b9cdd59999a58da595b9d081bdd5d60821b604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561248957612489612435565b604052919050565b60006001600160401b038211156124aa576124aa612435565b5060051b60200190565b600082601f8301126124c557600080fd5b815160206124da6124d583612491565b612461565b82815260059290921b840181019181810190868411156124f957600080fd5b8286015b8481101561251d578051612510816121a9565b83529183019183016124fd565b509695505050505050565b60006020828403121561253a57600080fd5b81516001600160401b0381111561255057600080fd5b610bff848285016124b4565b60006020828403121561256e57600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b6000828210156125a0576125a06123b1565b500390565b60006000198214156125b9576125b96123b1565b5060010190565b6000602082840312156125d257600080fd5b8151801515811461055557600080fd5b600082516125f481846020870161214a565b9190910192915050565b604081526000612611604083018561231f565b905060018060a01b03831660208301529392505050565b6000806040838503121561263b57600080fd5b82516001600160401b038082111561265257600080fd5b61265e868387016124b4565b935060209150818501518181111561267557600080fd5b85019050601f8101861361268857600080fd5b80516126966124d582612491565b81815260059190911b820183019083810190888311156126b557600080fd5b928401925b828410156126d3578351825292840192908401906126ba565b80955050505050509250929050565b60008160001904831182151516156126fc576126fc6123b1565b500290565b634e487b7160e01b600052601260045260246000fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202525394dffc9c31580dcc55f0e68325516b6664cddc61d5efd928b238b4f170264736f6c63430008090033";
638
706
 
639
707
  type PendleAaveV3SCYConstructorParams =
640
708
  | [signer?: Signer]