'sprites '0 = boat '1 = boatwave '10-19 = thrust waves 'bg '0 '1 - ui btn '2 - ui slide '3 - land global trackindex global numtracks global pagewc global pagew global sidesmarginc global startbtnwc global startbtnhc global startbtnxc global startbtnyc global centerx global centery global landblocksize global boatx global boaty trackindex = 0 numtracks = 5 pagewc = floor(shown.w * 0.7 / 8) pagew = (pagewc * 8) centerx = shown.w / 2 centery = shown.h / 2 landblocksize = 4 sidesmarginc = 3 startbtnwc = 7 startbtnhc = 3 startbtnxc = (centerx / 8) - (startbtnwc / 2) startbtnyc = ((shown.h - safe.b) / 8) - (startbtnhc) - sidesmarginc boatx = 0 boaty = 0 'data boatframes: data $10,$12,$14,$16,$18,$1a,$1c,$1e data $30,$32,$34,$36,$38,$3a,$3c,$3e thrustwavedata: data $50,$51,$52,$53 tracksdata: 'qtty of data per track data 5 'name data "Pond" 'origin & size in bg source data 0,0,16,19 data "River" data 17,0,44,39 data "Rapids" data 45,0,63,14 data "Laguna" data $0,$0,$4,$3 data "Waterfall" data $0,$0,$11,$12 '0 - land '1 - water '2 - start '3 - finish '7~10 - tl~br corners '8- hill tilesdata: data 16 '0 land data 0,0 '1 water data 0,4 '2 start data 0,4 '3 finish data 4,4 '4-6 items data 0,4 data 0,4 data 0,4 '7-10 corners data 4,0 data 8,0 data 12,0 data 16,0 '11-15 landmarks data 0,0 data 0,0 data 0,0 data 0,0 data 0,0 sub drawtitle pal 1 text (centerx / 8) - 4, (centerx / 8), "fair boat" end sub sub indexbyscroll(scrollvalue, index) 'get track index when scroll crosses the middle of the screen index = floor((scrollvalue + (pagew / 2)) / pagew) end sub sub scrollbyindex(scrollvalue, index) scrollvalue = index * pagew end sub sub drawtrackpreview(index, preview) 'trace "drawtrackpreview", index restore tracksdata read numdata if index < 0 then exit sub else if index >= numtracks then exit sub end if skip index * numdata 'level name read trackname$ 'level preview read datal read datat read datar read datab pagecenterxc = (pagewc * index) + floor(shown.w / 8 / 2) bg 2 'description text pagecenterxc - floor(len(trackname$) / 2), 10, trackname$ number pagecenterxc, 11, datar - datal, 2 number pagecenterxc, 12, datab - datat, 2 'preview if preview then bg source rom(3) bg copy datal, datat, datar-datal, datab-datat to pagecenterxc - floor((datar-datal)/2), 18 end if end sub sub drawlevelselect(index) selectory = (shown.h * 0.4) / 8 title$ = "select your track" start$ = "start" cls 1 cls 2 'global ui bg 1 text ((shown.w / 8) - len(title$)) / 2, 6, title$ 'dynamic ui 'trace "drawlevelselect", index call drawtrackpreview(index - 1, 0) call drawtrackpreview(index, 1) call drawtrackpreview(index + 1, 0) 'center view targetscroll = 0 call scrollbyindex(targetscroll, index) scroll 2, targetscroll, 0 'start btn bg 1 bg source rom(5) bg copy 0,0,startbtnwc,startbtnhc to startbtnxc,startbtnyc text (centerx / 8) - (len(start$) / 2), startbtnyc + 1, start$ end sub sub drawboat sprite 0,,, $10 sprite 0 size 1 sprite 1,,, $50 sprite 1 pal 0 sprite 1 pal 1 'put boat at start restore tracksdata read numdata skip trackindex * numdata 'level name read trackname$ 'level bounds read infl, inft, infr, infb bg source rom(3) for i = infl to infr for j = inft to infb if mcell.c(i,j) = $2 then boatx = i * landblocksize * 8 boaty = j * landblocksize * 8 end if next j next i end sub goto title title: trace "title" cls call drawtitle do 'ui if tap then wait 10 goto levelselect end if wait vbl loop levelselect: trace "level select" cls call drawlevelselect(trackindex) isswiping = 0 swipestart = 0 swipedelta = 0 bgstart = 0 do 'swipe selector if tap then 'start if touch.x > startbtnxc*8 and touch.x < (startbtnxc + startbtnwc)*8 and touch.y > startbtnyc*8 and touch.y < (startbtnyc+startbtnhc)*8 then goto game end if 'start drag isswiping = 1 swipestart = touch.x bgstart = scroll.x(2) end if if touch then 'drag swipevalue = bgstart - (touch.x - swipestart) scroll 2, swipevalue, 0 else 'release if isswiping = 1 then bg 0 isswiping = 0 targetscroll = clamp(swipevalue, 0, ((numtracks - 1) * pagew)) call indexbyscroll(targetscroll, trackindex) call drawlevelselect(trackindex) end if end if wait vbl loop game: trace "game" cls gosub inf_init touchstartx = 0 boatsteerstart = 0.25 boatsteer = 0 boatthrust = 0 boatthrustmax = 1 boatacceleration = 0.08 boatvelocity = 0 boatvelocitymax = 3 boatvelocityx = 0 boatvelocityy = 0 steerstep = 0.005 thruststep = 0.02 brakestep = 0.1 wateracceleration = 0.08 waterfriction = 0.97 boatwavecycle = 0 call drawboat do if tap then touchstartx = touch.x end if if touch then 'touch ON 'steer boatsteer = boatsteerstart + ((touchstartx - touch.x) * steerstep) if boatsteer < 0 then boatsteer = boatsteer + 1 else if boatsteer > 1 then boatsteer = boatsteer - 1 end if frameindex = floor((boatsteer + 0.03) * 16) mod 16 restore boatframes skip frameindex read bchar 'sprite 0,,,bchar 'thrust boatthrust = boatthrust + thruststep else 'touch OFF 'steer boatsteerstart = boatsteer 'thrust boatthrust = boatthrust - brakestep end if 'physics boatthrust = clamp(boatthrust, 0, boatthrustmax) 'boat force boatvecx = cos(boatsteer) * boatthrust boatvecy = sin(boatsteer) * boatthrust 'boat projected force boatvelocityx = (boatvelocityx * waterfriction) + (boatvecx * boatacceleration) boatvelocityy = (boatvelocityy * waterfriction) + (boatvecy * boatacceleration) prevboatx = boatx prevboaty = boaty gosub collide boatx = prevboatx + boatvelocityx boaty = prevboaty + boatvelocityy boatangle = atan(boatx - prevboatx, boaty - prevboaty) boatvelocity = clamp(len(boatx - prevboatx, boaty - prevboaty), 0, boatvelocitymax) boatvelocityx = cos(boatangle) * boatvelocity boatvelocityy = sin(boatangle) * boatvelocity 'waves boatwavecycle = boatwavecycle + max((boatvelocity * 0.1), 0.05) if boatwavecycle > 1 then boatwavecycle = 0 end if wavedistance = -(boatvelocity * 10) wavex = cos(boatangle) * (boatwavecycle * wavedistance) wavey = sin(boatangle) * (boatwavecycle * wavedistance) wchar = $50 + (boatwavecycle * 4) 'camera position in the world in pixel-coords infx = boatx-centerx infy = boaty-centery gosub inf_position gosub inf_draw 'infinite scroll scroll 3, infx, infy 'move boat & wave using boatx diff with infx sprite 0, boatx-infx-8, boaty-infy-8, bchar sprite 1, boatx-infx-4+wavex, boaty-infy-4+wavey, wchar 'debug gosub dbg wait vbl loop gameover: do wait vbl loop '=================================== 'debug dbg: cls 0 bg 0 pal 5 'gosub dbg_inf 'gosub dbg_boat gosub dbg_land return dbg_boat: text 0,4, "str:" + str$(boatsteer) text 0,5, "thr:" + str$(boatthrust) text 0,6, "spd:" + str$(boatvelocity) text 0,7, "ang:" + str$(boatangle) return dbg_inf: number 10,9,infpl,3 number 10,10,infpt,3 number 10,11,infpr,3 number 10,12,infpb,3 number 14,9,boatx,3 number 14,10,boaty,3 number 14,11,infx,3 number 14,12,infy,3 return dbg_land: number 0,4,landcell,4 number 0,5,boatx/8/landblocksize,3 number 0,6,boaty/8/landblocksize,3 return '=================================== 'inf scroll section sub inf_world(l,t,w,h) if w=0 or h=0 then exit sub bg 3 pal 0 'drawing an horizontal line if w>h then world_y=t for i=0 to w-1 world_x=l+i call inf_world_draw(world_x, world_y) next i exit sub 'drawing a vertical line else world_x=l for i=0 to h-1 world_y=t+i call inf_world_draw(world_x, world_y) next i exit sub end if end sub sub inf_world_draw(world_x, world_y) restore tracksdata read numdata skip trackindex * numdata 'level name read trackname$ 'level bounds read datal read datat read datar read datab 'trace datar - datal, datab - datat 'select tile type bg source rom(3) dbcellc = mcell.c(world_x, world_y) 'trace world_x, world_y, dbcellc restore tilesdata read numids if dbcellc > numids then trace dbcellc exit sub end if skip dbcellc * 2 read dbx read dby bg source rom(4) bg 3 bg copy dbx, dby, landblocksize, landblocksize to world_x*landblocksize, world_y*landblocksize end sub inf_init: restore tracksdata read numdata skip trackindex * numdata 'level name read trackname$ 'level bounds read infl, inft, infr, infb 'camera dimension in pixel-coords infw=shown.w infh=shown.h 'world cell size in pixel-coord infs=8*landblocksize 'convert bg layer size 64x64 to world-meta-cell-coord infg=64/(infs\8) 'number of cells to draw out of the view, max value=7 with infs=8 infco=0 'space occupied by the whole world in pixel-coords infpw=(infr-infl+1)*infs infph=(infb-inft+1)*infs 'camera position in the world in pixel-coords infx=0 infy=0 'rectangle of what portion of the world is drawn 'a.k.a.: view drawing cursor in world-cell-coords 'initial rectangel start from the center of the view 'p position infpl=int(infx/infs)-infco infpt=int(infy/infs)-infco infpr=int((infx+infw)/infs)+infco infpb=int((infy+infh)/infs)+infco 'c is cursor , it grows infcl=(infpl+infpr)\2 infct=(infpt+infpb)\2 infcr=infcl-1 infcb=infct-1 return 'make sure the camera position allow to see the world and some of the out-of-bound characters around it. inf_position: infnl=0 'in x axis if infpw>infw then 'world is bigger than the view l=infl*infs r=(infr+1)*infs-infw 'prevent to past beyond if infxr then infx=r else 'world is small than the view, center it infx=-(infw-infpw)/2 end if 'in y axis if infph>infh then 'world is bigger than the view t=inft*infs b=(infb+1)*infs-infh if infyb then infy=b else 'world is small than the view, center it infy=-(infh-infph)/2 end if 'p position infpl=int(infx/infs)-infco infpt=int(infy/infs)-infco infpr=int((infx+infw)/infs)+infco infpb=int((infy+infh)/infs)+infco inf_draw: 'render missing world cells at left if infplinfl then dec infcl if infcr-infcl>=infg then dec infcr call inf_world(infcl,infct,1,infcb-infct+1) end if 'render missing cells at right if infpr>infcr and infcr=infg then inc infcl call inf_world(infcr,infct,1,infcb-infct+1) end if 'render missing cells at top if infptinft then dec infct if infcb-infct>=infg then dec infcb call inf_world(infcl,infct,infcr-infcl+1,1) end if 'render missing cells at bottom if infpb>infcb and infcb=infg then inc infct call inf_world(infcl,infcb,infcr-infcl+1,1) end if return '=================================== 'collisions collide: cellx = (boatx/8/landblocksize) celly = (boaty/8/landblocksize) bg source rom(3) landcell = mcell.c(cellx, celly) reboundvelocityx = boatvelocityx reboundvelocityy = boatvelocityy if landcell<1 or landcell>10 then 'trace "plain land",cellx,celly 'determine the rebound direction 'rebound tiles tr = 0 rr = 0 br = 0 lr = 0 'neighbor cells tc = mcell.c(cellx,celly-(boatvelocityx/8)) rc = mcell.c(cellx+(boatvelocityx/8),celly) bc = mcell.c(cellx,celly+(boatvelocityy/8)) lc = mcell.c(cellx-(boatvelocityx/8),celly) if tc>0 and tc<7 then tr = 1 if rc>0 and rc<7 then rr = 1 if bc>0 and bc<7 then br = 1 if lc>0 and lc<7 then lr = 1 'get available rebound direction depending on neighbors if tr=1 then reboundvelocityx = 0 reboundvelocityy = -boatvelocityy else if br=1 then reboundvelocityx = 0 reboundvelocityy = -boatvelocityy else if lr=1 then reboundvelocityy = 0 reboundvelocityx = -boatvelocityx else if rr=1 then reboundvelocityy = 0 reboundvelocityx = -boatvelocityx else 'panic, just throw the boat back reboundvelocityx = -boatvelocityx reboundvelocityy = -boatvelocityy end if else return end if 'cap rebounds reboundvelocityx = max(abs(reboundvelocityx), 0.7) * sgn(reboundvelocityx) reboundvelocityy = max(abs(reboundvelocityy), 0.7) * sgn(reboundvelocityy) 'apply boatvelocityx = reboundvelocityx boatvelocityy = reboundvelocityy return #1:DEFAULT PALETTES 16032E373C023B3C16153C173B151617 0022201F00363534001E190200060504 #2:DEFAULT CHARACTERS 00000000000000000000000000000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFEFC7ABEFEFEFFF FFFFFFFFFFFFFFFFFFFF55AA55AAFFFF FFC7BBEDD5DDE3FFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFB7DBEDDBB7FF FFFFFFFFFFFFFFFFFFE7E3EFEFEFEFFF 000103070F1F3F7F000103070F1F3F7F 0080C0E0F0F8FCFE0080C0E0F0F8FCFE 7F3F1F0F070301007F3F1F0F07030100 FEFCF8F0E0C08000FEFCF8F0E0C08000 000000000000000000387C7C38101000 00000000000000000000020420100000 00000000000000000000003C42000000 00000000000000000010387C387C1000 000000000000000000183C7E3C3C0000 0000000000000F1C0000000000000003 000000000040E03E00000000004060E0 00000000000000010000000000000000 00000000000CF870000000000010C4E8 00000000000000010000000000000000 000000083070E060000000100800D0C0 00000000000000010000000000000100 0000206060E0E040000000008000C0E0 00000000000101010000000000000001 0000808080C0C0C000000000000080C0 00000406060707020000000001000307 00000000000000800000000000000000 000000100C0E07060000000810000B03 00000000000000800000000000000000 0000000000301F0E0000000000082317 00000000000000800000000000000000 0F000000000000000007000000000000 F80000000000000004E0000000000000 060F0E00000000000100010600000000 4080000000000000A040800000000000 02040300000000000103040300000000 40800000000000008040800000000000 01010100000000000002020100000000 40C08000000000008000408000000000 01010100000000000100000100000000 4040C08000000000C080004080000000 02030100000000000100020100000000 80808000000000000040408000000000 02010000000000000102010000000000 4020C0000000000080C020C000000000 02010000000000000502010000000000 60F07000000000008000806000000000 000000000002077C0000000000020607 000000000000F03800000000000000C0 00000000000000030000000000000002 000000000030D83000000000000020C8 00000000000000010000000000000001 000000002070902000000000000060C0 00000000010102020000000000020103 0000000080C040800000000040008040 00000000000101010000000000000001 0000000080C0404000000000000080C0 00000000010302010000000002000102 000000008080404000000000004080C0 00000000040E09040000000000000603 00000000000000800000000000000080 00000000000C1B0C0000000000000413 00000000000000C00000000000000040 1F000000000000002007000000000000 F00000000000000000E0000000000000 071F3800000000000300040000000000 C0000000000000002080000000000000 03070F1C000000000100000218000000 C080000000000000A040800000000000 0707060E0C00000003000900000C0000 00000000000000008000000000000000 01010000000000000100010000000000 40C0808080000000C080400000800000 00000000000000000100000000000000 E0E0607030000000C000900000300000 03010000000000000502010000000000 C0E0F038000000008000004018000000 03000000000000000401000000000000 E0F81C0000000000C000200000000000 00000000000000000000000018000000 00000000000000000000001824180000 00000000000000000000003C423C0000 00000000000000000000006681660000 00000000000000000000000081000000 00000000200000000000001008000000 00001000000000000000002800000000 00000008000000000000003000000000 00000008000000000000002010000000 00000000080000000000000020100000 00000000001000000000000000280000 00000000002000000000000010080000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 3F408080808080800000000000000000 FC020101010101010000000000000000 80808080808080800000000000000000 FF000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 808080808080403F0000000000000000 01010101010102FC0000000000000000 01010101010101010000000000000000 00000000000000FF0000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 030E14B830E04080000903A30B9F3F7F D060321C0C07020150A082A4F4F9FCFE 00802010000402007FBF3F1B07070300 0102180010004000FFFEF8D0F0C0C000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFF3333CCCC3333CCCC 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00009002000000000000000000000000 00000000000000000000000000000000 00000000000000000002000200020002 81029001900190019001900190010000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000080C16224181C6341 000000000000000000C438102844C281 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000009001900190019001 000000000000A002A002000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000000000003C644484483C00 #3:BACKGROUND 000040400D00000200020E000E000000 0C00000200020E0000000E0000020002 0002000000020002000000020D000002 00020002000200020002000200020002 00020002000200020002000000000000 00000000000000020002000200020F00 0F000F000F000F000F000F000F000F00 0F000F000F000F000F000F000F000F00 0F000F00000007000100010001000100 01000100010001000100010008000C00 00000000000000000000000000000000 00000000000200020002000200020002 0D00000200020D000000000007000100 0100010008000B0000000B0000020F00 07000100010001000100010001000100 01000100010001000002010001000100 01000F00000201000100010001000100 01000100010001000100010001000000 00000D00000000000D00000000000700 010001000100080000000D0000000D00 00000000000000000700010001000100 01000100010008000000000000000F00 01000100010001000100010001000100 01000100010001000002010000020700 01000F000D0001000100010001000100 01000100010001000100010001000C00 00000000000000000000070001000100 01000100010001000100080000000000 00000D00000007000100010001000100 01000100010001000800000000000F00 01000100010001000100010001000A00 00000900010001000002010000000900 01000F0000020100010001000A000000 00000000000009000100010001000000 00000C00000000000700010001000100 01000100010001000100010008000000 00000000070001000100010001000100 01000100010001000100000000000F00 01000100010000000100010001000000 00000000010001000100010000000700 0A000F00000001000100010000020000 00000E00000007000100010001000000 00000000000000000100010001000100 01000A00090001000100010001000100 0100010001000100010001000A000000 09000100010001000100000000000F00 01000100010001000100010001000800 00000700010001000000010000000900 08000F000C0001000100010000000700 01000100010001000100010001000000 0C000000000000000100010001000A00 00000000000000000900010001000100 01000100010001000A00000000000000 00000100010001000100000000000F00 01000200010001000100010001000100 01000100010001000000010000000000 01000F00000203000300030000000100 01000100010001000100010001000000 000000000D0000000100010001000000 00000B0000000B000000000000000000 0000000000000000000000000D000000 00000900010001000100000000000F00 01000100010000000000000001000100 01000100010001000000010000000000 01000F00000201000100010000000100 0100010001000100010001000A000000 0E000000000000000100010001000000 0B000000000000000000000000020000 0F00000000000D000000000000000000 000000000100010001000B0000000F00 01000100010001000100010000000000 00000000000000000000010000000000 01000F0000020100020001000C000100 010001000A0000000000000000000000 00000000000000000100010001000000 000000000F0000000000000000000000 00000F00000000020000000000000000 00000000010001000100000000000F00 01000100010001000100010001000100 01000100010008000000010001000100 01000F00000001000100010000000100 01000100080000000E00000000000C00 00000000000000000100010001000000 0B000000000007000100010008000000 00000F00000000020002000000000B00 00000000010001000100000000000F00 09000100010001000100010001000100 01000100010001000000000001000000 00020F00000201000100010000000100 01000100010001000100010001000100 01000800000000000100010001000800 00000700010001000100010001000800 00000000000000020002000000000000 00000000010001000100000000000F00 00000000000001000000000001000100 01000100010001000000000001000000 01000F000C0001000100010000000100 01000100010001000100010001000100 01000100000000000100010001000100 01000100010001000100010001000100 00000000000000000B00000200000000 00000000010001000100000000000F00 09000100000001000000000009000100 0100010001000A000000000001000000 01000F0000020100010001000D000900 01000100010001000100010001000100 01000100000000000100010001000100 0100010001000A000000090001000100 0000000000000000000200020B000000 00000000010001000100000000000F00 00000100010001000100080000000000 00000000000000000100000001000100 01000F00000201000100010000000C00 00000000000000000000000009000100 01000100000000000900010001000100 01000A00000000000000070001000100 000000000000000000020D0000020000 00000700010001000100080000000F00 0F000F000F000F000F000F000F000F00 0F000F000F000F000F000F000F000F00 0F000F000E0001000100010008000000 000000000C00000000000C0007000100 010001000D0000000000000000000000 0D00000000000B000700010001000A00 000000000F0000000002000200020000 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000002000201000100010001000100 01000100010001000100010001000100 01000100000000000000000000000000 0000000000000700010001000A000000 00000000000000000002000200020000 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000002000001000100010001000100 01000100010001000100010001000100 0100010000000000000000000B000000 0B0000000700010001000A0000020000 0B00000000000D000002000200020000 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000002000209000100010001000100 01000100010001000100010001000100 01000A00000000000000000000000000 00000000010001000A00000000000000 00000000000300020002000200000F00 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000020000000000000C000000 00000E000000000000000C0000000000 0C0000000C0000000000000000000D00 00000000010001000000000000000000 00000000000300020002000200030000 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000010001000800000000000700 01000100080000020002000200000003 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000010001000100010001000100 01000100010008000002000000000003 00000300030003000300030000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000D00090001000100010001000100 01000100010001000800000000000B00 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000900010001000100000000000000 00000100010002000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000B00000000000B0000000D00 00000000090001000100000000000000 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000000F000000000000000000 0D000000000001000100080000000000 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020002000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000000000000000000000000D000000 00000000000201000100010000000002 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020002000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0B000000000000000B00000000000000 00000000070001000100010000020002 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020002000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000B00000000000700010001000100 010001000100010001000A0000000000 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020002000200000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000070001000100010001000100 01000100010001000A00000200000000 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020002000200020000 00000000000200020002000200020002 00020002000200020002000200000000 0000070001000100010001000A000002 00020000000200020000000000000000 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020002000200020002 00020002000200020002000200020002 00020002000200020002000200020002 000201000100010001000A0000000B00 00020000000200020000000000000B00 00000100010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020002000200020002 00020002000200020002000200020002 00020002000200020002000200020002 00020100010001000A00000200000002 00020002000007000100010008000000 00000900010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000200020002000200020002 00000000000000000000000000000000 00000000000000000000000000020002 0002010001000100000200020B000B00 00020000070001000100010001000800 00000000010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000020000000000000000 00000000000000000000000000000000 00000000000000000000000000000D00 000001000100010000020F0000020002 07000100010001000100010001000100 08000700010001000100010000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000100010001000800000000000700 0100010001000A000000090001000100 010001000100010001000A0000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000100010001000100010001000100 010001000A0000000D00000009000100 01000100010001000100000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000B00 00000900010001000100010001000100 01000A0000000D000000000000000900 01000100010001000A000B0000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0B000000090001000100010001000A00 000000000B00000000000D0000000000 0900010001000A000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000 #4:BACKGROUND 00001E1E800280028002800280028002 80028102820280020000000083029001 90019001900190019001840200000000 00000000000000000000000000000000 80028002800280020002800281029001 90018202800280020000830290019001 90019001840200000000000000000000 00000000000000000000000080028002 80028002800281029001900190019001 82028002800200008302900190018402 00000000000000000000000000000000 00000000000000008002800280028002 81029001900190019001900190018202 00000000000083028402000000000000 00000000000000000000000000000000 00000000900190019001900190019001 90019001800280020000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 90019001900190019101910191019101 80028002000000000000000000000000 00000000000000000000000000000000 00000000000000000000000090019001 90019001910191019101910100000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000009001900190019001 9001900190019001A002000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000A002A002A002A002000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 0000A002A00200000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 A002A002A00200000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 000000000000000000000000 #5:BACKGROUND 0000140A600063006300630063006300 61000000000000000000000000000000 00000000000000000000000062000000 00000000000000007200000000000000 00000000000000000000000000000000 00000000700073007300730073007300 71000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000000000000000000000000000 00000000