Contract con_optic_protocol_v3
Creator | 3f817753c14cfc9584545b5168b71773ba345ea33d3f5b4412a4eedf544b3268 |
Creation Hash | 4f2f3c1d4779189693a0742f1a6257c69fe3b525e571a1ee023528e9bccc3864 |
Created On | 660 days ago - 7/30/2022, 11:23:37 PM UTC+0 |
Contract Code
1
import currency
2
import con_optic_lst001
3
import con_xoptic_lst001
4
import con_optic_stau_lst001
5
I = importlib
6
7
8
S = Hash(default_value=0)
9
L = Hash(default_value=0)
10
LINK = Hash(default_value=0)
11
metadata = Hash(default_value=0)
12
blockdata = Hash(default_value=0)
13
14
15
TAU = ForeignHash(foreign_contract='currency', foreign_name='balances')
16
OPTIC = ForeignHash(foreign_contract='con_optic_lst001', foreign_name='balances')
17
xOPTIC = ForeignHash(foreign_contract='con_xoptic_lst001', foreign_name='balances')
18
sTAU = ForeignHash(foreign_contract='con_optic_stau_lst001', foreign_name='balances')
19
20
21
@construct
22
def seed():
23
metadata['operator'] = ctx.caller
24
metadata['fees_wallet'] = 'eb9074ab07c502be35be4f447d370a79ac9feb62e849fe0272dfe93d0e4cdd48'
25
metadata['initial_offer'] = 40_000_000
26
metadata['base_pool'] = 50_000_000
27
metadata['boost_pool'] = 200_000_000
28
metadata['lens_factor'] = 0.0205
29
metadata['xoptic_supply'] = 203_000_000
30
metadata['optic_in_pool'] = 203_000_000
31
metadata['optic_staked'] = 0
32
metadata['stau_farm'] = 0
33
metadata['xoptic_pledge'] = 0
34
metadata['stau_staked'] = 0
35
metadata['stau_farm'] = 0
36
metadata['fees_lens_claim'] = decimal('0.1')
37
metadata['xoptic_ratio'] = 1
38
metadata['rewards_fees'] = decimal('0.1')
39
40
blockdata['block_emergency'] = False
41
blockdata['xoptic_start'] = True
42
blockdata['initial_close'] = True
43
44
metadata['max_lens'] = 100
45
metadata['instant_burn'] = decimal('0.03')
46
metadata['nft_contract'] = 'con_optic_nft_v4'
47
metadata['lens_operator'] = ['con_optic_flip_coin']
48
49
metadata['emergency_contract'] = 1
50
metadata['operator_sign'] = [ctx.caller, '24f4184c9d9e8e8440067e75fb4c82d44c51c529581dd40e486a0ca989639600', 'b1c4b6a0baa3cef7fd57a191d3fe0798748b439ddf566825a2b614eb250bb519']
51
52
@export
53
def initial_rewards(to: str, amount: float):
54
assert ctx.caller == metadata['operator'
55
], 'Only operator can set metadata!'
56
con_optic_lst001.transfer_from(amount, to, metadata['operator'])
57
return amount
58
59
60
@export
61
def initial(amount: float):
62
assert blockdata['initial_close'] == False, 'Initial Deposit Closed'
63
block_emergency()
64
user = ctx.caller
65
assert amount > 0, 'You must send something.'
66
assert TAU[user] >= amount, 'Not enough coins to send!'
67
currency.transfer_from(amount, metadata['operator'], user)
68
day = now.day
69
metadata['total_initial'] += amount
70
metadata['initial', day] += amount
71
S[user, 'initial'] += amount
72
return amount
73
74
75
@export
76
def remove_initial(amount: float):
77
block_emergency()
78
assert blockdata['initial_close'] == False, 'Remove Locked'
79
user = ctx.caller
80
assert amount > 0, 'You must remove something.'
81
assert S[user, 'initial'] >= amount, 'Not enough coins to remove!'
82
currency.transfer_from(amount, user, metadata['operator'])
83
metadata['total_initial'] -= amount
84
day = now.day
85
metadata['initial', day] -= amount
86
S[user, 'initial'] -= amount
87
return amount
88
89
90
@export
91
def claim_forge():
92
assert blockdata['initial_close'] == True, 'Claim Locked'
93
user = ctx.caller
94
assert S[user, 'initial'] > 0, 'Not enough coins to claim!'
95
amount = S[user, 'initial'] * metadata['initial_offer'] / metadata['total_initial']
96
con_optic_lst001.transfer_from(amount, user, metadata['operator'])
97
S[user, 'initial'] = 0
98
return amount
99
100
101
@export
102
def stake(amount: float):
103
block_emergency()
104
assert blockdata['xoptic_start'] == True, 'Deposit not start'
105
user = ctx.caller
106
assert amount > 0, 'You must stake something.'
107
assert OPTIC[user] >= amount, 'Not enough coins to stake!'
108
X_SUPPLY = metadata['xoptic_supply']
109
OPTIC_IN_POOL = metadata['optic_in_pool']
110
RECEIVED = amount / (OPTIC_IN_POOL + amount) * X_SUPPLY
111
con_optic_lst001.transfer_from(amount, metadata['operator'], user)
112
con_xoptic_lst001.transfer_from(RECEIVED, user, metadata['operator'])
113
metadata['optic_in_pool'] += amount
114
metadata['xoptic_supply'] -= RECEIVED
115
metadata['xoptic_ratio'] = metadata['optic_in_pool'] / metadata[
116
'xoptic_supply']
117
metadata['optic_staked'] += amount
118
metadata['xoptic_staked'] += RECEIVED
119
S[user, 'xoptic'] += RECEIVED
120
return RECEIVED
121
122
123
@export
124
def unstake(amount: float):
125
block_emergency()
126
assert blockdata['xoptic_start'] == True, 'Remove not start'
127
user = ctx.caller
128
assert amount > 0, 'You must withdrawal something.'
129
assert xOPTIC[user] >= amount, 'Not enough coins to withdrawal!'
130
OPTIC_OUT = amount / metadata['xoptic_supply'] * metadata[
131
'optic_in_pool']
132
con_xoptic_lst001.transfer_from(amount, metadata['operator'], user)
133
metadata['optic_in_pool'] -= OPTIC_OUT
134
metadata['xoptic_burned'] += amount
135
metadata['xoptic_ratio'] = metadata['optic_in_pool'] / metadata[
136
'xoptic_supply']
137
metadata['optic_staked'] -= OPTIC_OUT
138
metadata['xoptic_staked'] -= amount
139
S[user, 'xoptic'] -= amount
140
return OPTIC_OUT
141
142
143
@export
144
def claim_unstake_xoptic():
145
block_emergency()
146
user = ctx.caller
147
amount = S[user, 'xoptic_unstake']
148
assert amount > 0, 'You must unstake something.'
149
con_optic_lst001.transfer_from(amount, user, metadata['operator'])
150
S[user, 'xoptic_unstake'] = 0
151
return amount
152
153
154
@export
155
def add_unstake_xoptic(to: str, amount: float, uid: str):
156
assert ctx.caller == metadata['operator'
157
], 'Only operator can set metadata!'
158
S[to, 'xoptic_unstake'] += amount
159
return amount
160
161
162
@export
163
def split(amount: float):
164
block_emergency()
165
user = ctx.caller
166
assert amount > 0, 'You must stake something.'
167
assert TAU[user] >= amount, 'Not enough coins to send!'
168
currency.transfer_from(amount, metadata['operator'], user)
169
#currency.transfer_from(amount, ctx.this, user)
170
con_optic_stau_lst001.transfer_from(amount, user, metadata['operator'])
171
metadata['stau_split'] += amount
172
return amount
173
174
175
@export
176
def redeem_instant(amount: float):
177
block_emergency()
178
user = ctx.caller
179
assert amount > 0, 'You must stake something.'
180
assert sTAU[user] >= amount, 'Not enough sTAU to send!'
181
con_optic_stau_lst001.transfer_from(amount, metadata['operator'], user)
182
BURN = amount * metadata['instant_burn']
183
184
#currency.transfer_from(amount - BURN, user, ctx.this)
185
#currency.transfer_from(BURN, metadata['fees_wallet'], ctx.this)
186
187
currency.transfer_from(amount - BURN, user, metadata['operator'])
188
currency.transfer_from(BURN, metadata['fees_wallet'], metadata['operator'])
189
metadata['stau_split'] -= amount
190
metadata['burn'] += BURN
191
return amount
192
193
194
@export
195
def redeem_slow(amount: float):
196
block_emergency()
197
user = ctx.caller
198
assert amount > 0, 'You must stake something.'
199
assert sTAU[user] >= amount, 'Not enough sTAU to send!'
200
con_optic_stau_lst001.transfer_from(amount, metadata['operator'], user)
201
metadata['stau_split'] -= amount
202
203
204
return amount
205
206
207
@export
208
def claim_merge_slow():
209
block_emergency()
210
user = ctx.caller
211
amount = S[user, 'merge']
212
assert amount > 0, 'You must claim something.'
213
currency.transfer_from(amount, user, metadata['operator'])
214
#currency.transfer_from(amount, user, ctx.this)
215
S[user, 'merge'] = 0
216
return amount
217
218
219
@export
220
def add_merge_slow(to: str, amount: float, uid: str):
221
assert ctx.caller == metadata['operator'
222
], 'Only operator can set metadata!'
223
224
S[to, 'merge'] += amount
225
226
227
return amount
228
229
230
@export
231
def farm(amount: float):
232
block_emergency()
233
user = ctx.caller
234
assert blockdata['xoptic_start'] == True, 'Deposit not start'
235
assert amount > 0, 'You must stake something.'
236
assert sTAU[user] >= amount, 'Not enough coins to stake!'
237
238
con_optic_stau_lst001.transfer_from(amount, metadata['operator'], user)
239
240
if not S[user, 'start_farm'] or S[user, 'start_farm'] is None:
241
S[user, 'start_farm'] = now
242
metadata['stau_farm'] += amount
243
S[user, 'farm'] += amount
244
return S[user, 'start_farm']
245
246
247
@export
248
def remove(amount: float):
249
block_emergency()
250
user = ctx.caller
251
assert amount > 0, 'You must withdrawal something.'
252
assert S[user, 'farm'] >= amount, 'Not enough coins to withdrawal!'
253
con_optic_stau_lst001.transfer_from(amount, user, metadata['operator'])
254
metadata['stau_farm'] -= amount
255
S[user, 'farm'] -= amount
256
if S[user, 'farm'] == 0:
257
S[user, 'start_farm'] = None
258
259
260
@export
261
def pledge(amount: float):
262
block_emergency()
263
user = ctx.caller
264
assert amount > 0, 'You must pledged something.'
265
assert xOPTIC[user] >= amount, 'Not enough coins to pledged!'
266
con_xoptic_lst001.transfer_from(amount, metadata['operator'], user)
267
MAX_LENS = 0
268
metadata['xoptic_pledge'] += amount
269
metadata['xoptic_staked'] -= amount
270
S[user, 'xoptic_pledge'] += amount
271
272
if not S[user, 'start_lens'] or S[user, 'start_lens'] is None:
273
S[user, 'start_lens'] = now
274
275
if S[user, 'lens'] == 0 or S[user, 'lens'] is None:
276
S[user, 'lens'] = 0
277
S[user, 'lens_time'] = now
278
279
else:
280
if S[user, 'nft_active'] or S[user, 'nft_active'] is not None:
281
thing_info = I.import_module(metadata['nft_contract'])
282
uid = S[user, 'nft_active']
283
active = thing_info.get_boost_owner(user, uid)
284
MAX_LENS = 100 * active
285
286
lens = S[user, 'xoptic_pledge'] * (metadata['lens_factor'] / (
287
60 * 60)) * (now - S[user, 'lens_time']).seconds
288
if lens + S[user, 'lens'] >= S[user, 'xoptic_pledge'] * (metadata
289
['max_lens'] + MAX_LENS):
290
metadata['total_lens'] += lens + S[user, 'lens'] - S[user,
291
'xoptic_pledge'] * (metadata['max_lens'] + MAX_LENS)
292
S[user, 'lens'] = S[user, 'xoptic_pledge'] * (metadata[
293
'max_lens'] + MAX_LENS)
294
S[user, 'lens_time'] = now
295
else:
296
S[user, 'lens'] += lens
297
metadata['total_lens'] += lens
298
S[user, 'lens_time'] = now
299
300
301
302
@export
303
def unpledge(amount: float):
304
block_emergency()
305
user = ctx.caller
306
assert amount > 0, 'You must unpledged something.'
307
assert S[user, 'xoptic_pledge'
308
] >= amount, 'Not enough coins to unpledged!'
309
con_xoptic_lst001.transfer_from(amount, user, metadata['operator'])
310
metadata['xoptic_pledge'] -= amount
311
metadata['xoptic_staked'] += amount
312
S[user, 'xoptic_pledge'] -= amount
313
metadata['total_lens'] -= S[user, 'lens']
314
S[user, 'lens'] = 0
315
S[user, 'start_lens'] = None
316
if S[user, 'xoptic_pledge'] > 0:
317
S[user, 'lens_time'] = now
318
S[user, 'start_lens'] = now
319
320
321
@export
322
def active_lens():
323
block_emergency()
324
user = ctx.caller
325
MAX_LENS = 0
326
assert S[user, 'xoptic_pledge'] > 0, 'Not optics to lens'
327
lens = S[user, 'xoptic_pledge'] * (metadata['lens_factor'] / (60 * 60)
328
) * (now - S[user, 'lens_time']).seconds
329
330
331
if S[user, 'nft_active'] or S[user, 'nft_active'] is not None:
332
thing_info = I.import_module(metadata['nft_contract'])
333
uid = S[user, 'nft_active']
334
active = thing_info.get_boost_owner(user, uid)
335
MAX_LENS = 100 * active
336
337
if lens + S[user, 'lens'] >= S[user, 'xoptic_pledge'] * (metadata
338
['max_lens'] + MAX_LENS):
339
metadata['total_lens'] += lens + S[user, 'lens'] - S[user,
340
'xoptic_pledge'] * (metadata['max_lens'] + MAX_LENS)
341
S[user, 'lens'] = S[user, 'xoptic_pledge'] * (metadata[
342
'max_lens'] + MAX_LENS)
343
S[user, 'lens_time'] = now
344
else:
345
S[user, 'lens_time'] = now
346
S[user, 'lens'] += lens
347
metadata['total_lens'] += lens
348
return MAX_LENS
349
350
@export
351
def game_lens(to: str, amount: float):
352
assert ctx.caller in metadata['lens_operator'], 'Only operator can set metadata!'
353
354
if amount < 0:
355
S[to, 'lens_time'] = now
356
S[to, 'lens'] -= amount
357
358
else:
359
S[to, 'lens_time'] = now
360
S[to, 'lens'] += amount
361
metadata['total_lens'] += lens
362
363
364
@export
365
def active_auto_lens(to: str):
366
block_emergency()
367
assert ctx.caller in metadata['lens_operator'], 'Only operator can set metadata!'
368
user = to
369
MAX_LENS = 0
370
assert S[user, 'xoptic_pledge'] > 0, 'Not optics to lens'
371
lens = S[user, 'xoptic_pledge'] * (metadata['lens_factor'] / (60 * 60)
372
) * (now - S[user, 'lens_time']).seconds
373
374
375
if S[user, 'nft_active'] or S[user, 'nft_active'] is not None:
376
thing_info = I.import_module(metadata['nft_contract'])
377
uid = S[user, 'nft_active']
378
active = thing_info.get_boost_owner(user, uid)
379
MAX_LENS = 100 * active
380
381
if lens + S[user, 'lens'] >= S[user, 'xoptic_pledge'] * (metadata
382
['max_lens'] + MAX_LENS):
383
metadata['total_lens'] += lens + S[user, 'lens'] - S[user,
384
'xoptic_pledge'] * (metadata['max_lens'] + MAX_LENS)
385
S[user, 'lens'] = S[user, 'xoptic_pledge'] * (metadata[
386
'max_lens'] + MAX_LENS)
387
S[user, 'lens_time'] = now
388
else:
389
S[user, 'lens_time'] = now
390
S[user, 'lens'] += lens
391
metadata['total_lens'] += lens
392
return MAX_LENS
393
394
@export
395
def reduce_lens(to: str, amount: float):
396
assert ctx.caller in metadata['lens_operator'], 'Only operator can set metadata!'
397
398
S[to, 'lens_time'] = now
399
S[to, 'lens'] -= amount
400
metadata['total_lens'] -= lens
401
402
@export
403
def increase_lens(to: str, amount: float):
404
assert ctx.caller in metadata['lens_operator'], 'Only operator can set metadata!'
405
406
S[to, 'lens_time'] = now
407
S[to, 'lens'] += amount
408
metadata['total_lens'] += lens
409
410
@export
411
def register_external_link(wallet: str, dapp: str):
412
block_emergency()
413
user = ctx.caller
414
415
assert L[dapp, wallet, 'owner'] != wallet, 'Dapps link its ready'
416
417
L[dapp, wallet] = ['ref', 'owner']
418
L[dapp, wallet, 'ref'] = user
419
L[dapp, wallet, 'owner'] = wallet
420
421
422
@export
423
def active_dapps_link(dapp: str):
424
block_emergency()
425
user = ctx.caller
426
if L[dapp, user] is not None:
427
LINK[L[dapp, user, 'ref'], dapp, 'ACTIVE'] = user
428
429
430
@export
431
def remove_dapps_link(dapp: str):
432
block_emergency()
433
user = ctx.caller
434
if L[dapp, user] is not None:
435
L[dapp, user] = None
436
L[dapp, user, 'ref'] = None
437
L[dapp, user, 'owner'] = None
438
439
440
@export
441
def claim():
442
block_emergency()
443
user = ctx.caller
444
445
assert S[user, 'claimable'] > 0, 'Not optics to claim'
446
FEES = S[user, 'claimable'] * metadata['rewards_fees']
447
con_optic_lst001.transfer_from(S[user, 'claimable'] - FEES, user,
448
metadata['operator'])
449
con_optic_lst001.transfer_from(FEES, metadata['fees_wallet'],
450
metadata['operator'])
451
S[user, 'claimable'] = 0
452
metadata['fees'] += FEES
453
454
#10% Proposal d8257147a1c54b97dfa0cf2908612c1a4f3f3df028530ed3777a78c4a67241da
455
S[user, 'lens_time'] = now
456
S[user, 'lens'] -= (S[user, 'lens'] * metadata['fees_lens_claim'])
457
458
459
460
@export
461
def claim_pledge():
462
block_emergency()
463
assert blockdata['xoptic_start'] == True, 'Deposit not start'
464
user = ctx.caller
465
assert S[user, 'claimable'] > 0, 'You must stake something.'
466
467
FEES = S[user, 'claimable'] * metadata['rewards_fees']
468
amount = S[user, 'claimable'] - FEES
469
metadata['fees'] += FEES
470
471
con_optic_lst001.transfer_from(FEES, metadata['fees_wallet'], metadata['operator'])
472
S[user, 'claimable'] = 0
473
474
#stake
475
X_SUPPLY = metadata['xoptic_supply']
476
OPTIC_IN_POOL = metadata['optic_in_pool']
477
RECEIVED = amount / (OPTIC_IN_POOL + amount) * X_SUPPLY
478
479
#con_optic_lst001.transfer_from(amount, metadata['operator'], user)
480
#con_xoptic_lst001.transfer_from(RECEIVED, user, metadata['operator'])
481
482
metadata['optic_in_pool'] += amount
483
metadata['xoptic_supply'] -= RECEIVED
484
metadata['xoptic_ratio'] = metadata['optic_in_pool'] / metadata[
485
'xoptic_supply']
486
metadata['optic_staked'] += amount
487
metadata['xoptic_staked'] += RECEIVED
488
S[user, 'xoptic'] += RECEIVED
489
490
amount = RECEIVED
491
#pledge
492
MAX_LENS = 0
493
metadata['xoptic_pledge'] += amount
494
metadata['xoptic_staked'] -= amount
495
S[user, 'xoptic_pledge'] += amount
496
497
if not S[user, 'start_lens'] or S[user, 'start_lens'] is None:
498
S[user, 'start_lens'] = now
499
500
if S[user, 'lens'] == 0 or S[user, 'lens'] is None:
501
S[user, 'lens'] = 0
502
S[user, 'lens_time'] = now
503
504
else:
505
506
if S[user, 'nft_active'] or S[user, 'nft_active'] is not None:
507
thing_info = I.import_module(metadata['nft_contract'])
508
uid = S[user, 'nft_active']
509
active = thing_info.get_boost_owner(user, uid)
510
MAX_LENS = 100 * active
511
512
513
lens = S[user, 'xoptic_pledge'] * (metadata['lens_factor'] / (
514
60 * 60)) * (now - S[user, 'lens_time']).seconds
515
if lens + S[user, 'lens'] >= S[user, 'xoptic_pledge'] * (metadata
516
['max_lens'] + MAX_LENS):
517
metadata['total_lens'] += lens + S[user, 'lens'] - S[user,
518
'xoptic_pledge'] * (metadata['max_lens'] + MAX_LENS)
519
S[user, 'lens'] = S[user, 'xoptic_pledge'] * (metadata[
520
'max_lens'] + MAX_LENS)
521
S[user, 'lens_time'] = now
522
else:
523
S[user, 'lens'] += lens
524
metadata['total_lens'] += lens
525
S[user, 'lens_time'] = now
526
527
@export
528
def add_rewards(to: str, amount_base: float, amount_boost: float, uid: str):
529
assert ctx.caller == metadata['operator'
530
], 'Only operator can set metadata!'
531
532
S[to, 'claimable'] += amount_base + amount_boost
533
534
535
536
@export
537
def burn(amount: float):
538
assert ctx.caller == metadata['operator'
539
], 'Only operator can set metadata!'
540
metadata['burn'] -= amount
541
542
543
@export
544
def fees(amount: float):
545
assert ctx.caller == metadata['operator'
546
], 'Only operator can set metadata!'
547
metadata['fees'] -= amount
548
549
550
@export
551
def buyback(amount: float):
552
assert ctx.caller == metadata['operator'
553
], 'Only operator can set metadata!'
554
metadata['buyback'] += amount
555
metadata['optic_in_pool'] += amount
556
metadata['xoptic_ratio'] = metadata['optic_in_pool'] / metadata[
557
'xoptic_supply']
558
559
@export
560
def import_emergency_user(to: str, data: dict):
561
assert ctx.caller == metadata['operator'
562
], 'Only operator can set metadata!'
563
564
for d in data:
565
S[to, d] = data[d]
566
567
568
@export
569
def import_emergency_contract(data: dict):
570
assert ctx.caller == metadata['operator'
571
], 'Only operator can set metadata!'
572
573
574
for d in data:
575
metadata[d] = data[d]
576
577
578
579
@export
580
def change_blockdata(key: str, value: Any):
581
assert ctx.caller == metadata['operator'
582
], 'Only operator can set metadata!'
583
blockdata[key] = value
584
585
586
@export
587
def change_meta(key: str, value: Any):
588
assert ctx.caller == metadata['operator'], 'Only operator can set metadata!'
589
metadata[key] = value
590
591
592
@export
593
def remove_tau_emergency(amount: float):
594
assert_signer_is_operator()
595
596
metadata['remove_tau_emergency', ctx.caller] = amount
597
agreed = True
598
599
for op in metadata['operator_sign']:
600
if metadata['remove_tau_emergency', op] != metadata['remove_tau_emergency', ctx.caller]:
601
agreed = False
602
break
603
604
if agreed:
605
currency.transfer_from(amount, metadata['operator'], ctx.this)
606
607
for op in metadata['operator_sign']:
608
metadata['remove_tau_emergency', op] = 0
609
610
@export
611
def assert_signer_is_operator():
612
assert ctx.signer in metadata['operator_sign'], 'Only executable by operators!'
613
614
def block_emergency():
615
assert blockdata['block_emergency'] == False, 'Block funcion!'
616
617
Byte Code
e3000000000000000000000000060000004000000073e0030000640064016c005a00640064016c015a01640064016c025a02640064016c035a0365045a05650664006402640364048d035a07650664006402640564048d035a08650664006402640664048d035a09650664006402640764048d035a0a650664006402640864048d035a0b650c6409640a6402640b640c8d045a0d650c640d640a6402640e640c8d045a0e650c640f640a64026410640c8d045a0f650c6411640a64026412640c8d045a106413641484005a116512640283016513651464159c0264166417840483015a15651264028301651464189c016419641a840483015a16651264028301651464189c01641b641c840483015a17651264028301641d641e840083015a18651264028301651464189c01641f6420840483015a19651264028301651464189c0164216422840483015a1a65126402830164236424840083015a1b65126402830165136514651364259c0364266427840483015a1c651264028301651464189c0164286429840483015a1d651264028301651464189c01642a642b840483015a1e651264028301651464189c01642c642d840483015a1f651264028301642e642f840083015a2065126402830165136514651364259c0364306431840483015a21651264028301651464189c0164326433840483015a22651264028301651464189c0164346435840483015a23651264028301651464189c0164366437840483015a24651264028301651464189c0164386439840483015a25651264028301643a643b840083015a266512640283016513651464159c02643c643d840483015a276512640283016513643e9c01643f6440840483015a286512640283016513651464159c0264416442840483015a296512640283016513651464159c0264436444840483015a2a6512640283016513651364459c0264466447840483015a2b651264028301651364489c016449644a840483015a2c651264028301651364489c01644b644c840483015a2d651264028301644d644e840083015a2e651264028301644f6450840083015a2f651264028301651365146514651364519c0464526453840483015a30651264028301651464189c0164546455840483015a31651264028301651464189c0164566457840483015a32651264028301651464189c0164586459840483015a3365126402830165136534645a9c02645b645c840483015a356512640283016534645d9c01645e645f840483015a366512640283016513653764609c0264616462840483015a386512640283016513653764609c0264636464840483015a39651264028301651464189c0164656466840483015a3a65126402830164676468840083015a3b6469646a84005a3c64015300296be9000000004eda15636f6e5f6f707469635f70726f746f636f6c5f7633da01532903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da014cda044c494e4bda086d65746164617461da09626c6f636b64617461da0863757272656e6379da0862616c616e636573da035441552904da10666f726569676e5f636f6e7472616374da0c666f726569676e5f6e616d6572050000007206000000da10636f6e5f6f707469635f6c7374303031da054f50544943da11636f6e5f786f707469635f6c7374303031da06784f50544943da15636f6e5f6f707469635f737461755f6c7374303031da047354415563000000000000000000000000030000004300000073e800000074006a01740264013c006402740264033c006404740264053c006406740264073c006408740264093c007403640a83017402640b3c00640c7402640d3c00640c7402640e3c00640f740264103c00640f740264113c00640f740264123c00640f740264133c00640f740264113c00740364148301740264153c006416740264173c00740364148301740264183c0064197404641a3c00641b7404641c3c00641b7404641d3c00641e7402641f3c00740364208301740264213c006422740264233c0064246701740264253c006416740264263c0074006a01642764286703740264293c0064005300292a4eda086f70657261746f72da4065623930373461623037633530326265333562653466343437643337306137396163396665623632653834396665303237326466653933643065346364643438da0b666565735f77616c6c657469005a6202da0d696e697469616c5f6f666665726980f0fa02da09626173655f706f6f6c6900c2eb0bda0a626f6f73745f706f6f6c7a06302e30323035da0b6c656e735f666163746f7269c088190cda0d786f707469635f737570706c79da0d6f707469635f696e5f706f6f6c7201000000da0c6f707469635f7374616b6564da09737461755f6661726dda0d786f707469635f706c65646765da0b737461755f7374616b65647a03302e31da0f666565735f6c656e735f636c61696de901000000da0c786f707469635f726174696fda0c726577617264735f6665657346da0f626c6f636b5f656d657267656e637954da0c786f707469635f7374617274da0d696e697469616c5f636c6f7365e964000000da086d61785f6c656e737a04302e3033da0c696e7374616e745f6275726eda10636f6e5f6f707469635f6e66745f7634da0c6e66745f636f6e7472616374da13636f6e5f6f707469635f666c69705f636f696eda0d6c656e735f6f70657261746f72da12656d657267656e63795f636f6e7472616374da4032346634313834633964396538653834343030363765373566623463383264343463353163353239353831646434306534383661306361393839363339363030da4062316334623661306261613363656637666435376131393164336665303739383734386234333964646635363638323561326236313465623235306262353139da0d6f70657261746f725f7369676e2905da03637478da0663616c6c6572da0a5f5f6d65746164617461da07646563696d616cda0b5f5f626c6f636b64617461a900723a000000723a000000da00da045f5f5f5f17000000733600000000010a0208010801080108010c0108010801080108010801080108010c0108010c0108010801080108010c0108010a01080104010201723c0000002902da02746fda06616d6f756e74630200000000000000020000000500000043000000732c00000074006a017402640119006b027316740364028301820174046a057c017c00740264011900830301007c01530029034e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212906723500000072360000007237000000da0e417373657274696f6e4572726f727210000000da0d7472616e736665725f66726f6d2902723d000000723e000000723a000000723a000000723b000000da0f696e697469616c5f72657761726473360000007308000000000210010601120172410000002901723e000000630100000000000000030000000400000043000000739800000074006401190064026b027314740164038301820174028300010074036a047d017c0064046b047330740164058301820174057c0119007c006b057344740164068301820174066a077c007408640719007c018303010074096a0a7d0274086408050019007c00370003003c00740864097c026602050019007c00370003003c00740b7c0164096602050019007c00370003003c007c005300290a4e7229000000467a16496e697469616c204465706f73697420436c6f73656472010000007a18596f75206d7573742073656e6420736f6d657468696e672e7a194e6f7420656e6f75676820636f696e7320746f2073656e64217216000000da0d746f74616c5f696e697469616cda07696e697469616c290c7239000000723f000000da115f5f626c6f636b5f656d657267656e637972350000007236000000da055f5f544155720b00000072400000007237000000da036e6f77da03646179da035f5f532903723e000000da04757365727247000000723a000000723a000000723b00000072430000003e0000007316000000000214010601060110011401120106011001140114017243000000630100000000000000030000000500000043000000739c00000074008300010074016401190064026b02731a740264038301820174036a047d017c0064046b047330740264058301820174057c016406660219007c006b057348740264078301820174066a077c007c017408640819008303010074086409050019007c00380003003c0074096a0a7d02740864067c026602050019007c00380003003c0074057c0164066602050019007c00380003003c007c005300290a4e7229000000467a0d52656d6f7665204c6f636b656472010000007a1a596f75206d7573742072656d6f766520736f6d657468696e672e72430000007a1b4e6f7420656e6f75676820636f696e7320746f2072656d6f76652172160000007242000000290b72440000007239000000723f000000723500000072360000007248000000720b00000072400000007237000000724600000072470000002903723e00000072490000007247000000723a000000723a000000723b000000da0e72656d6f76655f696e697469616c4d000000731600000000020601140106011001180112011001060114011401724a000000630000000000000000020000000500000043000000737000000074006401190064026b027314740164038301820174026a037d0074047c0064046602190064056b047332740164068301820174047c0064046602190074056407190014007405640819001b007d0174066a077c017c0074056409190083030100640574047c00640466023c007c015300290a4e7229000000547a0c436c61696d204c6f636b6564724300000072010000007a1a4e6f7420656e6f75676820636f696e7320746f20636c61696d2172190000007242000000721600000029087239000000723f00000072350000007236000000724800000072370000007210000000724000000029027249000000723e000000723a000000723a000000723b000000da0b636c61696d5f666f7267655c000000731000000000021401060118011401080112010c01724b00000063010000000000000005000000050000004300000073f400000074008300010074016401190064026b02731a740264038301820174036a047d017c0064046b047330740264058301820174057c0119007c006b05734474026406830182017406640719007d027406640819007d037c007c037c0017001b007c0214007d0474076a087c007406640919007c018303010074096a087c047c017406640919008303010074066408050019007c00370003003c0074066407050019007c04380003003c007406640819007406640719001b007406640a3c007406640b050019007c00370003003c007406640c050019007c04370003003c00740a7c01640d6602050019007c04370003003c007c045300290e4e7228000000547a114465706f736974206e6f7420737461727472010000007a19596f75206d757374207374616b6520736f6d657468696e672e7a1a4e6f7420656e6f75676820636f696e7320746f207374616b6521721d000000721e00000072160000007225000000721f000000da0d786f707469635f7374616b6564da06786f70746963290b72440000007239000000723f00000072350000007236000000da075f5f4f50544943723700000072100000007240000000721200000072480000002905723e0000007249000000da08585f535550504c59da0d4f505449435f494e5f504f4f4cda085245434549564544723a000000723a000000723b000000da057374616b65680000007324000000000206011401060110011401080108011001120112011001100108010c01100110011401725200000063010000000000000003000000040000004300000073d600000074008300010074016401190064026b02731a740264038301820174036a047d017c0064046b047330740264058301820174057c0119007c006b05734474026406830182017c007406640719001b0074066408190014007d0274076a087c007406640919007c018303010074066408050019007c02380003003c007406640a050019007c00370003003c007406640819007406640719001b007406640b3c007406640c050019007c02380003003c007406640d050019007c00380003003c0074097c01640e6602050019007c00380003003c007c025300290f4e7228000000547a1052656d6f7665206e6f7420737461727472010000007a1e596f75206d757374207769746864726177616c20736f6d657468696e672e7a1f4e6f7420656e6f75676820636f696e7320746f207769746864726177616c21721d000000721e0000007216000000da0d786f707469635f6275726e65647225000000721f000000724c000000724d000000290a72440000007239000000723f00000072350000007236000000da085f5f784f5054494372370000007212000000724000000072480000002903723e0000007249000000da094f505449435f4f5554723a000000723a000000723b000000da07756e7374616b657e00000073200000000002060114010601100114010c01080112011001100108010c011001100114017256000000630000000000000000020000000500000043000000734a00000074008300010074016a027d0074037c006401660219007d017c0164026b047328740464038301820174056a067c017c0074076404190083030100640274037c00640166023c007c01530029054eda0e786f707469635f756e7374616b6572010000007a1b596f75206d75737420756e7374616b6520736f6d657468696e672e721600000029087244000000723500000072360000007248000000723f00000072100000007240000000723700000029027249000000723e000000723a000000723a000000723b000000da14636c61696d5f756e7374616b655f786f7074696392000000730e0000000002060106010c01100112010c0172580000002903723d000000723e000000da03756964630300000000000000030000000400000043000000732e00000074006a017402640119006b027316740364028301820174047c0064036602050019007c01370003003c007c01530029044e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d657461646174612172570000002905723500000072360000007237000000723f00000072480000002903723d000000723e0000007259000000723a000000723a000000723b000000da126164645f756e7374616b655f786f707469639d00000073080000000002100106011401725a000000630100000000000000020000000500000043000000736800000074008300010074016a027d017c0064016b04731c740364028301820174047c0119007c006b057330740364038301820174056a067c007407640419007c018303010074086a067c007c017407640419008303010074076405050019007c00370003003c007c00530029064e72010000007a19596f75206d757374207374616b6520736f6d657468696e672e7a194e6f7420656e6f75676820636f696e7320746f2073656e64217216000000da0a737461755f73706c69742909724400000072350000007236000000723f0000007245000000720b0000007240000000723700000072140000002902723e0000007249000000723a000000723a000000723b000000da0573706c6974a5000000731000000000020601060110011401120112011001725c000000630100000000000000030000000500000043000000739e00000074008300010074016a027d017c0064016b04731c740364028301820174047c0119007c006b057330740364038301820174056a067c007407640419007c01830301007c0074076405190014007d0274086a067c007c0218007c017407640419008303010074086a067c027407640619007407640419008303010074076407050019007c00380003003c0074076408050019007c02370003003c007c00530029094e72010000007a19596f75206d757374207374616b6520736f6d657468696e672e7a184e6f7420656e6f756768207354415520746f2073656e64217216000000722c0000007218000000725b000000da046275726e2909724400000072350000007236000000723f000000da065f5f73544155721400000072400000007237000000720b0000002903723e0000007249000000da044255524e723a000000723a000000723b000000da0e72656465656d5f696e7374616e74b100000073180000000002060106011001140112010c0116010e010801100110017260000000630100000000000000020000000400000043000000735600000074008300010074016a027d017c0064016b04731c740364028301820174047c0119007c006b057330740364038301820174056a067c007407640419007c018303010074076405050019007c00380003003c007c00530029064e72010000007a19596f75206d757374207374616b6520736f6d657468696e672e7a184e6f7420656e6f756768207354415520746f2073656e64217216000000725b0000002908724400000072350000007236000000723f000000725e0000007214000000724000000072370000002902723e0000007249000000723a000000723a000000723b000000da0b72656465656d5f736c6f77c1000000730e00000000020601060110011401120110017261000000630000000000000000020000000500000043000000734a00000074008300010074016a027d0074037c006401660219007d017c0164026b047328740464038301820174056a067c017c0074076404190083030100640274037c00640166023c007c01530029054eda056d6572676572010000007a19596f75206d75737420636c61696d20736f6d657468696e672e721600000029087244000000723500000072360000007248000000723f000000720b0000007240000000723700000029027249000000723e000000723a000000723a000000723b000000da10636c61696d5f6d657267655f736c6f77cc000000730e0000000002060106010c01100112010c017263000000630300000000000000030000000400000043000000732e00000074006a017402640119006b027316740364028301820174047c0064036602050019007c01370003003c007c01530029044e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d657461646174612172620000002905723500000072360000007237000000723f00000072480000002903723d000000723e0000007259000000723a000000723a000000723b000000da0e6164645f6d657267655f736c6f77d700000073080000000002100106011401726400000063010000000000000002000000040000004300000073b000000074008300010074016a027d0174036401190064026b02732074046403830182017c0064046b047330740464058301820174057c0119007c006b057344740464068301820174066a077c007408640719007c018303010074097c016408660219000c00737474097c0164086602190064006b087280740a74097c01640866023c0074086409050019007c00370003003c0074097c01640a6602050019007c00370003003c0074097c016408660219005300290b4e7228000000547a114465706f736974206e6f7420737461727472010000007a19596f75206d757374207374616b6520736f6d657468696e672e7a1a4e6f7420656e6f75676820636f696e7320746f207374616b65217216000000da0a73746172745f6661726d7220000000da046661726d290b7244000000723500000072360000007239000000723f000000725e000000721400000072400000007237000000724800000072460000002902723e0000007249000000723a000000723a000000723b0000007266000000df000000731600000000020601060114011001140112011e010c01100114017266000000630100000000000000020000000500000043000000738a00000074008300010074016a027d017c0064016b04731c740364028301820174047c016403660219007c006b057334740364048301820174056a067c007c017407640519008303010074076406050019007c00380003003c0074047c0164036602050019007c00380003003c0074047c0164036602190064016b027286640074047c01640766023c006400530029084e72010000007a1e596f75206d757374207769746864726177616c20736f6d657468696e672e72660000007a1f4e6f7420656e6f75676820636f696e7320746f207769746864726177616c217216000000722000000072650000002908724400000072350000007236000000723f00000072480000007214000000724000000072370000002902723e0000007249000000723a000000723a000000723b000000da0672656d6f7665ee00000073120000000002060106011001180112011001140110017267000000630100000000000000070000000700000043000000731602000074008300010074016a027d017c0064016b04731c740364028301820174047c0119007c006b057330740364038301820174056a067c007407640419007c018303010064017d0274076405050019007c00370003003c0074076406050019007c00380003003c0074087c0164056602050019007c00370003003c0074087c016407660219000c00739874087c0164076602190064006b0872a4740974087c01640766023c0074087c0164086602190064016b0273c474087c0164086602190064006b0872e0640174087c01640866023c00740974087c01640966023c0090016e3274087c01640a6602190073fe74087c01640a6602190064006b099001722c740a6a0b7407640b190083017d0374087c01640a660219007d047c036a0c7c017c0483027d05640c7c0514007d0274087c016405660219007407640d190064111b001400740974087c0164096602190018006a0d14007d067c0674087c01640866021900170074087c016405660219007407640f19007c02170014006b05900172e274076410050019007c0674087c01640866021900170074087c016405660219007407640f19007c02170014001800370003003c0074087c016405660219007407640f19007c021700140074087c01640866023c00740974087c01640966023c006e3074087c0164086602050019007c06370003003c0074076410050019007c06370003003c00740974087c01640966023c006400530029124e72010000007a1b596f75206d75737420706c656467656420736f6d657468696e672e7a1c4e6f7420656e6f75676820636f696e7320746f20706c65646765642172160000007221000000724c000000da0a73746172745f6c656e73da046c656e73da096c656e735f74696d65da0a6e66745f616374697665722e000000722a000000721c000000e93c000000722b000000da0a746f74616c5f6c656e7369100e0000290e724400000072350000007236000000723f000000725400000072120000007240000000723700000072480000007246000000da0149da0d696d706f72745f6d6f64756c65da0f6765745f626f6f73745f6f776e6572da077365636f6e64732907723e0000007249000000da084d41585f4c454e53da0a7468696e675f696e666f7259000000da066163746976657269000000723a000000723a000000723b000000da06706c65646765fb000000733c00000000020601060110011401120104011001100114011e010c0120010c0110021e010e010c010c0108022a011a0110011a011a010c0114010e0214011001727500000063010000000000000002000000060000004300000073d600000074008300010074016a027d017c0064016b04731c740364028301820174047c016403660219007c006b057334740364048301820174056a067c007c017407640519008303010074076403050019007c00380003003c0074076406050019007c00370003003c0074047c0164036602050019007c00380003003c00740764070500190074047c01640866021900380003003c00640174047c01640866023c00640074047c01640966023c0074047c0164036602190064016b0472d2740874047c01640a66023c00740874047c01640966023c0064005300290b4e72010000007a1d596f75206d75737420756e706c656467656420736f6d657468696e672e72210000007a1e4e6f7420656e6f75676820636f696e7320746f20756e706c6564676564217216000000724c000000726d00000072690000007268000000726a0000002909724400000072350000007236000000723f000000724800000072120000007240000000723700000072460000002902723e0000007249000000723a000000723a000000723b000000da08756e706c6564676520010000731e00000000020601060110010a010e01120110011001140118010c010c0110010c017276000000630000000000000000060000000700000043000000735c01000074008300010074016a027d0064017d0174037c0064026602190064016b047328740464038301820174037c00640266021900740564041900640d1b001400740674037c0064066602190018006a0714007d0274037c00640766021900736e74037c0064076602190064006b09729c74086a0974056408190083017d0374037c006407660219007d047c036a0a7c007c0483027d0564097c0514007d017c0274037c00640a66021900170074037c006402660219007405640b19007c01170014006b05900172287405640c050019007c0274037c00640a66021900170074037c006402660219007405640b19007c01170014001800370003003c0074037c006402660219007405640b19007c011700140074037c00640a66023c00740674037c00640666023c006e30740674037c00640666023c0074037c00640a6602050019007c02370003003c007405640c050019007c02370003003c007c015300290e4e720100000072210000007a124e6f74206f707469637320746f206c656e73721c000000726c000000726a000000726b000000722e000000722a0000007269000000722b000000726d00000069100e0000290b7244000000723500000072360000007248000000723f000000723700000072460000007271000000726e000000726f00000072700000002906724900000072720000007269000000727300000072590000007274000000723a000000723a000000723b000000da0b6163746976655f6c656e7333010000732a000000000206010601040118022a011c010e010c010c0108011a0110011a011a010c0114010e020c01140110017277000000630200000000000000020000000400000043000000737400000074006a017402640119006b06731674036402830182017c0164036b007240740474057c00640466023c0074057c0064056602050019007c01380003003c006e30740474057c00640466023c0074057c0064056602050019007c01370003003c0074026406050019007406370003003c006400530029074e72300000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461217201000000726a0000007269000000726d0000002907723500000072360000007237000000723f0000007246000000724800000072690000002902723d000000723e000000723a000000723a000000723b000000da0967616d655f6c656e734e010000731000000000021001060108010c0116020c01140172780000002901723d000000630100000000000000070000000700000043000000737001000074008300010074016a027403640119006b06731c74046402830182017c007d0164037d0274057c0164046602190064036b04733c740464058301820174057c01640466021900740364061900640f1b001400740674057c0164086602190018006a0714007d0374057c01640966021900738274057c0164096602190064006b0972b074086a097403640a190083017d0474057c016409660219007d057c046a0a7c017c0583027d06640b7c0614007d027c0374057c01640c66021900170074057c016404660219007403640d19007c02170014006b059001723c7403640e050019007c0374057c01640c66021900170074057c016404660219007403640d19007c02170014001800370003003c0074057c016404660219007403640d19007c021700140074057c01640c66023c00740674057c01640866023c006e30740674057c01640866023c0074057c01640c6602050019007c03370003003c007403640e050019007c03370003003c007c02530029104e72300000007a1f4f6e6c79206f70657261746f722063616e20736574206d6574616461746121720100000072210000007a124e6f74206f707469637320746f206c656e73721c000000726c000000726a000000726b000000722e000000722a0000007269000000722b000000726d00000069100e0000290b7244000000723500000072360000007237000000723f000000724800000072460000007271000000726e000000726f00000072700000002907723d000000724900000072720000007269000000727300000072590000007274000000723a000000723a000000723b000000da106163746976655f6175746f5f6c656e735b010000732e00000000020601100106010401040118022a011c010e010c010c0108011a0110011a011a010c0114010e020c01140110017279000000630200000000000000020000000400000043000000734a00000074006a017402640119006b0673167403640283018201740474057c00640366023c0074057c0064046602050019007c01380003003c0074026405050019007406380003003c006400530029064e72300000007a1f4f6e6c79206f70657261746f722063616e20736574206d6574616461746121726a0000007269000000726d0000002907723500000072360000007237000000723f0000007246000000724800000072690000002902723d000000723e000000723a000000723a000000723b000000da0b7265647563655f6c656e7378010000730a0000000002100106010c011401727a000000630200000000000000020000000400000043000000734a00000074006a017402640119006b0673167403640283018201740474057c00640366023c0074057c0064046602050019007c01370003003c0074026405050019007406370003003c006400530029064e72300000007a1f4f6e6c79206f70657261746f722063616e20736574206d6574616461746121726a0000007269000000726d0000002907723500000072360000007237000000723f0000007246000000724800000072690000002902723d000000723e000000723a000000723a000000723b000000da0d696e6372656173655f6c656e7381010000730a0000000002100106010c011401727b0000002902da0677616c6c6574da0464617070630200000000000000030000000500000043000000735600000074008300010074016a027d0274037c017c006401660319007c006b037326740464028301820164036401670274037c017c0066023c007c0274037c017c00640366033c007c0074037c017c00640166033c006400530029044eda056f776e65727a144461707073206c696e6b20697473207265616479da037265662905724400000072350000007236000000da035f5f4c723f0000002903727c000000727d0000007249000000723a000000723a000000723b000000da1672656769737465725f65787465726e616c5f6c696e6b8a010000730c0000000002060106011a0110010e0172810000002901727d000000630100000000000000020000000600000043000000733800000074008300010074016a027d0174037c007c016602190064006b0972347c01740474037c007c016401660319007c00640266033c006400530029034e727f000000da0641435449564529057244000000723500000072360000007280000000da065f5f4c494e4b2902727d0000007249000000723a000000723a000000723b000000da116163746976655f64617070735f6c696e6b94010000730800000000020601060110017284000000630100000000000000020000000500000043000000734800000074008300010074016a027d0174037c007c016602190064006b097244640074037c007c0166023c00640074037c007c01640166033c00640074037c007c01640266033c006400530029034e727f000000727e000000290472440000007235000000723600000072800000002902727d0000007249000000723a000000723a000000723b000000da1172656d6f76655f64617070735f6c696e6b9c010000730c00000000020601060110010c010e01728500000063000000000000000002000000060000004300000073bc00000074008300010074016a027d0074037c0064016602190064026b047324740464038301820174037c0064016602190074056404190014007d0174066a0774037c006401660219007c0118007c007405640519008303010074066a077c0174056406190074056405190083030100640274037c00640166023c0074056407050019007c01370003003c00740874037c00640866023c0074037c00640966020500190074037c006409660219007405640a19001400380003003c0064005300290b4eda09636c61696d61626c6572010000007a134e6f74206f707469637320746f20636c61696d722600000072160000007218000000da0466656573726a0000007269000000722300000029097244000000723500000072360000007248000000723f000000723700000072100000007240000000724600000029027249000000da0446454553723a000000723a000000723b000000da05636c61696da601000073180000000002060106011801140114010a010c010a010c0110010c0172890000006300000000000000000b000000070000004300000073f802000074008300010074016401190064026b02731a740264038301820174036a047d0074057c0064046602190064056b047338740264068301820174057c0064046602190074066407190014007d0174057c006404660219007c0118007d0274066408050019007c01370003003c0074076a087c017406640919007406640a190083030100640574057c00640466023c007406640b19007d037406640c19007d047c027c047c0217001b007c0314007d057406640c050019007c02370003003c007406640b050019007c05380003003c007406640c19007406640b19001b007406640d3c007406640e050019007c02370003003c007406640f050019007c05370003003c0074057c0064106602050019007c05370003003c007c057d0264057d0674066411050019007c02370003003c007406640f050019007c02380003003c0074057c0064116602050019007c02370003003c0074057c006412660219000c009001737474057c0064126602190064006b0890017280740974057c00641266023c0074057c0064136602190064056b02900173a474057c0064136602190064006b08900172c0640574057c00641366023c00740974057c00641466023c0090016e3474057c00641566021900900173e074057c0064156602190064006b099002720e740a6a0b74066416190083017d0774057c006415660219007d087c076a0c7c007c0883027d0964177c0914007d0674057c00641166021900740664181900641c1b001400740974057c0064146602190018006a0d14007d0a7c0a74057c00641366021900170074057c006411660219007406641a19007c06170014006b05900272c47406641b050019007c0a74057c00641366021900170074057c006411660219007406641a19007c06170014001800370003003c0074057c006411660219007406641a19007c061700140074057c00641366023c00740974057c00641466023c006e3074057c0064136602050019007c0a370003003c007406641b050019007c0a370003003c00740974057c00641466023c0064005300291d4e7228000000547a114465706f736974206e6f74207374617274728600000072010000007a19596f75206d757374207374616b6520736f6d657468696e672e7226000000728700000072180000007216000000721d000000721e0000007225000000721f000000724c000000724d000000722100000072680000007269000000726a000000726b000000722e000000722a000000721c000000726c000000722b000000726d00000069100e0000290e72440000007239000000723f0000007235000000723600000072480000007237000000721000000072400000007246000000726e000000726f00000072700000007271000000290b72490000007288000000723e000000724f0000007250000000725100000072720000007273000000725900000072740000007269000000723a000000723a000000723b000000da0c636c61696d5f706c65646765b6010000735c000000000206011401060118011401100110010c010a010c010801080110011001100108010c011001100114010401040110011001140122010c0124010c01100220010e010c010c0108022a011a0110011a011a010c0114010e0214011001728a0000002904723d000000da0b616d6f756e745f62617365da0c616d6f756e745f626f6f73747259000000630400000000000000040000000500000043000000733200000074006a017402640119006b027316740364028301820174047c0064036602050019007c017c021700370003003c006400530029044e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d657461646174612172860000002905723500000072360000007237000000723f00000072480000002904723d000000728b000000728c0000007259000000723a000000723a000000723b000000da0b6164645f72657761726473eb0100007306000000000210010601728d000000630100000000000000010000000400000043000000732a00000074006a017402640119006b027316740364028301820174026403050019007c00380003003c006400530029044e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d6574616461746121725d0000002904723500000072360000007237000000723f0000002901723e000000723a000000723a000000723b000000725d000000f20100007306000000000210010601725d000000630100000000000000010000000400000043000000732a00000074006a017402640119006b027316740364028301820174026403050019007c00380003003c006400530029044e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d657461646174612172870000002904723500000072360000007237000000723f0000002901723e000000723a000000723a000000723b0000007287000000f901000073060000000002100106017287000000630100000000000000010000000400000043000000734e00000074006a017402640119006b027316740364028301820174026403050019007c00370003003c0074026404050019007c00370003003c007402640419007402640519001b00740264063c006400530029074e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d6574616461746121da076275796261636b721e000000721d00000072250000002904723500000072360000007237000000723f0000002901723e000000723a000000723a000000723b000000728e00000000020000730c000000000210010601100110010801728e0000002902723d000000da0464617461630200000000000000030000000500000043000000733800000074006a017402640119006b0273167403640283018201781c7c0144005d147d027c017c02190074047c007c0266023c00711c57006400530029034e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212905723500000072360000007237000000723f00000072480000002903723d000000728f000000da0164723a000000723a000000723b000000da15696d706f72745f656d657267656e63795f757365720a02000073080000000002100106010a0172910000002901728f000000630100000000000000020000000400000043000000733400000074006a017402640119006b027316740364028301820178187c0044005d107d017c007c01190074027c013c00711c57006400530029034e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212904723500000072360000007237000000723f0000002902728f0000007290000000723a000000723a000000723b000000da19696d706f72745f656d657267656e63795f636f6e74726163741202000073080000000002100106010a0172920000002902da036b6579da0576616c7565630200000000000000020000000300000043000000732200000074006a017402640119006b02731674036402830182017c0174047c003c006400530029034e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212905723500000072360000007237000000723f0000007239000000290272930000007294000000723a000000723a000000723b000000da106368616e67655f626c6f636b646174611a02000073060000000002100106017295000000630200000000000000020000000300000043000000732200000074006a017402640119006b02731674036402830182017c0174027c003c006400530029034e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212904723500000072360000007237000000723f000000290272930000007294000000723a000000723a000000723b000000da0b6368616e67655f6d657461210200007306000000000210010601729600000063010000000000000003000000050000004300000073840000007400830001007c007401640174026a0366023c0064027d01783074016403190044005d247d02740164017c02660219007401640174026a03660219006b03722264047d015000712257007c01728074046a057c0074016405190074026a0683030100781c74016403190044005d107d026406740164017c0266023c00716c57006400530029074eda1472656d6f76655f7461755f656d657267656e637954723400000046721600000072010000002907da196173736572745f7369676e65725f69735f6f70657261746f72723700000072350000007236000000720b0000007240000000da04746869732903723e000000da06616772656564da026f70723a000000723a000000723b0000007297000000280200007318000000000206010e0104010e010c010e0104010601040114010e017297000000630000000000000000000000000300000043000000731a00000074006a017402640119006b06731674036402830182016400530029034e72340000007a1d4f6e6c792065786563757461626c65206279206f70657261746f72732129047235000000da067369676e65727237000000723f000000723a000000723a000000723a000000723b0000007298000000380200007304000000000210017298000000630000000000000000000000000200000043000000731800000074006401190064026b02731474016403830182016400530029044e7227000000467a0e426c6f636b2066756e63696f6e2129027239000000723f000000723a000000723a000000723a000000723b00000072440000003e020000730200000000017244000000293d720b000000721000000072120000007214000000da09696d706f72746c6962726e000000da044861736872480000007280000000728300000072370000007239000000da0b466f726569676e486173687245000000724e0000007254000000725e000000723c000000da085f5f6578706f7274da03737472da05666c6f617472410000007243000000724a000000724b000000725200000072560000007258000000725a000000725c00000072600000007261000000726300000072640000007266000000726700000072750000007276000000727700000072780000007279000000727a000000727b0000007281000000728400000072850000007289000000728a000000728d000000725d0000007287000000728e000000da046469637472910000007292000000da03416e7972950000007296000000729700000072980000007244000000723a000000723a000000723a000000723b000000da083c6d6f64756c653e0100000073b0000000080108010801080104010e010e010e01060108010601080106010a0104010c0104010c0104010c03081f060112070601100e0601100e100c0601101506011013100b060114070601100b0601100f0601100a100b060114070601100e0601100c0601102406011012101b0601120c0601101c06011208060112080601120906011007060110091010103506011606060110060601100606011009060112070601100706011206060112060601100f1006