@towns-protocol/generated 0.0.367 → 0.0.368

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.
@@ -1 +1 @@
1
- 939567e981fdbf26eba6e7492a91a621f7fc0ade
1
+ aabf62ea827163a9dd11767ba08126783b76d602
@@ -133,6 +133,11 @@
133
133
  "name": "accessDuration",
134
134
  "type": "uint48",
135
135
  "internalType": "uint48"
136
+ },
137
+ {
138
+ "name": "client",
139
+ "type": "address",
140
+ "internalType": "address"
136
141
  }
137
142
  ],
138
143
  "outputs": [],
@@ -262,6 +267,29 @@
262
267
  ],
263
268
  "stateMutability": "view"
264
269
  },
270
+ {
271
+ "type": "function",
272
+ "name": "sendCurrency",
273
+ "inputs": [
274
+ {
275
+ "name": "recipient",
276
+ "type": "address",
277
+ "internalType": "address"
278
+ },
279
+ {
280
+ "name": "currency",
281
+ "type": "address",
282
+ "internalType": "address"
283
+ },
284
+ {
285
+ "name": "amount",
286
+ "type": "uint256",
287
+ "internalType": "uint256"
288
+ }
289
+ ],
290
+ "outputs": [],
291
+ "stateMutability": "nonpayable"
292
+ },
265
293
  {
266
294
  "type": "function",
267
295
  "name": "supportsInterface",
@@ -428,6 +456,31 @@
428
456
  ],
429
457
  "anonymous": false
430
458
  },
459
+ {
460
+ "type": "event",
461
+ "name": "SendCurrency",
462
+ "inputs": [
463
+ {
464
+ "name": "recipient",
465
+ "type": "address",
466
+ "indexed": true,
467
+ "internalType": "address"
468
+ },
469
+ {
470
+ "name": "currency",
471
+ "type": "address",
472
+ "indexed": true,
473
+ "internalType": "address"
474
+ },
475
+ {
476
+ "name": "amount",
477
+ "type": "uint256",
478
+ "indexed": false,
479
+ "internalType": "uint256"
480
+ }
481
+ ],
482
+ "anonymous": false
483
+ },
431
484
  {
432
485
  "type": "event",
433
486
  "name": "Withdrawal",
@@ -452,6 +505,26 @@
452
505
  "name": "AlreadyInitialized",
453
506
  "inputs": []
454
507
  },
508
+ {
509
+ "type": "error",
510
+ "name": "InvalidAddressInput",
511
+ "inputs": []
512
+ },
513
+ {
514
+ "type": "error",
515
+ "name": "InvalidAmount",
516
+ "inputs": []
517
+ },
518
+ {
519
+ "type": "error",
520
+ "name": "InvalidCaller",
521
+ "inputs": []
522
+ },
523
+ {
524
+ "type": "error",
525
+ "name": "InvalidCurrency",
526
+ "inputs": []
527
+ },
455
528
  {
456
529
  "type": "error",
457
530
  "name": "InvalidInitialization",
@@ -133,6 +133,11 @@ export default [
133
133
  "name": "accessDuration",
134
134
  "type": "uint48",
135
135
  "internalType": "uint48"
136
+ },
137
+ {
138
+ "name": "client",
139
+ "type": "address",
140
+ "internalType": "address"
136
141
  }
137
142
  ],
138
143
  "outputs": [],
@@ -262,6 +267,29 @@ export default [
262
267
  ],
263
268
  "stateMutability": "view"
264
269
  },
270
+ {
271
+ "type": "function",
272
+ "name": "sendCurrency",
273
+ "inputs": [
274
+ {
275
+ "name": "recipient",
276
+ "type": "address",
277
+ "internalType": "address"
278
+ },
279
+ {
280
+ "name": "currency",
281
+ "type": "address",
282
+ "internalType": "address"
283
+ },
284
+ {
285
+ "name": "amount",
286
+ "type": "uint256",
287
+ "internalType": "uint256"
288
+ }
289
+ ],
290
+ "outputs": [],
291
+ "stateMutability": "nonpayable"
292
+ },
265
293
  {
266
294
  "type": "function",
267
295
  "name": "supportsInterface",
@@ -428,6 +456,31 @@ export default [
428
456
  ],
429
457
  "anonymous": false
430
458
  },
459
+ {
460
+ "type": "event",
461
+ "name": "SendCurrency",
462
+ "inputs": [
463
+ {
464
+ "name": "recipient",
465
+ "type": "address",
466
+ "indexed": true,
467
+ "internalType": "address"
468
+ },
469
+ {
470
+ "name": "currency",
471
+ "type": "address",
472
+ "indexed": true,
473
+ "internalType": "address"
474
+ },
475
+ {
476
+ "name": "amount",
477
+ "type": "uint256",
478
+ "indexed": false,
479
+ "internalType": "uint256"
480
+ }
481
+ ],
482
+ "anonymous": false
483
+ },
431
484
  {
432
485
  "type": "event",
433
486
  "name": "Withdrawal",
@@ -452,6 +505,26 @@ export default [
452
505
  "name": "AlreadyInitialized",
453
506
  "inputs": []
454
507
  },
508
+ {
509
+ "type": "error",
510
+ "name": "InvalidAddressInput",
511
+ "inputs": []
512
+ },
513
+ {
514
+ "type": "error",
515
+ "name": "InvalidAmount",
516
+ "inputs": []
517
+ },
518
+ {
519
+ "type": "error",
520
+ "name": "InvalidCaller",
521
+ "inputs": []
522
+ },
523
+ {
524
+ "type": "error",
525
+ "name": "InvalidCurrency",
526
+ "inputs": []
527
+ },
455
528
  {
456
529
  "type": "error",
457
530
  "name": "InvalidInitialization",
@@ -84,7 +84,7 @@ export interface SimpleAppInterface extends utils.Interface {
84
84
  "cancelOwnershipHandover()": FunctionFragment;
85
85
  "completeOwnershipHandover(address)": FunctionFragment;
86
86
  "executionManifest()": FunctionFragment;
87
- "initialize(address,string,bytes32[],uint256,uint48)": FunctionFragment;
87
+ "initialize(address,string,bytes32[],uint256,uint48,address)": FunctionFragment;
88
88
  "installPrice()": FunctionFragment;
89
89
  "moduleId()": FunctionFragment;
90
90
  "moduleOwner()": FunctionFragment;
@@ -95,6 +95,7 @@ export interface SimpleAppInterface extends utils.Interface {
95
95
  "renounceOwnership()": FunctionFragment;
96
96
  "requestOwnershipHandover()": FunctionFragment;
97
97
  "requiredPermissions()": FunctionFragment;
98
+ "sendCurrency(address,address,uint256)": FunctionFragment;
98
99
  "supportsInterface(bytes4)": FunctionFragment;
99
100
  "transferOwnership(address)": FunctionFragment;
100
101
  "updatePermissions(bytes32[])": FunctionFragment;
@@ -119,6 +120,7 @@ export interface SimpleAppInterface extends utils.Interface {
119
120
  | "renounceOwnership"
120
121
  | "requestOwnershipHandover"
121
122
  | "requiredPermissions"
123
+ | "sendCurrency"
122
124
  | "supportsInterface"
123
125
  | "transferOwnership"
124
126
  | "updatePermissions"
@@ -144,7 +146,7 @@ export interface SimpleAppInterface extends utils.Interface {
144
146
  ): string;
145
147
  encodeFunctionData(
146
148
  functionFragment: "initialize",
147
- values: [string, string, BytesLike[], BigNumberish, BigNumberish]
149
+ values: [string, string, BytesLike[], BigNumberish, BigNumberish, string]
148
150
  ): string;
149
151
  encodeFunctionData(
150
152
  functionFragment: "installPrice",
@@ -180,6 +182,10 @@ export interface SimpleAppInterface extends utils.Interface {
180
182
  functionFragment: "requiredPermissions",
181
183
  values?: undefined
182
184
  ): string;
185
+ encodeFunctionData(
186
+ functionFragment: "sendCurrency",
187
+ values: [string, string, BigNumberish]
188
+ ): string;
183
189
  encodeFunctionData(
184
190
  functionFragment: "supportsInterface",
185
191
  values: [BytesLike]
@@ -246,6 +252,10 @@ export interface SimpleAppInterface extends utils.Interface {
246
252
  functionFragment: "requiredPermissions",
247
253
  data: BytesLike
248
254
  ): Result;
255
+ decodeFunctionResult(
256
+ functionFragment: "sendCurrency",
257
+ data: BytesLike
258
+ ): Result;
249
259
  decodeFunctionResult(
250
260
  functionFragment: "supportsInterface",
251
261
  data: BytesLike
@@ -274,6 +284,7 @@ export interface SimpleAppInterface extends utils.Interface {
274
284
  "OwnershipTransferred(address,address)": EventFragment;
275
285
  "PermissionsUpdated(bytes32[])": EventFragment;
276
286
  "PricingUpdated(uint256,uint48)": EventFragment;
287
+ "SendCurrency(address,address,uint256)": EventFragment;
277
288
  "Withdrawal(address,uint256)": EventFragment;
278
289
  };
279
290
 
@@ -283,6 +294,7 @@ export interface SimpleAppInterface extends utils.Interface {
283
294
  getEvent(nameOrSignatureOrTopic: "OwnershipTransferred"): EventFragment;
284
295
  getEvent(nameOrSignatureOrTopic: "PermissionsUpdated"): EventFragment;
285
296
  getEvent(nameOrSignatureOrTopic: "PricingUpdated"): EventFragment;
297
+ getEvent(nameOrSignatureOrTopic: "SendCurrency"): EventFragment;
286
298
  getEvent(nameOrSignatureOrTopic: "Withdrawal"): EventFragment;
287
299
  }
288
300
 
@@ -349,6 +361,18 @@ export type PricingUpdatedEvent = TypedEvent<
349
361
 
350
362
  export type PricingUpdatedEventFilter = TypedEventFilter<PricingUpdatedEvent>;
351
363
 
364
+ export interface SendCurrencyEventObject {
365
+ recipient: string;
366
+ currency: string;
367
+ amount: BigNumber;
368
+ }
369
+ export type SendCurrencyEvent = TypedEvent<
370
+ [string, string, BigNumber],
371
+ SendCurrencyEventObject
372
+ >;
373
+
374
+ export type SendCurrencyEventFilter = TypedEventFilter<SendCurrencyEvent>;
375
+
352
376
  export interface WithdrawalEventObject {
353
377
  recipient: string;
354
378
  amount: BigNumber;
@@ -408,6 +432,7 @@ export interface SimpleApp extends BaseContract {
408
432
  permissions: BytesLike[],
409
433
  installPrice: BigNumberish,
410
434
  accessDuration: BigNumberish,
435
+ client: string,
411
436
  overrides?: Overrides & { from?: string }
412
437
  ): Promise<ContractTransaction>;
413
438
 
@@ -444,6 +469,13 @@ export interface SimpleApp extends BaseContract {
444
469
 
445
470
  requiredPermissions(overrides?: CallOverrides): Promise<[string[]]>;
446
471
 
472
+ sendCurrency(
473
+ recipient: string,
474
+ currency: string,
475
+ amount: BigNumberish,
476
+ overrides?: Overrides & { from?: string }
477
+ ): Promise<ContractTransaction>;
478
+
447
479
  supportsInterface(
448
480
  interfaceId: BytesLike,
449
481
  overrides?: CallOverrides
@@ -492,6 +524,7 @@ export interface SimpleApp extends BaseContract {
492
524
  permissions: BytesLike[],
493
525
  installPrice: BigNumberish,
494
526
  accessDuration: BigNumberish,
527
+ client: string,
495
528
  overrides?: Overrides & { from?: string }
496
529
  ): Promise<ContractTransaction>;
497
530
 
@@ -528,6 +561,13 @@ export interface SimpleApp extends BaseContract {
528
561
 
529
562
  requiredPermissions(overrides?: CallOverrides): Promise<string[]>;
530
563
 
564
+ sendCurrency(
565
+ recipient: string,
566
+ currency: string,
567
+ amount: BigNumberish,
568
+ overrides?: Overrides & { from?: string }
569
+ ): Promise<ContractTransaction>;
570
+
531
571
  supportsInterface(
532
572
  interfaceId: BytesLike,
533
573
  overrides?: CallOverrides
@@ -574,6 +614,7 @@ export interface SimpleApp extends BaseContract {
574
614
  permissions: BytesLike[],
575
615
  installPrice: BigNumberish,
576
616
  accessDuration: BigNumberish,
617
+ client: string,
577
618
  overrides?: CallOverrides
578
619
  ): Promise<void>;
579
620
 
@@ -606,6 +647,13 @@ export interface SimpleApp extends BaseContract {
606
647
 
607
648
  requiredPermissions(overrides?: CallOverrides): Promise<string[]>;
608
649
 
650
+ sendCurrency(
651
+ recipient: string,
652
+ currency: string,
653
+ amount: BigNumberish,
654
+ overrides?: CallOverrides
655
+ ): Promise<void>;
656
+
609
657
  supportsInterface(
610
658
  interfaceId: BytesLike,
611
659
  overrides?: CallOverrides
@@ -671,6 +719,17 @@ export interface SimpleApp extends BaseContract {
671
719
  accessDuration?: null
672
720
  ): PricingUpdatedEventFilter;
673
721
 
722
+ "SendCurrency(address,address,uint256)"(
723
+ recipient?: string | null,
724
+ currency?: string | null,
725
+ amount?: null
726
+ ): SendCurrencyEventFilter;
727
+ SendCurrency(
728
+ recipient?: string | null,
729
+ currency?: string | null,
730
+ amount?: null
731
+ ): SendCurrencyEventFilter;
732
+
674
733
  "Withdrawal(address,uint256)"(
675
734
  recipient?: string | null,
676
735
  amount?: null
@@ -698,6 +757,7 @@ export interface SimpleApp extends BaseContract {
698
757
  permissions: BytesLike[],
699
758
  installPrice: BigNumberish,
700
759
  accessDuration: BigNumberish,
760
+ client: string,
701
761
  overrides?: Overrides & { from?: string }
702
762
  ): Promise<BigNumber>;
703
763
 
@@ -734,6 +794,13 @@ export interface SimpleApp extends BaseContract {
734
794
 
735
795
  requiredPermissions(overrides?: CallOverrides): Promise<BigNumber>;
736
796
 
797
+ sendCurrency(
798
+ recipient: string,
799
+ currency: string,
800
+ amount: BigNumberish,
801
+ overrides?: Overrides & { from?: string }
802
+ ): Promise<BigNumber>;
803
+
737
804
  supportsInterface(
738
805
  interfaceId: BytesLike,
739
806
  overrides?: CallOverrides
@@ -781,6 +848,7 @@ export interface SimpleApp extends BaseContract {
781
848
  permissions: BytesLike[],
782
849
  installPrice: BigNumberish,
783
850
  accessDuration: BigNumberish,
851
+ client: string,
784
852
  overrides?: Overrides & { from?: string }
785
853
  ): Promise<PopulatedTransaction>;
786
854
 
@@ -819,6 +887,13 @@ export interface SimpleApp extends BaseContract {
819
887
  overrides?: CallOverrides
820
888
  ): Promise<PopulatedTransaction>;
821
889
 
890
+ sendCurrency(
891
+ recipient: string,
892
+ currency: string,
893
+ amount: BigNumberish,
894
+ overrides?: Overrides & { from?: string }
895
+ ): Promise<PopulatedTransaction>;
896
+
822
897
  supportsInterface(
823
898
  interfaceId: BytesLike,
824
899
  overrides?: CallOverrides
@@ -1418,7 +1418,7 @@ const _abi = [
1418
1418
  ] as const;
1419
1419
 
1420
1420
  const _bytecode =
1421
- "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b615429806100ca5f395ff3fe60806040526004361061016d575f3560e01c806379dda585116100c657806393b13cb71161007c578063a5a4103111610057578063a5a41031146103c9578063df9a9fe6146103dd578063e847abdd146103fc575f5ffd5b806393b13cb71461037557806395d600c81461039657806397fb7c1e146103aa575f5ffd5b80638120f0ba116100ac5780638120f0ba1461031657806383f3f0dc146103435780638c625b0614610362575f5ffd5b806379dda585146102ef5780637c9669ac14610303575f5ffd5b80635803909f11610126578063686f768411610101578063686f7684146102a957806369d5f38a146102bc578063706b8e09146102db575f5ffd5b80635803909f146102325780635becd24a14610251578063657e45e814610270575f5ffd5b806317c957091161015657806317c95709146101b9578063280a47c71461020d5780633e9491a214610220575f5ffd5b80630ef1be5f146101715780631278076a14610192575b5f5ffd5b34801561017c575f5ffd5b5061019061018b3660046147fb565b610410565b005b34801561019d575f5ffd5b506101a66104c5565b6040519081526020015b60405180910390f35b3480156101c4575f5ffd5b506101a66101d336600461483a565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b61019061021b366004614851565b61051e565b34801561022b575f5ffd5b50476101a6565b34801561023d575f5ffd5b506101a661024c36600461483a565b6105f4565b34801561025c575f5ffd5b5061019061026b36600461483a565b61064f565b34801561027b575f5ffd5b50610284610736565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b0565b6101906102b7366004614a5b565b610775565b3480156102c7575f5ffd5b506101906102d636600461483a565b6107b9565b3480156102e6575f5ffd5b506101a66108d1565b3480156102fa575f5ffd5b506102846108da565b61019061031136600461483a565b610919565b348015610321575f5ffd5b5061032a61095c565b60405167ffffffffffffffff90911681526020016101b0565b34801561034e575f5ffd5b5061019061035d366004614abd565b610965565b610190610370366004614ad8565b6109df565b348015610380575f5ffd5b50610389610a12565b6040516101b09190614b3f565b3480156103a1575f5ffd5b506101a6610a1c565b3480156103b5575f5ffd5b506101906103c436600461483a565b610a45565b3480156103d4575f5ffd5b506101a6610b2f565b3480156103e8575f5ffd5b506101906103f7366004614ad8565b610b86565b348015610407575f5ffd5b50610284610c5f565b610418610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610483576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104c182828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610d5e92505050565b5050565b5f6105196105147f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610d89565b905090565b3068929eee149b4bd21268540361053c5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f83600181111561055b5761055b614b51565b0361057e575f61056d82840184614ad8565b905061057881611000565b506105e3565b600183600181111561059257610592614b51565b036105ba575f806105a583850185614a5b565b915091506105b38282611107565b50506105e3565b6105e37f3be0196900000000000000000000000000000000000000000000000000000000611252565b3868929eee149b4bd2126855505050565b5f610649826106447f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b61125a565b92915050565b610657610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106bd576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b5f6106e67fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b905080158015906106f657508082115b15610724576107247fc3983b9100000000000000000000000000000000000000000000000000000000611252565b61072d82611343565b6104c1826113e7565b5f6105197fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd2126854036107935763ab143c065f526004601cfd5b3068929eee149b4bd21268556107a98282611107565b3868929eee149b4bd21268555050565b6107c1610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610827576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610830816114a5565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156108b8575f5ffd5b505af11580156108ca573d5f5f3e3d5ffd5b5050505050565b5f61051961154d565b5f6105197fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd2126854036109375763ab143c065f526004601cfd5b3068929eee149b4bd212685561094d3382611618565b3868929eee149b4bd212685550565b5f61051961179c565b61096d610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d3576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b6109dc8161185f565b50565b3068929eee149b4bd2126854036109fd5763ab143c065f526004601cfd5b3068929eee149b4bd212685561094d81611000565b60606105196118da565b5f6105197fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610a4d610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ab3576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610b0781610b027f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b61198c565b6109dc817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f610519610b816105147f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b6119bd565b610b8e610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bf4576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610bfd81611b30565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6105197fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610d34573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d589190614b7e565b91505090565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104c18282614c2e565b5f5f610d9361154d565b90505f610dd47fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b90505f610ddf6108da565b905073ffffffffffffffffffffffffffffffffffffffff8216610e72578073ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e699190614d45565b95945050505050565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018490526024810186905273ffffffffffffffffffffffffffffffffffffffff831690635cf4ee9190604401602060405180830381865afa158015610ee2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f069190614d45565b93505f8173ffffffffffffffffffffffffffffffffffffffff16631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f52573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f769190614d45565b905080851015610ff7578173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fed9190614d45565b9695505050505050565b50505050919050565b61100981611c69565b5f611012611d5f565b9050806040015180156110285750806020015134105b15611056576110567fb1296a8a00000000000000000000000000000000000000000000000000000000611252565b80606001511561106a5761106a6001611e2b565b5f6110ae836110a97f8c625b06d047a4c1ca46cdab06b7e14ce79b486f06c67a1b220fa942669ca49b338760405180602001604052805f815250611e68565b611e9a565b90505f5f6110c2853385876020015161202f565b91509150806108ca5781156110fd578360400151156110e5576110e583856120aa565b6110ef838661220b565b6110f885612296565b6108ca565b6108ca8386612385565b61111082611c69565b5f611119611d5f565b90508060400151801561112f5750806020015134105b1561115d5761115d7fb1296a8a00000000000000000000000000000000000000000000000000000000611252565b806060015115611171576111716001611e2b565b61117b83836123dc565b5f8260405160200161118d9190614d5c565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f6111ef866110a984338388611e68565b90505f5f611203883385896020015161202f565b915091508061124857811561123e57856040015115611226576112268387612481565b611230838961220b565b61123988612296565b611248565b6112488389612385565b5050505050505050565b805f5260045ffd5b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600816112856108da565b90505f8173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f59190614d45565b5f878152600985016020526040902054909150801561132257818110828218028118945050505050610649565b5f61132c87610d89565b905082811083821802811898975050505050505050565b61134b6108da565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611393573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b79190614d45565b8111156109dc576109dc7fc3983b9100000000000000000000000000000000000000000000000000000000611252565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6078190557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790556040517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b5f6114ae6108da565b73ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151a9190614d45565b9050808210156104c1576104c17f3447ac8e00000000000000000000000000000000000000000000000000000000611252565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff16156115a45760070154919050565b6115ac6108da565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115f4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d589190614d45565b5f6116228261263a565b905073ffffffffffffffffffffffffffffffffffffffff8116611668576116687f5fbd571700000000000000000000000000000000000000000000000000000000611252565b5f61167161179c565b67ffffffffffffffff1690505f6116cd846106447f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b905034811115611700576117007f34a7a93d00000000000000000000000000000000000000000000000000000000611252565b61170a8382612645565b5f61171586836126a2565b90505f6117228284614de3565b9050801561173657611734878261276a565b505b5f6117418434614de3565b905080156117925761179261178a7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b308a846128e0565b6112488786612932565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f81900361185c576117f06108da565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611838573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105199190614df6565b90565b61186881612a60565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c01805461190b90614b99565b80601f016020809104026020016040519081016040528092919081815260200182805461193790614b99565b80156119825780601f1061195957610100808354040283529160200191611982565b820191905f5260205f20905b81548152906001019060200180831161196557829003601f168201915b5050505050905090565b808210156104c1576104c17fccc9aa2e00000000000000000000000000000000000000000000000000000000611252565b5f5f6119c76108da565b90505f8173ffffffffffffffffffffffffffffffffffffffff16631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a13573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a379190614d45565b905080841015611ab6578173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a8a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aae9190614d45565b949350505050565b611aae848373ffffffffffffffffffffffffffffffffffffffff16639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b03573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b279190614e11565b61ffff16612b56565b73ffffffffffffffffffffffffffffffffffffffff8116611b7457611b747f0e88bf4b00000000000000000000000000000000000000000000000000000000611252565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa158015611c18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c3c9190614e46565b6109dc576109dc7f0e88bf4b00000000000000000000000000000000000000000000000000000000611252565b73ffffffffffffffffffffffffffffffffffffffff8116611cad57611cad7f5fbd571700000000000000000000000000000000000000000000000000000000611252565b5f611cd67fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611d31575080611d2e7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104c1576104c17f7efcdb4900000000000000000000000000000000000000000000000000000000611252565b604080516080810182525f808252602082018190529181018290526060810182905290611dcd7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611dd982610d89565b90505f611de461154d565b90505f611def612ba9565b838652905083821115611e03575050505090565b8015611e19575050600160608401525090919050565b50506020830152506001604082015290565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c008054829082905f90611e5f908490614de3565b90915550505050565b606084848484604051602001611e819493929190614e5f565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660208201524360348201525f908190605401604051602081830303815290604052805190602001209050611f7981611f4d8387611f0086612bd2565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040812080549294507f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00929091908290611fda90614b99565b9050111561200b5761200b7ff82e65c300000000000000000000000000000000000000000000000000000000611252565b806120168682614c2e565b5034156120265761202684612c18565b50505092915050565b5f5f5f6120706040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250612c76565b905061207c8188612e0e565b1561208e5760015f92509250506120a1565b61209b8188888888613029565b92509250505b94509492505050565b5f5f5f6120b6856131b6565b80546120c190614b99565b80601f01602080910402602001604051908101604052809291908181526020018280546120ed90614b99565b80156121385780601f1061210f57610100808354040283529160200191612138565b820191905f5260205f20905b81548152906001019060200180831161211b57829003601f168201915b50505050508060200190518101906121509190614f36565b50919450925090507fffffffff0000000000000000000000000000000000000000000000000000000083167f8c625b0600000000000000000000000000000000000000000000000000000000146121ca576121ca7fda6153bd00000000000000000000000000000000000000000000000000000000611252565b5f6121d883865f01516126a2565b90505f8186602001516121eb9190614de3565b90506122028785858960200151858b5f0151613209565b50505050505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0160205260409020548015612291576122488382613240565b6122916122897fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b3084846128e0565b505050565b5f61229f6132a8565b9050612323816122f36105147f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b61232e8260016132cf565b61233f8161233a61179c565b612932565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b61238e826132e8565b612398828261220b565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b602081015173ffffffffffffffffffffffffffffffffffffffff16156104c1578173ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614806124535750602081015173ffffffffffffffffffffffffffffffffffffffff1633145b156104c1576104c17f5fbd571700000000000000000000000000000000000000000000000000000000611252565b5f5f5f5f61248e866131b6565b805461249990614b99565b80601f01602080910402602001604051908101604052809291908181526020018280546124c590614b99565b80156125105780601f106124e757610100808354040283529160200191612510565b820191905f5260205f20905b8154815290600101906020018083116124f357829003601f168201915b50505050508060200190518101906125289190614f36565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f768400000000000000000000000000000000000000000000000000000000146125a4576125a47fda6153bd00000000000000000000000000000000000000000000000000000000611252565b5f818060200190518101906125b99190614fba565b90505f5f6125ca86895f01516126a2565b90505f6125de87855f01518b5f0151613340565b90505f6125f888866020015187604001518d5f01516134ad565b90508082848c6020015161260c9190614de3565b6126169190614de3565b6126209190614de3565b93505050506112488886868a60200151858c5f0151613209565b5f610649818361362f565b5f61264e61363a565b90505f61267d825f8560405160200161266991815260200190565b60405160208183030381529060405261370d565b905061268a82858361377e565b61269c82612696610c9e565b8361377e565b50505050565b5f6126ac826119bd565b90506106496126ef7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b846126f86108da565b73ffffffffffffffffffffffffffffffffffffffff16634ccb20c06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612740573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127649190614b7e565b846128e0565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600816127cb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b90507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff82160161282d578382600a015f82825461281d9190615062565b9091555084935061064992505050565b5f61284e73ffffffffffffffffffffffffffffffffffffffff8316306137fd565b905061285c82873088613830565b5f61287d73ffffffffffffffffffffffffffffffffffffffff8416306137fd565b90505f61288a8383614de3565b90508681146128bc576128bc7fb1296a8a00000000000000000000000000000000000000000000000000000000611252565b8085600a015f8282546128cf9190615062565b909155509098975050505050505050565b801561269c5773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146129285761292384848484613830565b61269c565b61269c82826138c4565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff16801580159061297857505f5b156129b2576040517ff7d2131a0000000000000000000000000000000000000000000000000000000081526004810185905260240161047a565b5f428267ffffffffffffffff1611156129d6576129cf8483615075565b90506129e3565b6129e08442615075565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b5f612a696108da565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ab1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ad59190614df6565b67ffffffffffffffff1690508167ffffffffffffffff165f03612b1b57612b1b7f82323d2e00000000000000000000000000000000000000000000000000000000611252565b808267ffffffffffffffff1611156104c1576104c17f82323d2e00000000000000000000000000000000000000000000000000000000611252565b5f612710821115612b8b57612b8b7f197f196200000000000000000000000000000000000000000000000000000000836138e4565b612710612b988385615095565b612ba291906150ac565b9392505050565b5f7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0060208190526040822080549083612c0d836150e4565b909155509392505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092349291611e5f908490615062565b60605f612c816138f0565b80519091505f8167ffffffffffffffff811115612ca057612ca06148c6565b604051908082528060200260200182016040528015612d0357816020015b612cf06040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612cbe5790505b50855160208701209091505f90815b84811015612e02575f5f5f5f612d408a8681518110612d3357612d3361511b565b602002602001015161391b565b93509350935093505f5b8251811015612df25786838281518110612d6657612d6661511b565b60200260200101518051906020012003612dea576040518060a001604052808c8881518110612d9757612d9761511b565b60200260200101518152602001868152602001851515815260200184815260200183815250898981518110612dce57612dce61511b565b602002602001018190525087612de3906150e4565b9750612df2565b600101612d4a565b5050505050806001019050612d12565b50508152949350505050565b5f5f612e1983613a07565b90505f5b845181101561301f57848181518110612e3857612e3861511b565b602002602001015160400151613017575f5b858281518110612e5c57612e5c61511b565b60200260200101516080015151811015613015575f868381518110612e8357612e8361511b565b6020026020010151608001518281518110612ea057612ea061511b565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ef3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f179190614e46565b158015612ffa57508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250604051602001612f859190615148565b604051602081830303815290604052612f9d9061515e565b6040518463ffffffff1660e01b8152600401612fbb939291906151a0565b602060405180830381865afa158015612fd6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ffa9190614e46565b1561300c576001945050505050610649565b50600101612e4a565b505b600101612e1d565b505f949350505050565b5f8080805b88518110156131a7578881815181106130495761304961511b565b60200260200101516040015161319f575f5b89828151811061306d5761306d61511b565b6020026020010151608001515181101561319d575f8a83815181106130945761309461511b565b60200260200101516080015182815181106130b1576130b161511b565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613104573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131289190614e46565b1561319457836131655761315c8a8a8a848f888151811061314b5761314b61511b565b60200260200101515f01518c613c7b565b6001935061318f565b61318f8a8a8a848f888151811061317e5761317e61511b565b60200260200101515f01515f613c7b565b600194505b5060010161305b565b505b60010161302e565b505f9250509550959350505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604081207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0090612ba2565b811561321b57613219858361276a565b505b6132258684613240565b61322e866132e8565b6132388482612645565b505050505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e009284929161329e908490614de3565b9091555050505050565b5f7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00612bcc565b6104c1828260405180602001604052805f815250613d6b565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906104c1905f61476c565b5f73ffffffffffffffffffffffffffffffffffffffff831661336357505f612ba2565b5f6133a27fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301529190911690635cb4f54890602401608060405180830381865afa15801561340e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613432919061520b565b905080604001515f03613448575f915050612ba2565b613456838260400151612b56565b91506134a56134997fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b868360200151856128e0565b509392505050565b5f82515f1461355d575f6134c084613e33565b604081015190915073ffffffffffffffffffffffffffffffffffffffff1615806134ec57506020810151155b156134fa575f915050611aae565b613508838260200151612b56565b915061355761354b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b878360400151856128e0565b50611aae565b73ffffffffffffffffffffffffffffffffffffffff841615611aae578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036135b357505f611aae565b6135e4826135df7faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b612b56565b9050611aae6136277fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b8686846128e0565b5f612ba28383613edb565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa1580156136e9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105199190614b7e565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde906137639086908690600401615285565b602060405180830381865afa158015611a8a573d5f5f3e3d5ffd5b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b1580156137eb575f5ffd5b505af1158015612202573d5f5f3e3d5ffd5b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16031561269c5773ffffffffffffffffffffffffffffffffffffffff831630146138a35761292373ffffffffffffffffffffffffffffffffffffffff8516848484614016565b61269c73ffffffffffffffffffffffffffffffffffffffff85168383614078565b6104c173ffffffffffffffffffffffffffffffffffffffff8316826140cb565b815f528060045260245ffd5b60606105197f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd016140e4565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604081208054606092918391829190819061395d90614b99565b80601f016020809104026020016040519081016040528092919081815260200182805461398990614b99565b80156139d45780601f106139ab576101008083540402835291602001916139d4565b820191905f5260205f20905b8154815290600101906020018083116139b757829003601f168201915b5050505060018301549196505060ff1693506139f2600282016140f0565b92506139fd816141c7565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015613a9e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613ae391908101906152d2565b905080515f03613c54576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015613b5a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b7e9190614b7e565b905073ffffffffffffffffffffffffffffffffffffffff811615613c52576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015613c0a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613c4f91908101906152d2565b91505b505b613c5d816141d6565b92506001835101835283604051526020604051016040525050919050565b613c868684836141e4565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005f8681526001828101602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117815560030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055905080546040805173ffffffffffffffffffffffffffffffffffffffff89811660208301526122029316918a918991889188910160405160208183030381529060405261429d565b613d7583836143bd565b73ffffffffffffffffffffffffffffffffffffffff83163b15612291577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b613dca5f868380600101945086614572565b613e00576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613db857817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0054146108ca575f5ffd5b613e6b6040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b5f818311613fe457505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c010000000000000000000000000000000000000000000000000000000083169003613fe257815f03613fdc5780548310613f9b576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115613f9c575b50610649565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f51141661406a57803d873b15171061406a57637939f4245f526004601cfd5b505f60605260405250505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f5114166140c157803d853b1517106140c1576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104c15763b12d13eb5f526004601cfd5b60605f612ba2836146e4565b6060815f01805480602002602001604051908101604052809291908181526020015f905b828210156141bc578382905f5260205f2001805461413190614b99565b80601f016020809104026020016040519081016040528092919081815260200182805461415d90614b99565b80156141a85780601f1061417f576101008083540402835291602001916141a8565b820191905f5260205f20905b81548152906001019060200180831161418b57829003601f168201915b505050505081526020019060010190614114565b505050509050919050565b60605f612ba2836004016140e4565b606061064961185c8361473d565b34811115614215576142157ff4e95a4100000000000000000000000000000000000000000000000000000000611252565b73ffffffffffffffffffffffffffffffffffffffff8316614259576142597f99ef038800000000000000000000000000000000000000000000000000000000611252565b73ffffffffffffffffffffffffffffffffffffffff8216612291576122917f4bb7c20500000000000000000000000000000000000000000000000000000000611252565b8115614330576040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a9084906142fd908990899089908890600401615386565b5f604051808303818588803b158015614314575f5ffd5b505af1158015614326573d5f5f3e3d5ffd5b5050505050613238565b6040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a90614388908890889088908790600401615386565b5f604051808303815f87803b15801561439f575f5ffd5b505af11580156143b1573d5f5f3e3d5ffd5b50505050505050505050565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f829003614419576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146145105780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa46001016144da565b50815f0361454a576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906145cc9033908990889088906004016153c0565b6020604051808303815f875af1925050508015614624575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261462191810190615410565b60015b614699573d808015614651576040519150601f19603f3d011682016040523d82523d5f602084013e614656565b606091505b5080515f03614691576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611aae565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561473157602002820191905f5260205f20905b81548152602001906001019080831161471d575b50505050509050919050565b604051815160051b8101602001818084035b80820151825281602001915082820361474f575060405250919050565b50805461477890614b99565b5f825580601f10614787575050565b601f0160209004905f5260205f20908101906109dc91905b808211156147b2575f815560010161479f565b5090565b5f5f83601f8401126147c6575f5ffd5b50813567ffffffffffffffff8111156147dd575f5ffd5b6020830191508360208285010111156147f4575f5ffd5b9250929050565b5f5f6020838503121561480c575f5ffd5b823567ffffffffffffffff811115614822575f5ffd5b61482e858286016147b6565b90969095509350505050565b5f6020828403121561484a575f5ffd5b5035919050565b5f5f5f60408486031215614863575f5ffd5b833560028110614871575f5ffd5b9250602084013567ffffffffffffffff81111561488c575f5ffd5b614898868287016147b6565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff811681146109dc575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715614916576149166148c6565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614963576149636148c6565b604052919050565b5f67ffffffffffffffff821115614984576149846148c6565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f606082840312156149c0575f5ffd5b6149c86148f3565b905081356149d5816148a5565b815260208201356149e5816148a5565b6020820152604082013567ffffffffffffffff811115614a03575f5ffd5b8201601f81018413614a13575f5ffd5b8035614a26614a218261496b565b61491c565b818152856020838501011115614a3a575f5ffd5b816020840160208301375f6020838301015280604085015250505092915050565b5f5f60408385031215614a6c575f5ffd5b8235614a77816148a5565b9150602083013567ffffffffffffffff811115614a92575f5ffd5b614a9e858286016149b0565b9150509250929050565b67ffffffffffffffff811681146109dc575f5ffd5b5f60208284031215614acd575f5ffd5b8135612ba281614aa8565b5f60208284031215614ae8575f5ffd5b8135612ba2816148a5565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f612ba26020830184614af3565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60208284031215614b8e575f5ffd5b8151612ba2816148a5565b600181811c90821680614bad57607f821691505b602082108103614be4577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f82111561229157805f5260205f20601f840160051c81016020851015614c0f5750805b601f840160051c820191505b818110156108ca575f8155600101614c1b565b815167ffffffffffffffff811115614c4857614c486148c6565b614c5c81614c568454614b99565b84614bea565b6020601f821160018114614cad575f8315614c775750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556108ca565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614cfa5787850151825560209485019460019092019101614cda565b5084821015614d3657868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614d55575f5ffd5b5051919050565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f6040830151606080840152611aae6080840182614af3565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561064957610649614db6565b5f60208284031215614e06575f5ffd5b8151612ba281614aa8565b5f60208284031215614e21575f5ffd5b815161ffff81168114612ba2575f5ffd5b80518015158114614e41575f5ffd5b919050565b5f60208284031215614e56575f5ffd5b612ba282614e32565b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f610fed6080830184614af3565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614e41575f5ffd5b5f614f0d614a218461496b565b9050828152838383011115614f20575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f60808587031215614f49575f5ffd5b614f5285614ed1565b93506020850151614f62816148a5565b6040860151909350614f73816148a5565b606086015190925067ffffffffffffffff811115614f8f575f5ffd5b8501601f81018713614f9f575f5ffd5b614fae87825160208401614f00565b91505092959194509250565b5f60208284031215614fca575f5ffd5b815167ffffffffffffffff811115614fe0575f5ffd5b820160608185031215614ff1575f5ffd5b614ff96148f3565b8151615004816148a5565b81526020820151615014816148a5565b6020820152604082015167ffffffffffffffff811115615032575f5ffd5b80830192505084601f830112615046575f5ffd5b61505585835160208501614f00565b6040820152949350505050565b8082018082111561064957610649614db6565b67ffffffffffffffff818116838216019081111561064957610649614db6565b808202811582820484141761064957610649614db6565b5f826150df577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361511457615114614db6565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b80516020808301519190811015614be4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b818110156151f757835173ffffffffffffffffffffffffffffffffffffffff168352602093840193909201916001016151c3565b505060409390930193909352509392505050565b5f608082840312801561521c575f5ffd5b506040516080810167ffffffffffffffff81118282101715615240576152406148c6565b604052825161524e816148a5565b8152602083015161525e816148a5565b60208201526040838101519082015261527960608401614e32565b60608201529392505050565b5f600484106152bb577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b83825260406020830152611aae6040830184614af3565b5f602082840312156152e2575f5ffd5b815167ffffffffffffffff8111156152f8575f5ffd5b8201601f81018413615308575f5ffd5b805167ffffffffffffffff811115615322576153226148c6565b8060051b6153326020820161491c565b9182526020818401810192908101908784111561534d575f5ffd5b6020850194505b8385101561537b5784519250615369836148a5565b82825260209485019490910190615354565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152826040820152608060608201525f610fed6080830184614af3565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f610fed6080830184614af3565b5f60208284031215615420575f5ffd5b612ba282614ed156";
1421
+ "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6153dc806100ca5f395ff3fe60806040526004361061016d575f3560e01c806379dda585116100c657806393b13cb71161007c578063a5a4103111610057578063a5a41031146103c9578063df9a9fe6146103dd578063e847abdd146103fc575f5ffd5b806393b13cb71461037557806395d600c81461039657806397fb7c1e146103aa575f5ffd5b80638120f0ba116100ac5780638120f0ba1461031657806383f3f0dc146103435780638c625b0614610362575f5ffd5b806379dda585146102ef5780637c9669ac14610303575f5ffd5b80635803909f11610126578063686f768411610101578063686f7684146102a957806369d5f38a146102bc578063706b8e09146102db575f5ffd5b80635803909f146102325780635becd24a14610251578063657e45e814610270575f5ffd5b806317c957091161015657806317c95709146101b9578063280a47c71461020d5780633e9491a214610220575f5ffd5b80630ef1be5f146101715780631278076a14610192575b5f5ffd5b34801561017c575f5ffd5b5061019061018b3660046147ae565b610410565b005b34801561019d575f5ffd5b506101a66104c5565b6040519081526020015b60405180910390f35b3480156101c4575f5ffd5b506101a66101d33660046147ed565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b61019061021b366004614804565b61051e565b34801561022b575f5ffd5b50476101a6565b34801561023d575f5ffd5b506101a661024c3660046147ed565b6105f4565b34801561025c575f5ffd5b5061019061026b3660046147ed565b61064f565b34801561027b575f5ffd5b50610284610736565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b0565b6101906102b7366004614a0e565b610775565b3480156102c7575f5ffd5b506101906102d63660046147ed565b6107b9565b3480156102e6575f5ffd5b506101a66108d1565b3480156102fa575f5ffd5b506102846108da565b6101906103113660046147ed565b610919565b348015610321575f5ffd5b5061032a61095c565b60405167ffffffffffffffff90911681526020016101b0565b34801561034e575f5ffd5b5061019061035d366004614a70565b610965565b610190610370366004614a8b565b6109df565b348015610380575f5ffd5b50610389610a12565b6040516101b09190614af2565b3480156103a1575f5ffd5b506101a6610a1c565b3480156103b5575f5ffd5b506101906103c43660046147ed565b610a45565b3480156103d4575f5ffd5b506101a6610b2f565b3480156103e8575f5ffd5b506101906103f7366004614a8b565b610b86565b348015610407575f5ffd5b50610284610c5f565b610418610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610483576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104c182828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610d5e92505050565b5050565b5f6105196105147f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610d89565b905090565b3068929eee149b4bd21268540361053c5763ab143c065f526004601cfd5b3068929eee149b4bd21268555f83600181111561055b5761055b614b04565b0361057e575f61056d82840184614a8b565b905061057881611000565b506105e3565b600183600181111561059257610592614b04565b036105ba575f806105a583850185614a0e565b915091506105b38282611107565b50506105e3565b6105e37f3be0196900000000000000000000000000000000000000000000000000000000611252565b3868929eee149b4bd2126855505050565b5f610649826106447f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b61125a565b92915050565b610657610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106bd576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b5f6106e67fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b905080158015906106f657508082115b15610724576107247fc3983b9100000000000000000000000000000000000000000000000000000000611252565b61072d82611343565b6104c1826113e7565b5f6105197fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd2126854036107935763ab143c065f526004601cfd5b3068929eee149b4bd21268556107a98282611107565b3868929eee149b4bd21268555050565b6107c1610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610827576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610830816114a5565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156108b8575f5ffd5b505af11580156108ca573d5f5f3e3d5ffd5b5050505050565b5f61051961154d565b5f6105197fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd2126854036109375763ab143c065f526004601cfd5b3068929eee149b4bd212685561094d3382611618565b3868929eee149b4bd212685550565b5f61051961179c565b61096d610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109d3576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b6109dc8161185f565b50565b3068929eee149b4bd2126854036109fd5763ab143c065f526004601cfd5b3068929eee149b4bd212685561094d81611000565b60606105196118da565b5f6105197fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610a4d610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ab3576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610b0781610b027f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b61198c565b6109dc817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f610519610b816105147f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b6119bd565b610b8e610c9e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bf4576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610bfd81611b04565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6105197fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610d34573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d589190614b31565b91505090565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104c18282614be1565b5f5f610dc97fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b90505f610dd46108da565b905073ffffffffffffffffffffffffffffffffffffffff8216610e66578073ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5e9190614cf8565b949350505050565b5f610e6f61154d565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018290526024810187905290915073ffffffffffffffffffffffffffffffffffffffff841690635cf4ee9190604401602060405180830381865afa158015610ee2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f069190614cf8565b93505f8273ffffffffffffffffffffffffffffffffffffffff16631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f52573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f769190614cf8565b905080851015610ff7578273ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fc9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fed9190614cf8565b9695505050505050565b50505050919050565b61100981611c3d565b5f611012611d33565b9050806040015180156110285750806020015134105b15611056576110567fb1296a8a00000000000000000000000000000000000000000000000000000000611252565b80606001511561106a5761106a6001611dfe565b5f6110ae836110a97f8c625b06d047a4c1ca46cdab06b7e14ce79b486f06c67a1b220fa942669ca49b338760405180602001604052805f815250611e3b565b611e6d565b90505f5f6110c28533858760200151612002565b91509150806108ca5781156110fd578360400151156110e5576110e5838561207d565b6110ef83866121de565b6110f885612269565b6108ca565b6108ca8386612358565b61111082611c3d565b5f611119611d33565b90508060400151801561112f5750806020015134105b1561115d5761115d7fb1296a8a00000000000000000000000000000000000000000000000000000000611252565b806060015115611171576111716001611dfe565b61117b83836123af565b5f8260405160200161118d9190614d0f565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f6111ef866110a984338388611e3b565b90505f5f6112038833858960200151612002565b915091508061124857811561123e57856040015115611226576112268387612434565b61123083896121de565b61123988612269565b611248565b6112488389612358565b5050505050505050565b805f5260045ffd5b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600816112856108da565b90505f8173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112d1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112f59190614cf8565b5f878152600985016020526040902054909150801561132257818110828218028118945050505050610649565b5f61132c87610d89565b905082811083821802811898975050505050505050565b61134b6108da565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611393573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b79190614cf8565b8111156109dc576109dc7fc3983b9100000000000000000000000000000000000000000000000000000000611252565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6078190556040517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b5f6114ae6108da565b73ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114f6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061151a9190614cf8565b9050808210156104c1576104c17f3447ac8e00000000000000000000000000000000000000000000000000000000611252565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff16156115a45760070154919050565b6115ac6108da565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115f4573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d589190614cf8565b5f611622826125ed565b905073ffffffffffffffffffffffffffffffffffffffff8116611668576116687f5fbd571700000000000000000000000000000000000000000000000000000000611252565b5f61167161179c565b67ffffffffffffffff1690505f6116cd846106447f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b905034811115611700576117007f34a7a93d00000000000000000000000000000000000000000000000000000000611252565b61170a83826125f8565b5f6117158683612655565b90505f6117228284614d96565b9050801561173657611734878261271d565b505b5f6117418434614d96565b905080156117925761179261178a7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b308a84612893565b61124887866128e5565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f81900361185c576117f06108da565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611838573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105199190614da9565b90565b61186881612a13565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c01805461190b90614b4c565b80601f016020809104026020016040519081016040528092919081815260200182805461193790614b4c565b80156119825780601f1061195957610100808354040283529160200191611982565b820191905f5260205f20905b81548152906001019060200180831161196557829003601f168201915b5050505050905090565b808210156104c1576104c17fccc9aa2e00000000000000000000000000000000000000000000000000000000611252565b5f5f6119c76108da565b90505f8173ffffffffffffffffffffffffffffffffffffffff16631b159e2e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a13573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a379190614cf8565b905080841015611a8a578173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e3a573d5f5f3e3d5ffd5b610e5e848373ffffffffffffffffffffffffffffffffffffffff16639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad7573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611afb9190614dc4565b61ffff16612b09565b73ffffffffffffffffffffffffffffffffffffffff8116611b4857611b487f0e88bf4b00000000000000000000000000000000000000000000000000000000611252565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa158015611bec573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c109190614df9565b6109dc576109dc7f0e88bf4b00000000000000000000000000000000000000000000000000000000611252565b73ffffffffffffffffffffffffffffffffffffffff8116611c8157611c817f5fbd571700000000000000000000000000000000000000000000000000000000611252565b5f611caa7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611d05575080611d027f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104c1576104c17f7efcdb4900000000000000000000000000000000000000000000000000000000611252565b604080516080810182525f808252602082018190529181018290526060810182905290611da17f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611dad82610d89565b90505f611db861154d565b828552905082811115611dcb5750505090565b5f611dd4612b5c565b90508015611dec575050600160608401525090919050565b50506001604084015260208301525090565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c008054829082905f90611e32908490614d96565b90915550505050565b606084848484604051602001611e549493929190614e12565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660208201524360348201525f908190605401604051602081830303815290604052805190602001209050611f4c81611f208387611ed386612b85565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040812080549294507f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00929091908290611fad90614b4c565b90501115611fde57611fde7ff82e65c300000000000000000000000000000000000000000000000000000000611252565b80611fe98682614be1565b503415611ff957611ff984612bcb565b50505092915050565b5f5f5f6120436040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250612c29565b905061204f8188612dc1565b156120615760015f9250925050612074565b61206e8188888888612fdc565b92509250505b94509492505050565b5f5f5f61208985613169565b805461209490614b4c565b80601f01602080910402602001604051908101604052809291908181526020018280546120c090614b4c565b801561210b5780601f106120e25761010080835404028352916020019161210b565b820191905f5260205f20905b8154815290600101906020018083116120ee57829003601f168201915b50505050508060200190518101906121239190614ee9565b50919450925090507fffffffff0000000000000000000000000000000000000000000000000000000083167f8c625b06000000000000000000000000000000000000000000000000000000001461219d5761219d7fda6153bd00000000000000000000000000000000000000000000000000000000611252565b5f6121ab83865f0151612655565b90505f8186602001516121be9190614d96565b90506121d58785858960200151858b5f01516131bc565b50505050505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01602052604090205480156122645761221b83826131f3565b61226461225c7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b308484612893565b505050565b5f61227261325b565b90506122f6816122c66105147f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b612301826001613282565b6123128161230d61179c565b6128e5565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b6123618261329b565b61236b82826121de565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b8173ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614806124065750602081015173ffffffffffffffffffffffffffffffffffffffff1633145b156104c1576104c17f5fbd571700000000000000000000000000000000000000000000000000000000611252565b5f5f5f5f61244186613169565b805461244c90614b4c565b80601f016020809104026020016040519081016040528092919081815260200182805461247890614b4c565b80156124c35780601f1061249a576101008083540402835291602001916124c3565b820191905f5260205f20905b8154815290600101906020018083116124a657829003601f168201915b50505050508060200190518101906124db9190614ee9565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f76840000000000000000000000000000000000000000000000000000000014612557576125577fda6153bd00000000000000000000000000000000000000000000000000000000611252565b5f8180602001905181019061256c9190614f6d565b90505f5f61257d86895f0151612655565b90505f61259187855f01518b5f01516132f3565b90505f6125ab88866020015187604001518d5f0151613460565b90508082848c602001516125bf9190614d96565b6125c99190614d96565b6125d39190614d96565b93505050506112488886868a60200151858c5f01516131bc565b5f61064981836135e2565b5f6126016135ed565b90505f612630825f8560405160200161261c91815260200190565b6040516020818303038152906040526136c0565b905061263d828583613731565b61264f82612649610c9e565b83613731565b50505050565b5f61265f826119bd565b90506106496126a27fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b846126ab6108da565b73ffffffffffffffffffffffffffffffffffffffff16634ccb20c06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127179190614b31565b84612893565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6008161277e7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b90507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8216016127e0578382600a015f8282546127d09190615015565b9091555084935061064992505050565b5f61280173ffffffffffffffffffffffffffffffffffffffff8316306137b0565b905061280f828730886137e3565b5f61283073ffffffffffffffffffffffffffffffffffffffff8416306137b0565b90505f61283d8383614d96565b905086811461286f5761286f7fb1296a8a00000000000000000000000000000000000000000000000000000000611252565b8085600a015f8282546128829190615015565b909155509098975050505050505050565b801561264f5773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146128db576128d6848484846137e3565b61264f565b61264f8282613877565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff16801580159061292b57505f5b15612965576040517ff7d2131a0000000000000000000000000000000000000000000000000000000081526004810185905260240161047a565b5f428267ffffffffffffffff161115612989576129828483615028565b9050612996565b6129938442615028565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b5f612a1c6108da565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a64573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a889190614da9565b67ffffffffffffffff1690508167ffffffffffffffff165f03612ace57612ace7f82323d2e00000000000000000000000000000000000000000000000000000000611252565b808267ffffffffffffffff1611156104c1576104c17f82323d2e00000000000000000000000000000000000000000000000000000000611252565b5f612710821115612b3e57612b3e7f197f19620000000000000000000000000000000000000000000000000000000083613897565b612710612b4b8385615048565b612b55919061505f565b9392505050565b5f7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0060208190526040822080549083612bc083615097565b909155509392505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092349291611e32908490615015565b60605f612c346138a3565b80519091505f8167ffffffffffffffff811115612c5357612c53614879565b604051908082528060200260200182016040528015612cb657816020015b612ca36040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612c715790505b50855160208701209091505f90815b84811015612db5575f5f5f5f612cf38a8681518110612ce657612ce66150ce565b60200260200101516138ce565b93509350935093505f5b8251811015612da55786838281518110612d1957612d196150ce565b60200260200101518051906020012003612d9d576040518060a001604052808c8881518110612d4a57612d4a6150ce565b60200260200101518152602001868152602001851515815260200184815260200183815250898981518110612d8157612d816150ce565b602002602001018190525087612d9690615097565b9750612da5565b600101612cfd565b5050505050806001019050612cc5565b50508152949350505050565b5f5f612dcc836139ba565b90505f5b8451811015612fd257848181518110612deb57612deb6150ce565b602002602001015160400151612fca575f5b858281518110612e0f57612e0f6150ce565b60200260200101516080015151811015612fc8575f868381518110612e3657612e366150ce565b6020026020010151608001518281518110612e5357612e536150ce565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612eca9190614df9565b158015612fad57508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250604051602001612f3891906150fb565b604051602081830303815290604052612f5090615111565b6040518463ffffffff1660e01b8152600401612f6e93929190615153565b602060405180830381865afa158015612f89573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fad9190614df9565b15612fbf576001945050505050610649565b50600101612dfd565b505b600101612dd0565b505f949350505050565b5f8080805b885181101561315a57888181518110612ffc57612ffc6150ce565b602002602001015160400151613152575f5b898281518110613020576130206150ce565b60200260200101516080015151811015613150575f8a8381518110613047576130476150ce565b6020026020010151608001518281518110613064576130646150ce565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156130b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130db9190614df9565b1561314757836131185761310f8a8a8a848f88815181106130fe576130fe6150ce565b60200260200101515f01518c613c2e565b60019350613142565b6131428a8a8a848f8881518110613131576131316150ce565b60200260200101515f01515f613c2e565b600194505b5060010161300e565b505b600101612fe1565b505f9250509550959350505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604081207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0090612b55565b81156131ce576131cc858361271d565b505b6131d886846131f3565b6131e18661329b565b6131eb84826125f8565b505050505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291613251908490614d96565b9091555050505050565b5f7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00612b7f565b6104c1828260405180602001604052805f815250613d1e565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906104c1905f61471f565b5f73ffffffffffffffffffffffffffffffffffffffff831661331657505f612b55565b5f6133557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301529190911690635cb4f54890602401608060405180830381865afa1580156133c1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133e591906151be565b905080604001515f036133fb575f915050612b55565b613409838260400151612b09565b915061345861344c7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b86836020015185612893565b509392505050565b5f82515f14613510575f61347384613de6565b604081015190915073ffffffffffffffffffffffffffffffffffffffff16158061349f57506020810151155b156134ad575f915050610e5e565b6134bb838260200151612b09565b915061350a6134fe7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b87836040015185612893565b50610e5e565b73ffffffffffffffffffffffffffffffffffffffff841615610e5e578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361356657505f610e5e565b613597826135927faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b612b09565b9050610e5e6135da7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b868684612893565b5f612b558383613e8e565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa15801561369c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105199190614b31565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde906137169086908690600401615238565b602060405180830381865afa158015610e3a573d5f5f3e3d5ffd5b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b15801561379e575f5ffd5b505af11580156121d5573d5f5f3e3d5ffd5b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16031561264f5773ffffffffffffffffffffffffffffffffffffffff83163014613856576128d673ffffffffffffffffffffffffffffffffffffffff8516848484613fc9565b61264f73ffffffffffffffffffffffffffffffffffffffff8516838361402b565b6104c173ffffffffffffffffffffffffffffffffffffffff83168261407e565b815f528060045260245ffd5b60606105197f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01614097565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604081208054606092918391829190819061391090614b4c565b80601f016020809104026020016040519081016040528092919081815260200182805461393c90614b4c565b80156139875780601f1061395e57610100808354040283529160200191613987565b820191905f5260205f20905b81548152906001019060200180831161396a57829003601f168201915b5050505060018301549196505060ff1693506139a5600282016140a3565b92506139b08161417a565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015613a51573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613a969190810190615285565b905080515f03613c07576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015613b0d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b319190614b31565b905073ffffffffffffffffffffffffffffffffffffffff811615613c05576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015613bbd573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613c029190810190615285565b91505b505b613c1081614189565b92506001835101835283604051526020604051016040525050919050565b613c39868483614197565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005f8681526001828101602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117815560030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055905080546040805173ffffffffffffffffffffffffffffffffffffffff89811660208301526121d59316918a9189918891889101604051602081830303815290604052614250565b613d288383614370565b73ffffffffffffffffffffffffffffffffffffffff83163b15612264577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b613d7d5f868380600101945086614525565b613db3576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613d6b57817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0054146108ca575f5ffd5b613e1e6040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b5f818311613f9757505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c010000000000000000000000000000000000000000000000000000000083169003613f9557815f03613f8f5780548310613f4e576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115613f4f575b50610649565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f51141661401d57803d873b15171061401d57637939f4245f526004601cfd5b505f60605260405250505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f51141661407457803d853b151710614074576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104c15763b12d13eb5f526004601cfd5b60605f612b5583614697565b6060815f01805480602002602001604051908101604052809291908181526020015f905b8282101561416f578382905f5260205f200180546140e490614b4c565b80601f016020809104026020016040519081016040528092919081815260200182805461411090614b4c565b801561415b5780601f106141325761010080835404028352916020019161415b565b820191905f5260205f20905b81548152906001019060200180831161413e57829003601f168201915b5050505050815260200190600101906140c7565b505050509050919050565b60605f612b5583600401614097565b606061064961185c836146f0565b348111156141c8576141c87ff4e95a4100000000000000000000000000000000000000000000000000000000611252565b73ffffffffffffffffffffffffffffffffffffffff831661420c5761420c7f99ef038800000000000000000000000000000000000000000000000000000000611252565b73ffffffffffffffffffffffffffffffffffffffff8216612264576122647f4bb7c20500000000000000000000000000000000000000000000000000000000611252565b81156142e3576040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a9084906142b0908990899089908890600401615339565b5f604051808303818588803b1580156142c7575f5ffd5b505af11580156142d9573d5f5f3e3d5ffd5b50505050506131eb565b6040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a9061433b908890889088908790600401615339565b5f604051808303815f87803b158015614352575f5ffd5b505af1158015614364573d5f5f3e3d5ffd5b50505050505050505050565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f8290036143cc576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146144c35780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa460010161448d565b50815f036144fd576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061457f903390899088908890600401615373565b6020604051808303815f875af19250505080156145d7575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526145d4918101906153c3565b60015b61464c573d808015614604576040519150601f19603f3d011682016040523d82523d5f602084013e614609565b606091505b5080515f03614644576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610e5e565b6060815f018054806020026020016040519081016040528092919081815260200182805480156146e457602002820191905f5260205f20905b8154815260200190600101908083116146d0575b50505050509050919050565b604051815160051b8101602001818084035b808201518252816020019150828203614702575060405250919050565b50805461472b90614b4c565b5f825580601f1061473a575050565b601f0160209004905f5260205f20908101906109dc91905b80821115614765575f8155600101614752565b5090565b5f5f83601f840112614779575f5ffd5b50813567ffffffffffffffff811115614790575f5ffd5b6020830191508360208285010111156147a7575f5ffd5b9250929050565b5f5f602083850312156147bf575f5ffd5b823567ffffffffffffffff8111156147d5575f5ffd5b6147e185828601614769565b90969095509350505050565b5f602082840312156147fd575f5ffd5b5035919050565b5f5f5f60408486031215614816575f5ffd5b833560028110614824575f5ffd5b9250602084013567ffffffffffffffff81111561483f575f5ffd5b61484b86828701614769565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff811681146109dc575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156148c9576148c9614879565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561491657614916614879565b604052919050565b5f67ffffffffffffffff82111561493757614937614879565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f60608284031215614973575f5ffd5b61497b6148a6565b9050813561498881614858565b8152602082013561499881614858565b6020820152604082013567ffffffffffffffff8111156149b6575f5ffd5b8201601f810184136149c6575f5ffd5b80356149d96149d48261491e565b6148cf565b8181528560208385010111156149ed575f5ffd5b816020840160208301375f6020838301015280604085015250505092915050565b5f5f60408385031215614a1f575f5ffd5b8235614a2a81614858565b9150602083013567ffffffffffffffff811115614a45575f5ffd5b614a5185828601614963565b9150509250929050565b67ffffffffffffffff811681146109dc575f5ffd5b5f60208284031215614a80575f5ffd5b8135612b5581614a5b565b5f60208284031215614a9b575f5ffd5b8135612b5581614858565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f612b556020830184614aa6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60208284031215614b41575f5ffd5b8151612b5581614858565b600181811c90821680614b6057607f821691505b602082108103614b97577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f82111561226457805f5260205f20601f840160051c81016020851015614bc25750805b601f840160051c820191505b818110156108ca575f8155600101614bce565b815167ffffffffffffffff811115614bfb57614bfb614879565b614c0f81614c098454614b4c565b84614b9d565b6020601f821160018114614c60575f8315614c2a5750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556108ca565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614cad5787850151825560209485019460019092019101614c8d565b5084821015614ce957868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614d08575f5ffd5b5051919050565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f6040830151606080840152610e5e6080840182614aa6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8181038181111561064957610649614d69565b5f60208284031215614db9575f5ffd5b8151612b5581614a5b565b5f60208284031215614dd4575f5ffd5b815161ffff81168114612b55575f5ffd5b80518015158114614df4575f5ffd5b919050565b5f60208284031215614e09575f5ffd5b612b5582614de5565b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f610fed6080830184614aa6565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614df4575f5ffd5b5f614ec06149d48461491e565b9050828152838383011115614ed3575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f60808587031215614efc575f5ffd5b614f0585614e84565b93506020850151614f1581614858565b6040860151909350614f2681614858565b606086015190925067ffffffffffffffff811115614f42575f5ffd5b8501601f81018713614f52575f5ffd5b614f6187825160208401614eb3565b91505092959194509250565b5f60208284031215614f7d575f5ffd5b815167ffffffffffffffff811115614f93575f5ffd5b820160608185031215614fa4575f5ffd5b614fac6148a6565b8151614fb781614858565b81526020820151614fc781614858565b6020820152604082015167ffffffffffffffff811115614fe5575f5ffd5b80830192505084601f830112614ff9575f5ffd5b61500885835160208501614eb3565b6040820152949350505050565b8082018082111561064957610649614d69565b67ffffffffffffffff818116838216019081111561064957610649614d69565b808202811582820484141761064957610649614d69565b5f82615092577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036150c7576150c7614d69565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b80516020808301519190811015614b97577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b818110156151aa57835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101615176565b505060409390930193909352509392505050565b5f60808284031280156151cf575f5ffd5b506040516080810167ffffffffffffffff811182821017156151f3576151f3614879565b604052825161520181614858565b8152602083015161521181614858565b60208201526040838101519082015261522c60608401614de5565b60608201529392505050565b5f6004841061526e577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b83825260406020830152610e5e6040830184614aa6565b5f60208284031215615295575f5ffd5b815167ffffffffffffffff8111156152ab575f5ffd5b8201601f810184136152bb575f5ffd5b805167ffffffffffffffff8111156152d5576152d5614879565b8060051b6152e5602082016148cf565b91825260208184018101929081019087841115615300575f5ffd5b6020850194505b8385101561532e578451925061531c83614858565b82825260209485019490910190615307565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152826040820152608060608201525f610fed6080830184614aa6565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f610fed6080830184614aa6565b5f602082840312156153d3575f5ffd5b612b5582614e8456";
1422
1422
 
1423
1423
  type MembershipFacetConstructorParams =
1424
1424
  | [signer?: Signer]
@@ -141,6 +141,11 @@ const _abi = [
141
141
  type: "uint48",
142
142
  internalType: "uint48",
143
143
  },
144
+ {
145
+ name: "client",
146
+ type: "address",
147
+ internalType: "address",
148
+ },
144
149
  ],
145
150
  outputs: [],
146
151
  stateMutability: "nonpayable",
@@ -269,6 +274,29 @@ const _abi = [
269
274
  ],
270
275
  stateMutability: "view",
271
276
  },
277
+ {
278
+ type: "function",
279
+ name: "sendCurrency",
280
+ inputs: [
281
+ {
282
+ name: "recipient",
283
+ type: "address",
284
+ internalType: "address",
285
+ },
286
+ {
287
+ name: "currency",
288
+ type: "address",
289
+ internalType: "address",
290
+ },
291
+ {
292
+ name: "amount",
293
+ type: "uint256",
294
+ internalType: "uint256",
295
+ },
296
+ ],
297
+ outputs: [],
298
+ stateMutability: "nonpayable",
299
+ },
272
300
  {
273
301
  type: "function",
274
302
  name: "supportsInterface",
@@ -435,6 +463,31 @@ const _abi = [
435
463
  ],
436
464
  anonymous: false,
437
465
  },
466
+ {
467
+ type: "event",
468
+ name: "SendCurrency",
469
+ inputs: [
470
+ {
471
+ name: "recipient",
472
+ type: "address",
473
+ indexed: true,
474
+ internalType: "address",
475
+ },
476
+ {
477
+ name: "currency",
478
+ type: "address",
479
+ indexed: true,
480
+ internalType: "address",
481
+ },
482
+ {
483
+ name: "amount",
484
+ type: "uint256",
485
+ indexed: false,
486
+ internalType: "uint256",
487
+ },
488
+ ],
489
+ anonymous: false,
490
+ },
438
491
  {
439
492
  type: "event",
440
493
  name: "Withdrawal",
@@ -459,6 +512,26 @@ const _abi = [
459
512
  name: "AlreadyInitialized",
460
513
  inputs: [],
461
514
  },
515
+ {
516
+ type: "error",
517
+ name: "InvalidAddressInput",
518
+ inputs: [],
519
+ },
520
+ {
521
+ type: "error",
522
+ name: "InvalidAmount",
523
+ inputs: [],
524
+ },
525
+ {
526
+ type: "error",
527
+ name: "InvalidCaller",
528
+ inputs: [],
529
+ },
530
+ {
531
+ type: "error",
532
+ name: "InvalidCurrency",
533
+ inputs: [],
534
+ },
462
535
  {
463
536
  type: "error",
464
537
  name: "InvalidInitialization",
@@ -497,7 +570,7 @@ const _abi = [
497
570
  ] as const;
498
571
 
499
572
  const _bytecode =
500
- "0x6080604052348015600e575f5ffd5b506113028061001c5f395ff3fe60806040526004361061015a575f3560e01c8063715018a6116100bb578063ae5628c611610071578063f04e283e11610057578063f04e283e14610368578063f2fde38b1461037b578063fee81cf41461038e575f5ffd5b8063ae5628c614610328578063e6a3a3e014610349575f5ffd5b80638da5cb5b116100a15780638da5cb5b146102b2578063a1308f27146102e5578063a41c85be14610306575f5ffd5b8063715018a6146102aa5780638a91b0e31461028c575f5ffd5b806336edab1f1161011057806354d1f13d116100f657806354d1f13d14610265578063690d83201461026d5780636d61fe701461028c575f5ffd5b806336edab1f1461020d578063452c04b11461022c575f5ffd5b80632382f046116101405780632382f046146101c557806325692962146101e45780632e7ad41f146101ec575f5ffd5b806301ffc9a7146101665780630a88fcad1461019a575f5ffd5b36610162575b005b5f5ffd5b348015610171575f5ffd5b50610185610180366004610c02565b6103bf565b60405190151581526020015b60405180910390f35b3480156101a5575f5ffd5b506101ae6104a3565b60405165ffffffffffff9091168152602001610191565b3480156101d0575f5ffd5b506101606101df366004610c62565b6104d9565b6101606105bb565b3480156101f7575f5ffd5b50610200610608565b6040516101919190610c8c565b348015610218575f5ffd5b50610160610227366004610d77565b610680565b348015610237575f5ffd5b50610240610791565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610191565b61016061079a565b348015610278575f5ffd5b50610160610287366004610e0f565b6107d3565b348015610297575f5ffd5b506101606102a6366004610e28565b5050565b6101606108af565b3480156102bd575f5ffd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7487392754610240565b3480156102f0575f5ffd5b506102f96108c2565b6040516101919190610e67565b348015610311575f5ffd5b5061031a61096d565b604051908152602001610191565b348015610333575f5ffd5b5061033c610996565b6040516101919190610f98565b348015610354575f5ffd5b5061016061036336600461109f565b6109bd565b610160610376366004610e0f565b610a43565b610160610389366004610e0f565b610a80565b348015610399575f5ffd5b5061031a6103a8366004610e0f565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fae5628c600000000000000000000000000000000000000000000000000000000148061045157507fffffffff0000000000000000000000000000000000000000000000000000000082167f46c0c1b400000000000000000000000000000000000000000000000000000000145b8061049d57507fffffffff0000000000000000000000000000000000000000000000000000000082167fc5c2a9bd00000000000000000000000000000000000000000000000000000000145b92915050565b5f6104d47f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be035465ffffffffffff1690565b905090565b6104e1610aa6565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be028290557f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be0380547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff83169081179091556040805184815260208101929092527f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be00917f98dae91994793f47b29bee1a4ebfd76c60d7b1c071e23c6926cff278ebac379891015b60405180910390a1505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b60605f7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be006001810180546040805160208084028201810190925282815293945083018282801561067557602002820191905f5260205f20905b815481526020019060010190808311610661575b505050505091505090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf60113280546003825580156106d15760018160011c14303b106106c85763f92ee8a95f526004601cfd5b818160ff1b1b91505b506106db88610adb565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be0080610708888a8361119c565b50610717600182018787610ba5565b506002810184905560030180547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff84161790558015610787576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b5050505050505050565b5f6104d4610b40565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b6107db610aa6565b73ffffffffffffffffffffffffffffffffffffffff811661081f5761081f7fd92e233d00000000000000000000000000000000000000000000000000000000610b69565b475f819003610851576108517fbbd8170800000000000000000000000000000000000000000000000000000000610b69565b61085b8282610b71565b8173ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040516108a391815260200190565b60405180910390a25050565b6108b7610aa6565b6108c05f610adb565b565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be0080546060919081906108f4906110ff565b80601f0160208091040260200160405190810160405280929190818152602001828054610920906110ff565b80156106755780601f1061094257610100808354040283529160200191610675565b820191905f5260205f20905b81548152906001019060200180831161094e5750939695505050505050565b5f6104d47f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be025490565b6109ba60405180606001604052806060815260200160608152602001606081525090565b90565b6109c5610aa6565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be00610a117f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be018484610ba5565b507f3afc3680664ba97756a728984fde0b6031be4a50f7b8b71587ba6533e853efe983836040516105ae9291906112b2565b610a4b610aa6565b63389a75e1600c52805f526020600c208054421115610a7157636f5e88185f526004601cfd5b5f9055610a7d81610adb565b50565b610a88610aa6565b8060601b610a9d57637448fbae5f526004601cfd5b610a7d81610adb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146108c0576382b429005f526004601cfd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f6104d47fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275490565b805f5260045ffd5b6102a673ffffffffffffffffffffffffffffffffffffffff8316825f385f3884865af16102a65763b12d13eb5f526004601cfd5b828054828255905f5260205f20908101928215610bde579160200282015b82811115610bde578235825591602001919060010190610bc3565b50610bea929150610bee565b5090565b5b80821115610bea575f8155600101610bef565b5f60208284031215610c12575f5ffd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610c41575f5ffd5b9392505050565b803565ffffffffffff81168114610c5d575f5ffd5b919050565b5f5f60408385031215610c73575f5ffd5b82359150610c8360208401610c48565b90509250929050565b602080825282518282018190525f918401906040840190835b81811015610cc3578351835260209384019390920191600101610ca5565b509095945050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610c5d575f5ffd5b5f5f83601f840112610d01575f5ffd5b50813567ffffffffffffffff811115610d18575f5ffd5b602083019150836020828501011115610d2f575f5ffd5b9250929050565b5f5f83601f840112610d46575f5ffd5b50813567ffffffffffffffff811115610d5d575f5ffd5b6020830191508360208260051b8501011115610d2f575f5ffd5b5f5f5f5f5f5f5f60a0888a031215610d8d575f5ffd5b610d9688610cce565b9650602088013567ffffffffffffffff811115610db1575f5ffd5b610dbd8a828b01610cf1565b909750955050604088013567ffffffffffffffff811115610ddc575f5ffd5b610de88a828b01610d36565b90955093505060608801359150610e0160808901610c48565b905092959891949750929550565b5f60208284031215610e1f575f5ffd5b610c4182610cce565b5f5f60208385031215610e39575f5ffd5b823567ffffffffffffffff811115610e4f575f5ffd5b610e5b85828601610cf1565b90969095509350505050565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f8151808452602084019350602083015f5b82811015610f3c5781517fffffffff00000000000000000000000000000000000000000000000000000000815116875263ffffffff602082015116602088015260408101511515604088015260608101511515606088015250608086019550602082019150600181019050610ecc565b5093949350505050565b5f8151808452602084019350602083015f5b82811015610f3c5781517fffffffff0000000000000000000000000000000000000000000000000000000016865260209586019590910190600101610f58565b602080825282516060838301528051608084018190525f929190910190829060a08501905b8083101561101d5783517fffffffff00000000000000000000000000000000000000000000000000000000815116835260208101511515602084015260408101511515604084015250606082019150602084019350600183019250610fbd565b50602086015192507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08582030160408601526110598184610eba565b9250505060408401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160608501526110968282610f46565b95945050505050565b5f5f602083850312156110b0575f5ffd5b823567ffffffffffffffff8111156110c6575f5ffd5b610e5b85828601610d36565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600181811c9082168061111357607f821691505b60208210810361114a577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f82111561119757805f5260205f20601f840160051c810160208510156111755750805b601f840160051c820191505b81811015611194575f8155600101611181565b50505b505050565b67ffffffffffffffff8311156111b4576111b46110d2565b6111c8836111c283546110ff565b83611150565b5f601f841160018114611218575f85156111e25750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355611194565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b828110156112655786850135825560209485019460019092019101611245565b50868210156112a0577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b602081528160208201525f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156112e9575f5ffd5b8260051b8085604085013791909101604001939250505056";
573
+ "0x6080604052348015600e575f5ffd5b506117658061001c5f395ff3fe608060405260043610610165575f3560e01c80638a91b0e3116100c6578063a41c85be1161007c578063f04e283e11610057578063f04e283e14610392578063f2fde38b146103a5578063fee81cf4146103b8575f5ffd5b8063a41c85be14610330578063ae5628c614610352578063e6a3a3e014610373575f5ffd5b80639cb99c8b116100ac5780639cb99c8b146102d1578063a1308f27146102f0578063a3274edd14610311575f5ffd5b80638a91b0e3146102785780638da5cb5b1461029e575f5ffd5b8063452c04b11161011b578063690d832011610101578063690d8320146102595780636d61fe7014610278578063715018a614610296575f5ffd5b8063452c04b11461021857806354d1f13d14610251575f5ffd5b80632382f0461161014b5780632382f046146101d057806325692962146101ef5780632e7ad41f146101f7575f5ffd5b806301ffc9a7146101715780630a88fcad146101a5575f5ffd5b3661016d575b005b5f5ffd5b34801561017c575f5ffd5b5061019061018b36600461101b565b6103e9565b60405190151581526020015b60405180910390f35b3480156101b0575f5ffd5b506101b96104cd565b60405165ffffffffffff909116815260200161019c565b3480156101db575f5ffd5b5061016b6101ea36600461107b565b610503565b61016b6105e5565b348015610202575f5ffd5b5061020b610632565b60405161019c91906110a5565b348015610223575f5ffd5b5061022c6106aa565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161019c565b61016b6106b3565b348015610264575f5ffd5b5061016b61027336600461110a565b6106ec565b348015610283575f5ffd5b5061016b610292366004611168565b5050565b61016b6107c8565b3480156102a9575f5ffd5b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275461022c565b3480156102dc575f5ffd5b5061016b6102eb3660046111a7565b6107db565b3480156102fb575f5ffd5b5061030461094d565b60405161019c91906111e1565b34801561031c575f5ffd5b5061016b61032b366004611275565b6109f8565b34801561033b575f5ffd5b50610344610b2d565b60405190815260200161019c565b34801561035d575f5ffd5b50610366610b56565b60405161019c91906113fb565b34801561037e575f5ffd5b5061016b61038d366004611502565b610b7d565b61016b6103a036600461110a565b610c03565b61016b6103b336600461110a565b610c40565b3480156103c3575f5ffd5b506103446103d236600461110a565b63389a75e1600c9081525f91909152602090205490565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167fae5628c600000000000000000000000000000000000000000000000000000000148061047b57507fffffffff0000000000000000000000000000000000000000000000000000000082167f46c0c1b400000000000000000000000000000000000000000000000000000000145b806104c757507fffffffff0000000000000000000000000000000000000000000000000000000082167fc5c2a9bd00000000000000000000000000000000000000000000000000000000145b92915050565b5f6104fe7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be035465ffffffffffff1690565b905090565b61050b610c66565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be028290557f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be0380547fffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000001665ffffffffffff83169081179091556040805184815260208101929092527f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be00917f98dae91994793f47b29bee1a4ebfd76c60d7b1c071e23c6926cff278ebac379891015b60405180910390a1505050565b5f6202a30067ffffffffffffffff164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b60605f7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be006001810180546040805160208084028201810190925282815293945083018282801561069f57602002820191905f5260205f20905b81548152602001906001019080831161068b575b505050505091505090565b5f6104fe610c9b565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b6106f4610c66565b73ffffffffffffffffffffffffffffffffffffffff8116610738576107387fd92e233d00000000000000000000000000000000000000000000000000000000610cc4565b475f81900361076a5761076a7fbbd8170800000000000000000000000000000000000000000000000000000000610cc4565b6107748282610ccc565b8173ffffffffffffffffffffffffffffffffffffffff167f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65826040516107bc91815260200190565b60405180910390a25050565b6107d0610c66565b6107d95f610cec565b565b6107e3610d51565b73ffffffffffffffffffffffffffffffffffffffff8316610827576108277fd92e233d00000000000000000000000000000000000000000000000000000000610cc4565b73ffffffffffffffffffffffffffffffffffffffff821661085e5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee91506108a5565b8173ffffffffffffffffffffffffffffffffffffffff163b5f036108a5576108a57ff599342800000000000000000000000000000000000000000000000000000000610cc4565b805f036108d5576108d57f2c5211c600000000000000000000000000000000000000000000000000000000610cc4565b6108e182308584610e04565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f5124f757d1fab3d73629fc081e448028338686bf63d522d1298bf155630d9b718360405161094091815260200190565b60405180910390a3505050565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be00805460609190819061097f90611535565b80601f01602080910402602001604051908101604052809291908181526020018280546109ab90611535565b801561069f5780601f106109cd5761010080835404028352916020019161069f565b820191905f5260205f20905b8154815290600101906020018083116109d95750939695505050505050565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffbf6011328054600382558015610a495760018160011c14303b10610a405763f92ee8a95f526004601cfd5b818160ff1b1b91505b50610a5389610cec565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be0080610a80898b836115ff565b50610a8f600182018888610fbe565b5060028101859055600301805473ffffffffffffffffffffffffffffffffffffffff84166601000000000000027fffffffffffff000000000000000000000000000000000000000000000000000090911665ffffffffffff8616171790558015610b22576002815560016020527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602080a15b505050505050505050565b5f6104fe7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be025490565b610b7a60405180606001604052806060815260200160608152602001606081525090565b90565b610b85610c66565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be00610bd17f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be018484610fbe565b507f3afc3680664ba97756a728984fde0b6031be4a50f7b8b71587ba6533e853efe983836040516105d8929190611715565b610c0b610c66565b63389a75e1600c52805f526020600c208054421115610c3157636f5e88185f526004601cfd5b5f9055610c3d81610cec565b50565b610c48610c66565b8060601b610c5d57637448fbae5f526004601cfd5b610c3d81610cec565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275433146107d9576382b429005f526004601cfd5b5f6104fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275490565b805f5260045ffd5b61029273ffffffffffffffffffffffffffffffffffffffff831682610e5c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff74873927805473ffffffffffffffffffffffffffffffffffffffff9092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff748739275473ffffffffffffffffffffffffffffffffffffffff163303610d9157565b7f83d7ef17df984d8e84ee79017942cb0329f48e2d537ef8c418bc299c6878be03546601000000000000900473ffffffffffffffffffffffffffffffffffffffff163303610ddb57565b6107d97f48f5c3ed00000000000000000000000000000000000000000000000000000000610cc4565b8015610e565773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610e4c57610e4784848484610e75565b610e56565b610e568282610ccc565b50505050565b5f385f3884865af16102925763b12d13eb5f526004601cfd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160315610e565773ffffffffffffffffffffffffffffffffffffffff83163014610ee857610e4773ffffffffffffffffffffffffffffffffffffffff8516848484610f09565b610e5673ffffffffffffffffffffffffffffffffffffffff85168383610f6b565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f511416610f5d57803d873b151710610f5d57637939f4245f526004601cfd5b505f60605260405250505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f511416610fb457803d853b151710610fb4576390b8ec185f526004601cfd5b505f603452505050565b828054828255905f5260205f20908101928215610ff7579160200282015b82811115610ff7578235825591602001919060010190610fdc565b50611003929150611007565b5090565b5b80821115611003575f8155600101611008565b5f6020828403121561102b575f5ffd5b81357fffffffff000000000000000000000000000000000000000000000000000000008116811461105a575f5ffd5b9392505050565b803565ffffffffffff81168114611076575f5ffd5b919050565b5f5f6040838503121561108c575f5ffd5b8235915061109c60208401611061565b90509250929050565b602080825282518282018190525f918401906040840190835b818110156110dc5783518352602093840193909201916001016110be565b509095945050505050565b803573ffffffffffffffffffffffffffffffffffffffff81168114611076575f5ffd5b5f6020828403121561111a575f5ffd5b61105a826110e7565b5f5f83601f840112611133575f5ffd5b50813567ffffffffffffffff81111561114a575f5ffd5b602083019150836020828501011115611161575f5ffd5b9250929050565b5f5f60208385031215611179575f5ffd5b823567ffffffffffffffff81111561118f575f5ffd5b61119b85828601611123565b90969095509350505050565b5f5f5f606084860312156111b9575f5ffd5b6111c2846110e7565b92506111d0602085016110e7565b929592945050506040919091013590565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b5f5f83601f840112611244575f5ffd5b50813567ffffffffffffffff81111561125b575f5ffd5b6020830191508360208260051b8501011115611161575f5ffd5b5f5f5f5f5f5f5f5f60c0898b03121561128c575f5ffd5b611295896110e7565b9750602089013567ffffffffffffffff8111156112b0575f5ffd5b6112bc8b828c01611123565b909850965050604089013567ffffffffffffffff8111156112db575f5ffd5b6112e78b828c01611234565b9096509450506060890135925061130060808a01611061565b915061130e60a08a016110e7565b90509295985092959890939650565b5f8151808452602084019350602083015f5b8281101561139f5781517fffffffff00000000000000000000000000000000000000000000000000000000815116875263ffffffff60208201511660208801526040810151151560408801526060810151151560608801525060808601955060208201915060018101905061132f565b5093949350505050565b5f8151808452602084019350602083015f5b8281101561139f5781517fffffffff00000000000000000000000000000000000000000000000000000000168652602095860195909101906001016113bb565b602080825282516060838301528051608084018190525f929190910190829060a08501905b808310156114805783517fffffffff00000000000000000000000000000000000000000000000000000000815116835260208101511515602084015260408101511515604084015250606082019150602084019350600183019250611420565b50602086015192507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08582030160408601526114bc818461131d565b9250505060408401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08483030160608501526114f982826113a9565b95945050505050565b5f5f60208385031215611513575f5ffd5b823567ffffffffffffffff811115611529575f5ffd5b61119b85828601611234565b600181811c9082168061154957607f821691505b602082108103611580577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b601f8211156115fa57805f5260205f20601f840160051c810160208510156115d85750805b601f840160051c820191505b818110156115f7575f81556001016115e4565b50505b505050565b67ffffffffffffffff83111561161757611617611586565b61162b836116258354611535565b836115b3565b5f601f84116001811461167b575f85156116455750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b1783556115f7565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08716915b828110156116c857868501358255602094850194600190920191016116a8565b5086821015611703577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b602081528160208201525f7f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561174c575f5ffd5b8260051b8085604085013791909101604001939250505056";
501
574
 
502
575
  type SimpleAppConstructorParams =
503
576
  | [signer?: Signer]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@towns-protocol/generated",
3
- "version": "0.0.367",
3
+ "version": "0.0.368",
4
4
  "packageManager": "yarn@3.8.0",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -13,7 +13,7 @@
13
13
  "ethers": "^5.8.0"
14
14
  },
15
15
  "devDependencies": {
16
- "@towns-protocol/contracts": "^0.0.367"
16
+ "@towns-protocol/contracts": "^0.0.368"
17
17
  },
18
18
  "files": [
19
19
  "config/**/*",
@@ -32,5 +32,5 @@
32
32
  "publishConfig": {
33
33
  "access": "public"
34
34
  },
35
- "gitHead": "3a15998dce3dee732e8dc78fbd3d6f3a309b789f"
35
+ "gitHead": "bb014c92cd91d742be6ea53ac56027ec90e4d345"
36
36
  }