@towns-protocol/generated 0.0.448 → 0.0.450
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dev/.contracts-hash +1 -1
- package/dev/abis/IEntitlementChecker.abi.json +28 -0
- package/dev/abis/IEntitlementChecker.abi.ts +28 -0
- package/dev/abis/IEntitlementCheckerBase.abi.json +10 -0
- package/dev/abis/IEntitlementCheckerBase.abi.ts +10 -0
- package/dev/abis/IEntitlementGated.abi.json +23 -0
- package/dev/abis/IEntitlementGated.abi.ts +23 -0
- package/dev/abis/MockEntitlementGated.abi.json +4 -0
- package/dev/abis/MockEntitlementGated.abi.ts +4 -0
- package/dev/typings/IEntitlementChecker.ts +48 -8
- package/dev/typings/factories/IEntitlementChecker__factory.ts +28 -0
- package/dev/typings/factories/MembershipFacet__factory.ts +1 -1
- package/dev/typings/factories/MockEntitlementGated__factory.ts +5 -1
- package/package.json +3 -3
package/dev/.contracts-hash
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
389a336add938659bb8474826450d965986ac26c:1ddd38ad39d7c07327fc4ca5b7aa5f898bf3c997
|
|
@@ -129,6 +129,24 @@
|
|
|
129
129
|
"outputs": [],
|
|
130
130
|
"stateMutability": "nonpayable"
|
|
131
131
|
},
|
|
132
|
+
{
|
|
133
|
+
"type": "function",
|
|
134
|
+
"name": "requestEntitlementCheck",
|
|
135
|
+
"inputs": [
|
|
136
|
+
{
|
|
137
|
+
"name": "checkType",
|
|
138
|
+
"type": "uint8",
|
|
139
|
+
"internalType": "enum IEntitlementCheckerBase.CheckType"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "data",
|
|
143
|
+
"type": "bytes",
|
|
144
|
+
"internalType": "bytes"
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"outputs": [],
|
|
148
|
+
"stateMutability": "payable"
|
|
149
|
+
},
|
|
132
150
|
{
|
|
133
151
|
"type": "function",
|
|
134
152
|
"name": "requestEntitlementCheckV2",
|
|
@@ -276,6 +294,11 @@
|
|
|
276
294
|
],
|
|
277
295
|
"anonymous": false
|
|
278
296
|
},
|
|
297
|
+
{
|
|
298
|
+
"type": "error",
|
|
299
|
+
"name": "EntitlementChecker_DuplicateRequestId",
|
|
300
|
+
"inputs": []
|
|
301
|
+
},
|
|
279
302
|
{
|
|
280
303
|
"type": "error",
|
|
281
304
|
"name": "EntitlementChecker_InsufficientFunds",
|
|
@@ -286,6 +309,11 @@
|
|
|
286
309
|
"name": "EntitlementChecker_InsufficientNumberOfNodes",
|
|
287
310
|
"inputs": []
|
|
288
311
|
},
|
|
312
|
+
{
|
|
313
|
+
"type": "error",
|
|
314
|
+
"name": "EntitlementChecker_InvalidCheckType",
|
|
315
|
+
"inputs": []
|
|
316
|
+
},
|
|
289
317
|
{
|
|
290
318
|
"type": "error",
|
|
291
319
|
"name": "EntitlementChecker_InvalidNodeOperator",
|
|
@@ -129,6 +129,24 @@ export default [
|
|
|
129
129
|
"outputs": [],
|
|
130
130
|
"stateMutability": "nonpayable"
|
|
131
131
|
},
|
|
132
|
+
{
|
|
133
|
+
"type": "function",
|
|
134
|
+
"name": "requestEntitlementCheck",
|
|
135
|
+
"inputs": [
|
|
136
|
+
{
|
|
137
|
+
"name": "checkType",
|
|
138
|
+
"type": "uint8",
|
|
139
|
+
"internalType": "enum IEntitlementCheckerBase.CheckType"
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "data",
|
|
143
|
+
"type": "bytes",
|
|
144
|
+
"internalType": "bytes"
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"outputs": [],
|
|
148
|
+
"stateMutability": "payable"
|
|
149
|
+
},
|
|
132
150
|
{
|
|
133
151
|
"type": "function",
|
|
134
152
|
"name": "requestEntitlementCheckV2",
|
|
@@ -276,6 +294,11 @@ export default [
|
|
|
276
294
|
],
|
|
277
295
|
"anonymous": false
|
|
278
296
|
},
|
|
297
|
+
{
|
|
298
|
+
"type": "error",
|
|
299
|
+
"name": "EntitlementChecker_DuplicateRequestId",
|
|
300
|
+
"inputs": []
|
|
301
|
+
},
|
|
279
302
|
{
|
|
280
303
|
"type": "error",
|
|
281
304
|
"name": "EntitlementChecker_InsufficientFunds",
|
|
@@ -286,6 +309,11 @@ export default [
|
|
|
286
309
|
"name": "EntitlementChecker_InsufficientNumberOfNodes",
|
|
287
310
|
"inputs": []
|
|
288
311
|
},
|
|
312
|
+
{
|
|
313
|
+
"type": "error",
|
|
314
|
+
"name": "EntitlementChecker_InvalidCheckType",
|
|
315
|
+
"inputs": []
|
|
316
|
+
},
|
|
289
317
|
{
|
|
290
318
|
"type": "error",
|
|
291
319
|
"name": "EntitlementChecker_InvalidNodeOperator",
|
|
@@ -105,6 +105,11 @@
|
|
|
105
105
|
],
|
|
106
106
|
"anonymous": false
|
|
107
107
|
},
|
|
108
|
+
{
|
|
109
|
+
"type": "error",
|
|
110
|
+
"name": "EntitlementChecker_DuplicateRequestId",
|
|
111
|
+
"inputs": []
|
|
112
|
+
},
|
|
108
113
|
{
|
|
109
114
|
"type": "error",
|
|
110
115
|
"name": "EntitlementChecker_InsufficientFunds",
|
|
@@ -115,6 +120,11 @@
|
|
|
115
120
|
"name": "EntitlementChecker_InsufficientNumberOfNodes",
|
|
116
121
|
"inputs": []
|
|
117
122
|
},
|
|
123
|
+
{
|
|
124
|
+
"type": "error",
|
|
125
|
+
"name": "EntitlementChecker_InvalidCheckType",
|
|
126
|
+
"inputs": []
|
|
127
|
+
},
|
|
118
128
|
{
|
|
119
129
|
"type": "error",
|
|
120
130
|
"name": "EntitlementChecker_InvalidNodeOperator",
|
|
@@ -105,6 +105,11 @@ export default [
|
|
|
105
105
|
],
|
|
106
106
|
"anonymous": false
|
|
107
107
|
},
|
|
108
|
+
{
|
|
109
|
+
"type": "error",
|
|
110
|
+
"name": "EntitlementChecker_DuplicateRequestId",
|
|
111
|
+
"inputs": []
|
|
112
|
+
},
|
|
108
113
|
{
|
|
109
114
|
"type": "error",
|
|
110
115
|
"name": "EntitlementChecker_InsufficientFunds",
|
|
@@ -115,6 +120,11 @@ export default [
|
|
|
115
120
|
"name": "EntitlementChecker_InsufficientNumberOfNodes",
|
|
116
121
|
"inputs": []
|
|
117
122
|
},
|
|
123
|
+
{
|
|
124
|
+
"type": "error",
|
|
125
|
+
"name": "EntitlementChecker_InvalidCheckType",
|
|
126
|
+
"inputs": []
|
|
127
|
+
},
|
|
118
128
|
{
|
|
119
129
|
"type": "error",
|
|
120
130
|
"name": "EntitlementChecker_InvalidNodeOperator",
|
|
@@ -114,6 +114,29 @@
|
|
|
114
114
|
"outputs": [],
|
|
115
115
|
"stateMutability": "nonpayable"
|
|
116
116
|
},
|
|
117
|
+
{
|
|
118
|
+
"type": "function",
|
|
119
|
+
"name": "postEntitlementCheckResultV2",
|
|
120
|
+
"inputs": [
|
|
121
|
+
{
|
|
122
|
+
"name": "transactionId",
|
|
123
|
+
"type": "bytes32",
|
|
124
|
+
"internalType": "bytes32"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"name": "roleId",
|
|
128
|
+
"type": "uint256",
|
|
129
|
+
"internalType": "uint256"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"name": "result",
|
|
133
|
+
"type": "uint8",
|
|
134
|
+
"internalType": "enum IEntitlementGatedBase.NodeVoteStatus"
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
"outputs": [],
|
|
138
|
+
"stateMutability": "payable"
|
|
139
|
+
},
|
|
117
140
|
{
|
|
118
141
|
"type": "event",
|
|
119
142
|
"name": "EntitlementCheckResultPosted",
|
|
@@ -114,6 +114,29 @@ export default [
|
|
|
114
114
|
"outputs": [],
|
|
115
115
|
"stateMutability": "nonpayable"
|
|
116
116
|
},
|
|
117
|
+
{
|
|
118
|
+
"type": "function",
|
|
119
|
+
"name": "postEntitlementCheckResultV2",
|
|
120
|
+
"inputs": [
|
|
121
|
+
{
|
|
122
|
+
"name": "transactionId",
|
|
123
|
+
"type": "bytes32",
|
|
124
|
+
"internalType": "bytes32"
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"name": "roleId",
|
|
128
|
+
"type": "uint256",
|
|
129
|
+
"internalType": "uint256"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"name": "result",
|
|
133
|
+
"type": "uint8",
|
|
134
|
+
"internalType": "enum IEntitlementGatedBase.NodeVoteStatus"
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
"outputs": [],
|
|
138
|
+
"stateMutability": "payable"
|
|
139
|
+
},
|
|
117
140
|
{
|
|
118
141
|
"type": "event",
|
|
119
142
|
"name": "EntitlementCheckResultPosted",
|
|
@@ -36,6 +36,7 @@ export interface IEntitlementCheckerInterface extends utils.Interface {
|
|
|
36
36
|
"isValidNode(address)": FunctionFragment;
|
|
37
37
|
"registerNode(address)": FunctionFragment;
|
|
38
38
|
"requestEntitlementCheck(address,bytes32,uint256,address[])": FunctionFragment;
|
|
39
|
+
"requestEntitlementCheck(uint8,bytes)": FunctionFragment;
|
|
39
40
|
"requestEntitlementCheckV2(address,bytes32,uint256,bytes)": FunctionFragment;
|
|
40
41
|
"unregisterNode(address)": FunctionFragment;
|
|
41
42
|
};
|
|
@@ -48,7 +49,8 @@ export interface IEntitlementCheckerInterface extends utils.Interface {
|
|
|
48
49
|
| "getRandomNodes"
|
|
49
50
|
| "isValidNode"
|
|
50
51
|
| "registerNode"
|
|
51
|
-
| "requestEntitlementCheck"
|
|
52
|
+
| "requestEntitlementCheck(address,bytes32,uint256,address[])"
|
|
53
|
+
| "requestEntitlementCheck(uint8,bytes)"
|
|
52
54
|
| "requestEntitlementCheckV2"
|
|
53
55
|
| "unregisterNode"
|
|
54
56
|
): FunctionFragment;
|
|
@@ -75,9 +77,13 @@ export interface IEntitlementCheckerInterface extends utils.Interface {
|
|
|
75
77
|
values: [string]
|
|
76
78
|
): string;
|
|
77
79
|
encodeFunctionData(
|
|
78
|
-
functionFragment: "requestEntitlementCheck",
|
|
80
|
+
functionFragment: "requestEntitlementCheck(address,bytes32,uint256,address[])",
|
|
79
81
|
values: [string, BytesLike, BigNumberish, string[]]
|
|
80
82
|
): string;
|
|
83
|
+
encodeFunctionData(
|
|
84
|
+
functionFragment: "requestEntitlementCheck(uint8,bytes)",
|
|
85
|
+
values: [BigNumberish, BytesLike]
|
|
86
|
+
): string;
|
|
81
87
|
encodeFunctionData(
|
|
82
88
|
functionFragment: "requestEntitlementCheckV2",
|
|
83
89
|
values: [string, BytesLike, BigNumberish, BytesLike]
|
|
@@ -112,7 +118,11 @@ export interface IEntitlementCheckerInterface extends utils.Interface {
|
|
|
112
118
|
data: BytesLike
|
|
113
119
|
): Result;
|
|
114
120
|
decodeFunctionResult(
|
|
115
|
-
functionFragment: "requestEntitlementCheck",
|
|
121
|
+
functionFragment: "requestEntitlementCheck(address,bytes32,uint256,address[])",
|
|
122
|
+
data: BytesLike
|
|
123
|
+
): Result;
|
|
124
|
+
decodeFunctionResult(
|
|
125
|
+
functionFragment: "requestEntitlementCheck(uint8,bytes)",
|
|
116
126
|
data: BytesLike
|
|
117
127
|
): Result;
|
|
118
128
|
decodeFunctionResult(
|
|
@@ -242,7 +252,7 @@ export interface IEntitlementChecker extends BaseContract {
|
|
|
242
252
|
overrides?: Overrides & { from?: string }
|
|
243
253
|
): Promise<ContractTransaction>;
|
|
244
254
|
|
|
245
|
-
requestEntitlementCheck(
|
|
255
|
+
"requestEntitlementCheck(address,bytes32,uint256,address[])"(
|
|
246
256
|
callerAddress: string,
|
|
247
257
|
transactionId: BytesLike,
|
|
248
258
|
roleId: BigNumberish,
|
|
@@ -250,6 +260,12 @@ export interface IEntitlementChecker extends BaseContract {
|
|
|
250
260
|
overrides?: Overrides & { from?: string }
|
|
251
261
|
): Promise<ContractTransaction>;
|
|
252
262
|
|
|
263
|
+
"requestEntitlementCheck(uint8,bytes)"(
|
|
264
|
+
checkType: BigNumberish,
|
|
265
|
+
data: BytesLike,
|
|
266
|
+
overrides?: PayableOverrides & { from?: string }
|
|
267
|
+
): Promise<ContractTransaction>;
|
|
268
|
+
|
|
253
269
|
requestEntitlementCheckV2(
|
|
254
270
|
walletAddress: string,
|
|
255
271
|
transactionId: BytesLike,
|
|
@@ -288,7 +304,7 @@ export interface IEntitlementChecker extends BaseContract {
|
|
|
288
304
|
overrides?: Overrides & { from?: string }
|
|
289
305
|
): Promise<ContractTransaction>;
|
|
290
306
|
|
|
291
|
-
requestEntitlementCheck(
|
|
307
|
+
"requestEntitlementCheck(address,bytes32,uint256,address[])"(
|
|
292
308
|
callerAddress: string,
|
|
293
309
|
transactionId: BytesLike,
|
|
294
310
|
roleId: BigNumberish,
|
|
@@ -296,6 +312,12 @@ export interface IEntitlementChecker extends BaseContract {
|
|
|
296
312
|
overrides?: Overrides & { from?: string }
|
|
297
313
|
): Promise<ContractTransaction>;
|
|
298
314
|
|
|
315
|
+
"requestEntitlementCheck(uint8,bytes)"(
|
|
316
|
+
checkType: BigNumberish,
|
|
317
|
+
data: BytesLike,
|
|
318
|
+
overrides?: PayableOverrides & { from?: string }
|
|
319
|
+
): Promise<ContractTransaction>;
|
|
320
|
+
|
|
299
321
|
requestEntitlementCheckV2(
|
|
300
322
|
walletAddress: string,
|
|
301
323
|
transactionId: BytesLike,
|
|
@@ -331,7 +353,7 @@ export interface IEntitlementChecker extends BaseContract {
|
|
|
331
353
|
|
|
332
354
|
registerNode(node: string, overrides?: CallOverrides): Promise<void>;
|
|
333
355
|
|
|
334
|
-
requestEntitlementCheck(
|
|
356
|
+
"requestEntitlementCheck(address,bytes32,uint256,address[])"(
|
|
335
357
|
callerAddress: string,
|
|
336
358
|
transactionId: BytesLike,
|
|
337
359
|
roleId: BigNumberish,
|
|
@@ -339,6 +361,12 @@ export interface IEntitlementChecker extends BaseContract {
|
|
|
339
361
|
overrides?: CallOverrides
|
|
340
362
|
): Promise<void>;
|
|
341
363
|
|
|
364
|
+
"requestEntitlementCheck(uint8,bytes)"(
|
|
365
|
+
checkType: BigNumberish,
|
|
366
|
+
data: BytesLike,
|
|
367
|
+
overrides?: CallOverrides
|
|
368
|
+
): Promise<void>;
|
|
369
|
+
|
|
342
370
|
requestEntitlementCheckV2(
|
|
343
371
|
walletAddress: string,
|
|
344
372
|
transactionId: BytesLike,
|
|
@@ -419,7 +447,7 @@ export interface IEntitlementChecker extends BaseContract {
|
|
|
419
447
|
overrides?: Overrides & { from?: string }
|
|
420
448
|
): Promise<BigNumber>;
|
|
421
449
|
|
|
422
|
-
requestEntitlementCheck(
|
|
450
|
+
"requestEntitlementCheck(address,bytes32,uint256,address[])"(
|
|
423
451
|
callerAddress: string,
|
|
424
452
|
transactionId: BytesLike,
|
|
425
453
|
roleId: BigNumberish,
|
|
@@ -427,6 +455,12 @@ export interface IEntitlementChecker extends BaseContract {
|
|
|
427
455
|
overrides?: Overrides & { from?: string }
|
|
428
456
|
): Promise<BigNumber>;
|
|
429
457
|
|
|
458
|
+
"requestEntitlementCheck(uint8,bytes)"(
|
|
459
|
+
checkType: BigNumberish,
|
|
460
|
+
data: BytesLike,
|
|
461
|
+
overrides?: PayableOverrides & { from?: string }
|
|
462
|
+
): Promise<BigNumber>;
|
|
463
|
+
|
|
430
464
|
requestEntitlementCheckV2(
|
|
431
465
|
walletAddress: string,
|
|
432
466
|
transactionId: BytesLike,
|
|
@@ -469,7 +503,7 @@ export interface IEntitlementChecker extends BaseContract {
|
|
|
469
503
|
overrides?: Overrides & { from?: string }
|
|
470
504
|
): Promise<PopulatedTransaction>;
|
|
471
505
|
|
|
472
|
-
requestEntitlementCheck(
|
|
506
|
+
"requestEntitlementCheck(address,bytes32,uint256,address[])"(
|
|
473
507
|
callerAddress: string,
|
|
474
508
|
transactionId: BytesLike,
|
|
475
509
|
roleId: BigNumberish,
|
|
@@ -477,6 +511,12 @@ export interface IEntitlementChecker extends BaseContract {
|
|
|
477
511
|
overrides?: Overrides & { from?: string }
|
|
478
512
|
): Promise<PopulatedTransaction>;
|
|
479
513
|
|
|
514
|
+
"requestEntitlementCheck(uint8,bytes)"(
|
|
515
|
+
checkType: BigNumberish,
|
|
516
|
+
data: BytesLike,
|
|
517
|
+
overrides?: PayableOverrides & { from?: string }
|
|
518
|
+
): Promise<PopulatedTransaction>;
|
|
519
|
+
|
|
480
520
|
requestEntitlementCheckV2(
|
|
481
521
|
walletAddress: string,
|
|
482
522
|
transactionId: BytesLike,
|
|
@@ -140,6 +140,24 @@ const _abi = [
|
|
|
140
140
|
outputs: [],
|
|
141
141
|
stateMutability: "nonpayable",
|
|
142
142
|
},
|
|
143
|
+
{
|
|
144
|
+
type: "function",
|
|
145
|
+
name: "requestEntitlementCheck",
|
|
146
|
+
inputs: [
|
|
147
|
+
{
|
|
148
|
+
name: "checkType",
|
|
149
|
+
type: "uint8",
|
|
150
|
+
internalType: "enum IEntitlementCheckerBase.CheckType",
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
name: "data",
|
|
154
|
+
type: "bytes",
|
|
155
|
+
internalType: "bytes",
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
outputs: [],
|
|
159
|
+
stateMutability: "payable",
|
|
160
|
+
},
|
|
143
161
|
{
|
|
144
162
|
type: "function",
|
|
145
163
|
name: "requestEntitlementCheckV2",
|
|
@@ -287,6 +305,11 @@ const _abi = [
|
|
|
287
305
|
],
|
|
288
306
|
anonymous: false,
|
|
289
307
|
},
|
|
308
|
+
{
|
|
309
|
+
type: "error",
|
|
310
|
+
name: "EntitlementChecker_DuplicateRequestId",
|
|
311
|
+
inputs: [],
|
|
312
|
+
},
|
|
290
313
|
{
|
|
291
314
|
type: "error",
|
|
292
315
|
name: "EntitlementChecker_InsufficientFunds",
|
|
@@ -297,6 +320,11 @@ const _abi = [
|
|
|
297
320
|
name: "EntitlementChecker_InsufficientNumberOfNodes",
|
|
298
321
|
inputs: [],
|
|
299
322
|
},
|
|
323
|
+
{
|
|
324
|
+
type: "error",
|
|
325
|
+
name: "EntitlementChecker_InvalidCheckType",
|
|
326
|
+
inputs: [],
|
|
327
|
+
},
|
|
300
328
|
{
|
|
301
329
|
type: "error",
|
|
302
330
|
name: "EntitlementChecker_InvalidNodeOperator",
|
|
@@ -2332,7 +2332,7 @@ const _abi = [
|
|
|
2332
2332
|
] as const;
|
|
2333
2333
|
|
|
2334
2334
|
const _bytecode =
|
|
2335
|
-
"0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b61551c806100ca5f395ff3fe608060405260043610610178575f3560e01c806379dda585116100d157806393b13cb71161007c578063a5a4103111610057578063a5a41031146103f5578063df9a9fe614610409578063e847abdd14610428575f5ffd5b806393b13cb7146103a157806395d600c8146103c257806397fb7c1e146103d6575f5ffd5b80638120f0ba116100ac5780638120f0ba1461034257806383f3f0dc1461036f5780638c625b061461038e575f5ffd5b806379dda585146102fc5780637c9669ac146103105780637d0567c414610323575f5ffd5b80635803909f11610131578063686f76841161010c578063686f7684146102b657806369d5f38a146102c9578063706b8e09146102e8575f5ffd5b80635803909f1461023f5780635becd24a1461025e578063657e45e81461027d575f5ffd5b806317c957091161016157806317c95709146101c4578063280a47c7146102185780633e9491a21461022b575f5ffd5b80630ef1be5f1461017c5780631278076a1461019d575b5f5ffd5b348015610187575f5ffd5b5061019b6101963660046147ff565b61043c565b005b3480156101a8575f5ffd5b506101b16104f1565b6040519081526020015b60405180910390f35b3480156101cf575f5ffd5b506101b16101de36600461483e565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b61019b610226366004614855565b610566565b348015610236575f5ffd5b506101b161063c565b34801561024a575f5ffd5b506101b161025936600461483e565b6106a6565b348015610269575f5ffd5b5061019b61027836600461483e565b61071e565b348015610288575f5ffd5b50610291610898565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bb565b61019b6102c4366004614a82565b6108a6565b3480156102d4575f5ffd5b5061019b6102e336600461483e565b6108ea565b3480156102f3575f5ffd5b506101b16109f9565b348015610307575f5ffd5b50610291610a02565b61019b61031e36600461483e565b610a41565b34801561032e575f5ffd5b5061019b61033d366004614acf565b610a84565b34801561034d575f5ffd5b50610356610b3e565b60405167ffffffffffffffff90911681526020016101bb565b34801561037a575f5ffd5b5061019b610389366004614aff565b610b47565b61019b61039c366004614acf565b610bc1565b3480156103ac575f5ffd5b506103b5610bf4565b6040516101bb9190614b66565b3480156103cd575f5ffd5b506101b1610bfe565b3480156103e1575f5ffd5b5061019b6103f036600461483e565b610c27565b348015610400575f5ffd5b506101b1610d11565b348015610414575f5ffd5b5061019b610423366004614acf565b610d81565b348015610433575f5ffd5b50610291610e5a565b610444610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104af576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104ed82828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f5392505050565b5050565b5f5f6105466105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610f7e565b9050805f03610556575f91505090565b61055f8161108c565b5092915050565b3068929eee149b4bd2126854036105845763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8360018111156105a3576105a3614b78565b036105c6575f6105b582840184614acf565b90506105c0816110aa565b5061062b565b60018360018111156105da576105da614b78565b03610602575f806105ed83850185614a82565b915091506105fb8282611190565b505061062b565b61062b7f3be01969000000000000000000000000000000000000000000000000000000006112b8565b3868929eee149b4bd2126855505050565b5f5f6106466112c0565b905073ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461069f5761069973ffffffffffffffffffffffffffffffffffffffff821630611317565b91505090565b4791505090565b5f5f6106fc836106f77f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b61134a565b9050805f0361070d57505f92915050565b6107168161108c565b509392505050565b610726610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461078c576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b5f6107b57fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b905080158015906107c557508082115b156107f3576107f37fc3983b91000000000000000000000000000000000000000000000000000000006112b8565b6107fc826113c8565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60782905560405182907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b5f6108a16112c0565b905090565b3068929eee149b4bd2126854036108c45763ab143c065f526004601cfd5b3068929eee149b4bd21268556108da8282611190565b3868929eee149b4bd21268555050565b6108f2610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610958576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156109e0575f5ffd5b505af11580156109f2573d5f5f3e3d5ffd5b5050505050565b5f6108a161146c565b5f6108a17fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd212685403610a5f5763ab143c065f526004601cfd5b3068929eee149b4bd2126855610a753382611537565b3868929eee149b4bd212685550565b610a8c610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610afb81611740565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f14b7cb0621729ad169b573c8b04f2ba383bf36b3724f2e2809df566f45df16ec905f90a250565b5f6108a1611956565b610b4f610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bb5576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610bbe81611a16565b50565b3068929eee149b4bd212685403610bdf5763ab143c065f526004601cfd5b3068929eee149b4bd2126855610a75816110aa565b60606108a1611a91565b5f6108a17fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610c2f610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c95576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610ce981610ce47f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b611b43565b610bbe817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f5f610d616105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050805f03610d71575f91505090565b610d7a8161108c565b9392505050565b610d89610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610def576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610df881611b74565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6108a17fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610f2f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106999190614bb5565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104ed8282614c5f565b5f5f610fbe7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b905073ffffffffffffffffffffffffffffffffffffffff8116610fe357505f92915050565b5f610fec61146c565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018290526024810186905290915073ffffffffffffffffffffffffffffffffffffffff831690635cf4ee91906044015b602060405180830381865afa158015611060573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110849190614d76565b949350505050565b5f5f61109783611cad565b90506110a38184614dba565b9150915091565b6110b381611da9565b5f6110bc611e9f565b90505f6110c76112c0565b90505f6110d8828460200151611f65565b90505f61111f856111197f8c625b06d047a4c1ca46cdab06b7e14ce79b486f06c67a1b220fa942669ca49b338960405180602001604052805f81525061202a565b8461205c565b90505f5f61113387338589602001516121f3565b915091508061118757811561117d57856040015161115b5761115683885f61226e565b611165565b6111658387612290565b61116f83886123d7565b61117887612427565b611187565b6111878388612536565b50505050505050565b61119982611da9565b5f6111a2611e9f565b90505f6111ad6112c0565b90505f6111be828460200151611f65565b90506111ca858561258d565b5f846040516020016111dc9190614dcd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f6112448861123e8433838861202a565b8661205c565b90505f5f6112588a33858b602001516121f3565b91509150806112ac5781156112a25787604001516112805761127b838b5f61226e565b61128a565b61128a8389612612565b611294838b6123d7565b61129d8a612427565b6112ac565b6112ac838b612536565b50505050505050505050565b805f5260045ffd5b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1680611314575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b90565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f8281527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60960205260408120547fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090826113a385610f7e565b9050815f036113b65792506113c2915050565b81811890821102189150505b92915050565b6113d0610a02565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611418573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143c9190614d76565b811115610bbe57610bbe7fc3983b91000000000000000000000000000000000000000000000000000000006112b8565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff16156114c35760070154919050565b6114cb610a02565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611513573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106999190614d76565b5f611541826127a5565b905073ffffffffffffffffffffffffffffffffffffffff8116611587576115877f5fbd5717000000000000000000000000000000000000000000000000000000006112b8565b5f611590611956565b67ffffffffffffffff1690505f6115ec846106f77f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f6115f76112c0565b9050815f036116325761162073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee3088346127b0565b61162a8584612802565b505050505050565b5f61163c8361108c565b5090507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8316016116dd57348111156116ad576116ad7f34a7a93d000000000000000000000000000000000000000000000000000000006112b8565b6116b78284612930565b505f6116c38234614e27565b905080156116d7576116d783308a846127b0565b5061172c565b3415611715576040517fbf39a02400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117208288836129bb565b61172a8284612930565b505b6117368582612a9f565b6111878685612802565b73ffffffffffffffffffffffffffffffffffffffff8116158061178c575073ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b6118f057604080517f4645455f545950452e4d454d4245525348495000000000000000000000000000602080830191909152606084901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603383015282516027818403018152604790920190925280519101205f6118407fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1663146516df836040518263ffffffff1660e01b815260040161187a91815260200190565b60e060405180830381865afa158015611895573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118b99190614e87565b905080608001516118ed576118ed7f212be89d000000000000000000000000000000000000000000000000000000006112b8565b50505b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f819003611314576119aa610a02565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a19190614f27565b611a1f81612b3d565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c018054611ac290614bd0565b80601f0160208091040260200160405190810160405280929190818152602001828054611aee90614bd0565b8015611b395780601f10611b1057610100808354040283529160200191611b39565b820191905f5260205f20905b815481529060010190602001808311611b1c57829003601f168201915b5050505050905090565b808210156104ed576104ed7fccc9aa2e000000000000000000000000000000000000000000000000000000006112b8565b73ffffffffffffffffffffffffffffffffffffffff8116611bb857611bb87f0e88bf4b000000000000000000000000000000000000000000000000000000006112b8565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa158015611c5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c809190614f42565b610bbe57610bbe7f0e88bf4b000000000000000000000000000000000000000000000000000000006112b8565b5f5f611cbf611cba6112c0565b612c33565b9050611cff7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fecad870d000000000000000000000000000000000000000000000000000000008152600481018390525f602482018190526044820186905260806064830152608482015273ffffffffffffffffffffffffffffffffffffffff919091169063ecad870d9060a401602060405180830381865afa158015611d85573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7a9190614d76565b73ffffffffffffffffffffffffffffffffffffffff8116611ded57611ded7f5fbd5717000000000000000000000000000000000000000000000000000000006112b8565b5f611e167fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611e71575080611e6e7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104ed576104ed7f7efcdb49000000000000000000000000000000000000000000000000000000006112b8565b611ec260405180606001604052805f81526020015f81526020015f151581525090565b5f611f0e7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611f1a82610f7e565b90505f611f2561146c565b9050815f03611f345750505090565b81845282811115611f455750505090565b5f611f4f8361108c565b5060016040870152602086015250929392505050565b5f7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff841601611fdb5781341015611fd457611fd47fb1296a8a000000000000000000000000000000000000000000000000000000006112b8565b50346113c2565b3415612013576040517fbf39a02400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115612024576120248333846129bb565b50919050565b6060848484846040516020016120439493929190614f5b565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b1660208201524360348201525f90819060540160405160208183030381529060405280519060200120905061213b8161210f83886120c286612d0e565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040812080549294507f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092909190829061219c90614bd0565b905011156121cd576121cd7ff82e65c3000000000000000000000000000000000000000000000000000000006112b8565b806121d88782614c5f565b5084156121e9576121e98486612d54565b5050509392505050565b5f5f5f6122346040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250612dbc565b90506122408188612f54565b156122525760015f9250925050612265565b61225f818888888861316f565b92509250505b94509492505050565b61227883826132fc565b6122818361335a565b61228b8282612a9f565b505050565b5f5f61229b846133b2565b80546122a690614bd0565b80601f01602080910402602001604051908101604052809291908181526020018280546122d290614bd0565b801561231d5780601f106122f45761010080835404028352916020019161231d565b820191905f5260205f20905b81548152906001019060200180831161230057829003601f168201915b5050505050806020019051810190612335919061503c565b50919350909150507fffffffff0000000000000000000000000000000000000000000000000000000082167f8c625b0600000000000000000000000000000000000000000000000000000000146123af576123af7fda6153bd000000000000000000000000000000000000000000000000000000006112b8565b6123c16123ba6112c0565b8451612930565b506123d18482856020015161226e565b50505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040902054801561228b5761241483826132fc565b61228b61241f6112c0565b3084846127b0565b5f6124507f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005490565b90506124d4816124a46105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b6124df826001613405565b6124f0816124eb611956565b612802565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b61253f8261335a565b61254982826123d7565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b8173ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614806125e45750602081015173ffffffffffffffffffffffffffffffffffffffff1633145b156104ed576104ed7f5fbd5717000000000000000000000000000000000000000000000000000000006112b8565b5f5f5f5f61261f866133b2565b805461262a90614bd0565b80601f016020809104026020016040519081016040528092919081815260200182805461265690614bd0565b80156126a15780601f10612678576101008083540402835291602001916126a1565b820191905f5260205f20905b81548152906001019060200180831161268457829003601f168201915b50505050508060200190518101906126b9919061503c565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f76840000000000000000000000000000000000000000000000000000000014612735576127357fda6153bd000000000000000000000000000000000000000000000000000000006112b8565b5f8180602001905181019061274a91906150c0565b90505f6127556112c0565b905061276481885f0151612930565b508151875161277491839161341e565b61278c8186846020015185604001518b5f0151613541565b61279b8885896020015161226e565b5050505050505050565b5f6113c28183613641565b80156123d15773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146127f8576127f38484848461364c565b6123d1565b6123d182826136e0565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff16801580159061284857505f5b15612882576040517ff7d2131a000000000000000000000000000000000000000000000000000000008152600481018590526024016104a6565b5f428267ffffffffffffffff1611156128a65761289f8483615168565b90506128b3565b6128b08442615168565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b5f61293a82611cad565b90506113c28330612949610a02565b73ffffffffffffffffffffffffffffffffffffffff16634ccb20c06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612991573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129b59190614bb5565b846127b0565b7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8416016129fd57505050565b5f612a1e73ffffffffffffffffffffffffffffffffffffffff851630611317565b9050612a4273ffffffffffffffffffffffffffffffffffffffff8516843085613700565b5f612a6373ffffffffffffffffffffffffffffffffffffffff861630611317565b905082612a708383614e27565b10156109f2576109f27fb1296a8a000000000000000000000000000000000000000000000000000000006112b8565b805f03612aaa575050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612ac76112c0565b73ffffffffffffffffffffffffffffffffffffffff1614612ae6575050565b5f612aef613762565b90505f612b1e825f85604051602001612b0a91815260200190565b604051602081830303815290604052613835565b9050612b2b82858361388b565b6123d182612b37610e99565b8361388b565b5f612b46610a02565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b8e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bb29190614f27565b67ffffffffffffffff1690508167ffffffffffffffff165f03612bf857612bf87f82323d2e000000000000000000000000000000000000000000000000000000006112b8565b808267ffffffffffffffff1611156104ed576104ed7f82323d2e000000000000000000000000000000000000000000000000000000006112b8565b5f7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff831601612c9857507f7bf182fc45d83735258e0907e7fbae2ced2b54cf5d36bf3f9c30097bec3e88f5919050565b604080517f4645455f545950452e4d454d4245525348495000000000000000000000000000602080830191909152606085901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603383015282516027818403018152604790920190925280519101206113c2565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0060208190526040822080549083612d4983615188565b909155509392505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291612db2908490614dba565b9091555050505050565b60605f612dc761390a565b80519091505f8167ffffffffffffffff811115612de657612de66148ca565b604051908082528060200260200182016040528015612e4957816020015b612e366040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612e045790505b50855160208701209091505f90815b84811015612f48575f5f5f5f612e868a8681518110612e7957612e796151bf565b6020026020010151613935565b93509350935093505f5b8251811015612f385786838281518110612eac57612eac6151bf565b60200260200101518051906020012003612f30576040518060a001604052808c8881518110612edd57612edd6151bf565b60200260200101518152602001868152602001851515815260200184815260200183815250898981518110612f1457612f146151bf565b602002602001018190525087612f2990615188565b9750612f38565b600101612e90565b5050505050806001019050612e58565b50508152949350505050565b5f5f612f5f83613a21565b90505f5b845181101561316557848181518110612f7e57612f7e6151bf565b60200260200101516040015161315d575f5b858281518110612fa257612fa26151bf565b6020026020010151608001515181101561315b575f868381518110612fc957612fc96151bf565b6020026020010151608001518281518110612fe657612fe66151bf565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613039573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061305d9190614f42565b15801561314057508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e537061636500000000000000000000000000000000000000000000008152506040516020016130cb91906151ec565b6040516020818303038152906040526130e390615202565b6040518463ffffffff1660e01b815260040161310193929190615244565b602060405180830381865afa15801561311c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131409190614f42565b156131525760019450505050506113c2565b50600101612f90565b505b600101612f63565b505f949350505050565b5f8080805b88518110156132ed5788818151811061318f5761318f6151bf565b6020026020010151604001516132e5575f5b8982815181106131b3576131b36151bf565b602002602001015160800151518110156132e3575f8a83815181106131da576131da6151bf565b60200260200101516080015182815181106131f7576131f76151bf565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561324a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061326e9190614f42565b156132da57836132ab576132a28a8a8a848f8881518110613291576132916151bf565b60200260200101515f01518c613c95565b600193506132d5565b6132d58a8a8a848f88815181106132c4576132c46151bf565b60200260200101515f01515f613c95565b600194505b506001016131a1565b505b600101613174565b505f9250509550959350505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291612db2908490614e27565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906104ed905f614770565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604081207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0090610d7a565b6104ed828260405180602001604052805f815250613d85565b73ffffffffffffffffffffffffffffffffffffffff821661343e57505050565b5f61347d7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529190911690635cb4f54890602401608060405180830381865afa1580156134e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061350d91906152af565b905080604001515f036135205750505050565b5f61352f838360400151613e4d565b90506109f285308460200151846127b0565b8151156135b1575f61355283613e99565b604081015190915073ffffffffffffffffffffffffffffffffffffffff16158061357e57506020810151155b1561358957506109f2565b5f613598838360200151613e4d565b90506135aa87308460400151846127b0565b50506109f2565b73ffffffffffffffffffffffffffffffffffffffff8316156109f2578373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156109f2575f6136338261362e7faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b613e4d565b905061162a863086846127b0565b5f610d7a8383613f41565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156123d15773ffffffffffffffffffffffffffffffffffffffff831630146136bf576127f373ffffffffffffffffffffffffffffffffffffffff8516848484613700565b6123d173ffffffffffffffffffffffffffffffffffffffff8516838361407c565b6104ed73ffffffffffffffffffffffffffffffffffffffff8316826140cf565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f51141661375457803d873b15171061375457637939f4245f526004601cfd5b505f60605260405250505050565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa158015613811573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a19190614bb5565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde906110459086908690600401615329565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b1580156138f8575f5ffd5b505af1158015611187573d5f5f3e3d5ffd5b60606108a17f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd016140e8565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604081208054606092918391829190819061397790614bd0565b80601f01602080910402602001604051908101604052809291908181526020018280546139a390614bd0565b80156139ee5780601f106139c5576101008083540402835291602001916139ee565b820191905f5260205f20905b8154815290600101906020018083116139d157829003601f168201915b5050505060018301549196505060ff169350613a0c600282016140f4565b9250613a17816141cb565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015613ab8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613afd9190810190615376565b905080515f03613c6e576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015613b74573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b989190614bb5565b905073ffffffffffffffffffffffffffffffffffffffff811615613c6c576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015613c24573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613c699190810190615376565b91505b505b613c77816141da565b92506001835101835283604051526020604051016040525050919050565b613ca08684836141e8565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005f8681526001828101602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117815560030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055905080546040805173ffffffffffffffffffffffffffffffffffffffff89811660208301526111879316918a91899188918891016040516020818303038152906040526142a1565b613d8f83836143b5565b73ffffffffffffffffffffffffffffffffffffffff83163b1561228b577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b613de45f86838060010194508661456a565b613e1a576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613dd257817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0054146109f2575f5ffd5b5f612710821115613e8257613e827f197f196200000000000000000000000000000000000000000000000000000000836146dc565b612710613e8f838561542a565b610d7a9190615441565b613ed16040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b5f81831161404a57505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c01000000000000000000000000000000000000000000000000000000008316900361404857815f036140425780548310614001576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115614002575b506113c2565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f5114166140c557803d853b1517106140c5576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104ed5763b12d13eb5f526004601cfd5b60605f610d7a836146e8565b6060815f01805480602002602001604051908101604052809291908181526020015f905b828210156141c0578382905f5260205f2001805461413590614bd0565b80601f016020809104026020016040519081016040528092919081815260200182805461416190614bd0565b80156141ac5780601f10614183576101008083540402835291602001916141ac565b820191905f5260205f20905b81548152906001019060200180831161418f57829003601f168201915b505050505081526020019060010190614118565b505050509050919050565b60605f610d7a836004016140e8565b60606113c261131483614741565b34811115614219576142197ff4e95a41000000000000000000000000000000000000000000000000000000006112b8565b73ffffffffffffffffffffffffffffffffffffffff831661425d5761425d7f99ef0388000000000000000000000000000000000000000000000000000000006112b8565b73ffffffffffffffffffffffffffffffffffffffff821661228b5761228b7f4bb7c205000000000000000000000000000000000000000000000000000000006112b8565b8115614334576040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a908490614301908990899089908890600401615479565b5f604051808303818588803b158015614318575f5ffd5b505af115801561432a573d5f5f3e3d5ffd5b505050505061162a565b6040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a9061438c908890889088908790600401615479565b5f604051808303815f87803b1580156143a3575f5ffd5b505af11580156112ac573d5f5f3e3d5ffd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f829003614411576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146145085780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa46001016144d2565b50815f03614542576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906145c49033908990889088906004016154b3565b6020604051808303815f875af192505050801561461c575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820190925261461991810190615503565b60015b614691573d808015614649576040519150601f19603f3d011682016040523d82523d5f602084013e61464e565b606091505b5080515f03614689576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611084565b815f528060045260245ffd5b6060815f0180548060200260200160405190810160405280929190818152602001828054801561473557602002820191905f5260205f20905b815481526020019060010190808311614721575b50505050509050919050565b604051815160051b8101602001818084035b808201518252816020019150828203614753575060405250919050565b50805461477c90614bd0565b5f825580601f1061478b575050565b601f0160209004905f5260205f2090810190610bbe91905b808211156147b6575f81556001016147a3565b5090565b5f5f83601f8401126147ca575f5ffd5b50813567ffffffffffffffff8111156147e1575f5ffd5b6020830191508360208285010111156147f8575f5ffd5b9250929050565b5f5f60208385031215614810575f5ffd5b823567ffffffffffffffff811115614826575f5ffd5b614832858286016147ba565b90969095509350505050565b5f6020828403121561484e575f5ffd5b5035919050565b5f5f5f60408486031215614867575f5ffd5b833560028110614875575f5ffd5b9250602084013567ffffffffffffffff811115614890575f5ffd5b61489c868287016147ba565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610bbe575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561491a5761491a6148ca565b60405290565b60405160e0810167ffffffffffffffff8111828210171561491a5761491a6148ca565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561498a5761498a6148ca565b604052919050565b5f67ffffffffffffffff8211156149ab576149ab6148ca565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f606082840312156149e7575f5ffd5b6149ef6148f7565b905081356149fc816148a9565b81526020820135614a0c816148a9565b6020820152604082013567ffffffffffffffff811115614a2a575f5ffd5b8201601f81018413614a3a575f5ffd5b8035614a4d614a4882614992565b614943565b818152856020838501011115614a61575f5ffd5b816020840160208301375f6020838301015280604085015250505092915050565b5f5f60408385031215614a93575f5ffd5b8235614a9e816148a9565b9150602083013567ffffffffffffffff811115614ab9575f5ffd5b614ac5858286016149d7565b9150509250929050565b5f60208284031215614adf575f5ffd5b8135610d7a816148a9565b67ffffffffffffffff81168114610bbe575f5ffd5b5f60208284031215614b0f575f5ffd5b8135610d7a81614aea565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610d7a6020830184614b1a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b8051614bb0816148a9565b919050565b5f60208284031215614bc5575f5ffd5b8151610d7a816148a9565b600181811c90821680614be457607f821691505b602082108103612024577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f82111561228b57805f5260205f20601f840160051c81016020851015614c405750805b601f840160051c820191505b818110156109f2575f8155600101614c4c565b815167ffffffffffffffff811115614c7957614c796148ca565b614c8d81614c878454614bd0565b84614c1b565b6020601f821160018114614cde575f8315614ca85750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556109f2565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614d2b5787850151825560209485019460019092019101614d0b565b5084821015614d6757868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614d86575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156113c2576113c2614d8d565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f60408301516060808401526110846080840182614b1a565b818103818111156113c2576113c2614d8d565b805161ffff81168114614bb0575f5ffd5b805160038110614bb0575f5ffd5b80518015158114614bb0575f5ffd5b80516fffffffffffffffffffffffffffffffff81168114614bb0575f5ffd5b5f60e0828403128015614e98575f5ffd5b50614ea1614920565b8251614eac816148a9565b8152602083015165ffffffffffff81168114614ec6575f5ffd5b6020820152614ed760408401614e3a565b6040820152614ee860608401614e4b565b6060820152614ef960808401614e59565b6080820152614f0a60a08401614e68565b60a0820152614f1b60c08401614ba5565b60c08201529392505050565b5f60208284031215614f37575f5ffd5b8151610d7a81614aea565b5f60208284031215614f52575f5ffd5b610d7a82614e59565b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f614fcd6080830184614b1a565b9695505050505050565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614bb0575f5ffd5b5f615013614a4884614992565b9050828152838383011115615026575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f6080858703121561504f575f5ffd5b61505885614fd7565b93506020850151615068816148a9565b6040860151909350615079816148a9565b606086015190925067ffffffffffffffff811115615095575f5ffd5b8501601f810187136150a5575f5ffd5b6150b487825160208401615006565b91505092959194509250565b5f602082840312156150d0575f5ffd5b815167ffffffffffffffff8111156150e6575f5ffd5b8201606081850312156150f7575f5ffd5b6150ff6148f7565b815161510a816148a9565b8152602082015161511a816148a9565b6020820152604082015167ffffffffffffffff811115615138575f5ffd5b80830192505084601f83011261514c575f5ffd5b61515b85835160208501615006565b6040820152949350505050565b67ffffffffffffffff81811683821601908111156113c2576113c2614d8d565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036151b8576151b8614d8d565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b80516020808301519190811015612024577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561529b57835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101615267565b505060409390930193909352509392505050565b5f60808284031280156152c0575f5ffd5b506040516080810167ffffffffffffffff811182821017156152e4576152e46148ca565b60405282516152f2816148a9565b81526020830151615302816148a9565b60208201526040838101519082015261531d60608401614e59565b60608201529392505050565b5f6004841061535f577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b838252604060208301526110846040830184614b1a565b5f60208284031215615386575f5ffd5b815167ffffffffffffffff81111561539c575f5ffd5b8201601f810184136153ac575f5ffd5b805167ffffffffffffffff8111156153c6576153c66148ca565b8060051b6153d660208201614943565b918252602081840181019290810190878411156153f1575f5ffd5b6020850194505b8385101561541f578451925061540d836148a9565b828252602094850194909101906153f8565b979650505050505050565b80820281158282048414176113c2576113c2614d8d565b5f82615474577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152826040820152608060608201525f614fcd6080830184614b1a565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f614fcd6080830184614b1a565b5f60208284031215615513575f5ffd5b610d7a82614fd756";
|
|
2335
|
+
"0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b6155cd806100ca5f395ff3fe608060405260043610610178575f3560e01c806379dda585116100d157806393b13cb71161007c578063a5a4103111610057578063a5a41031146103f5578063df9a9fe614610409578063e847abdd14610428575f5ffd5b806393b13cb7146103a157806395d600c8146103c257806397fb7c1e146103d6575f5ffd5b80638120f0ba116100ac5780638120f0ba1461034257806383f3f0dc1461036f5780638c625b061461038e575f5ffd5b806379dda585146102fc5780637c9669ac146103105780637d0567c414610323575f5ffd5b80635803909f11610131578063686f76841161010c578063686f7684146102b657806369d5f38a146102c9578063706b8e09146102e8575f5ffd5b80635803909f1461023f5780635becd24a1461025e578063657e45e81461027d575f5ffd5b806317c957091161016157806317c95709146101c4578063280a47c7146102185780633e9491a21461022b575f5ffd5b80630ef1be5f1461017c5780631278076a1461019d575b5f5ffd5b348015610187575f5ffd5b5061019b6101963660046148fe565b61043c565b005b3480156101a8575f5ffd5b506101b16104f1565b6040519081526020015b60405180910390f35b3480156101cf575f5ffd5b506101b16101de36600461493d565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b61019b610226366004614954565b610566565b348015610236575f5ffd5b506101b161063c565b34801561024a575f5ffd5b506101b161025936600461493d565b6106a6565b348015610269575f5ffd5b5061019b61027836600461493d565b61071e565b348015610288575f5ffd5b50610291610898565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101bb565b61019b6102c4366004614b81565b6108a6565b3480156102d4575f5ffd5b5061019b6102e336600461493d565b6108ea565b3480156102f3575f5ffd5b506101b16109f9565b348015610307575f5ffd5b50610291610a02565b61019b61031e36600461493d565b610a41565b34801561032e575f5ffd5b5061019b61033d366004614bce565b610a84565b34801561034d575f5ffd5b50610356610b3e565b60405167ffffffffffffffff90911681526020016101bb565b34801561037a575f5ffd5b5061019b610389366004614bfe565b610b47565b61019b61039c366004614bce565b610bc1565b3480156103ac575f5ffd5b506103b5610bf4565b6040516101bb9190614c65565b3480156103cd575f5ffd5b506101b1610bfe565b3480156103e1575f5ffd5b5061019b6103f036600461493d565b610c27565b348015610400575f5ffd5b506101b1610d11565b348015610414575f5ffd5b5061019b610423366004614bce565b610d81565b348015610433575f5ffd5b50610291610e5a565b610444610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146104af576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104ed82828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610f5392505050565b5050565b5f5f6105466105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610f7e565b9050805f03610556575f91505090565b61055f8161108c565b5092915050565b3068929eee149b4bd2126854036105845763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8360018111156105a3576105a3614c77565b036105c6575f6105b582840184614bce565b90506105c0816110aa565b5061062b565b60018360018111156105da576105da614c77565b03610602575f806105ed83850185614b81565b915091506105fb8282611190565b505061062b565b61062b7f3be01969000000000000000000000000000000000000000000000000000000006112b8565b3868929eee149b4bd2126855505050565b5f5f6106466112c0565b905073ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461069f5761069973ffffffffffffffffffffffffffffffffffffffff821630611317565b91505090565b4791505090565b5f5f6106fc836106f77f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b61134a565b9050805f0361070d57505f92915050565b6107168161108c565b509392505050565b610726610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461078c576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b5f6107b57fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b905080158015906107c557508082115b156107f3576107f37fc3983b91000000000000000000000000000000000000000000000000000000006112b8565b6107fc826113c8565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60782905560405182907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b5f6108a16112c0565b905090565b3068929eee149b4bd2126854036108c45763ab143c065f526004601cfd5b3068929eee149b4bd21268556108da8282611190565b3868929eee149b4bd21268555050565b6108f2610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610958576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156109e0575f5ffd5b505af11580156109f2573d5f5f3e3d5ffd5b5050505050565b5f6108a161146c565b5f6108a17fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd212685403610a5f5763ab143c065f526004601cfd5b3068929eee149b4bd2126855610a753382611537565b3868929eee149b4bd212685550565b610a8c610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610af2576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610afb81611740565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f14b7cb0621729ad169b573c8b04f2ba383bf36b3724f2e2809df566f45df16ec905f90a250565b5f6108a1611956565b610b4f610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bb5576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610bbe81611a16565b50565b3068929eee149b4bd212685403610bdf5763ab143c065f526004601cfd5b3068929eee149b4bd2126855610a75816110aa565b60606108a1611a91565b5f6108a17fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610c2f610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c95576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610ce981610ce47f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b611b43565b610bbe817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f5f610d616105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050805f03610d71575f91505090565b610d7a8161108c565b9392505050565b610d89610e99565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610def576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024016104a6565b610df881611b74565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6108a17fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610f2f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106999190614cb4565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104ed8282614d5e565b5f5f610fbe7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b905073ffffffffffffffffffffffffffffffffffffffff8116610fe357505f92915050565b5f610fec61146c565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018290526024810186905290915073ffffffffffffffffffffffffffffffffffffffff831690635cf4ee91906044015b602060405180830381865afa158015611060573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110849190614e75565b949350505050565b5f5f61109783611cad565b90506110a38184614eb9565b9150915091565b6110b381611da9565b5f6110bc611e9f565b90505f6110c76112c0565b90505f6110d8828460200151611f65565b90505f61111f856111197f8c625b06d047a4c1ca46cdab06b7e14ce79b486f06c67a1b220fa942669ca49b338960405180602001604052805f81525061202a565b8461205c565b90505f5f61113387338589602001516121f3565b915091508061118757811561117d57856040015161115b5761115683885f61226e565b611165565b6111658387612290565b61116f83886123d7565b61117887612427565b611187565b6111878388612536565b50505050505050565b61119982611da9565b5f6111a2611e9f565b90505f6111ad6112c0565b90505f6111be828460200151611f65565b90506111ca858561258d565b5f846040516020016111dc9190614ecc565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f6112448861123e8433838861202a565b8661205c565b90505f5f6112588a33858b602001516121f3565b91509150806112ac5781156112a25787604001516112805761127b838b5f61226e565b61128a565b61128a8389612612565b611294838b6123d7565b61129d8a612427565b6112ac565b6112ac838b612536565b50505050505050505050565b805f5260045ffd5b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1680611314575073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee5b90565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f8281527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60960205260408120547fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090826113a385610f7e565b9050815f036113b65792506113c2915050565b81811890821102189150505b92915050565b6113d0610a02565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611418573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061143c9190614e75565b811115610bbe57610bbe7fc3983b91000000000000000000000000000000000000000000000000000000006112b8565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff16156114c35760070154919050565b6114cb610a02565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611513573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106999190614e75565b5f611541826127a5565b905073ffffffffffffffffffffffffffffffffffffffff8116611587576115877f5fbd5717000000000000000000000000000000000000000000000000000000006112b8565b5f611590611956565b67ffffffffffffffff1690505f6115ec846106f77f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f6115f76112c0565b9050815f036116325761162073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee3088346127b0565b61162a8584612802565b505050505050565b5f61163c8361108c565b5090507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8316016116dd57348111156116ad576116ad7f34a7a93d000000000000000000000000000000000000000000000000000000006112b8565b6116b78284612930565b505f6116c38234614f26565b905080156116d7576116d783308a846127b0565b5061172c565b3415611715576040517fbf39a02400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6117208288836129bb565b61172a8284612930565b505b6117368582612a9f565b6111878685612802565b73ffffffffffffffffffffffffffffffffffffffff8116158061178c575073ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee145b6118f057604080517f4645455f545950452e4d454d4245525348495000000000000000000000000000602080830191909152606084901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603383015282516027818403018152604790920190925280519101205f6118407fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1663146516df836040518263ffffffff1660e01b815260040161187a91815260200190565b60e060405180830381865afa158015611895573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118b99190614f86565b905080608001516118ed576118ed7f212be89d000000000000000000000000000000000000000000000000000000006112b8565b50505b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f819003611314576119aa610a02565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119f2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a19190615026565b611a1f81612b3d565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c018054611ac290614ccf565b80601f0160208091040260200160405190810160405280929190818152602001828054611aee90614ccf565b8015611b395780601f10611b1057610100808354040283529160200191611b39565b820191905f5260205f20905b815481529060010190602001808311611b1c57829003601f168201915b5050505050905090565b808210156104ed576104ed7fccc9aa2e000000000000000000000000000000000000000000000000000000006112b8565b73ffffffffffffffffffffffffffffffffffffffff8116611bb857611bb87f0e88bf4b000000000000000000000000000000000000000000000000000000006112b8565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa158015611c5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c809190615041565b610bbe57610bbe7f0e88bf4b000000000000000000000000000000000000000000000000000000006112b8565b5f5f611cbf611cba6112c0565b612c33565b9050611cff7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517fecad870d000000000000000000000000000000000000000000000000000000008152600481018390525f602482018190526044820186905260806064830152608482015273ffffffffffffffffffffffffffffffffffffffff919091169063ecad870d9060a401602060405180830381865afa158015611d85573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7a9190614e75565b73ffffffffffffffffffffffffffffffffffffffff8116611ded57611ded7f5fbd5717000000000000000000000000000000000000000000000000000000006112b8565b5f611e167fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611e71575080611e6e7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104ed576104ed7f7efcdb49000000000000000000000000000000000000000000000000000000006112b8565b611ec260405180606001604052805f81526020015f81526020015f151581525090565b5f611f0e7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611f1a82610f7e565b90505f611f2561146c565b9050815f03611f345750505090565b81845282811115611f455750505090565b5f611f4f8361108c565b5060016040870152602086015250929392505050565b5f7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff841601611fdb5781341015611fd457611fd47fb1296a8a000000000000000000000000000000000000000000000000000000006112b8565b50346113c2565b3415612013576040517fbf39a02400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8115612024576120248333846129bb565b50919050565b606084848484604051602001612043949392919061505a565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606085901b1660208201524360348201525f90819060540160405160208183030381529060405280519060200120905061213b8161210f83886120c286612d0e565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040812080549294507f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092909190829061219c90614ccf565b905011156121cd576121cd7ff82e65c3000000000000000000000000000000000000000000000000000000006112b8565b806121d88782614d5e565b5084156121e9576121e98486612d54565b5050509392505050565b5f5f5f6122346040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250612dbc565b90506122408188612f54565b156122525760015f9250925050612265565b61225f818888888861316f565b92509250505b94509492505050565b61227883826132db565b61228183613339565b61228b8282612a9f565b505050565b5f5f61229b84613391565b80546122a690614ccf565b80601f01602080910402602001604051908101604052809291908181526020018280546122d290614ccf565b801561231d5780601f106122f45761010080835404028352916020019161231d565b820191905f5260205f20905b81548152906001019060200180831161230057829003601f168201915b5050505050806020019051810190612335919061513b565b50919350909150507fffffffff0000000000000000000000000000000000000000000000000000000082167f8c625b0600000000000000000000000000000000000000000000000000000000146123af576123af7fda6153bd000000000000000000000000000000000000000000000000000000006112b8565b6123c16123ba6112c0565b8451612930565b506123d18482856020015161226e565b50505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040902054801561228b5761241483826132db565b61228b61241f6112c0565b3084846127b0565b5f6124507f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005490565b90506124d4816124a46105417f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b6124df8260016133e4565b6124f0816124eb611956565b612802565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b61253f82613339565b61254982826123d7565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b8173ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614806125e45750602081015173ffffffffffffffffffffffffffffffffffffffff1633145b156104ed576104ed7f5fbd5717000000000000000000000000000000000000000000000000000000006112b8565b5f5f5f5f61261f86613391565b805461262a90614ccf565b80601f016020809104026020016040519081016040528092919081815260200182805461265690614ccf565b80156126a15780601f10612678576101008083540402835291602001916126a1565b820191905f5260205f20905b81548152906001019060200180831161268457829003601f168201915b50505050508060200190518101906126b9919061513b565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f76840000000000000000000000000000000000000000000000000000000014612735576127357fda6153bd000000000000000000000000000000000000000000000000000000006112b8565b5f8180602001905181019061274a91906151bf565b90505f6127556112c0565b905061276481885f0151612930565b50815187516127749183916133fd565b61278c8186846020015185604001518b5f0151613520565b61279b8885896020015161226e565b5050505050505050565b5f6113c28183613620565b80156123d15773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146127f8576127f38484848461362b565b6123d1565b6123d182826136bf565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff16801580159061284857505f5b15612882576040517ff7d2131a000000000000000000000000000000000000000000000000000000008152600481018590526024016104a6565b5f428267ffffffffffffffff1611156128a65761289f8483615267565b90506128b3565b6128b08442615267565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b5f61293a82611cad565b90506113c28330612949610a02565b73ffffffffffffffffffffffffffffffffffffffff16634ccb20c06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612991573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129b59190614cb4565b846127b0565b7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff8416016129fd57505050565b5f612a1e73ffffffffffffffffffffffffffffffffffffffff851630611317565b9050612a4273ffffffffffffffffffffffffffffffffffffffff85168430856136df565b5f612a6373ffffffffffffffffffffffffffffffffffffffff861630611317565b905082612a708383614f26565b10156109f2576109f27fb1296a8a000000000000000000000000000000000000000000000000000000006112b8565b805f03612aaa575050565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612ac76112c0565b73ffffffffffffffffffffffffffffffffffffffff1614612ae6575050565b5f612aef613741565b90505f612b1e825f85604051602001612b0a91815260200190565b604051602081830303815290604052613814565b9050612b2b82858361386a565b6123d182612b37610e99565b8361386a565b5f612b46610a02565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b8e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612bb29190615026565b67ffffffffffffffff1690508167ffffffffffffffff165f03612bf857612bf87f82323d2e000000000000000000000000000000000000000000000000000000006112b8565b808267ffffffffffffffff1611156104ed576104ed7f82323d2e000000000000000000000000000000000000000000000000000000006112b8565b5f7fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff831601612c9857507f7bf182fc45d83735258e0907e7fbae2ced2b54cf5d36bf3f9c30097bec3e88f5919050565b604080517f4645455f545950452e4d454d4245525348495000000000000000000000000000602080830191909152606085901b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016603383015282516027818403018152604790920190925280519101206113c2565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0060208190526040822080549083612d4983615287565b909155509392505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291612db2908490614eb9565b9091555050505050565b60605f612dc76138e9565b80519091505f8167ffffffffffffffff811115612de657612de66149c9565b604051908082528060200260200182016040528015612e4957816020015b612e366040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612e045790505b50855160208701209091505f90815b84811015612f48575f5f5f5f612e868a8681518110612e7957612e796152be565b6020026020010151613914565b93509350935093505f5b8251811015612f385786838281518110612eac57612eac6152be565b60200260200101518051906020012003612f30576040518060a001604052808c8881518110612edd57612edd6152be565b60200260200101518152602001868152602001851515815260200184815260200183815250898981518110612f1457612f146152be565b602002602001018190525087612f2990615287565b9750612f38565b600101612e90565b5050505050806001019050612e58565b50508152949350505050565b5f5f612f5f83613a00565b90505f5b845181101561316557848181518110612f7e57612f7e6152be565b60200260200101516040015161315d575f5b858281518110612fa257612fa26152be565b6020026020010151608001515181101561315b575f868381518110612fc957612fc96152be565b6020026020010151608001518281518110612fe657612fe66152be565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015613039573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061305d9190615041565b15801561314057508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e537061636500000000000000000000000000000000000000000000008152506040516020016130cb91906152eb565b6040516020818303038152906040526130e390615301565b6040518463ffffffff1660e01b815260040161310193929190615343565b602060405180830381865afa15801561311c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131409190615041565b156131525760019450505050506113c2565b50600101612f90565b505b600101612f63565b505f949350505050565b5f5f5f5f5b88518110156132cc5788818151811061318f5761318f6152be565b6020026020010151604001516132c4575f5b8982815181106131b3576131b36152be565b602002602001015160800151518110156132c2575f8a83815181106131da576131da6152be565b60200260200101516080015182815181106131f7576131f76152be565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa15801561324a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061326e9190615041565b156132b9576132b08a8a8a848f888151811061328c5761328c6152be565b60200260200101515f015161329f6112c0565b8a6132aa578d613c74565b5f613c74565b60019350600194505b506001016131a1565b505b600101613174565b505f9250509550959350505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291612db2908490614f26565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906104ed905f61486f565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604081207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0090610d7a565b6104ed828260405180602001604052805f815250613fbf565b73ffffffffffffffffffffffffffffffffffffffff821661341d57505050565b5f61345c7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301529190911690635cb4f54890602401608060405180830381865afa1580156134c8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134ec91906153ae565b905080604001515f036134ff5750505050565b5f61350e838360400151614087565b90506109f285308460200151846127b0565b815115613590575f613531836140d3565b604081015190915073ffffffffffffffffffffffffffffffffffffffff16158061355d57506020810151155b1561356857506109f2565b5f613577838360200151614087565b905061358987308460400151846127b0565b50506109f2565b73ffffffffffffffffffffffffffffffffffffffff8316156109f2578373ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156109f2575f6136128261360d7faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b614087565b905061162a863086846127b0565b5f610d7a838361417b565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156123d15773ffffffffffffffffffffffffffffffffffffffff8316301461369e576127f373ffffffffffffffffffffffffffffffffffffffff85168484846136df565b6123d173ffffffffffffffffffffffffffffffffffffffff851683836142b6565b6104ed73ffffffffffffffffffffffffffffffffffffffff831682614309565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f51141661373357803d873b15171061373357637939f4245f526004601cfd5b505f60605260405250505050565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa1580156137f0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a19190614cb4565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde906110459086908690600401615428565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b1580156138d7575f5ffd5b505af1158015611187573d5f5f3e3d5ffd5b60606108a17f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01614322565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604081208054606092918391829190819061395690614ccf565b80601f016020809104026020016040519081016040528092919081815260200182805461398290614ccf565b80156139cd5780601f106139a4576101008083540402835291602001916139cd565b820191905f5260205f20905b8154815290600101906020018083116139b057829003601f168201915b5050505060018301549196505060ff1693506139eb6002820161432e565b92506139f681614405565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015613a97573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613adc9190810190615450565b905080515f03613c4d576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015613b53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b779190614cb4565b905073ffffffffffffffffffffffffffffffffffffffff811615613c4b576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015613c03573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613c489190810190615450565b91505b505b613c5681614414565b92506001835101835283604051526020604051016040525050919050565b73ffffffffffffffffffffffffffffffffffffffff8716613cb857613cb87f99ef0388000000000000000000000000000000000000000000000000000000006112b8565b73ffffffffffffffffffffffffffffffffffffffff8416613cfc57613cfc7f4bb7c205000000000000000000000000000000000000000000000000000000006112b8565b5f8581527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00919060ff16613dc25780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560038101805473ffffffffffffffffffffffffffffffffffffffff88167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790555b81546040805173ffffffffffffffffffffffffffffffffffffffff8c811660208301529181018a905260608101889052868216608082015260a081018690528a821660c08201529116905f9060e001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff871601613f08576040517f6fcc618800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690636fcc6188908790613ed5906002908690600401615504565b5f604051808303818588803b158015613eec575f5ffd5b505af1158015613efe573d5f5f3e3d5ffd5b5050505050613fb2565b8415613f2f57613f2f73ffffffffffffffffffffffffffffffffffffffff87168387614422565b6040517f6fcc618800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690636fcc618890613f84906002908590600401615504565b5f604051808303815f87803b158015613f9b575f5ffd5b505af1158015613fad573d5f5f3e3d5ffd5b505050505b5050505050505050505050565b613fc983836144b4565b73ffffffffffffffffffffffffffffffffffffffff83163b1561228b577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b61401e5f868380600101945086614669565b614054576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81811061400c57817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0054146109f2575f5ffd5b5f6127108211156140bc576140bc7f197f196200000000000000000000000000000000000000000000000000000000836147db565b6127106140c98385615515565b610d7a919061552c565b61410b6040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b5f81831161428457505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c01000000000000000000000000000000000000000000000000000000008316900361428257815f0361427c578054831061423b576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f8181526004840160205260409020549092909150811561423c575b506113c2565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f5114166142ff57803d853b1517106142ff576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104ed5763b12d13eb5f526004601cfd5b60605f610d7a836147e7565b6060815f01805480602002602001604051908101604052809291908181526020015f905b828210156143fa578382905f5260205f2001805461436f90614ccf565b80601f016020809104026020016040519081016040528092919081815260200182805461439b90614ccf565b80156143e65780601f106143bd576101008083540402835291602001916143e6565b820191905f5260205f20905b8154815290600101906020018083116143c957829003601f168201915b505050505081526020019060010190614352565b505050509050919050565b60605f610d7a83600401614322565b60606113c261131483614840565b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f5114166142ff57803d853b1517106142ff575f6034526f095ea7b30000000000000000000000005f525f38604460105f885af1508160345260205f604460105f885af190508060015f5114166142ff57803d853b1517106142ff57633e3f8f735f526004601cfd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f829003614510576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146146075780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa46001016145d1565b50815f03614641576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906146c3903390899088908890600401615564565b6020604051808303815f875af192505050801561471b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252614718918101906155b4565b60015b614790573d808015614748576040519150601f19603f3d011682016040523d82523d5f602084013e61474d565b606091505b5080515f03614788576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611084565b815f528060045260245ffd5b6060815f0180548060200260200160405190810160405280929190818152602001828054801561483457602002820191905f5260205f20905b815481526020019060010190808311614820575b50505050509050919050565b604051815160051b8101602001818084035b808201518252816020019150828203614852575060405250919050565b50805461487b90614ccf565b5f825580601f1061488a575050565b601f0160209004905f5260205f2090810190610bbe91905b808211156148b5575f81556001016148a2565b5090565b5f5f83601f8401126148c9575f5ffd5b50813567ffffffffffffffff8111156148e0575f5ffd5b6020830191508360208285010111156148f7575f5ffd5b9250929050565b5f5f6020838503121561490f575f5ffd5b823567ffffffffffffffff811115614925575f5ffd5b614931858286016148b9565b90969095509350505050565b5f6020828403121561494d575f5ffd5b5035919050565b5f5f5f60408486031215614966575f5ffd5b833560028110614974575f5ffd5b9250602084013567ffffffffffffffff81111561498f575f5ffd5b61499b868287016148b9565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610bbe575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715614a1957614a196149c9565b60405290565b60405160e0810167ffffffffffffffff81118282101715614a1957614a196149c9565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715614a8957614a896149c9565b604052919050565b5f67ffffffffffffffff821115614aaa57614aaa6149c9565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f60608284031215614ae6575f5ffd5b614aee6149f6565b90508135614afb816149a8565b81526020820135614b0b816149a8565b6020820152604082013567ffffffffffffffff811115614b29575f5ffd5b8201601f81018413614b39575f5ffd5b8035614b4c614b4782614a91565b614a42565b818152856020838501011115614b60575f5ffd5b816020840160208301375f6020838301015280604085015250505092915050565b5f5f60408385031215614b92575f5ffd5b8235614b9d816149a8565b9150602083013567ffffffffffffffff811115614bb8575f5ffd5b614bc485828601614ad6565b9150509250929050565b5f60208284031215614bde575f5ffd5b8135610d7a816149a8565b67ffffffffffffffff81168114610bbe575f5ffd5b5f60208284031215614c0e575f5ffd5b8135610d7a81614be9565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610d7a6020830184614c19565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b8051614caf816149a8565b919050565b5f60208284031215614cc4575f5ffd5b8151610d7a816149a8565b600181811c90821680614ce357607f821691505b602082108103612024577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f82111561228b57805f5260205f20601f840160051c81016020851015614d3f5750805b601f840160051c820191505b818110156109f2575f8155600101614d4b565b815167ffffffffffffffff811115614d7857614d786149c9565b614d8c81614d868454614ccf565b84614d1a565b6020601f821160018114614ddd575f8315614da75750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556109f2565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614e2a5787850151825560209485019460019092019101614e0a565b5084821015614e6657868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614e85575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156113c2576113c2614e8c565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f60408301516060808401526110846080840182614c19565b818103818111156113c2576113c2614e8c565b805161ffff81168114614caf575f5ffd5b805160038110614caf575f5ffd5b80518015158114614caf575f5ffd5b80516fffffffffffffffffffffffffffffffff81168114614caf575f5ffd5b5f60e0828403128015614f97575f5ffd5b50614fa0614a1f565b8251614fab816149a8565b8152602083015165ffffffffffff81168114614fc5575f5ffd5b6020820152614fd660408401614f39565b6040820152614fe760608401614f4a565b6060820152614ff860808401614f58565b608082015261500960a08401614f67565b60a082015261501a60c08401614ca4565b60c08201529392505050565b5f60208284031215615036575f5ffd5b8151610d7a81614be9565b5f60208284031215615051575f5ffd5b610d7a82614f58565b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f6150cc6080830184614c19565b9695505050505050565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614caf575f5ffd5b5f615112614b4784614a91565b9050828152838383011115615125575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f6080858703121561514e575f5ffd5b615157856150d6565b93506020850151615167816149a8565b6040860151909350615178816149a8565b606086015190925067ffffffffffffffff811115615194575f5ffd5b8501601f810187136151a4575f5ffd5b6151b387825160208401615105565b91505092959194509250565b5f602082840312156151cf575f5ffd5b815167ffffffffffffffff8111156151e5575f5ffd5b8201606081850312156151f6575f5ffd5b6151fe6149f6565b8151615209816149a8565b81526020820151615219816149a8565b6020820152604082015167ffffffffffffffff811115615237575f5ffd5b80830192505084601f83011261524b575f5ffd5b61525a85835160208501615105565b6040820152949350505050565b67ffffffffffffffff81811683821601908111156113c2576113c2614e8c565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036152b7576152b7614e8c565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b80516020808301519190811015612024577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b8181101561539a57835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101615366565b505060409390930193909352509392505050565b5f60808284031280156153bf575f5ffd5b506040516080810167ffffffffffffffff811182821017156153e3576153e36149c9565b60405282516153f1816149a8565b81526020830151615401816149a8565b60208201526040838101519082015261541c60608401614f58565b60608201529392505050565b5f6004841061543957615439614c77565b838252604060208301526110846040830184614c19565b5f60208284031215615460575f5ffd5b815167ffffffffffffffff811115615476575f5ffd5b8201601f81018413615486575f5ffd5b805167ffffffffffffffff8111156154a0576154a06149c9565b8060051b6154b060208201614a42565b918252602081840181019290810190878411156154cb575f5ffd5b6020850194505b838510156154f957845192506154e7836149a8565b828252602094850194909101906154d2565b979650505050505050565b5f6003841061543957615439614c77565b80820281158282048414176113c2576113c2614e8c565b5f8261555f577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f6150cc6080830184614c19565b5f602082840312156155c4575f5ffd5b610d7a826150d656";
|
|
2336
2336
|
|
|
2337
2337
|
type MembershipFacetConstructorParams =
|
|
2338
2338
|
| [signer?: Signer]
|
|
@@ -20,6 +20,10 @@ const _abi = [
|
|
|
20
20
|
],
|
|
21
21
|
stateMutability: "nonpayable",
|
|
22
22
|
},
|
|
23
|
+
{
|
|
24
|
+
type: "receive",
|
|
25
|
+
stateMutability: "payable",
|
|
26
|
+
},
|
|
23
27
|
{
|
|
24
28
|
type: "function",
|
|
25
29
|
name: "__EntitlementGated_init",
|
|
@@ -982,7 +986,7 @@ const _abi = [
|
|
|
982
986
|
] as const;
|
|
983
987
|
|
|
984
988
|
const _bytecode =
|
|
985
|
-
"0x608060405234801561000f575f5ffd5b50604051613a96380380613a9683398101604081905261002e9161011c565b610036610076565b7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0080546001600160a01b0319166001600160a01b03831617905550610149565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156100c2576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101561011957805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b5f6020828403121561012c575f5ffd5b81516001600160a01b0381168114610142575f5ffd5b9392505050565b613940806101565f395ff3fe6080604052600436106100c3575f3560e01c806392c399ff11610071578063caeb80881161004c578063caeb808814610206578063e58690f214610219578063ffbfd74d1461022c575f5ffd5b806392c399ff146101c1578063bef1bee1146101e0578063c1066f18146101f3575f5ffd5b80635bf0fec7116100a15780635bf0fec71461014957806368ab7dd6146101765780637adc9cbe146101a2575f5ffd5b8063069a3ee9146100c75780630fe44a21146100fc5780634739e80514610128575b5f5ffd5b3480156100d2575f5ffd5b506100e66100e1366004611fca565b61024b565b6040516100f391906120e2565b60405180910390f35b348015610107575f5ffd5b5061011b6101163660046121db565b610485565b6040516100f39190612247565b348015610133575f5ffd5b506101476101423660046122a9565b61057f565b005b348015610154575f5ffd5b506101686101633660046122f5565b6105c5565b6040519081526020016100f3565b348015610181575f5ffd5b50610195610190366004611fca565b610644565b6040516100f39190612339565b3480156101ad575f5ffd5b506101476101bc36600461249d565b6108f6565b3480156101cc575f5ffd5b506100e66101db3660046121db565b610965565b6101686101ee366004612500565b610993565b61016861020136600461257c565b610a46565b61016861021436600461257c565b610af7565b6101476102273660046122a9565b610b42565b348015610237575f5ffd5b5061016861024636600461257c565b610bde565b61026f60405180606001604052806060815260200160608152602001606081525090565b5f828152602081815260408083208151815460809481028201850190935260608101838152909491938593919285929185015b8282101561030a575f84815260209020604080518082019091529083018054829060ff1660028111156102d7576102d7611fe1565b60028111156102e8576102e8611fe1565b81529054610100900460ff1660209182015290825260019290920191016102a2565b50505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156103cd575f848152602090206040805160808101909152600484029091018054829060ff16600681111561037057610370611fe1565b600681111561038157610381611fe1565b8152600182810154602080840191909152600284015473ffffffffffffffffffffffffffffffffffffffff16604084015260039093015460609092019190915291835292019101610336565b50505050815260200160028201805480602002602001604051908101604052809291908181526020015f905b82821015610477575f8481526020902060408051606081019091529083018054829060ff16600281111561042f5761042f611fe1565b600281111561044057610440611fe1565b8152905460ff61010082048116602080850191909152620100009092041660409092019190915290825260019290920191016103f9565b505050915250909392505050565b60408051808201909152606080825260208201525f828152602081905260409020541561051e5760408051608081018252600f8183019081527f52756c65456e7469746c656d656e740000000000000000000000000000000000606083015281525f8481526020818152908390209251919281840192610505920161268a565b6040516020818303038152906040528152509050610579565b6040805160808101825260118183019081527f52756c65456e7469746c656d656e745632000000000000000000000000000000606083015281525f8481526001602090815290839020925191928184019261050592016127c7565b92915050565b3068929eee149b4bd21268540361059d5763ab143c065f526004601cfd5b3068929eee149b4bd21268556105b4838383610cda565b3868929eee149b4bd2126855505050565b5f82815260208190526040812082906105de8282612e88565b50506040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003260601b1660208201524360348201525f9060540160405160208183030381529060405280519060200120905061063d3382308761108d565b9392505050565b61066860405180606001604052806060815260200160608152602001606081525090565b5f8281526001602090815260408083208151815460809481028201850190935260608101838152909491938593919285929185015b82821015610705575f84815260209020604080518082019091529083018054829060ff1660028111156106d2576106d2611fe1565b60028111156106e3576106e3611fe1565b81529054610100900460ff16602091820152908252600192909201910161069d565b50505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b8282101561084c575f848152602090206040805160808101909152600484029091018054829060ff16600681111561076b5761076b611fe1565b600681111561077c5761077c611fe1565b815260018201546020820152600282015473ffffffffffffffffffffffffffffffffffffffff1660408201526003820180546060909201916107bd9061277c565b80601f01602080910402602001604051908101604052809291908181526020018280546107e99061277c565b80156108345780601f1061080b57610100808354040283529160200191610834565b820191905f5260205f20905b81548152906001019060200180831161081757829003601f168201915b50505050508152505081526020019060010190610731565b50505050815260200160028201805480602002602001604051908101604052809291908181526020015f905b82821015610477575f8481526020902060408051606081019091529083018054829060ff1660028111156108ae576108ae611fe1565b60028111156108bf576108bf611fe1565b8152905460ff6101008204811660208085019190915262010000909204166040909201919091529082526001929092019101610878565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610959576040517f77a399b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610962816114d5565b50565b61098960405180606001604052806060815260200160608152602001606081525090565b61063d8383611560565b5f5f5b838110156109de578260015f8787858181106109b4576109b4612f52565b9050602002013581526020019081526020015f2081816109d49190613353565b5050600101610996565b506040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003260601b1660208201524360348201525f90605401604051602081830303815290604052805190602001209050610a3d86338388886116cd565b95945050505050565b5f805b83811015610a9057825f5f878785818110610a6657610a66612f52565b9050602002013581526020019081526020015f208181610a869190612e88565b5050600101610a49565b506040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003260601b1660208201524360348201525f90605401604051602081830303815290604052805190602001209050610aef33308388886116cd565b949350505050565b5f805b83811015610a90578260015f878785818110610b1857610b18612f52565b9050602002013581526020019081526020015f208181610b389190613353565b5050600101610afa565b7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005473ffffffffffffffffffffffffffffffffffffffff163314610ba957610ba97fb2395d7000000000000000000000000000000000000000000000000000000000611743565b3068929eee149b4bd212685403610bc75763ab143c065f526004601cfd5b3068929eee149b4bd21268556105b483838361174b565b5f805b83811015610c29578260015f878785818110610bff57610bff612f52565b9050602002013581526020019081526020015f208181610c1f9190613353565b5050600101610be1565b506040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003260601b1660208201524360348201525f90605401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090505f5b84811015610cd157610cc9338330898986818110610cbd57610cbd612f52565b9050602002013561108d565b600101610c9d565b50949350505050565b5f8381527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009190610100900473ffffffffffffffffffffffffffffffffffffffff161580610d545750805460ff16155b15610d8b576040517ff5ab487200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f84815260028201602052604090205460ff1615610dd5576040517f7912b73900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8481526001820160205260408120805482918291825b81811015610f5f575f838281548110610e0757610e07612f52565b5f91825260209091200180549091503373ffffffffffffffffffffffffffffffffffffffff90911603610ef4575f815474010000000000000000000000000000000000000000900460ff166002811115610e6357610e63611fe1565b14610e9a576040517f47592a4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80548a9082907fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000836002811115610eea57610eea611fe1565b0217905550600196505b805474010000000000000000000000000000000000000000900460ff166001816002811115610f2557610f25611fe1565b03610f3557866001019650610f55565b6002816002811115610f4957610f49611fe1565b03610f55578560010195505b5050600101610dec565b5084610f97576040517f8223a7e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fa26002826133fa565b841180610fb85750610fb56002826133fa565b83115b15611081575f898152600287016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055838511611003576002611006565b60015b90505f6110128c611814565b9050600182600281111561102857611028611fe1565b14806110315750805b1561106f578b7fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c633836040516110669190613432565b60405180910390a25b801561107e5761107e8c6118d1565b50505b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84166110d1576110d17f99ef038800000000000000000000000000000000000000000000000000000000611743565b5f8381527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00919060ff161561119a5760048101545f5b81811015611197578483600401828154811061114f5761114f612f52565b905f5260205f2001540361118f576040517f0d5a9ef800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600101611131565b50505b815473ffffffffffffffffffffffffffffffffffffffff166111be576111be6119f3565b81546040517f4f845445000000000000000000000000000000000000000000000000000000008152600560048201525f9173ffffffffffffffffffffffffffffffffffffffff1690634f845445906024015f60405180830381865afa158015611229573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261126e9190810190613526565b825490915060ff166112f657815460038301805473ffffffffffffffffffffffffffffffffffffffff8089167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179091558816610100027fffffffffffffffffffffff0000000000000000000000000000000000000000009091161760011782555b600482018054600181810183555f928352602080842090920187905583518784529085019091526040822090915b828110156114415781604051806040016040528086848151811061134a5761134a612f52565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020015f600281111561137f5761137f611fe1565b905281546001810183555f9283526020928390208251910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff909316928317825593830151929390929183917fffffffffffffffffffffff00000000000000000000000000000000000000000016177401000000000000000000000000000000000000000083600281111561142f5761142f611fe1565b02179055505050806001019050611324565b5084546040517f541da4e500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063541da4e59061149d908c908c908b9089906004016135bb565b5f604051808303815f87803b1580156114b4575f5ffd5b505af11580156114c6573d5f5f3e3d5ffd5b50505050505050505050505050565b6114fe7fd5fa71fa00000000000000000000000000000000000000000000000000000000611b2e565b7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b61158460405180606001604052806060815260200160608152602001606081525090565b5f8381527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00919060ff1661160e576040517ff5ab487200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038101546040517f069a3ee90000000000000000000000000000000000000000000000000000000081526004810186905273ffffffffffffffffffffffffffffffffffffffff90911690819063069a3ee9906024015f60405180830381865afa15801561167e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526116c39190810190613797565b9695505050505050565b5f805b8281101561173a578161170c57611703878787308888878181106116f6576116f6612f52565b9050602002013534611c83565b60019150611732565b6117328787873088888781811061172557611725612f52565b905060200201355f611c83565b6001016116d0565b50505050505050565b805f5260045ffd5b5f8381527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00919060ff166117cc576117cc7ff5ab487200000000000000000000000000000000000000000000000000000000611743565b847fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c633846040516117fc9190613432565b60405180910390a261180d856118d1565b5050505050565b5f8181527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040812060048101547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009190835b818110156118c157826002015f84600401838154811061188c5761188c612f52565b5f918252602080832090910154835282019290925260400190205460ff166118b957505f95945050505050565b60010161186a565b50600195945050505050565b5050565b5f8181527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040812060048101547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00925b8181101561197057826001015f84600401838154811061194757611947612f52565b905f5260205f20015481526020019081526020015f205f6119689190611f45565b600101611925565b5061197e600483015f611f60565b5f848152600184016020526040812080547fffffffffffffffffffffff0000000000000000000000000000000000000000001681556003810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055906119eb6004830182611f60565b505050505050565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0090505f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f53706163654f70657261746f7200000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa158015611ac6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aea91906138eb565b82547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff919091161790915550565b7fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16611c02577fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b006020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611c34565b6040517ff2cfeefa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fffffffff000000000000000000000000000000000000000000000000000000008216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f22905f90a250565b611c8e868483611d73565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005f8681526001828101602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117815560030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055905080546040805173ffffffffffffffffffffffffffffffffffffffff898116602083015261173a9316918a9189918891889101604051602081830303815290604052611e31565b34811115611da457611da47ff4e95a4100000000000000000000000000000000000000000000000000000000611743565b73ffffffffffffffffffffffffffffffffffffffff8316611de857611de87f99ef038800000000000000000000000000000000000000000000000000000000611743565b73ffffffffffffffffffffffffffffffffffffffff8216611e2c57611e2c7f4bb7c20500000000000000000000000000000000000000000000000000000000611743565b505050565b8115611ec4576040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a908490611e91908990899089908890600401613906565b5f604051808303818588803b158015611ea8575f5ffd5b505af1158015611eba573d5f5f3e3d5ffd5b50505050506119eb565b6040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a90611f1c908890889088908790600401613906565b5f604051808303815f87803b158015611f33575f5ffd5b505af1158015611081573d5f5f3e3d5ffd5b5080545f8255905f5260205f20908101906109629190611f7b565b5080545f8255905f5260205f20908101906109629190611fb6565b5b80821115611fb25780547fffffffffffffffffffffff000000000000000000000000000000000000000000168155600101611f7c565b5090565b5b80821115611fb2575f8155600101611fb7565b5f60208284031215611fda575f5ffd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061096257610962611fe1565b5f8151808452602084019350602083015f5b8281101561206757815180516120458161200e565b875260209081015160ff16818801526040909601959190910190600101612030565b5093949350505050565b6007811061208157612081611fe1565b9052565b5f8151808452602084019350602083015f5b8281101561206757815180516120ac8161200e565b8088525060ff602082015116602088015260ff604082015116604088015250606086019550602082019150600181019050612097565b602081525f8251606060208401526120fd608084018261201e565b6020858101517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0868403016040870152805180845290820193505f92909101905b8083101561219f578351612153838251612071565b6020810151602084015273ffffffffffffffffffffffffffffffffffffffff6040820151166040840152606081015160608401525060808201915060208401935060018301925061213e565b50604086015192507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08582030160608601526116c38184612085565b5f5f604083850312156121ec575f5ffd5b50508035926020909101359150565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f82516040602084015261226260608401826121fb565b905060208401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848303016040850152610a3d82826121fb565b60038110610962575f5ffd5b5f5f5f606084860312156122bb575f5ffd5b833592506020840135915060408401356122d48161229d565b809150509250925092565b5f606082840312156122ef575f5ffd5b50919050565b5f5f60408385031215612306575f5ffd5b82359150602083013567ffffffffffffffff811115612323575f5ffd5b61232f858286016122df565b9150509250929050565b602081525f825160606020840152612354608084018261201e565b6020858101518583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016040870152805180845292935081019181840191600582901b8501015f5b82811015612434577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086830301845284516123d9838251612071565b6020810151602084015273ffffffffffffffffffffffffffffffffffffffff6040820151166040840152606081015190506080606084015261241e60808401826121fb565b602096870196959095019492505060010161239d565b50604088015194507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08782030160608801526124708186612085565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610962575f5ffd5b5f602082840312156124ad575f5ffd5b813561063d8161247c565b5f5f83601f8401126124c8575f5ffd5b50813567ffffffffffffffff8111156124df575f5ffd5b6020830191508360208260051b85010111156124f9575f5ffd5b9250929050565b5f5f5f5f60608587031215612513575f5ffd5b843561251e8161247c565b9350602085013567ffffffffffffffff811115612539575f5ffd5b612545878288016124b8565b909450925050604085013567ffffffffffffffff811115612564575f5ffd5b612570878288016122df565b91505092959194509250565b5f5f5f6040848603121561258e575f5ffd5b833567ffffffffffffffff8111156125a4575f5ffd5b6125b0868287016124b8565b909450925050602084013567ffffffffffffffff8111156125cf575f5ffd5b6125db868287016122df565b9150509250925092565b5f8154808452602084019350825f5260205f205f5b8281101561206757815460ff81166126118161200e565b875260081c60ff166020870152604090950194600191820191016125fa565b5f8154808452602084019350825f5260205f205f5b8281101561206757815460ff811661265c8161200e565b875260ff600882901c8116602089015260109190911c16604087015260609095019460019182019101612645565b60208152606060208201525f6126a360808301846125e5565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160408401526001840180548083525f91825260208083209301905b80831015612744576126f98260ff865416612071565b6001840154602083015273ffffffffffffffffffffffffffffffffffffffff6002850154166040830152600384015460608301526080820191506004840193506001830192506126e3565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08582030160608601526116c38160028801612630565b600181811c9082168061279057607f821691505b6020821081036122ef577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b60208152606060208201525f6127e060808301846125e5565b600184017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084830301604085015281815480845260208401915060208160051b850101835f5260205f2093505f5b82811015612951577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086830301845261286b8260ff875416612071565b6001850154602083015273ffffffffffffffffffffffffffffffffffffffff600286015416604083015260038501608060608401525f81546128ac8161277c565b806080870152600182165f81146128ca576001811461290457612935565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00831660a088015260a082151560051b8801019350612935565b845f5260205f205f5b8381101561292c57815489820160a0015260019091019060200161290d565b880160a0019450505b505050600496909601956020959095019492505060010161282e565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08782030160608801526124708160028a01612630565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126129bc575f5ffd5b83018035915067ffffffffffffffff8211156129d6575f5ffd5b6020019150600681901b36038213156124f9575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600281901b7f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82168214612a75577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b919050565b60ff81168114610962575f5ffd5b8135612a938161229d565b612a9c8161200e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541660ff82168117835550506020820135612ad881612a7a565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16600882901b61ff0016178255505050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612b40575f5ffd5b83018035915067ffffffffffffffff821115612b5a575f5ffd5b6020019150600781901b36038213156124f9575f5ffd5b60078110610962575f5ffd5b60078210612b8d57612b8d611fe1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff831681178255505050565b8135612bc981612b71565b612bd38183612b7d565b50602082013560018201556040820135612bec8161247c565b6002820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555060609190910135600390910155565b68010000000000000000831115612c5757612c576129ed565b805483825580841015612cae57612c6d81612a1a565b612c7685612a1a565b5f8481526020902091820191015b81811015612cab575f80825560018201819055600282018190556003820155600401612c84565b50505b505f8181526020812083915b858110156119eb57612ccc8383612bbe565b6080929092019160049190910190600101612cba565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612d15575f5ffd5b83018035915067ffffffffffffffff821115612d2f575f5ffd5b60200191506060810236038213156124f9575f5ffd5b8135612d508161229d565b612d598161200e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541660ff82168117835550506020820135612d9581612a7a565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16600882901b61ff0016178255506040820135612dd481612a7a565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1660109190911b62ff00001617905550565b68010000000000000000831115612e2257612e226129ed565b805483825580841015612e57575f828152602090208481019082015b80821015612e54575f8255600182019150612e3e565b50505b505f8181526020812083915b858110156119eb57612e758383612d45565b6060929092019160019182019101612e63565b612e928283612989565b68010000000000000000811115612eab57612eab6129ed565b825481845580821015612ee0575f848152602090208281019082015b80821015612edd575f8255600182019150612ec7565b50505b505f838152602090205f5b82811015612f1057612efd8483612a88565b6040939093019260019182019101612eeb565b50505050612f216020830183612b0d565b612f2f818360018601612c3e565b5050612f3e6040830183612ce2565b612f4c818360028601612e09565b50505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612fb2575f5ffd5b83018035915067ffffffffffffffff821115612fcc575f5ffd5b6020019150600581901b36038213156124f9575f5ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81833603018112613015575f5ffd5b9190910192915050565b5b818110156118cd575f8155600101613020565b601f821115611e2c57805f5260205f20601f840160051c810160208510156130585750805b61180d601f850160051c83018261301f565b813561307581612b71565b61307f8183612b7d565b506020820135600182015560408201356130988161247c565b6002820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555060608201357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe183360301811261310f575f5ffd5b8201803567ffffffffffffffff811115613127575f5ffd5b60208201915080360382131561313b575f5ffd5b6003830167ffffffffffffffff821115613157576131576129ed565b61316b82613165835461277c565b83613033565b5f601f8311600181146131bb575f84156131855750848201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17835561173a565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b8281101561320857878501358255602094850194600190920191016131e8565b5085821015613243577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88760031b161c19848801351681555b505060018460011b01835550505050505050565b68010000000000000000831115613270576132706129ed565b8054838255808410156133165761328681612a1a565b61328f85612a1a565b5f8481526020902091820191015b81811015613313575f81555f60018201555f6002820155600381016132c2815461277c565b801561330957601f8111600181146132dc575f8355613307565b5f838152602090206132f9601f840160051c82016001830161301f565b505f83815260208120818555555b505b505060040161329d565b50505b505f8181526020812083915b858110156119eb5761333d6133378487612fe3565b8361306a565b6020929092019160049190910190600101613322565b61335d8283612989565b68010000000000000000811115613376576133766129ed565b8254818455808210156133ab575f848152602090208281019082015b808210156133a8575f8255600182019150613392565b50505b505f838152602090205f5b828110156133db576133c88483612a88565b60409390930192600191820191016133b6565b505050506133ec6020830183612f7f565b612f2f818360018601613257565b5f8261342d577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b6020810161343f8361200e565b91905290565b6040516080810167ffffffffffffffff81118282101715613468576134686129ed565b60405290565b6040516060810167ffffffffffffffff81118282101715613468576134686129ed565b6040805190810167ffffffffffffffff81118282101715613468576134686129ed565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156134fb576134fb6129ed565b604052919050565b5f67ffffffffffffffff82111561351c5761351c6129ed565b5060051b60200190565b5f60208284031215613536575f5ffd5b815167ffffffffffffffff81111561354c575f5ffd5b8201601f8101841361355c575f5ffd5b805161356f61356a82613503565b6134b4565b8082825260208201915060208360051b850101925086831115613590575f5ffd5b6020840193505b828410156116c35783516135aa8161247c565b825260209384019390910190613597565b5f6080820173ffffffffffffffffffffffffffffffffffffffff871683528560208401528460408401526080606084015280845180835260a0850191506020860192505f5b8181101561363457835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101613600565b509098975050505050505050565b5f82601f830112613651575f5ffd5b815161365f61356a82613503565b8082825260208201915060208360071b860101925085831115613680575f5ffd5b602085015b838110156136e8576080818803121561369c575f5ffd5b6136a4613445565b81516136af81612b71565b81526020828101519082015260408201516136c98161247c565b6040820152606082810151908201528352602090920191608001613685565b5095945050505050565b5f82601f830112613701575f5ffd5b815161370f61356a82613503565b80828252602082019150602060608402860101925085831115613730575f5ffd5b602085015b838110156136e8576060818803121561374c575f5ffd5b61375461346e565b815161375f8161229d565b8152602082015161376f81612a7a565b6020820152604082015161378281612a7a565b60408201528352602090920191606001613735565b5f602082840312156137a7575f5ffd5b815167ffffffffffffffff8111156137bd575f5ffd5b8201606081850312156137ce575f5ffd5b6137d661346e565b815167ffffffffffffffff8111156137ec575f5ffd5b8201601f810186136137fc575f5ffd5b805161380a61356a82613503565b8082825260208201915060208360061b85010192508883111561382b575f5ffd5b6020840193505b82841015613888576040848a031215613849575f5ffd5b613851613491565b845161385c8161229d565b8152602085015161386c81612a7a565b8060208301525080835250602082019150604084019350613832565b8452505050602082015167ffffffffffffffff8111156138a6575f5ffd5b6138b286828501613642565b602083015250604082015167ffffffffffffffff8111156138d1575f5ffd5b6138dd868285016136f2565b604083015250949350505050565b5f602082840312156138fb575f5ffd5b815161063d8161247c565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152826040820152608060608201525f6116c360808301846121fb56";
|
|
989
|
+
"0x608060405234801561000f575f5ffd5b50604051613b97380380613b9783398101604081905261002e9161011c565b610036610076565b7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0080546001600160a01b0319166001600160a01b03831617905550610149565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156100c2576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101561011957805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b5f6020828403121561012c575f5ffd5b81516001600160a01b0381168114610142575f5ffd5b9392505050565b613a41806101565f395ff3fe6080604052600436106100c6575f3560e01c806392c399ff11610071578063caeb80881161004c578063caeb808814610210578063e58690f214610223578063ffbfd74d14610236575f5ffd5b806392c399ff146101cb578063bef1bee1146101ea578063c1066f18146101fd575f5ffd5b80635bf0fec7116100a15780635bf0fec71461015357806368ab7dd6146101805780637adc9cbe146101ac575f5ffd5b8063069a3ee9146100d15780630fe44a21146101065780634739e80514610132575f5ffd5b366100cd57005b5f5ffd5b3480156100dc575f5ffd5b506100f06100eb3660046120df565b610255565b6040516100fd91906121f7565b60405180910390f35b348015610111575f5ffd5b506101256101203660046122f0565b61048f565b6040516100fd919061235c565b34801561013d575f5ffd5b5061015161014c3660046123be565b610589565b005b34801561015e575f5ffd5b5061017261016d36600461240a565b6105cf565b6040519081526020016100fd565b34801561018b575f5ffd5b5061019f61019a3660046120df565b61064e565b6040516100fd919061244e565b3480156101b7575f5ffd5b506101516101c63660046125b2565b610900565b3480156101d6575f5ffd5b506100f06101e53660046122f0565b61096f565b6101726101f8366004612615565b61099d565b61017261020b366004612691565b610a50565b61017261021e366004612691565b610b01565b6101516102313660046123be565b610b4c565b348015610241575f5ffd5b50610172610250366004612691565b610be8565b61027960405180606001604052806060815260200160608152602001606081525090565b5f828152602081815260408083208151815460809481028201850190935260608101838152909491938593919285929185015b82821015610314575f84815260209020604080518082019091529083018054829060ff1660028111156102e1576102e16120f6565b60028111156102f2576102f26120f6565b81529054610100900460ff1660209182015290825260019290920191016102ac565b50505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b828210156103d7575f848152602090206040805160808101909152600484029091018054829060ff16600681111561037a5761037a6120f6565b600681111561038b5761038b6120f6565b8152600182810154602080840191909152600284015473ffffffffffffffffffffffffffffffffffffffff16604084015260039093015460609092019190915291835292019101610340565b50505050815260200160028201805480602002602001604051908101604052809291908181526020015f905b82821015610481575f8481526020902060408051606081019091529083018054829060ff166002811115610439576104396120f6565b600281111561044a5761044a6120f6565b8152905460ff6101008204811660208085019190915262010000909204166040909201919091529082526001929092019101610403565b505050915250909392505050565b60408051808201909152606080825260208201525f82815260208190526040902054156105285760408051608081018252600f8183019081527f52756c65456e7469746c656d656e740000000000000000000000000000000000606083015281525f848152602081815290839020925191928184019261050f920161279f565b6040516020818303038152906040528152509050610583565b6040805160808101825260118183019081527f52756c65456e7469746c656d656e745632000000000000000000000000000000606083015281525f8481526001602090815290839020925191928184019261050f92016128dc565b92915050565b3068929eee149b4bd2126854036105a75763ab143c065f526004601cfd5b3068929eee149b4bd21268556105be838383610ce4565b3868929eee149b4bd2126855505050565b5f82815260208190526040812082906105e88282612fa2565b50506040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003260601b1660208201524360348201525f9060540160405160208183030381529060405280519060200120905061064733823087611097565b9392505050565b61067260405180606001604052806060815260200160608152602001606081525090565b5f8281526001602090815260408083208151815460809481028201850190935260608101838152909491938593919285929185015b8282101561070f575f84815260209020604080518082019091529083018054829060ff1660028111156106dc576106dc6120f6565b60028111156106ed576106ed6120f6565b81529054610100900460ff1660209182015290825260019290920191016106a7565b50505050815260200160018201805480602002602001604051908101604052809291908181526020015f905b82821015610856575f848152602090206040805160808101909152600484029091018054829060ff166006811115610775576107756120f6565b6006811115610786576107866120f6565b815260018201546020820152600282015473ffffffffffffffffffffffffffffffffffffffff1660408201526003820180546060909201916107c790612891565b80601f01602080910402602001604051908101604052809291908181526020018280546107f390612891565b801561083e5780601f106108155761010080835404028352916020019161083e565b820191905f5260205f20905b81548152906001019060200180831161082157829003601f168201915b5050505050815250508152602001906001019061073b565b50505050815260200160028201805480602002602001604051908101604052809291908181526020015f905b82821015610481575f8481526020902060408051606081019091529083018054829060ff1660028111156108b8576108b86120f6565b60028111156108c9576108c96120f6565b8152905460ff6101008204811660208085019190915262010000909204166040909201919091529082526001929092019101610882565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef5200054640100000000900460ff16610963576040517f77a399b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61096c816114d6565b50565b61099360405180606001604052806060815260200160608152602001606081525090565b6106478383611561565b5f5f5b838110156109e8578260015f8787858181106109be576109be61306c565b9050602002013581526020019081526020015f2081816109de919061346d565b50506001016109a0565b506040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003260601b1660208201524360348201525f90605401604051602081830303815290604052805190602001209050610a4786338388886116ce565b95945050505050565b5f805b83811015610a9a57825f5f878785818110610a7057610a7061306c565b9050602002013581526020019081526020015f208181610a909190612fa2565b5050600101610a53565b506040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003260601b1660208201524360348201525f90605401604051602081830303815290604052805190602001209050610af933308388886116ce565b949350505050565b5f805b83811015610a9a578260015f878785818110610b2257610b2261306c565b9050602002013581526020019081526020015f208181610b42919061346d565b5050600101610b04565b7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005473ffffffffffffffffffffffffffffffffffffffff163314610bb357610bb37fb2395d7000000000000000000000000000000000000000000000000000000000611733565b3068929eee149b4bd212685403610bd15763ab143c065f526004601cfd5b3068929eee149b4bd21268556105be83838361173b565b5f805b83811015610c33578260015f878785818110610c0957610c0961306c565b9050602002013581526020019081526020015f208181610c29919061346d565b5050600101610beb565b506040517fffffffffffffffffffffffffffffffffffffffff0000000000000000000000003260601b1660208201524360348201525f90605401604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012090505f5b84811015610cdb57610cd3338330898986818110610cc757610cc761306c565b90506020020135611097565b600101610ca7565b50949350505050565b5f8381527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009190610100900473ffffffffffffffffffffffffffffffffffffffff161580610d5e5750805460ff16155b15610d95576040517ff5ab487200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f84815260028201602052604090205460ff1615610ddf576040517f7912b73900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8481526001820160205260408120805482918291825b81811015610f69575f838281548110610e1157610e1161306c565b5f91825260209091200180549091503373ffffffffffffffffffffffffffffffffffffffff90911603610efe575f815474010000000000000000000000000000000000000000900460ff166002811115610e6d57610e6d6120f6565b14610ea4576040517f47592a4d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80548a9082907fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000836002811115610ef457610ef46120f6565b0217905550600196505b805474010000000000000000000000000000000000000000900460ff166001816002811115610f2f57610f2f6120f6565b03610f3f57866001019650610f5f565b6002816002811115610f5357610f536120f6565b03610f5f578560010195505b5050600101610df6565b5084610fa1576040517f8223a7e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fac600282613514565b841180610fc25750610fbf600282613514565b83115b1561108b575f898152600287016020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905583851161100d576002611010565b60015b90505f61101c8c611804565b90506001826002811115611032576110326120f6565b148061103b5750805b15611079578b7fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c63383604051611070919061354c565b60405180910390a25b8015611088576110888c6118c1565b50505b50505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff84166110db576110db7f99ef038800000000000000000000000000000000000000000000000000000000611733565b5f8381527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00919060ff161561119b5760048101545f5b8181101561119857848360040182815481106111595761115961306c565b905f5260205f20015403611190576111907f0d5a9ef800000000000000000000000000000000000000000000000000000000611733565b60010161113b565b50505b815473ffffffffffffffffffffffffffffffffffffffff166111bf576111bf6119e3565b81546040517f4f845445000000000000000000000000000000000000000000000000000000008152600560048201525f9173ffffffffffffffffffffffffffffffffffffffff1690634f845445906024015f60405180830381865afa15801561122a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261126f9190810190613640565b825490915060ff166112f757815460038301805473ffffffffffffffffffffffffffffffffffffffff8089167fffffffffffffffffffffffff0000000000000000000000000000000000000000909216919091179091558816610100027fffffffffffffffffffffff0000000000000000000000000000000000000000009091161760011782555b600482018054600181810183555f928352602080842090920187905583518784529085019091526040822090915b828110156114425781604051806040016040528086848151811061134b5761134b61306c565b602002602001015173ffffffffffffffffffffffffffffffffffffffff1681526020015f6002811115611380576113806120f6565b905281546001810183555f9283526020928390208251910180547fffffffffffffffffffffffff0000000000000000000000000000000000000000811673ffffffffffffffffffffffffffffffffffffffff909316928317825593830151929390929183917fffffffffffffffffffffff000000000000000000000000000000000000000000161774010000000000000000000000000000000000000000836002811115611430576114306120f6565b02179055505050806001019050611325565b5084546040517f541da4e500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063541da4e59061149e908c908c908b9089906004016136d5565b5f604051808303815f87803b1580156114b5575f5ffd5b505af11580156114c7573d5f5f3e3d5ffd5b50505050505050505050505050565b6114ff7f307ce10800000000000000000000000000000000000000000000000000000000611b1e565b7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b61158560405180606001604052806060815260200160608152602001606081525090565b5f8381527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00919060ff1661160f576040517ff5ab487200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60038101546040517f069a3ee90000000000000000000000000000000000000000000000000000000081526004810186905273ffffffffffffffffffffffffffffffffffffffff90911690819063069a3ee9906024015f60405180830381865afa15801561167f573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526116c491908101906138b1565b9695505050505050565b5f5f5b8281101561172a5761171f878787308888878181106116f2576116f261306c565b9050602002013573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee886117195734611c73565b5f611c73565b6001915081016116d1565b50505050505050565b805f5260045ffd5b5f8381527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00919060ff166117bc576117bc7ff5ab487200000000000000000000000000000000000000000000000000000000611733565b847fb9d6ce397e562841871d119aaf77469c60a3b5bf8b99a5d9851656015015c633846040516117ec919061354c565b60405180910390a26117fd856118c1565b5050505050565b5f8181527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040812060048101547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e009190835b818110156118b157826002015f84600401838154811061187c5761187c61306c565b5f918252602080832090910154835282019290925260400190205460ff166118a957505f95945050505050565b60010161185a565b50600195945050505050565b5050565b5f8181527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040812060048101547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00925b8181101561196057826001015f8460040183815481106119375761193761306c565b905f5260205f20015481526020019081526020015f205f611958919061205a565b600101611915565b5061196e600483015f612075565b5f848152600184016020526040812080547fffffffffffffffffffffff0000000000000000000000000000000000000000001681556003810180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055906119db6004830182612075565b505050505050565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e0090505f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f53706163654f70657261746f7200000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa158015611ab6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ada9190613a05565b82547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff919091161790915550565b7fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b00602052604090205460ff16611bf2577fffffffff0000000000000000000000000000000000000000000000000000000081165f9081527f81088bbc801e045ea3e7620779ab349988f58afbdfba10dff983df3f33522b006020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055611c24565b6040517ff2cfeefa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040517fffffffff000000000000000000000000000000000000000000000000000000008216907f78f84e5b1c5c05be2b5ad3800781dd404d6d6c6302bc755c0fe20f58a33a7f22905f90a250565b73ffffffffffffffffffffffffffffffffffffffff8716611cb757611cb77f99ef038800000000000000000000000000000000000000000000000000000000611733565b73ffffffffffffffffffffffffffffffffffffffff8416611cfb57611cfb7f4bb7c20500000000000000000000000000000000000000000000000000000000611733565b5f8581527f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e016020526040902080547f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e00919060ff16611dc15780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117815560038101805473ffffffffffffffffffffffffffffffffffffffff88167fffffffffffffffffffffffff00000000000000000000000000000000000000009091161790555b81546040805173ffffffffffffffffffffffffffffffffffffffff8c811660208301529181018a905260608101889052868216608082015260a081018690528a821660c08201529116905f9060e001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff871601611f07576040517f6fcc618800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690636fcc6188908790611ed4906002908690600401613a20565b5f604051808303818588803b158015611eeb575f5ffd5b505af1158015611efd573d5f5f3e3d5ffd5b5050505050611fb1565b8415611f2e57611f2e73ffffffffffffffffffffffffffffffffffffffff87168387611fbe565b6040517f6fcc618800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff831690636fcc618890611f83906002908590600401613a20565b5f604051808303815f87803b158015611f9a575f5ffd5b505af1158015611fac573d5f5f3e3d5ffd5b505050505b5050505050505050505050565b81601452806034526f095ea7b30000000000000000000000005f5260205f604460105f875af18060015f51141661205057803d853b151710612050575f6034526f095ea7b30000000000000000000000005f525f38604460105f885af1508160345260205f604460105f885af190508060015f51141661205057803d853b15171061205057633e3f8f735f526004601cfd5b505f603452505050565b5080545f8255905f5260205f209081019061096c9190612090565b5080545f8255905f5260205f209081019061096c91906120cb565b5b808211156120c75780547fffffffffffffffffffffff000000000000000000000000000000000000000000168155600101612091565b5090565b5b808211156120c7575f81556001016120cc565b5f602082840312156120ef575f5ffd5b5035919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b6003811061096c5761096c6120f6565b5f8151808452602084019350602083015f5b8281101561217c578151805161215a81612123565b875260209081015160ff16818801526040909601959190910190600101612145565b5093949350505050565b60078110612196576121966120f6565b9052565b5f8151808452602084019350602083015f5b8281101561217c57815180516121c181612123565b8088525060ff602082015116602088015260ff6040820151166040880152506060860195506020820191506001810190506121ac565b602081525f8251606060208401526122126080840182612133565b6020858101517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0868403016040870152805180845290820193505f92909101905b808310156122b4578351612268838251612186565b6020810151602084015273ffffffffffffffffffffffffffffffffffffffff60408201511660408401526060810151606084015250608082019150602084019350600183019250612253565b50604086015192507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08582030160608601526116c4818461219a565b5f5f60408385031215612301575f5ffd5b50508035926020909101359150565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f8251604060208401526123776060840182612310565b905060208401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0848303016040850152610a478282612310565b6003811061096c575f5ffd5b5f5f5f606084860312156123d0575f5ffd5b833592506020840135915060408401356123e9816123b2565b809150509250925092565b5f60608284031215612404575f5ffd5b50919050565b5f5f6040838503121561241b575f5ffd5b82359150602083013567ffffffffffffffff811115612438575f5ffd5b612444858286016123f4565b9150509250929050565b602081525f8251606060208401526124696080840182612133565b6020858101518583037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016040870152805180845292935081019181840191600582901b8501015f5b82811015612549577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe086830301845284516124ee838251612186565b6020810151602084015273ffffffffffffffffffffffffffffffffffffffff604082015116604084015260608101519050608060608401526125336080840182612310565b60209687019695909501949250506001016124b2565b50604088015194507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0878203016060880152612585818661219a565b98975050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8116811461096c575f5ffd5b5f602082840312156125c2575f5ffd5b813561064781612591565b5f5f83601f8401126125dd575f5ffd5b50813567ffffffffffffffff8111156125f4575f5ffd5b6020830191508360208260051b850101111561260e575f5ffd5b9250929050565b5f5f5f5f60608587031215612628575f5ffd5b843561263381612591565b9350602085013567ffffffffffffffff81111561264e575f5ffd5b61265a878288016125cd565b909450925050604085013567ffffffffffffffff811115612679575f5ffd5b612685878288016123f4565b91505092959194509250565b5f5f5f604084860312156126a3575f5ffd5b833567ffffffffffffffff8111156126b9575f5ffd5b6126c5868287016125cd565b909450925050602084013567ffffffffffffffff8111156126e4575f5ffd5b6126f0868287016123f4565b9150509250925092565b5f8154808452602084019350825f5260205f205f5b8281101561217c57815460ff811661272681612123565b875260081c60ff1660208701526040909501946001918201910161270f565b5f8154808452602084019350825f5260205f205f5b8281101561217c57815460ff811661277181612123565b875260ff600882901c8116602089015260109190911c1660408701526060909501946001918201910161275a565b60208152606060208201525f6127b860808301846126fa565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160408401526001840180548083525f91825260208083209301905b808310156128595761280e8260ff865416612186565b6001840154602083015273ffffffffffffffffffffffffffffffffffffffff6002850154166040830152600384015460608301526080820191506004840193506001830192506127f8565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08582030160608601526116c48160028801612745565b600181811c908216806128a557607f821691505b602082108103612404577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b60208152606060208201525f6128f560808301846126fa565b600184017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe084830301604085015281815480845260208401915060208160051b850101835f5260205f2093505f5b82811015612a66577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08683030184526129808260ff875416612186565b6001850154602083015273ffffffffffffffffffffffffffffffffffffffff600286015416604083015260038501608060608401525f81546129c181612891565b806080870152600182165f81146129df5760018114612a1957612a4a565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00831660a088015260a082151560051b8801019350612a4a565b845f5260205f205f5b83811015612a4157815489820160a00152600190910190602001612a22565b880160a0019450505b5050506004969096019560209590950194925050600101612943565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08782030160608801526125858160028a01612745565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612ad1575f5ffd5b83018035915067ffffffffffffffff821115612aeb575f5ffd5b6020019150600681901b360382131561260e575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600281901b7f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82168214612b8a577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b919050565b60ff8116811461096c575f5ffd5b8135612ba8816123b2565b612bb181612123565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541660ff82168117835550506020820135612bed81612b8f565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16600882901b61ff0016178255505050565b505050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612c5a575f5ffd5b83018035915067ffffffffffffffff821115612c74575f5ffd5b6020019150600781901b360382131561260e575f5ffd5b6007811061096c575f5ffd5b60078210612ca757612ca76120f6565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff831681178255505050565b8135612ce381612c8b565b612ced8183612c97565b50602082013560018201556040820135612d0681612591565b6002820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555060609190910135600390910155565b68010000000000000000831115612d7157612d71612b02565b805483825580841015612dc857612d8781612b2f565b612d9085612b2f565b5f8481526020902091820191015b81811015612dc5575f80825560018201819055600282018190556003820155600401612d9e565b50505b505f8181526020812083915b858110156119db57612de68383612cd8565b6080929092019160049190910190600101612dd4565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112612e2f575f5ffd5b83018035915067ffffffffffffffff821115612e49575f5ffd5b602001915060608102360382131561260e575f5ffd5b8135612e6a816123b2565b612e7381612123565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541660ff82168117835550506020820135612eaf81612b8f565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16600882901b61ff0016178255506040820135612eee81612b8f565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1660109190911b62ff00001617905550565b68010000000000000000831115612f3c57612f3c612b02565b805483825580841015612f71575f828152602090208481019082015b80821015612f6e575f8255600182019150612f58565b50505b505f8181526020812083915b858110156119db57612f8f8383612e5f565b6060929092019160019182019101612f7d565b612fac8283612a9e565b68010000000000000000811115612fc557612fc5612b02565b825481845580821015612ffa575f848152602090208281019082015b80821015612ff7575f8255600182019150612fe1565b50505b505f838152602090205f5b8281101561302a576130178483612b9d565b6040939093019260019182019101613005565b5050505061303b6020830183612c27565b613049818360018601612d58565b50506130586040830183612dfc565b613066818360028601612f23565b50505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126130cc575f5ffd5b83018035915067ffffffffffffffff8211156130e6575f5ffd5b6020019150600581901b360382131561260e575f5ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183360301811261312f575f5ffd5b9190910192915050565b5b818110156118bd575f815560010161313a565b601f821115612c2257805f5260205f20601f840160051c810160208510156131725750805b6117fd601f850160051c830182613139565b813561318f81612c8b565b6131998183612c97565b506020820135600182015560408201356131b281612591565b6002820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555060608201357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1833603018112613229575f5ffd5b8201803567ffffffffffffffff811115613241575f5ffd5b602082019150803603821315613255575f5ffd5b6003830167ffffffffffffffff82111561327157613271612b02565b6132858261327f8354612891565b8361314d565b5f601f8311600181146132d5575f841561329f5750848201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17835561172a565b5f838152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156133225787850135825560209485019460019092019101613302565b508582101561335d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88760031b161c19848801351681555b505060018460011b01835550505050505050565b6801000000000000000083111561338a5761338a612b02565b805483825580841015613430576133a081612b2f565b6133a985612b2f565b5f8481526020902091820191015b8181101561342d575f81555f60018201555f6002820155600381016133dc8154612891565b801561342357601f8111600181146133f6575f8355613421565b5f83815260209020613413601f840160051c820160018301613139565b505f83815260208120818555555b505b50506004016133b7565b50505b505f8181526020812083915b858110156119db5761345761345184876130fd565b83613184565b602092909201916004919091019060010161343c565b6134778283612a9e565b6801000000000000000081111561349057613490612b02565b8254818455808210156134c5575f848152602090208281019082015b808210156134c2575f82556001820191506134ac565b50505b505f838152602090205f5b828110156134f5576134e28483612b9d565b60409390930192600191820191016134d0565b505050506135066020830183613099565b613049818360018601613371565b5f82613547577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b6020810161355983612123565b91905290565b6040516080810167ffffffffffffffff8111828210171561358257613582612b02565b60405290565b6040516060810167ffffffffffffffff8111828210171561358257613582612b02565b6040805190810167ffffffffffffffff8111828210171561358257613582612b02565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561361557613615612b02565b604052919050565b5f67ffffffffffffffff82111561363657613636612b02565b5060051b60200190565b5f60208284031215613650575f5ffd5b815167ffffffffffffffff811115613666575f5ffd5b8201601f81018413613676575f5ffd5b80516136896136848261361d565b6135ce565b8082825260208201915060208360051b8501019250868311156136aa575f5ffd5b6020840193505b828410156116c45783516136c481612591565b8252602093840193909101906136b1565b5f6080820173ffffffffffffffffffffffffffffffffffffffff871683528560208401528460408401526080606084015280845180835260a0850191506020860192505f5b8181101561374e57835173ffffffffffffffffffffffffffffffffffffffff1683526020938401939092019160010161371a565b509098975050505050505050565b5f82601f83011261376b575f5ffd5b81516137796136848261361d565b8082825260208201915060208360071b86010192508583111561379a575f5ffd5b602085015b8381101561380257608081880312156137b6575f5ffd5b6137be61355f565b81516137c981612c8b565b81526020828101519082015260408201516137e381612591565b604082015260608281015190820152835260209092019160800161379f565b5095945050505050565b5f82601f83011261381b575f5ffd5b81516138296136848261361d565b8082825260208201915060206060840286010192508583111561384a575f5ffd5b602085015b838110156138025760608188031215613866575f5ffd5b61386e613588565b8151613879816123b2565b8152602082015161388981612b8f565b6020820152604082015161389c81612b8f565b6040820152835260209092019160600161384f565b5f602082840312156138c1575f5ffd5b815167ffffffffffffffff8111156138d7575f5ffd5b8201606081850312156138e8575f5ffd5b6138f0613588565b815167ffffffffffffffff811115613906575f5ffd5b8201601f81018613613916575f5ffd5b80516139246136848261361d565b8082825260208201915060208360061b850101925088831115613945575f5ffd5b6020840193505b828410156139a2576040848a031215613963575f5ffd5b61396b6135ab565b8451613976816123b2565b8152602085015161398681612b8f565b806020830152508083525060208201915060408401935061394c565b8452505050602082015167ffffffffffffffff8111156139c0575f5ffd5b6139cc8682850161375c565b602083015250604082015167ffffffffffffffff8111156139eb575f5ffd5b6139f78682850161380c565b604083015250949350505050565b5f60208284031215613a15575f5ffd5b815161064781612591565b613a2983612123565b828152604060208201525f610af9604083018461231056";
|
|
986
990
|
|
|
987
991
|
type MockEntitlementGatedConstructorParams =
|
|
988
992
|
| [signer?: Signer]
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@towns-protocol/generated",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.450",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "bun ./scripts/prepare.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"ethers": "^5.8.0"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"@towns-protocol/contracts": "^0.0.
|
|
16
|
+
"@towns-protocol/contracts": "^0.0.450",
|
|
17
17
|
"@typechain/ethers-v5": "^11.1.2",
|
|
18
18
|
"typechain": "^8.3.2"
|
|
19
19
|
},
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"publishConfig": {
|
|
35
35
|
"access": "public"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "cbbeb47f3b927004f889268ab727858eab3f1cf9"
|
|
38
38
|
}
|