pico-8 cartridge // http://www.pico-8.com version 42 __lua__ -- MoonBus -- by Dejvino function reset() plr_alive=true plr_win=false plr_docked=false plr_pos={x=5,y=8} plr_speed={x=0.5,y=0} plr_static=false plr_engine=-1 plr_fuel=1 plr_landings=0 plr_transed=0 plr_money=0 plr_target={x=8,y=2} plr_level=1 levels={ {map_start=0,map_height=8}, {map_start=8,map_height=8}, {map_start=16,map_height=16}, {map_start=16,map_height=15,gravity=0} } flag_solid=0 flag_start=1 flag_dock=7 telem_spd={} engine_power=0.1 fuel_cons=0.005 land_speed_limit=1 bonus_docked=1 transed_per_level=1 cam={} load_level() next_target() end function _init() reset() end function _update() debug_points={} if not plr_alive and btn(❎) then reset() end -- controlls plr_engine=-1 if plr_alive and plr_fuel>0 then if not plr_docked then if btn(🅾️) and dist(plr_speed)>0.01 then if abs(plr_speed.x) > abs(plr_speed.y) then plr_engine=(plr_speed.x>0) and ⬅️ or ➡️ else plr_engine=(plr_speed.y<0) and ⬆️ or ⬇️ end end if btn(⬆️) then plr_engine=⬆️ end if btn(⬇️) then plr_engine=⬇️ end if btn(⬅️) then plr_engine=⬅️ end if btn(➡️) then plr_engine=➡️ end end if plr_docked and btn(❎) then if plr_win then make_progress() else plr_docked=false plr_static=false plr_engine=⬆️ plr_speed={x=0,y=0.5} sfx(4) end end end -- engine if plr_engine==⬆️ then plr_speed.y+=engine_power elseif plr_engine==⬇️ then plr_speed.y-=engine_power elseif plr_engine==⬅️ then plr_speed.x-=engine_power elseif plr_engine==➡️ then plr_speed.x+=engine_power end if plr_engine != -1 then sfx(2,2) plr_fuel=max(0,plr_fuel-fuel_cons) else sfx(-1,2) end if plr_docked then plr_fuel=min(1,plr_fuel+fuel_cons) end -- move objects move(plr_pos,plr_speed,0.1) plr_pos.x=plr_pos.x%128 -- gravity pull if not plr_static then plr_speed.y-=gravity end -- crash detection local pc=plus(plr_pos,{x=0.5,y=-0.5}) local crashed=false if plr_alive and (plr_pos.y<=0 or plr_pos.y>17) then crashed=true elseif pc.y <= maph+1 and not plr_static then for p in all({plus(pc,clearx(unit(plr_speed,0.4))), plus(pc,cleary(unit(plr_speed,0.4)))}) do local pmaps=0 if (p.y>=0 and p.y<=maph) then pmaps=mget(p.x,mapy+maph-p.y) end local dock=fget(pmaps,7) local target=dist(plr_pos,plr_target)<=1 local solid=fget(pmaps,0) local slow=dist(plr_speed) < land_speed_limit if dock and slow and p.y < pc.y then plr_speed={x=0,y=0} plr_pos={x=flr(plr_pos.x+0.5),y=flr(plr_pos.y+0.5)} plr_docked=true plr_static=true plr_landings+=1 if target then plr_money+=bonus_docked plr_transed+=1 check_progress() end sfx(1) break elseif solid then crashed=true break end end end if crashed then plr_speed.y*=-0.75 plr_speed.x*=0.5 plr_alive=false if (dist(plr_speed) > 1) then sfx(0) else plr_speed.x=0 plr_speed.y=0 plr_static=true sfx(3) end end if plr_alive then telem_spd=mul(plr_speed,1) end cam={x=plr_pos.x*8-60, y=0} end function _draw() cls() camera(cam.x,cam.y) local lvl=mapy map(0,lvl, 0, 128-maph*8) map(0,lvl, -128*8, 128-maph*8) map(0,lvl, 128*8, 128-maph*8) local px,py=to_scrn(plr_pos) local img=0 if plr_docked then img=5 elseif not plr_alive then img=4 elseif plr_engine==⬆️ then img=2 elseif plr_engine==⬇️ then img=2 elseif plr_engine==⬅️ then img=3 elseif plr_engine==➡️ then img=1 end spr(img,px,py) for p in all(debug_points) do local px,py=to_scrn(p) pset(px,py,8) end -- target if plr_alive then local tg={x=plr_target.x,y=plr_target.y} if plr_target.x-plr_pos.x>64 then tg.x-=128 elseif plr_target.x-plr_pos.x<-64 then tg.x+=128 end local tx,ty=to_scrn(tg) local dst=dist(plr_pos,tg) local c=flr(t())%2==0 and 3 or 11 if dst > 8 then local dir=atan2(tx-px,ty-py) line(px+4+cos(dir)*10,py+4+sin(dir)*10,tx+4,ty+4,c) end if dst > 3 then print("웃",tx,ty+2,c) else print("__",tx,ty+4,c) end end -- -- HUD -- camera(0,0) -- fuel local fw=20 local fh=6 local fx=85 local fy=0 rect(fx,fy,fx+fw,fy+fh,5) rectfill(fx+1,fy+1,fx+plr_fuel*(fw-1),fy+fh-1,plr_fuel > 0.25 and 13 or 8) print("fuel", fx+3,fy+1,1) -- telemetry local cr=10 local cp={x=127-cr,y=cr} local spd={x=limit(telem_spd.x,1),y=limit(telem_spd.y,1)} circ(cp.x,cp.y,cr,3) line(cp.x,cp.y,cp.x+spd.x*cr,cp.y,11) line(cp.x,cp.y,cp.x,cp.y-spd.y*cr,11) circ(cp.x+spd.x*cr,cp.y-spd.y*cr,1,dist(telem_spd)0 then x=u end if p.x<0 then x=-u end if p.y>0 then y=u end if p.y<0 then y=-u end return {x=x,y=y} end function limit(val,lim) if (abs(val) > lim) then return val*lim/abs(val) end return val end __gfx__ 000000000000000000000000000000000000aa000000000050000005000000000000000000000000000000000000000000000000000000000000000000000000 00a9a90000a9a90000a9a90000a9a90000a9000000a9a90000000000000000000000000000000000000000000000000000000000000000000000000000000000 00111100001111000011110000111100000100000011110000000000000000000000000000000000000000000000000000000000000000000000000000000000 01111110011111100111111001111110010010100111111000000000000000000000000000000000000000000000000000000000000000000000000000000000 0a9999400a9999400a9999400a9999400a9990400a77654000000000000000000000000000000000000000000000000000000000000000000000000000000000 5a9999458a9999455a9999455a999948000909555a7c564500000000000000000000000000000000000000000000000000000000000000000000000000000000 59494445894944455949444559494448594904405967154500000000000000000000000000000000000000000000000000000000000000000000000000000000 0055550000555500008888000055550050555500007c560050000005000000000000000000000000000000000000000000000000000000000000000000000000 66566665000000000000000560000000d8ddddbd0000000000566660000000000000000000000000000000000000000000000000000000000000000000000000 666666660000000000000006660000005d7c56d50000000006666666000000000000000000000000000000000000000000000000000000000000000000000000 56666657000000000000005756600000566715570000000006666657000000000000000000000000000000000000000000000000000000000000000000000000 66756666000000000000066666750000667c56660000000066756666000000000000000000000000000000000000000000000000000000000000000000000000 66666666000000000000666666666000666715660000000066666666000000000000000000000000000000000000000000000000000000000000000000000000 66666665006600000006666566666600667c55650000000066666665000000000000000000000000000000000000000000000000000000000000000000000000 65666657076567600066665765666650656556570000000065666650000000000000000000000000000000000000000000000000000000000000000000000000 67656666666666566765666667656666666566660000000007656600000000000000000000000000000000000000000000000000000000000000000000000000 00000007777777777d8ddbd770000000065666656656666000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000767676767676dddd7665000000006666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000077666666666661166665000000000666575666600000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000007661116116616d161655000000000066666675000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000776d161dd66d166dd665000000000006666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000076666666666666666655000000000000656600000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000076656565656565656565000000000000076000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000005555555555555555550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 6460000677c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 545646666611cc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 6555456661d111500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 5455556661dd15650000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 65554566666656550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 54555566666565550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 55511166565655500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 11100006555555000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __gff__ 0000000000000200000000000000000001000000810001000000000000000000000181000000000000000000000000000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __map__ 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000011110000000000000000000000000000000000001210141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000111100000000060000001210101300000000000000000000000000000000121010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000110000000000000000000000000000110000 0012101013000000000000121010101000000000000000000000000000000012101010101013000000000000000000000000000000000000000000000000000011000000000000000000000020212123202123000000000000000000110000121010130000000000000000202122101300000000000000000000000012101300 1210101010130000000012101010101011001100000000110000000000121010101010101010130011000000000012141300000000000000000000000000001110130000000000000000000020212121212123000000000011001210101010101010101300001100000000202121101013000012101300000000001210101013 1010101010101010141010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010101010101010101010101010212221101010101010 0000000000000000000012102221212123000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000111210102121212123000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000002021212121212110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000002021211021101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000001021212121230000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000600000000121021102123000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000111112101010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1010101410101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000016000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121413000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000001100000000000000000000000600000016000000000030223100000000000000000000003022212300000000000000101010000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000121013000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000241025000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1300000000162500000000001100000020212223000000000000000000000000000000000000302121222300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1013000000000000000000121013000000000000000000000016000000000000000000000000302121213100000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1010130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010 __sfx__ 000400002c2501f250132503365036660396503764035630316202f6202c620246201d6101b6101b61019610126100e61010610116100c6000d6000e6000c6000a60007600016000060000000000000000000000 010800003d0202d0203d0203d61421620216201d6101c6101a6150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0001002005750087500b7500b7500a750067500375005750087500a7500b7500a75009750047500475006750097500a7500a75009750087500675006750087500a7500a75008750067500675008750097500a750 00020000226502265026150241501d150161500e1500c150061500315001150001500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 010800002605000000260502163021610216102161600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 002000001885000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000