-
Notifications
You must be signed in to change notification settings - Fork 0
/
p8wp.p8
659 lines (633 loc) · 40.9 KB
/
p8wp.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
pico-8 cartridge // http://www.pico-8.com
version 30
__lua__
-- pico-8 word processor v1.0
-- by mkol103
-- credit to daniel linssen for the font and merwok for converting it to pico-8. https://itch.io/post/2610777
-- all songs by @robbyduguay. names truncated to fit pause menu. https://www.lexaloffle.com/bbs/?tid=2619
-- key click sound by gruber. https://www.lexaloffle.com/bbs/?tid=34367
function _init()
cartdata("mkol103p8wpv1")
index=1 -- inits line number
strs={[1]=""} -- inits line container
if dget(0)!=1 then -- if program's never been run before:
strs={[1]="Welcome to the Pico-8", [2]="Word Processor.", [3]="Press the \"tab\" key",[4]="to access the menu.",[5]="Remember to export your",[6]="work once you've finished.",[7]="",[8]="All BGM by: @robbyduguay",[9]=""} --establishes that each line will be a string in a table
index=9
dset(0,1)
end
cindex=1 -- inits cursor location
poke(0x5f2d, 1) --allows keyboard access
cursoranim=2.5 -- inits the timer on the cursor animation
extcmd("set_title","Pico-8 Word Processor") --
poke(0x5600,4,4,7) --inits new font
poke4(0x5700,unpack(split"0x0000.0000,0x0000.0000,0x0202.0202,0x0000.0200,0x0000.0505,0x0000.0000,0x0505.0705,0x0000.0507,0x0407.0106,0x0000.0203,0x0204.0100,0x0000.0401,0x0102.0502,0x0000.0305,0x0000.0102,0x0000.0000,0x0101.0102,0x0000.0201,0x0202.0201,0x0000.0102,0x0205.0000,0x0000.0005,0x0702.0000,0x0000.0002,0x0000.0000,0x0000.0102,0x0700.0000,0x0000.0000,0x0000.0000,0x0000.0200,0x0202.0404,0x0000.0101,0x0505.0506,0x0000.0305,0x0202.0302,0x0000.0702,0x0204.0403,0x0000.0701,0x0403.0403,0x0000.0304,0x0406.0505,0x0000.0404,0x0403.0107,0x0000.0304,0x0503.0106,0x0000.0605,0x0204.0407,0x0000.0202,0x0502.0506,0x0000.0305,0x0605.0503,0x0000.0304,0x0002.0000,0x0000.0002,0x0002.0000,0x0000.0102,0x0102.0400,0x0000.0402,0x0007.0000,0x0000.0007,0x0402.0100,0x0000.0102,0x0204.0403,0x0000.0200,0x0505.0506,0x0000.0601,0x0604.0300,0x0000.0705,0x0505.0301,0x0000.0705,0x0101.0600,0x0000.0701,0x0505.0604,0x0000.0705,0x0705.0600,0x0000.0601,0x0702.0204,0x0000.0202,0x0705.0600,0x0000.0304,0x0505.0301,0x0000.0505,0x0202.0002,0x0000.0202,0x0202.0002,0x0000.0102,0x0305.0101,0x0000.0505,0x0202.0202,0x0000.0402,0x0707.0300,0x0000.0507,0x0505.0300,0x0000.0505,0x0505.0600,0x0000.0305,0x0305.0700,0x0000.0101,0x0705.0600,0x0000.0404,0x0101.0600,0x0000.0101,0x0701.0600,0x0000.0304,0x0207.0202,0x0000.0202,0x0505.0500,0x0000.0705,0x0505.0500,0x0000.0205,0x0705.0500,0x0000.0507,0x0205.0500,0x0000.0505,0x0605.0500,0x0000.0304,0x0204.0700,0x0000.0701,0x0101.0103,0x0000.0301,0x0202.0101,0x0000.0404,0x0202.0203,0x0000.0302,0x0000.0502,0x0000.0000,0x0000.0000,0x0000.0403,0x0000.0201,0x0000.0000,0x0507.0506,0x0000.0505,0x0507.0503,0x0000.0705,0x0101.0106,0x0000.0701,0x0505.0503,0x0000.0305,0x0103.0107,0x0000.0701,0x0301.0106,0x0000.0101,0x0501.0106,0x0000.0705,0x0507.0505,0x0000.0505,0x0202.0207,0x0000.0702,0x0404.0407,0x0000.0304,0x0503.0505,0x0000.0505,0x0101.0101,0x0000.0701,0x0507.0705,0x0000.0505,0x0505.0503,0x0000.0505,0x0505.0506,0x0000.0305,0x0103.0507,0x0000.0101,0x0505.0506,0x0000.0403,0x0503.0507,0x0000.0505,0x0407.0106,0x0000.0304,0x0202.0207,0x0000.0202,0x0505.0505,0x0000.0705,0x0505.0505,0x0000.0205,0x0705.0505,0x0000.0507,0x0202.0505,0x0000.0505,0x0205.0505,0x0000.0202,0x0202.0407,0x0000.0701,0x0302.0204,0x0000.0402,0x0202.0202,0x0000.0202,0x0602.0201,0x0000.0102,0x0704.0000,0x0000.0001,0x0205.0200,0x0000.0000"))
cmode=false -- controls day/night mode. false is off. false is true.
color1=0
color2=7
menuitem(1,"night mode: off",cmodefunc)
mmode= flr(rnd(9))+1-- 1-9 for songs. 0 for off.
songnames={
[1]="pensive", -- original name: arpument
[2]="stroll", -- original name: walkabout
[3]="factory", -- original name: factory fresh
[4]="beach", -- original name: ocean town
[5]="imperial", -- original name: empire of fire
[6]="grief", -- original name: melancholy
[7]="mission", -- original name: mission
[8]="hijinx", -- original name: hijinx
[9]="intensity" -- original name: out of control
}
menuitem(2,"bgm:⬅️"..songnames[mmode].."➡️",mmodefunc)
mmodeinit()
sfxmode=true -- determines whether there is a keytyping sound. false for no; true for yes.
menuitem(3,"key clicks: on",sfxmodefunc)
menuitem(4, "export text", printtext) --function for exporting the text
end
function _update()
-- controls button presses
if not (btn(6)) then
if (btnp(1) and cindex<=26) then
cindex+=1
elseif (btnp(0) and cindex>1) then
cindex-=1
elseif (btnp(2) and index!=1) then
index-=1
if (strs[index]==nil) strs[index]=""
if (sub(strs[index],cindex,cindex)=="") then
cindex=#strs[index]+1
end
elseif (btnp(3)) then
index+=1
if (strs[index]==nil) strs[index]=""
if (sub(strs[index],cindex,cindex)=="") then
cindex=#strs[index]+1
end
end
end
if (sub(strs[index],cindex,cindex)==nil) strs[index]=strs[index].." "
while stat(30) do -- if there is a key pressed:
local rword -- rword is remaining word. Used when part of a line is moved
local pkey=stat(31)
cursoranim=0 -- animation reset to 0 when key is pressed
local oldstring=strs[index] --stores the pre-edited string for later.
strs[index]=sub(strs[index],1,cindex-1)..symboltoupper(pkey)..sub(strs[index],cindex,-1) -- adds the pressed key to the current line.
cindex+=1
if (sfxmode==true) sfx(8) -- plays a typing sound if the sound is on.
if pkey=="\r" then --if the key is enter:
strs[index]=oldstring
rword=sub(strs[index],cindex-1,#strs[index])
for i=#strs,index,-1 do
strs[i+1]=strs[i]
end
strs[index]=sub(strs[index],1,cindex-2)
index+=1 --advance the line
if strs[index]==nil then
add(strs,index)
strs[index]=""
end
strs[index]=rword
if (sub(strs[index],1,1)=="\r") strs[index]=sub(strs[index],2,-1)
cindex=1
elseif (pkey)=="\b" then -- if the key is backspace:
if ((cindex-3)==-1) then
strs[index]=sub(strs[index],2,-1)
cindex=0
else
strs[index]=sub(strs[index],1,cindex-3)..sub(strs[index],cindex,-1)
cindex-=2
end
if cindex==0 and index!=1 then
if strs[index]=="" then -- nulls empty lines
for i=index,#strs,1 do
strs[i]=strs[i+1]
end
end
index=index-1
cindex=#strs[index]+1
if (sub(strs[index],-1,-1)==" ") then
strs[index]=sub(strs[index],1,-2)
cindex-=1
end
end
if cindex==0 and index==1 then
index=1
cindex=1
end
elseif pkey=="\t" then -- if the key is tab:
strs[index]=oldstring-- delete the tab key and call the pause menu.
cindex-=1
extcmd("pause")
end
if #strs[index]>26 then -- if the user hits the margin of the page:
if cindex!=28 then
strs[index]=sub(strs[index],1,cindex-2)..sub(strs[index],cindex,-1)
cindex-=1
else
local i
for i=#strs[index],1,-1 do -- saves and deletes the final word.
if (sub(strs[index],i,i)==" ") then
rword=sub(strs[index],i+1,-1)
strs[index]=sub(strs[index],1,i)
break
end
end
if (#split(strs[index]," ")==1) strs[index]=sub(strs[index],1,-2)
for i=#strs,index,-1 do
strs[i+1]=strs[i]
end
index+=1 -- advances the line (creating one if it doesn't exist)
if strs[index]==nil then
strs[index]=""
end
if (rword!=nil) strs[index]=rword
strs[index]=(strs[index]..pkey)
strs[index]=sub(strs[index],1,-2)
cindex=#strs[index]+1
end
end
end
cursoranim+=.05
end
function _draw()
cls(color2) --background color.
rect(4,3,123,116,color1) -- margins.
rectfill(0,120,128,128,color1) -- info bar at the bottom.
local cc=1-- draws each line of text.
for i=max(1,index-12),max(12,index) do
if strs[i]!=nil then
print("\14"..caseswitch(strs[i]),10,(2+(12*(cc))/1.5),color1)
end
cc+=1
end
if not (cursoranim>3 and flr(cursoranim)%3==0) then -- displays text cursor
if (cmode==false) pal(6,0)
spr(0,10+((cindex-1)*4),(1+(12*(min(13,index)))/1.5))
pal(6,6)
end
print("line:"..index, 5, 122, color2) -- displays current line.
print("words:"..wc(), 45, 122, color2) -- displays total number of characters
print(ttime(),90,122,color2) -- prints the time.
poke(0x5f30,1) -- prevents the p character or the enter key from calling the menu.
end
function ttime() -- calculates the time to display.
local ampm="am"
local hours=stat(93)
local minutes=stat(94)
if (flr(hours/12)==1) ampm="pm"
if (hours>12) hours-=12
if (hours<10) hours="0"..tostr(hours)
if (minutes<10) minutes="0"..tostr(minutes)
return (hours..":"..minutes.." "..ampm)
end
function wc()
local k, v, i -- calculates num of words
local wc=0
for k, v in ipairs(strs) do
local sword=false
for i=1,#v do
if sword==false then
if ((ord(sub(v,i,i))>=65 and ord(sub(v,i,i))<=90) or (ord(sub(v,i,i))>=97 and ord(sub(v,i,i))<=122)) then
sword=true
wc+=1
end
else
if (sub(v,i,i)==" ") sword=false
end
end
end
return wc
end
function cmodefunc(b) --controls day/night mode.
if(b&32 > 0) then
if cmode then
cmode=false
color1=0
color2=7
menuitem(1,"night mode: off",cmodefunc)
else
cmode=true
color1=6
color2=0
menuitem(1,"night mode: on",cmodefunc)
end
end
return true
end
function mmodefunc(b) -- controls the music
if(b&32 > 0) return true
if (b&1 > 0) mmode-=1
if (b&2 > 0) mmode+=1
if (mmode<0) mmode=9
if (mmode>9) mmode=0
if (mmode!=0) then
mmodeinit()
menuitem(2,"bgm:⬅️"..songnames[mmode].."➡️",mmodefunc)
else
music(-1, 300)
menuitem(2,"bgm:⬅️off➡️",mmodefunc)
end
end
function mmodeinit()
if (mmode==1) music(0, 0,11)
if (mmode==2) music(11, 0,7)
if (mmode==3) music(22, 0, 11)
if (mmode==4) music(16, 0, 11)
if (mmode==5) music(27, 0, 7)
if (mmode==6) music(33, 0, 14)
if (mmode==7) music(37, 0, 14)
if (mmode==8) music(43, 0, 7)
if (mmode==9) music(53, 0, 7)
end
function sfxmodefunc(b) -- controls the key sound mode.
if(b&32 > 0) then
if sfxmode then
sfxmode=false
menuitem(3,"key clicks: off",sfxmodefunc)
else
sfxmode=true
menuitem(3,"key clicks: on",sfxmodefunc)
end
end
return true
end
function printtext(b)
if(b&32 > 0) then
local i
printh("--Created with the Pico-8 Word Processor by Mkol103--","p8wp.txt",true)
printh("(Word Count: "..wc()..". Time Exported: "..ttime()..")","p8wp.txt")
printh("","p8wp.txt")
for i=1,#strs do
local sentence=strs[i]
if sub(sentence, -1,-1)=="\r" then --doesn't count newline characters. (Legacy)
sentence=sub(sentence,1,-2)
end
printh(sentence,"p8wp.txt")
end
end
end
function symboltoupper(letter)
local lnum=ord(letter)
local ctable={
[144]="Q",
[150]="W",
[132]="E",
[145]="R",
[147]="T",
[152]="Y",
[148]="U",
[136]="I",
[142]="O",
[143]="P",
[128]="A",
[146]="S",
[131]="D",
[133]="F",
[134]="G",
[135]="H",
[137]="J",
[138]="K",
[139]="L",
[153]="Z",
[151]="X",
[130]="C",
[149]="V",
[129]="B",
[141]="N",
[140]="M",
}
if (lnum>=128 and lnum<=153) return ctable[lnum]
return letter
end
function caseswitch(sentence)
local result=""
local switchtable={
["A"]="a",
["B"]="b",
["C"]="c",
["D"]="d",
["E"]="e",
["F"]="f",
["G"]="g",
["H"]="h",
["I"]="i",
["J"]="j",
["K"]="k",
["L"]="l",
["M"]="m",
["N"]="n",
["O"]="o",
["P"]="p",
["Q"]="q",
["R"]="r",
["S"]="s",
["T"]="t",
["U"]="u",
["V"]="v",
["W"]="w",
["X"]="x",
["Y"]="y",
["Z"]="z",
["a"]="A",
["b"]="B",
["c"]="C",
["d"]="D",
["e"]="E",
["f"]="F",
["g"]="G",
["h"]="H",
["i"]="I",
["j"]="J",
["k"]="K",
["l"]="L",
["m"]="M",
["n"]="N",
["o"]="O",
["p"]="P",
["q"]="Q",
["r"]="R",
["s"]="S",
["t"]="T",
["u"]="U",
["v"]="V",
["w"]="W",
["x"]="X",
["y"]="Y",
["z"]="Z"
}
for i=1, #sentence do
local letter=sub(sentence,i,i)
local lnum=ord(letter)
if ((lnum>=65 and lnum<=90) or (lnum>=97 and lnum<=122)) then
letter=switchtable[letter]
end
result=result..letter
end
return result
end
__gfx__
60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
60000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__label__
77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
77770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770007000777770007700777770007777700070007070700070707777707070077000707070007000770070007077707770707777777777777707777
77770777777077707777777077077777770707777770770707070770770707777707070707707707070777070707770707077707770707777777777777707777
77770777777077707777777077000777770007777770770077070770770007777707070707707707070077007700070007077707770007777777777777707777
77770777777077707777777077770777770707777770770707070770770707777707070707707700070777070777070707077707777707777777777777707777
77770777770007707777770007007777770707777770770707700770770707777770070707000770770007070700770707000700070007777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770007700707070077700707070777000700770007007777777777000707070007700700077777000777777007000700777007077700077777707777
77770777770707077707070707070707070777077707070777070777777777707707070707077770777777070777770777707707070777077707777777707777
77770777770007077700770707070707070777007707070077070777777777707700070007077770777777000777770007707707070777077700777777707777
77770777770707077707070707070700070777077707070777070770777777707707070707070770777777070777777707707707070707077707777777707777
77770777770707700707070707007700070007000700070007000707777777707707070707000770777777070777770077000707070007000700077777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770007000700777777000700777777000770077007700700077007700700077007007777777007000777770007777770077007700700777777707777
77770777770007070707077777707707077777070707070777077707770777077770770707070777770707077777770707777707770707070707077777707777
77770777770707000707077777707707077777000707070007000700770007000770770707070777770707007777770007777707770707070707077777707777
77770777770707070707077777707707077777077707077707770707777707770770770707070777770707077777770707777707070707070707077777707777
77770777770707070707077777000707077777077700770077007700070077007700070077070777770077077777770707777700070077007700077777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770007700700070007070700770007777700070707700700077777000700077777000700777777070700070077000777777007000777777777707777
77770777770777070707077077070707070777777700070707077770777777070707777777707707077777070707070707707777770707077777777777707777
77770777770077070700777077070707070077777707070707000770777777007700777777707707077777070700070707707777770707007777777777707777
77770777770777070707077077070707070777777707070707770770777777070707777777707707077777000707070707707777770707077777777777707777
77770777770777007707077077700707070007777707077007007770777777000700077777000707077777000707070707707777770077077777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770007777707070007000700077777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770707777707077077077707777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770007777707077077007700777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770707777700077077077707777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770707777700070007077700077077777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770707700707070007070700070007777707770007000700070777000777770707007770070707007777770007070700077777777777777777707777
77770777770707070707070777070707770707777707777077707770770777077777770707070707070707070777777077070707777777777777777777707777
77770777770007070707070077070700770077777707777077707770770777007777770077070707070707070777777077000700777777777777777777707777
77770777770707070700070777000707770707777707777077707770770777077777770707070707070007070777777077070707777777777777777777707777
77770777770707007700070007707700070707777700070007707770770007000777770707070700770007070777777077070700077777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770007000700070777000700777007700777777007000777770707000700070707700777777007000777777007070770070707777700077777707777
77770777770777077707770777707707070777077777770707070777770707707707770707077777770707077777770777070707770707777707077777707777
77770777770077007700770777707707070777000777770707007777770707707700770707000777770707007777770007070707770007777700077777707777
77770777770777077707770777707707070707770777770707070777770007707707770007770777770707077777777707070707770707777707077777707777
77770777770777000700070007000707070007007777770077070777777077000700070007007777770077077777770077700770070707777707077777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770007000700777777000700070707777700070007777770070077777707070007700777770007000700077007000777777777777777777777707777
77770777770007070707077777000707070707777707070777777707070707777707077077077777770777707707070777707777777777777777777777707777
77770777770707000707077777070700070007777700770077777707070707777700077077000777770077707700770007707777777777777777777777707777
77770777770707070707077777070707077707777707070777777707070707777707077077770777770777707707077707707777777777777777777777707777
77770777770707070707077777070707070007777700070007777700770707777707070007007777770777000707070077707777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770007007700070007000700070077700777770007777700770007000770070707000770070707000707077007700700777777777777777777707777
77770777770777070770770777070770770707077777770707777707070777707707770707070707070707070707070707070707077777777777777777707777
77770777770077070770770077007770770707077777770007777707070077707707770007007707070707007700070707070707077777777777777777707777
77770777770777070770770777070770770707070777770707777707070777707707070707070707070707070707070707070707077077777777777777707777
77770777770007070770770007070700070707000777770707777707070007000700070707000700777007070707070077007700070777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770007070700077007777700070007070700070707777700077007777770077007777707070007077707777777000700070707000700777777707777
77770777777077070770770777777770770707070770770707777770770777777707770707777707070777077707777777077770770707077707077777707777
77770777777077000770770007777770770077070770770007777770770007777700070707777707070077077707777777007770777077007707077777707777
77770777777077070770777707777770770707070770770707777770777707777777070707777700070777077707777777077770770707077707077777707777
77770777777077070700070077777770770707700770770707777700070077777700770077777700070007000700077777077700070707000700077777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770007007777770007070700077777000700070077007770077777700700077777000707070007777777777777777777777777777777777777707777
77770777777077070777777077070707777777000770770707070707777777070707777777707707070777777777777777777777777777777777777777707777
77770777777077070777777077000700777777070770770707070700077777070700777777707700070077777777777777777777777777777777777777707777
77770777777077070777777077070707777777070770770707070777077777070707777777707707070777777777777777777777777777777777777777707777
77770777770007070777777077070700077777070700070707000700777777007707777777707707070007777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777007070700070007700707070077007700070077700777770007000700070007077700070007700777777777000707070007000777777777707777
77770777770777070707070707070707070707070770770707077777770777070700077077077770770777077777777777707707070707707777777777707777
77770777770007070700770077070707070707070770770707077777770077000707077077077770770077000777777777707700070007707777777777707777
77770777777707070707070707070707070707070770770707070777770777070707077077077770770777770770777777707707070707707777777777707777
77770777770077700707070707007770070707000700070707000777770777070707070007000700070007007707777777707707070707707777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777770707000777770007700777777007700700777007000700770007000700070077777700077007777700070707000777777777777777777777707777
77770777770707077777777077077777770777070707070777707707070777070707770707777707070777777770770707077777777777777777777777707777
77770777770007007777777077000777770777070707070007707707070077007700770707777700070007777770770007007777777777777777777777707777
77770777770707077777777077770777770777070707077707707707070777070707770707777707077707777770770707077777777777777777777777707777
77770777770707000777770007007777777007007707070077000700070007070700070007777707070077777770770707000770777077707777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777707777
77770000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007777
77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000700077707700777000007700777000000000000007707070777077700770000077707700770000000000077707700000077707770000077707770000000
00000700007007070700007000700007000000000000070007070707070707000070000700700070000000000070700700070000700070000070707770000000
00000700007007070770000000700077000000000000070007770777077007770000007700700070000000000070700700000077707770000077707070000000
00000700007007070700007000700007000000000000070007070707070700070070000700700070000000000070700700070070007000000070007070000000
00000777077707070777000007770777000000000000007707070707070707700000077707770777000000000077707770000077707770000070007070000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__
011800200c0351004515055170550c0351004515055170550c0351004513055180550c0351004513055180550c0351104513055150550c0351104513055150550c0351104513055150550c035110451305515055
010c0020102451c0071c007102351c0071c007102251c007000001022510005000001021500000000001021013245000001320013235000001320013225000001320013225000001320013215000001320013215
003000202874028740287302872026740267301c7401c7301d7401d7401d7401d7401d7301d7301d7201d72023740237402373023720267402674026730267201c7401c7401c7401c7401c7301c7301c7201c720
0030002000040000400003000030020400203004040040300504005040050300503005020050200502005020070400704007030070300b0400b0400b0300b0300c0400c0400c0300c0300c0200c0200c0200c020
00180020176151761515615126150e6150c6150b6150c6151161514615126150d6150e61513615146150e615136151761517615156151461513615126150f6150e6150a615076150561504615026150161501615
00180020010630170000000010631f633000000000000000010630000000000000001f633000000000000000010630000000000010631f633000000000000000010630000001063000001f633000000000000000
001800200e0351003511035150350e0351003511035150350e0351003511035150350e0351003511035150350c0350e03510035130350c0350e03510035130350c0350e03510035130350c0350e0351003513035
011800101154300000000001054300000000000e55300000000000c553000000b5630956300003075730c00300000000000000000000000000000000000000000000000000000000000000000000000000000000
010300003051534515044000440010400044000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
01240020051450c145051450c145051450c145051450c145071450e145071450e145071450e145071450e1450d145141450d145141450d145141450d145141450c145071450c145071450c145071450c14507145
014800202174421740217402274024744247401f7441f7402074420740207401f7401d7401f7401c7441c7402174421740217402274024744247401c7441c7401d7441f740207402274024744247402474024745
012400200e145151450e145151450e145151450e145151450c145131450c145131450c145131450c145131450f145161450f145161450f145161450f145161450e145151450e145151450c145131450c14513145
011200200c1330960509613096131f6330960509615096150c1330960509613096130062309605096050e7130c1330960509613096131f6330960509615096150c1330960509613096130062309605096050e713
014800200c5240c5200c5200c52510524105201052010525115241152011520115251352413520135201352511524115201152011525135241352013520135251452414520145201452013520135201352013525
014800200573405730057300573507734077300773007735087340873008730087350c7340c7300c7300c73505734057300573005735077340773007730077350d7340d7300d7300d7350c7340c7300c7300c735
000400002152526535005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500005000050000500
013200202005420050200502005520054200502005020055200542005020050200551e0541e0501c0541c05023054230502305023055210542105020054200501c0541c0501c0501c0501c0501c0501c0501c055
0132002025054250502505025055230542305021054210502805428050280502805527054270502305423050250542505025050250551e0541e0501e0501e0552305423050230502305023050230502305023055
0132002010140171401914014140101401714019140141400f14014140171401b1400f14014140171401b1400d1401014015140141400d1401014017140191400d1401014015140141400d140101401714019140
0132002015140191401c1401914015140191401c1401914014140191401b14017140121401414015140191401e1401914015140191401214014140151401914017140141401014012140171401e1401b14017140
013200202372423720237202372523724237202372023725237242372023720237252172421720207242072028724287202872028725257242572023724237202072420720207202072020720207202072020725
0132002028724287202872028725287242872028720287252c7242c7202c7202c7252a7242a72028724287202a7242a7202a7202a725257242572025720257252872428720287202872527724277202772027725
0019002001610016110161101611016110161104611076110b61112611166111b6112061128611306113561138611336112d6112961125611206111c6111861112611106110c6110861104611026110261101611
011e00200c505155351853517535135051553518535175350050015535185351a5350050515535185351a53500505155351c5351a53500505155351c5351a53500505155351a5351853500505155351a53518535
010f0020001630020000143002000f655002000020000163001630010000163002000f655001000010000163001630010000163002000f655002000010000163001630f65500163002000f655002000f60300163
013c002000000090750b0750c075090750c0750b0750b0050b0050c0750e075100750e0750c0750b0750000000000090750b0750c0750e0750c0751007510005000000e0751007511075100750c0751007510005
013c00200921409214092140921409214092140421404214022140221402214022140221402214042140421409214092140921409214092140921404214042140221402214022140221402214022140421404214
013c00200521405214052140521404214042140721407214092140921409214092140b2140b214072140721405214052140521405214042140421407214072140921409214092140921409214092140921409214
013c00202150624506285060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
011400181862500000000001862518625186251862500000186051862018625000001862500000000001862500000000001862518605186251862518605186250000000000000000000000000000000000000000
010f00200c0730000018605000000c0730000000000000000c0730000000000000000c0730000000000000000c0730000000000000000c0730000000000000000c0730000000000000000c073000000000000000
013c0020025500255004550055500455004550055500755005550055500755007550045500455000550005500255002550045500555004550045500555007550055500555007550095500a550095500755009550
013c00201a54526305155451a5451c545000001a5451c5451d5451c5451a545185451a5450000000000000001a5452100521545180051c5450000018545000001a545000001c545000001a545000000000000000
011e00200557005575025650000002565050050557005575025650000002565000000457004570045750000005570055750256500000025650000005570055750256500000025650000007570075700757500000
013c00200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
013c00201d1151a1151a1151d1151a1151a1151c1201c1251d1151a1151a1151d1151a1151a1151f1201f1251d1151a1151a1151d1151a1151a1151c1201c1251d1151a1151a1151d1151a1151a1151f1201f125
011e0020091351500009135000050920515000091350000009145000000920500000071400714007145000000913500000091350000009205000000913500000091450000009205000000c2000c2050020000000
015000200706007060050600506003060030600506005060030600306005060050600206002060030600306007060070600506005060030600306005060050600306003060050600506007060070600706007060
01280020131251a1251f1251a12511125181251d125181250f125161251b125161250e125151251a125151250f125161251b1251612511125181251d125181250e125151251a125151251f1251a125131250e125
01280020227302273521730227301f7301f7301f7301f7352473024735227302273521730217351d7301d7351f7301f7352173022730217302173522730247302673026730267302673500000000000000000000
012800202773027735267302473524730247302473024735267302673524730267352273022730227302273524730247352273021735217302173021730217351f7301f7301f7301f7301f7301f7301f7301f735
015000200f0600f0600e0600e060070600706005060050600c0600c060060600606007060090600a0600e0650f0600f0600e0600e060070600706005060050600c0600a060090600206007060070600706007065
012800200f125161251b125161250e125151251a12515125131251a1251f1251a12511125181251d125181250f125161251b125161250e125151251a12515125131251a1251f1251a125131251a1251f1251a125
012800201a5201a525185201a525135101351013510135151b5201b5251a5201a525185201852515520155251652016525185201a52518520185251a5201b520155201552015520155251f5001f5001f5001f505
012800201f5201f5251d5201b525155101551015510155151d5201d5251b5201d5251a5101a5101a5101a5151b5201b5251a5201a52518520185201552015525165201652016520165251a5001a5001a5001a505
013c00201003500500000001003509000000000e0300e0351003500000000001003500000000000e0000e00511035000000000011035000000000010030100351103500000000001103500000000000400004005
011e00201813518505000001713517505000001513515505000001013010130101350000000000000000000015135000000000010135000000000011500115001150011500111301113011130111350000000000
01180020071550e1550a1550e155071550e1550a1550e155071550e1550a1550e155071550e1550a1550e155051550c155081550c155051550c155081550c155051550c155081550c155051550c137081550c155
01180020071550e1550a1550e155071550e1550a1550e155071550e1550a1550e155071550e1550a1550e155081550f1550c1550f155081550f1550c1550f155081550f1550c1550f155081550f1370c1550f155
01180020081550f1550c1550f155081550f1550c1550f155081550f1550c1550f155081550f1550c1550f155071550e1550a1550e155071550e1550a1550e155071550e1550a1550e155071550e1370a1550e155
011800201305015050160501605016050160551305015050160501605016050160551605015050160501a05018050160501805018050180501805018050180550000000000000000000000000000000000000000
011800201305015050160501605016050160551305015050160501605016050160551605015050160501a0501b0501b0501b0501b0501b0501b0501b0501b0550000000000000000000000000000000000000000
011800201b1301a1301b1301b1301b1301b1351b1301a1301b1301b1301b1301b1351b1301a1301b1301f1301a130181301613016130161301613016130161350000000000000000000000000000000000000000
011800201b1301a1301b1301b1301b1301b1351b1301a1301b1301b1301b1301b1351b1301a1301b1301f1301d1301d1301d1301d1301d1301d1301d1301d1350000000000000000000000000000000000000000
01180020081550f1550c1550f155081550f1550c1550f155081550f1550c1550f155081550f1550c1550f1550a155111550e155111550a155111550e155111550a155111550e155111550a155111550e15511155
011800202271024710267102671026710267152271024710267102671026710267152671024710267102971027710267102471024710247102471024710247150000000000000000000000000000000000000000
01180020227102471026710267102671026715227102471026710267102671026715267102471026710297102b7102b7102b7102b7102b7102b7102b7102b7150000000000000000000000000000000000000000
011800202b720297202b7202b7202b7202b7252b720297202b7202b7202b7202b7252b720297202b7202e72029720277202672026720267202672026720267250000000000000000000000000000000000000000
011800202b720297202b7202b7202b7202b7252b720297202b7202b7202b7202b7252b720297202b7202e7202e7202e7202e7202e7202e7202e7202e7202e7250000000000000000000000000000000000000000
010c00200c133000000061500615176550000000615006150c133000000061500615176550000000615006150c133000000061500615176550000000615006150c13300000006150061517655000000061500615
0118002002070020700207002070040700407004070040700c0700c0700c0700c0700a0700a0700a0700a0700e0700e0700e0700e0700d0700d0700d0700d070100701007010070100700e0700e0700e0700e075
011800200000015540155401554015545115401154011540115451354013540135401354510540105401054010545115401154011540115451054010540105401054513540135401354013545095400954009545
0118002009070090700907009070070700707007070070700907009070090700907002070020700207002070030700307003070030700a0700a0700a0700a0700707007070070700707007070070700707007075
01180020000001054010540105401054511540115401154011545105401054010540105450e5400e5400e5400e545075400754007540075450e5400e5400e5400e54505540055400554005540055400554005545
__music__
01 48004243
00 48014300
00 03014300
00 02030500
00 02030500
00 03414300
00 48014500
00 03040500
00 03020500
00 03020500
02 48010706
01 0a4d0949
00 0a0d090c
00 0a4c0b4c
00 0a0d0e4e
02 094d0c49
01 10124316
00 11134316
00 10121416
00 11131516
00 12424316
02 13424316
01 19425b18
00 19175a18
00 19171a18
00 1b425c18
02 1a194318
01 1f1d5e60
00 1f1d2060
00 1f1d2060
00 1e1d215e
00 231d211e
02 1c1d2444
01 65262725
00 692a2829
00 2526272b
02 292a282c
01 2d181e24
00 2d181e24
00 2d181e2e
00 2d181e2e
00 2d181e6e
02 2d181e6e
01 2f054345
00 30054345
00 2f324344
00 30334344
00 2f323705
00 30333805
00 31344344
00 36354344
00 31343905
02 36353a05
01 3c423b41
00 3c423b44
00 3c3d3b44
00 3c3d3b44
00 3e523b41
00 3e423b41
00 3e3f3b44
00 3e3f3b44
00 3e013b41
02 3e013b41