Contract con_optic_protocol_v2


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

Byte Code

e300000000000000000000000006000000400000007382030000640064016c005a00640064016c015a01640064016c025a02640064016c035a0365045a05650664006402640364048d035a07650664006402640564048d035a08650664006402640664048d035a09650664006402640764048d035a0a650664006402640864048d035a0b650c6409640a6402640b640c8d045a0d650c640d640a6402640e640c8d045a0e650c640f640a64026410640c8d045a0f650c6411640a64026412640c8d045a106413641484005a116512640283016513651464159c0264166417840483015a15651264028301651464189c016419641a840483015a16651264028301651464189c01641b641c840483015a17651264028301641d641e840083015a18651264028301651464189c01641f6420840483015a19651264028301651464189c0164216422840483015a1a65126402830164236424840083015a1b65126402830165136514651364259c0364266427840483015a1c651264028301651464189c0164286429840483015a1d651264028301651464189c01642a642b840483015a1e651264028301651464189c01642c642d840483015a1f651264028301642e642f840083015a2065126402830165136514651364259c0364306431840483015a21651264028301651464189c0164326433840483015a22651264028301651464189c0164346435840483015a23651264028301651464189c0164366437840483015a24651264028301651464189c0164386439840483015a25651264028301643a643b840083015a2665126402830165136513643c9c02643d643e840483015a276512640283016513643f9c0164406441840483015a286512640283016513643f9c0164426443840483015a2965126402830164446445840083015a2a65126402830164466447840083015a2b651264028301651365146514651364489c046449644a840483015a2c651264028301651464189c01644b644c840483015a2d651264028301651464189c01644d644e840483015a2e651264028301651464189c01644f6450840483015a2f6512640283016513653064519c0264526453840483015a31651264028301653064549c0164556456840483015a326512640283016513653364579c0264586459840483015a346512640283016513653364579c02645a645b840483015a35651264028301651464189c01645c645d840483015a36651264028301645e645f840083015a376460646184005a38640153002962e9000000004eda15636f6e5f6f707469635f70726f746f636f6c5f7632da01532903da0d64656661756c745f76616c7565da08636f6e7472616374da046e616d65da014cda044c494e4bda086d65746164617461da09626c6f636b64617461da0863757272656e6379da0862616c616e636573da035441552904da10666f726569676e5f636f6e7472616374da0c666f726569676e5f6e616d6572050000007206000000da10636f6e5f6f707469635f6c7374303031da054f50544943da11636f6e5f786f707469635f6c7374303031da06784f50544943da15636f6e5f6f707469635f737461755f6c7374303031da047354415563000000000000000000000000030000004300000073d200000074006a01740264013c006402740264033c006404740264053c006406740264073c006408740264093c007403640a83017402640b3c00640c7402640d3c00640c7402640e3c00640f740264103c00640f740264113c00640f740264123c00640f740264133c00640f740264113c006414740264153c00740364168301740264173c006418740464193c0064187404641a3c0064187404641b3c00641c7402641d3c007403641e83017402641f3c006420740264213c006414740264223c0074006a01642364246703740264253c006400530029264eda086f70657261746f72da4065623930373461623037633530326265333562653466343437643337306137396163396665623632653834396665303237326466653933643065346364643438da0b666565735f77616c6c657469005a6202da0d696e697469616c5f6f666665726980f0fa02da09626173655f706f6f6c6900c2eb0bda0a626f6f73745f706f6f6c7a06302e30323035da0b6c656e735f666163746f7269c088190cda0d786f707469635f737570706c79da0d6f707469635f696e5f706f6f6c7201000000da0c6f707469635f7374616b6564da09737461755f6661726dda0d786f707469635f706c65646765da0b737461755f7374616b6564e901000000da0c786f707469635f726174696f7a03302e31da0c726577617264735f6665657346da0f626c6f636b5f656d657267656e6379da0c786f707469635f7374617274da0d696e697469616c5f636c6f7365e964000000da086d61785f6c656e737a04302e3033da0c696e7374616e745f6275726eda10636f6e5f6f707469635f6e66745f7634da0c6e66745f636f6e7472616374da12656d657267656e63795f636f6e7472616374da4032346634313834633964396538653834343030363765373566623463383264343463353163353239353831646434306534383661306361393839363339363030da4062316334623661306261613363656637666435376131393164336665303739383734386234333964646635363638323561326236313465623235306262353139da0d6f70657261746f725f7369676e2905da03637478da0663616c6c6572da0a5f5f6d65746164617461da07646563696d616cda0b5f5f626c6f636b64617461a90072370000007237000000da00da045f5f5f5f17000000733200000000010a0208010801080108010c01080108010801080108010801080108010c0108010801080108010c01080108010401020172390000002902da02746fda06616d6f756e74630200000000000000020000000500000043000000732c00000074006a017402640119006b027316740364028301820174046a057c017c00740264011900830301007c01530029034e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212906723200000072330000007234000000da0e417373657274696f6e4572726f727210000000da0d7472616e736665725f66726f6d2902723a000000723b000000723700000072370000007238000000da0f696e697469616c5f726577617264733400000073080000000002100106011201723e0000002901723b000000630100000000000000030000000400000043000000739800000074006401190064026b027314740164038301820174028300010074036a047d017c0064046b047330740164058301820174057c0119007c006b057344740164068301820174066a077c007408640719007c018303010074096a0a7d0274086408050019007c00370003003c00740864097c026602050019007c00370003003c00740b7c0164096602050019007c00370003003c007c005300290a4e7228000000467a16496e697469616c204465706f73697420436c6f73656472010000007a18596f75206d7573742073656e6420736f6d657468696e672e7a194e6f7420656e6f75676820636f696e7320746f2073656e64217216000000da0d746f74616c5f696e697469616cda07696e697469616c290c7236000000723c000000da115f5f626c6f636b5f656d657267656e637972320000007233000000da055f5f544155720b000000723d0000007234000000da036e6f77da03646179da035f5f532903723b000000da0475736572724400000072370000007237000000723800000072400000003c0000007316000000000214010601060110011401120106011001140114017240000000630100000000000000030000000500000043000000739c00000074008300010074016401190064026b02731a740264038301820174036a047d017c0064046b047330740264058301820174057c016406660219007c006b057348740264078301820174066a077c007c017408640819008303010074086409050019007c00380003003c0074096a0a7d02740864067c026602050019007c00380003003c0074057c0164066602050019007c00380003003c007c005300290a4e7228000000467a0d52656d6f7665204c6f636b656472010000007a1a596f75206d7573742072656d6f766520736f6d657468696e672e72400000007a1b4e6f7420656e6f75676820636f696e7320746f2072656d6f7665217216000000723f000000290b72410000007236000000723c000000723200000072330000007245000000720b000000723d0000007234000000724300000072440000002903723b00000072460000007244000000723700000072370000007238000000da0e72656d6f76655f696e697469616c4b0000007316000000000206011401060110011801120110010601140114017247000000630000000000000000020000000500000043000000737000000074006401190064026b027314740164038301820174026a037d0074047c0064046602190064056b047332740164068301820174047c0064046602190074056407190014007405640819001b007d0174066a077c017c0074056409190083030100640574047c00640466023c007c015300290a4e7228000000547a0c436c61696d204c6f636b6564724000000072010000007a1a4e6f7420656e6f75676820636f696e7320746f20636c61696d217219000000723f000000721600000029087236000000723c00000072320000007233000000724500000072340000007210000000723d00000029027246000000723b000000723700000072370000007238000000da0b636c61696d5f666f7267655a000000731000000000021401060118011401080112010c01724800000063010000000000000005000000050000004300000073f400000074008300010074016401190064026b02731a740264038301820174036a047d017c0064046b047330740264058301820174057c0119007c006b05734474026406830182017406640719007d027406640819007d037c007c037c0017001b007c0214007d0474076a087c007406640919007c018303010074096a087c047c017406640919008303010074066408050019007c00370003003c0074066407050019007c04380003003c007406640819007406640719001b007406640a3c007406640b050019007c00370003003c007406640c050019007c04370003003c00740a7c01640d6602050019007c04370003003c007c045300290e4e7227000000547a114465706f736974206e6f7420737461727472010000007a19596f75206d757374207374616b6520736f6d657468696e672e7a1a4e6f7420656e6f75676820636f696e7320746f207374616b6521721d000000721e00000072160000007224000000721f000000da0d786f707469635f7374616b6564da06786f70746963290b72410000007236000000723c00000072320000007233000000da075f5f4f5054494372340000007210000000723d000000721200000072450000002905723b0000007246000000da08585f535550504c59da0d4f505449435f494e5f504f4f4cda085245434549564544723700000072370000007238000000da057374616b65660000007324000000000206011401060110011401080108011001120112011001100108010c01100110011401724f00000063010000000000000003000000040000004300000073d600000074008300010074016401190064026b02731a740264038301820174036a047d017c0064046b047330740264058301820174057c0119007c006b05734474026406830182017c007406640719001b0074066408190014007d0274076a087c007406640919007c018303010074066408050019007c02380003003c007406640a050019007c00370003003c007406640819007406640719001b007406640b3c007406640c050019007c02380003003c007406640d050019007c00380003003c0074097c01640e6602050019007c00380003003c007c025300290f4e7227000000547a1052656d6f7665206e6f7420737461727472010000007a1e596f75206d757374207769746864726177616c20736f6d657468696e672e7a1f4e6f7420656e6f75676820636f696e7320746f207769746864726177616c21721d000000721e0000007216000000da0d786f707469635f6275726e65647224000000721f0000007249000000724a000000290a72410000007236000000723c00000072320000007233000000da085f5f784f5054494372340000007212000000723d00000072450000002903723b0000007246000000da094f505449435f4f5554723700000072370000007238000000da07756e7374616b657c00000073200000000002060114010601100114010c01080112011001100108010c011001100114017253000000630000000000000000020000000500000043000000734a00000074008300010074016a027d0074037c006401660219007d017c0164026b047328740464038301820174056a067c017c0074076404190083030100640274037c00640166023c007c01530029054eda0e786f707469635f756e7374616b6572010000007a1b596f75206d75737420756e7374616b6520736f6d657468696e672e721600000029087241000000723200000072330000007245000000723c0000007210000000723d000000723400000029027246000000723b000000723700000072370000007238000000da14636c61696d5f756e7374616b655f786f7074696390000000730e0000000002060106010c01100112010c0172550000002903723a000000723b000000da03756964630300000000000000030000000400000043000000732e00000074006a017402640119006b027316740364028301820174047c0064036602050019007c01370003003c007c01530029044e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d657461646174612172540000002905723200000072330000007234000000723c00000072450000002903723a000000723b0000007256000000723700000072370000007238000000da126164645f756e7374616b655f786f707469639b000000730800000000021001060114017257000000630100000000000000020000000500000043000000736800000074008300010074016a027d017c0064016b04731c740364028301820174047c0119007c006b057330740364038301820174056a067c007407640419007c018303010074086a067c007c017407640419008303010074076405050019007c00370003003c007c00530029064e72010000007a19596f75206d757374207374616b6520736f6d657468696e672e7a194e6f7420656e6f75676820636f696e7320746f2073656e64217216000000da0a737461755f73706c69742909724100000072320000007233000000723c0000007242000000720b000000723d000000723400000072140000002902723b0000007246000000723700000072370000007238000000da0573706c6974a30000007310000000000206010601100114011201120110017259000000630100000000000000030000000500000043000000739e00000074008300010074016a027d017c0064016b04731c740364028301820174047c0119007c006b057330740364038301820174056a067c007407640419007c01830301007c0074076405190014007d0274086a067c007c0218007c017407640419008303010074086a067c027407640619007407640419008303010074076407050019007c00380003003c0074076408050019007c02370003003c007c00530029094e72010000007a19596f75206d757374207374616b6520736f6d657468696e672e7a184e6f7420656e6f756768207354415520746f2073656e64217216000000722b00000072180000007258000000da046275726e2909724100000072320000007233000000723c000000da065f5f735441557214000000723d0000007234000000720b0000002903723b0000007246000000da044255524e723700000072370000007238000000da0e72656465656d5f696e7374616e74af00000073180000000002060106011001140112010c0116010e01080110011001725d000000630100000000000000020000000400000043000000735600000074008300010074016a027d017c0064016b04731c740364028301820174047c0119007c006b057330740364038301820174056a067c007407640419007c018303010074076405050019007c00380003003c007c00530029064e72010000007a19596f75206d757374207374616b6520736f6d657468696e672e7a184e6f7420656e6f756768207354415520746f2073656e6421721600000072580000002908724100000072320000007233000000723c000000725b0000007214000000723d00000072340000002902723b0000007246000000723700000072370000007238000000da0b72656465656d5f736c6f77bf000000730e0000000002060106011001140112011001725e000000630000000000000000020000000500000043000000734a00000074008300010074016a027d0074037c006401660219007d017c0164026b047328740464038301820174056a067c017c0074076404190083030100640274037c00640166023c007c01530029054eda056d6572676572010000007a19596f75206d75737420636c61696d20736f6d657468696e672e721600000029087241000000723200000072330000007245000000723c000000720b000000723d000000723400000029027246000000723b000000723700000072370000007238000000da10636c61696d5f6d657267655f736c6f77ca000000730e0000000002060106010c01100112010c017260000000630300000000000000030000000400000043000000732e00000074006a017402640119006b027316740364028301820174047c0064036602050019007c01370003003c007c01530029044e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d6574616461746121725f0000002905723200000072330000007234000000723c00000072450000002903723a000000723b0000007256000000723700000072370000007238000000da0e6164645f6d657267655f736c6f77d500000073080000000002100106011401726100000063010000000000000002000000040000004300000073b000000074008300010074016a027d0174036401190064026b02732074046403830182017c0064046b047330740464058301820174057c0119007c006b057344740464068301820174066a077c007408640719007c018303010074097c016408660219000c00737474097c0164086602190064006b087280740a74097c01640866023c0074086409050019007c00370003003c0074097c01640a6602050019007c00370003003c0074097c016408660219005300290b4e7227000000547a114465706f736974206e6f7420737461727472010000007a19596f75206d757374207374616b6520736f6d657468696e672e7a1a4e6f7420656e6f75676820636f696e7320746f207374616b65217216000000da0a73746172745f6661726d7220000000da046661726d290b7241000000723200000072330000007236000000723c000000725b0000007214000000723d0000007234000000724500000072430000002902723b00000072460000007237000000723700000072380000007263000000dd000000731600000000020601060114011001140112011e010c01100114017263000000630100000000000000020000000500000043000000738a00000074008300010074016a027d017c0064016b04731c740364028301820174047c016403660219007c006b057334740364048301820174056a067c007c017407640519008303010074076406050019007c00380003003c0074047c0164036602050019007c00380003003c0074047c0164036602190064016b027286640074047c01640766023c006400530029084e72010000007a1e596f75206d757374207769746864726177616c20736f6d657468696e672e72630000007a1f4e6f7420656e6f75676820636f696e7320746f207769746864726177616c217216000000722000000072620000002908724100000072320000007233000000723c00000072450000007214000000723d00000072340000002902723b0000007246000000723700000072370000007238000000da0672656d6f7665ec00000073120000000002060106011001180112011001140110017264000000630100000000000000070000000700000043000000731602000074008300010074016a027d017c0064016b04731c740364028301820174047c0119007c006b057330740364038301820174056a067c007407640419007c018303010064017d0274076405050019007c00370003003c0074076406050019007c00380003003c0074087c0164056602050019007c00370003003c0074087c016407660219000c00739874087c0164076602190064006b0872a4740974087c01640766023c0074087c0164086602190064016b0273c474087c0164086602190064006b0872e0640174087c01640866023c00740974087c01640966023c0090016e3274087c01640a6602190073fe74087c01640a6602190064006b099001722c740a6a0b7407640b190083017d0374087c01640a660219007d047c036a0c7c017c0483027d05640c7c0514007d0274087c016405660219007407640d190064111b001400740974087c0164096602190018006a0d14007d067c0674087c01640866021900170074087c016405660219007407640f19007c02170014006b05900172e274076410050019007c0674087c01640866021900170074087c016405660219007407640f19007c02170014001800370003003c0074087c016405660219007407640f19007c021700140074087c01640866023c00740974087c01640966023c006e3074087c0164086602050019007c06370003003c0074076410050019007c06370003003c00740974087c01640966023c006400530029124e72010000007a1b596f75206d75737420706c656467656420736f6d657468696e672e7a1c4e6f7420656e6f75676820636f696e7320746f20706c656467656421721600000072210000007249000000da0a73746172745f6c656e73da046c656e73da096c656e735f74696d65da0a6e66745f616374697665722d0000007229000000721c000000e93c000000722a000000da0a746f74616c5f6c656e7369100e0000290e724100000072320000007233000000723c00000072510000007212000000723d000000723400000072450000007243000000da0149da0d696d706f72745f6d6f64756c65da0f6765745f626f6f73745f6f776e6572da077365636f6e64732907723b0000007246000000da084d41585f4c454e53da0a7468696e675f696e666f7256000000da066163746976657266000000723700000072370000007238000000da06706c65646765f9000000733c00000000020601060110011401120104011001100114011e010c0120010c0110021e010e010c010c0108022a011a0110011a011a010c0114010e0214011001727200000063010000000000000002000000060000004300000073d600000074008300010074016a027d017c0064016b04731c740364028301820174047c016403660219007c006b057334740364048301820174056a067c007c017407640519008303010074076403050019007c00380003003c0074076406050019007c00370003003c0074047c0164036602050019007c00380003003c00740764070500190074047c01640866021900380003003c00640174047c01640866023c00640074047c01640966023c0074047c0164036602190064016b0472d2740874047c01640a66023c00740874047c01640966023c0064005300290b4e72010000007a1d596f75206d75737420756e706c656467656420736f6d657468696e672e72210000007a1e4e6f7420656e6f75676820636f696e7320746f20756e706c65646765642172160000007249000000726a0000007266000000726500000072670000002909724100000072320000007233000000723c00000072450000007212000000723d000000723400000072430000002902723b0000007246000000723700000072370000007238000000da08756e706c656467651e010000731e00000000020601060110010a010e01120110011001140118010c010c0110010c017273000000630000000000000000060000000700000043000000735c01000074008300010074016a027d0064017d0174037c0064026602190064016b047328740464038301820174037c00640266021900740564041900640d1b001400740674037c0064066602190018006a0714007d0274037c00640766021900736e74037c0064076602190064006b09729c74086a0974056408190083017d0374037c006407660219007d047c036a0a7c007c0483027d0564097c0514007d017c0274037c00640a66021900170074037c006402660219007405640b19007c01170014006b05900172287405640c050019007c0274037c00640a66021900170074037c006402660219007405640b19007c01170014001800370003003c0074037c006402660219007405640b19007c011700140074037c00640a66023c00740674037c00640666023c006e30740674037c00640666023c0074037c00640a6602050019007c02370003003c007405640c050019007c02370003003c007c015300290e4e720100000072210000007a124e6f74206f707469637320746f206c656e73721c000000726900000072670000007268000000722d00000072290000007266000000722a000000726a00000069100e0000290b7241000000723200000072330000007245000000723c00000072340000007243000000726e000000726b000000726c000000726d00000029067246000000726f0000007266000000727000000072560000007271000000723700000072370000007238000000da0b6163746976655f6c656e7331010000732a000000000206010601040118022a011c010e010c010c0108011a0110011a011a010c0114010e020c011401100172740000002902da0677616c6c6574da0464617070630200000000000000030000000500000043000000735600000074008300010074016a027d0274037c017c006401660319007c006b037326740464028301820164036401670274037c017c0066023c007c0274037c017c00640366033c007c0074037c017c00640166033c006400530029044eda056f776e65727a144461707073206c696e6b20697473207265616479da037265662905724100000072320000007233000000da035f5f4c723c0000002903727500000072760000007246000000723700000072370000007238000000da1672656769737465725f65787465726e616c5f6c696e6b4c010000730c0000000002060106011a0110010e01727a00000029017276000000630100000000000000020000000600000043000000733800000074008300010074016a027d0174037c007c016602190064006b0972347c01740474037c007c016401660319007c00640266033c006400530029034e7278000000da0641435449564529057241000000723200000072330000007279000000da065f5f4c494e4b290272760000007246000000723700000072370000007238000000da116163746976655f64617070735f6c696e6b5601000073080000000002060106011001727d000000630100000000000000020000000500000043000000734800000074008300010074016a027d0174037c007c016602190064006b097244640074037c007c0166023c00640074037c007c01640166033c00640074037c007c01640266033c006400530029034e7278000000727700000029047241000000723200000072330000007279000000290272760000007246000000723700000072370000007238000000da1172656d6f76655f64617070735f6c696e6b5e010000730c00000000020601060110010c010e01727e000000630000000000000000020000000500000043000000738c00000074008300010074016a027d0074037c0064016602190064026b047324740464038301820174037c0064016602190074056404190014007d0174066a0774037c006401660219007c0118007c007405640519008303010074066a077c0174056406190074056405190083030100640274037c00640166023c0074056407050019007c01370003003c006400530029084eda09636c61696d61626c6572010000007a134e6f74206f707469637320746f20636c61696d722500000072160000007218000000da046665657329087241000000723200000072330000007245000000723c00000072340000007210000000723d00000029027246000000da0446454553723700000072370000007238000000da05636c61696d6801000073140000000002060106011801140114010a010c010a010c0172820000006300000000000000000b000000070000004300000073f802000074008300010074016401190064026b02731a740264038301820174036a047d0074057c0064046602190064056b047338740264068301820174057c0064046602190074066407190014007d0174057c006404660219007c0118007d0274066408050019007c01370003003c0074076a087c017406640919007406640a190083030100640574057c00640466023c007406640b19007d037406640c19007d047c027c047c0217001b007c0314007d057406640c050019007c02370003003c007406640b050019007c05380003003c007406640c19007406640b19001b007406640d3c007406640e050019007c02370003003c007406640f050019007c05370003003c0074057c0064106602050019007c05370003003c007c057d0264057d0674066411050019007c02370003003c007406640f050019007c02380003003c0074057c0064116602050019007c02370003003c0074057c006412660219000c009001737474057c0064126602190064006b0890017280740974057c00641266023c0074057c0064136602190064056b02900173a474057c0064136602190064006b08900172c0640574057c00641366023c00740974057c00641466023c0090016e3474057c00641566021900900173e074057c0064156602190064006b099002720e740a6a0b74066416190083017d0774057c006415660219007d087c076a0c7c007c0883027d0964177c0914007d0674057c00641166021900740664181900641c1b001400740974057c0064146602190018006a0d14007d0a7c0a74057c00641366021900170074057c006411660219007406641a19007c06170014006b05900272c47406641b050019007c0a74057c00641366021900170074057c006411660219007406641a19007c06170014001800370003003c0074057c006411660219007406641a19007c061700140074057c00641366023c00740974057c00641466023c006e3074057c0064136602050019007c0a370003003c007406641b050019007c0a370003003c00740974057c00641466023c0064005300291d4e7227000000547a114465706f736974206e6f74207374617274727f00000072010000007a19596f75206d757374207374616b6520736f6d657468696e672e7225000000728000000072180000007216000000721d000000721e0000007224000000721f0000007249000000724a00000072210000007265000000726600000072670000007268000000722d0000007229000000721c0000007269000000722a000000726a00000069100e0000290e72410000007236000000723c00000072320000007233000000724500000072340000007210000000723d0000007243000000726b000000726c000000726d000000726e000000290b72460000007281000000723b000000724c000000724d000000724e000000726f0000007270000000725600000072710000007266000000723700000072370000007238000000da0c636c61696d5f706c6564676576010000735c000000000206011401060118011401100110010c010a010c010801080110011001100108010c011001100114010401040110011001140122010c0124010c01100220010e010c010c0108022a011a0110011a011a010c0114010e021401100172830000002904723a000000da0b616d6f756e745f62617365da0c616d6f756e745f626f6f73747256000000630400000000000000040000000500000043000000733200000074006a017402640119006b027316740364028301820174047c0064036602050019007c017c021700370003003c006400530029044e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d6574616461746121727f0000002905723200000072330000007234000000723c00000072450000002904723a000000728400000072850000007256000000723700000072370000007238000000da0b6164645f72657761726473ab01000073060000000002100106017286000000630100000000000000010000000400000043000000732a00000074006a017402640119006b027316740364028301820174026403050019007c00380003003c006400530029044e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d6574616461746121725a0000002904723200000072330000007234000000723c0000002901723b000000723700000072370000007238000000725a000000b20100007306000000000210010601725a000000630100000000000000010000000400000043000000732a00000074006a017402640119006b027316740364028301820174026403050019007c00380003003c006400530029044e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d657461646174612172800000002904723200000072330000007234000000723c0000002901723b0000007237000000723700000072380000007280000000b901000073060000000002100106017280000000630100000000000000010000000400000043000000734e00000074006a017402640119006b027316740364028301820174026403050019007c00370003003c0074026404050019007c00370003003c007402640419007402640519001b00740264063c006400530029074e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d6574616461746121da076275796261636b721e000000721d00000072240000002904723200000072330000007234000000723c0000002901723b0000007237000000723700000072380000007287000000c0010000730c00000000021001060110011001080172870000002902723a000000da0464617461630200000000000000030000000500000043000000733800000074006a017402640119006b0273167403640283018201781c7c0144005d147d027c017c02190074047c007c0266023c00711c57006400530029034e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212905723200000072330000007234000000723c00000072450000002903723a0000007288000000da0164723700000072370000007238000000da15696d706f72745f656d657267656e63795f75736572ca01000073080000000002100106010a01728a00000029017288000000630100000000000000020000000400000043000000733400000074006a017402640119006b027316740364028301820178187c0044005d107d017c007c01190074027c013c00711c57006400530029034e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212904723200000072330000007234000000723c000000290272880000007289000000723700000072370000007238000000da19696d706f72745f656d657267656e63795f636f6e7472616374d201000073080000000002100106010a01728b0000002902da036b6579da0576616c7565630200000000000000020000000300000043000000732200000074006a017402640119006b02731674036402830182017c0174047c003c006400530029034e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212905723200000072330000007234000000723c00000072360000002902728c000000728d000000723700000072370000007238000000da106368616e67655f626c6f636b64617461da0100007306000000000210010601728e000000630200000000000000020000000300000043000000732200000074006a017402640119006b02731674036402830182017c0174027c003c006400530029034e72160000007a1f4f6e6c79206f70657261746f722063616e20736574206d65746164617461212904723200000072330000007234000000723c0000002902728c000000728d000000723700000072370000007238000000da0b6368616e67655f6d657461e10100007306000000000210010601728f00000063010000000000000003000000050000004300000073840000007400830001007c007401640174026a0366023c0064027d01783074016403190044005d247d02740164017c02660219007401640174026a03660219006b03722264047d015000712257007c01728074046a057c0074016405190074026a0683030100781c74016403190044005d107d026406740164017c0266023c00716c57006400530029074eda1472656d6f76655f7461755f656d657267656e637954723100000046721600000072010000002907da196173736572745f7369676e65725f69735f6f70657261746f72723400000072320000007233000000720b000000723d000000da04746869732903723b000000da06616772656564da026f707237000000723700000072380000007290000000e80100007318000000000206010e0104010e010c010e0104010601040114010e017290000000630000000000000000000000000300000043000000731a00000074006a017402640119006b06731674036402830182016400530029034e72310000007a1d4f6e6c792065786563757461626c65206279206f70657261746f72732129047232000000da067369676e65727234000000723c00000072370000007237000000723700000072380000007291000000f80100007304000000000210017291000000630000000000000000000000000200000043000000731800000074006401190064026b02731474016403830182016400530029044e7226000000467a0e426c6f636b2066756e63696f6e2129027236000000723c00000072370000007237000000723700000072380000007241000000fe0100007302000000000172410000002939720b000000721000000072120000007214000000da09696d706f72746c6962726b000000da044861736872450000007279000000727c00000072340000007236000000da0b466f726569676e486173687242000000724b0000007251000000725b0000007239000000da085f5f6578706f7274da03737472da05666c6f6174723e000000724000000072470000007248000000724f0000007253000000725500000072570000007259000000725d000000725e0000007260000000726100000072630000007264000000727200000072730000007274000000727a000000727d000000727e000000728200000072830000007286000000725a00000072800000007287000000da0464696374728a000000728b000000da03416e79728e000000728f0000007290000000729100000072410000007237000000723700000072370000007238000000da083c6d6f64756c653e0100000073a0000000080108010801080104010e010e010e01060108010601080106010a0104010c0104010c0104010c03081d060112070601100e0601100e100c0601101506011013100b060114070601100b0601100f0601100a100b060114070601100e0601100c0601102406011012101b060112090601100706011009100e103506011606060110060601100606011009060112070601100706011206060112060601100f1006