@ensuro/core 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -0
- package/build/contracts/AaveAssetManager.sol/AaveAssetManager.json +772 -0
- package/build/contracts/BaseAssetManager.sol/BaseAssetManager.json +494 -0
- package/build/contracts/DataTypes.sol/DataTypes.json +10 -0
- package/build/contracts/EToken.sol/EToken.json +1148 -0
- package/build/contracts/FlightDelayRiskModule.sol/FlightDelayRiskModule.json +1093 -0
- package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +412 -0
- package/build/contracts/Policy.sol/Policy.json +10 -0
- package/build/contracts/PolicyNFT.sol/PolicyNFT.json +570 -0
- package/build/contracts/PolicyPool.sol/PolicyPool.json +1257 -0
- package/build/contracts/PolicyPoolComponent.sol/PolicyPoolComponent.json +281 -0
- package/build/contracts/PolicyPoolConfig.sol/PolicyPoolConfig.json +660 -0
- package/build/contracts/RiskModule.sol/RiskModule.json +748 -0
- package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +1032 -0
- package/build/contracts/WadRayMath.sol/WadRayMath.json +10 -0
- package/build/contracts/dependencies/ChainlinkClientUpgradeable.sol/ChainlinkClientUpgradeable.json +50 -0
- package/build/contracts/upgraded/IPolicyNFTv1.sol/IPolicyNFTv1.json +322 -0
- package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1.json +571 -0
- package/build/contracts/upgraded/PolicyNFTv1.sol/PolicyNFTv1_Upgrade.json +602 -0
- package/build/interfaces/IAssetManager.sol/IAssetManager.json +31 -0
- package/build/interfaces/IEToken.sol/IEToken.json +491 -0
- package/build/interfaces/IInsolvencyHook.sol/IInsolvencyHook.json +42 -0
- package/build/interfaces/ILPWhitelist.sol/ILPWhitelist.json +74 -0
- package/build/interfaces/IPolicyNFT.sol/IPolicyNFT.json +321 -0
- package/build/interfaces/IPolicyPool.sol/IPolicyPool.json +445 -0
- package/build/interfaces/IPolicyPoolComponent.sol/IPolicyPoolComponent.json +24 -0
- package/build/interfaces/IPolicyPoolConfig.sol/IPolicyPoolConfig.json +328 -0
- package/build/interfaces/IRiskModule.sol/IRiskModule.json +141 -0
- package/contracts/AaveAssetManager.sol +326 -0
- package/contracts/BaseAssetManager.sol +283 -0
- package/contracts/DataTypes.sol +287 -0
- package/contracts/EToken.sol +773 -0
- package/contracts/FlightDelayRiskModule.sol +208 -0
- package/contracts/LPManualWhitelist.sol +57 -0
- package/contracts/Policy.sol +104 -0
- package/contracts/PolicyNFT.sol +96 -0
- package/contracts/PolicyPool.sol +716 -0
- package/contracts/PolicyPoolComponent.sol +164 -0
- package/contracts/PolicyPoolConfig.sol +231 -0
- package/contracts/RiskModule.sol +323 -0
- package/contracts/TrustfulRiskModule.sol +81 -0
- package/contracts/WadRayMath.sol +135 -0
- package/contracts/dependencies/ChainlinkClientUpgradeable.sol +371 -0
- package/contracts/upgraded/IPolicyNFTv1.sol +15 -0
- package/contracts/upgraded/PolicyNFTv1.sol +126 -0
- package/interfaces/IAssetManager.sol +23 -0
- package/interfaces/IEToken.sol +44 -0
- package/interfaces/IInsolvencyHook.sol +27 -0
- package/interfaces/ILPWhitelist.sol +23 -0
- package/interfaces/IPolicyNFT.sol +15 -0
- package/interfaces/IPolicyPool.sol +44 -0
- package/interfaces/IPolicyPoolComponent.sol +13 -0
- package/interfaces/IPolicyPoolConfig.sol +81 -0
- package/interfaces/IRiskModule.sol +29 -0
- package/package.json +30 -0
|
@@ -0,0 +1,772 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "AaveAssetManager",
|
|
4
|
+
"sourceName": "contracts/AaveAssetManager.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [
|
|
8
|
+
{
|
|
9
|
+
"internalType": "contract IPolicyPool",
|
|
10
|
+
"name": "policyPool_",
|
|
11
|
+
"type": "address"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"internalType": "contract ILendingPoolAddressesProvider",
|
|
15
|
+
"name": "aaveAddrProv_",
|
|
16
|
+
"type": "address"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"internalType": "contract IUniswapV2Router02",
|
|
20
|
+
"name": "swapRouter_",
|
|
21
|
+
"type": "address"
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
"stateMutability": "nonpayable",
|
|
25
|
+
"type": "constructor"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"anonymous": false,
|
|
29
|
+
"inputs": [
|
|
30
|
+
{
|
|
31
|
+
"indexed": false,
|
|
32
|
+
"internalType": "address",
|
|
33
|
+
"name": "previousAdmin",
|
|
34
|
+
"type": "address"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"indexed": false,
|
|
38
|
+
"internalType": "address",
|
|
39
|
+
"name": "newAdmin",
|
|
40
|
+
"type": "address"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"name": "AdminChanged",
|
|
44
|
+
"type": "event"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"anonymous": false,
|
|
48
|
+
"inputs": [
|
|
49
|
+
{
|
|
50
|
+
"indexed": true,
|
|
51
|
+
"internalType": "address",
|
|
52
|
+
"name": "beacon",
|
|
53
|
+
"type": "address"
|
|
54
|
+
}
|
|
55
|
+
],
|
|
56
|
+
"name": "BeaconUpgraded",
|
|
57
|
+
"type": "event"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"anonymous": false,
|
|
61
|
+
"inputs": [
|
|
62
|
+
{
|
|
63
|
+
"indexed": false,
|
|
64
|
+
"internalType": "bool",
|
|
65
|
+
"name": "positive",
|
|
66
|
+
"type": "bool"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"indexed": false,
|
|
70
|
+
"internalType": "uint256",
|
|
71
|
+
"name": "amount",
|
|
72
|
+
"type": "uint256"
|
|
73
|
+
}
|
|
74
|
+
],
|
|
75
|
+
"name": "EarningsDistributed",
|
|
76
|
+
"type": "event"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"anonymous": false,
|
|
80
|
+
"inputs": [
|
|
81
|
+
{
|
|
82
|
+
"indexed": true,
|
|
83
|
+
"internalType": "enum IPolicyPoolConfig.GovernanceActions",
|
|
84
|
+
"name": "action",
|
|
85
|
+
"type": "uint8"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"indexed": false,
|
|
89
|
+
"internalType": "uint256",
|
|
90
|
+
"name": "value",
|
|
91
|
+
"type": "uint256"
|
|
92
|
+
}
|
|
93
|
+
],
|
|
94
|
+
"name": "GovernanceAction",
|
|
95
|
+
"type": "event"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"anonymous": false,
|
|
99
|
+
"inputs": [
|
|
100
|
+
{
|
|
101
|
+
"indexed": false,
|
|
102
|
+
"internalType": "uint256",
|
|
103
|
+
"name": "amount",
|
|
104
|
+
"type": "uint256"
|
|
105
|
+
}
|
|
106
|
+
],
|
|
107
|
+
"name": "MoneyDeinvested",
|
|
108
|
+
"type": "event"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"anonymous": false,
|
|
112
|
+
"inputs": [
|
|
113
|
+
{
|
|
114
|
+
"indexed": false,
|
|
115
|
+
"internalType": "uint256",
|
|
116
|
+
"name": "amount",
|
|
117
|
+
"type": "uint256"
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
"name": "MoneyInvested",
|
|
121
|
+
"type": "event"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"anonymous": false,
|
|
125
|
+
"inputs": [
|
|
126
|
+
{
|
|
127
|
+
"indexed": false,
|
|
128
|
+
"internalType": "address",
|
|
129
|
+
"name": "account",
|
|
130
|
+
"type": "address"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"name": "Paused",
|
|
134
|
+
"type": "event"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"anonymous": false,
|
|
138
|
+
"inputs": [
|
|
139
|
+
{
|
|
140
|
+
"indexed": false,
|
|
141
|
+
"internalType": "uint256",
|
|
142
|
+
"name": "rewardIn",
|
|
143
|
+
"type": "uint256"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"indexed": false,
|
|
147
|
+
"internalType": "uint256",
|
|
148
|
+
"name": "currencyOut",
|
|
149
|
+
"type": "uint256"
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"name": "RewardSwapped",
|
|
153
|
+
"type": "event"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"anonymous": false,
|
|
157
|
+
"inputs": [
|
|
158
|
+
{
|
|
159
|
+
"indexed": false,
|
|
160
|
+
"internalType": "address",
|
|
161
|
+
"name": "account",
|
|
162
|
+
"type": "address"
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"name": "Unpaused",
|
|
166
|
+
"type": "event"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"anonymous": false,
|
|
170
|
+
"inputs": [
|
|
171
|
+
{
|
|
172
|
+
"indexed": true,
|
|
173
|
+
"internalType": "address",
|
|
174
|
+
"name": "implementation",
|
|
175
|
+
"type": "address"
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"name": "Upgraded",
|
|
179
|
+
"type": "event"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"inputs": [],
|
|
183
|
+
"name": "GUARDIAN_ROLE",
|
|
184
|
+
"outputs": [
|
|
185
|
+
{
|
|
186
|
+
"internalType": "bytes32",
|
|
187
|
+
"name": "",
|
|
188
|
+
"type": "bytes32"
|
|
189
|
+
}
|
|
190
|
+
],
|
|
191
|
+
"stateMutability": "view",
|
|
192
|
+
"type": "function"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"inputs": [],
|
|
196
|
+
"name": "LEVEL1_ROLE",
|
|
197
|
+
"outputs": [
|
|
198
|
+
{
|
|
199
|
+
"internalType": "bytes32",
|
|
200
|
+
"name": "",
|
|
201
|
+
"type": "bytes32"
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
"stateMutability": "view",
|
|
205
|
+
"type": "function"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"inputs": [],
|
|
209
|
+
"name": "LEVEL2_ROLE",
|
|
210
|
+
"outputs": [
|
|
211
|
+
{
|
|
212
|
+
"internalType": "bytes32",
|
|
213
|
+
"name": "",
|
|
214
|
+
"type": "bytes32"
|
|
215
|
+
}
|
|
216
|
+
],
|
|
217
|
+
"stateMutability": "view",
|
|
218
|
+
"type": "function"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"inputs": [],
|
|
222
|
+
"name": "LEVEL3_ROLE",
|
|
223
|
+
"outputs": [
|
|
224
|
+
{
|
|
225
|
+
"internalType": "bytes32",
|
|
226
|
+
"name": "",
|
|
227
|
+
"type": "bytes32"
|
|
228
|
+
}
|
|
229
|
+
],
|
|
230
|
+
"stateMutability": "view",
|
|
231
|
+
"type": "function"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"inputs": [],
|
|
235
|
+
"name": "SWAP_REWARDS_ROLE",
|
|
236
|
+
"outputs": [
|
|
237
|
+
{
|
|
238
|
+
"internalType": "bytes32",
|
|
239
|
+
"name": "",
|
|
240
|
+
"type": "bytes32"
|
|
241
|
+
}
|
|
242
|
+
],
|
|
243
|
+
"stateMutability": "view",
|
|
244
|
+
"type": "function"
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"inputs": [],
|
|
248
|
+
"name": "TWEAK_EXPIRATION",
|
|
249
|
+
"outputs": [
|
|
250
|
+
{
|
|
251
|
+
"internalType": "uint40",
|
|
252
|
+
"name": "",
|
|
253
|
+
"type": "uint40"
|
|
254
|
+
}
|
|
255
|
+
],
|
|
256
|
+
"stateMutability": "view",
|
|
257
|
+
"type": "function"
|
|
258
|
+
},
|
|
259
|
+
{
|
|
260
|
+
"inputs": [],
|
|
261
|
+
"name": "aToken",
|
|
262
|
+
"outputs": [
|
|
263
|
+
{
|
|
264
|
+
"internalType": "contract IAToken",
|
|
265
|
+
"name": "",
|
|
266
|
+
"type": "address"
|
|
267
|
+
}
|
|
268
|
+
],
|
|
269
|
+
"stateMutability": "view",
|
|
270
|
+
"type": "function"
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"inputs": [],
|
|
274
|
+
"name": "checkpoint",
|
|
275
|
+
"outputs": [],
|
|
276
|
+
"stateMutability": "nonpayable",
|
|
277
|
+
"type": "function"
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"inputs": [],
|
|
281
|
+
"name": "claimRewardsMin",
|
|
282
|
+
"outputs": [
|
|
283
|
+
{
|
|
284
|
+
"internalType": "uint256",
|
|
285
|
+
"name": "",
|
|
286
|
+
"type": "uint256"
|
|
287
|
+
}
|
|
288
|
+
],
|
|
289
|
+
"stateMutability": "view",
|
|
290
|
+
"type": "function"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"inputs": [],
|
|
294
|
+
"name": "currency",
|
|
295
|
+
"outputs": [
|
|
296
|
+
{
|
|
297
|
+
"internalType": "contract IERC20Metadata",
|
|
298
|
+
"name": "",
|
|
299
|
+
"type": "address"
|
|
300
|
+
}
|
|
301
|
+
],
|
|
302
|
+
"stateMutability": "view",
|
|
303
|
+
"type": "function"
|
|
304
|
+
},
|
|
305
|
+
{
|
|
306
|
+
"inputs": [],
|
|
307
|
+
"name": "deinvestAll",
|
|
308
|
+
"outputs": [],
|
|
309
|
+
"stateMutability": "nonpayable",
|
|
310
|
+
"type": "function"
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
"inputs": [],
|
|
314
|
+
"name": "distributeEarnings",
|
|
315
|
+
"outputs": [],
|
|
316
|
+
"stateMutability": "nonpayable",
|
|
317
|
+
"type": "function"
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
"inputs": [],
|
|
321
|
+
"name": "getInvestmentValue",
|
|
322
|
+
"outputs": [
|
|
323
|
+
{
|
|
324
|
+
"internalType": "uint256",
|
|
325
|
+
"name": "",
|
|
326
|
+
"type": "uint256"
|
|
327
|
+
}
|
|
328
|
+
],
|
|
329
|
+
"stateMutability": "view",
|
|
330
|
+
"type": "function"
|
|
331
|
+
},
|
|
332
|
+
{
|
|
333
|
+
"inputs": [
|
|
334
|
+
{
|
|
335
|
+
"internalType": "uint256",
|
|
336
|
+
"name": "liquidityMin_",
|
|
337
|
+
"type": "uint256"
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"internalType": "uint256",
|
|
341
|
+
"name": "liquidityMiddle_",
|
|
342
|
+
"type": "uint256"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"internalType": "uint256",
|
|
346
|
+
"name": "liquidityMax_",
|
|
347
|
+
"type": "uint256"
|
|
348
|
+
},
|
|
349
|
+
{
|
|
350
|
+
"internalType": "uint256",
|
|
351
|
+
"name": "claimRewardsMin_",
|
|
352
|
+
"type": "uint256"
|
|
353
|
+
},
|
|
354
|
+
{
|
|
355
|
+
"internalType": "uint256",
|
|
356
|
+
"name": "reinvestRewardsMin_",
|
|
357
|
+
"type": "uint256"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"internalType": "uint256",
|
|
361
|
+
"name": "maxSlippage_",
|
|
362
|
+
"type": "uint256"
|
|
363
|
+
}
|
|
364
|
+
],
|
|
365
|
+
"name": "initialize",
|
|
366
|
+
"outputs": [],
|
|
367
|
+
"stateMutability": "nonpayable",
|
|
368
|
+
"type": "function"
|
|
369
|
+
},
|
|
370
|
+
{
|
|
371
|
+
"inputs": [],
|
|
372
|
+
"name": "lastTweak",
|
|
373
|
+
"outputs": [
|
|
374
|
+
{
|
|
375
|
+
"internalType": "uint40",
|
|
376
|
+
"name": "",
|
|
377
|
+
"type": "uint40"
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"internalType": "uint56",
|
|
381
|
+
"name": "",
|
|
382
|
+
"type": "uint56"
|
|
383
|
+
}
|
|
384
|
+
],
|
|
385
|
+
"stateMutability": "view",
|
|
386
|
+
"type": "function"
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"inputs": [],
|
|
390
|
+
"name": "lendingPool",
|
|
391
|
+
"outputs": [
|
|
392
|
+
{
|
|
393
|
+
"internalType": "contract ILendingPool",
|
|
394
|
+
"name": "",
|
|
395
|
+
"type": "address"
|
|
396
|
+
}
|
|
397
|
+
],
|
|
398
|
+
"stateMutability": "view",
|
|
399
|
+
"type": "function"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"inputs": [],
|
|
403
|
+
"name": "liquidityMax",
|
|
404
|
+
"outputs": [
|
|
405
|
+
{
|
|
406
|
+
"internalType": "uint256",
|
|
407
|
+
"name": "",
|
|
408
|
+
"type": "uint256"
|
|
409
|
+
}
|
|
410
|
+
],
|
|
411
|
+
"stateMutability": "view",
|
|
412
|
+
"type": "function"
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"inputs": [],
|
|
416
|
+
"name": "liquidityMiddle",
|
|
417
|
+
"outputs": [
|
|
418
|
+
{
|
|
419
|
+
"internalType": "uint256",
|
|
420
|
+
"name": "",
|
|
421
|
+
"type": "uint256"
|
|
422
|
+
}
|
|
423
|
+
],
|
|
424
|
+
"stateMutability": "view",
|
|
425
|
+
"type": "function"
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"inputs": [],
|
|
429
|
+
"name": "liquidityMin",
|
|
430
|
+
"outputs": [
|
|
431
|
+
{
|
|
432
|
+
"internalType": "uint256",
|
|
433
|
+
"name": "",
|
|
434
|
+
"type": "uint256"
|
|
435
|
+
}
|
|
436
|
+
],
|
|
437
|
+
"stateMutability": "view",
|
|
438
|
+
"type": "function"
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"inputs": [],
|
|
442
|
+
"name": "maxSlippage",
|
|
443
|
+
"outputs": [
|
|
444
|
+
{
|
|
445
|
+
"internalType": "uint256",
|
|
446
|
+
"name": "",
|
|
447
|
+
"type": "uint256"
|
|
448
|
+
}
|
|
449
|
+
],
|
|
450
|
+
"stateMutability": "view",
|
|
451
|
+
"type": "function"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"inputs": [],
|
|
455
|
+
"name": "pause",
|
|
456
|
+
"outputs": [],
|
|
457
|
+
"stateMutability": "nonpayable",
|
|
458
|
+
"type": "function"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"inputs": [],
|
|
462
|
+
"name": "paused",
|
|
463
|
+
"outputs": [
|
|
464
|
+
{
|
|
465
|
+
"internalType": "bool",
|
|
466
|
+
"name": "",
|
|
467
|
+
"type": "bool"
|
|
468
|
+
}
|
|
469
|
+
],
|
|
470
|
+
"stateMutability": "view",
|
|
471
|
+
"type": "function"
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
"inputs": [],
|
|
475
|
+
"name": "policyPool",
|
|
476
|
+
"outputs": [
|
|
477
|
+
{
|
|
478
|
+
"internalType": "contract IPolicyPool",
|
|
479
|
+
"name": "",
|
|
480
|
+
"type": "address"
|
|
481
|
+
}
|
|
482
|
+
],
|
|
483
|
+
"stateMutability": "view",
|
|
484
|
+
"type": "function"
|
|
485
|
+
},
|
|
486
|
+
{
|
|
487
|
+
"inputs": [],
|
|
488
|
+
"name": "priceOracle",
|
|
489
|
+
"outputs": [
|
|
490
|
+
{
|
|
491
|
+
"internalType": "contract IPriceOracle",
|
|
492
|
+
"name": "",
|
|
493
|
+
"type": "address"
|
|
494
|
+
}
|
|
495
|
+
],
|
|
496
|
+
"stateMutability": "view",
|
|
497
|
+
"type": "function"
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
"inputs": [],
|
|
501
|
+
"name": "proxiableUUID",
|
|
502
|
+
"outputs": [
|
|
503
|
+
{
|
|
504
|
+
"internalType": "bytes32",
|
|
505
|
+
"name": "",
|
|
506
|
+
"type": "bytes32"
|
|
507
|
+
}
|
|
508
|
+
],
|
|
509
|
+
"stateMutability": "view",
|
|
510
|
+
"type": "function"
|
|
511
|
+
},
|
|
512
|
+
{
|
|
513
|
+
"inputs": [],
|
|
514
|
+
"name": "rebalance",
|
|
515
|
+
"outputs": [],
|
|
516
|
+
"stateMutability": "nonpayable",
|
|
517
|
+
"type": "function"
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
"inputs": [
|
|
521
|
+
{
|
|
522
|
+
"internalType": "uint256",
|
|
523
|
+
"name": "paymentAmount",
|
|
524
|
+
"type": "uint256"
|
|
525
|
+
}
|
|
526
|
+
],
|
|
527
|
+
"name": "refillWallet",
|
|
528
|
+
"outputs": [],
|
|
529
|
+
"stateMutability": "nonpayable",
|
|
530
|
+
"type": "function"
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
"inputs": [],
|
|
534
|
+
"name": "reinvestRewardToken",
|
|
535
|
+
"outputs": [],
|
|
536
|
+
"stateMutability": "nonpayable",
|
|
537
|
+
"type": "function"
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
"inputs": [],
|
|
541
|
+
"name": "reinvestRewardsMin",
|
|
542
|
+
"outputs": [
|
|
543
|
+
{
|
|
544
|
+
"internalType": "uint256",
|
|
545
|
+
"name": "",
|
|
546
|
+
"type": "uint256"
|
|
547
|
+
}
|
|
548
|
+
],
|
|
549
|
+
"stateMutability": "view",
|
|
550
|
+
"type": "function"
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"inputs": [],
|
|
554
|
+
"name": "rewardAToken",
|
|
555
|
+
"outputs": [
|
|
556
|
+
{
|
|
557
|
+
"internalType": "contract IAToken",
|
|
558
|
+
"name": "",
|
|
559
|
+
"type": "address"
|
|
560
|
+
}
|
|
561
|
+
],
|
|
562
|
+
"stateMutability": "view",
|
|
563
|
+
"type": "function"
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
"inputs": [],
|
|
567
|
+
"name": "rewardToken",
|
|
568
|
+
"outputs": [
|
|
569
|
+
{
|
|
570
|
+
"internalType": "contract IERC20Metadata",
|
|
571
|
+
"name": "",
|
|
572
|
+
"type": "address"
|
|
573
|
+
}
|
|
574
|
+
],
|
|
575
|
+
"stateMutability": "view",
|
|
576
|
+
"type": "function"
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"inputs": [
|
|
580
|
+
{
|
|
581
|
+
"internalType": "uint256",
|
|
582
|
+
"name": "newValue",
|
|
583
|
+
"type": "uint256"
|
|
584
|
+
}
|
|
585
|
+
],
|
|
586
|
+
"name": "setClaimRewardsMin",
|
|
587
|
+
"outputs": [],
|
|
588
|
+
"stateMutability": "nonpayable",
|
|
589
|
+
"type": "function"
|
|
590
|
+
},
|
|
591
|
+
{
|
|
592
|
+
"inputs": [
|
|
593
|
+
{
|
|
594
|
+
"internalType": "uint256",
|
|
595
|
+
"name": "newValue",
|
|
596
|
+
"type": "uint256"
|
|
597
|
+
}
|
|
598
|
+
],
|
|
599
|
+
"name": "setLiquidityMax",
|
|
600
|
+
"outputs": [],
|
|
601
|
+
"stateMutability": "nonpayable",
|
|
602
|
+
"type": "function"
|
|
603
|
+
},
|
|
604
|
+
{
|
|
605
|
+
"inputs": [
|
|
606
|
+
{
|
|
607
|
+
"internalType": "uint256",
|
|
608
|
+
"name": "newValue",
|
|
609
|
+
"type": "uint256"
|
|
610
|
+
}
|
|
611
|
+
],
|
|
612
|
+
"name": "setLiquidityMiddle",
|
|
613
|
+
"outputs": [],
|
|
614
|
+
"stateMutability": "nonpayable",
|
|
615
|
+
"type": "function"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"inputs": [
|
|
619
|
+
{
|
|
620
|
+
"internalType": "uint256",
|
|
621
|
+
"name": "newValue",
|
|
622
|
+
"type": "uint256"
|
|
623
|
+
}
|
|
624
|
+
],
|
|
625
|
+
"name": "setLiquidityMin",
|
|
626
|
+
"outputs": [],
|
|
627
|
+
"stateMutability": "nonpayable",
|
|
628
|
+
"type": "function"
|
|
629
|
+
},
|
|
630
|
+
{
|
|
631
|
+
"inputs": [
|
|
632
|
+
{
|
|
633
|
+
"internalType": "uint256",
|
|
634
|
+
"name": "min",
|
|
635
|
+
"type": "uint256"
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
"internalType": "uint256",
|
|
639
|
+
"name": "middle",
|
|
640
|
+
"type": "uint256"
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"internalType": "uint256",
|
|
644
|
+
"name": "max",
|
|
645
|
+
"type": "uint256"
|
|
646
|
+
}
|
|
647
|
+
],
|
|
648
|
+
"name": "setLiquidityMultiple",
|
|
649
|
+
"outputs": [],
|
|
650
|
+
"stateMutability": "nonpayable",
|
|
651
|
+
"type": "function"
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
"inputs": [
|
|
655
|
+
{
|
|
656
|
+
"internalType": "uint256",
|
|
657
|
+
"name": "newValue",
|
|
658
|
+
"type": "uint256"
|
|
659
|
+
}
|
|
660
|
+
],
|
|
661
|
+
"name": "setMaxSlippage",
|
|
662
|
+
"outputs": [],
|
|
663
|
+
"stateMutability": "nonpayable",
|
|
664
|
+
"type": "function"
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
"inputs": [
|
|
668
|
+
{
|
|
669
|
+
"internalType": "uint256",
|
|
670
|
+
"name": "newValue",
|
|
671
|
+
"type": "uint256"
|
|
672
|
+
}
|
|
673
|
+
],
|
|
674
|
+
"name": "setReinvestRewardsMin",
|
|
675
|
+
"outputs": [],
|
|
676
|
+
"stateMutability": "nonpayable",
|
|
677
|
+
"type": "function"
|
|
678
|
+
},
|
|
679
|
+
{
|
|
680
|
+
"inputs": [
|
|
681
|
+
{
|
|
682
|
+
"internalType": "uint256",
|
|
683
|
+
"name": "amount",
|
|
684
|
+
"type": "uint256"
|
|
685
|
+
}
|
|
686
|
+
],
|
|
687
|
+
"name": "swapRewards",
|
|
688
|
+
"outputs": [
|
|
689
|
+
{
|
|
690
|
+
"internalType": "uint256",
|
|
691
|
+
"name": "",
|
|
692
|
+
"type": "uint256"
|
|
693
|
+
},
|
|
694
|
+
{
|
|
695
|
+
"internalType": "uint256",
|
|
696
|
+
"name": "",
|
|
697
|
+
"type": "uint256"
|
|
698
|
+
}
|
|
699
|
+
],
|
|
700
|
+
"stateMutability": "nonpayable",
|
|
701
|
+
"type": "function"
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
"inputs": [],
|
|
705
|
+
"name": "totalInvestable",
|
|
706
|
+
"outputs": [
|
|
707
|
+
{
|
|
708
|
+
"internalType": "uint256",
|
|
709
|
+
"name": "",
|
|
710
|
+
"type": "uint256"
|
|
711
|
+
}
|
|
712
|
+
],
|
|
713
|
+
"stateMutability": "view",
|
|
714
|
+
"type": "function"
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
"inputs": [],
|
|
718
|
+
"name": "unclaimedRewards",
|
|
719
|
+
"outputs": [
|
|
720
|
+
{
|
|
721
|
+
"internalType": "uint256",
|
|
722
|
+
"name": "",
|
|
723
|
+
"type": "uint256"
|
|
724
|
+
}
|
|
725
|
+
],
|
|
726
|
+
"stateMutability": "view",
|
|
727
|
+
"type": "function"
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
"inputs": [],
|
|
731
|
+
"name": "unpause",
|
|
732
|
+
"outputs": [],
|
|
733
|
+
"stateMutability": "nonpayable",
|
|
734
|
+
"type": "function"
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
"inputs": [
|
|
738
|
+
{
|
|
739
|
+
"internalType": "address",
|
|
740
|
+
"name": "newImplementation",
|
|
741
|
+
"type": "address"
|
|
742
|
+
}
|
|
743
|
+
],
|
|
744
|
+
"name": "upgradeTo",
|
|
745
|
+
"outputs": [],
|
|
746
|
+
"stateMutability": "nonpayable",
|
|
747
|
+
"type": "function"
|
|
748
|
+
},
|
|
749
|
+
{
|
|
750
|
+
"inputs": [
|
|
751
|
+
{
|
|
752
|
+
"internalType": "address",
|
|
753
|
+
"name": "newImplementation",
|
|
754
|
+
"type": "address"
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
"internalType": "bytes",
|
|
758
|
+
"name": "data",
|
|
759
|
+
"type": "bytes"
|
|
760
|
+
}
|
|
761
|
+
],
|
|
762
|
+
"name": "upgradeToAndCall",
|
|
763
|
+
"outputs": [],
|
|
764
|
+
"stateMutability": "payable",
|
|
765
|
+
"type": "function"
|
|
766
|
+
}
|
|
767
|
+
],
|
|
768
|
+
"bytecode": "0x6101606040523060601b6080523480156200001957600080fd5b5060405162005fe738038062005fe78339810160408190526200003c91620003ce565b6001600160601b0319606084811b821660a05283811b821660c05282901b16610140526040516321f8a72160e01b8152600160f81b60048201526000906001600160a01b038416906321f8a7219060240160206040518083038186803b158015620000a657600080fd5b505afa158015620000bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000e19190620003a7565b90506000816001600160a01b031663d2493b6c866001600160a01b031663e5a6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200012e57600080fd5b505afa15801562000143573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001699190620003a7565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160606040518083038186803b158015620001a957600080fd5b505afa158015620001be573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e49190620003ce565b50509050806001600160a01b031660e0816001600160a01b031660601b815250506000816001600160a01b03166375d264136040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024157600080fd5b505afa15801562000256573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027c9190620003a7565b6001600160a01b03166399248ea76040518163ffffffff1660e01b815260040160206040518083038186803b158015620002b557600080fd5b505afa158015620002ca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002f09190620003a7565b606081901b6001600160601b031916610120526040516334924edb60e21b81526001600160a01b03808316600483015291925060009185169063d2493b6c9060240160606040518083038186803b1580156200034b57600080fd5b505afa15801562000360573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003869190620003ce565b505060601b6001600160601b03191661010052506200043b95505050505050565b600060208284031215620003ba57600080fd5b8151620003c78162000422565b9392505050565b600080600060608486031215620003e457600080fd5b8351620003f18162000422565b6020850151909350620004048162000422565b6040850151909250620004178162000422565b809150509250925092565b6001600160a01b03811681146200043857600080fd5b50565b60805160601c60a05160601c60c05160601c60e05160601c6101005160601c6101205160601c6101405160601c6159d762000610600039600081816127eb015281816138c3015261396a0152600081816107860152818161137701528181611eb50152818161309e01528181614211015281816142be015261438d01526000818161058e015281816112dd0152818161253d015281816137070152613e680152600081816106770152818161123f015281816124dc015281816126820152613e06015260008181610d23015261204901526000818161042f015281816107ee015281816108850152818161093401528181610a5e01528181610acd01528181610c1b01528181610f5701528181611071015281816115ce015281816117210152818161183801528181611a0301528181611c9701528181611dae015281816120c001528181612280015281816122e6015281816123950152818161247101528181612746015281816128b601528181612b9d01528181612e9801528181613aff01528181613bae01528181613d2e0152818161400201528181614169015281816143420152614a02015260008181610e5001528181610e900152818161143901528181611479015261150801526159d76000f3fe6080604052600436106102675760003560e01c806366bcb77111610144578063a59a9973116100b6578063e5a6b10f1161007a578063e5a6b10f1461072e578063f67b2bad14610743578063f7c618c114610777578063f85f91b4146107aa578063f9c4fd1b146107bf578063fba75b94146107d457600080fd5b8063a59a99731461069b578063aba01a2a146106b0578063c2c4c5c1146106d0578063cec16f3f146106e5578063dc3b352c146106fa57600080fd5b80638456cb59116101085780638456cb59146105f457806385a5a1ae146106095780638c04166f146106295780638d7ddd901461063e5780639eb7165b14610653578063a0c1f15e1461066857600080fd5b806366bcb7711461053557806376577eae1461056a5780637afa33311461057f5780637d7c2a1c146105b25780637ed5acfa146105c757600080fd5b8063468a8c9f116101dd57806352d1902d116101a157806352d1902d1461047b578063548d49ee146104905780635a89c5ac146104b05780635b494dd5146104d05780635c975abb146104f25780635e5415ed1461051557600080fd5b8063468a8c9f146103c45780634a47a3e0146103fe5780634d15eb03146104205780634dd93bd3146104535780634f1ef2861461046857600080fd5b80632630c12f1161022f5780632630c12f1461030d5780632d7aa82b1461033a5780633659cfe61461035a5780633b6612c81461037a5780633f4ba83a1461038f57806343f68a49146103a457600080fd5b8063054001151461026c57806307b6ed84146102945780631014a0c2146102a95780631a2afb1d146102cb57806324ea54f4146102eb575b600080fd5b34801561027857600080fd5b506102816107e9565b6040519081526020015b60405180910390f35b3480156102a057600080fd5b5060cf54610281565b3480156102b557600080fd5b506102c96102c4366004615231565b610a5b565b005b3480156102d757600080fd5b506102c96102e6366004615231565b610bfb565b3480156102f757600080fd5b5061028160008051602061598283398151915281565b34801561031957600080fd5b50610322610d1f565b6040516001600160a01b03909116815260200161028b565b34801561034657600080fd5b506102c9610355366004615276565b610db7565b34801561036657600080fd5b506102c9610375366004615067565b610e45565b34801561038657600080fd5b5060cc54610281565b34801561039b57600080fd5b506102c9610f25565b3480156103b057600080fd5b506102c96103bf366004615231565b611051565b3480156103d057600080fd5b5060c9546040805164ffffffffff83168152600160281b90920466ffffffffffffff1660208301520161028b565b34801561040a57600080fd5b5061028160008051602061596283398151915281565b34801561042c57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610322565b34801561045f57600080fd5b5061028161123a565b6102c96104763660046150a1565b61142e565b34801561048757600080fd5b506102816114fb565b34801561049c57600080fd5b506102c96104ab36600461524a565b6115ae565b3480156104bc57600080fd5b506102c96104cb366004615231565b611701565b3480156104dc57600080fd5b5061028160008051602061591b83398151915281565b3480156104fe57600080fd5b5060975460ff16604051901515815260200161028b565b34801561052157600080fd5b506102c9610530366004615231565b611818565b34801561054157600080fd5b50610555610550366004615231565b6119dd565b6040805192835260208301919091520161028b565b34801561057657600080fd5b506102c9611c13565b34801561058b57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610322565b3480156105be57600080fd5b506102c9611c48565b3480156105d357600080fd5b506105de6201518081565b60405164ffffffffff909116815260200161028b565b34801561060057600080fd5b506102c9611c86565b34801561061557600080fd5b506102c9610624366004615231565b611d8e565b34801561063557600080fd5b5060d054610281565b34801561064a57600080fd5b5060ca54610281565b34801561065f57600080fd5b506102c9611ea5565b34801561067457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610322565b3480156106a757600080fd5b50610322612045565b3480156106bc57600080fd5b506102c96106cb366004615231565b6120a0565b3480156106dc57600080fd5b506102c961226d565b3480156106f157600080fd5b506102c961227d565b34801561070657600080fd5b506102817fed3e8296abddb00b3f563f774140321369479c87c471890eb52f2e412b5de74c81565b34801561073a57600080fd5b5061032261246d565b34801561074f57600080fd5b506102817fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b34801561078357600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610322565b3480156107b657600080fd5b506102816124c8565b3480156107cb57600080fd5b5060cb54610281565b3480156107e057600080fd5b5060ce54610281565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166365e29c7e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561084557600080fd5b505afa158015610859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087d9190615218565b90506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dea167d56040518163ffffffff1660e01b815260040160206040518083038186803b1580156108dc57600080fd5b505afa1580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109149190615218565b811015610a495760405163b0ec4bcf60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b0ec4bcf9060240160206040518083038186803b15801561097e57600080fd5b505afa158015610992573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b69190615084565b9050806001600160a01b03166365e29c7e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109f157600080fd5b505afa158015610a05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a299190615218565b610a33908461569f565b9250508080610a4190615872565b915050610883565b50610a54818361569f565b9250505090565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610aac5760405162461bcd60e51b8152600401610aa39061558d565b60405180910390fd5b6000610ab661246d565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906370a082319060240160206040518083038186803b158015610b1957600080fd5b505afa158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b519190615218565b9050818110610bb85760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b6064820152608401610aa3565b6000610bc261123a565b905060008260cb5485610bd5919061569f565b610bdf91906157e6565b905081811115610bec5750805b610bf58161267d565b50505050565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7257600080fd5b505afa158015610c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610caa9190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401610cd9939291906153e9565b60006040518083038186803b158015610cf157600080fd5b505afa158015610d05573d6000803e3d6000fd5b50505050610d1283612910565b610d1a6129c4565b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7a57600080fd5b505afa158015610d8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db29190615084565b905090565b600054610100900460ff16610dd25760005460ff1615610dd6565b303b155b610df25760405162461bcd60e51b8152600401610aa3906154fd565b600054610100900460ff16158015610e14576000805461ffff19166101011790555b610e1f878787612a39565b610e2a848484612ac0565b8015610e3c576000805461ff00191690555b50505050505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e8e5760405162461bcd60e51b8152600401610aa39061543b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ed76000805160206158fb833981519152546001600160a01b031690565b6001600160a01b031614610efd5760405162461bcd60e51b8152600401610aa390615487565b610f0681612b6b565b60408051600080825260208201909252610f2291839190612c87565b50565b6000805160206159828339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fae57600080fd5b505afa158015610fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe69190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611015939291906153e9565b60006040518083038186803b15801561102d57600080fd5b505afa158015611041573d6000803e3d6000fd5b5050505061104d612e01565b5050565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111009190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161112f939291906153e9565b60006040518083038186803b15801561114757600080fd5b505afa15801561115b573d6000803e3d6000fd5b5050505067016345785d8a00008311156111875760405162461bcd60e51b8152600401610aa39061554b565b60006111a0600080516020615962833981519152612e94565b1590508015806111c357506111c360d054856af8277896582678ac000000612fad565b6112295760405162461bcd60e51b815260206004820152603160248201527f547765616b2065786365656465643a206d6178536c69707061676520747765616044820152706b73206f6e6c7920757020746f2033302560781b6064820152608401610aa3565b60d0849055610bf560188583613036565b6000807f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b15801561129f57600080fd5b505afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190615218565b905060007f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b15801561133d57600080fd5b505afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190615218565b7f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b1580156113d757600080fd5b505afa1580156113eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140f9190615218565b611419919061569f565b90506114248161308f565b610a54908361569f565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156114775760405162461bcd60e51b8152600401610aa39061543b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114c06000805160206158fb833981519152546001600160a01b031690565b6001600160a01b0316146114e65760405162461bcd60e51b8152600401610aa390615487565b6114ef82612b6b565b61104d82826001612c87565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461159b5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610aa3565b506000805160206158fb83398151915290565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561162557600080fd5b505afa158015611639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165d9190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161168c939291906153e9565b60006040518083038186803b1580156116a457600080fd5b505afa1580156116b8573d6000803e3d6000fd5b5050505060001985146116ce576116ce85612910565b60001984146116e0576116e0846134da565b60001983146116f2576116f283613591565b6116fa6129c4565b5050505050565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561177857600080fd5b505afa15801561178c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b09190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b81526004016117df939291906153e9565b60006040518083038186803b1580156117f757600080fd5b505afa15801561180b573d6000803e3d6000fd5b50505050610d1283613591565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561188f57600080fd5b505afa1580156118a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c79190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b81526004016118f6939291906153e9565b60006040518083038186803b15801561190e57600080fd5b505afa158015611922573d6000803e3d6000fd5b50505050600061193f600080516020615962833981519152612e94565b159050801580611962575061196260ce54856af8277896582678ac000000612fad565b6119cc5760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a20636c61696d526577617264734d696e20604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610aa3565b60ce849055610bf560168583613036565b6000807fed3e8296abddb00b3f563f774140321369479c87c471890eb52f2e412b5de74c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611a5a57600080fd5b505afa158015611a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a929190615084565b6040516312d9a6ad60e01b8152600481018390523360248201526001600160a01b0391909116906312d9a6ad9060440160006040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b50505050600080611aff8630613645565b915091506000611b0d612045565b90506000611b1961246d565b60405163095ea7b360e01b81526001600160a01b038481166004830152602482018690529192509082169063095ea7b390604401602060405180830381600087803b158015611b6757600080fd5b505af1158015611b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9f91906151f6565b5060405163e8eda9df60e01b81526001600160a01b0383169063e8eda9df90611bd39084908790309060009060040161535f565b600060405180830381600087803b158015611bed57600080fd5b505af1158015611c01573d6000803e3d6000fd5b50959850939650505050505050915091565b60975460ff1615611c365760405162461bcd60e51b8152600401610aa3906154d3565b611c46611c4161123a565b613a86565b565b60975460ff1615611c6b5760405162461bcd60e51b8152600401610aa3906154d3565b611c756000613dda565b50611c7e613fbe565b611c46611ea5565b6000805160206159828339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611cee57600080fd5b505afa158015611d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d269190615084565b6040516312d9a6ad60e01b8152600481018390523360248201526001600160a01b0391909116906312d9a6ad9060440160006040518083038186803b158015611d6e57600080fd5b505afa158015611d82573d6000803e3d6000fd5b50505050610f226140e3565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611e0557600080fd5b505afa158015611e19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3d9190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611e6c939291906153e9565b60006040518083038186803b158015611e8457600080fd5b505afa158015611e98573d6000803e3d6000fd5b50505050610d12836134da565b6000611eaf612045565b905060007f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a082319060240160206040518083038186803b158015611f1957600080fd5b505afa158015611f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f519190615218565b905060cf548111611f6157505050565b60405163095ea7b360e01b81526001600160a01b0384811660048301526024820183905283169063095ea7b390604401602060405180830381600087803b158015611fab57600080fd5b505af1158015611fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe391906151f6565b5060405163e8eda9df60e01b81526001600160a01b0384169063e8eda9df906120179085908590309060009060040161535f565b600060405180830381600087803b15801561203157600080fd5b505af1158015610e3c573d6000803e3d6000fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7a57600080fd5b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561211757600080fd5b505afa15801561212b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214f9190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161217e939291906153e9565b60006040518083038186803b15801561219657600080fd5b505afa1580156121aa573d6000803e3d6000fd5b5050505060006121c7600080516020615962833981519152612e94565b1590508015806121ea57506121ea60cf54856af8277896582678ac000000612fad565b61225c5760405162461bcd60e51b815260206004820152603860248201527f547765616b2065786365656465643a207265696e76657374526577617264734d60448201527f696e20747765616b73206f6e6c7920757020746f2033302500000000000000006064820152608401610aa3565b60cf849055610bf560178583613036565b612275611c13565b611c46611c48565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146122c55760405162461bcd60e51b8152600401610aa39061558d565b60006122cf61246d565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906370a082319060240160206040518083038186803b15801561233257600080fd5b505afa158015612346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236a9190615218565b905061237461413b565b600061237e61246d565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906370a082319060240160206040518083038186803b1580156123e157600080fd5b505afa1580156123f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124199190615218565b9050612428611c4183836157e6565b600060cd557fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c6561245883836157e6565b60405190815260200160405180910390a15050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7a57600080fd5b6040805160028082526060820183526000927f000000000000000000000000000000000000000000000000000000000000000092849290916020830190803683370190505090508181600081518110612523576125236158b9565b6001600160a01b03909216602092830291909101909101527f00000000000000000000000000000000000000000000000000000000000000008160018151811061256f5761256f6158b9565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b03166375d264136040518163ffffffff1660e01b815260040160206040518083038186803b1580156125c857600080fd5b505afa1580156125dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126009190615084565b6001600160a01b0316638b599f2682306040518363ffffffff1660e01b815260040161262d92919061538c565b60206040518083038186803b15801561264557600080fd5b505afa158015612659573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190615218565b8080807f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b1580156126e257600080fd5b505afa1580156126f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271a9190615218565b101561272557506000195b61272d612045565b6001600160a01b03166369328dec61274361246d565b837f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b81526004016127839392919061533c565b602060405180830381600087803b15801561279d57600080fd5b505af11580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d59190615218565b6127df90836157e6565b915081156128fe5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631f00ca7484612821614366565b6040518363ffffffff1660e01b815260040161283e929190615619565b60006040518083038186803b15801561285657600080fd5b505afa15801561286a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128929190810190615149565b6000815181106128a4576128a46158b9565b6020026020010151905060006128da827f0000000000000000000000000000000000000000000000000000000000000000613645565b915050838110156128f6576128ef81856157e6565b93506128fb565b600093505b50505b610d1a61290b83856157e6565b614417565b6000612929600080516020615962833981519152612e94565b15905080158061294c575061294c60ca54836af8277896582678ac000000614470565b6129b35760405162461bcd60e51b815260206004820152603260248201527f547765616b2065786365656465643a206c69717569646974794d696e20747765604482015271616b73206f6e6c7920757020746f2033302560701b6064820152608401610aa3565b60ca82905561104d60138383613036565b60cb5460ca54111580156129dc575060cc5460cb5411155b611c465760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b6064820152608401610aa3565b600054610100900460ff16612a545760005460ff1615612a58565b303b155b612a745760405162461bcd60e51b8152600401610aa3906154fd565b600054610100900460ff16158015612a96576000805461ffff19166101011790555b612a9e6144eb565b612aa984848461456c565b8015610bf5576000805461ff001916905550505050565b600054610100900460ff16612adb5760005460ff1615612adf565b303b155b612afb5760405162461bcd60e51b8152600401610aa3906154fd565b600054610100900460ff16158015612b1d576000805461ffff19166101011790555b60ce84905560cf83905567016345785d8a0000821115612b4f5760405162461bcd60e51b8152600401610aa39061554b565b60d08290558015610bf5576000805461ff001916905550505050565b6000805160206159828339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015612bf457600080fd5b505afa158015612c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2c9190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401612c5b939291906153e9565b60006040518083038186803b158015612c7357600080fd5b505afa158015610e3c573d6000803e3d6000fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612cba57610d1a836145e0565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612cf357600080fd5b505afa925050508015612d23575060408051601f3d908101601f19168201909252612d2091810190615218565b60015b612d865760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610aa3565b6000805160206158fb8339815191528114612df55760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610aa3565b50610d1a83838361467c565b60975460ff16612e4a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610aa3565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015612eef57600080fd5b505afa158015612f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f279190615084565b604051632474521560e21b8152600481018490523360248201526001600160a01b0391909116906391d148549060440160206040518083038186803b158015612f6f57600080fd5b505afa158015612f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa791906151f6565b92915050565b600082841415612fbf5750600161302f565b83612fd65750670de0b6b3a764000081101561302f565b82612fe35750600061302f565b828410156130125781670de0b6b3a7640000612fff85876146a1565b61300991906157e6565b1115905061302f565b8161301d84866146a1565b61300990670de0b6b3a76400006157e6565b9392505050565b801561304557613045836147a1565b82601b811115613057576130576158a3565b6040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a2505050565b60008061309a610d1f565b90507f000000000000000000000000000000000000000000000000000000000000000060006130c761246d565b60405163b3596f0760e01b81526001600160a01b0380831660048301529192506000916131ca919086169063b3596f079060240160206040518083038186803b15801561311357600080fd5b505afa158015613127573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314b9190615218565b60405163b3596f0760e01b81526001600160a01b03868116600483015287169063b3596f079060240160206040518083038186803b15801561318c57600080fd5b505afa1580156131a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c49190615218565b906146a1565b9050816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561320557600080fd5b505afa158015613219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061323d91906152b9565b60ff16836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561327957600080fd5b505afa15801561328d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b191906152b9565b60ff1611156133c257816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156132f357600080fd5b505afa158015613307573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061332b91906152b9565b836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561336457600080fd5b505afa158015613378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339c91906152b9565b6133a69190615823565b6133b190600a61571c565b6133bb90826156b7565b90506134c6565b816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fb57600080fd5b505afa15801561340f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343391906152b9565b836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561346c57600080fd5b505afa158015613480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134a491906152b9565b6134ae9190615823565b6134b990600a61571c565b6134c390826157c7565b90505b6134d0868261490a565b9695505050505050565b60006134f3600080516020615962833981519152612e94565b159050801580613516575061351660cb54836af8277896582678ac000000614470565b6135805760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a206c69717569646974794d6964646c6520604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610aa3565b60cb82905561104d60148383613036565b60006135aa600080516020615962833981519152612e94565b1590508015806135cd57506135cd60cc54836af8277896582678ac000000614470565b6136345760405162461bcd60e51b815260206004820152603260248201527f547765616b2065786365656465643a206c69717569646974794d617820747765604482015271616b73206f6e6c7920757020746f2033302560701b6064820152608401610aa3565b60cc82905561104d60158383613036565b6000806000613652614366565b9050600081600081518110613669576136696158b9565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156136b457600080fd5b505afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190615218565b90508581101561385f57600061370282886157e6565b9050807f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b15801561376757600080fd5b505afa15801561377b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061379f9190615218565b10156137aa57506000195b6137b2612045565b6001600160a01b03166369328dec846000815181106137d3576137d36158b9565b602002602001015183306040518463ffffffff1660e01b81526004016137fb9392919061533c565b602060405180830381600087803b15801561381557600080fd5b505af1158015613829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384d9190615218565b613857908361569f565b915050613862565b50845b600061388c60d054670de0b6b3a764000061387d91906157e6565b6138868461308f565b9061490a565b9050826000815181106138a1576138a16158b9565b602090810291909101015160405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018590529091169063095ea7b390604401602060405180830381600087803b15801561391757600080fd5b505af115801561392b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061394f91906151f6565b506040516338ed173960e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906338ed1739906139a7908690869089908d904290600401615632565b600060405180830381600087803b1580156139c157600080fd5b505af11580156139d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526139fd9190810190615149565b90507f63b0a0ad718a7c8cb64e4057058462c7495069b51821314a190b025aba7d50198382600181518110613a3457613a346158b9565b6020026020010151604051613a53929190918252602082015260400190565b60405180910390a18281600181518110613a6f57613a6f6158b9565b602002602001015195509550505050509250929050565b60975460ff1615613aa95760405162461bcd60e51b8152600401610aa3906154d3565b60008060cd54831115613ace5760cd54613ac390846157e6565b905060019150613aed565b60cd54831015610d1a578260cd54613ae691906157e6565b9050600091505b6000613af76107e9565b90508160005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dea167d56040518163ffffffff1660e01b815260040160206040518083038186803b158015613b5657600080fd5b505afa158015613b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8e9190615218565b811015613d095760405163b0ec4bcf60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b0ec4bcf9060240160206040518083038186803b158015613bf857600080fd5b505afa158015613c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c309190615084565b90506000613c7b613c7486846001600160a01b03166365e29c7e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561318c57600080fd5b879061490a565b90508015613cf45760405163ab60016960e01b81526004810182905287151560248201526001600160a01b0383169063ab60016990604401600060405180830381600087803b158015613ccd57600080fd5b505af1158015613ce1573d6000803e3d6000fd5b505050508084613cf191906157e6565b93505b50508080613d0190615872565b915050613afd565b508015613d935760405163ab60016960e01b81526004810182905284151560248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ab60016990604401600060405180830381600087803b158015613d7a57600080fd5b505af1158015613d8e573d6000803e3d6000fd5b505050505b60cd859055604080518515158152602081018590527f91a6cbd27bc7cdd21da57fbb08ebfaf5cece633ca7dd5f1741bff39f4be3ad4f910160405180910390a15050505050565b60008180613df0575060ce54613dee6124c8565b115b15613fb6576040805160028082526060820183527f00000000000000000000000000000000000000000000000000000000000000009260009291906020830190803683370190505090508181600081518110613e4e57613e4e6158b9565b6001600160a01b03909216602092830291909101909101527f000000000000000000000000000000000000000000000000000000000000000081600181518110613e9a57613e9a6158b9565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b03166375d264136040518163ffffffff1660e01b815260040160206040518083038186803b158015613ef357600080fd5b505afa158015613f07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f2b9190615084565b6001600160a01b0316633111e7b382600019306040518463ffffffff1660e01b8152600401613f5c939291906153b6565b602060405180830381600087803b158015613f7657600080fd5b505af1158015613f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fae9190615218565b949350505050565b506000919050565b60975460ff1615613fe15760405162461bcd60e51b8152600401610aa3906154d3565b6000613feb61246d565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906370a082319060240160206040518083038186803b15801561404e57600080fd5b505afa158015614062573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140869190615218565b905060cc548111156140a857610f2260cb54826140a391906157e6565b6149db565b60ca54811015610f225760006140d26140bf61123a565b8360cb546140cd91906157e6565b614b19565b9050801561104d5761104d8161267d565b60975460ff16156141065760405162461bcd60e51b8152600401610aa3906154d3565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612e773390565b6141456001613dda565b5061414e612045565b6001600160a01b03166369328dec61416461246d565b6000197f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b81526004016141a69392919061533c565b602060405180830381600087803b1580156141c057600080fd5b505af11580156141d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141f89190615218565b50614201612045565b6001600160a01b03166369328dec7f0000000000000000000000000000000000000000000000000000000000000000600019306040518463ffffffff1660e01b81526004016142529392919061533c565b602060405180830381600087803b15801561426c57600080fd5b505af1158015614280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142a49190615218565b506040516370a0823160e01b815230600482015261104d907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561430857600080fd5b505afa15801561431c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143409190615218565b7f0000000000000000000000000000000000000000000000000000000000000000613645565b604080516002808252606080830184529260009291906020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106143bf576143bf6158b9565b60200260200101906001600160a01b031690816001600160a01b0316815250506143e761246d565b816001815181106143fa576143fa6158b9565b6001600160a01b0390921660209283029190910190910152919050565b61442360cd5482614b19565b60cd600082825461443491906157e6565b90915550506040518181527fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c65906020015b60405180910390a150565b6000828414156144825750600161302f565b8361449d57506b033b2e3c9fd0803ce800000081101561302f565b826144aa5750600061302f565b828410156144ca57816b033b2e3c9fd0803ce8000000612fff8587614b2f565b816144d58486614b2f565b613009906b033b2e3c9fd0803ce80000006157e6565b600054610100900460ff166145065760005460ff161561450a565b303b155b6145265760405162461bcd60e51b8152600401610aa3906154fd565b600054610100900460ff16158015614548576000805461ffff19166101011790555b614550614c23565b614558614c4a565b8015610f22576000805461ff001916905550565b600054610100900460ff166145875760005460ff161561458b565b303b155b6145a75760405162461bcd60e51b8152600401610aa3906154fd565b600054610100900460ff161580156145c9576000805461ffff19166101011790555b60ca84905560cb83905560cc829055612aa96129c4565b6001600160a01b0381163b61464d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610aa3565b6000805160206158fb83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61468583614c79565b6000825111806146925750805b15610d1a57610bf58383614cb9565b6000816146f05760405162461bcd60e51b815260206004820152601860248201527f7761644469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610aa3565b60006146fd6002846156b7565b9050670de0b6b3a7640000614714826000196157e6565b61471e91906156b7565b8411156147795760405162461bcd60e51b8152602060048201526024808201527f7761644469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610aa3565b828161478d670de0b6b3a7640000876157c7565b614797919061569f565b613fae91906156b7565b6000600182601b8111156147b7576147b76158a3565b6147c19190615823565b60c954600160ff929092169190911b915062015180906147e89064ffffffffff16426157fd565b64ffffffffff16111561482a5760c9805466ffffffffffffff8316600160281b026bffffffffffffffffffffffff1990911664ffffffffff4216171790555050565b60c954600160281b9004811666ffffffffffffff1661488c5760c9805464ffffffffff421664ffffffffff1966ffffffffffffff808616600160281b808604929092161702166bffffffffffffffffffffffff19909216919091171790555050565b60405162461bcd60e51b815260206004820152604760248201527f596f7520616c726561647920747765616b6564207468697320706172616d657460448201527f657220726563656e746c792e2057616974206265666f726520747765616b696e606482015266339030b3b0b4b760c91b608482015260a401610aa3565b6000821580614917575081155b1561492457506000612fa7565b816149386002670de0b6b3a76400006156b7565b614944906000196157e6565b61494e91906156b7565b8311156149a95760405162461bcd60e51b8152602060048201526024808201527f7761644d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610aa3565b670de0b6b3a76400006149bd6002826156b7565b6149c784866157c7565b6149d1919061569f565b61302f91906156b7565b60006149e5612045565b905060006149f161246d565b9050614a286001600160a01b0382167f00000000000000000000000000000000000000000000000000000000000000003086614dad565b60405163095ea7b360e01b81526001600160a01b0383811660048301526024820185905282169063095ea7b390604401602060405180830381600087803b158015614a7257600080fd5b505af1158015614a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614aaa91906151f6565b5060405163e8eda9df60e01b81526001600160a01b0383169063e8eda9df90614ade9084908790309060009060040161535f565b600060405180830381600087803b158015614af857600080fd5b505af1158015614b0c573d6000803e3d6000fd5b50505050610d1a83614e07565b6000818310614b28578161302f565b5090919050565b600081614b7e5760405162461bcd60e51b815260206004820152601860248201527f7261794469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610aa3565b6000614b8b6002846156b7565b90506b033b2e3c9fd0803ce8000000614ba6826000196157e6565b614bb091906156b7565b841115614c0b5760405162461bcd60e51b8152602060048201526024808201527f7261794469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610aa3565b828161478d6b033b2e3c9fd0803ce8000000876157c7565b600054610100900460ff16611c465760405162461bcd60e51b8152600401610aa3906155ce565b600054610100900460ff16614c715760405162461bcd60e51b8152600401610aa3906155ce565b611c46614e4e565b614c82816145e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b614d215760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610aa3565b600080846001600160a01b031684604051614d3c9190615320565b600060405180830381855af49150503d8060008114614d77576040519150601f19603f3d011682016040523d82523d6000602084013e614d7c565b606091505b5091509150614da4828260405180606001604052806027815260200161593b60279139614e81565b95945050505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bf5908590614eba565b8060cd6000828254614e19919061569f565b90915550506040518181527f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf490602001614465565b600054610100900460ff16614e755760405162461bcd60e51b8152600401610aa3906155ce565b6097805460ff19169055565b60608315614e9057508161302f565b825115614ea05782518084602001fd5b8160405162461bcd60e51b8152600401610aa39190615408565b6000614f0f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614f8c9092919063ffffffff16565b805190915015610d1a5780806020019051810190614f2d91906151f6565b610d1a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610aa3565b6060613fae8484600085856001600160a01b0385163b614fee5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610aa3565b600080866001600160a01b0316858760405161500a9190615320565b60006040518083038185875af1925050503d8060008114615047576040519150601f19603f3d011682016040523d82523d6000602084013e61504c565b606091505b509150915061505c828286614e81565b979650505050505050565b60006020828403121561507957600080fd5b813561302f816158e5565b60006020828403121561509657600080fd5b815161302f816158e5565b600080604083850312156150b457600080fd5b82356150bf816158e5565b915060208381013567ffffffffffffffff808211156150dd57600080fd5b818601915086601f8301126150f157600080fd5b813581811115615103576151036158cf565b615115601f8201601f1916850161566e565b9150808252878482850101111561512b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000602080838503121561515c57600080fd5b825167ffffffffffffffff8082111561517457600080fd5b818501915085601f83011261518857600080fd5b81518181111561519a5761519a6158cf565b8060051b91506151ab84830161566e565b8181528481019084860184860187018a10156151c657600080fd5b600095505b838610156151e95780518352600195909501949186019186016151cb565b5098975050505050505050565b60006020828403121561520857600080fd5b8151801515811461302f57600080fd5b60006020828403121561522a57600080fd5b5051919050565b60006020828403121561524357600080fd5b5035919050565b60008060006060848603121561525f57600080fd5b505081359360208301359350604090920135919050565b60008060008060008060c0878903121561528f57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000602082840312156152cb57600080fd5b815160ff8116811461302f57600080fd5b600081518084526020808501945080840160005b838110156153155781516001600160a01b0316875295820195908201906001016152f0565b509495945050505050565b60008251615332818460208701615846565b9190910192915050565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6001600160a01b03948516815260208101939093529216604082015261ffff909116606082015260800190565b60408152600061539f60408301856152dc565b905060018060a01b03831660208301529392505050565b6060815260006153c960608301866152dc565b6020830194909452506001600160a01b0391909116604090910152919050565b92835260208301919091526001600160a01b0316604082015260600190565b6020815260008251806020840152615427816040850160208701615846565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526022908201527f6d6178536c6970706167652063616e2774206265206d6f7265207468616e2031604082015261302560f01b606082015260800190565b60208082526021908201527f5468652063616c6c6572206d7573742062652074686520506f6c696379506f6f6040820152601b60fa1b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b828152604060208201526000613fae60408301846152dc565b85815284602082015260a06040820152600061565160a08301866152dc565b6001600160a01b0394909416606083015250608001529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715615697576156976158cf565b604052919050565b600082198211156156b2576156b261588d565b500190565b6000826156d457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156157145781600019048211156156fa576156fa61588d565b8085161561570757918102915b93841c93908002906156de565b509250929050565b600061302f60ff84168360008261573557506001612fa7565b8161574257506000612fa7565b816001811461575857600281146157625761577e565b6001915050612fa7565b60ff8411156157735761577361588d565b50506001821b612fa7565b5060208310610133831016604e8410600b84101617156157a1575081810a612fa7565b6157ab83836156d9565b80600019048211156157bf576157bf61588d565b029392505050565b60008160001904831182151516156157e1576157e161588d565b500290565b6000828210156157f8576157f861588d565b500390565b600064ffffffffff8381169083168181101561581b5761581b61588d565b039392505050565b600060ff821660ff84168082101561583d5761583d61588d565b90039392505050565b60005b83811015615861578181015183820152602001615849565b83811115610bf55750506000910152565b60006000198214156158865761588661588d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610f2257600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c27416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c055435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220ab94365d2124b7a48340e77d44a4c8f5097e68931e413aa45cb05281c5d3c7ee64736f6c63430008060033",
|
|
769
|
+
"deployedBytecode": "0x6080604052600436106102675760003560e01c806366bcb77111610144578063a59a9973116100b6578063e5a6b10f1161007a578063e5a6b10f1461072e578063f67b2bad14610743578063f7c618c114610777578063f85f91b4146107aa578063f9c4fd1b146107bf578063fba75b94146107d457600080fd5b8063a59a99731461069b578063aba01a2a146106b0578063c2c4c5c1146106d0578063cec16f3f146106e5578063dc3b352c146106fa57600080fd5b80638456cb59116101085780638456cb59146105f457806385a5a1ae146106095780638c04166f146106295780638d7ddd901461063e5780639eb7165b14610653578063a0c1f15e1461066857600080fd5b806366bcb7711461053557806376577eae1461056a5780637afa33311461057f5780637d7c2a1c146105b25780637ed5acfa146105c757600080fd5b8063468a8c9f116101dd57806352d1902d116101a157806352d1902d1461047b578063548d49ee146104905780635a89c5ac146104b05780635b494dd5146104d05780635c975abb146104f25780635e5415ed1461051557600080fd5b8063468a8c9f146103c45780634a47a3e0146103fe5780634d15eb03146104205780634dd93bd3146104535780634f1ef2861461046857600080fd5b80632630c12f1161022f5780632630c12f1461030d5780632d7aa82b1461033a5780633659cfe61461035a5780633b6612c81461037a5780633f4ba83a1461038f57806343f68a49146103a457600080fd5b8063054001151461026c57806307b6ed84146102945780631014a0c2146102a95780631a2afb1d146102cb57806324ea54f4146102eb575b600080fd5b34801561027857600080fd5b506102816107e9565b6040519081526020015b60405180910390f35b3480156102a057600080fd5b5060cf54610281565b3480156102b557600080fd5b506102c96102c4366004615231565b610a5b565b005b3480156102d757600080fd5b506102c96102e6366004615231565b610bfb565b3480156102f757600080fd5b5061028160008051602061598283398151915281565b34801561031957600080fd5b50610322610d1f565b6040516001600160a01b03909116815260200161028b565b34801561034657600080fd5b506102c9610355366004615276565b610db7565b34801561036657600080fd5b506102c9610375366004615067565b610e45565b34801561038657600080fd5b5060cc54610281565b34801561039b57600080fd5b506102c9610f25565b3480156103b057600080fd5b506102c96103bf366004615231565b611051565b3480156103d057600080fd5b5060c9546040805164ffffffffff83168152600160281b90920466ffffffffffffff1660208301520161028b565b34801561040a57600080fd5b5061028160008051602061596283398151915281565b34801561042c57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610322565b34801561045f57600080fd5b5061028161123a565b6102c96104763660046150a1565b61142e565b34801561048757600080fd5b506102816114fb565b34801561049c57600080fd5b506102c96104ab36600461524a565b6115ae565b3480156104bc57600080fd5b506102c96104cb366004615231565b611701565b3480156104dc57600080fd5b5061028160008051602061591b83398151915281565b3480156104fe57600080fd5b5060975460ff16604051901515815260200161028b565b34801561052157600080fd5b506102c9610530366004615231565b611818565b34801561054157600080fd5b50610555610550366004615231565b6119dd565b6040805192835260208301919091520161028b565b34801561057657600080fd5b506102c9611c13565b34801561058b57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610322565b3480156105be57600080fd5b506102c9611c48565b3480156105d357600080fd5b506105de6201518081565b60405164ffffffffff909116815260200161028b565b34801561060057600080fd5b506102c9611c86565b34801561061557600080fd5b506102c9610624366004615231565b611d8e565b34801561063557600080fd5b5060d054610281565b34801561064a57600080fd5b5060ca54610281565b34801561065f57600080fd5b506102c9611ea5565b34801561067457600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610322565b3480156106a757600080fd5b50610322612045565b3480156106bc57600080fd5b506102c96106cb366004615231565b6120a0565b3480156106dc57600080fd5b506102c961226d565b3480156106f157600080fd5b506102c961227d565b34801561070657600080fd5b506102817fed3e8296abddb00b3f563f774140321369479c87c471890eb52f2e412b5de74c81565b34801561073a57600080fd5b5061032261246d565b34801561074f57600080fd5b506102817fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b34801561078357600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610322565b3480156107b657600080fd5b506102816124c8565b3480156107cb57600080fd5b5060cb54610281565b3480156107e057600080fd5b5060ce54610281565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166365e29c7e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561084557600080fd5b505afa158015610859573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061087d9190615218565b90506000805b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dea167d56040518163ffffffff1660e01b815260040160206040518083038186803b1580156108dc57600080fd5b505afa1580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109149190615218565b811015610a495760405163b0ec4bcf60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b0ec4bcf9060240160206040518083038186803b15801561097e57600080fd5b505afa158015610992573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b69190615084565b9050806001600160a01b03166365e29c7e6040518163ffffffff1660e01b815260040160206040518083038186803b1580156109f157600080fd5b505afa158015610a05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a299190615218565b610a33908461569f565b9250508080610a4190615872565b915050610883565b50610a54818361569f565b9250505090565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614610aac5760405162461bcd60e51b8152600401610aa39061558d565b60405180910390fd5b6000610ab661246d565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906370a082319060240160206040518083038186803b158015610b1957600080fd5b505afa158015610b2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b519190615218565b9050818110610bb85760405162461bcd60e51b815260206004820152602d60248201527f4e6f206e65656420746f20726566696c6c207468652077616c6c657420666f7260448201526c081d1a1a5cc81c185e5b595b9d609a1b6064820152608401610aa3565b6000610bc261123a565b905060008260cb5485610bd5919061569f565b610bdf91906157e6565b905081811115610bec5750805b610bf58161267d565b50505050565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c7257600080fd5b505afa158015610c86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610caa9190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401610cd9939291906153e9565b60006040518083038186803b158015610cf157600080fd5b505afa158015610d05573d6000803e3d6000fd5b50505050610d1283612910565b610d1a6129c4565b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fca513a86040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7a57600080fd5b505afa158015610d8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610db29190615084565b905090565b600054610100900460ff16610dd25760005460ff1615610dd6565b303b155b610df25760405162461bcd60e51b8152600401610aa3906154fd565b600054610100900460ff16158015610e14576000805461ffff19166101011790555b610e1f878787612a39565b610e2a848484612ac0565b8015610e3c576000805461ff00191690555b50505050505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e8e5760405162461bcd60e51b8152600401610aa39061543b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ed76000805160206158fb833981519152546001600160a01b031690565b6001600160a01b031614610efd5760405162461bcd60e51b8152600401610aa390615487565b610f0681612b6b565b60408051600080825260208201909252610f2291839190612c87565b50565b6000805160206159828339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fae57600080fd5b505afa158015610fc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe69190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611015939291906153e9565b60006040518083038186803b15801561102d57600080fd5b505afa158015611041573d6000803e3d6000fd5b5050505061104d612e01565b5050565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b1580156110c857600080fd5b505afa1580156110dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111009190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161112f939291906153e9565b60006040518083038186803b15801561114757600080fd5b505afa15801561115b573d6000803e3d6000fd5b5050505067016345785d8a00008311156111875760405162461bcd60e51b8152600401610aa39061554b565b60006111a0600080516020615962833981519152612e94565b1590508015806111c357506111c360d054856af8277896582678ac000000612fad565b6112295760405162461bcd60e51b815260206004820152603160248201527f547765616b2065786365656465643a206d6178536c69707061676520747765616044820152706b73206f6e6c7920757020746f2033302560781b6064820152608401610aa3565b60d0849055610bf560188583613036565b6000807f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b15801561129f57600080fd5b505afa1580156112b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d79190615218565b905060007f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b15801561133d57600080fd5b505afa158015611351573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113759190615218565b7f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b1580156113d757600080fd5b505afa1580156113eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061140f9190615218565b611419919061569f565b90506114248161308f565b610a54908361569f565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156114775760405162461bcd60e51b8152600401610aa39061543b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166114c06000805160206158fb833981519152546001600160a01b031690565b6001600160a01b0316146114e65760405162461bcd60e51b8152600401610aa390615487565b6114ef82612b6b565b61104d82826001612c87565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461159b5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610aa3565b506000805160206158fb83398151915290565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561162557600080fd5b505afa158015611639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061165d9190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161168c939291906153e9565b60006040518083038186803b1580156116a457600080fd5b505afa1580156116b8573d6000803e3d6000fd5b5050505060001985146116ce576116ce85612910565b60001984146116e0576116e0846134da565b60001983146116f2576116f283613591565b6116fa6129c4565b5050505050565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561177857600080fd5b505afa15801561178c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117b09190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b81526004016117df939291906153e9565b60006040518083038186803b1580156117f757600080fd5b505afa15801561180b573d6000803e3d6000fd5b50505050610d1283613591565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561188f57600080fd5b505afa1580156118a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118c79190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b81526004016118f6939291906153e9565b60006040518083038186803b15801561190e57600080fd5b505afa158015611922573d6000803e3d6000fd5b50505050600061193f600080516020615962833981519152612e94565b159050801580611962575061196260ce54856af8277896582678ac000000612fad565b6119cc5760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a20636c61696d526577617264734d696e20604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610aa3565b60ce849055610bf560168583613036565b6000807fed3e8296abddb00b3f563f774140321369479c87c471890eb52f2e412b5de74c7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611a5a57600080fd5b505afa158015611a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a929190615084565b6040516312d9a6ad60e01b8152600481018390523360248201526001600160a01b0391909116906312d9a6ad9060440160006040518083038186803b158015611ada57600080fd5b505afa158015611aee573d6000803e3d6000fd5b50505050600080611aff8630613645565b915091506000611b0d612045565b90506000611b1961246d565b60405163095ea7b360e01b81526001600160a01b038481166004830152602482018690529192509082169063095ea7b390604401602060405180830381600087803b158015611b6757600080fd5b505af1158015611b7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b9f91906151f6565b5060405163e8eda9df60e01b81526001600160a01b0383169063e8eda9df90611bd39084908790309060009060040161535f565b600060405180830381600087803b158015611bed57600080fd5b505af1158015611c01573d6000803e3d6000fd5b50959850939650505050505050915091565b60975460ff1615611c365760405162461bcd60e51b8152600401610aa3906154d3565b611c46611c4161123a565b613a86565b565b60975460ff1615611c6b5760405162461bcd60e51b8152600401610aa3906154d3565b611c756000613dda565b50611c7e613fbe565b611c46611ea5565b6000805160206159828339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611cee57600080fd5b505afa158015611d02573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d269190615084565b6040516312d9a6ad60e01b8152600481018390523360248201526001600160a01b0391909116906312d9a6ad9060440160006040518083038186803b158015611d6e57600080fd5b505afa158015611d82573d6000803e3d6000fd5b50505050610f226140e3565b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015611e0557600080fd5b505afa158015611e19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3d9190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401611e6c939291906153e9565b60006040518083038186803b158015611e8457600080fd5b505afa158015611e98573d6000803e3d6000fd5b50505050610d12836134da565b6000611eaf612045565b905060007f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201529091506000906001600160a01b038316906370a082319060240160206040518083038186803b158015611f1957600080fd5b505afa158015611f2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f519190615218565b905060cf548111611f6157505050565b60405163095ea7b360e01b81526001600160a01b0384811660048301526024820183905283169063095ea7b390604401602060405180830381600087803b158015611fab57600080fd5b505af1158015611fbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe391906151f6565b5060405163e8eda9df60e01b81526001600160a01b0384169063e8eda9df906120179085908590309060009060040161535f565b600060405180830381600087803b15801561203157600080fd5b505af1158015610e3c573d6000803e3d6000fd5b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630261bf8b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7a57600080fd5b60008051602061596283398151915260008051602061591b8339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b15801561211757600080fd5b505afa15801561212b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214f9190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b815260040161217e939291906153e9565b60006040518083038186803b15801561219657600080fd5b505afa1580156121aa573d6000803e3d6000fd5b5050505060006121c7600080516020615962833981519152612e94565b1590508015806121ea57506121ea60cf54856af8277896582678ac000000612fad565b61225c5760405162461bcd60e51b815260206004820152603860248201527f547765616b2065786365656465643a207265696e76657374526577617264734d60448201527f696e20747765616b73206f6e6c7920757020746f2033302500000000000000006064820152608401610aa3565b60cf849055610bf560178583613036565b612275611c13565b611c46611c48565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146122c55760405162461bcd60e51b8152600401610aa39061558d565b60006122cf61246d565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906370a082319060240160206040518083038186803b15801561233257600080fd5b505afa158015612346573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236a9190615218565b905061237461413b565b600061237e61246d565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906370a082319060240160206040518083038186803b1580156123e157600080fd5b505afa1580156123f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124199190615218565b9050612428611c4183836157e6565b600060cd557fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c6561245883836157e6565b60405190815260200160405180910390a15050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b815260040160206040518083038186803b158015610d7a57600080fd5b6040805160028082526060820183526000927f000000000000000000000000000000000000000000000000000000000000000092849290916020830190803683370190505090508181600081518110612523576125236158b9565b6001600160a01b03909216602092830291909101909101527f00000000000000000000000000000000000000000000000000000000000000008160018151811061256f5761256f6158b9565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b03166375d264136040518163ffffffff1660e01b815260040160206040518083038186803b1580156125c857600080fd5b505afa1580156125dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126009190615084565b6001600160a01b0316638b599f2682306040518363ffffffff1660e01b815260040161262d92919061538c565b60206040518083038186803b15801561264557600080fd5b505afa158015612659573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a549190615218565b8080807f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b1580156126e257600080fd5b505afa1580156126f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061271a9190615218565b101561272557506000195b61272d612045565b6001600160a01b03166369328dec61274361246d565b837f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b81526004016127839392919061533c565b602060405180830381600087803b15801561279d57600080fd5b505af11580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d59190615218565b6127df90836157e6565b915081156128fe5760007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316631f00ca7484612821614366565b6040518363ffffffff1660e01b815260040161283e929190615619565b60006040518083038186803b15801561285657600080fd5b505afa15801561286a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526128929190810190615149565b6000815181106128a4576128a46158b9565b6020026020010151905060006128da827f0000000000000000000000000000000000000000000000000000000000000000613645565b915050838110156128f6576128ef81856157e6565b93506128fb565b600093505b50505b610d1a61290b83856157e6565b614417565b6000612929600080516020615962833981519152612e94565b15905080158061294c575061294c60ca54836af8277896582678ac000000614470565b6129b35760405162461bcd60e51b815260206004820152603260248201527f547765616b2065786365656465643a206c69717569646974794d696e20747765604482015271616b73206f6e6c7920757020746f2033302560701b6064820152608401610aa3565b60ca82905561104d60138383613036565b60cb5460ca54111580156129dc575060cc5460cb5411155b611c465760405162461bcd60e51b815260206004820152602860248201527f56616c69646174696f6e3a204c6971756964697479206c696d69747320617265604482015267081a5b9d985b1a5960c21b6064820152608401610aa3565b600054610100900460ff16612a545760005460ff1615612a58565b303b155b612a745760405162461bcd60e51b8152600401610aa3906154fd565b600054610100900460ff16158015612a96576000805461ffff19166101011790555b612a9e6144eb565b612aa984848461456c565b8015610bf5576000805461ff001916905550505050565b600054610100900460ff16612adb5760005460ff1615612adf565b303b155b612afb5760405162461bcd60e51b8152600401610aa3906154fd565b600054610100900460ff16158015612b1d576000805461ffff19166101011790555b60ce84905560cf83905567016345785d8a0000821115612b4f5760405162461bcd60e51b8152600401610aa39061554b565b60d08290558015610bf5576000805461ff001916905550505050565b6000805160206159828339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015612bf457600080fd5b505afa158015612c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2c9190615084565b6001600160a01b031663c5b8f5cf8383336040518463ffffffff1660e01b8152600401612c5b939291906153e9565b60006040518083038186803b158015612c7357600080fd5b505afa158015610e3c573d6000803e3d6000fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615612cba57610d1a836145e0565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015612cf357600080fd5b505afa925050508015612d23575060408051601f3d908101601f19168201909252612d2091810190615218565b60015b612d865760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610aa3565b6000805160206158fb8339815191528114612df55760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610aa3565b50610d1a83838361467c565b60975460ff16612e4a5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610aa3565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166379502c556040518163ffffffff1660e01b815260040160206040518083038186803b158015612eef57600080fd5b505afa158015612f03573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f279190615084565b604051632474521560e21b8152600481018490523360248201526001600160a01b0391909116906391d148549060440160206040518083038186803b158015612f6f57600080fd5b505afa158015612f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa791906151f6565b92915050565b600082841415612fbf5750600161302f565b83612fd65750670de0b6b3a764000081101561302f565b82612fe35750600061302f565b828410156130125781670de0b6b3a7640000612fff85876146a1565b61300991906157e6565b1115905061302f565b8161301d84866146a1565b61300990670de0b6b3a76400006157e6565b9392505050565b801561304557613045836147a1565b82601b811115613057576130576158a3565b6040518381527f7bc647fe5043209e2019aa3503b79c1b0dd83eb61c56013d373a7584ff6bfb139060200160405180910390a2505050565b60008061309a610d1f565b90507f000000000000000000000000000000000000000000000000000000000000000060006130c761246d565b60405163b3596f0760e01b81526001600160a01b0380831660048301529192506000916131ca919086169063b3596f079060240160206040518083038186803b15801561311357600080fd5b505afa158015613127573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061314b9190615218565b60405163b3596f0760e01b81526001600160a01b03868116600483015287169063b3596f079060240160206040518083038186803b15801561318c57600080fd5b505afa1580156131a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131c49190615218565b906146a1565b9050816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561320557600080fd5b505afa158015613219573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061323d91906152b9565b60ff16836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561327957600080fd5b505afa15801561328d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b191906152b9565b60ff1611156133c257816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156132f357600080fd5b505afa158015613307573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061332b91906152b9565b836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561336457600080fd5b505afa158015613378573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061339c91906152b9565b6133a69190615823565b6133b190600a61571c565b6133bb90826156b7565b90506134c6565b816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b1580156133fb57600080fd5b505afa15801561340f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343391906152b9565b836001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561346c57600080fd5b505afa158015613480573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134a491906152b9565b6134ae9190615823565b6134b990600a61571c565b6134c390826157c7565b90505b6134d0868261490a565b9695505050505050565b60006134f3600080516020615962833981519152612e94565b159050801580613516575061351660cb54836af8277896582678ac000000614470565b6135805760405162461bcd60e51b815260206004820152603560248201527f547765616b2065786365656465643a206c69717569646974794d6964646c6520604482015274747765616b73206f6e6c7920757020746f2033302560581b6064820152608401610aa3565b60cb82905561104d60148383613036565b60006135aa600080516020615962833981519152612e94565b1590508015806135cd57506135cd60cc54836af8277896582678ac000000614470565b6136345760405162461bcd60e51b815260206004820152603260248201527f547765616b2065786365656465643a206c69717569646974794d617820747765604482015271616b73206f6e6c7920757020746f2033302560701b6064820152608401610aa3565b60cc82905561104d60158383613036565b6000806000613652614366565b9050600081600081518110613669576136696158b9565b60209081029190910101516040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b1580156136b457600080fd5b505afa1580156136c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136ec9190615218565b90508581101561385f57600061370282886157e6565b9050807f00000000000000000000000000000000000000000000000000000000000000006040516370a0823160e01b81523060048201526001600160a01b0391909116906370a082319060240160206040518083038186803b15801561376757600080fd5b505afa15801561377b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061379f9190615218565b10156137aa57506000195b6137b2612045565b6001600160a01b03166369328dec846000815181106137d3576137d36158b9565b602002602001015183306040518463ffffffff1660e01b81526004016137fb9392919061533c565b602060405180830381600087803b15801561381557600080fd5b505af1158015613829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384d9190615218565b613857908361569f565b915050613862565b50845b600061388c60d054670de0b6b3a764000061387d91906157e6565b6138868461308f565b9061490a565b9050826000815181106138a1576138a16158b9565b602090810291909101015160405163095ea7b360e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018590529091169063095ea7b390604401602060405180830381600087803b15801561391757600080fd5b505af115801561392b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061394f91906151f6565b506040516338ed173960e01b81526000906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906338ed1739906139a7908690869089908d904290600401615632565b600060405180830381600087803b1580156139c157600080fd5b505af11580156139d5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526139fd9190810190615149565b90507f63b0a0ad718a7c8cb64e4057058462c7495069b51821314a190b025aba7d50198382600181518110613a3457613a346158b9565b6020026020010151604051613a53929190918252602082015260400190565b60405180910390a18281600181518110613a6f57613a6f6158b9565b602002602001015195509550505050509250929050565b60975460ff1615613aa95760405162461bcd60e51b8152600401610aa3906154d3565b60008060cd54831115613ace5760cd54613ac390846157e6565b905060019150613aed565b60cd54831015610d1a578260cd54613ae691906157e6565b9050600091505b6000613af76107e9565b90508160005b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dea167d56040518163ffffffff1660e01b815260040160206040518083038186803b158015613b5657600080fd5b505afa158015613b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b8e9190615218565b811015613d095760405163b0ec4bcf60e01b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b0ec4bcf9060240160206040518083038186803b158015613bf857600080fd5b505afa158015613c0c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613c309190615084565b90506000613c7b613c7486846001600160a01b03166365e29c7e6040518163ffffffff1660e01b815260040160206040518083038186803b15801561318c57600080fd5b879061490a565b90508015613cf45760405163ab60016960e01b81526004810182905287151560248201526001600160a01b0383169063ab60016990604401600060405180830381600087803b158015613ccd57600080fd5b505af1158015613ce1573d6000803e3d6000fd5b505050508084613cf191906157e6565b93505b50508080613d0190615872565b915050613afd565b508015613d935760405163ab60016960e01b81526004810182905284151560248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ab60016990604401600060405180830381600087803b158015613d7a57600080fd5b505af1158015613d8e573d6000803e3d6000fd5b505050505b60cd859055604080518515158152602081018590527f91a6cbd27bc7cdd21da57fbb08ebfaf5cece633ca7dd5f1741bff39f4be3ad4f910160405180910390a15050505050565b60008180613df0575060ce54613dee6124c8565b115b15613fb6576040805160028082526060820183527f00000000000000000000000000000000000000000000000000000000000000009260009291906020830190803683370190505090508181600081518110613e4e57613e4e6158b9565b6001600160a01b03909216602092830291909101909101527f000000000000000000000000000000000000000000000000000000000000000081600181518110613e9a57613e9a6158b9565b60200260200101906001600160a01b031690816001600160a01b031681525050816001600160a01b03166375d264136040518163ffffffff1660e01b815260040160206040518083038186803b158015613ef357600080fd5b505afa158015613f07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f2b9190615084565b6001600160a01b0316633111e7b382600019306040518463ffffffff1660e01b8152600401613f5c939291906153b6565b602060405180830381600087803b158015613f7657600080fd5b505af1158015613f8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fae9190615218565b949350505050565b506000919050565b60975460ff1615613fe15760405162461bcd60e51b8152600401610aa3906154d3565b6000613feb61246d565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015291909116906370a082319060240160206040518083038186803b15801561404e57600080fd5b505afa158015614062573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140869190615218565b905060cc548111156140a857610f2260cb54826140a391906157e6565b6149db565b60ca54811015610f225760006140d26140bf61123a565b8360cb546140cd91906157e6565b614b19565b9050801561104d5761104d8161267d565b60975460ff16156141065760405162461bcd60e51b8152600401610aa3906154d3565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258612e773390565b6141456001613dda565b5061414e612045565b6001600160a01b03166369328dec61416461246d565b6000197f00000000000000000000000000000000000000000000000000000000000000006040518463ffffffff1660e01b81526004016141a69392919061533c565b602060405180830381600087803b1580156141c057600080fd5b505af11580156141d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141f89190615218565b50614201612045565b6001600160a01b03166369328dec7f0000000000000000000000000000000000000000000000000000000000000000600019306040518463ffffffff1660e01b81526004016142529392919061533c565b602060405180830381600087803b15801561426c57600080fd5b505af1158015614280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142a49190615218565b506040516370a0823160e01b815230600482015261104d907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a082319060240160206040518083038186803b15801561430857600080fd5b505afa15801561431c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143409190615218565b7f0000000000000000000000000000000000000000000000000000000000000000613645565b604080516002808252606080830184529260009291906020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106143bf576143bf6158b9565b60200260200101906001600160a01b031690816001600160a01b0316815250506143e761246d565b816001815181106143fa576143fa6158b9565b6001600160a01b0390921660209283029190910190910152919050565b61442360cd5482614b19565b60cd600082825461443491906157e6565b90915550506040518181527fb82d4e0870bf4ae7236ad1de74d6612d04d1b805b47d98c2f40088a193d87c65906020015b60405180910390a150565b6000828414156144825750600161302f565b8361449d57506b033b2e3c9fd0803ce800000081101561302f565b826144aa5750600061302f565b828410156144ca57816b033b2e3c9fd0803ce8000000612fff8587614b2f565b816144d58486614b2f565b613009906b033b2e3c9fd0803ce80000006157e6565b600054610100900460ff166145065760005460ff161561450a565b303b155b6145265760405162461bcd60e51b8152600401610aa3906154fd565b600054610100900460ff16158015614548576000805461ffff19166101011790555b614550614c23565b614558614c4a565b8015610f22576000805461ff001916905550565b600054610100900460ff166145875760005460ff161561458b565b303b155b6145a75760405162461bcd60e51b8152600401610aa3906154fd565b600054610100900460ff161580156145c9576000805461ffff19166101011790555b60ca84905560cb83905560cc829055612aa96129c4565b6001600160a01b0381163b61464d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610aa3565b6000805160206158fb83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61468583614c79565b6000825111806146925750805b15610d1a57610bf58383614cb9565b6000816146f05760405162461bcd60e51b815260206004820152601860248201527f7761644469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610aa3565b60006146fd6002846156b7565b9050670de0b6b3a7640000614714826000196157e6565b61471e91906156b7565b8411156147795760405162461bcd60e51b8152602060048201526024808201527f7761644469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610aa3565b828161478d670de0b6b3a7640000876157c7565b614797919061569f565b613fae91906156b7565b6000600182601b8111156147b7576147b76158a3565b6147c19190615823565b60c954600160ff929092169190911b915062015180906147e89064ffffffffff16426157fd565b64ffffffffff16111561482a5760c9805466ffffffffffffff8316600160281b026bffffffffffffffffffffffff1990911664ffffffffff4216171790555050565b60c954600160281b9004811666ffffffffffffff1661488c5760c9805464ffffffffff421664ffffffffff1966ffffffffffffff808616600160281b808604929092161702166bffffffffffffffffffffffff19909216919091171790555050565b60405162461bcd60e51b815260206004820152604760248201527f596f7520616c726561647920747765616b6564207468697320706172616d657460448201527f657220726563656e746c792e2057616974206265666f726520747765616b696e606482015266339030b3b0b4b760c91b608482015260a401610aa3565b6000821580614917575081155b1561492457506000612fa7565b816149386002670de0b6b3a76400006156b7565b614944906000196157e6565b61494e91906156b7565b8311156149a95760405162461bcd60e51b8152602060048201526024808201527f7761644d756c3a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610aa3565b670de0b6b3a76400006149bd6002826156b7565b6149c784866157c7565b6149d1919061569f565b61302f91906156b7565b60006149e5612045565b905060006149f161246d565b9050614a286001600160a01b0382167f00000000000000000000000000000000000000000000000000000000000000003086614dad565b60405163095ea7b360e01b81526001600160a01b0383811660048301526024820185905282169063095ea7b390604401602060405180830381600087803b158015614a7257600080fd5b505af1158015614a86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614aaa91906151f6565b5060405163e8eda9df60e01b81526001600160a01b0383169063e8eda9df90614ade9084908790309060009060040161535f565b600060405180830381600087803b158015614af857600080fd5b505af1158015614b0c573d6000803e3d6000fd5b50505050610d1a83614e07565b6000818310614b28578161302f565b5090919050565b600081614b7e5760405162461bcd60e51b815260206004820152601860248201527f7261794469763a204469766973696f6e206279207a65726f00000000000000006044820152606401610aa3565b6000614b8b6002846156b7565b90506b033b2e3c9fd0803ce8000000614ba6826000196157e6565b614bb091906156b7565b841115614c0b5760405162461bcd60e51b8152602060048201526024808201527f7261794469763a204d617468204d756c7469706c69636174696f6e204f766572604482015263666c6f7760e01b6064820152608401610aa3565b828161478d6b033b2e3c9fd0803ce8000000876157c7565b600054610100900460ff16611c465760405162461bcd60e51b8152600401610aa3906155ce565b600054610100900460ff16614c715760405162461bcd60e51b8152600401610aa3906155ce565b611c46614e4e565b614c82816145e0565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b614d215760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610aa3565b600080846001600160a01b031684604051614d3c9190615320565b600060405180830381855af49150503d8060008114614d77576040519150601f19603f3d011682016040523d82523d6000602084013e614d7c565b606091505b5091509150614da4828260405180606001604052806027815260200161593b60279139614e81565b95945050505050565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610bf5908590614eba565b8060cd6000828254614e19919061569f565b90915550506040518181527f0f0cdeac88e111e1dd9b9f043e8c671053dedfbaeccabfb144fd51a4f870fcf490602001614465565b600054610100900460ff16614e755760405162461bcd60e51b8152600401610aa3906155ce565b6097805460ff19169055565b60608315614e9057508161302f565b825115614ea05782518084602001fd5b8160405162461bcd60e51b8152600401610aa39190615408565b6000614f0f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614f8c9092919063ffffffff16565b805190915015610d1a5780806020019051810190614f2d91906151f6565b610d1a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610aa3565b6060613fae8484600085856001600160a01b0385163b614fee5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610aa3565b600080866001600160a01b0316858760405161500a9190615320565b60006040518083038185875af1925050503d8060008114615047576040519150601f19603f3d011682016040523d82523d6000602084013e61504c565b606091505b509150915061505c828286614e81565b979650505050505050565b60006020828403121561507957600080fd5b813561302f816158e5565b60006020828403121561509657600080fd5b815161302f816158e5565b600080604083850312156150b457600080fd5b82356150bf816158e5565b915060208381013567ffffffffffffffff808211156150dd57600080fd5b818601915086601f8301126150f157600080fd5b813581811115615103576151036158cf565b615115601f8201601f1916850161566e565b9150808252878482850101111561512b57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000602080838503121561515c57600080fd5b825167ffffffffffffffff8082111561517457600080fd5b818501915085601f83011261518857600080fd5b81518181111561519a5761519a6158cf565b8060051b91506151ab84830161566e565b8181528481019084860184860187018a10156151c657600080fd5b600095505b838610156151e95780518352600195909501949186019186016151cb565b5098975050505050505050565b60006020828403121561520857600080fd5b8151801515811461302f57600080fd5b60006020828403121561522a57600080fd5b5051919050565b60006020828403121561524357600080fd5b5035919050565b60008060006060848603121561525f57600080fd5b505081359360208301359350604090920135919050565b60008060008060008060c0878903121561528f57600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6000602082840312156152cb57600080fd5b815160ff8116811461302f57600080fd5b600081518084526020808501945080840160005b838110156153155781516001600160a01b0316875295820195908201906001016152f0565b509495945050505050565b60008251615332818460208701615846565b9190910192915050565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6001600160a01b03948516815260208101939093529216604082015261ffff909116606082015260800190565b60408152600061539f60408301856152dc565b905060018060a01b03831660208301529392505050565b6060815260006153c960608301866152dc565b6020830194909452506001600160a01b0391909116604090910152919050565b92835260208301919091526001600160a01b0316604082015260600190565b6020815260008251806020840152615427816040850160208701615846565b601f01601f19169190910160400192915050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60208082526022908201527f6d6178536c6970706167652063616e2774206265206d6f7265207468616e2031604082015261302560f01b606082015260800190565b60208082526021908201527f5468652063616c6c6572206d7573742062652074686520506f6c696379506f6f6040820152601b60fa1b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b828152604060208201526000613fae60408301846152dc565b85815284602082015260a06040820152600061565160a08301866152dc565b6001600160a01b0394909416606083015250608001529392505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715615697576156976158cf565b604052919050565b600082198211156156b2576156b261588d565b500190565b6000826156d457634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156157145781600019048211156156fa576156fa61588d565b8085161561570757918102915b93841c93908002906156de565b509250929050565b600061302f60ff84168360008261573557506001612fa7565b8161574257506000612fa7565b816001811461575857600281146157625761577e565b6001915050612fa7565b60ff8411156157735761577361588d565b50506001821b612fa7565b5060208310610133831016604e8410600b84101617156157a1575081810a612fa7565b6157ab83836156d9565b80600019048211156157bf576157bf61588d565b029392505050565b60008160001904831182151516156157e1576157e161588d565b500290565b6000828210156157f8576157f861588d565b500390565b600064ffffffffff8381169083168181101561581b5761581b61588d565b039392505050565b600060ff821660ff84168082101561583d5761583d61588d565b90039392505050565b60005b83811015615861578181015183820152602001615849565b83811115610bf55750506000910152565b60006000198214156158865761588661588d565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114610f2257600080fdfe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c27416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c055435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220ab94365d2124b7a48340e77d44a4c8f5097e68931e413aa45cb05281c5d3c7ee64736f6c63430008060033",
|
|
770
|
+
"linkReferences": {},
|
|
771
|
+
"deployedLinkReferences": {}
|
|
772
|
+
}
|