diff --git a/chameleonic.p8 b/chameleonic.p8 index 4453da8..1957a3a 100644 --- a/chameleonic.p8 +++ b/chameleonic.p8 @@ -7,6 +7,7 @@ real_modules={} frame=0 function _init() + -- printh("restarting") _doall("init") end function _update() frame+=1 @@ -137,6 +138,7 @@ function _rast( _add() end + -->8 -- input kbd={} @@ -196,7 +198,7 @@ blinkcol=10 function title:draw() cls(0) -- this is right for 72x32 - spr(3,28,56,9,2) + spr(96,28,56,9,2) print("pyrex",32,73,7) print("[nyeogmi]",62,73,7) print("kistaro",32,79,7) @@ -247,24 +249,35 @@ function level:advance() self:reinit(self.ix+1) end -pitpal = {[0]=1,[7]=0,[6]=1,[4]=1} +normpal = {[1]=0,[8]=0,[14]=0} +pitpal = {[8]=0,[13]=3,[4]=3,[7]=3} function level:draw() - cls(1) - pal(1,0) + fillp(0b1111111110111111) + rectfill(0,0,127,127,0x55) + fillp() + pal(normpal) map( self.bigx*16,self.bigy*16, 0,0,16,16, 64 -- flag 6: visible ) + for _,pit in pairs(self._pits) do - spr(pit.s,pit.px,pit.py) + local px,py=pit.px,pit.py + local pr=self._pits[_mix(px+1,py)] + + spr(pit.s,px,py) if pit.contents then pal(pitpal) palt(0,false) - spr(pit.contents,pit.px,pit.py) + --spr(pit.contents,pit.px,pit.py) + spr(79,pit.px,pit.py) pal() - pal(1,0) + pal(normpal) end + palt(8,true) + spr(pit.s,px,py) + palt() end for _,crate in pairs(self._crates) do spr(crate.s,crate.px,crate.py) @@ -327,7 +340,7 @@ function level:load_dynobjs() end -- pit - if (s==28) self._pits[mxy]={s=s,mx=mx,my=my,px=px,py=py} + if (fget(s,5)) self._pits[mxy]={s=s,mx=mx,my=my,px=px,py=py} end end end @@ -398,7 +411,10 @@ function level:reanchor() end shellsort(self._anch_keys) for point in self:anchor_points() do - if (point.ax_old and player.rope) player.rope:be_pushed_by(point,point.ax_old,point.ay_old) + if point.ax_old and player.rope and (point.ax_old != point.ax or point.ay_old != point.ay) then + -- printh("moving: "..tostring({point.ax_old,point.ay_old}).."=>"..tostring({point.ax,point.ay})) + player.rope:be_pushed_by(point,point.ax_old,point.ay_old) + end point.ax_old,point.ay_old=nil,nil end @@ -967,8 +983,9 @@ function rope:draw(artificial_px,artificial_py) if (n1.associated_with.ady>0) y-=1 end rectfill(x-1,y-1,x+1,y+1,12) - print("ax="..n1.ax..",ay="..n1.ay,0,sy) - sy+=7 + print("ax="..n1.ax..",ay="..n1.ay,72,sy) + print(tostring(n1.associated_with and (not n1.associated_with.dropped and n1.associated_with.ax==n1.ax and n1.associated_with.ay==n1.ay)),76,sy+7) + sy+=14 local n0=n1.prev local n2=n1.next @@ -1002,7 +1019,7 @@ function rope:draw(artificial_px,artificial_py) pset(x+p.adx,y,11) pset(x,y+p.ady,11) end - ]]-- + ]] end function rope:drag_dst(x,y) @@ -1021,6 +1038,21 @@ function rope:drag(n1,ax_new,ay_new) end function rope:relax() + local n0=self.src + while true do + if (n0==nil) break + if n0.associated_with and n0.associated_with.dropped then + for i in level:anchor_points() do + if i.ax==n0.ax and i.ay==n0.ay then + n0.associated_with=i + break + end + end + end + + n0=n0.next + end + local n0=self.src while true do local n1=n0.next @@ -1056,8 +1088,9 @@ function rope:relax() local would,x1_new,y1_new=would_stick(x0,y0,n1.associated_with,x2,y2) if not would and not (n1.ax==x1_new and n1.ay==y1_new) then + -- printh("dragging: "..tostring{n1.associated_with, {x1_new, y1_new}}) -- printh("relaxing: "..tostring(n0.associated_with).."->"..tostring(n1.associated_with).."->"..tostring(n2.associated_with)) - self:_drag(n1,x1_new,y1_new) + self:_drag(n1,x1_new,y1_new,n1.ax,n1.ay) n0=n1.prev n2=n1.next n0.next=n2 @@ -1143,13 +1176,8 @@ function would_stick(x0,y0,anchor,x2,y2) local dx=x2-x0 local dy=y2-y0 - -- there is no reason for an acute angle to stick around in this world - --[[ - local ang0=atan2(x2-x1,y2-y1) - local ang2=atan2(x0-x1,y0-y1) - local diff=abs((ang0-ang2 + 0.5)%1-0.5) - if (diff<0.25) return false,x0,y0,0,0 - ]]-- + if (x1==x0 and y1==y0) return false + if (x1==x2 and y1==y2) return false local adx,ady local x1_new,y1_new @@ -1186,25 +1214,28 @@ function rope:be_pushed_by(anchor,ax_old,ay_old) local nx0,ny0=n0.ax,n0.ay local nx1,ny1=n1.ax,n1.ay + local nxmn,nxmx = _mnmx(nx0,nx1) + local nymn,nymx = _mnmx(ny0,ny1) + -- printh(tostring({anchor,nxmn,nxmx,nymn,nymx})) + if - (ax_new==ax_old and nx0<=anchor.ax and anchor.ax<=nx1) and - (ay_new==ay_old and ny0<=anchor.ay and anchor.ay<=ny1) and - not (anchor.ax==nx0 and anchor.ay==ny0) and - not (anchor.ax==nx1 and anchor.ay==ny1) and + (ax_new!=ax_old or (nxmn<=anchor.ax and anchor.ax<=nxmx)) and + (ay_new!=ay_old or (nymn<=anchor.ay and anchor.ay<=nymx)) and (_which_side(ax_old,ay_old,nx0,ny0,nx1,ny1)!= _which_side(ax_new,ay_new,nx0,ny0,nx1,ny1) ) and would_stick(nx0,ny0,anchor,nx1,ny1) then + -- printh("found (in): "..tostring({{nx0,ny0},{nx1,ny1}, anchor})) local nx05,ny05 if ax_new==ax_old then nx05=anchor.ax ny05=ny0+(nx05-nx0)/(nx1-nx0) * (ny1-ny0) - --printh("found (x): "..tostring({nx05,ny05})) + -- printh("found (x): "..tostring({nx05,ny05})) elseif ay_new==ay_old then ny05=anchor.ay nx05=nx0+(ny05-ny0)/(ny1-ny0) * (nx1-nx0) - --printh("found (y): "..tostring({nx05,ny05})) + -- printh("found (y): "..tostring({nx05,ny05})) else assert(false,"wtf?") end @@ -1222,8 +1253,14 @@ function rope:be_pushed_by(anchor,ax_old,ay_old) end end -function rope:_drag(n1,ax1_new,ay1_new) - local function _sweep_radar(ax_pivot,ay_pivot,ax_far0,ay_far0,ax_far1,ay_far1) +function rope:_drag(n1,ax1_new,ay1_new,ax_removing,ay_removing) + local function _sweep_radar(ax_lhs,ay_lhs,ax_rhs,ay_rhs,ax_pivot,ay_pivot,ax_far0,ay_far0,ax_far1,ay_far1) + local function _uncreatable(anchor) + return (anchor.ax==ax_lhs and anchor.ay==ay_lhs) or + (anchor.ax==ax_rhs and anchor.ay==ay_rhs) or + (anchor.ax==ax_removing and anchor.ay==ay_removing) + end + if (ax_far0==ax_far1 and ay_far0==ay_far1) return nil if ax_far0==ax_far1 then @@ -1234,9 +1271,7 @@ function rope:_drag(n1,ax1_new,ay1_new) for ay_far_new in _stepfrom(ay_far0,ay_far1) do for anchor in level:anchor_points() do if - not (anchor.ax==ax_pivot and anchor.ay==ay_pivot) and - -- not (anchor.ax==ax_far0 and anchor.ay==ay_far0) and - not (anchor.ax==ax_far1 and anchor.ay==ay_far1) and + not _uncreatable(anchor) and (ax0<=anchor.ax and anchor.ax<=ax1) and would_stick(ax_pivot,ay_pivot,anchor,ax_far,ay_far_new) and ( @@ -1257,11 +1292,9 @@ function rope:_drag(n1,ax1_new,ay1_new) for ax_far_new in _stepfrom(ax_far0,ax_far1) do for anchor in level:anchor_points() do if - not (anchor.ax==ax_pivot and anchor.ay==ay_pivot) and - -- not (anchor.ax==ax_far0 and anchor.ay==ay_far0) and - not (anchor.ax==ax_far1 and anchor.ay==ay_far1) and - would_stick(ax_pivot,ay_pivot,anchor,ax_far_new,ay_far) and + not _uncreatable(anchor) and (ay0<=anchor.ay and anchor.ay<=ay1) and + would_stick(ax_pivot,ay_pivot,anchor,ax_far_new,ay_far) and ( _which_side(anchor.ax,anchor.ay,ax_pivot,ay_pivot,ax_far_old,ay_far) != _which_side(anchor.ax,anchor.ay,ax_pivot,ay_pivot,ax_far_new,ay_far) @@ -1282,7 +1315,10 @@ function rope:_drag(n1,ax1_new,ay1_new) local n0=n1.prev while true do if (n0==nil) break - local anch=_sweep_radar(n0.ax,n0.ay,ax1_old,ay1_old,ax1_new,ay1_new) + local anch=_sweep_radar( + n0.ax,n0.ay,n1.ax,n1.ay, + n0.ax,n0.ay,ax1_old,ay1_old,ax1_new,ay1_new + ) if (anch==nil) break local n05={ax=anch.ax,ay=anch.ay,associated_with=anch,prev=n0,next=n1} -- printh("creating pre: "..tostring(n0.associated_with).."->"..tostring(n05.associated_with).."->"..tostring(n1.associated_with)) @@ -1294,7 +1330,10 @@ function rope:_drag(n1,ax1_new,ay1_new) local n2=n1.next while true do if (n2==nil) break - local anch=_sweep_radar(n2.ax,n2.ay,ax1_old,ay1_old,ax1_new,ay1_new) + local anch=_sweep_radar( + n1.ax,n1.ay,n2.ax,n2.ay, + n2.ax,n2.ay,ax1_old,ay1_old,ax1_new,ay1_new + ) if (anch==nil) break local n15={ax=anch.ax,ay=anch.ay,associated_with=anch,prev=n1,next=n2} -- printh("creating post: "..tostring(n1.associated_with).."->"..tostring(n15.associated_with).."->"..tostring(n2.associated_with)) @@ -1655,45 +1694,45 @@ function level_text:draw() end end __gfx__ -000030000000002200003000000cc0cc0cccccccccccccccccccccccccccccccc0bb0000000000000000000000000000dddddddd000000000005000000000000 -003333300000332200333330000cc0cc0000cc0000000000000000000cc0000000bb0bb0bbbb0bbbbb0bbbbb0bbb0000dddddddd000000000000500000000000 -099333990039932009333339000cc0cc0cc0cc0cc0cccccccc0ccccc0cc0ccccc0bb0bb000bb0000bb0bb0bb0bb0b000dddddddd000000000000000000000000 -09a333a9033a932009333339000cc0cc0cc0cc0cc0cc0cc0cc0000cc0cc0cc0cc0bb0bb0bb000bbbbb0bbb000bb0b000dddddddd000000005005005000000000 -023333323333320000222220000cc0cc0cc0cc0cc0cc0cc0cc0ccccc0cc0ccccc0bb0bb0bbbb0bbbbb0bb0bb0bbbb000dddddddd000000000500500500000000 -002222200000220000222220000cc0cc0cc0000cc0cc0cc0cc0cc0cc0cc0cc0000bb0000000000000000000000000000dddddddd000000000000000000000000 -000222c002222c0000022200000ccccc0ccccc0cc0cc0cc0cc0ccccc0cc0ccccc0bbbbbbbbbbbbbbbbbbbbbbbbbbb000dddddddd000000000005000000000000 -00000cc00000cc0000000cc0000000000000000000000000000000000000000000000000000000000000000000000000dddddddd000000000000500000000000 -0000ff00000000000000000088888888888888888888880aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa11111111000000000000000000000000 -000f00f0000000000aa00aa00088000000088000000000000000000000000aa00000000000000000aa0000000000000011111111000000000000000000000000 -00d0000f000000000aaaaaa000880888880880888880880aaa00aaa0aaaa0aa0aaaaa0aa0a0aaaa0aa0aa0aaaaa0aaa011111111000000000000000000000000 -00d0d00f00c040500aaaaaa000880880880880000880880aa0a0aa00aa000aa0aa0aa0aa0a0aa000aa0aa0aa0aa0aa0a11111111000000000000000000000000 -00dd00ee00c445500099990000880880880880888880880aa0a0aa0000aa0aa0aaa000aa0a0aa000aa0aa0aa0aa0aa0a11111111000000000000000000000000 -00000ee00c44455500aaaa0000880880880880880880880aaaa0aaa0aaaa0aa0aa0aa0aaaa0aaaa0aa0aa0aaaaa0aa0a11111111000000000000000000000000 -00eeee000c004005000aa00000880888880880888880880000000000000000000000000000000000000000000000000011111111000000000000000000000000 -eeee0000cc0440550044440000000000000000000000888888800000000000000000000000000000000000000000000011111111000000000000000000000000 -00000000000a90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000aaaaaaa91000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0000aaaaaa1a91100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0aaaaaaaaa1a91110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0aaaaaaaa41a91a10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0a000aa4441a91a10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00a0044449a110a10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -000aa111991111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000009910000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd00ddddddddddddddddddddddddddd -000000009900000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd00ddddddddddddddddddddddddddd -000000009900000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd77ddddddddddddddddddddddddddd -000000000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd00dddddd00700ddd00ddd00700ddd -00000000aa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd00dddddd00700ddd00ddd00700ddd -0000000077a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddddddddddddddddddd77ddddddddddd -00000007777a000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddddddddddddddddddd00ddddddddddd -000444444444440000000000000000000000000000000000000000000000000000000000000000000000000000000000ddddddddddddddddddd00ddddddddddd +000030000000002200003000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff1ff1ff1fffffff1ffffff1fffffff1dddddddd111111110005000000000000 +003333300000332200333330eeffffffffffffffffffffeee5e555e55e555e5eff1ff1ffffffffffffffffffffffffffdddddddd111111110000500000000000 +099333990039932009333339effeeeeeeeeeeeeeeeeeeffee5eeeeeeeeeeee5eff1ff1ffff111111ff1111ff111111ffdddddddd111111110000000000000000 +09a333a9033a932009333339efee33e3333e333e3333eefee5e333e333333e5eff1ff1ffff1fffffff1ff1fffffff1ffdddddddd111111115005005000000000 +023333323333320000222220efe333e3333e333e33333efee5e333e333333e5eff1ff1ffff1fffffff1ff1fffffff1ffdddddddd111111110500500500000000 +002222200000220000222220efe33eeeeeeeeeeeeee33efeeee33eeeeee33eeeff1111ffff111111ff1ff1ff111111ffdddddddd111111110000000000000000 +000222c002222c0000022200efeeee555e555e55e5eeeefee5eeeeffffeeee5effffffffffffffffff1ff1ffffffffffdddddddd111111110005000000000000 +00000cc00000cc0000000cc0efe33e5eeeeeeeeee5e33efee5e33efeefe33e5e1ffffff11fffffffff1ff1fffffffff1dddddddd111111110000500000000000 +0000ff000000000000000000efe33e5e11111111e5e33efee5e33efeefe33e5eff1ff1ffffffffffffffffffffffffff88888888555555555555555588888888 +000f00f0000000000aa00aa0efe33eee11ffff11eee33efeeee33effffe33e5eff1ff1ffffffffffffffffffffffffff88888888558855885588558888888888 +00d0000f000000000aaaaaa0efe33e5e1ff11ff1e5e33efee5e33eeeeee33eeeff1ff1fffff11111ffffffff11111fff88888888888888888888888888888888 +00d0d00f00c040500aaaaaa0efeeee5e1f1111f1e5eeeefee5e333e333333e5eff1ff1fffff1ffffff1111ffffff1fff88888888888888888888888888888888 +00dd00ee00c4455000999900efe33e5e1f1111f1e5e33efee5e333e333333e5eff1111fffff1ffffff1ff1ffffff1fff88888888888888888888888888888888 +00000ee00c44455500aaaa00efe33eee1ff11ff1eee33efeeeeeeeeeeeeeee5efffffffffff11111ff1ff1ff11111fff88888888888888888888888888888888 +00eeee000c004005000aa000efe33e5e11ffff11e5e33efee5555e555e555e5effffffffffffffffff1ff1ffffffffff88888888888888888855885588558855 +eeee0000cc04405500444400efeeee5e11111111e5eeeefeeeeeeeeeeeeeeeeeffffffffffffffffff1ff1ffffffffff88888888888888885555555555555555 +00000000000a900000000000efe33eeeeeeeeeeeeee33efeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +00000aaaaaaa910000000000efe33e5555e555e555e33efeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +0000aaaaaa1a911000000000efe33eeeeeeeeeeeeee33efeff1ff1ff111111110000000000000000000000000000000000000000000000000000000000000000 +0aaaaaaaaa1a911100000000efe333e3333e333e33333efeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +0aaaaaaaa41a91a100000000efee33e3333e333e3333eefeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +0a000aa4441a91a100000000effeeeeeeeeeeeeeeeeeeffeff1ff1ff111111110000000000000000000000000000000000000000000000000000000000000000 +00a0044449a110a100000000eeffffffffffffffffffffeeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +000aa1119911111000000000eeeeeeeeeeeeeeeeeeeeeeeeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +00000000991000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111999999111111111 +00000000990000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999999911999999119999999 +00000000990000000000000000000000000000000000000000000000000000000000000000000000000000000000000019977991999999911999999119999999 +00000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999 +00000000aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999 +0000000077a000000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911997799119999999 +00000007777a00000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911991199119999999 +00044444444444000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991111111111111111111111111 44444444444004444444444444400444444444444440044444444444444004444444444444400444444444444440044444444444444004444444444444400444 -47766774477007744776677447700774477667744770077447766774477007744776677447700774477667744770077447766774477007744776677447700774 +477dd77447711774477dd77447711774477dd77447711774477dd77447711774477dd77447711774477dd77447711774477dd77447711774477dd77447711774 47777774477777744777777447777774477777744777777447777774477777744777777447777774477777744777777447777774477777744777777447777774 -46700764467007644670070046700700467007644670076446700700467007000070076400700764007007000070070000700764007007640070070000700700 -46700764467007644670070046700700467007644670076446700700467007000070076400700764007007000070070000700764007007640070070000700700 +4d7117d44d7117d44d7117104d7117104d7117d44d7117d44d7117104d711710017117d4017117d40171171001711710017117d4017117d40171171001711710 +4d7117d44d7117d44d7117104d7117104d7117d44d7117d44d7117104d711710017117d4017117d40171171001711710017117d4017117d40171171001711710 47777774477777744777777447777774477777744777777447777774477777744777777447777774477777744777777447777774477777744777777447777774 -47766774477667744776677447766774477007744770077447700774477007744776677447766774477667744776677447700774477007744770077447700774 +477dd774477dd774477dd774477dd77447711774477117744771177447711774477dd774477dd774477dd774477dd77447711774477117744771177447711774 44444444444444444444444444444444444004444440044444400444444004444444444444444444444444444444444444400444444004444440044444400444 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -1703,22 +1742,22 @@ eeee0000cc0440550044440000000000000000000000888888800000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000cc0cc0cccccccccccccccccccccccccccccccc0bb000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000cc0cc0000cc0000000000000000000cc0000000bb0bb0bbbb0bbbbb0bbbbb0bbb000000000000000000000000000000000000000000000000000000000000 +000cc0cc0cc0cc0cc0cccccccc0ccccc0cc0ccccc0bb0bb000bb0000bb0bb0bb0bb0b00000000000000000000000000000000000000000000000000000000000 +000cc0cc0cc0cc0cc0cc0cc0cc0000cc0cc0cc0cc0bb0bb0bb000bbbbb0bbb000bb0b00000000000000000000000000000000000000000000000000000000000 +000cc0cc0cc0cc0cc0cc0cc0cc0ccccc0cc0ccccc0bb0bb0bbbb0bbbbb0bb0bb0bbbb00000000000000000000000000000000000000000000000000000000000 +000cc0cc0cc0000cc0cc0cc0cc0cc0cc0cc0cc0000bb000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000ccccc0ccccc0cc0cc0cc0cc0ccccc0cc0ccccc0bbbbbbbbbbbbbbbbbbbbbbbbbbb00000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +88888888888888888888880aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00000000000000000000000000000000000000000000000000000000 +0088000000088000000000000000000000000aa00000000000000000aa0000000000000000000000000000000000000000000000000000000000000000000000 +00880888880880888880880aaa00aaa0aaaa0aa0aaaaa0aa0a0aaaa0aa0aa0aaaaa0aaa000000000000000000000000000000000000000000000000000000000 +00880880880880000880880aa0a0aa00aa000aa0aa0aa0aa0a0aa000aa0aa0aa0aa0aa0a00000000000000000000000000000000000000000000000000000000 +00880880880880888880880aa0a0aa0000aa0aa0aaa000aa0a0aa000aa0aa0aa0aa0aa0a00000000000000000000000000000000000000000000000000000000 +00880880880880880880880aaaa0aaa0aaaa0aa0aa0aa0aaaa0aaaa0aa0aa0aaaaa0aa0a00000000000000000000000000000000000000000000000000000000 +00880888880880888880880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000888888800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -1914,41 +1953,41 @@ __label__ 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 __gff__ -000000000808080808080808c00000000000000008080808080808080000000040400000080808080808080800000000404000000808080808080808c0c0c0c000000000080808080808080800000000000000000808080808080808000000000000000008080808080808080000000000000000080808080808080800000000 +000000c0c0c0c0c0c0c0c0c0c0c00000000000c0c0c0c0c0c0c0c0c020202020004000c0c0c0c0c00008080800000000404000080808080808080808c0c0c0c000000000080808080808080800000008000000000808080808080808000000000008080808080808080808080000000000080808080808080808080800000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __map__ -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c120c0c0c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0c0c0c0c0c0c120c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3e0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000000000c00000000000000000c0c000c004f00000c000000000000000c0c0c0c0c0c0c0000000c000c0000000c0c0c0c0c0c0c0c0c0c00000c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000000001c00004f00000000000c0c00001c0000000c000000000000000c0c0c0c0c0c0c0000000c000c0000000c0c000000000000000000000c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000000000c0c0c0c0c0c1c001c0c0c0c0c00000c0c0c000000000000000c0c000000000c0000000c000c0000000c0c0000000000000000421c000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c1c001c0c0c0000000000000c000000000000000c0c00001c1c000000000c000c0000000c0c000000000000000000000c0000410c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0000000c0c0000000000000c000000000000000c0c00001c480c004200001c430000000c0c0c0c0c000c0c0c0c00000c00001c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000e0e000000000000000e00000000000e0e0e0e000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0000000c0c0000000000000c000000000000000c0c000000000c0000000000000000000c3d00001c001c00003f0c0c0c0c0c000c0c0c0c1c1c1c1c1c1c1c1c1c1c0c0c0c0e00000000000e0000000000000000000e00000000000000000e000000000000 -0c0c0000000000000c00000000000c0c01000000000000000000000c0000000c0c0c0c00000c0c0c000000000000000c0c000000000c0c0c0c0000000c0c0c0c0c00001c1c1c00000c0c0c0c0c0c000c0c0c00001c1c1c1c1c1c1c1c00003f0c0e00000000000e0e0e000000000000000e000000000000000e00000000000000 -01000000000000004f000000000000120c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c00001c1c004f0c000000000000000c0c000000000c00000c0c0c0c0c00000c0c00001c401c00000c0000000000000c010000001c1c1c1c1c1c1c1c000000120e00000000000e00000e0000000000000e0000000000000e0000000000000000 -0c0c0000000000000c00000000000c0c0c000000000000000c0000000000000c0c0000000000000c0000004f0000000c0c000000000c0000000000000000000c0c000000000000000c00481c0000000c0c0c00001c1c1c1c1c1c1c1c00003f0c0e0000000000000e0e000000000000000e0000000000000e0000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000c0000000000000c0c0000000000000c0000001c0000000c0c000000430c0000000000000000000c0c000000000000000c0c0c000c0c0c0c0c0c0c1c1c1c1c1c1c1c1c1c1c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000c0000000000000c0c0c0c00000c0c0c00000c000c00000c0c00000000004d00000000000000000c0c000000000000000c0000000c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000c0c000c0c0c0c0c0c1c0c0c0c0c4f001c1c00000c0c0c0c000c0c0c0c0c0c0c0c0c0c0000000000000000000c0c000000000000000c00001c1c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000c1c4f1c000000000c4f0c000c0c00000000000000000000000000000c0c0c0c0c0c0c0000000000000000000c0c000000000000000c000040440c000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c1c1c1c00000000000000000c0c00000000000000000000000000000c0c0c0c0c0c0c00000c0c000c0c00000c0c0c0c0c000c0c0c0c000000000c00120c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c120c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0c0c0c0c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0c00000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000000000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c004f000000000c001c1c000c0c000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000c0c0c0c0c0c0c0c0c0c0c0c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3e0c0c0c0c0c0c0c0c000c000c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c0000000000000000000000000c000c0c00000000000000000c00000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0c0c0c0c0c0000000000000000000c000000000c0c000000000000000000001c0000000c0c0c0c00000000000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c0000000c0c0000000c000000001c120100000000000000004f000000000012010000000000001c004f0000000000120100000000000000004f1c000000001201000000000000000047000000000012010000000000000000401c00000000120c0c0c00001c1c1c0c0c0c0c0c0c0c0c0e000000000e00000e0e0e0000000000 -0c000c000c0c0000000c0c0c0000000c0c00000000000000000c00000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0c0c0c0c0c0000000000000000000c000000000c0c000000000000000000001c0000000c0c0c0c0000004a000c0c0c0c0c0c0c0c0e000000000e00000e00000000000000 -0c000c0000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000c0c0c0c0c0c0c0c0c0c0c0c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3c0c0c0c0c0c0c0c0c0c00000c000c0c0c0c0c0c0c0c0e000000000e00000e0e0e0000000000 -01000c0c00000000000c0c004f00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000e000000000e0000000000 -0c0000000000000c00000c000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000e000000000e0000000000 -0c00004f0000000c0c000c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000e00000e0e0e0000000000 -0c00000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c00000c00000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c000c0c0c0000000c0c0c004f00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c00000c00000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c00000000001c00000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c120c0c0c0c0c0c0c0c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e +0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d1203040404050d0d0d0d010d0d0d0d0d0d0d0d0d0d0d0d0d0d120d0d0d0d0d0d0d0d0d0d0d0d0d03043e0a040404050d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e +0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0a0d0d0d0d0a0d0304040405140013004f00150d0d0d1400140d0d0d0d0d0d0d0d0d0d0d0d1400140d0d0d0d0d0304040404040417000026000000150d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d03042604040404260417000000151400001e0000150304040400040404050d0d0d0d0d03040404050003040404050d1300000000000000000018000000150d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d0a0d0d0d0d0d0d0d14130018000000001800000000001514141300000015130000000000000015030404040513000000160017000000150d1300000000000000421e00000000150d0d0d0d0d0d0d0d0d0a0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d260d0d0d0d0d0d010000001e0000004f000000000000150d031700000015130000000000000015130000001513004200001e43000000150d130000000000000000001a000041150d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0d1413001a000000001a0000000000150d13000000001513000000000000001513001d1d0000000000000000000000150d232424002424240700002600001e150d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0e0000000000000e0e000000000000000e00000000000e0e0e0e000000000000 +0d0d0d0d03040404042604050d0d0d0d0d0d232426242424242624071e001e150d13000000001513000000000000001513001f481523242424070006242424250d0304040004040523242408242400250d0d0d0d03040404041804050d0d0d0d0e00000000000e0000000000000000000e00000000000000000e000000000000 +0d14141413000000001800151414140d0d0d0d0d080d0d0d0d080d23240024250d23240000242513000000000000001513000000150d0d0d0d2324250d0d0d0d0d3d001c001c003f03040404040400050d1414141300001d1d1d003f1414140d0e00000000000e0e0e000000000000000e000000000000000e00000000000000 +0100000000000000004f0000000000120d0d0304040404050d0d0d0d1400140d0d030400000405130000004f000000151300000015030404050d0d0d030404050d13001c1d1c00151300000000000015010000000000001c1c1c0000000000120e00000000000e00000e0000000000000e0000000000000e0000000000000000 +0d14141413000000001a00151414140d0d0d1300000000150d0304040400050d0d13001e1e4f15130000001e00000015130000001513000016040404170000150d13001f401f00151300481e000000150d1414141300001f1f1f003f1414140d0e0000000000000e0e000000000000000e0000000000000e0000000000000000 +0d0d0d0d23242424242624250d0d0d0d0d0d1300000000150d1300000000150d0d130000000015130000150013000015130000431513000000000000000000150d1300000000001523242400242424250d0d0d0d23242424241a24250d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0d091b00191b00192727271b1e19270b0d2324240024252324242500232424251300000000004d0000000000000000150d1300000000001503040000040514140d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0d0d1300001e4f1e000000004f00150d0d0d03040004050d0d0d1400140d0d0d232424242513000000000000000000150d130000000000151300001d1d0000140d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d080d0d0d0d0d0d0d0d230024242425141300000000150d0d0d134f1e00151414141400140d0d0d0d0d0d0d0d13000006240024070000150d2324240024242513000040441500140d0d0d0d0d0d0d0d0d080d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d1400140d0d0d0d2324242424250d0d0d13000000000000000000140d0d0d0d0d0d0d0d23242425140014232424250d0d0d1400140d0d13000000001500120d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d120d0d0d0d0d0d0d0d0d0d0d0d0d0d23242424251414141414140d0d0d0d0d0d0d0d0d0d0d0d0d010d0d0d0d0d0d0d0d0d010d0d0d232424242425140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0c0c0c0c03040404043e04040404040404040405 +0c00000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000000000c0c0c0c0c0c0c0c130c0c0c0000001c00001c1c0c0c0c15 +0c004f000000000c001c1c000c0c000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000c0c0c0c0c0c0c0c0c0c0c0c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3e0c0c0c0c0c0c0c0c000c000c000c0c0c0c0c0c0c0c130c0c0c0000001c1c1c1c4800000c15 +0c0000000000000000000000000c000c0c00000000000000000c00000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0c0c0c0c0c0000000000000000000c000000000c0c000000000000000000001c0000000c0c0c0c00000000000c0c0c0c0c0c0c0c131c0c0c0c1c1c1c0000001c00000c15 +0c0000000c0c0000000c000000001c120100000000000000004f000000000012010000000000001c004f0000000000120100000000000000004f1c000000001201000000000000000047000000000012010000000000000000401c00000000120c0c0c00001c1c1c0c0c0c0c0c0c0c0c131c1c000000000c1c00000c0c000015 +0c000c000c0c0000000c0c0c0000000c0c00000000000000000c00000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0c0c0c0c0c0000000000000000000c000000000c0c000000000000000000001c0000000c0c0c0c0000004a000c0c0c0c0c0c0c0c1300001c1c000000001c000c0c000015 +0c000c0000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000c0c0c0c0c0c0c0c0c0c0c0c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3c0c0c0c0c0c0c0c0c0c00000c000c0c0c0c0c0c0c0c130000001c0000001c1c000c00000c15 +01000c0c00000000000c0c004f00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c0000001c0000000c00000c15 +0c0000000000000c00000c000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0100000c0000000c0c0c0c0c0c000015 +0c00004f0000000c0c000c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c0000000c0000000000000015 +0c00000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c4f00000c0040000000000015 +0c00000c00000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c0c1c3c0c1c1c1c1c1c1c3c15 +0c000c0c0c0000000c0c0c004f00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c13000000001c0c0c00001c1c1c1c4c15 +0c00000c00000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c00000c0c42001c1c001c003f +0c00000000001c00000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c0c4f0c3d41001c1c001c0015 +0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c120c0c0c0c0c0c0c0c2324242424242424243c242412242425 __sfx__ 00110000250002500025030250302503000000230350000023030230302303023030230302303023030230302103021030210302103021030210300000000000177401774017740177311e7501e7501e7501e750 00110000290202a0212a0202a0202a0202a02025030250052503025030250302503025030250302503025030250302503025030250302503225030230322504526030260302a040000002d0402d0402d0402d040