-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
jam.p8
990 lines (894 loc) · 47.3 KB
/
jam.p8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
pico-8 cartridge // http://www.pico-8.com
version 39
__lua__
global = {
state = 0, --0 menu, 1 game, 2 end screen
gravity = 0.25,
friction = 0.5,
timeLeftForNextDelivery = 600,
timeElapsed = 0,
inited = false,
packageText = "",
messageDuration = 150,
showMessageUntil = 0,
lastPickedUp = 0,
showCombo = 0,
comboCounter = 0,
endscreenTime = 0
}
player = {
x = 1,
y = 1,
ax = 0,
ay = 0,
speed = 3,
maxSpeed = 7.5,
maxFall = 3,
jumpPower = 4,
isGrounded = false,
sp = 1,
direction = 1, -- 0 facing left, 1 right
flip = false,
hasPickup = false,
score = 0,
invDuration = 0.5,
invLasts = 0,
boost = 90,
maxBoost = 90,
boostSpeed = 6,
isBoosted = false
}
crect = {
x,
y
}
crows = {}
-- need one pickup point + destination
pickupPoints = {} --list
destinationPoints = {} --list
-- randomize destination point for pickup point
pedestrians = {}
possibleInteractionPoints = {}
particles = {}
messages = {
"i need the delivered: ",
"drop this for me at: ",
"hey kid, drop this to: ",
"can you deliver this? "
}
combo = {
"nice!",
"outstanding!",
"amazing!",
"awesome!",
"epic!",
"stylish!",
"omega!"
}
function _init()
end
function init_game()
player.x = 1 -- starting pos x
player.y = 1 -- starting pos y
player.score = 0
player.hasPickup = false
player.boost = player.maxBoost
player.isBoosted = false
crows = {}
pickupPoints = {} --list
destinationPoints = {} --list
possibleInteractionPoints = {}
particles = {}
add_crow(20,5,-1.5)
add_crow(25,5,-1.5)
add_crow(30,8,2)
add_crow(1,4,-1.5)
add_crow(5,7,1.5)
add_crow(20,6,2)
add_crow(20,8,3)
add_points(3,14) --Radio
add_points(8,14)
add_points(22,14)
add_points(23,6)
add_points(37,14)
add_points(49,14)
add_points(54,14)
add_points(56,14)
add_points(52,8)
add_points(66,14)
add_points(75,14) --post
add_points(95,14) --MecDon
add_points(101,14)
add_points(105,14)
add_points(103,10)
add_points(119,14) -- Hospital
generate_new_delivery()
for i=1,20 do
add_pedestrian(flr(rnd(127)) + 1,rnd(2)+0.1)
end
for i=1,13 do
add_crow(flr(rnd(127)) + 1,flr(rnd(5)) + 2, rnd(3)+0.1)
end
global.timeLeftForNextDelivery = 600
global.timeElapsed = 0
global.comboCounter = 0
global.showMessageUntil = 0
global.lastPickedUp = 0
global.inited = true
end
function add_crow(_x,_y,_speed)
local crow = {
x = _x*8,
y = _y*8,
speed = _speed
}
add(crows,crow)
end
function add_pedestrian(_x,_speed)
local ped = {
x = _x*8,
y = 14*8,
speed = _speed
}
add(pedestrians,ped)
end
function add_delivery(pickup_x,pickup_y,dest_x,dest_y)
local pickup = {
-- *8 cuz calling with tile coord
x = pickup_x*8,
y = pickup_y*8
}
local dest = {
x = dest_x*8,
y = dest_y*8
}
add(pickupPoints,pickup)
add(destinationPoints,dest)
end
function add_points(_x,_y)
local point = {
x = _x*8,
y = _y*8
}
add(possibleInteractionPoints,point)
end
function add_particle(_x,_y,_maxAge,_color,_tpe)
local p = {
x = _x,
y = _y,
lifetime = 0,
maxAge = _maxAge,
color_range = _color,
clr = _color[1],
tpe = _tpe
}
add(particles,p)
end
function generate_new_delivery()
local pickup = possibleInteractionPoints[flr(rnd(#possibleInteractionPoints))+1]
local dest = possibleInteractionPoints[flr(rnd(#possibleInteractionPoints))+1]
while dest == pickup do
dest = possibleInteractionPoints[flr(rnd(#possibleInteractionPoints))+1]
end
add(pickupPoints,pickup)
add(destinationPoints,dest)
end
function check_collisions_with_obstacles()
-- could be done in existing update function
for crow in all(crows) do
if collide_rect(to_rect(player,8,8),to_rect(crow,8,8)) then
if player.ay > 0 then
-- ay is negative when jumping
-- ay is positive when falling
-- so substract to add jump power
sfx(0)
player.ay -= 6
else
if (time() > player.invLasts) then
global.timeLeftForNextDelivery -= 30
player.invLasts = time() + player.invDuration
end
end
end
end
for ped in all(pedestrians) do
if collide_rect(to_rect(player,8,8),to_rect(ped,8,8)) then
if player.isBoosted then
player.ax = 0
player.boost = 0
end
end
end
if player.x > 127*8 then
player.ax = 0
player.x = 127*8
elseif player.x < 0 then
player.ax = 0
player.x = 0
end
end
function collide_rect(rect_1,rect_2)
if ((rect_1.x1 > rect_2.x2) or
(rect_2.x1 > rect_1.x2) or
(rect_1.y1 > rect_2.y2) or
(rect_2.y1 > rect_1.y2)) then
return false
end
return true
end
function to_rect(obj,w,h)
local r = {}
r.x1 = obj.x
r.x2 = obj.x + w - 1
r.y1 = obj.y
r.y2 = obj.y + h - 1
return r
end
function collide_map(obj,width,heigth,dir,flag)
local x = obj.x
local y = obj.y
local w = width
local h = heigth
local x1 = 0
local x2 = 0
local y1 = 0
local y2 = 0
if dir==0 then --left
x1=x-1 y1=y+1
x2=x y2=y+h-1
elseif dir==1 then --rigth
x1=x+w y1=y+1
x2=x+w y2=y+h-1
elseif dir==2 then --up
x1=x+1 y1=y-1
x2=x+w-2 y2=y
elseif dir==3 then --down
x1=x+1 y1=y+h
x2=x+w-2 y2=y+h
end
crect.x1 = x1
crect.x2 = x2
crect.y1 = y1
crect.y2 = y2
x1/=8
x2/=8
y1/=8
y2/=8
if fget(mget(x1,y1), flag)
or fget(mget(x1,y2), flag)
or fget(mget(x2,y1), flag)
or fget(mget(x2,y2), flag) then
return true
else
return false
end
end
function animate(object,starterFrame,frameCount,animSpeed,flipped)
if(not object.tickCount) object.tickCount=0
if(not object.spriteOffset)object.spriteOffset=0
object.tickCount+=1
if(object.tickCount%(30/animSpeed)==0) then
object.spriteOffset+=1
if(object.spriteOffset>=frameCount) object.spriteOffset=0
end
object.actualframe=starterFrame+object.spriteOffset
spr(object.actualframe,object.x,object.y,1,1,flipped)
end
function control_player()
if not (player.isBoosted) then
player.ax = 0
end
-- movement code
if (btn(0)) then
player.ax -= player.speed
end
if (btn(1)) then
player.ax += player.speed
end
if btnp(4) and (player.isGrounded) then
player.ay -= player.jumpPower
sfx(0)
end
if btn(5) then
if player.boost > 0 then
player.isBoosted = true
player.boost -= 1
end
else
player.isBoosted = false
end
if player.boost <= 0 then
player.isBoosted = false
end
if player.isBoosted == false then
if player.boost < player.maxBoost then
player.boost += 1
end
if player.boost > player.maxBoost then
player.boost = player.maxBoost
end
end
-- look direction
if player.ax > 0 then
player.flip = false
if player.ax < 0 then
player.ax = 0
end
elseif player.ax < 0 then
player.flip = true
if player.ax > 0 then
player.ax = 0
end
end
if player.isBoosted then
if player.ax < 0 then
add_particle(player.x+7,player.y+1,20,{1},1)
add_particle(player.x+7,player.y+3,20,{1},1)
add_particle(player.x+7,player.y+5,20,{1},1)
elseif player.ax > 0 then
add_particle(player.x,player.y+1,20,{1},1)
add_particle(player.x,player.y+3,20,{1},1)
add_particle(player.x,player.y+5,20,{1},1)
end
end
-- vertical shit
if player.ay >= 0 then
player.isGrounded = false
if collide_map(player,8,8,3,0,player.ax,player.ay) then
player.isGrounded = true
--player.spr = player.walk_spr
player.ay = 0
player.y-=(player.y+8)%8
end
elseif player.ay < 0 then
--player.spr = player.jump_spr
player.isGrounded = false
if collide_map(player,8,8,2,0,player.ax,player.ay) then
if not (collide_map(player,8,8,2,1,player.ax,player.ay)) then
player.ay = 0
end
end
end
-- noramile vertical speed
if player.flip then
if player.ax < - player.maxSpeed then
player.ax = -player.maxSpeed
end
else
if player.ax > player.maxSpeed then
player.ax = player.maxSpeed
end
end
--normalize vertical speed
if not (player.isGrounded) then
player.ay += global.gravity
if player.ay > player.maxFall then
player.ay = player.maxFall
end
end
if player.isBoosted then
player.ax = player.boostSpeed*sgn(player.ax)
end
player.x += player.ax
player.y += player.ay
end
function _update()
if global.state == 0 then
update_menu()
elseif global.state == 1 then
if not global.inited then
init_game()
end
update_game()
else
update_endscreen()
end
end
function update_menu()
if btnp(5) then
global.state = 1
end
end
function update_game()
if not (global.timeLeftForNextDelivery <= 0) then
if (global.lastPickedUp < time()) then
global.comboCounter = 0
end
global.timeLeftForNextDelivery -= 1
global.timeElapsed += 1
control_player()
update_crows()
update_deliveries()
update_pedestrians()
upadte_particles()
check_collisions_with_obstacles()
else
sfx(3)
-- state 2 is endscreen
global.inited = false
global.state = 2
global.endscreenTime = time() + 5
end
end
function update_endscreen()
printh(time().." "..global.endscreenTime)
if time() > global.endscreenTime then
if btnp(4) then
global.state = 0
end
end
end
function update_crows()
for crow in all(crows) do
crow.x += crow.speed
--flip them on either side of the map
if (crow.x < 0) or (crow.x > 127*8)then
crow.speed = crow.speed*(-1)
end
end
end
function update_deliveries()
if not (#pickupPoints == 0) then
if not (player.hasPickup) then
if(time()%1 > 0.9) then
add_particle(pickupPoints[1].x+4,pickupPoints[1].y+4,40,{14},0)
add_particle(pickupPoints[1].x+4,pickupPoints[1].y+4,20,{14},0)
end
if (collide_rect(to_rect(player,8,8),to_rect(pickupPoints[1],8,8))) then
player.hasPickup = true
global.packageText = messages[flr(rnd(#messages))+1]
sfx(1)
if pickupPoints[1].x == 95*8 then
global.packageText = "mecdon order, deliver!"
elseif pickupPoints[1].x == 75*8 then
global.packageText = "letter to this adress!"
end
if destinationPoints[1].x == 3*8 then
global.packageText = "to the radio tower!"
elseif destinationPoints[1].x == 119*8 then
global.packageText = "to the hospital pls!"
end
global.showMessageUntil = time() + global.messageDuration
global.lastPickedUp = time() + 10
del(pickupPoints,pickupPoints[1])
end
end
end
if not (#destinationPoints == 0) then
if (player.hasPickup) then
if(time()%1 > 0.9) then
add_particle(destinationPoints[1].x+4,destinationPoints[1].y+4,40,{12},0)
add_particle(destinationPoints[1].x+4,destinationPoints[1].y+4,20,{12},0)
end
if (collide_rect(to_rect(player,8,8),to_rect(destinationPoints[1],8,8))) then
sfx(2)
if global.lastPickedUp > time() then
global.lastPickedUp = time() + 150
global.comboCounter += 1
end
global.packageText = ""
player.hasPickup = false
global.timeLeftForNextDelivery += 420
player.score += 1
del(destinationPoints,destinationPoints[1])
generate_new_delivery()
end
end
end
end
function update_pedestrians()
for ped in all(pedestrians) do
ped.x += ped.speed
--flip them on either side of the map
if (ped.x < 0) or (ped.x > 127*8)then
ped.speed = ped.speed*(-1)
end
if rnd() < 0.05 then
ped.speed = ped.speed*(-1)
end
end
end
function upadte_particles()
for particle in all(particles) do
particle.lifetime += 1
if particle.lifetime >= particle.maxAge then
del(particles,particle)
end
-- 0 circle
if particle.tpe == 0 then
local idx = particle.lifetime / particle.maxAge
idx = 1 + flr(idx*#particle.color_range)
particle.clr = particle.color_range[idx]
end
end
end
function _draw()
if global.state == 0 then
draw_menu()
elseif global.state == 1 then
if global.inited then
draw_game()
end
else
draw_endscreen()
end
end
function draw_menu()
cls()
map()
print("neon",42,0,14)
print("runner",60,0,12)
if(time()%1 > 0.5) then
print("press X to play",32,8,rnd(15)+1)
end
end
function draw_game()
cls()
colorrand = rnd()
if colorrand < 0.05 then
pal(14,2,0)
pal(7,5,0)
pal(2,4,0)
pal(4,1,0)
end
map()
pal()
draw_crows()
draw_deliveries()
draw_pedestrians()
draw_particles()
--animation
if not (player.ax == 0) then
animate(player,3,4,10,player.flip)
else
animate(player,1,2,2,player.flip)
end
--rectfill(crect.x1,crect.y1,crect.x2,crect.y2)
camera(player.x-64,player.y-64)
draw_ui()
end
function draw_endscreen()
cls()
map()
print("time is up",48,0,12)
print("time elapsed: "..global.timeElapsed/30,48,8,14)
print("deliveries done: "..player.score,48,16,12)
if(time()%1 > 0.5) then
print("press c to play",48,24,rnd(15)+1)
end
-- print time elapsed
-- print score
camera(0,0)
end
--animate(object,starterFrame,frameCount,animSpeed,flipped)
function draw_crows()
for crow in all(crows) do
local flipped = false
if crow.speed < 0 then
flipped = true
end
animate(crow,62,2,3,flipped)
end
end
function draw_pedestrians()
for ped in all(pedestrians) do
local flipped = false
if ped.speed < 0 then
flipped = true
end
animate(ped,48,2,3,flipped)
end
end
function draw_deliveries()
if not (#pickupPoints == 0) then
if not (player.hasPickup) then
if(time()%1 > 0.5) then
rectfill(pickupPoints[1].x,pickupPoints[1].y+8,pickupPoints[1].x+8,pickupPoints[1].y+16,0)
spr(46,pickupPoints[1].x,pickupPoints[1].y+8)
end
end
end
if not (#destinationPoints == 0) then
if(time()%1 > 0.5) then
rectfill(destinationPoints[1].x,destinationPoints[1].y+8,destinationPoints[1].x+8,destinationPoints[1].y+16,0)
spr(47,destinationPoints[1].x,destinationPoints[1].y+8)
end
end
end
function draw_particles()
for particle in all(particles) do
if particle.tpe == 0 then
circ(particle.x,particle.y,flr(particle.lifetime/3),particle.clr)
else
pset(particle.x,particle.y,rnd(15)+1)
end
end
end
function draw_ui()
--print time left
-- draw borders
rectfill(player.x-30,player.y-64,player.x+30,player.y-56,6)
rectfill(player.x-29,player.y-63,player.x+29,player.y-57,0)
print("time left: "..flr(global.timeLeftForNextDelivery/30),player.x-28,player.y-62,14)
--boost
rectfill(player.x-29,player.y-54,player.x+29,player.y-54,2)
local length = 59
local perc = player.boost/player.maxBoost
local toDraw = length * perc
rectfill(player.x-29,player.y-54,player.x-29+toDraw,player.y-54,rnd(15)+1)
if(time()%1 > 0.5) then
if not player.hasPickup then
if not (#pickupPoints == 0) then
if (player.x > pickupPoints[1].x) then
spr(30,player.x-64,player.y-60)
else
spr(31,player.x+56,player.y-60)
end
end
else
if not (#destinationPoints == 0) then
if (player.x > destinationPoints[1].x) then
spr(14,player.x-64,player.y-60)
else
spr(15,player.x+56,player.y-60)
end
end
end
end
--messages
if global.showMessageUntil > time() then
print(global.packageText,player.x-(#global.packageText*2)+sin(rnd()),player.y-52+cos(rnd()),12)
end
if not (global.comboCounter == 0) then
if not (global.comboCounter > #combo ) then
print(combo[global.comboCounter],player.x-(#combo[global.comboCounter]*2)+sin(rnd()),player.y-46+cos(rnd()),rnd(15)+1)
elseif global.comboCounter < 10 then
print("?!%#&?![]",player.x-9*2+sin(rnd()),player.y-46+cos(rnd()),rnd(15)+1)
else
print("\150\152\153\144",player.x-4*2+sin(rnd()),player.y-46+cos(rnd()),rnd(15)+1)
end
end
end
__gfx__
000000000000000000000000000000000000cc00000000000000cc0000000000000000000000000000000000000000000000000000000000000cc000000cc000
0000000000000000000cc0000000cc000000ff000000cc000000ff000000000000000000000000000000000000000000000000000000000000c77c0000c77c00
00700700000cc000000ff0000000ff000022cc000000ff000022cc00000000000000000000000000000000000000000000000000000000000c77cccccccc77c0
00077000000ff000022cc0000022cc00004fccc00022cc00004fccc000000000000000000000000000000000000000000000000000000000c77777777777777c
00077000022cc00004fccc00004ffccf004ffc0f004ffccf004ffc0f00000000000000000000000000000000000000000000000000000000c77777777777777c
0070070004fccc0004ff80f000008800000088000000880000008800000000000000000000000000000000000000000000000000000000000c77cccccccc77c0
0000000004ffc0f000020e00007e02000002e000007e0200000e20000000000000000000000000000000000000000000000000000000000000c77c0000c77c00
0000000000600700006007000000060000067000000006000006700000000000000000000000000000000000000000000000000000000000000cc000000cc000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ee000000ee000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e77e0000e77e00
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e77eeeeeeee77e0
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e77777777777777e
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e77777777777777e
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e77eeeeeeee77e0
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e77e0000e77e00
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ee000000ee000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ee000000cc000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000220000000000000e77e0000c77c00
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000cc0000e7777e00c7777c0
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022000000ff000e777777ec777777c
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f22200000ccc00e7e77e7ec7c77c7c
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ff80f000cf8f000ee77ee00cc77cc0
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020e060000260000e77e0000c77c00
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006007060006060000eeee0000cccc00
0000cc000000cc00000000000000cc0000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000000000000
000c77c0000c77c00000cc000000ff0000000000000000000000000000000000000000000000000000000000000000000000000000000000ee00000000000000
000c77c0000c77c00000ff000022cc0000000000000000000000000000000000000000000000000000000000000000000000000000000000e7e0ee000000ee00
000c77c000c7777c0022cc00004fccc0000000000000000000000000000000000000000000000000000000000000000000000000000000000e7e77e0000e77e0
00c7777c00c777cc004ffccf004ffc0f000000000000000000000000000000000000000000000000000000000000000000000000000000000e77eeee0ee7eeee
00cc77cc000c77c0000088000000880000000000000000000000000000000000000000000000000000000000000000000000000000000000e0ee0000e77e0000
0c77c7c000c77c00007e0200000e2000000000000000000000000000000000000000000000000000000000000000000000000000000000000e000000eee00000
00ccc7c000c77c000000060000067000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000eeeeeeeeeeeeeeeeeeeeeee0000000000000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee02222222
00000000505500050005000500055050000000001111111111111111111111110000000000000000777777777777777777777777777777777777777706666666
00000000555505050505055550555550000000000000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee02222222
00000000505500050505000550555050000000000111111111111111111111100000000000000000555555555555555505555555555555555555555000000000
00000000555505550505550550555550000000000100100110011001100100100000000000000000500000055500000505005005500550055005005000550550
00000000505505550005000550555050000000000100100110011001100100100000000000000000500000055500050505005005500550055005005000550550
00000000555555555555555555555550000000000100100110011001100100100000000000000000500000055500050505005005500550055005005000550550
00000000005050000000000000050500000000000111111111111111111111100000000000000000555555555500050505555555555555555555555000000000
00000000eeeeeeeeeeeeeee00000000000000000000000000000000000000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeee02222222
55555555505555000555505000000000000000000111111111111111111111100000000005555555555555555555555007777777777777777777777706666666
0000000055555005005555500000000000000000000000000000000000000000000000000000000000000000000000000eeeeeeeeeeeeeeeeeeeeeee02222222
00050000505550555055505000000000000000000011111111111111000001000000000000555555555555550000000000555555555555555555555000000005
00050000555550050055555000000000000000000011111111111111000001000000000000555555555555550000000000555555555555555555555000000005
00000000505555000555505000000000000000000011111111111111000001000000000000555555555555550000000000555555555555555555555000000005
00000000555555555555555000000000000000000011111111111111000001000000000000555555555555555555550000555555555555555555555000000005
00050000005050000005050000000000000000000000000000000000000001000000000000555555000000000000000000555555555555555555555000000005
00060000eeeeeeeeeeeeeee000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000500055555550005000000000000000001111111111111111000000000000000000000000000000000000000055555555555555555555555505555555
eeeeeeee555555050555555000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000500550505055005000000000000000001111111111111111000000000000000000000000000000000000000005555555555555555555555000000000
00000000555550505055555000000000000000001000000111000001000000000000000000000000000000000000000005005005500550055005005000550550
00000000505550555055505000000000000000001000000111000101000000000000000000000000000000000000000005005005500550055005005000550550
00000000555555555555555000000000000000001000000111000101000000000000000000000000000000000000000005005005500550055005005000550550
55000550005050000005050000000000000000001111111111000101000000000000000000000000000000000000000005555555555555555555555000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000111111111111111111111110000000000000000555555555555555505555555555555555555555505555555
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000011111111111111111111100000000000000000555555555555555500555555555555555555555000000005
00000000000000000000000000000000000000000011111111111111111111100000000000000000500000055500000500555555555555555555555000000005
00000000000000000000000000000000000000000011111111111111111111100000000000000000500000055500050500555555555555555555555000000005
00000000000000000000000000000000000000000011111111111111111111100000000000000000500000055500050500555555555555555555555000000005
00000000000000000000000000000000000000000011111111111111111111100000000000000000555555555500050500555555555555555555555000000005
0000000000000000000000000000000000005550055500000005555000055550eeeeeeeeeeeeeeee000500000000000000000000000000000000000000000000
00000000000000000000000000000000000055555555000000055550000555500505050505050500000500000000000000000000000000000000000000000000
00000000000000000005550000000000000055500555000000055555000555500505050505050500005550000000000000000000000000000000000000000000
05555550000000000005550000000000000055500555000000055555000555500505050505050500000500000000000000000000000000000000000000000000
05555550000000000005550000000000000055500555000000055555000555500505050505050500055555000000000000000000000000000000000000000000
05555550000000000000000000505000000055555555000000055550000555550505050505050500000500000000000000000000000000000000000000000000
00000000005550000005050000550000000055500555000000055550000555550505050505050500555555500000000000000000000000000000000000000000
00500500005550000005050000055000000055500555000000055550000555500505050505050500000500000000000000000000000000000000000000000000
0000000000000000000000000000000000005550055500000005555000055550eeeeeeeeeeeeeeee000500000000000000000000000000000000000000000000
11111111111111111100000111111111111055555555011111055550110555500515151515151515000500000000000000000000000000000000000000000000
00000000000000000005550000000000000055500555000000055555000555500515151515151515000505000000000000000000000000000000000000000000
05555550111111111105550111111111111055500555011111055555110555500515151515151515000050000000000000000000000000000000000000000000
05555550111111111105550110000011111055500555011111055555110555500515151515151515000050500000000000000000000000000000000000000000
05555550100000111100000110505011111055555555011111055550110555550515151515151515000050000000000000000000000000000000000000000000
00000000105550111105050110550011111055500555011111055550110555550515151515151515000505000000000000000000000000000000000000000000
00500500005550000005050000055000000055500555011100055550000555500515151515151515000500000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
01111110000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
01111110000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
01111110000000000000000000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000001110000001010000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00100100001110000001010000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__label__
88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
88888eeeeee888888888888888888888888888888888888888888888888888888888888888888888888ff8ff8888228822888222822888888822888888228888
8888ee888ee88888888888888888888888888888888888888888888888888888888888888888888888ff888ff888222222888222822888882282888888222888
888eee8e8ee88888e88888888888888888888888888888888888888888888888888888888888888888ff888ff888282282888222888888228882888888288888
888eee8e8ee8888eee8888888888888888888888888888888888888888888888888888888888888888ff888ff888222222888888222888228882888822288888
888eee8e8ee88888e88888888888888888888888888888888888888888888888888888888888888888ff888ff888822228888228222888882282888222288888
888eee888ee888888888888888888888888888888888888888888888888888888888888888888888888ff8ff8888828828888228222888888822888222888888
888eeeeeeee888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
11111e1111ee11ee1eee1e11111116661666161111661616166616661111111111111ccc1ccc1c1111cc1ccc1111111111111111111111111111111111111111
11111e111e1e1e111e1e1e11111116161616161116111616161616161111177711111c111c1c1c111c111c111111111111111111111111111111111111111111
11111e111e1e1e111eee1e11111116661666161116661616166616661111111111111cc11ccc1c111ccc1cc11111111111111111111111111111111111111111
11111e111e1e1e111e1e1e11111116111616161111161666161616111111177711111c111c1c1c11111c1c111111111111111111111111111111111111111111
11111eee1ee111ee1e1e1eee111116111616166616611666161616111111111111111c111c1c1ccc1cc11ccc1111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111eee1eee11111bbb1bbb1bbb1bbb1171117117171ccc11111111111111111ccc11111eee1e1e1eee1ee11111111111111111111111111111111111111111
111111e11e11111111b111b11bbb1b11171111171117111c11111777177711111c1c111111e11e1e1e111e1e1111111111111111111111111111111111111111
111111e11ee1111111b111b11b1b1bb117111117117111cc11111111111111111c1c111111e11eee1ee11e1e1111111111111111111111111111111111111111
111111e11e11111111b111b11b1b1b11171111171711111c11111777177711111c1c111111e11e1e1e111e1e1111111111111111111111111111111111111111
11111eee1e11111111b11bbb1b1b1bbb1171117117171ccc11111111111111111ccc111111e11e1e1eee1e1e1111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111e1111ee11ee1eee1e1111111166116616111166166616661666166116611111111111111bbb1bb11bb1117111711111111111111111111111111111
111111111e111e1e1e111e1e1e1111111611161616111616161616161616161616161111177711111b1b1b1b1b1b171111171111111111111111111111111111
111111111e111e1e1e111eee1e1111111611161616111616166116611666161616161111111111111bb11b1b1b1b171111171111111111111111111111111111
111111111e111e1e1e111e1e1e1111111611161616111616161616161616161616161111177711111b1b1b1b1b1b171111171111111111111111111111111111
111111111eee1ee111ee1e1e1eee11111166166116661661161616161616161616661111111111111b1b1b1b1bbb117111711111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111eee1eee11111166116616111166166616661666166116611111111711111ccc11111ccc11111eee1e1e1eee1ee11111111111111111111111111111
1111111111e11e1111111611161616111616161616161616161616161111117111111c1c1111111c111111e11e1e1e111e1e1111111111111111111111111111
1111111111e11ee111111611161616111616166116611666161616161111171111111c1c111111cc111111e11eee1ee11e1e1111111111111111111111111111
1111111111e11e1111111611161616111616161616161616161616161111117111111c1c1111111c111111e11e1e1e111e1e1111111111111111111111111111
111111111eee1e1111111166166116661661161616161616161616661111111711111ccc11c11ccc111111e11e1e1eee1e1e1111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111bbb1bbb1b1111711cc11c1c11111ccc117111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111b1b1b1b1b11171111c11c1c1111111c111711111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111bbb1bbb1b11171111c11ccc11111ccc111711111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111b111b1b1b11171111c1111c11711c11111711111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111b111b1b1bbb11711ccc111c17111ccc117111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111bbb1bbb1b1111711ccc11111ccc1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111b1b1b1b1b111711111c1111111c1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111bbb1bbb1b111711111c111111cc1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111b111b1b1b111711111c1171111c1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
1111111111111b111b1b1bbb1171111c17111ccc1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111eee1ee11ee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111ee11e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111eee1e1e1eee1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111bbb1bbb1bbb1171117111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111bbb1b1b1b1b1711111711111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111b1b1bbb1bbb1711111711111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111b1b1b1b1b111711111711111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111b1b1b1b1b111171117111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111bbb1bbb1bbb1bb11bbb11711c1c1ccc1ccc1ccc1ccc11111ccc11cc11111c1c1ccc1c1c11111c1c1ccc11111ccc11111cc11ccc11711111111111111111
11111b1b1b1b11b11b1b11b117111c1c11c111c11ccc1c11111111c11c1111111c1c1c1c1c1c11111c1c1c1c11111c1c111111c1111c11171111111111111111
11111bbb1bb111b11b1b11b11711111111c111c11c1c1cc1111111c11ccc11111c1c1ccc111111111ccc1ccc11111c1c111111c11ccc11171111111111111111
11111b111b1b11b11b1b11b11711111111c111c11c1c1c11111111c1111c11111c1c1c1111111171111c1c1c11711c1c117111c11c1111171111111111111111
11111b111b1b1bbb1b1b11b11171111111c11ccc1c1c1ccc11111ccc1cc1111111cc1c1111111711111c1ccc17111ccc17111ccc1ccc11711111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111bbb1bbb1bbb1bb11bbb11711c1c1ccc1ccc1ccc1ccc11111ccc1c111ccc1ccc11cc1ccc1cc1111111111c1c111111111166161111661666166616111111
11111b1b1b1b11b11b1b11b117111c1c11c111c11ccc1c1111111c111c111c1c1c1c1c111c111c1c11c111111c1c111111111611161116161616161616111111
11111bbb1bb111b11b1b11b11711111111c111c11c1c1cc111111cc11c111ccc1ccc1ccc1cc11c1c111111111111111111111611161116161661166616111111
11111b111b1b11b11b1b11b11711111111c111c11c1c1c1111111c111c111c1c1c11111c1c111c1c11c111111111111111111616161116161616161616111111
11111b111b1b1bbb1b1b11b11171111111c11ccc1c1c1ccc11111ccc1ccc1c1c1c111cc11ccc1ccc111111111111117111711666166616611666161616661171
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111bbb1bbb1bbb1bb11bbb11711c1c1cc11ccc1c111ccc1c1c1ccc1ccc1ccc1ccc11cc11111cc111cc1cc11ccc111111111c1c111111111666161116661616
11111b1b1b1b11b11b1b11b117111c1c1c1c1c111c1111c11c1c1c111c1c11c11c111c1111111c1c1c1c1c1c1c1111c111111c1c111111111616161116161616
11111bbb1bb111b11b1b11b1171111111c1c1cc11c1111c11c1c1cc11cc111c11cc11ccc11111c1c1c1c1c1c1cc1111111111111111111111666161116661666
11111b111b1b11b11b1b11b1171111111c1c1c111c1111c11ccc1c111c1c11c11c11111c11111c1c1c1c1c1c1c1111c111111111111111111611161116161116
11111b111b1b1bbb1b1b11b1117111111ccc1ccc1ccc1ccc11c11ccc1c1c1ccc1ccc1cc111111ccc1cc11c1c1ccc111111111111117111711611166616161666
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111eee1eee11711bbb1bbb1bbb1bbb1171117117171cc11111171111111ccc11111ccc117111111eee1e1e1eee1ee111111111111111111111111111111111
111111e11e11171111b111b11bbb1b1117111117111711c11111117111111c1c11111c111117111111e11e1e1e111e1e11111111111111111111111111111111
111111e11ee1171111b111b11b1b1bb117111117117111c11111111711111c1c11111ccc1117111111e11eee1ee11e1e11111111111111111111111111111111
111111e11e11171111b111b11b1b1b1117111117171111c11111117111111c1c1111111c1117111111e11e1e1e111e1e11111111111111111111111111111111
11111eee1e11117111b11bbb1b1b1bbb1171117117171ccc1111171111111ccc11c11ccc1171111111e11e1e1eee1e1e11111111111111111111111111111111
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111bbb1bbb1bbb1bb11bbb11711c1c1ccc1ccc1ccc11cc11cc111111cc11111ccc11cc11111ccc1c111ccc1c1c1c1c11111c1c1ccc11111ccc1c1c1111
111111111b1b1b1b11b11b1b11b117111c1c1c1c1c1c1c111c111c1111111c11111111c11c1c11111c1c1c111c1c1c1c1c1c11111c1c1c1c1111111c1c1c1111
111111111bbb1bb111b11b1b11b1171111111ccc1cc11cc11ccc1ccc11111c11111111c11c1c11111ccc1c111ccc1ccc111111111ccc1ccc11111ccc1ccc1111
111111111b111b1b11b11b1b11b1171111111c111c1c1c11111c111c11111c11111111c11c1c11111c111c111c1c111c11111171111c1c1c11711c11111c1171
111111111b111b1b1bbb1b1b11b1117111111c111c1c1ccc1cc11cc1111111cc111111c11cc111111c111ccc1c1c1ccc11111711111c1ccc17111ccc111c1711
11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111eee1ee11ee11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111ee11e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111e111e1e1e1e1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
11111eee1e1e1eee1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
82888222822882228888828882228282888282228282822288888888888888888888888888888888888882228222822882228882822282288222822288866688
82888828828282888888828888828282882888828282888288888888888888888888888888888888888888828282882882888828828288288282888288888888
82888828828282288888822282228222882888828222822288888888888888888888888888888888888882228222882882228828822288288222822288822288
82888828828282888888828282888882882888828882828888888888888888888888888888888888888882888282882888828828828288288882828888888888
82228222828282228888822282228882828888828882822288888888888888888888888888888888888882228222822282228288822282228882822288822288
88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
__gff__
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001030303000000000000030303030303000303000000000000000000030303030103030000000000000000000000000000000000000000000000000000000000
0000000000000000030300000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000008a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000839a000000000000000000000000000000000082810000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000007c7f00000000000000a200a30000000000004c4d4e4f4f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000007c7f000000000000757676765700000000007c7d7e7f7f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a2a200665700a300000000000000000000000000a100a10000000000000000000000000000000000000000000000000000000000
0000007c7f000000000075767676767657000000817c7d7b7f7f000000000000000000000000000000000000000000000000830000000000008300000000000000000000000000000000000075764676467657570000000000000000000000754676467757008100810000000000000000000000000000000000000000000000
0000007c7f00000000007546769246765700005c4d4d4d4d4d4d4f5f4f000000a300a20000000000a200a3000000007c6d7e7f008100007c6d7e7f0000000000000000000000000000000000757646764676575700818100000000000000007546764677575c4d5d4d5e4f5f0000000000000000000000000000000000000000
0000007c7f000000000075464c5d5f555700007c6d6d7d7d6d6d6f7f6f0000007576765757000075767657570000847c6d7e7f007b7f007c6d7e7f764677008100000000000000000000000055564676467657574c4d5d5f008300000000007546764677577c6d7d6d7e6f7f00a2000000000000515283000000830082000000
0000007c7f000080000075467c7d6f555700865c4d4d7d7d4d4d4f5f4f0000754646764676764676464676575757005c4d4d5d4d4d4d4d5d4d5e5f564677004c4e5f0000810000000081004142439176467657577c6d7e7f007b7f000000007546764677577c6d7d6d7e6f7f764657000000007c6d6d7d7f005c4d4d5d5f0000
0000007c7f006c7d6d7d6d6f7c7d7f555700877c7d7d7d7d7d7d7f7f7f0000754646764676764676464676575757007c6d7e7f0000a2007c6d7e7f954677006c6e7f004c4e5f00005c4d5d4d4d5d4d4e5f5f57575c5d5d5d5d5d5f000000007546764677577c7d7b7d7e7f7f764657000000007c6d6d7d7f007c6d6d7d7f0000
0000007c7f004c5d4d5d4e4f5c4d5f955700007c6d6d7d7d6d6d6f7f6f0000754646764676764676464676575757007c6d7e7f004576467c6d7e7f764677006c6e4d4d5d4e5f00007c6d7d6d6d7d6d7e7f7f57577c6d6d6d6d6e7f008161627591765c4a4a5d5d4a4a5e5f5f764657000000005c4d4d5d4d4d5d4d4d5d5f0000
0000007c7f006c7d6d7d6d6f7c7d7f555700005c4d4d7d7d4d4d4f5f4f0000757656569056925693565676575757847c6d7e7f007591765c5d5e5f764677006c6e6d6d7d6e7f00007c6d7d6d6d7d6d7e7f7f57577c6d6d6d6d6e7f005c4a4a4a5f757c7a7a7d7d7a7a7e7f7f764657000000007c6d6d7d6d6d7d6d6d7d7f0000
00007c7b7f004c5d4b5d4e4f5c4e5f575700007c7d7d7b7b7d7d7f7f7f000075765c4a4a5d4b5d4a5f5f55575757007c7d7b7f00754a4b7c7b7e7f766677006c6e7a7b7d7a7f00007c7d7d7b7b7d7d7e7f7f577c7b7a7a7d7a7a7b7e7c7a7a7b7f757c7a7a7b7d7a7a7b7f7f999999888888897c6d6d7d7b7b7d6d6d7d7f0088
5050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050505050
6060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060606060
__sfx__
000100001305014050150501605018050190501c0501e05022050240500e000110001400011000170001f00015000180001b00000000000000000000000000000000000000000000000000000000000000000000
00050000281502b15031150321502a15026150281002b1002f1002710025100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00060000293202b3202c3302f330303402b34029330233001f3000030000300003000030000300003000030000300003000030000300003000030000300003000030000300003000030000300003000030000300
001000001f55022550245502555024550215501e5501d5501e5501f550225501850016500185001e5001d5001a5001a5001c5001e5001d5001b50018500185001a5001c5001b5001a5001e5001d5001d5001d500